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.

43 lines 7.37 kB
import { __decorate } from "tslib"; import { Point, PointExtensions, RectExtensions } from '@foblex/2d'; import { CalculateFlowPointFromMinimapPointRequest } from './calculate-flow-point-from-minimap-point.request'; import { Injectable } from '@angular/core'; import { FExecutionRegister } from '@foblex/mediator'; import * as i0 from "@angular/core"; import * as i1 from "../../../f-storage"; let CalculateFlowPointFromMinimapPointExecution = class CalculateFlowPointFromMinimapPointExecution { fComponentsStore; get canvasScale() { return this.fComponentsStore.fCanvas.transform.scale; } constructor(fComponentsStore) { this.fComponentsStore = fComponentsStore; } handle(payload) { return PointExtensions.sub(payload.canvasPosition, PointExtensions.sub(this.getPositionInViewBox(payload.eventPoint, payload.minimap), this.getNormalizedFlowCenter(payload.flowRect))); } getNormalizedFlowCenter(flowRect) { return Point.fromPoint(flowRect.gravityCenter).sub(flowRect); } getPositionInViewBox(eventPoint, minimap) { const eventPointInFlow = this.normalizeEventPoint(eventPoint, minimap); return PointExtensions.sum(eventPointInFlow, RectExtensions.mult(minimap.viewBox, this.canvasScale)); } normalizeEventPoint(point, minimap) { return this.getEventPointInMinimap(point, minimap) .mult(minimap.scale).mult(this.canvasScale); } getEventPointInMinimap(eventPoint, minimap) { return Point.fromPoint(eventPoint).elementTransform(minimap.element); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateFlowPointFromMinimapPointExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateFlowPointFromMinimapPointExecution }); }; CalculateFlowPointFromMinimapPointExecution = __decorate([ FExecutionRegister(CalculateFlowPointFromMinimapPointRequest) ], CalculateFlowPointFromMinimapPointExecution); export { CalculateFlowPointFromMinimapPointExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateFlowPointFromMinimapPointExecution, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.FComponentsStore }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWZsb3ctcG9pbnQtZnJvbS1taW5pbWFwLXBvaW50LmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1taW5pbWFwL2RvbWFpbi9jYWxjdWxhdGUtZmxvdy1wb2ludC1mcm9tLW1pbmltYXAtcG9pbnQvY2FsY3VsYXRlLWZsb3ctcG9pbnQtZnJvbS1taW5pbWFwLXBvaW50LmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOzs7QUFLM0QsSUFBTSwyQ0FBMkMsR0FBakQsTUFBTSwyQ0FBMkM7SUFRNUM7SUFMVixJQUFZLFdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDeEQsQ0FBQztJQUVELFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFrRDtRQUM5RCxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQ3hCLE9BQU8sQ0FBQyxjQUFjLEVBQ3RCLGVBQWUsQ0FBQyxHQUFHLENBQ2pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDOUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDL0MsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLHVCQUF1QixDQUFDLFFBQWU7UUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFVBQWtCLEVBQUUsT0FBcUI7UUFDcEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FDeEIsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBYSxFQUFFLE9BQXFCO1FBQzdELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7YUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxVQUFrQixFQUFFLE9BQXFCO1FBQ3RFLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBaUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7d0dBekNVLDJDQUEyQzs0R0FBM0MsMkNBQTJDOztBQUEzQywyQ0FBMkM7SUFEdkQsa0JBQWtCLENBQUMseUNBQXlDLENBQUM7R0FDakQsMkNBQTJDLENBMEN2RDs7NEZBMUNZLDJDQUEyQztrQkFGdkQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgSVJlY3QsIFBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50UmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWZsb3ctcG9pbnQtZnJvbS1taW5pbWFwLXBvaW50LnJlcXVlc3QnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZNaW5pbWFwRGF0YSB9IGZyb20gJy4uL2YtbWluaW1hcC1kYXRhJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50RXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50UmVxdWVzdCwgSVBvaW50PiB7XG5cbiAgcHJpdmF0ZSBnZXQgY2FudmFzU2NhbGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybS5zY2FsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogQ2FsY3VsYXRlRmxvd1BvaW50RnJvbU1pbmltYXBQb2ludFJlcXVlc3QpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuc3ViKFxuICAgICAgcGF5bG9hZC5jYW52YXNQb3NpdGlvbixcbiAgICAgIFBvaW50RXh0ZW5zaW9ucy5zdWIoXG4gICAgICAgIHRoaXMuZ2V0UG9zaXRpb25JblZpZXdCb3gocGF5bG9hZC5ldmVudFBvaW50LCBwYXlsb2FkLm1pbmltYXApLFxuICAgICAgICB0aGlzLmdldE5vcm1hbGl6ZWRGbG93Q2VudGVyKHBheWxvYWQuZmxvd1JlY3QpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9ybWFsaXplZEZsb3dDZW50ZXIoZmxvd1JlY3Q6IElSZWN0KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KGZsb3dSZWN0LmdyYXZpdHlDZW50ZXIpLnN1YihmbG93UmVjdCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBvc2l0aW9uSW5WaWV3Qm94KGV2ZW50UG9pbnQ6IElQb2ludCwgbWluaW1hcDogRk1pbmltYXBEYXRhKTogSVBvaW50IHtcbiAgICBjb25zdCBldmVudFBvaW50SW5GbG93ID0gdGhpcy5ub3JtYWxpemVFdmVudFBvaW50KGV2ZW50UG9pbnQsIG1pbmltYXApO1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuc3VtKFxuICAgICAgZXZlbnRQb2ludEluRmxvdyxcbiAgICAgIFJlY3RFeHRlbnNpb25zLm11bHQobWluaW1hcC52aWV3Qm94LCB0aGlzLmNhbnZhc1NjYWxlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbm9ybWFsaXplRXZlbnRQb2ludChwb2ludDogSVBvaW50LCBtaW5pbWFwOiBGTWluaW1hcERhdGEpOiBQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXZlbnRQb2ludEluTWluaW1hcChwb2ludCwgbWluaW1hcClcbiAgICAgLm11bHQobWluaW1hcC5zY2FsZSkubXVsdCh0aGlzLmNhbnZhc1NjYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRQb2ludEluTWluaW1hcChldmVudFBvaW50OiBJUG9pbnQsIG1pbmltYXA6IEZNaW5pbWFwRGF0YSk6IFBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KGV2ZW50UG9pbnQpLmVsZW1lbnRUcmFuc2Zvcm0obWluaW1hcC5lbGVtZW50IGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpO1xuICB9XG59XG4iXX0=