angular-three 1.6.0 → 1.6.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.
@@ -1723,8 +1723,10 @@ class NgtRendererStore {
1723
1723
  return this.root.compoundPrefixes.some((prefix) => name.startsWith(prefix));
1724
1724
  }
1725
1725
  isDOM(node) {
1726
- return (node['__ngt_renderer__']?.[0 /* NgtRendererClassId.type */] !== 'compound' &&
1727
- (node instanceof Element || node instanceof Document));
1726
+ const rendererNode = node['__ngt_renderer__'];
1727
+ if (rendererNode && rendererNode[0 /* NgtRendererClassId.type */] !== 'compound')
1728
+ return true;
1729
+ return node instanceof Element || node instanceof Document || node instanceof Window;
1728
1730
  }
1729
1731
  get rootScene() {
1730
1732
  return this.root.store.get('scene');
@@ -2190,18 +2192,30 @@ class NgtRenderer {
2190
2192
  }
2191
2193
  }
2192
2194
  listen(target, eventName, callback) {
2193
- const targetCdr = target.__ngt_renderer__?.[13 /* NgtRendererClassId.injectorFactory */]?.().get(ChangeDetectorRef, undefined);
2195
+ const targetCdr = target.__ngt_renderer__?.[13 /* NgtRendererClassId.injectorFactory */]?.().get(ChangeDetectorRef, null);
2194
2196
  // if target is DOM node, then we pass that to delegate Renderer
2197
+ const callbackWithCdr = (event) => {
2198
+ const value = callback(event);
2199
+ if (targetCdr)
2200
+ targetCdr.detectChanges();
2201
+ this.store.rootCdr.detectChanges();
2202
+ return value;
2203
+ };
2195
2204
  if (this.store.isDOM(target)) {
2196
- const callbackWithCdr = (event) => {
2197
- const value = callback(event);
2198
- if (targetCdr)
2199
- targetCdr.detectChanges();
2200
- this.store.rootCdr.detectChanges();
2201
- return value;
2202
- };
2203
2205
  return this.delegate.listen(target, eventName, callbackWithCdr);
2204
2206
  }
2207
+ // @ts-expect-error - we know that target is not DOM node
2208
+ if (target === this.store.rootScene) {
2209
+ let [domTarget, event] = eventName.split(':');
2210
+ if (event == null) {
2211
+ event = domTarget;
2212
+ domTarget = '';
2213
+ }
2214
+ const eventTarget = domTarget === 'window'
2215
+ ? target['ownerDocument']['defaultView']
2216
+ : target['ownerDocument'];
2217
+ return this.delegate.listen(eventTarget, event, callbackWithCdr);
2218
+ }
2205
2219
  if (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'three' ||
2206
2220
  (target.__ngt_renderer__[0 /* NgtRendererClassId.type */] === 'compound' &&
2207
2221
  target.__ngt_renderer__[6 /* NgtRendererClassId.compounded */])) {