UNPKG

@foblex/flow

Version:

An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.

68 lines 9.51 kB
import { __decorate } from "tslib"; import { inject, Injectable } from '@angular/core'; import { MinimapDrawNodesRequest } from './minimap-draw-nodes.request'; import { FExecutionRegister } from '@foblex/mediator'; import { createSVGElement } from '../../../domain'; import { FNodeDirective } from '../../../f-node'; import { RectExtensions, setRectToElement } from '@foblex/2d'; import { FComponentsStore } from '../../../f-storage'; import { BrowserService } from '@foblex/platform'; import * as i0 from "@angular/core"; let MinimapDrawNodesExecution = class MinimapDrawNodesExecution { _fBrowser = inject(BrowserService); _fComponentStore = inject(FComponentsStore); get _fFlow() { return this._fComponentStore.fFlow; } get _fNodes() { return this._fComponentStore.fNodes; } get _fCanvas() { return this._fComponentStore.fCanvas; } handle(request) { return this._createMinimapNodeElements(request); } _createMinimapNodeElements(request) { return this._fNodes.map((x) => { const element = this._createNodeElement(); setRectToElement(this._getNodeRect(x), element); this._applyClassList(element, x, x instanceof FNodeDirective); return element; }); } _createNodeElement() { return createSVGElement('rect', this._fBrowser); } _getNodeRect(node) { return RectExtensions.div(this._getNodeRectInFlow(node), this._fCanvas.transform.scale); } _getNodeRectInFlow(node) { return RectExtensions.elementTransform(RectExtensions.fromElement(node.hostElement), this._fFlow.hostElement); } _applyClassList(element, node, isNode) { element.classList.add('f-component', isNode ? 'f-minimap-node' : 'f-minimap-group'); element.classList.add(...this._getClassList(node)); if (node.isSelected()) { element.classList.add('f-selected'); } } _getClassList(node) { if (Array.isArray(node.fMinimapClass)) { return node.fMinimapClass; } else { return [node.fMinimapClass]; } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDrawNodesExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDrawNodesExecution }); }; MinimapDrawNodesExecution = __decorate([ FExecutionRegister(MinimapDrawNodesRequest) ], MinimapDrawNodesExecution); export { MinimapDrawNodesExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDrawNodesExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC1kcmF3LW5vZGVzLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1taW5pbWFwL2RvbWFpbi9taW5pbWFwLWRyYXctbm9kZXMvbWluaW1hcC1kcmF3LW5vZGVzLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFhLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBUyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU0zQyxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUF5QjtJQUVuQixTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTdELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFnQztRQUM1QyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sMEJBQTBCLENBQUMsT0FBZ0M7UUFDakUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxjQUFjLENBQUMsQ0FBQztZQUM5RCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxZQUFZLENBQUMsSUFBZTtRQUNsQyxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFlO1FBQ3hDLE9BQU8sY0FBYyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUF1QixFQUFFLElBQWUsRUFBRSxNQUFlO1FBQy9FLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsSUFBZTtRQUNuQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQzt3R0F4RFUseUJBQXlCOzRHQUF6Qix5QkFBeUI7O0FBQXpCLHlCQUF5QjtJQURyQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQztHQUMvQix5QkFBeUIsQ0F5RHJDOzs0RkF6RFkseUJBQXlCO2tCQUZyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaW5pbWFwRHJhd05vZGVzUmVxdWVzdCB9IGZyb20gJy4vbWluaW1hcC1kcmF3LW5vZGVzLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBjcmVhdGVTVkdFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSwgRk5vZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgSVJlY3QsIFJlY3RFeHRlbnNpb25zLCBzZXRSZWN0VG9FbGVtZW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBGQ2FudmFzQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY2FudmFzJztcbmltcG9ydCB7IEZGbG93QmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtZmxvdyc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoTWluaW1hcERyYXdOb2Rlc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgTWluaW1hcERyYXdOb2Rlc0V4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248TWluaW1hcERyYXdOb2Rlc1JlcXVlc3QsIFNWR1JlY3RFbGVtZW50W10+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mQnJvd3NlciA9IGluamVjdChCcm93c2VyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb21wb25lbnRTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwcml2YXRlIGdldCBfZkZsb3coKTogRkZsb3dCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudFN0b3JlLmZGbG93O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRTdG9yZS5mTm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZkNhbnZhcygpOiBGQ2FudmFzQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRTdG9yZS5mQ2FudmFzITtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogTWluaW1hcERyYXdOb2Rlc1JlcXVlc3QpOiBTVkdSZWN0RWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlTWluaW1hcE5vZGVFbGVtZW50cyhyZXF1ZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU1pbmltYXBOb2RlRWxlbWVudHMocmVxdWVzdDogTWluaW1hcERyYXdOb2Rlc1JlcXVlc3QpOiBTVkdSZWN0RWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZk5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2NyZWF0ZU5vZGVFbGVtZW50KCk7XG4gICAgICBzZXRSZWN0VG9FbGVtZW50KHRoaXMuX2dldE5vZGVSZWN0KHgpLCBlbGVtZW50KTtcbiAgICAgIHRoaXMuX2FwcGx5Q2xhc3NMaXN0KGVsZW1lbnQsIHgsIHggaW5zdGFuY2VvZiBGTm9kZURpcmVjdGl2ZSk7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU5vZGVFbGVtZW50KCk6IFNWR1JlY3RFbGVtZW50IHtcbiAgICByZXR1cm4gY3JlYXRlU1ZHRWxlbWVudCgncmVjdCcsIHRoaXMuX2ZCcm93c2VyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGVSZWN0KG5vZGU6IEZOb2RlQmFzZSk6IElSZWN0IHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMuZGl2KHRoaXMuX2dldE5vZGVSZWN0SW5GbG93KG5vZGUpLCB0aGlzLl9mQ2FudmFzLnRyYW5zZm9ybS5zY2FsZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlUmVjdEluRmxvdyhub2RlOiBGTm9kZUJhc2UpOiBJUmVjdCB7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmVsZW1lbnRUcmFuc2Zvcm0oUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQobm9kZS5ob3N0RWxlbWVudCksIHRoaXMuX2ZGbG93IS5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUNsYXNzTGlzdChlbGVtZW50OiBTVkdSZWN0RWxlbWVudCwgbm9kZTogRk5vZGVCYXNlLCBpc05vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtY29tcG9uZW50JywgaXNOb2RlID8gJ2YtbWluaW1hcC1ub2RlJyA6ICdmLW1pbmltYXAtZ3JvdXAnKTtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4udGhpcy5fZ2V0Q2xhc3NMaXN0KG5vZGUpKTtcbiAgICBpZiAobm9kZS5pc1NlbGVjdGVkKCkpIHtcbiAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZi1zZWxlY3RlZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldENsYXNzTGlzdChub2RlOiBGTm9kZUJhc2UpOiBzdHJpbmdbXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZS5mTWluaW1hcENsYXNzKSkge1xuICAgICAgcmV0dXJuIG5vZGUuZk1pbmltYXBDbGFzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtub2RlLmZNaW5pbWFwQ2xhc3NdO1xuICAgIH1cbiAgfVxufVxuIl19