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.

53 lines 7.51 kB
import { __decorate } from "tslib"; import { Injectable } from '@angular/core'; import { ApplyChildResizeRestrictionsRequest } from './apply-child-resize-restrictions.request'; import { FExecutionRegister } from '@foblex/mediator'; import * as i0 from "@angular/core"; const CHILD_RESIZE_OFFSET = 0; let ApplyChildResizeRestrictionsExecution = class ApplyChildResizeRestrictionsExecution { handle(request) { this._apply(request.rect, request.restrictions.childrenBounds); } _apply(rect, restrictionsRect) { this._restrictLeft(rect, restrictionsRect); this._restrictTop(rect, restrictionsRect); this._restrictRight(rect, restrictionsRect); this._restrictBottom(rect, restrictionsRect); } _restrictLeft(rect, restrictions) { const delta = rect.x - (restrictions.x - CHILD_RESIZE_OFFSET); if (delta > 0) { rect.x -= delta; rect.width += delta; } } _restrictTop(rect, restrictions) { const delta = rect.y - (restrictions.y - CHILD_RESIZE_OFFSET); if (delta > 0) { rect.y -= delta; rect.height += delta; } } _restrictRight(rect, restrictions) { const maxRight = restrictions.x + restrictions.width + CHILD_RESIZE_OFFSET; if (rect.x + rect.width <= maxRight) { rect.width = maxRight - rect.x; } } _restrictBottom(rect, restrictions) { const maxBottom = restrictions.y + restrictions.height + CHILD_RESIZE_OFFSET; if (rect.y + rect.height <= maxBottom) { rect.height = maxBottom - rect.y; } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplyChildResizeRestrictionsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplyChildResizeRestrictionsExecution }); }; ApplyChildResizeRestrictionsExecution = __decorate([ FExecutionRegister(ApplyChildResizeRestrictionsRequest) ], ApplyChildResizeRestrictionsExecution); export { ApplyChildResizeRestrictionsExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplyChildResizeRestrictionsExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktY2hpbGQtcmVzaXplLXJlc3RyaWN0aW9ucy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1yZXNpemUvYXBwbHktY2hpbGQtcmVzaXplLXJlc3RyaWN0aW9ucy9hcHBseS1jaGlsZC1yZXNpemUtcmVzdHJpY3Rpb25zLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFbEUsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFJdkIsSUFBTSxxQ0FBcUMsR0FBM0MsTUFBTSxxQ0FBcUM7SUFHekMsTUFBTSxDQUFDLE9BQTRDO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxNQUFNLENBQUMsSUFBVyxFQUFFLGdCQUF1QjtRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBVyxFQUFFLFlBQW1CO1FBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLENBQUM7UUFDOUQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFXLEVBQUUsWUFBbUI7UUFDbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztRQUM5RCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVcsRUFBRSxZQUFtQjtRQUNyRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFXLEVBQUUsWUFBbUI7UUFDdEQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDO1FBQzdFLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7d0dBMUNVLHFDQUFxQzs0R0FBckMscUNBQXFDOztBQUFyQyxxQ0FBcUM7SUFEakQsa0JBQWtCLENBQUMsbUNBQW1DLENBQUM7R0FDM0MscUNBQXFDLENBMkNqRDs7NEZBM0NZLHFDQUFxQztrQkFGakQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGx5Q2hpbGRSZXNpemVSZXN0cmljdGlvbnNSZXF1ZXN0IH0gZnJvbSAnLi9hcHBseS1jaGlsZC1yZXNpemUtcmVzdHJpY3Rpb25zLnJlcXVlc3QnO1xuaW1wb3J0IHsgSVJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuXG5jb25zdCBDSElMRF9SRVNJWkVfT0ZGU0VUID0gMDtcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihBcHBseUNoaWxkUmVzaXplUmVzdHJpY3Rpb25zUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBBcHBseUNoaWxkUmVzaXplUmVzdHJpY3Rpb25zRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxBcHBseUNoaWxkUmVzaXplUmVzdHJpY3Rpb25zUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogQXBwbHlDaGlsZFJlc2l6ZVJlc3RyaWN0aW9uc1JlcXVlc3QpOiB2b2lkIHtcbiAgICB0aGlzLl9hcHBseShyZXF1ZXN0LnJlY3QsIHJlcXVlc3QucmVzdHJpY3Rpb25zLmNoaWxkcmVuQm91bmRzISk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseShyZWN0OiBJUmVjdCwgcmVzdHJpY3Rpb25zUmVjdDogSVJlY3QpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXN0cmljdExlZnQocmVjdCwgcmVzdHJpY3Rpb25zUmVjdCk7XG4gICAgdGhpcy5fcmVzdHJpY3RUb3AocmVjdCwgcmVzdHJpY3Rpb25zUmVjdCk7XG4gICAgdGhpcy5fcmVzdHJpY3RSaWdodChyZWN0LCByZXN0cmljdGlvbnNSZWN0KTtcbiAgICB0aGlzLl9yZXN0cmljdEJvdHRvbShyZWN0LCByZXN0cmljdGlvbnNSZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc3RyaWN0TGVmdChyZWN0OiBJUmVjdCwgcmVzdHJpY3Rpb25zOiBJUmVjdCk6IHZvaWQge1xuICAgIGNvbnN0IGRlbHRhID0gcmVjdC54IC0gKHJlc3RyaWN0aW9ucy54IC0gQ0hJTERfUkVTSVpFX09GRlNFVCk7XG4gICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgcmVjdC54IC09IGRlbHRhO1xuICAgICAgcmVjdC53aWR0aCArPSBkZWx0YTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXN0cmljdFRvcChyZWN0OiBJUmVjdCwgcmVzdHJpY3Rpb25zOiBJUmVjdCk6IHZvaWQge1xuICAgIGNvbnN0IGRlbHRhID0gcmVjdC55IC0gKHJlc3RyaWN0aW9ucy55IC0gQ0hJTERfUkVTSVpFX09GRlNFVCk7XG4gICAgaWYgKGRlbHRhID4gMCkge1xuICAgICAgcmVjdC55IC09IGRlbHRhO1xuICAgICAgcmVjdC5oZWlnaHQgKz0gZGVsdGE7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzdHJpY3RSaWdodChyZWN0OiBJUmVjdCwgcmVzdHJpY3Rpb25zOiBJUmVjdCk6IHZvaWQge1xuICAgIGNvbnN0IG1heFJpZ2h0ID0gcmVzdHJpY3Rpb25zLnggKyByZXN0cmljdGlvbnMud2lkdGggKyBDSElMRF9SRVNJWkVfT0ZGU0VUO1xuICAgIGlmIChyZWN0LnggKyByZWN0LndpZHRoIDw9IG1heFJpZ2h0KSB7XG4gICAgICByZWN0LndpZHRoID0gbWF4UmlnaHQgLSByZWN0Lng7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzdHJpY3RCb3R0b20ocmVjdDogSVJlY3QsIHJlc3RyaWN0aW9uczogSVJlY3QpOiB2b2lkIHtcbiAgICBjb25zdCBtYXhCb3R0b20gPSByZXN0cmljdGlvbnMueSArIHJlc3RyaWN0aW9ucy5oZWlnaHQgKyBDSElMRF9SRVNJWkVfT0ZGU0VUO1xuICAgIGlmIChyZWN0LnkgKyByZWN0LmhlaWdodCA8PSBtYXhCb3R0b20pIHtcbiAgICAgIHJlY3QuaGVpZ2h0ID0gbWF4Qm90dG9tIC0gcmVjdC55O1xuICAgIH1cbiAgfVxufVxuIl19