UNPKG

@bimeister/pupakit.tree

Version:
25 lines 3.89 kB
import { DataSource } from '@angular/cdk/collections'; import { isNil, shareReplayWithRefCount } from '@bimeister/utilities'; import { BehaviorSubject, combineLatest } from 'rxjs'; import { filter, map } from 'rxjs/operators'; import './flat-tree-item.class'; export class TreeRangedDataSource extends DataSource { constructor(data$) { super(); this.data$ = data$; this.range$ = new BehaviorSubject(null); } setRange(range) { this.range$.next(range); } connect() { return combineLatest([this.data$, this.range$]).pipe(filter(([data, range]) => Array.isArray(data) && !isNil(range)), map(([data, range]) => { const { start, end } = range; return data.slice(start, end); }), shareReplayWithRefCount()); } disconnect() { return; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1yYW5nZWQtZGF0YS1zb3VyY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjbGFyYXRpb25zL2NsYXNzZXMvdHJlZS1yYW5nZWQtZGF0YS1zb3VyY2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQTZCLHdCQUF3QixDQUFDO0FBRXRELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUF3QjtJQUdoRSxZQUE2QixLQUFpQztRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQURtQixVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUY3QyxXQUFNLEdBQStCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBSWhGLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBZ0I7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNsRCxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQThCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDNUYsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUE4QixFQUFFLEVBQUU7WUFDakQsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBYyxLQUFLLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFDRix1QkFBdUIsRUFBRSxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgTGlzdFJhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IGlzTmlsLCBzaGFyZVJlcGxheVdpdGhSZWZDb3VudCB9IGZyb20gJ0BiaW1laXN0ZXIvdXRpbGl0aWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGbGF0VHJlZUl0ZW0gfSBmcm9tICcuL2ZsYXQtdHJlZS1pdGVtLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIFRyZWVSYW5nZWREYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZTxGbGF0VHJlZUl0ZW0+IHtcbiAgcHJpdmF0ZSByZWFkb25seSByYW5nZSQ6IEJlaGF2aW9yU3ViamVjdDxMaXN0UmFuZ2U+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPEZsYXRUcmVlSXRlbVtdPikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UmFuZ2UocmFuZ2U6IExpc3RSYW5nZSk6IHZvaWQge1xuICAgIHRoaXMucmFuZ2UkLm5leHQocmFuZ2UpO1xuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoKTogT2JzZXJ2YWJsZTxGbGF0VHJlZUl0ZW1bXT4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmRhdGEkLCB0aGlzLnJhbmdlJF0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKFtkYXRhLCByYW5nZV06IFtGbGF0VHJlZUl0ZW1bXSwgTGlzdFJhbmdlXSkgPT4gQXJyYXkuaXNBcnJheShkYXRhKSAmJiAhaXNOaWwocmFuZ2UpKSxcbiAgICAgIG1hcCgoW2RhdGEsIHJhbmdlXTogW0ZsYXRUcmVlSXRlbVtdLCBMaXN0UmFuZ2VdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9OiBMaXN0UmFuZ2UgPSByYW5nZTtcbiAgICAgICAgcmV0dXJuIGRhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5V2l0aFJlZkNvdW50KClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgcmV0dXJuO1xuICB9XG59XG4iXX0=