@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.
33 lines • 5.15 kB
JavaScript
import { FComponentsStore } from '../../f-storage';
import { PointBoundsLimiter } from './point-bounds-limiter';
export class FSummaryNodeMoveDragHandler {
limits;
fHandlers;
commonRect;
fEventType = 'move-node';
fData;
_fComponentStore;
_fBoundsLimiter;
constructor(_injector, limits, fHandlers, commonRect) {
this.limits = limits;
this.fHandlers = fHandlers;
this.commonRect = commonRect;
this._fComponentStore = _injector.get(FComponentsStore);
this._fBoundsLimiter = new PointBoundsLimiter(_injector, this.commonRect, limits);
this.fData = {
fNodeIds: this.fHandlers.map((x) => x.fNode.fId)
};
}
onPointerMove(difference) {
const adjustCellSize = this._fComponentStore.fDraggable.fCellSizeWhileDragging;
const differenceWithRestrictions = this._fBoundsLimiter.limit(difference, adjustCellSize);
this.fHandlers.forEach((x) => x.onPointerMove(differenceWithRestrictions));
}
onPointerUp() {
this.fHandlers.forEach((x) => x.onPointerUp());
}
calculateRestrictedDifference(difference) {
return this._fBoundsLimiter.limit(difference, true);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zdW1tYXJ5LW5vZGUtbW92ZS5kcmFnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Ytbm9kZS1tb3ZlL2Ytc3VtbWFyeS1ub2RlLW1vdmUuZHJhZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTVELE1BQU0sT0FBTywyQkFBMkI7SUFVN0I7SUFDQTtJQUNBO0lBVk8sVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUN6QixLQUFLLENBQU07SUFFVixnQkFBZ0IsQ0FBbUI7SUFDbkMsZUFBZSxDQUFxQjtJQUVyRCxZQUNFLFNBQW1CLEVBQ1osTUFBb0IsRUFDcEIsU0FBaUMsRUFDakMsVUFBaUI7UUFGakIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFPO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ2pELENBQUM7SUFDSixDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWtCO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFXLENBQUMsc0JBQXNCLENBQUM7UUFDaEYsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFMUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sNkJBQTZCLENBQUMsVUFBa0I7UUFDckQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1pbk1heFBvaW50LCBJUG9pbnQsIElSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJRkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vZi1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBQb2ludEJvdW5kc0xpbWl0ZXIgfSBmcm9tICcuL3BvaW50LWJvdW5kcy1saW1pdGVyJztcbmltcG9ydCB7IEZOb2RlTW92ZURyYWdIYW5kbGVyIH0gZnJvbSAnLi9mLW5vZGUtbW92ZS5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEZTdW1tYXJ5Tm9kZU1vdmVEcmFnSGFuZGxlciBpbXBsZW1lbnRzIElGRHJhZ0hhbmRsZXIge1xuXG4gIHB1YmxpYyByZWFkb25seSBmRXZlbnRUeXBlID0gJ21vdmUtbm9kZSc7XG4gIHB1YmxpYyByZWFkb25seSBmRGF0YTogYW55O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb21wb25lbnRTdG9yZTogRkNvbXBvbmVudHNTdG9yZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZkJvdW5kc0xpbWl0ZXI6IFBvaW50Qm91bmRzTGltaXRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHB1YmxpYyBsaW1pdHM6IElNaW5NYXhQb2ludCxcbiAgICBwdWJsaWMgZkhhbmRsZXJzOiBGTm9kZU1vdmVEcmFnSGFuZGxlcltdLFxuICAgIHB1YmxpYyBjb21tb25SZWN0OiBJUmVjdFxuICApIHtcbiAgICB0aGlzLl9mQ29tcG9uZW50U3RvcmUgPSBfaW5qZWN0b3IuZ2V0KEZDb21wb25lbnRzU3RvcmUpO1xuICAgIHRoaXMuX2ZCb3VuZHNMaW1pdGVyID0gbmV3IFBvaW50Qm91bmRzTGltaXRlcihfaW5qZWN0b3IsIHRoaXMuY29tbW9uUmVjdCwgbGltaXRzKTtcbiAgICB0aGlzLmZEYXRhID0ge1xuICAgICAgZk5vZGVJZHM6IHRoaXMuZkhhbmRsZXJzLm1hcCgoeCkgPT4geC5mTm9kZS5mSWQpXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJNb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IGFkanVzdENlbGxTaXplID0gdGhpcy5fZkNvbXBvbmVudFN0b3JlLmZEcmFnZ2FibGUhLmZDZWxsU2l6ZVdoaWxlRHJhZ2dpbmc7XG4gICAgY29uc3QgZGlmZmVyZW5jZVdpdGhSZXN0cmljdGlvbnMgPSB0aGlzLl9mQm91bmRzTGltaXRlci5saW1pdChkaWZmZXJlbmNlLCBhZGp1c3RDZWxsU2l6ZSk7XG5cbiAgICB0aGlzLmZIYW5kbGVycy5mb3JFYWNoKCh4KSA9PiB4Lm9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZVdpdGhSZXN0cmljdGlvbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcCgpOiB2b2lkIHtcbiAgICB0aGlzLmZIYW5kbGVycy5mb3JFYWNoKCh4KSA9PiB4Lm9uUG9pbnRlclVwKCkpO1xuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZVJlc3RyaWN0ZWREaWZmZXJlbmNlKGRpZmZlcmVuY2U6IElQb2ludCk6IElQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZCb3VuZHNMaW1pdGVyLmxpbWl0KGRpZmZlcmVuY2UsIHRydWUpO1xuICB9XG59XG4iXX0=