UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

31 lines 5.83 kB
import { inject, Injectable } from '@angular/core'; import { map, mergeMap, startWith, Subject, tap } from 'rxjs'; import { TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START } from './tree.tokens'; import * as i0 from "@angular/core"; class TuiTreeService { constructor() { this.loading = inject(TUI_TREE_LOADING); this.start = inject(TUI_TREE_START); this.loader = inject(TUI_TREE_LOADER); this.map = new Map([[this.loading, []]]); this.load$ = new Subject(); this.data$ = this.load$.pipe(mergeMap((item) => this.loader.loadChildren(item).pipe(tap((children) => this.map.set(item, children)), map((children) => children.filter((item) => !this.loader.hasChildren(item))), tap((children) => children.forEach((child) => this.map.set(child, []))))), startWith(null), map(() => this.start)); } getChildren(item) { return this.map.get(item) || [this.loading]; } loadChildren(item) { if (this.map.get(item)) { return; } this.map.set(item, [this.loading]); this.load$.next(item); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTreeService }); } } export { TuiTreeService }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTreeService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdHJlZS9taXNjL3RyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc1RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFaEYsTUFDYSxjQUFjO0lBRDNCO1FBRXFCLFlBQU8sR0FBRyxNQUFNLENBQUksZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxVQUFLLEdBQUcsTUFBTSxDQUFJLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLFdBQU0sR0FBRyxNQUFNLENBQW1CLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFFBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFVBQUssR0FBRyxJQUFJLE9BQU8sRUFBSyxDQUFDO1FBRTFCLFVBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbkMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQy9DLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ2IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM1RCxFQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDMUUsQ0FDSixFQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUN4QixDQUFDO0tBY0w7SUFaVSxXQUFXLENBQUMsSUFBTztRQUN0QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxZQUFZLENBQUMsSUFBTztRQUN2QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBaENRLGNBQWM7bUhBQWQsY0FBYzs7U0FBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge21hcCwgbWVyZ2VNYXAsIHN0YXJ0V2l0aCwgU3ViamVjdCwgdGFwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUge1R1aVRyZWVMb2FkZXJ9IGZyb20gJy4vdHJlZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX1RSRUVfTE9BREVSLCBUVUlfVFJFRV9MT0FESU5HLCBUVUlfVFJFRV9TVEFSVH0gZnJvbSAnLi90cmVlLnRva2Vucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUdWlUcmVlU2VydmljZTxUPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nID0gaW5qZWN0PFQ+KFRVSV9UUkVFX0xPQURJTkcpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhcnQgPSBpbmplY3Q8VD4oVFVJX1RSRUVfU1RBUlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGVyID0gaW5qZWN0PFR1aVRyZWVMb2FkZXI8VD4+KFRVSV9UUkVFX0xPQURFUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXAgPSBuZXcgTWFwPFQsIHJlYWRvbmx5IFRbXT4oW1t0aGlzLmxvYWRpbmcsIFtdXV0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZCQgPSBuZXcgU3ViamVjdDxUPigpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGEkID0gdGhpcy5sb2FkJC5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoaXRlbSkgPT5cbiAgICAgICAgICAgIHRoaXMubG9hZGVyLmxvYWRDaGlsZHJlbihpdGVtKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoY2hpbGRyZW4pID0+IHRoaXMubWFwLnNldChpdGVtLCBjaGlsZHJlbikpLFxuICAgICAgICAgICAgICAgIG1hcCgoY2hpbGRyZW4pID0+XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZpbHRlcigoaXRlbSkgPT4gIXRoaXMubG9hZGVyLmhhc0NoaWxkcmVuKGl0ZW0pKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRhcCgoY2hpbGRyZW4pID0+IGNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB0aGlzLm1hcC5zZXQoY2hpbGQsIFtdKSkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zdGFydCksXG4gICAgKTtcblxuICAgIHB1YmxpYyBnZXRDaGlsZHJlbihpdGVtOiBUKTogcmVhZG9ubHkgVFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmdldChpdGVtKSB8fCBbdGhpcy5sb2FkaW5nXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZENoaWxkcmVuKGl0ZW06IFQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWFwLmdldChpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYXAuc2V0KGl0ZW0sIFt0aGlzLmxvYWRpbmddKTtcbiAgICAgICAgdGhpcy5sb2FkJC5uZXh0KGl0ZW0pO1xuICAgIH1cbn1cbiJdfQ==