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.

33 lines 5.15 kB
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=