UNPKG

@bimeister/pupakit.tree

Version:
39 lines 6.19 kB
import '@angular/core'; import { isNil } from '@bimeister/utilities'; import { DEFAULT_TREE_ITEM_SIZE_PX } from '../constants/default-tree-item-size-px.const'; import { BehaviorSubject } from 'rxjs'; import { take } from 'rxjs/operators'; import '../interfaces/tree-data-display-collection-ref.interface'; import './flat-tree-item.class'; export class TreeDataDisplayCollection { constructor() { this.data$ = new BehaviorSubject([]); this.selectedIdsList$ = new BehaviorSubject([]); this.trackBy$ = new BehaviorSubject(TreeDataDisplayCollection.trackBy); this.scrollBehavior$ = new BehaviorSubject('smooth'); this.expandedIdsList$ = new BehaviorSubject([]); this.hasDragAndDrop$ = new BehaviorSubject(false); this.treeItemSizePx$ = new BehaviorSubject(DEFAULT_TREE_ITEM_SIZE_PX); this.isLoading$ = new BehaviorSubject(false); } setExpandedIdsList(value) { this.expandedIdsList$.next(value); } setIsLoading(value) { this.isLoading$.next(value); } setData(data) { this.data$.next(data); return this.data$.pipe(take(1)); } setSelectedIdsList(value) { this.selectedIdsList$.next(value); } } TreeDataDisplayCollection.trackBy = (index, dataItem) => { if (isNil(dataItem)) { return `${index}__null`; } return `${index}__${JSON.stringify(dataItem)}`; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1kYXRhLWRpc3BsYXktY29sbGVjdGlvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNsYXJhdGlvbnMvY2xhc3Nlcy90cmVlLWRhdGEtZGlzcGxheS1jb2xsZWN0aW9uLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQWdDLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBdUIsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQTZDLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQTZCLHdCQUF3QixDQUFDO0FBRXRELE1BQU0sT0FBTyx5QkFBeUI7SUFBdEM7UUFDa0IsVUFBSyxHQUFvQyxJQUFJLGVBQWUsQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFDakYscUJBQWdCLEdBQThCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLGFBQVEsR0FBMkMsSUFBSSxlQUFlLENBQ3BGLHlCQUF5QixDQUFDLE9BQU8sQ0FDbEMsQ0FBQztRQUNjLG9CQUFlLEdBQW9DLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pGLHFCQUFnQixHQUE4QixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RSxvQkFBZSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxvQkFBZSxHQUE0QixJQUFJLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFGLGVBQVUsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUF5QnBGLENBQUM7SUF2QlEsa0JBQWtCLENBQUMsS0FBZTtRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQW9CO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQWU7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOztBQUVzQixpQ0FBTyxHQUF5QixDQUFJLEtBQWEsRUFBRSxRQUFXLEVBQVUsRUFBRTtJQUMvRixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNuQixPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7S0FDekI7SUFDRCxPQUFPLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUNqRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnQGJpbWVpc3Rlci91dGlsaXRpZXMnO1xuaW1wb3J0IHsgREVGQVVMVF9UUkVFX0lURU1fU0laRV9QWCB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0LXRyZWUtaXRlbS1zaXplLXB4LmNvbnN0JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyZWVEYXRhRGlzcGxheUNvbGxlY3Rpb25SZWYgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RyZWUtZGF0YS1kaXNwbGF5LWNvbGxlY3Rpb24tcmVmLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGbGF0VHJlZUl0ZW0gfSBmcm9tICcuL2ZsYXQtdHJlZS1pdGVtLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhRGlzcGxheUNvbGxlY3Rpb24gaW1wbGVtZW50cyBUcmVlRGF0YURpc3BsYXlDb2xsZWN0aW9uUmVmIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGEkOiBCZWhhdmlvclN1YmplY3Q8RmxhdFRyZWVJdGVtW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGbGF0VHJlZUl0ZW1bXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJZHNMaXN0JDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuXG4gIHB1YmxpYyByZWFkb25seSB0cmFja0J5JDogU3ViamVjdDxUcmFja0J5RnVuY3Rpb248RmxhdFRyZWVJdGVtPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyYWNrQnlGdW5jdGlvbjxGbGF0VHJlZUl0ZW0+PihcbiAgICBUcmVlRGF0YURpc3BsYXlDb2xsZWN0aW9uLnRyYWNrQnlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHNjcm9sbEJlaGF2aW9yJDogQmVoYXZpb3JTdWJqZWN0PFNjcm9sbEJlaGF2aW9yPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJ3Ntb290aCcpO1xuICBwdWJsaWMgcmVhZG9ubHkgZXhwYW5kZWRJZHNMaXN0JDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgaGFzRHJhZ0FuZERyb3AkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHRyZWVJdGVtU2l6ZVB4JDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfVFJFRV9JVEVNX1NJWkVfUFgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNMb2FkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHVibGljIHNldEV4cGFuZGVkSWRzTGlzdCh2YWx1ZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkSWRzTGlzdCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0SXNMb2FkaW5nKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmckLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNldERhdGEoZGF0YTogRmxhdFRyZWVJdGVtW10pOiBPYnNlcnZhYmxlPEZsYXRUcmVlSXRlbVtdPiB7XG4gICAgdGhpcy5kYXRhJC5uZXh0KGRhdGEpO1xuICAgIHJldHVybiB0aGlzLmRhdGEkLnBpcGUodGFrZSgxKSk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2VsZWN0ZWRJZHNMaXN0KHZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJZHNMaXN0JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHJhY2tCeTogVHJhY2tCeUZ1bmN0aW9uPGFueT4gPSA8VD4oaW5kZXg6IG51bWJlciwgZGF0YUl0ZW06IFQpOiBzdHJpbmcgPT4ge1xuICAgIGlmIChpc05pbChkYXRhSXRlbSkpIHtcbiAgICAgIHJldHVybiBgJHtpbmRleH1fX251bGxgO1xuICAgIH1cbiAgICByZXR1cm4gYCR7aW5kZXh9X18ke0pTT04uc3RyaW5naWZ5KGRhdGFJdGVtKX1gO1xuICB9O1xufVxuIl19