@@ -178,23 +178,35 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy {
178178 /** get all known events as easy to use Outputs for convenience */
179179 protected hookEvents ( grid ?: GridStack ) {
180180 if ( ! grid ) return ;
181+ // nested grids don't have events in v12.1+ so skip
182+ if ( grid . parentGridNode ) return ;
181183 grid
182- . on ( 'added' , ( event : Event , nodes : GridStackNode [ ] ) => { this . checkEmpty ( ) ; this . addedCB . emit ( { event, nodes} ) ; } )
184+ . on ( 'added' , ( event : Event , nodes : GridStackNode [ ] ) => {
185+ const gridComp = ( nodes [ 0 ] . grid ?. el as GridCompHTMLElement ) . _gridComp || this ;
186+ gridComp . checkEmpty ( ) ;
187+ this . addedCB . emit ( { event, nodes} ) ;
188+ } )
183189 . on ( 'change' , ( event : Event , nodes : GridStackNode [ ] ) => this . changeCB . emit ( { event, nodes} ) )
184190 . on ( 'disable' , ( event : Event ) => this . disableCB . emit ( { event} ) )
185191 . on ( 'drag' , ( event : Event , el : GridItemHTMLElement ) => this . dragCB . emit ( { event, el} ) )
186192 . on ( 'dragstart' , ( event : Event , el : GridItemHTMLElement ) => this . dragStartCB . emit ( { event, el} ) )
187193 . on ( 'dragstop' , ( event : Event , el : GridItemHTMLElement ) => this . dragStopCB . emit ( { event, el} ) )
188194 . on ( 'dropped' , ( event : Event , previousNode : GridStackNode , newNode : GridStackNode ) => this . droppedCB . emit ( { event, previousNode, newNode} ) )
189195 . on ( 'enable' , ( event : Event ) => this . enableCB . emit ( { event} ) )
190- . on ( 'removed' , ( event : Event , nodes : GridStackNode [ ] ) => { this . checkEmpty ( ) ; this . removedCB . emit ( { event, nodes} ) ; } )
196+ . on ( 'removed' , ( event : Event , nodes : GridStackNode [ ] ) => {
197+ const gridComp = ( nodes [ 0 ] . grid ?. el as GridCompHTMLElement ) . _gridComp || this ;
198+ gridComp . checkEmpty ( ) ;
199+ this . removedCB . emit ( { event, nodes} ) ;
200+ } )
191201 . on ( 'resize' , ( event : Event , el : GridItemHTMLElement ) => this . resizeCB . emit ( { event, el} ) )
192202 . on ( 'resizestart' , ( event : Event , el : GridItemHTMLElement ) => this . resizeStartCB . emit ( { event, el} ) )
193203 . on ( 'resizestop' , ( event : Event , el : GridItemHTMLElement ) => this . resizeStopCB . emit ( { event, el} ) )
194204 }
195205
196206 protected unhookEvents ( grid ?: GridStack ) {
197207 if ( ! grid ) return ;
208+ // nested grids don't have events in v12.1+ so skip
209+ if ( grid . parentGridNode ) return ;
198210 grid . off ( 'added change disable drag dragstart dragstop dropped enable removed resize resizestart resizestop' ) ;
199211 }
200212}
0 commit comments