@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
JavaScript
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