ng2-tree
Version:
angular2 component for visualizing data that can be naturally represented as a tree
27 lines • 4 kB
JavaScript
import { Injectable } from '@angular/core';
import { NodeMenuAction } from './menu.events';
import { Subject } from 'rxjs';
import { filter } from 'rxjs/operators';
import * as i0 from "@angular/core";
export class NodeMenuService {
nodeMenuEvents$ = new Subject();
fireMenuEvent(sender, action) {
const nodeMenuEvent = { sender, action };
this.nodeMenuEvents$.next(nodeMenuEvent);
}
hideMenuStream(treeElementRef) {
return this.nodeMenuEvents$.pipe(filter((e) => treeElementRef.nativeElement !== e.sender), filter((e) => e.action === NodeMenuAction.Close));
}
hideMenuForAllNodesExcept(treeElementRef) {
this.nodeMenuEvents$.next({
sender: treeElementRef.nativeElement,
action: NodeMenuAction.Close
});
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeMenuService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeMenuService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWVudS9ub2RlLW1lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd4QyxNQUFNLE9BQU8sZUFBZTtJQUNuQixlQUFlLEdBQTJCLElBQUksT0FBTyxFQUFpQixDQUFDO0lBRXZFLGFBQWEsQ0FBQyxNQUFtQixFQUFFLE1BQXNCO1FBQzlELE1BQU0sYUFBYSxHQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sY0FBYyxDQUFDLGNBQTBCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzlCLE1BQU0sQ0FBQyxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUN2RSxNQUFNLENBQUMsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FDaEUsQ0FBQztJQUNKLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxjQUEwQjtRQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUN4QixNQUFNLEVBQUUsY0FBYyxDQUFDLGFBQWE7WUFDcEMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxLQUFLO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBcEJVLGVBQWU7NEdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGVNZW51QWN0aW9uLCBOb2RlTWVudUV2ZW50IH0gZnJvbSAnLi9tZW51LmV2ZW50cyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlTWVudVNlcnZpY2Uge1xuICBwdWJsaWMgbm9kZU1lbnVFdmVudHMkOiBTdWJqZWN0PE5vZGVNZW51RXZlbnQ+ID0gbmV3IFN1YmplY3Q8Tm9kZU1lbnVFdmVudD4oKTtcblxuICBwdWJsaWMgZmlyZU1lbnVFdmVudChzZW5kZXI6IEhUTUxFbGVtZW50LCBhY3Rpb246IE5vZGVNZW51QWN0aW9uKTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZU1lbnVFdmVudDogTm9kZU1lbnVFdmVudCA9IHsgc2VuZGVyLCBhY3Rpb24gfTtcbiAgICB0aGlzLm5vZGVNZW51RXZlbnRzJC5uZXh0KG5vZGVNZW51RXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGhpZGVNZW51U3RyZWFtKHRyZWVFbGVtZW50UmVmOiBFbGVtZW50UmVmKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5ub2RlTWVudUV2ZW50cyQucGlwZShcbiAgICAgIGZpbHRlcigoZTogTm9kZU1lbnVFdmVudCkgPT4gdHJlZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAhPT0gZS5zZW5kZXIpLFxuICAgICAgZmlsdGVyKChlOiBOb2RlTWVudUV2ZW50KSA9PiBlLmFjdGlvbiA9PT0gTm9kZU1lbnVBY3Rpb24uQ2xvc2UpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlTWVudUZvckFsbE5vZGVzRXhjZXB0KHRyZWVFbGVtZW50UmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy5ub2RlTWVudUV2ZW50cyQubmV4dCh7XG4gICAgICBzZW5kZXI6IHRyZWVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBhY3Rpb246IE5vZGVNZW51QWN0aW9uLkNsb3NlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==