|
"use strict"; |
|
var __assign = (this && this.__assign) || function () { |
|
__assign = Object.assign || function(t) { |
|
for (var s, i = 1, n = arguments.length; i < n; i++) { |
|
s = arguments[i]; |
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) |
|
t[p] = s[p]; |
|
} |
|
return t; |
|
}; |
|
return __assign.apply(this, arguments); |
|
}; |
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { |
|
if (k2 === undefined) k2 = k; |
|
var desc = Object.getOwnPropertyDescriptor(m, k); |
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { |
|
desc = { enumerable: true, get: function() { return m[k]; } }; |
|
} |
|
Object.defineProperty(o, k2, desc); |
|
}) : (function(o, m, k, k2) { |
|
if (k2 === undefined) k2 = k; |
|
o[k2] = m[k]; |
|
})); |
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { |
|
Object.defineProperty(o, "default", { enumerable: true, value: v }); |
|
}) : function(o, v) { |
|
o["default"] = v; |
|
}); |
|
var __importStar = (this && this.__importStar) || function (mod) { |
|
if (mod && mod.__esModule) return mod; |
|
var result = {}; |
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); |
|
__setModuleDefault(result, mod); |
|
return result; |
|
}; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.merge = exports.contains = exports.root = exports.parseHTML = exports.text = exports.xml = exports.html = void 0; |
|
var domutils_1 = require("domutils"); |
|
var options_js_1 = __importStar(require("./options.js")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function render(that, dom, options) { |
|
if (!that) |
|
return ''; |
|
return that(dom !== null && dom !== void 0 ? dom : that._root.children, null, undefined, options).toString(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
function isOptions(dom, options) { |
|
return (!options && |
|
typeof dom === 'object' && |
|
dom != null && |
|
!('length' in dom) && |
|
!('type' in dom)); |
|
} |
|
function html(dom, options) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
var toRender = isOptions(dom) ? ((options = dom), undefined) : dom; |
|
|
|
|
|
|
|
|
|
var opts = __assign(__assign(__assign({}, options_js_1.default), this === null || this === void 0 ? void 0 : this._options), (0, options_js_1.flatten)(options !== null && options !== void 0 ? options : {})); |
|
return render(this, toRender, opts); |
|
} |
|
exports.html = html; |
|
|
|
|
|
|
|
|
|
|
|
|
|
function xml(dom) { |
|
var options = __assign(__assign({}, this._options), { xmlMode: true }); |
|
return render(this, dom, options); |
|
} |
|
exports.xml = xml; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function text(elements) { |
|
var elems = elements ? elements : this ? this.root() : []; |
|
var ret = ''; |
|
for (var i = 0; i < elems.length; i++) { |
|
ret += (0, domutils_1.textContent)(elems[i]); |
|
} |
|
return ret; |
|
} |
|
exports.text = text; |
|
function parseHTML(data, context, keepScripts) { |
|
if (keepScripts === void 0) { keepScripts = typeof context === 'boolean' ? context : false; } |
|
if (!data || typeof data !== 'string') { |
|
return null; |
|
} |
|
if (typeof context === 'boolean') { |
|
keepScripts = context; |
|
} |
|
var parsed = this.load(data, options_js_1.default, false); |
|
if (!keepScripts) { |
|
parsed('script').remove(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return parsed.root()[0].children.slice(); |
|
} |
|
exports.parseHTML = parseHTML; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function root() { |
|
return this(this._root); |
|
} |
|
exports.root = root; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function contains(container, contained) { |
|
|
|
if (contained === container) { |
|
return false; |
|
} |
|
|
|
|
|
|
|
|
|
var next = contained; |
|
while (next && next !== next.parent) { |
|
next = next.parent; |
|
if (next === container) { |
|
return true; |
|
} |
|
} |
|
return false; |
|
} |
|
exports.contains = contains; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function merge(arr1, arr2) { |
|
if (!isArrayLike(arr1) || !isArrayLike(arr2)) { |
|
return; |
|
} |
|
var newLength = arr1.length; |
|
var len = +arr2.length; |
|
for (var i = 0; i < len; i++) { |
|
arr1[newLength++] = arr2[i]; |
|
} |
|
arr1.length = newLength; |
|
return arr1; |
|
} |
|
exports.merge = merge; |
|
|
|
|
|
|
|
|
|
|
|
|
|
function isArrayLike(item) { |
|
if (Array.isArray(item)) { |
|
return true; |
|
} |
|
if (typeof item !== 'object' || |
|
!Object.prototype.hasOwnProperty.call(item, 'length') || |
|
typeof item.length !== 'number' || |
|
item.length < 0) { |
|
return false; |
|
} |
|
for (var i = 0; i < item.length; i++) { |
|
if (!(i in item)) { |
|
return false; |
|
} |
|
} |
|
return true; |
|
} |
|
|