import { EASINGS, StateNode } from "@cmpd/editor";
import { Dragging } from "./childStates/Dragging.mjs";
import { Idle } from "./childStates/Idle.mjs";
import { Pointing } from "./childStates/Pointing.mjs";
class HandTool extends StateNode {
  static id = "hand";
  static initial = "idle";
  static children = () => [Idle, Pointing, Dragging];
  onDoubleClick = (info) => {
    if (info.phase === "settle") {
      const { currentScreenPoint } = this.editor.inputs;
      this.editor.zoomIn(currentScreenPoint, { duration: 220, easing: EASINGS.easeOutQuint });
    }
  };
  onTripleClick = (info) => {
    if (info.phase === "settle") {
      const { currentScreenPoint } = this.editor.inputs;
      this.editor.zoomOut(currentScreenPoint, { duration: 320, easing: EASINGS.easeOutQuint });
    }
  };
  onQuadrupleClick = (info) => {
    if (info.phase === "settle") {
      const zoomLevel = this.editor.getZoomLevel();
      const {
        inputs: { currentScreenPoint }
      } = this.editor;
      if (zoomLevel === 1) {
        this.editor.zoomToFit({ duration: 400, easing: EASINGS.easeOutQuint });
      } else {
        this.editor.resetZoom(currentScreenPoint, { duration: 320, easing: EASINGS.easeOutQuint });
      }
    }
  };
}
export {
  HandTool
};
//# sourceMappingURL=HandTool.mjs.map
