diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-01-16 21:50:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-16 21:50:50 -0500 |
commit | 5c57015a79a79805638c6a97d13784372587e4f2 (patch) | |
tree | 210cb45e14bb059523fcb02b00f7303b269e7072 /ext/fg/js | |
parent | d89f23261cd619a406d4d50006871b10f1e653c6 (diff) |
TextSource* API update (#1255)
* Add collapse function to TextSource*
* Add isConnected getter to TextSource*
Diffstat (limited to 'ext/fg/js')
-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(); } |