53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
var he_1 = require("he");
|
||
|
/**
|
||
|
* Node Class as base class for TextNode and HTMLElement.
|
||
|
*/
|
||
|
var Node = /** @class */ (function () {
|
||
|
function Node(parentNode, range) {
|
||
|
if (parentNode === void 0) { parentNode = null; }
|
||
|
this.parentNode = parentNode;
|
||
|
this.childNodes = [];
|
||
|
Object.defineProperty(this, 'range', {
|
||
|
enumerable: false,
|
||
|
writable: true,
|
||
|
configurable: true,
|
||
|
value: range !== null && range !== void 0 ? range : [-1, -1]
|
||
|
});
|
||
|
}
|
||
|
/**
|
||
|
* Remove current node
|
||
|
*/
|
||
|
Node.prototype.remove = function () {
|
||
|
var _this = this;
|
||
|
if (this.parentNode) {
|
||
|
var children = this.parentNode.childNodes;
|
||
|
this.parentNode.childNodes = children.filter(function (child) {
|
||
|
return _this !== child;
|
||
|
});
|
||
|
this.parentNode = null;
|
||
|
}
|
||
|
return this;
|
||
|
};
|
||
|
Object.defineProperty(Node.prototype, "innerText", {
|
||
|
get: function () {
|
||
|
return this.rawText;
|
||
|
},
|
||
|
enumerable: false,
|
||
|
configurable: true
|
||
|
});
|
||
|
Object.defineProperty(Node.prototype, "textContent", {
|
||
|
get: function () {
|
||
|
return (0, he_1.decode)(this.rawText);
|
||
|
},
|
||
|
set: function (val) {
|
||
|
this.rawText = (0, he_1.encode)(val);
|
||
|
},
|
||
|
enumerable: false,
|
||
|
configurable: true
|
||
|
});
|
||
|
return Node;
|
||
|
}());
|
||
|
exports.default = Node;
|