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.

67 lines 10.6 kB
import { __decorate } from "tslib"; import { inject, Injectable } from '@angular/core'; import { GetNormalizedParentNodeRectRequest } from './get-normalized-parent-node-rect.request'; import { RectExtensions } from '@foblex/2d'; import { FExecutionRegister, FMediator } from '@foblex/mediator'; import { FComponentsStore } from '../../../f-storage'; import { GetNodePaddingRequest } from '../../../domain'; import { GetNormalizedElementRectRequest } from '../../../domain'; import * as i0 from "@angular/core"; let GetNormalizedParentNodeRectExecution = class GetNormalizedParentNodeRectExecution { _fComponentsStore = inject(FComponentsStore); _fMediator = inject(FMediator); handle(request) { let result = RectExtensions.initialize(-Infinity, -Infinity, Infinity, Infinity); const parentNode = this._getNode(request.fNode.fParentId); if (parentNode) { result = this._getParentRect(parentNode); } return result; } _getNode(fId) { return this._fComponentsStore.fNodes.find((x) => x.fId === fId); } // Parent Node // +----------------------------------------+ // | padding-top | // | +----------------------------------+ | // | | | | // | | Available area for | | // |p | child nodes |p | // |a | |a | // |d | (width - padLeft - padRight) |d | // | | |d | // |l | (height - padTop - padBottom) |i | // |e | |n | // |f | |g | // |t | | | // | | |r | // | | |i | // | | |g | // | | |h | // | | |t | // | +----------------------------------+ | // | padding-bottom | // +----------------------------------------+ _getParentRect(node) { const rect = this._getNodeRect(node); const padding = this._getNodePadding(node, rect); return RectExtensions.initialize(rect.x + padding[0], rect.y + padding[1], rect.width - padding[0] - padding[2], rect.height - padding[1] - padding[3]); } _getNodeRect(fNode) { return this._fMediator.execute(new GetNormalizedElementRectRequest(fNode.hostElement)); } _getNodePadding(node, rect) { return this._fMediator.execute(new GetNodePaddingRequest(node, rect)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedParentNodeRectExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedParentNodeRectExecution }); }; GetNormalizedParentNodeRectExecution = __decorate([ FExecutionRegister(GetNormalizedParentNodeRectRequest) ], GetNormalizedParentNodeRectExecution); export { GetNormalizedParentNodeRectExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedParentNodeRectExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vcm1hbGl6ZWQtcGFyZW50LW5vZGUtcmVjdC5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9nZXQtbm9ybWFsaXplZC1wYXJlbnQtbm9kZS1yZWN0L2dldC1ub3JtYWxpemVkLXBhcmVudC1ub2RlLXJlY3QuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEVBQVMsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJM0QsSUFBTSxvQ0FBb0MsR0FBMUMsTUFBTSxvQ0FBb0M7SUFHOUIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV6QyxNQUFNLENBQUMsT0FBMkM7UUFDdkQsSUFBSSxNQUFNLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxHQUFtQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsNkNBQTZDO0lBQzdDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDO0lBQzdDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDO0lBQzdDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDO0lBQzdDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDO0lBQzdDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDO0lBQzdDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDO0lBQzdDLDZDQUE2QztJQUM3Qyw2Q0FBNkM7SUFDckMsY0FBYyxDQUFDLElBQWU7UUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRCxPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQzlCLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFFLENBQUMsQ0FBRSxFQUNyQixJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBRSxDQUFDLENBQUUsRUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUUsQ0FBQyxDQUFFLEdBQUcsT0FBTyxDQUFFLENBQUMsQ0FBRSxFQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBRSxDQUFDLENBQUUsR0FBRyxPQUFPLENBQUUsQ0FBQyxDQUFFLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQVEsSUFBSSwrQkFBK0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQWUsRUFBRSxJQUFXO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQXFDLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQzt3R0F6RFUsb0NBQW9DOzRHQUFwQyxvQ0FBb0M7O0FBQXBDLG9DQUFvQztJQURoRCxrQkFBa0IsQ0FBQyxrQ0FBa0MsQ0FBQztHQUMxQyxvQ0FBb0MsQ0EwRGhEOzs0RkExRFksb0NBQW9DO2tCQUZoRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZFBhcmVudE5vZGVSZWN0UmVxdWVzdCB9IGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtcGFyZW50LW5vZGUtcmVjdC5yZXF1ZXN0JztcbmltcG9ydCB7IElSZWN0LCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEdldE5vZGVQYWRkaW5nUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXROb3JtYWxpemVkUGFyZW50Tm9kZVJlY3RSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEdldE5vcm1hbGl6ZWRQYXJlbnROb2RlUmVjdEV4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248R2V0Tm9ybWFsaXplZFBhcmVudE5vZGVSZWN0UmVxdWVzdCwgSVJlY3Q+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEdldE5vcm1hbGl6ZWRQYXJlbnROb2RlUmVjdFJlcXVlc3QpOiBJUmVjdCB7XG4gICAgbGV0IHJlc3VsdCA9IFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoLUluZmluaXR5LCAtSW5maW5pdHksIEluZmluaXR5LCBJbmZpbml0eSk7XG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IHRoaXMuX2dldE5vZGUocmVxdWVzdC5mTm9kZS5mUGFyZW50SWQpO1xuICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLl9nZXRQYXJlbnRSZWN0KHBhcmVudE5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9kZShmSWQ/OiBzdHJpbmcgfCBudWxsKTogRk5vZGVCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mTm9kZXMuZmluZCgoeCkgPT4geC5mSWQgPT09IGZJZCk7XG4gIH1cbiAgLy8gICBQYXJlbnQgTm9kZVxuICAvLyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgLy8gfCAgcGFkZGluZy10b3AgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gIC8vIHwgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgfFxuICAvLyB8ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHxcbiAgLy8gfCAgfCAgIEF2YWlsYWJsZSBhcmVhIGZvciAgICAgICAgICAgICB8ICB8XG4gIC8vIHxwIHwgICBjaGlsZCBub2RlcyAgICAgICAgICAgICAgICAgICAgfHAgfFxuICAvLyB8YSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxhIHxcbiAgLy8gfGQgfCAgICh3aWR0aCAtIHBhZExlZnQgLSBwYWRSaWdodCkgICB8ZCB8XG4gIC8vIHwgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfGQgfFxuICAvLyB8bCB8ICAgKGhlaWdodCAtIHBhZFRvcCAtIHBhZEJvdHRvbSkgIHxpIHxcbiAgLy8gfGUgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8biB8XG4gIC8vIHxmIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfGcgfFxuICAvLyB8dCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHxcbiAgLy8gfCAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ciB8XG4gIC8vIHwgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfGkgfFxuICAvLyB8ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxnIHxcbiAgLy8gfCAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8aCB8XG4gIC8vIHwgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHQgfFxuICAvLyB8ICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgIHxcbiAgLy8gfCAgcGFkZGluZy1ib3R0b20gICAgICAgICAgICAgICAgICAgICAgICB8XG4gIC8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICBwcml2YXRlIF9nZXRQYXJlbnRSZWN0KG5vZGU6IEZOb2RlQmFzZSk6IElSZWN0IHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5fZ2V0Tm9kZVJlY3Qobm9kZSk7XG4gICAgY29uc3QgcGFkZGluZyA9IHRoaXMuX2dldE5vZGVQYWRkaW5nKG5vZGUsIHJlY3QpO1xuICAgIHJldHVybiBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKFxuICAgICAgcmVjdC54ICsgcGFkZGluZ1sgMCBdLFxuICAgICAgcmVjdC55ICsgcGFkZGluZ1sgMSBdLFxuICAgICAgcmVjdC53aWR0aCAtIHBhZGRpbmdbIDAgXSAtIHBhZGRpbmdbIDIgXSxcbiAgICAgIHJlY3QuaGVpZ2h0IC0gcGFkZGluZ1sgMSBdIC0gcGFkZGluZ1sgMyBdXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGVSZWN0KGZOb2RlOiBGTm9kZUJhc2UpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdChmTm9kZS5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9kZVBhZGRpbmcobm9kZTogRk5vZGVCYXNlLCByZWN0OiBJUmVjdCk6IFsgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyIF0ge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxbIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciBdPihuZXcgR2V0Tm9kZVBhZGRpbmdSZXF1ZXN0KG5vZGUsIHJlY3QpKTtcbiAgfVxufVxuIl19