UNPKG

e5core-angular-ui

Version:

e5 Anywhere Angular UI

155 lines 12.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { DataSource } from "@angular/cdk/table"; import { BehaviorSubject } from "rxjs"; export class SearchMatTableDataSource extends DataSource { /** * @param {?} datasource */ constructor(datasource) { super(); this.datasource = datasource; this.subject$ = new BehaviorSubject([]); this.loading$ = new BehaviorSubject(false); //this.refresh() ; } /** * @param {?} paginator * @return {?} */ set paginator(paginator) { this._paginator = paginator; this._paginator.page.subscribe(x => { // {"previousPageIndex":0,"pageIndex":1,"pageSize":10,"length":100} this.update(this.lastQuery); }); } /** * @param {?} sort * @return {?} */ set sort(sort) { this._sort = sort; this._sort.sortChange.subscribe(ob => { // {active: "detail", direction: ""} this.orderby = ob; this.update(this.lastQuery); }); } /** * @protected * @param {?} query * @return {?} */ update(query) { /** @type {?} */ let page = (this._paginator) ? this._paginator.pageIndex : 0; /** @type {?} */ let pageSize = (this._paginator) ? this._paginator.pageSize : 10; /** @type {?} */ let options = this.datasource.defaultOptions(); // Setup orderby option if it's available /** @type {?} */ let orderby = this.orderby; if (orderby && orderby.direction && orderby.active) { if (orderby.direction.toLowerCase() == "desc") options.orderBy = `-${orderby.active}`; else options.orderBy = `+${orderby.active}`; } options.query = query; this.loading$.next(true); this.datasource.read(page, pageSize, options).subscribe(results => { this._paginator.length = results.total; this.subject$.next(results.data); }, error => { this.loading$.next(false); }, () => { this.loading$.next(false); }); this.lastQuery = query; } /** * Subscribe to this observable if you want to be informed when the datasource is loading. * @return {?} */ get loadingEvents() { return (this.loading$); } /** * @param {?} query * @return {?} */ search(query) { this._paginator.pageIndex = 0; this.update(query); } /** * @return {?} */ refresh() { this.update(this.lastQuery); } /** * @return {?} */ reset() { this.clear(); } /** * @return {?} */ clear() { this._paginator.pageIndex = 0; this._paginator.length = 0; this.subject$.next([]); } /** * @return {?} */ connect() { return (this.subject$); } /** * @return {?} */ disconnect() { } } if (false) { /** * @type {?} * @protected */ SearchMatTableDataSource.prototype.subject$; /** * @type {?} * @private */ SearchMatTableDataSource.prototype.orderby; /** * @type {?} * @private */ SearchMatTableDataSource.prototype.loading$; /** @type {?} */ SearchMatTableDataSource.prototype.spinner; /** * @type {?} * @protected */ SearchMatTableDataSource.prototype.lastQuery; /** * @type {?} * @protected */ SearchMatTableDataSource.prototype._paginator; /** * @type {?} * @protected */ SearchMatTableDataSource.prototype._sort; /** * @type {?} * @private */ SearchMatTableDataSource.prototype.datasource; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW1hdGVyaWFsLXRhYmxlLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZTVjb3JlLWFuZ3VsYXItdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9lNWNvcmUtdWktc2VhcmNoLXJlc3VsdHMvY29tcG9uZW50L3NlYXJjaC1tYXRlcmlhbC10YWJsZS1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNbkQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFVBQWU7Ozs7SUFRekQsWUFDWSxVQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUZBLGVBQVUsR0FBVixVQUFVLENBQWM7UUFQMUIsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFFO1FBRTdDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBRTtRQVFwRCxrQkFBa0I7SUFDdEIsQ0FBQzs7Ozs7SUFHRCxJQUFJLFNBQVMsQ0FBQyxTQUErQjtRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBRTtRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQzdCLENBQUMsQ0FBQyxFQUFFO1lBQ0YsbUVBQW1FO1lBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFFO1FBQy9CLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQzs7Ozs7SUFHRCxJQUFJLElBQUksQ0FBQyxJQUFxQjtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBRTtRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQzlCLEVBQUUsQ0FBQyxFQUFFO1lBQ0gsb0NBQW9DO1lBQ3BDLElBQUksQ0FB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QXdEOztJQUN4RCwyQ0FBMEI7Ozs7O0lBQzFCLDZDQUFzQzs7Ozs7SUFTdEMsOENBQW9DOzs7OztJQVdwQyx5Q0FBMEI7Ozs7O0lBakJ0Qiw4Q0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay90YWJsZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIE1hdFNvcnQsIE1hdFNwaW5uZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWxcIjtcclxuaW1wb3J0IHsgSURhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vLi4vZGF0YXNvdXJjZS9kYXRhLXNvdXJjZVwiO1xyXG5pbXBvcnQgeyBTZWFyY2hEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi8uLi9kYXRhc291cmNlL3NlYXJjaC1kYXRhLXNvdXJjZS1vcHRpb25zXCI7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyeSB9IGZyb20gXCIuLi8uLi8uLi9kYXRhc291cmNlL2RhdGEtc291cmNlLXF1ZXJ5XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoTWF0VGFibGVEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZTxhbnk+IHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgc3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSkgO1xyXG4gICAgcHJpdmF0ZSBvcmRlcmJ5IDogeyBhY3RpdmU6c3RyaW5nLCBkaXJlY3Rpb246c3RyaW5nIH0gIDtcclxuICAgIHByaXZhdGUgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKSA7XHJcbiAgICBwdWJsaWMgc3Bpbm5lcjogTWF0U3Bpbm5lclxyXG4gICAgcHJvdGVjdGVkIGxhc3RRdWVyeTogRGF0YVNvdXJjZVF1ZXJ5IDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRhdGFzb3VyY2UgOiBJRGF0YVNvdXJjZSlcclxuICAgIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIC8vdGhpcy5yZWZyZXNoKCkgO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3IgO1xyXG4gICAgc2V0IHBhZ2luYXRvcihwYWdpbmF0b3IgOiBNYXRQYWdpbmF0b3IgfCBudWxsKSB7XHJcbiAgICAgICB0aGlzLl9wYWdpbmF0b3IgPSBwYWdpbmF0b3IgO1xyXG4gICAgICAgdGhpcy5fcGFnaW5hdG9yLnBhZ2Uuc3Vic2NyaWJlKFxyXG4gICAgICAgIHggPT4ge1xyXG4gICAgICAgICAgLy8ge1wicHJldmlvdXNQYWdlSW5kZXhcIjowLFwicGFnZUluZGV4XCI6MSxcInBhZ2VTaXplXCI6MTAsXCJsZW5ndGhcIjoxMDB9XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZSh0aGlzLmxhc3RRdWVyeSkgO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfc29ydDogTWF0U29ydCA7XHJcbiAgICBzZXQgc29ydChzb3J0IDogTWF0U29ydCB8IG51bGwpIHtcclxuICAgICAgIHRoaXMuX3NvcnQgPSBzb3J0IDtcclxuICAgICAgIHRoaXMuX3NvcnQuc29ydENoYW5nZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgb2IgPT4ge1xyXG4gICAgICAgICAgLy8ge2FjdGl2ZTogXCJkZXRhaWxcIiwgZGlyZWN0aW9uOiBcIlwifVxyXG4gICAgICAgICAgdGhpcy5vcmRlcmJ5ID0gb2IgO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGUodGhpcy5sYXN0UXVlcnkpIDtcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgdXBkYXRlKHF1ZXJ5OkRhdGFTb3VyY2VRdWVyeSkge1xyXG4gICAgICAgIGxldCBwYWdlID0gKHRoaXMuX3BhZ2luYXRvcikgPyB0aGlzLl9wYWdpbmF0b3IucGFnZUluZGV4IDogMCA7XHJcbiAgICAgICAgbGV0IHBhZ2VTaXplID0gKHRoaXMuX3BhZ2luYXRvcikgPyB0aGlzLl9wYWdpbmF0b3IucGFnZVNpemUgOiAxMCA7XHJcbiAgICAgICAgbGV0IG9wdGlvbnM6IFNlYXJjaERhdGFTb3VyY2VPcHRpb25zID0gdGhpcy5kYXRhc291cmNlLmRlZmF1bHRPcHRpb25zKCkgO1xyXG5cclxuICAgICAgICAvLyBTZXR1cCBvcmRlcmJ5IG9wdGlvbiBpZiBpdCdzIGF2YWlsYWJsZVxyXG4gICAgICAgIGxldCBvcmRlcmJ5ID0gdGhpcy5vcmRlcmJ5IDtcclxuICAgICAgICBpZihvcmRlcmJ5ICYmIG9yZGVyYnkuZGlyZWN0aW9uICYmIG9yZGVyYnkuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIGlmKG9yZGVyYnkuZGlyZWN0aW9uLnRvTG93ZXJDYXNlKCkgPT0gXCJkZXNjXCIpXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zLm9yZGVyQnkgPSBgLSR7b3JkZXJieS5hY3RpdmV9YCA7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIG9wdGlvbnMub3JkZXJCeSA9IGArJHtvcmRlcmJ5LmFjdGl2ZX1gIDtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3B0aW9ucy5xdWVyeSA9IHF1ZXJ5IDtcclxuXHJcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpIDtcclxuICAgICAgICB0aGlzLmRhdGFzb3VyY2UucmVhZChwYWdlLCBwYWdlU2l6ZSwgb3B0aW9ucykuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXN1bHRzID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3BhZ2luYXRvci5sZW5ndGggPSByZXN1bHRzLnRvdGFsIDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3ViamVjdCQubmV4dChyZXN1bHRzLmRhdGEpIDtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3IgPT4geyB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpIDsgfSxcclxuICAgICAgICAgICAgKCkgPT4geyB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpIDsgfVxyXG4gICAgICAgICkgO1xyXG5cclxuICAgICAgICB0aGlzLmxhc3RRdWVyeSA9IHF1ZXJ5IDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmliZSB0byB0aGlzIG9ic2VydmFibGUgaWYgeW91IHdhbnQgdG8gYmUgaW5mb3JtZWQgd2hlbiB0aGUgZGF0YXNvdXJjZSBpcyBsb2FkaW5nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGxvYWRpbmdFdmVudHMoKSA6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5sb2FkaW5nJCkgO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZWFyY2gocXVlcnk6RGF0YVNvdXJjZVF1ZXJ5KSB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hdG9yLnBhZ2VJbmRleCA9IDAgO1xyXG4gICAgICAgIHRoaXMudXBkYXRlKHF1ZXJ5KSA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZnJlc2goKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGUodGhpcy5sYXN0UXVlcnkpIDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhcigpIDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXIoKSB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hdG9yLnBhZ2VJbmRleCA9IDAgO1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXRvci5sZW5ndGggPSAwIDtcclxuICAgICAgICB0aGlzLnN1YmplY3QkLm5leHQoW10pIDtcclxuICAgIH1cclxuXHJcbiAgICBjb25uZWN0KCk6IEJlaGF2aW9yU3ViamVjdDxhbnlbXVtdPiB7XHJcbiAgICAgIHJldHVybiAodGhpcy5zdWJqZWN0JCkgO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2Nvbm5lY3QoKSB7fVxyXG4gIH1cclxuXHJcbiJdfQ==