@@ -13,6 +13,11 @@ import { ComponentsMap, NgComponentClass } from './components/components-map';
1313import { TextField } from './components/nodes' ;
1414import { NgView } from './components/view' ;
1515
16+ export interface ElementReference {
17+ previous : NgView ;
18+ next : NgView ;
19+ }
20+
1621@Injectable ( )
1722export class NodeguiRendererFactory implements RendererFactory2 {
1823 protected renderer : Renderer2 ;
@@ -87,12 +92,17 @@ export class NodeguiRenderer implements Renderer2 {
8792
8893 destroy ( ) : void { }
8994
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+ }
94103
95- parent . insertBefore ( newChild , refChild ) ;
104+ removeChild ( parent : NgComponent , oldChild : NgView ) : void {
105+ parent . removeChild ( oldChild ) ;
96106 }
97107
98108 listen (
@@ -107,11 +117,16 @@ export class NodeguiRenderer implements Renderer2 {
107117 return ( ) => target . removeEventListener ( eventName , callbackFunc ) ;
108118 }
109119
110- nextSibling ( node : any ) : any {
111- console . log ( 'nextSibling' ) ;
120+ nextSibling ( node : any ) : ElementReference {
121+ return {
122+ previous : node ,
123+ next : node . nextSibling
124+ } ;
112125 }
113126
114- parentNode ( node : any ) : any { }
127+ parentNode ( node : any ) : any {
128+ return node . parent ? node . parent : node ;
129+ }
115130
116131 removeAttribute (
117132 el : NgComponent ,
@@ -121,10 +136,6 @@ export class NodeguiRenderer implements Renderer2 {
121136 el . removeAttribute ( name , namespace ) ;
122137 }
123138
124- removeChild ( parent : NgComponent , oldChild : any ) : void {
125- parent . removeChild ( oldChild ) ;
126- }
127-
128139 removeClass ( el : NgComponent , name : string ) : void {
129140 el . removeClass ( name ) ;
130141 }
0 commit comments