Skip to content

Commit 1ee8902

Browse files
authored
Merge pull request #3039 from adumesny/master
ng: GridstackComponent not doing event for nested
2 parents e6129de + 2048664 commit 1ee8902

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

angular/projects/lib/src/lib/gridstack.component.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)