@@ -217,7 +217,7 @@ export class GridStack {
217217 public engine : GridStackEngine ;
218218
219219 /** point to a parent grid item if we're nested (inside a grid-item in between 2 Grids) */
220- public parentGridItem ?: GridStackNode ;
220+ public parentGridNode ?: GridStackNode ;
221221
222222 protected static engineClass : typeof GridStackEngine ;
223223 protected resizeObserver : ResizeObserver ;
@@ -357,13 +357,13 @@ export class GridStack {
357357 }
358358
359359 // check if we're been nested, and if so update our style and keep pointer around (used during save)
360- const grandParent : GridItemHTMLElement = this . el . parentElement ?. parentElement ;
361- let parentGridItem = grandParent ?. classList . contains ( gridDefaults . itemClass ) ? grandParent . gridstackNode : undefined ;
362- if ( parentGridItem ) {
363- parentGridItem . subGrid = this ;
364- this . parentGridItem = parentGridItem ;
360+ const parentGridItem : GridItemHTMLElement = this . el . closest ( '.' + gridDefaults . itemClass ) ;
361+ let parentNode = parentGridItem ?. gridstackNode ;
362+ if ( parentNode ) {
363+ parentNode . subGrid = this ;
364+ this . parentGridNode = parentNode ;
365365 this . el . classList . add ( 'grid-stack-nested' ) ;
366- parentGridItem . el . classList . add ( 'grid-stack-sub-grid' ) ;
366+ parentNode . el . classList . add ( 'grid-stack-sub-grid' ) ;
367367 }
368368
369369 this . _isAutoCellHeight = ( opts . cellHeight === 'auto' ) ;
@@ -511,7 +511,7 @@ export class GridStack {
511511 let grid : GridStack = this ;
512512 while ( grid && ! subGridTemplate ) {
513513 subGridTemplate = grid . opts ?. subGridOpts ;
514- grid = grid . parentGridItem ?. grid ;
514+ grid = grid . parentGridNode ?. grid ;
515515 }
516516 //... and set the create options
517517 ops = Utils . cloneDeep ( { ...( subGridTemplate || { } ) , children : undefined , ...( ops || node . subGridOpts || { } ) } ) ;
@@ -584,20 +584,20 @@ export class GridStack {
584584 * to the original grid-item. Also called to remove empty sub-grids when last item is dragged out (since re-creating is simple)
585585 */
586586 public removeAsSubGrid ( nodeThatRemoved ?: GridStackNode ) : void {
587- let pGrid = this . parentGridItem ?. grid ;
587+ let pGrid = this . parentGridNode ?. grid ;
588588 if ( ! pGrid ) return ;
589589
590590 pGrid . batchUpdate ( ) ;
591- pGrid . removeWidget ( this . parentGridItem . el , true , true ) ;
591+ pGrid . removeWidget ( this . parentGridNode . el , true , true ) ;
592592 this . engine . nodes . forEach ( n => {
593593 // migrate any children over and offsetting by our location
594- n . x += this . parentGridItem . x ;
595- n . y += this . parentGridItem . y ;
594+ n . x += this . parentGridNode . x ;
595+ n . y += this . parentGridNode . y ;
596596 pGrid . makeWidget ( n . el , n ) ;
597597 } ) ;
598598 pGrid . batchUpdate ( false ) ;
599- if ( this . parentGridItem ) delete this . parentGridItem . subGrid ;
600- delete this . parentGridItem ;
599+ if ( this . parentGridNode ) delete this . parentGridNode . subGrid ;
600+ delete this . parentGridNode ;
601601
602602 // create an artificial event for the original grid now that this one is gone (got a leave, but won't get enter)
603603 if ( nodeThatRemoved ) {
@@ -979,8 +979,8 @@ export class GridStack {
979979 this . el . parentNode . removeChild ( this . el ) ;
980980 }
981981 this . _removeStylesheet ( ) ;
982- if ( this . parentGridItem ) delete this . parentGridItem . subGrid ;
983- delete this . parentGridItem ;
982+ if ( this . parentGridNode ) delete this . parentGridNode . subGrid ;
983+ delete this . parentGridNode ;
984984 delete this . opts ;
985985 delete this . _placeholder ;
986986 delete this . engine ;
@@ -1623,7 +1623,7 @@ export class GridStack {
16231623 /** @internal */
16241624 protected _updateContainerHeight ( ) : GridStack {
16251625 if ( ! this . engine || this . engine . batchMode ) return this ;
1626- const parent = this . parentGridItem ;
1626+ const parent = this . parentGridNode ;
16271627 let row = this . getRow ( ) + this . _extraDragRow ; // this checks for minRow already
16281628 const cellHeight = this . opts . cellHeight as number ;
16291629 const unit = this . opts . cellHeightUnit ;
@@ -1776,9 +1776,9 @@ export class GridStack {
17761776
17771777 // see if we're nested and take our column count from our parent....
17781778 let columnChanged = false ;
1779- if ( this . _autoColumn && this . parentGridItem ) {
1780- if ( this . opts . column !== this . parentGridItem . w ) {
1781- this . column ( this . parentGridItem . w , 'none' ) ;
1779+ if ( this . _autoColumn && this . parentGridNode ) {
1780+ if ( this . opts . column !== this . parentGridNode . w ) {
1781+ this . column ( this . parentGridNode . w , 'none' ) ;
17821782 columnChanged = true ;
17831783 }
17841784 } else {
@@ -1828,7 +1828,7 @@ export class GridStack {
18281828 protected _updateResizeEvent ( forceRemove = false ) : GridStack {
18291829 // only add event if we're not nested (parent will call us) and we're auto sizing cells or supporting dynamic column (i.e. doing work)
18301830 // or supporting new sizeToContent option.
1831- const trackSize = ! this . parentGridItem && ( this . _isAutoCellHeight || this . opts . sizeToContent || this . opts . columnOpts
1831+ const trackSize = ! this . parentGridNode && ( this . _isAutoCellHeight || this . opts . sizeToContent || this . opts . columnOpts
18321832 || this . engine . nodes . find ( n => n . sizeToContent ) ) ;
18331833
18341834 if ( ! forceRemove && trackSize && ! this . resizeObserver ) {
@@ -2266,7 +2266,7 @@ export class GridStack {
22662266 oGrid . engine . removedNodes . push ( origNode ) ;
22672267 oGrid . _triggerRemoveEvent ( ) . _triggerChangeEvent ( ) ;
22682268 // if it's an empty sub-grid that got auto-created, nuke it
2269- if ( oGrid . parentGridItem && ! oGrid . engine . nodes . length && oGrid . opts . subGridDynamic ) {
2269+ if ( oGrid . parentGridNode && ! oGrid . engine . nodes . length && oGrid . opts . subGridDynamic ) {
22702270 oGrid . removeAsSubGrid ( ) ;
22712271 }
22722272 }
@@ -2303,7 +2303,7 @@ export class GridStack {
23032303 // resizeToContent is skipped in _prepareElement() until node is visible (clientHeight=0) so call it now
23042304 this . resizeToContentCheck ( false , node ) ;
23052305 if ( subGrid ) {
2306- subGrid . parentGridItem = node ;
2306+ subGrid . parentGridNode = node ;
23072307 if ( ! subGrid . opts . styleInHead ) subGrid . _updateStyles ( true ) ; // re-create sub-grid styles now that we've moved
23082308 }
23092309 this . _updateContainerHeight ( ) ;
0 commit comments