@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
64 lines • 3.1 kB
JavaScript
import { PointerInputHandlerHelper } from "./PointerInputHandlerHelper";
import { InputState } from "./../../../Input/InputManager/IInputManager";
import { PanHandler } from "./PanHandler";
import { PointF } from "@aurigma/design-atoms-model/Math";
import { ItemsCommand, ViewerCommand, ZoomCommand } from "@aurigma/design-atoms-interfaces";
export class DefaultTouchInputHandler {
constructor(_commandManager, _selectionHandler, eventManager, hitTestManager, _dndHandler, _canvas, rotateHandler) {
this._commandManager = _commandManager;
this._selectionHandler = _selectionHandler;
this._dndHandler = _dndHandler;
this._canvas = _canvas;
this._pointerInputHandler = new PointerInputHandlerHelper(_canvas, _commandManager, _selectionHandler, hitTestManager, eventManager, _dndHandler, rotateHandler);
this._panHandler = new PanHandler(this._commandManager);
}
async onTap(params) {
await this._pointerInputHandler.onPointerClick(params, false);
}
async onMove(params) {
await this._pointerInputHandler.onPointerMove(params, true);
if (params.state !== InputState.Finished && this._selectionHandler.isIdle && !this._dndHandler.isDragStarted()) {
this._panHandler.process(params);
}
}
async onLongTap(params) {
params.preventDefault();
await this._pointerInputHandler.onPointerClick(params, true);
}
async onDoubleClick(params) {
await this._pointerInputHandler.onDoubleClick(params);
}
async onPointerDown(params) {
await this._pointerInputHandler.onPointerDown(params);
}
async onTransform(params) {
var _a, _b;
if (this._dndHandler.isDragStarted())
return;
if (this._canvas.contentEditingPlaceholderItemHandler != null) {
const handler = this._canvas.contentEditingPlaceholderItemHandler;
const args = {
scale: handler.getContentScale() * params.scale,
forceQualityChangeInfoBar: params.state !== InputState.Finished,
items: [handler.item]
};
await this._commandManager.execute(ItemsCommand.placeholderContentScale, args);
}
else {
if (!this._selectionHandler.isIdle)
return;
if (!((_b = (_a = this._canvas) === null || _a === void 0 ? void 0 : _a.viewer) === null || _b === void 0 ? void 0 : _b.pinchZoomEnabled))
return;
const moveArgs = {
delta: new PointF(-params.translate.x, -params.translate.y)
};
await this._commandManager.execute(ZoomCommand.setZoom, {
zoom: this._canvas.viewer.zoom * params.scale,
withoutUpdate: params.state !== InputState.Finished,
preventEvent: false
});
await this._commandManager.execute(ViewerCommand.moveViewPort, moveArgs);
}
}
}
//# sourceMappingURL=DefaultTouchInputHandler.js.map