@@ -178,23 +178,35 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy {
178
178
/** get all known events as easy to use Outputs for convenience */
179
179
protected hookEvents ( grid ?: GridStack ) {
180
180
if ( ! grid ) return ;
181
+ // nested grids don't have events in v12.1+ so skip
182
+ if ( grid . parentGridNode ) return ;
181
183
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
+ } )
183
189
. on ( 'change' , ( event : Event , nodes : GridStackNode [ ] ) => this . changeCB . emit ( { event, nodes} ) )
184
190
. on ( 'disable' , ( event : Event ) => this . disableCB . emit ( { event} ) )
185
191
. on ( 'drag' , ( event : Event , el : GridItemHTMLElement ) => this . dragCB . emit ( { event, el} ) )
186
192
. on ( 'dragstart' , ( event : Event , el : GridItemHTMLElement ) => this . dragStartCB . emit ( { event, el} ) )
187
193
. on ( 'dragstop' , ( event : Event , el : GridItemHTMLElement ) => this . dragStopCB . emit ( { event, el} ) )
188
194
. on ( 'dropped' , ( event : Event , previousNode : GridStackNode , newNode : GridStackNode ) => this . droppedCB . emit ( { event, previousNode, newNode} ) )
189
195
. 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
+ } )
191
201
. on ( 'resize' , ( event : Event , el : GridItemHTMLElement ) => this . resizeCB . emit ( { event, el} ) )
192
202
. on ( 'resizestart' , ( event : Event , el : GridItemHTMLElement ) => this . resizeStartCB . emit ( { event, el} ) )
193
203
. on ( 'resizestop' , ( event : Event , el : GridItemHTMLElement ) => this . resizeStopCB . emit ( { event, el} ) )
194
204
}
195
205
196
206
protected unhookEvents ( grid ?: GridStack ) {
197
207
if ( ! grid ) return ;
208
+ // nested grids don't have events in v12.1+ so skip
209
+ if ( grid . parentGridNode ) return ;
198
210
grid . off ( 'added change disable drag dragstart dragstop dropped enable removed resize resizestart resizestop' ) ;
199
211
}
200
212
}
0 commit comments