@print-one/grapesjs
Version:
Free and Open Source Web Builder Framework
35 lines (30 loc) • 1.14 kB
text/typescript
import Resizer, { ResizerOptions } from '../../utils/Resizer';
import { CommandObject } from './CommandAbstract';
export default {
run(editor, sender, opts) {
const opt = opts || {};
const canvas = editor.Canvas;
const canvasView = canvas.getCanvasView();
const options: ResizerOptions = {
appendTo: canvas.getResizerEl(),
prefix: editor.getConfig().stylePrefix,
posFetcher: canvasView.getElementPos.bind(canvasView),
mousePosFetcher: canvas.getMouseRelativePos.bind(canvas),
rotationAngle: canvas.getRotationAngle(),
...(opt.options || {}),
};
let { canvasResizer } = this;
// Create the resizer for the canvas if not yet created
if (!canvasResizer || opt.forceNew) {
this.canvasResizer = new editor.Utils.Resizer(options);
canvasResizer = this.canvasResizer;
}
canvasResizer.setOptions(options, true);
canvasResizer.blur();
canvasResizer.focus(opt.el);
return canvasResizer;
},
stop() {
this.canvasResizer?.blur();
},
} as CommandObject<{ options?: {}; forceNew?: boolean; el: HTMLElement }, { canvasResizer?: Resizer }>;