ng2-stable-nxtc
Version:
Angular Smart Table neXtCode Version
101 lines • 2.75 kB
JavaScript
import { Subject } from 'rxjs/Subject';
export class DataSource {
constructor() {
this.onChangedSource = new Subject();
this.onAddedSource = new Subject();
this.onUpdatedSource = new Subject();
this.onRemovedSource = new Subject();
}
refresh() {
this.emitOnChanged('refresh');
}
load(data) {
this.emitOnChanged('load');
return Promise.resolve();
}
onChanged() {
return this.onChangedSource.asObservable();
}
onAdded() {
return this.onAddedSource.asObservable();
}
onUpdated() {
return this.onUpdatedSource.asObservable();
}
onRemoved() {
return this.onRemovedSource.asObservable();
}
prepend(element) {
this.emitOnAdded(element);
this.emitOnChanged('prepend');
return Promise.resolve();
}
append(element) {
this.emitOnAdded(element);
this.emitOnChanged('append');
return Promise.resolve();
}
add(element) {
this.emitOnAdded(element);
this.emitOnChanged('add');
return Promise.resolve();
}
remove(element) {
this.emitOnRemoved(element);
this.emitOnChanged('remove');
return Promise.resolve();
}
update(element, values) {
this.emitOnUpdated(element);
this.emitOnChanged('update');
return Promise.resolve();
}
empty() {
this.emitOnChanged('empty');
return Promise.resolve();
}
setSort(conf, doEmit) {
if (doEmit) {
this.emitOnChanged('sort');
}
}
setFilter(conf, andOperator, doEmit) {
if (doEmit) {
this.emitOnChanged('filter');
}
}
addFilter(fieldConf, andOperator, doEmit) {
if (doEmit) {
this.emitOnChanged('filter');
}
}
setPaging(page, perPage, doEmit) {
if (doEmit) {
this.emitOnChanged('paging');
}
}
setPage(page, doEmit) {
if (doEmit) {
this.emitOnChanged('page');
}
}
emitOnRemoved(element) {
this.onRemovedSource.next(element);
}
emitOnUpdated(element) {
this.onUpdatedSource.next(element);
}
emitOnAdded(element) {
this.onAddedSource.next(element);
}
emitOnChanged(action) {
this.getElements().then((elements) => this.onChangedSource.next({
action: action,
elements: elements,
paging: this.getPaging(),
filter: this.getFilter(),
sort: this.getSort(),
}));
}
}
//# sourceMappingURL=data-source.js.map