@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
73 lines • 3.17 kB
JavaScript
import { BaseInputHandler } from "../BaseInputHandler";
import { DefaultKeyInputHandler } from "./DefaultKeyInputHandler";
import { DefaultMouseInputHandler } from "./DefaultMouseInputHandler";
import { DefaultTouchInputHandler } from "./DefaultTouchInputHandler";
import Environment from "@aurigma/design-atoms-model/Utils/Environment";
// Standard ?
export class DefaultInputHandler extends BaseInputHandler {
constructor(inputManager, _canvas, _commandManager, _eventManager) {
super(inputManager);
this._canvas = _canvas;
this._commandManager = _commandManager;
this._eventManager = _eventManager;
this._hitTestManager = this._canvas.hitTestManager;
this._keyInputHandler = new DefaultKeyInputHandler(this._commandManager, this._canvas, this._selectionHandler);
this._selectionHandler.unlock();
if (Environment.IsTouchDevice()) {
this._touchInputHandler = new DefaultTouchInputHandler(this._commandManager, this._selectionHandler, this._eventManager, this._hitTestManager, this._canvas.dndHandler, this._canvas, this._canvas.rotateHandler);
this._currentInputHandler = this._touchInputHandler;
}
else {
this._mouseInputHandler = new DefaultMouseInputHandler(this._commandManager, this._selectionHandler, this._rubberbandHandler, this._eventManager, this._hitTestManager, this._canvas.dndHandler, this._canvas, this._canvas.rotateHandler);
this._currentInputHandler = this._mouseInputHandler;
}
}
get _selectionHandler() {
return this._canvas.selection;
}
get _rubberbandHandler() {
return this._canvas.rubberbandHandler;
}
async _onClick(params) {
if (params.isMobile) {
this._touchInputHandler.onTap(params);
}
else {
this._mouseInputHandler.onClick(params);
}
}
async _onMove(params) {
this._currentInputHandler.onMove(params);
params.preventDefault();
}
async _onDoubleClick(params) {
this._currentInputHandler.onDoubleClick(params);
}
async _onPointerDown(params) {
this._currentInputHandler.onPointerDown(params);
}
async _onHover(params) {
this._mouseInputHandler.onHover(params);
}
async _onKey(params) {
this._keyInputHandler.onKeyInput(params);
this._mouseInputHandler.spacePressed = this._keyInputHandler.spacePressed;
}
async _onLongTap(params) {
this._touchInputHandler.onLongTap(params);
}
async _onTransform(params) {
this._touchInputHandler.onTransform(params);
}
async _onWheel(params) {
if (params.ctrlKey) {
const isMouse = Number.isInteger(params.delta.y);
const coeff = isMouse ? -0.001 : -0.01;
const zoomDelta = params.delta.y * coeff;
const curentZoom = this._canvas.zoom;
this._canvas.viewer.setZoom(curentZoom + zoomDelta);
params.preventDefault();
}
}
}
//# sourceMappingURL=DefaultInputHandler.js.map