xenos
Version:
Xenos is a data grid built upon angular2 and bootstrap.
35 lines (28 loc) • 1.1 kB
text/typescript
import { DataGridColumn } from "./data-grid-column";
import { ItemsChangedArgs } from "./items-changed.args";
import { Subject } from "rxjs/Subject";
export class ObservableArray<T> extends Array<T> {
constructor() {
super();
this.itemsChanged = new Subject<ItemsChangedArgs<T>>();
}
public itemsChanged: Subject<ItemsChangedArgs<T>>;
public splice(start: number, deleteCount?: number, ...items: T[]): T[] {
if (deleteCount == null) {
deleteCount = this.length;
}
var elements = super.splice(start, deleteCount, ...items);
this.itemsChanged.next(new ItemsChangedArgs([], elements));
return elements;
}
public push(...items: T[]): number {
items.forEach(x => super.push(x));
this.itemsChanged.next(new ItemsChangedArgs(items, []));
return this.length;
}
public add(...items: T[]): number {
items.forEach(x => super.push(x));
this.itemsChanged.next(new ItemsChangedArgs(items, []));
return this.length;
}
}