1+ import { DOCUMENT } from '@angular/common' ;
12import { ChangeDetectorRef , inject , Injectable , Renderer2 , RendererFactory2 , RendererType2 } from '@angular/core' ;
23import { NGT_CATALOGUE } from '../di/catalogue' ;
34import { NgtStore } from '../stores/store' ;
@@ -15,6 +16,7 @@ export class NgtRendererFactory implements RendererFactory2 {
1516 private readonly store = inject ( NgtStore ) ;
1617 private readonly catalogue = inject ( NGT_CATALOGUE ) ;
1718 private readonly compoundPrefixes = inject ( NGT_COMPOUND_PREFIXES ) ;
19+ private readonly document = inject ( DOCUMENT ) ;
1820
1921 private rendererMap = new Map < string , Renderer2 > ( ) ;
2022
@@ -30,6 +32,7 @@ export class NgtRendererFactory implements RendererFactory2 {
3032 store : this . store ,
3133 cdr : this . cdr ,
3234 compoundPrefixes : this . compoundPrefixes ,
35+ document : this . document ,
3336 } ) ;
3437 renderer = new NgtRenderer ( delegateRenderer , store , this . catalogue , true ) ;
3538 this . rendererMap . set ( type . id , renderer ) ;
@@ -40,6 +43,7 @@ export class NgtRendererFactory implements RendererFactory2 {
4043 store : this . store ,
4144 cdr : this . cdr ,
4245 compoundPrefixes : this . compoundPrefixes ,
46+ document : this . document ,
4347 } ) ;
4448 renderer = new NgtRenderer ( delegateRenderer , store , this . catalogue ) ;
4549 this . rendererMap . set ( type . id , renderer ) ;
@@ -318,6 +322,11 @@ export class NgtRenderer implements Renderer2 {
318322 }
319323
320324 listen ( target : NgtRendererNode , eventName : string , callback : ( event : any ) => boolean | void ) : ( ) => void {
325+ // if target is Document (DOM), then we pass that to delegate Renderer
326+ if ( this . store . isDocument ( target ) ) {
327+ return this . delegate . listen ( target , eventName , callback ) ;
328+ }
329+
321330 if (
322331 target . __ngt_renderer__ [ NgtRendererClassId . type ] === 'three' ||
323332 ( target . __ngt_renderer__ [ NgtRendererClassId . type ] === 'compound' &&
0 commit comments