1
1
import { ChangeDetectorRef , inject , Injectable , Renderer2 , RendererFactory2 , RendererType2 } from '@angular/core' ;
2
- import { ɵDomRendererFactory2 as DomRendererFactory2 } from '@angular/platform-browser' ;
3
2
import { NGT_CATALOGUE } from '../di/catalogue' ;
4
3
import { NgtStore } from '../stores/store' ;
5
4
import { getLocalState , prepare } from '../utils/instance' ;
@@ -11,7 +10,7 @@ import { attachThreeChild, kebabToPascal, processThreeEvent, removeThreeChild, S
11
10
12
11
@Injectable ( )
13
12
export class NgtRendererFactory implements RendererFactory2 {
14
- private readonly domRendererFactory = inject ( DomRendererFactory2 ) ;
13
+ private readonly delegateRendererFactory = inject ( RendererFactory2 , { skipSelf : true } ) ;
15
14
private readonly cdr = inject ( ChangeDetectorRef ) ;
16
15
private readonly store = inject ( NgtStore ) ;
17
16
private readonly catalogue = inject ( NGT_CATALOGUE ) ;
@@ -20,8 +19,8 @@ export class NgtRendererFactory implements RendererFactory2 {
20
19
private rendererMap = new Map < string , Renderer2 > ( ) ;
21
20
22
21
createRenderer ( hostElement : any , type : RendererType2 | null ) : Renderer2 {
23
- const domRenderer = this . domRendererFactory . createRenderer ( hostElement , type ) ;
24
- if ( ! type ) return domRenderer ;
22
+ const delegateRenderer = this . delegateRendererFactory . createRenderer ( hostElement , type ) ;
23
+ if ( ! type ) return delegateRenderer ;
25
24
26
25
let renderer = this . rendererMap . get ( type . id ) ;
27
26
if ( renderer ) return renderer ;
@@ -32,7 +31,7 @@ export class NgtRendererFactory implements RendererFactory2 {
32
31
cdr : this . cdr ,
33
32
compoundPrefixes : this . compoundPrefixes ,
34
33
} ) ;
35
- renderer = new NgtRenderer ( domRenderer , store , this . catalogue , true ) ;
34
+ renderer = new NgtRenderer ( delegateRenderer , store , this . catalogue , true ) ;
36
35
this . rendererMap . set ( type . id , renderer ) ;
37
36
}
38
37
@@ -42,7 +41,7 @@ export class NgtRendererFactory implements RendererFactory2 {
42
41
cdr : this . cdr ,
43
42
compoundPrefixes : this . compoundPrefixes ,
44
43
} ) ;
45
- renderer = new NgtRenderer ( domRenderer , store , this . catalogue ) ;
44
+ renderer = new NgtRenderer ( delegateRenderer , store , this . catalogue ) ;
46
45
this . rendererMap . set ( type . id , renderer ) ;
47
46
}
48
47
@@ -54,14 +53,14 @@ export class NgtRenderer implements Renderer2 {
54
53
private first = false ;
55
54
56
55
constructor (
57
- private readonly domRenderer : Renderer2 ,
56
+ private readonly delegate : Renderer2 ,
58
57
private readonly store : NgtRendererStore ,
59
58
private readonly catalogue : Record < string , new ( ...args : any [ ] ) => any > ,
60
59
private readonly root = false
61
60
) { }
62
61
63
62
createElement ( name : string , namespace ?: string | null | undefined ) {
64
- const element = this . domRenderer . createElement ( name , namespace ) ;
63
+ const element = this . delegate . createElement ( name , namespace ) ;
65
64
66
65
// on first pass, we return the Root Scene as the root node
67
66
if ( this . root && ! this . first ) {
@@ -121,7 +120,7 @@ export class NgtRenderer implements Renderer2 {
121
120
}
122
121
123
122
createComment ( value : string ) {
124
- const comment = this . domRenderer . createComment ( value ) ;
123
+ const comment = this . delegate . createComment ( value ) ;
125
124
return this . store . createNode ( 'comment' , comment ) ;
126
125
}
127
126
@@ -266,7 +265,7 @@ export class NgtRenderer implements Renderer2 {
266
265
267
266
parentNode ( node : NgtRendererNode ) {
268
267
if ( node . __ngt_renderer__ ?. [ NgtRendererClassId . parent ] ) return node . __ngt_renderer__ [ NgtRendererClassId . parent ] ;
269
- return this . domRenderer . parentNode ( node ) ;
268
+ return this . delegate . parentNode ( node ) ;
270
269
}
271
270
272
271
setAttribute ( el : NgtRendererNode , name : string , value : string , namespace ?: string | null | undefined ) : void {
@@ -342,17 +341,17 @@ export class NgtRenderer implements Renderer2 {
342
341
}
343
342
344
343
get data ( ) : { [ key : string ] : any } {
345
- return this . domRenderer . data ;
344
+ return this . delegate . data ;
346
345
}
347
- createText = this . domRenderer . createText . bind ( this . domRenderer ) ;
348
- destroy = this . domRenderer . destroy . bind ( this . domRenderer ) ;
346
+ createText = this . delegate . createText . bind ( this . delegate ) ;
347
+ destroy = this . delegate . destroy . bind ( this . delegate ) ;
349
348
destroyNode : ( ( node : any ) => void ) | null = null ;
350
- selectRootElement = this . domRenderer . selectRootElement . bind ( this . domRenderer ) ;
351
- nextSibling = this . domRenderer . nextSibling . bind ( this . domRenderer ) ;
352
- removeAttribute = this . domRenderer . removeAttribute . bind ( this . domRenderer ) ;
353
- addClass = this . domRenderer . addClass . bind ( this . domRenderer ) ;
354
- removeClass = this . domRenderer . removeClass . bind ( this . domRenderer ) ;
355
- setStyle = this . domRenderer . setStyle . bind ( this . domRenderer ) ;
356
- removeStyle = this . domRenderer . removeStyle . bind ( this . domRenderer ) ;
357
- setValue = this . domRenderer . setValue . bind ( this . domRenderer ) ;
349
+ selectRootElement = this . delegate . selectRootElement . bind ( this . delegate ) ;
350
+ nextSibling = this . delegate . nextSibling . bind ( this . delegate ) ;
351
+ removeAttribute = this . delegate . removeAttribute . bind ( this . delegate ) ;
352
+ addClass = this . delegate . addClass . bind ( this . delegate ) ;
353
+ removeClass = this . delegate . removeClass . bind ( this . delegate ) ;
354
+ setStyle = this . delegate . setStyle . bind ( this . delegate ) ;
355
+ removeStyle = this . delegate . removeStyle . bind ( this . delegate ) ;
356
+ setValue = this . delegate . setValue . bind ( this . delegate ) ;
358
357
}
0 commit comments