Angular gridster 2
npm install angular-gridster2
!Node CI


What Angular supports here
npm install angular-gridster2 --save
``javascript
import {Component} from '@angular/core';
import {Gridster, GridsterItemComponent} from 'angular-gridster2';
@Component({
standalone: true,
imports: [Gridster, GridsterItemComponent],
...
})
`
`html`
@for (item of dashboard; track item) {
}
Initialize a simple dashboard:
`typescript
import { GridsterConfig, GridsterItem } from 'angular-gridster2';
options: GridsterConfig;
dashboard: Array
static itemChange(item, itemComponent) {
console.info('itemChanged', item, itemComponent);
}
static itemResize(item, itemComponent) {
console.info('itemResized', item, itemComponent);
}
ngOnInit() {
this.options = {
itemChangeCallback: AppComponent.itemChange,
itemResizeCallback: AppComponent.itemResize,
};
this.dashboard = [
{cols: 2, rows: 1, y: 0, x: 0},
{cols: 2, rows: 2, y: 0, x: 2}
];
}
changedOptions() {
this.options.api.optionsChanged();
}
removeItem(item) {
this.dashboard.splice(this.dashboard.indexOf(item), 1);
}
addItem() {
this.dashboard.push({});
}
`
##### Note: The gridster will take all the available space from the parent. It will not size depending on content. The parent of the component needs to have a size.
iFrames can interfere with drag/resize of widgets. For a workaround please read this issue #233
Option 1 (without text selection):
`html`
Some content to click without dragging the widget
Option 2 (with text selection):
`html``
Some content to select and click without dragging the widget
The MIT License
Copyright (c) 2026 Tiberiu Zuld