@@ -23,7 +23,14 @@ import { is } from '../utils/is';
2323import { injectNgtCatalogue , type NgtAnyConstructor } from './catalogue' ;
2424import { HTML , ROUTED_SCENE , SPECIAL_DOM_TAG } from './constants' ;
2525import { NGT_COMPOUND_PREFIXES , NgtRendererStore , type NgtRendererNode , type NgtRendererState } from './store' ;
26- import { NgtRendererClassId , attachThreeChild , kebabToPascal , processThreeEvent , removeThreeChild } from './utils' ;
26+ import {
27+ NgtCompoundClassId ,
28+ NgtRendererClassId ,
29+ attachThreeChild ,
30+ kebabToPascal ,
31+ processThreeEvent ,
32+ removeThreeChild ,
33+ } from './utils' ;
2734
2835@Injectable ( )
2936class NgtRendererFactory implements RendererFactory2 {
@@ -189,12 +196,12 @@ class NgtRenderer implements Renderer2 {
189196 return ;
190197 }
191198
192- if ( cRS [ NgtRendererClassId . type ] === 'comment' ) {
199+ if ( cRS ?. [ NgtRendererClassId . type ] === 'comment' ) {
193200 this . store . setParent ( newChild , parent ) ;
194201 return ;
195202 }
196203
197- if ( cRS [ NgtRendererClassId . injectedParent ] ) {
204+ if ( cRS ?. [ NgtRendererClassId . injectedParent ] ) {
198205 if ( is . ref ( cRS [ NgtRendererClassId . injectedParent ] ) ) {
199206 const injector = cRS [ NgtRendererClassId . injectorFactory ] ( ) . get ( Injector , null ) ;
200207 if ( ! injector ) {
@@ -228,7 +235,7 @@ class NgtRenderer implements Renderer2 {
228235 this . store . addChild ( parent , newChild ) ;
229236
230237 // if new child is a portal
231- if ( cRS [ NgtRendererClassId . type ] === 'portal' ) {
238+ if ( cRS ?. [ NgtRendererClassId . type ] === 'portal' ) {
232239 this . store . processPortalContainer ( newChild ) ;
233240 if ( cRS [ NgtRendererClassId . portalContainer ] ) {
234241 this . appendChild ( parent , cRS [ NgtRendererClassId . portalContainer ] ) ;
@@ -246,7 +253,7 @@ class NgtRenderer implements Renderer2 {
246253 }
247254
248255 // if both are three instances, straightforward case
249- if ( pRS [ NgtRendererClassId . type ] === 'three' && cRS [ NgtRendererClassId . type ] === 'three' ) {
256+ if ( pRS [ NgtRendererClassId . type ] === 'three' && cRS ?. [ NgtRendererClassId . type ] === 'three' ) {
250257 // if child already attached to a parent, skip
251258 if ( getLocalState ( newChild ) . parent && untracked ( getLocalState ( newChild ) . parent ) ) return ;
252259 // attach THREE child
@@ -261,7 +268,7 @@ class NgtRenderer implements Renderer2 {
261268
262269 // if only the parent is the THREE instance
263270 if ( pRS [ NgtRendererClassId . type ] === 'three' ) {
264- for ( const renderChild of cRS [ NgtRendererClassId . children ] ) {
271+ for ( const renderChild of cRS ?. [ NgtRendererClassId . children ] ) {
265272 this . appendChild ( parent , renderChild ) ;
266273 }
267274 }
@@ -386,12 +393,12 @@ class NgtRenderer implements Renderer2 {
386393 }
387394
388395 if ( rS [ NgtRendererClassId . compounded ] . __ngt_renderer__ [ NgtRendererClassId . compound ] ) {
389- Object . assign ( rS [ NgtRendererClassId . compounded ] . __ngt_renderer__ [ NgtRendererClassId . compound ] , {
390- props : Object . assign (
391- rS [ NgtRendererClassId . compounded ] . __ngt_renderer__ [ NgtRendererClassId . compound ] ,
392- { [ name ] : value } ,
393- ) ,
394- } ) ;
396+ Object . assign (
397+ rS [ NgtRendererClassId . compounded ] . __ngt_renderer__ [ NgtRendererClassId . compound ] [
398+ NgtCompoundClassId . props
399+ ] ,
400+ { [ name ] : value } ,
401+ ) ;
395402 }
396403 this . setProperty ( rS [ NgtRendererClassId . compounded ] , name , value ) ;
397404 return ;
0 commit comments