@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.
38 lines • 6.65 kB
JavaScript
import { __decorate } from "tslib";
import { Injectable } from '@angular/core';
import { GetNormalizedChildrenNodesRectRequest } from './get-normalized-children-nodes-rect.request';
import { RectExtensions } from '@foblex/2d';
import { FExecutionRegister } from '@foblex/mediator';
import { GetDeepChildrenNodesAndGroupsRequest, GetNormalizedElementRectRequest } from '../../../domain';
import * as i0 from "@angular/core";
import * as i1 from "@foblex/mediator";
let GetNormalizedChildrenNodesRectExecution = class GetNormalizedChildrenNodesRectExecution {
fMediator;
constructor(fMediator) {
this.fMediator = fMediator;
}
handle(request) {
const childNodeRect = RectExtensions.union(this.getChildrenNodes(request.fNode.fId).map((x) => this.normalizeRect(x)));
return childNodeRect ?
this.concatRectWithParentPadding(childNodeRect, request.paddings) : null;
}
getChildrenNodes(fId) {
return this.fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId));
}
normalizeRect(fNode) {
return this.fMediator.execute(new GetNormalizedElementRectRequest(fNode.hostElement));
}
concatRectWithParentPadding(rect, padding) {
return RectExtensions.initialize(rect.x - padding[0], rect.y - padding[1], rect.width + padding[0] + padding[2], rect.height + +padding[1] + padding[3]);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedChildrenNodesRectExecution, deps: [{ token: i1.FMediator }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedChildrenNodesRectExecution });
};
GetNormalizedChildrenNodesRectExecution = __decorate([
FExecutionRegister(GetNormalizedChildrenNodesRectRequest)
], GetNormalizedChildrenNodesRectExecution);
export { GetNormalizedChildrenNodesRectExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetNormalizedChildrenNodesRectExecution, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.FMediator }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vcm1hbGl6ZWQtY2hpbGRyZW4tbm9kZXMtcmVjdC5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1yZXNpemUvZ2V0LW5vcm1hbGl6ZWQtY2hpbGRyZW4tbm9kZXMtcmVjdC9nZXQtbm9ybWFsaXplZC1jaGlsZHJlbi1ub2Rlcy1yZWN0LmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRyxPQUFPLEVBQVMsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBSWpHLElBQU0sdUNBQXVDLEdBQTdDLE1BQU0sdUNBQXVDO0lBSXhDO0lBRFYsWUFDVSxTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBRTlCLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBOEM7UUFDMUQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNFLENBQUM7UUFDRixPQUFPLGFBQWEsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0UsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBYyxJQUFJLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFnQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFRLElBQUksK0JBQStCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVPLDJCQUEyQixDQUFDLElBQVcsRUFBRSxPQUEyQztRQUMxRixPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQzlCLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNuQixJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDeEMsQ0FBQztJQUNKLENBQUM7d0dBL0JVLHVDQUF1Qzs0R0FBdkMsdUNBQXVDOztBQUF2Qyx1Q0FBdUM7SUFEbkQsa0JBQWtCLENBQUMscUNBQXFDLENBQUM7R0FDN0MsdUNBQXVDLENBZ0NuRDs7NEZBaENZLHVDQUF1QztrQkFGbkQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdldE5vcm1hbGl6ZWRDaGlsZHJlbk5vZGVzUmVjdFJlcXVlc3QgfSBmcm9tICcuL2dldC1ub3JtYWxpemVkLWNoaWxkcmVuLW5vZGVzLXJlY3QucmVxdWVzdCc7XG5pbXBvcnQgeyBJUmVjdCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNSZXF1ZXN0LCBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXROb3JtYWxpemVkQ2hpbGRyZW5Ob2Rlc1JlY3RSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEdldE5vcm1hbGl6ZWRDaGlsZHJlbk5vZGVzUmVjdEV4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248R2V0Tm9ybWFsaXplZENoaWxkcmVuTm9kZXNSZWN0UmVxdWVzdCwgSVJlY3QgfCBudWxsPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZNZWRpYXRvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogR2V0Tm9ybWFsaXplZENoaWxkcmVuTm9kZXNSZWN0UmVxdWVzdCk6IElSZWN0IHwgbnVsbCB7XG4gICAgY29uc3QgY2hpbGROb2RlUmVjdCA9IFJlY3RFeHRlbnNpb25zLnVuaW9uKFxuICAgICAgdGhpcy5nZXRDaGlsZHJlbk5vZGVzKHJlcXVlc3QuZk5vZGUuZklkKS5tYXAoKHgpID0+IHRoaXMubm9ybWFsaXplUmVjdCh4KSlcbiAgICApO1xuICAgIHJldHVybiBjaGlsZE5vZGVSZWN0ID9cbiAgICAgIHRoaXMuY29uY2F0UmVjdFdpdGhQYXJlbnRQYWRkaW5nKGNoaWxkTm9kZVJlY3QsIHJlcXVlc3QucGFkZGluZ3MpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW5Ob2RlcyhmSWQ6IHN0cmluZyk6IEZOb2RlQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3IuZXhlY3V0ZTxGTm9kZUJhc2VbXT4obmV3IEdldERlZXBDaGlsZHJlbk5vZGVzQW5kR3JvdXBzUmVxdWVzdChmSWQpKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplUmVjdChmTm9kZTogRk5vZGVCYXNlKTogSVJlY3Qge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5leGVjdXRlPElSZWN0PihuZXcgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdChmTm9kZS5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRSZWN0V2l0aFBhcmVudFBhZGRpbmcocmVjdDogSVJlY3QsIHBhZGRpbmc6IFsgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyIF0pOiBJUmVjdCB7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoXG4gICAgICByZWN0LnggLSBwYWRkaW5nWzBdLFxuICAgICAgcmVjdC55IC0gcGFkZGluZ1sxXSxcbiAgICAgIHJlY3Qud2lkdGggKyBwYWRkaW5nWzBdICsgcGFkZGluZ1syXSxcbiAgICAgIHJlY3QuaGVpZ2h0ICsgKyBwYWRkaW5nWzFdICsgcGFkZGluZ1szXVxuICAgICk7XG4gIH1cbn1cbiJdfQ==