1
+ import { DOCUMENT } from '@angular/common' ;
1
2
import { ChangeDetectorRef , inject , Injectable , Renderer2 , RendererFactory2 , RendererType2 } from '@angular/core' ;
2
3
import { NGT_CATALOGUE } from '../di/catalogue' ;
3
4
import { NgtStore } from '../stores/store' ;
@@ -15,6 +16,7 @@ export class NgtRendererFactory implements RendererFactory2 {
15
16
private readonly store = inject ( NgtStore ) ;
16
17
private readonly catalogue = inject ( NGT_CATALOGUE ) ;
17
18
private readonly compoundPrefixes = inject ( NGT_COMPOUND_PREFIXES ) ;
19
+ private readonly document = inject ( DOCUMENT ) ;
18
20
19
21
private rendererMap = new Map < string , Renderer2 > ( ) ;
20
22
@@ -30,6 +32,7 @@ export class NgtRendererFactory implements RendererFactory2 {
30
32
store : this . store ,
31
33
cdr : this . cdr ,
32
34
compoundPrefixes : this . compoundPrefixes ,
35
+ document : this . document ,
33
36
} ) ;
34
37
renderer = new NgtRenderer ( delegateRenderer , store , this . catalogue , true ) ;
35
38
this . rendererMap . set ( type . id , renderer ) ;
@@ -40,6 +43,7 @@ export class NgtRendererFactory implements RendererFactory2 {
40
43
store : this . store ,
41
44
cdr : this . cdr ,
42
45
compoundPrefixes : this . compoundPrefixes ,
46
+ document : this . document ,
43
47
} ) ;
44
48
renderer = new NgtRenderer ( delegateRenderer , store , this . catalogue ) ;
45
49
this . rendererMap . set ( type . id , renderer ) ;
@@ -318,6 +322,11 @@ export class NgtRenderer implements Renderer2 {
318
322
}
319
323
320
324
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
+
321
330
if (
322
331
target . __ngt_renderer__ [ NgtRendererClassId . type ] === 'three' ||
323
332
( target . __ngt_renderer__ [ NgtRendererClassId . type ] === 'compound' &&
0 commit comments