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.

46 lines 8.05 kB
import { __decorate } from "tslib"; import { inject, Injectable } from '@angular/core'; import { CalculateNodeMoveLimitsRequest } from './calculate-node-move-limits.request'; import { PointExtensions } from '@foblex/2d'; import { FExecutionRegister, FMediator } from '@foblex/mediator'; import { GetNormalizedParentNodeRectRequest } from '../../../../domain'; import { GetNormalizedElementRectRequest } from '../../../../../domain'; import { infinityMinMax } from "../../../../../utils"; import * as i0 from "@angular/core"; let CalculateNodeMoveLimitsExecution = class CalculateNodeMoveLimitsExecution { _fMediator = inject(FMediator); handle(request) { if (!request.fNode.fParentId || request.hasParentNodeInSelected) { return { ...infinityMinMax() }; } return this._calculateDifference(this._fParentRect(request.fNode), this._fNodeRect(request.fNode)); } _fNodeRect(fNode) { return this._fMediator.execute(new GetNormalizedElementRectRequest(fNode.hostElement)); } _fParentRect(fNode) { return this._fMediator.execute(new GetNormalizedParentNodeRectRequest(fNode)); } _calculateDifference(fParentRect, fRect) { return { min: this._calculateMinimumDifference(fParentRect, fRect), max: this._calculateMaximumDifference(fParentRect, fRect) }; } _calculateMinimumDifference(fParentRect, fRect) { return PointExtensions.initialize(fParentRect.x - fRect.x, fParentRect.y - fRect.y); } _calculateMaximumDifference(fParentRect, fRect) { return PointExtensions.initialize((fParentRect.x + fParentRect.width) - (fRect.x + fRect.width), (fParentRect.y + fParentRect.height) - (fRect.y + fRect.height)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateNodeMoveLimitsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateNodeMoveLimitsExecution }); }; CalculateNodeMoveLimitsExecution = __decorate([ FExecutionRegister(CalculateNodeMoveLimitsRequest) ], CalculateNodeMoveLimitsExecution); export { CalculateNodeMoveLimitsExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateNodeMoveLimitsExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLW5vZGUtbW92ZS1saW1pdHMuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jcmVhdGUtbW92ZS1ub2Rlcy1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uL2RvbWFpbi9jYWxjdWxhdGUtbm9kZS1tb3ZlLWxpbWl0cy9jYWxjdWxhdGUtbm9kZS1tb3ZlLWxpbWl0cy5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BGLE9BQU8sRUFBZ0IsZUFBZSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQzFELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxTQUFTLEVBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RSxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBSTdDLElBQU0sZ0NBQWdDLEdBQXRDLE1BQU0sZ0NBQWdDO0lBR25DLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFaEMsTUFBTSxDQUFDLE9BQXVDO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNoRSxPQUFPLEVBQUMsR0FBRyxjQUFjLEVBQUUsRUFBQyxDQUFDO1FBQy9CLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQ2pFLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQVEsSUFBSSwrQkFBK0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQVEsSUFBSSxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxXQUFrQixFQUFFLEtBQVk7UUFDM0QsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztZQUN6RCxHQUFHLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7U0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxXQUFrQixFQUFFLEtBQVk7UUFDbEUsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU8sMkJBQTJCLENBQUMsV0FBa0IsRUFBRSxLQUFZO1FBQ2xFLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FDL0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUM3RCxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQ2hFLENBQUM7SUFDSixDQUFDO3dHQXZDVSxnQ0FBZ0M7NEdBQWhDLGdDQUFnQzs7QUFBaEMsZ0NBQWdDO0lBRDVDLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDO0dBQ3RDLGdDQUFnQyxDQXdDNUM7OzRGQXhDWSxnQ0FBZ0M7a0JBRjVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhbGN1bGF0ZU5vZGVNb3ZlTGltaXRzUmVxdWVzdH0gZnJvbSAnLi9jYWxjdWxhdGUtbm9kZS1tb3ZlLWxpbWl0cy5yZXF1ZXN0JztcbmltcG9ydCB7SVBvaW50LCBJUmVjdCwgUG9pbnRFeHRlbnNpb25zfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7RkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb259IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtHZXROb3JtYWxpemVkUGFyZW50Tm9kZVJlY3RSZXF1ZXN0fSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHtGTm9kZUJhc2V9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQge0dldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3R9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge0lOb2RlTW92ZUxpbWl0c30gZnJvbSAnLi4vLi4vaS1ub2RlLW1vdmUtbGltaXRzJztcbmltcG9ydCB7aW5maW5pdHlNaW5NYXh9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi91dGlsc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENhbGN1bGF0ZU5vZGVNb3ZlTGltaXRzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVOb2RlTW92ZUxpbWl0c0V4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Q2FsY3VsYXRlTm9kZU1vdmVMaW1pdHNSZXF1ZXN0LCBJTm9kZU1vdmVMaW1pdHM+IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IENhbGN1bGF0ZU5vZGVNb3ZlTGltaXRzUmVxdWVzdCk6IElOb2RlTW92ZUxpbWl0cyB7XG4gICAgaWYgKCFyZXF1ZXN0LmZOb2RlLmZQYXJlbnRJZCB8fCByZXF1ZXN0Lmhhc1BhcmVudE5vZGVJblNlbGVjdGVkKSB7XG4gICAgICByZXR1cm4gey4uLmluZmluaXR5TWluTWF4KCl9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jYWxjdWxhdGVEaWZmZXJlbmNlKFxuICAgICAgdGhpcy5fZlBhcmVudFJlY3QocmVxdWVzdC5mTm9kZSksIHRoaXMuX2ZOb2RlUmVjdChyZXF1ZXN0LmZOb2RlKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9mTm9kZVJlY3QoZk5vZGU6IEZOb2RlQmFzZSk6IElSZWN0IHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SVJlY3Q+KG5ldyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0KGZOb2RlLmhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIF9mUGFyZW50UmVjdChmTm9kZTogRk5vZGVCYXNlKTogSVJlY3Qge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRQYXJlbnROb2RlUmVjdFJlcXVlc3QoZk5vZGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZURpZmZlcmVuY2UoZlBhcmVudFJlY3Q6IElSZWN0LCBmUmVjdDogSVJlY3QpOiBJTm9kZU1vdmVMaW1pdHMge1xuICAgIHJldHVybiB7XG4gICAgICBtaW46IHRoaXMuX2NhbGN1bGF0ZU1pbmltdW1EaWZmZXJlbmNlKGZQYXJlbnRSZWN0LCBmUmVjdCksXG4gICAgICBtYXg6IHRoaXMuX2NhbGN1bGF0ZU1heGltdW1EaWZmZXJlbmNlKGZQYXJlbnRSZWN0LCBmUmVjdClcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTWluaW11bURpZmZlcmVuY2UoZlBhcmVudFJlY3Q6IElSZWN0LCBmUmVjdDogSVJlY3QpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShmUGFyZW50UmVjdC54IC0gZlJlY3QueCwgZlBhcmVudFJlY3QueSAtIGZSZWN0LnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTWF4aW11bURpZmZlcmVuY2UoZlBhcmVudFJlY3Q6IElSZWN0LCBmUmVjdDogSVJlY3QpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShcbiAgICAgIChmUGFyZW50UmVjdC54ICsgZlBhcmVudFJlY3Qud2lkdGgpIC0gKGZSZWN0LnggKyBmUmVjdC53aWR0aCksXG4gICAgICAoZlBhcmVudFJlY3QueSArIGZQYXJlbnRSZWN0LmhlaWdodCkgLSAoZlJlY3QueSArIGZSZWN0LmhlaWdodCksXG4gICAgKTtcbiAgfVxufVxuIl19