@@ -13,6 +13,11 @@ import { ComponentsMap, NgComponentClass } from './components/components-map';
13
13
import { TextField } from './components/nodes' ;
14
14
import { NgView } from './components/view' ;
15
15
16
+ export interface ElementReference {
17
+ previous : NgView ;
18
+ next : NgView ;
19
+ }
20
+
16
21
@Injectable ( )
17
22
export class NodeguiRendererFactory implements RendererFactory2 {
18
23
protected renderer : Renderer2 ;
@@ -87,12 +92,17 @@ export class NodeguiRenderer implements Renderer2 {
87
92
88
93
destroy ( ) : void { }
89
94
90
- insertBefore ( parent : NgComponent , newChild : any , refChild : any ) : void {
91
- // TODO: insert before for router-outlet
92
- console . log ( 'insertBefore' ) ;
93
- console . log ( parent , newChild , refChild ) ;
95
+ insertBefore (
96
+ parent : NgComponent ,
97
+ newChild : any ,
98
+ { previous, next } : ElementReference
99
+ ) : void {
100
+ newChild . parent = previous ;
101
+ previous . insertBefore ( newChild , next ) ;
102
+ }
94
103
95
- parent . insertBefore ( newChild , refChild ) ;
104
+ removeChild ( parent : NgComponent , oldChild : NgView ) : void {
105
+ parent . removeChild ( oldChild ) ;
96
106
}
97
107
98
108
listen (
@@ -107,11 +117,16 @@ export class NodeguiRenderer implements Renderer2 {
107
117
return ( ) => target . removeEventListener ( eventName , callbackFunc ) ;
108
118
}
109
119
110
- nextSibling ( node : any ) : any {
111
- console . log ( 'nextSibling' ) ;
120
+ nextSibling ( node : any ) : ElementReference {
121
+ return {
122
+ previous : node ,
123
+ next : node . nextSibling
124
+ } ;
112
125
}
113
126
114
- parentNode ( node : any ) : any { }
127
+ parentNode ( node : any ) : any {
128
+ return node . parent ? node . parent : node ;
129
+ }
115
130
116
131
removeAttribute (
117
132
el : NgComponent ,
@@ -121,10 +136,6 @@ export class NodeguiRenderer implements Renderer2 {
121
136
el . removeAttribute ( name , namespace ) ;
122
137
}
123
138
124
- removeChild ( parent : NgComponent , oldChild : any ) : void {
125
- parent . removeChild ( oldChild ) ;
126
- }
127
-
128
139
removeClass ( el : NgComponent , name : string ) : void {
129
140
el . removeClass ( name ) ;
130
141
}
0 commit comments