diff options
-rw-r--r-- | ext/fg/js/text-source-element.js | 13 | ||||
-rw-r--r-- | ext/fg/js/text-source-range.js | 12 |
2 files changed, 25 insertions, 0 deletions
diff --git a/ext/fg/js/text-source-element.js b/ext/fg/js/text-source-element.js index a0e1254f..43526060 100644 --- a/ext/fg/js/text-source-element.js +++ b/ext/fg/js/text-source-element.js @@ -40,6 +40,10 @@ class TextSourceElement { return this._endOffset; } + get isConnected() { + return this._element.isConnected; + } + clone() { return new TextSourceElement(this._element, this._fullContent, this._startOffset, this._endOffset); } @@ -73,6 +77,15 @@ class TextSourceElement { return delta; } + collapse(toStart) { + if (toStart) { + this._endOffset = this._startOffset; + } else { + this._startOffset = this._endOffset; + } + this._content = ''; + } + getRect() { return this._element.getBoundingClientRect(); } diff --git a/ext/fg/js/text-source-range.js b/ext/fg/js/text-source-range.js index 60086e7f..377016da 100644 --- a/ext/fg/js/text-source-range.js +++ b/ext/fg/js/text-source-range.js @@ -41,6 +41,13 @@ class TextSourceRange { return this._imposterSourceElement; } + get isConnected() { + return ( + this._range.startContainer.isConnected && + this._range.endContainer.isConnected + ); + } + clone() { return new TextSourceRange(this._range.cloneRange(), this._content, this._imposterContainer, this._imposterSourceElement); } @@ -74,6 +81,11 @@ class TextSourceRange { return length - state.remainder; } + collapse(toStart) { + this._range.collapse(toStart); + this._content = ''; + } + getRect() { return this._range.getBoundingClientRect(); } |