angular-three 1.4.3 → 1.4.4

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.
@@ -1460,7 +1460,7 @@ function removeThreeRecursive(array, parent, dispose) {
1460
1460
  if (array)
1461
1461
  [...array].forEach((child) => removeThreeChild(parent, child, dispose));
1462
1462
  }
1463
- function processThreeEvent(instance, priority, eventName, callback, cdr) {
1463
+ function processThreeEvent(instance, priority, eventName, callback, cdr, targetCdr) {
1464
1464
  const lS = getLocalState(instance);
1465
1465
  if (eventName === SPECIAL_EVENTS.BEFORE_RENDER) {
1466
1466
  return lS.store
@@ -1487,7 +1487,7 @@ function processThreeEvent(instance, priority, eventName, callback, cdr) {
1487
1487
  };
1488
1488
  lS.handlers = {
1489
1489
  ...lS.handlers,
1490
- [eventName]: eventToHandler(updatedCallback, cdr),
1490
+ [eventName]: eventToHandler(updatedCallback, cdr, targetCdr),
1491
1491
  };
1492
1492
  // increment the count everytime
1493
1493
  lS.eventCount += 1;
@@ -1504,9 +1504,11 @@ function processThreeEvent(instance, priority, eventName, callback, cdr) {
1504
1504
  }
1505
1505
  };
1506
1506
  }
1507
- function eventToHandler(callback, cdr) {
1507
+ function eventToHandler(callback, cdr, targetCdr) {
1508
1508
  return (event) => {
1509
1509
  callback(event);
1510
+ if (targetCdr)
1511
+ targetCdr.detectChanges();
1510
1512
  cdr.detectChanges();
1511
1513
  };
1512
1514
  }
@@ -1956,11 +1958,16 @@ class NgtRenderer {
1956
1958
  // on first pass, we return the Root Scene as the root node
1957
1959
  if (this.root && !this.first) {
1958
1960
  this.first = true;
1959
- return this.store.createNode('three', this.store.rootScene);
1961
+ const node = this.store.createNode('three', this.store.rootScene);
1962
+ node.__ngt_renderer__[13 /* NgtRendererClassId.injectorFactory */] = () => getDebugNode(element).injector;
1963
+ return node;
1960
1964
  }
1961
1965
  // handle compound
1962
- if (this.store.isCompound(name))
1963
- return this.store.createNode('compound', element);
1966
+ if (this.store.isCompound(name)) {
1967
+ const compound = this.store.createNode('compound', element);
1968
+ compound.__ngt_renderer__[13 /* NgtRendererClassId.injectorFactory */] = () => getDebugNode(element).injector;
1969
+ return compound;
1970
+ }
1964
1971
  // handle portal
1965
1972
  if (name === SPECIAL_DOM_TAG.NGT_PORTAL) {
1966
1973
  return this.store.createNode('portal', element);
@@ -2000,7 +2007,9 @@ class NgtRenderer {
2000
2007
  }
2001
2008
  return node;
2002
2009
  }
2003
- return this.store.createNode('dom', element);
2010
+ const domNode = this.store.createNode('dom', element);
2011
+ domNode.__ngt_renderer__[13 /* NgtRendererClassId.injectorFactory */] = () => getDebugNode(element).injector;
2012
+ return domNode;
2004
2013
  }
2005
2014
  createComment(value) {
2006
2015
  const comment = this.delegate.createComment(value);
@@ -2166,16 +2175,24 @@ class NgtRenderer {
2166
2175
  }
2167
2176
  }
2168
2177
  listen(target, eventName, callback) {
2178
+ const targetCdr = target.__ngt_renderer__[13 /* NgtRendererClassId.injectorFactory */]?.().get(ChangeDetectorRef, null);
2169
2179
  // if target is DOM node, then we pass that to delegate Renderer
2170
2180
  if (this.store.isDOM(target)) {
2171
- return this.delegate.listen(target, eventName, callback);
2181
+ const callbackWithCdr = (event) => {
2182
+ const value = callback(event);
2183
+ if (targetCdr)
2184
+ targetCdr.detectChanges();
2185
+ this.store.rootCdr.detectChanges();
2186
+ return value;
2187
+ };
2188
+ return this.delegate.listen(target, eventName, callbackWithCdr);
2172
2189
  }
2173
2190
  if (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'three' ||
2174
2191
  (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'compound' &&
2175
2192
  target.__ngt_renderer__[6 /* NgtRendererClassId.compounded */])) {
2176
2193
  const instance = target.__ngt_renderer__[6 /* NgtRendererClassId.compounded */] || target;
2177
2194
  const priority = getLocalState(target).priority;
2178
- return processThreeEvent(instance, priority || 0, eventName, callback, this.store.rootCdr);
2195
+ return processThreeEvent(instance, priority || 0, eventName, callback, this.store.rootCdr, targetCdr);
2179
2196
  }
2180
2197
  if (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'compound' &&
2181
2198
  !target.__ngt_renderer__[6 /* NgtRendererClassId.compounded */]) {