From dca05a0836b035ea0adad598b679a28bcd8ba277 Mon Sep 17 00:00:00 2001 From: Antoine Guenet Date: Thu, 25 Feb 2021 15:00:22 +0100 Subject: [PATCH] [ADD] support delete/backward a table collapsed --- src/commands/deleteBackward.js | 9 +++++++++ src/commands/deleteForward.js | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/commands/deleteBackward.js b/src/commands/deleteBackward.js index 67defa15..c818b1a9 100644 --- a/src/commands/deleteBackward.js +++ b/src/commands/deleteBackward.js @@ -194,3 +194,12 @@ HTMLBRElement.prototype.oDeleteBackward = function (offset, alreadyMoved = false HTMLElement.prototype.oDeleteBackward.call(this, offset, alreadyMoved); } }; + +HTMLTableElement.prototype.oDeleteBackward = function (offset, alreadyMoved = false) { + // Replace the table with a

. + const p = document.createElement('p'); + p.appendChild(document.createElement('br')); + this.after(p); + this.remove(); + setCursor(p, 0); +}; diff --git a/src/commands/deleteForward.js b/src/commands/deleteForward.js index 1114e0f4..a898a30e 100644 --- a/src/commands/deleteForward.js +++ b/src/commands/deleteForward.js @@ -12,6 +12,7 @@ import { CTYPES, leftPos, isFontAwesome, + setCursor, } from '../utils/utils.js'; Text.prototype.oDeleteForward = function (offset) { @@ -38,6 +39,19 @@ HTMLElement.prototype.oDeleteForward = function (offset) { firstInlineNode.oDeleteBackward(Math.min(1, nodeSize(firstInlineNode))); return; } + if ( + this.childNodes.length === offset && + this.nextSibling && + this.nextSibling.tagName === 'TABLE' + ) { + // Replace the table with a

. + const p = document.createElement('p'); + p.appendChild(document.createElement('br')); + this.nextSibling.after(p); + this.nextSibling.remove(); + setCursor(p, 0); + return; + } const firstOutNode = findNode( rightDeepOnlyPath(...(firstInlineNode ? rightPos(firstInlineNode) : [this, offset])), filterFunc,