diff options
Diffstat (limited to 'alarm/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js')
-rw-r--r-- | alarm/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/alarm/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js b/alarm/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js deleted file mode 100644 index ddd0fff..0000000 --- a/alarm/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js +++ /dev/null @@ -1,96 +0,0 @@ -"use strict"; -const SlotableMixinImpl = require("./Slotable-impl").implementation; -const CharacterDataImpl = require("./CharacterData-impl").implementation; -const idlUtils = require("../generated/utils"); -const { domSymbolTree } = require("../helpers/internal-constants"); -const DOMException = require("domexception/webidl2js-wrapper"); -const NODE_TYPE = require("../node-type"); -const { mixin } = require("../../utils"); - -// https://dom.spec.whatwg.org/#text -class TextImpl extends CharacterDataImpl { - constructor(globalObject, args, privateData) { - super(globalObject, args, { - data: args[0], - ownerDocument: idlUtils.implForWrapper(globalObject._document), - ...privateData - }); - - this._initSlotableMixin(); - - this.nodeType = NODE_TYPE.TEXT_NODE; - } - - // https://dom.spec.whatwg.org/#dom-text-splittext - // https://dom.spec.whatwg.org/#concept-text-split - splitText(offset) { - const { length } = this; - - if (offset > length) { - throw DOMException.create(this._globalObject, ["The index is not in the allowed range.", "IndexSizeError"]); - } - - const count = length - offset; - const newData = this.substringData(offset, count); - - const newNode = this._ownerDocument.createTextNode(newData); - - const parent = domSymbolTree.parent(this); - - if (parent !== null) { - parent._insert(newNode, this.nextSibling); - - for (const range of this._referencedRanges) { - const { _start, _end } = range; - - if (_start.node === this && _start.offset > offset) { - range._setLiveRangeStart(newNode, _start.offset - offset); - } - - if (_end.node === this && _end.offset > offset) { - range._setLiveRangeEnd(newNode, _end.offset - offset); - } - } - - const nodeIndex = domSymbolTree.index(this); - for (const range of parent._referencedRanges) { - const { _start, _end } = range; - - if (_start.node === parent && _start.offset === nodeIndex + 1) { - range._setLiveRangeStart(parent, _start.offset + 1); - } - - if (_end.node === parent && _end.offset === nodeIndex + 1) { - range._setLiveRangeEnd(parent, _end.offset + 1); - } - } - } - - this.replaceData(offset, count, ""); - - return newNode; - } - - // https://dom.spec.whatwg.org/#dom-text-wholetext - get wholeText() { - let wholeText = this.textContent; - let next; - let current = this; - while ((next = domSymbolTree.previousSibling(current)) && next.nodeType === NODE_TYPE.TEXT_NODE) { - wholeText = next.textContent + wholeText; - current = next; - } - current = this; - while ((next = domSymbolTree.nextSibling(current)) && next.nodeType === NODE_TYPE.TEXT_NODE) { - wholeText += next.textContent; - current = next; - } - return wholeText; - } -} - -mixin(TextImpl.prototype, SlotableMixinImpl.prototype); - -module.exports = { - implementation: TextImpl -}; |