@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.
39 lines • 6.99 kB
JavaScript
import { __decorate } from "tslib";
import { inject, Injectable } from '@angular/core';
import { GetNodeResizeRestrictionsRequest } from './get-node-resize-restrictions.request';
import { SizeExtensions } from '@foblex/2d';
import { FExecutionRegister, FMediator } from '@foblex/mediator';
import { GetNormalizedParentNodeRectRequest } from '../../domain';
import { GetNormalizedChildrenNodesRectRequest } from '../get-normalized-children-nodes-rect';
import { GetNodePaddingRequest } from '../../../domain';
import * as i0 from "@angular/core";
let GetNodeResizeRestrictionsExecution = class GetNodeResizeRestrictionsExecution {
_fMediator = inject(FMediator);
handle(request) {
const paddings = this._calculateNodePaddings(request.fNode, request.rect);
return {
parentBounds: this._getNormalizedParentBounds(request.fNode),
childrenBounds: this._getNormalizedChildrenBounds(request.fNode, paddings),
minimumSize: SizeExtensions.initialize(paddings[0] + paddings[2], paddings[1] + paddings[3])
};
}
_calculateNodePaddings(node, rect) {
return this._fMediator.execute(new GetNodePaddingRequest(node, rect));
}
_getNormalizedParentBounds(fNode) {
return this._fMediator.execute(new GetNormalizedParentNodeRectRequest(fNode));
}
_getNormalizedChildrenBounds(fNode, fNodePaddings) {
return this._fMediator.execute(new GetNormalizedChildrenNodesRectRequest(fNode, fNodePaddings));
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNodeResizeRestrictionsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNodeResizeRestrictionsExecution });
};
GetNodeResizeRestrictionsExecution = __decorate([
FExecutionRegister(GetNodeResizeRestrictionsRequest)
], GetNodeResizeRestrictionsExecution);
export { GetNodeResizeRestrictionsExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNodeResizeRestrictionsExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vZGUtcmVzaXplLXJlc3RyaWN0aW9ucy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1yZXNpemUvZ2V0LW5vZGUtcmVzaXplLXJlc3RyaWN0aW9ucy9nZXQtbm9kZS1yZXNpemUtcmVzdHJpY3Rpb25zLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFTLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUtqRCxJQUFNLGtDQUFrQyxHQUF4QyxNQUFNLGtDQUFrQztJQUdyQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWhDLE1BQU0sQ0FBQyxPQUF5QztRQUNyRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUUsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUM1RCxjQUFjLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO1lBQzFFLFdBQVcsRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RixDQUFBO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQWUsRUFBRSxJQUFXO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQXFDLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVPLDBCQUEwQixDQUFDLEtBQWdCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQVEsSUFBSSxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxLQUFnQixFQUFFLGFBQWlEO1FBQ3RHLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQWUsSUFBSSxxQ0FBcUMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDO3dHQXpCVSxrQ0FBa0M7NEdBQWxDLGtDQUFrQzs7QUFBbEMsa0NBQWtDO0lBRDlDLGtCQUFrQixDQUFDLGdDQUFnQyxDQUFDO0dBQ3hDLGtDQUFrQyxDQTBCOUM7OzRGQTFCWSxrQ0FBa0M7a0JBRjlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdldE5vZGVSZXNpemVSZXN0cmljdGlvbnNSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtbm9kZS1yZXNpemUtcmVzdHJpY3Rpb25zLnJlcXVlc3QnO1xuaW1wb3J0IHsgSVJlY3QsIFNpemVFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJTm9kZVJlc2l6ZVJlc3RyaWN0aW9ucyB9IGZyb20gJy4vaS1ub2RlLXJlc2l6ZS1yZXN0cmljdGlvbnMnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEdldE5vcm1hbGl6ZWRQYXJlbnROb2RlUmVjdFJlcXVlc3QgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZENoaWxkcmVuTm9kZXNSZWN0UmVxdWVzdCB9IGZyb20gJy4uL2dldC1ub3JtYWxpemVkLWNoaWxkcmVuLW5vZGVzLXJlY3QnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEdldE5vZGVQYWRkaW5nUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXROb2RlUmVzaXplUmVzdHJpY3Rpb25zUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBHZXROb2RlUmVzaXplUmVzdHJpY3Rpb25zRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxHZXROb2RlUmVzaXplUmVzdHJpY3Rpb25zUmVxdWVzdCwgSU5vZGVSZXNpemVSZXN0cmljdGlvbnM+IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEdldE5vZGVSZXNpemVSZXN0cmljdGlvbnNSZXF1ZXN0KTogSU5vZGVSZXNpemVSZXN0cmljdGlvbnMge1xuICAgIGNvbnN0IHBhZGRpbmdzID0gdGhpcy5fY2FsY3VsYXRlTm9kZVBhZGRpbmdzKHJlcXVlc3QuZk5vZGUsIHJlcXVlc3QucmVjdCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFyZW50Qm91bmRzOiB0aGlzLl9nZXROb3JtYWxpemVkUGFyZW50Qm91bmRzKHJlcXVlc3QuZk5vZGUpLFxuICAgICAgY2hpbGRyZW5Cb3VuZHM6IHRoaXMuX2dldE5vcm1hbGl6ZWRDaGlsZHJlbkJvdW5kcyhyZXF1ZXN0LmZOb2RlLCBwYWRkaW5ncyksXG4gICAgICBtaW5pbXVtU2l6ZTogU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZShwYWRkaW5nc1swXSArIHBhZGRpbmdzWzJdLCBwYWRkaW5nc1sxXSArIHBhZGRpbmdzWzNdKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZU5vZGVQYWRkaW5ncyhub2RlOiBGTm9kZUJhc2UsIHJlY3Q6IElSZWN0KTogWyBudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIgXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPFsgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyIF0+KG5ldyBHZXROb2RlUGFkZGluZ1JlcXVlc3Qobm9kZSwgcmVjdCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9ybWFsaXplZFBhcmVudEJvdW5kcyhmTm9kZTogRk5vZGVCYXNlKTogSVJlY3Qge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRQYXJlbnROb2RlUmVjdFJlcXVlc3QoZk5vZGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vcm1hbGl6ZWRDaGlsZHJlbkJvdW5kcyhmTm9kZTogRk5vZGVCYXNlLCBmTm9kZVBhZGRpbmdzOiBbIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciBdKTogSVJlY3QgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SVJlY3QgfCBudWxsPihuZXcgR2V0Tm9ybWFsaXplZENoaWxkcmVuTm9kZXNSZWN0UmVxdWVzdChmTm9kZSwgZk5vZGVQYWRkaW5ncykpO1xuICB9XG59XG4iXX0=