UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

56 lines 6.17 kB
import { Injectable } from '@angular/core'; import { throttle } from 'lodash-es'; import { ReplaySubject, debounceTime } from 'rxjs'; import * as i0 from "@angular/core"; export class GraphStoreService { constructor() { this.nodeStore = {}; this.scale = 1; this.nodeChanged$$ = new ReplaySubject(1); this.nodeChanged$ = this.nodeChanged$$ .asObservable() .pipe(debounceTime(0)); this.resizeObserver = new ResizeObserver(throttle(() => this.nodeChanged$$.next(), 100)); } registerSurfaceNode(surface) { this.surfaceNode = surface; } registerNode(id, node) { if (id) { this.resizeObserver.observe(node.el.nativeElement); } this.nodeStore[id] = node; this.nodeChanged$$.next(); } unregisterNode(id) { if (id && this.getNode(id)) { this.resizeObserver.unobserve(this.nodeStore[id].el.nativeElement); } this.nodeStore[id] = null; this.nodeChanged$$.next(); } getNode(id) { return this.nodeStore[id]; } getSurfaceNode() { return this.surfaceNode; } nodeChanged() { return this.nodeChanged$; } getScale() { return this.scale; } setScale(scale) { return (this.scale = scale); } disconnectObserver() { this.resizeObserver.disconnect(); } static { this.ɵfac = function GraphStoreService_Factory(t) { return new (t || GraphStoreService)(); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GraphStoreService, factory: GraphStoreService.ɵfac }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GraphStoreService, [{ type: Injectable }], null, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtc3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9ncmFwaC1jYW52YXMvZ3JhcGgtc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFbUIsY0FBUyxHQUE4QixFQUFFLENBQUM7UUFFbkQsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVELGtCQUFhLEdBQUcsSUFBSSxhQUFhLENBQU8sQ0FBQyxDQUFDLENBQUM7UUFFM0MsaUJBQVksR0FBRyxJQUFJLENBQUMsYUFBYTthQUMvQyxZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixtQkFBYyxHQUFHLElBQUksY0FBYyxDQUNsRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FDL0MsQ0FBQztLQTZDSDtJQTNDQyxtQkFBbUIsQ0FBQyxPQUFrQjtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQVUsRUFBRSxJQUFlO1FBQ3RDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBVTtRQUN2QixJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7a0ZBekRVLGlCQUFpQjt1RUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjs7aUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEdyYXBoTm9kZSwgTm9kZUlEIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHcmFwaFN0b3JlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVN0b3JlOiBSZWNvcmQ8Tm9kZUlELCBHcmFwaE5vZGU+ID0ge307XG4gIHByaXZhdGUgc3VyZmFjZU5vZGU6IEdyYXBoTm9kZTtcbiAgcHJpdmF0ZSBzY2FsZSA9IDE7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBub2RlQ2hhbmdlZCQkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBub2RlQ2hhbmdlZCQgPSB0aGlzLm5vZGVDaGFuZ2VkJCRcbiAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAucGlwZShkZWJvdW5jZVRpbWUoMCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoXG4gICAgdGhyb3R0bGUoKCkgPT4gdGhpcy5ub2RlQ2hhbmdlZCQkLm5leHQoKSwgMTAwKSxcbiAgKTtcblxuICByZWdpc3RlclN1cmZhY2VOb2RlKHN1cmZhY2U6IEdyYXBoTm9kZSkge1xuICAgIHRoaXMuc3VyZmFjZU5vZGUgPSBzdXJmYWNlO1xuICB9XG5cbiAgcmVnaXN0ZXJOb2RlKGlkOiBOb2RlSUQsIG5vZGU6IEdyYXBoTm9kZSkge1xuICAgIGlmIChpZCkge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKG5vZGUuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMubm9kZVN0b3JlW2lkXSA9IG5vZGU7XG4gICAgdGhpcy5ub2RlQ2hhbmdlZCQkLm5leHQoKTtcbiAgfVxuXG4gIHVucmVnaXN0ZXJOb2RlKGlkOiBOb2RlSUQpIHtcbiAgICBpZiAoaWQgJiYgdGhpcy5nZXROb2RlKGlkKSkge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5ub2RlU3RvcmVbaWRdLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgICB0aGlzLm5vZGVTdG9yZVtpZF0gPSBudWxsO1xuICAgIHRoaXMubm9kZUNoYW5nZWQkJC5uZXh0KCk7XG4gIH1cblxuICBnZXROb2RlKGlkOiBOb2RlSUQpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlU3RvcmVbaWRdO1xuICB9XG5cbiAgZ2V0U3VyZmFjZU5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VyZmFjZU5vZGU7XG4gIH1cblxuICBub2RlQ2hhbmdlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlQ2hhbmdlZCQ7XG4gIH1cblxuICBnZXRTY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZTtcbiAgfVxuXG4gIHNldFNjYWxlKHNjYWxlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gKHRoaXMuc2NhbGUgPSBzY2FsZSk7XG4gIH1cblxuICBkaXNjb25uZWN0T2JzZXJ2ZXIoKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiJdfQ==