UNPKG

ng2-stable-nxtc

Version:

Angular Smart Table neXtCode Version

101 lines 2.75 kB
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