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.

60 lines 10.1 kB
import { __decorate } from "tslib"; import { Injectable } from '@angular/core'; import { MinimapDragPreparationRequest } from './minimap-drag-preparation.request'; import { Point, RectExtensions } from '@foblex/2d'; import { FExecutionRegister } from '@foblex/mediator'; import { FMinimapDragHandler } from '../f-minimap.drag-handler'; import { CalculateFlowPointFromMinimapPointRequest } from '../calculate-flow-point-from-minimap-point'; import * as i0 from "@angular/core"; import * as i1 from "../../../f-storage"; import * as i2 from "@foblex/mediator"; import * as i3 from "../../../f-draggable"; let MinimapDragPreparationExecution = class MinimapDragPreparationExecution { fComponentsStore; fMediator; fDraggableDataContext; get flowHost() { return this.fComponentsStore.fFlow.hostElement; } constructor(fComponentsStore, fMediator, fDraggableDataContext) { this.fComponentsStore = fComponentsStore; this.fMediator = fMediator; this.fDraggableDataContext = fDraggableDataContext; } handle(request) { if (!this._isValid(request)) { return; } const eventPoint = request.event.getPosition(); const startCanvasPosition = Point.fromPoint(this.fComponentsStore.fCanvas.transform.position); this.fComponentsStore.fCanvas.setPosition(this.getNewPosition(eventPoint, request.minimap)); this.fComponentsStore.fCanvas.redraw(); this.fComponentsStore.fCanvas.emitCanvasChangeEvent(); this.fDraggableDataContext.onPointerDownScale = 1; this.fDraggableDataContext.onPointerDownPosition = Point.fromPoint(eventPoint).elementTransform(this.flowHost); this.fDraggableDataContext.draggableItems = [ new FMinimapDragHandler(this.fComponentsStore, this.fMediator, this.getFlowRect(), startCanvasPosition, eventPoint, request.minimap) ]; } _isValid(request) { return !this.fDraggableDataContext.draggableItems.length && !!request.event.targetElement.closest('.f-minimap') && this.fComponentsStore.flowHost.contains(request.event.targetElement); } getNewPosition(eventPoint, minimap) { return this.fMediator.execute(new CalculateFlowPointFromMinimapPointRequest(this.getFlowRect(), Point.fromPoint(this.fComponentsStore.fCanvas.transform.position), eventPoint, minimap)); } getFlowRect() { return RectExtensions.fromElement(this.flowHost); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDragPreparationExecution, deps: [{ token: i1.FComponentsStore }, { token: i2.FMediator }, { token: i3.FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDragPreparationExecution }); }; MinimapDragPreparationExecution = __decorate([ FExecutionRegister(MinimapDragPreparationRequest) ], MinimapDragPreparationExecution); export { MinimapDragPreparationExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDragPreparationExecution, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FMediator }, { type: i3.FDraggableDataContext }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC1kcmFnLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1taW5pbWFwL2RvbWFpbi9taW5pbWFwLWRyYWctcHJlcGFyYXRpb24vbWluaW1hcC1kcmFnLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQWlCLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUF5QixNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQUtoRyxJQUFNLCtCQUErQixHQUFyQyxNQUFNLCtCQUErQjtJQU9oQztJQUNBO0lBQ0E7SUFQVixJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBTSxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFDVSxnQkFBa0MsRUFDbEMsU0FBb0IsRUFDcEIscUJBQTRDO1FBRjVDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBRXRELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBc0M7UUFDbEQsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9GLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEdBQUc7WUFDMUMsSUFBSSxtQkFBbUIsQ0FDckIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUN6RCxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FDakQ7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFzQztRQUNyRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxNQUFNO1lBQ3RELENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUFrQixFQUFFLE9BQXFCO1FBQzlELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQVMsSUFBSSx5Q0FBeUMsQ0FDakYsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUNsRSxVQUFVLEVBQUUsT0FBTyxDQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNqQixPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7d0dBbERVLCtCQUErQjs0R0FBL0IsK0JBQStCOztBQUEvQiwrQkFBK0I7SUFEM0Msa0JBQWtCLENBQUMsNkJBQTZCLENBQUM7R0FDckMsK0JBQStCLENBbUQzQzs7NEZBbkRZLCtCQUErQjtrQkFGM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1pbmltYXBEcmFnUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9taW5pbWFwLWRyYWctcHJlcGFyYXRpb24ucmVxdWVzdCc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBQb2ludCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZNaW5pbWFwRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi9mLW1pbmltYXAuZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IENhbGN1bGF0ZUZsb3dQb2ludEZyb21NaW5pbWFwUG9pbnRSZXF1ZXN0IH0gZnJvbSAnLi4vY2FsY3VsYXRlLWZsb3ctcG9pbnQtZnJvbS1taW5pbWFwLXBvaW50JztcbmltcG9ydCB7IEZNaW5pbWFwRGF0YSB9IGZyb20gJy4uL2YtbWluaW1hcC1kYXRhJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihNaW5pbWFwRHJhZ1ByZXBhcmF0aW9uUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBNaW5pbWFwRHJhZ1ByZXBhcmF0aW9uRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxNaW5pbWFwRHJhZ1ByZXBhcmF0aW9uUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93IS5ob3N0RWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRk1lZGlhdG9yLFxuICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBNaW5pbWFwRHJhZ1ByZXBhcmF0aW9uUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLl9pc1ZhbGlkKHJlcXVlc3QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50UG9pbnQgPSByZXF1ZXN0LmV2ZW50LmdldFBvc2l0aW9uKCk7XG4gICAgY29uc3Qgc3RhcnRDYW52YXNQb3NpdGlvbiA9IFBvaW50LmZyb21Qb2ludCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtLnBvc2l0aW9uKTtcblxuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5zZXRQb3NpdGlvbih0aGlzLmdldE5ld1Bvc2l0aW9uKGV2ZW50UG9pbnQsIHJlcXVlc3QubWluaW1hcCkpO1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5yZWRyYXcoKTtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEuZW1pdENhbnZhc0NoYW5nZUV2ZW50KCk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUgPSAxO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbiA9IFBvaW50LmZyb21Qb2ludChldmVudFBvaW50KS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuZmxvd0hvc3QpO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zID0gW1xuICAgICAgbmV3IEZNaW5pbWFwRHJhZ0hhbmRsZXIoXG4gICAgICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZSwgdGhpcy5mTWVkaWF0b3IsIHRoaXMuZ2V0Rmxvd1JlY3QoKSxcbiAgICAgICAgc3RhcnRDYW52YXNQb3NpdGlvbiwgZXZlbnRQb2ludCwgcmVxdWVzdC5taW5pbWFwLFxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIF9pc1ZhbGlkKHJlcXVlc3Q6IE1pbmltYXBEcmFnUHJlcGFyYXRpb25SZXF1ZXN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggJiZcbiAgICAgICEhcmVxdWVzdC5ldmVudC50YXJnZXRFbGVtZW50LmNsb3Nlc3QoJy5mLW1pbmltYXAnKSAmJlxuICAgICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZsb3dIb3N0LmNvbnRhaW5zKHJlcXVlc3QuZXZlbnQudGFyZ2V0RWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldE5ld1Bvc2l0aW9uKGV2ZW50UG9pbnQ6IElQb2ludCwgbWluaW1hcDogRk1pbmltYXBEYXRhKTogSVBvaW50IHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3IuZXhlY3V0ZTxJUG9pbnQ+KG5ldyBDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50UmVxdWVzdChcbiAgICAgIHRoaXMuZ2V0Rmxvd1JlY3QoKSxcbiAgICAgIFBvaW50LmZyb21Qb2ludCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtLnBvc2l0aW9uKSxcbiAgICAgIGV2ZW50UG9pbnQsIG1pbmltYXAsXG4gICAgKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZsb3dSZWN0KCk6IElSZWN0IHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5mbG93SG9zdCk7XG4gIH1cbn1cbiJdfQ==