@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.
21 lines • 3.38 kB
JavaScript
import { Point, PointExtensions } from '@foblex/2d';
import { FComponentsStore } from '../../f-storage';
export class FCanvasDragHandler {
fEventType = 'canvas-move';
_fComponentsStore;
_onPointerDownPosition = PointExtensions.initialize();
constructor(_injector) {
this._fComponentsStore = _injector.get(FComponentsStore);
}
prepareDragSequence() {
this._onPointerDownPosition = this._fComponentsStore.fCanvas.transform.position;
}
onPointerMove(difference) {
this._fComponentsStore.fCanvas.setPosition(Point.fromPoint(this._onPointerDownPosition).add(difference));
this._fComponentsStore.fCanvas.redraw();
}
onPointerUp() {
this._fComponentsStore.fCanvas.emitCanvasChangeEvent();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuZHJhZy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWNhbnZhcy9mLWNhbnZhcy5kcmFnLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUV0QixVQUFVLEdBQUcsYUFBYSxDQUFDO0lBRWpCLGlCQUFpQixDQUFtQjtJQUM3QyxzQkFBc0IsR0FBVyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFdEUsWUFDRSxTQUFtQjtRQUVuQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNuRixDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWtCO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBUSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDMUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50LCBQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJRkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vZi1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgRkNhbnZhc0RyYWdIYW5kbGVyIGltcGxlbWVudHMgSUZEcmFnSGFuZGxlciB7XG5cbiAgcHVibGljIGZFdmVudFR5cGUgPSAnY2FudmFzLW1vdmUnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmU7XG4gIHByaXZhdGUgX29uUG9pbnRlckRvd25Qb3NpdGlvbjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxuICApIHtcbiAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlID0gX2luamVjdG9yLmdldChGQ29tcG9uZW50c1N0b3JlKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX29uUG9pbnRlckRvd25Qb3NpdGlvbiA9IHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtLnBvc2l0aW9uO1xuICB9XG5cbiAgcHVibGljIG9uUG9pbnRlck1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5zZXRQb3NpdGlvbihQb2ludC5mcm9tUG9pbnQodGhpcy5fb25Qb2ludGVyRG93blBvc2l0aW9uKS5hZGQoZGlmZmVyZW5jZSkpO1xuICAgIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEucmVkcmF3KCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb2ludGVyVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS5lbWl0Q2FudmFzQ2hhbmdlRXZlbnQoKTtcbiAgfVxufVxuIl19