diff --git a/packages/core/src/canvas/index.ts b/packages/core/src/canvas/index.ts index 88940b85b..3e4aca716 100644 --- a/packages/core/src/canvas/index.ts +++ b/packages/core/src/canvas/index.ts @@ -486,7 +486,9 @@ export default class CanvasModule extends Module { */ getMouseRelativePos(e: any, opts: any = {}) { const subWinOffset = opts.subWinOffset; - const doc = e.target.ownerDocument; + const { target } = e; + // In Firefox, pointing outside the window, will return the HTMLDocument. + const doc = target.nodeType === Node.DOCUMENT_NODE ? target : target.ownerDocument; const win = doc.defaultView || doc.parentWindow; const frame = win.frameElement; const yOffset = subWinOffset ? win.pageYOffset : 0; diff --git a/packages/core/src/commands/view/SelectComponent.ts b/packages/core/src/commands/view/SelectComponent.ts index 0c4b29285..608097350 100644 --- a/packages/core/src/commands/view/SelectComponent.ts +++ b/packages/core/src/commands/view/SelectComponent.ts @@ -496,7 +496,7 @@ export default { const style: any = {}; if (!onlyHeight) { - const bodyw = canvas.getBody().offsetWidth; + const bodyw = canvas.getBody()?.offsetWidth || 0; const width = rect.w < bodyw ? rect.w : bodyw; style[keyWidth!] = autoWidth ? 'auto' : `${width}${unitWidth}`; } diff --git a/packages/core/src/editor/model/Editor.ts b/packages/core/src/editor/model/Editor.ts index 37e70767a..13471b626 100644 --- a/packages/core/src/editor/model/Editor.ts +++ b/packages/core/src/editor/model/Editor.ts @@ -314,6 +314,14 @@ export default class EditorModel extends Model { return this.config.grapesjs?.version || ''; } + get isHeadless() { + return !!this.config.headless; + } + + get isShallow() { + return !!this.get('isShallow'); + } + /** * Get configurations * @param {string} [prop] Property name diff --git a/packages/core/src/keymaps/index.ts b/packages/core/src/keymaps/index.ts index ce0b0659f..015462dda 100644 --- a/packages/core/src/keymaps/index.ts +++ b/packages/core/src/keymaps/index.ts @@ -64,6 +64,7 @@ export default class KeymapsModule extends Module extends } } const addedNode = targetNode.addChildAt(sourceNode, index, { action: 'move-component' }) as NodeType; - this.triggerEndMoveEvent(addedNode); + addedNode && this.triggerEndMoveEvent(addedNode); return { addedNode, index }; }