UNPKG

@print-one/grapesjs

Version:

Free and Open Source Web Builder Framework

35 lines (30 loc) 1.12 kB
import Rotator from '../../utils/Rotator'; import { CommandObject } from './CommandAbstract'; export default { run(editor, sender, opts) { const opt = opts || {}; const canvas = editor.Canvas; const canvasView = canvas.getCanvasView(); const options = { appendTo: canvas.getResizerEl(), prefix: editor.getConfig().stylePrefix, posFetcher: canvasView.getElementPos.bind(canvasView), mousePosFetcher: (ev: MouseEvent) => canvas.getMouseRelativeCanvas(ev, {}), rotationAngle: canvas.getRotationAngle(), ...(opt.options || {}), }; let { canvasRotator } = this; // Create the rotator for the canvas if not yet created if (!canvasRotator || opt.forceNew) { this.canvasRotator = new editor.Utils.Rotator(options); canvasRotator = this.canvasRotator; } canvasRotator.setOptions(options, true); canvasRotator.blur(); canvasRotator.focus(opt.el); return canvasRotator; }, stop() { this.canvasRotator?.blur(); }, } as CommandObject<{ options?: {}; forceNew?: boolean; el: HTMLElement }, { canvasRotator?: Rotator }>;