"use strict"; var _ParsedHTMLRewriterNode_node, _ParsedHTMLRewriterNode_doc, _ParsedHTMLRewriterElement_node, _ParsedHTMLRewriterText_text, _ParsedHTMLRewriterText_done, _ParsedHTMLRewriterComment_comm, _ParsedHTMLRewriterDocumentType_doctype, _ParsedHTMLRewriterEnd_doc; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParsedHTMLRewriterEnd = exports.ParsedHTMLRewriterDocumentType = exports.ParsedHTMLRewriterComment = exports.ParsedHTMLRewriterText = exports.ParsedHTMLRewriterElement = exports.ParsedHTMLRewriterNode = exports.treeWalkerToIter = exports.promiseToAsyncIterable = exports.append = void 0; const tslib_1 = require("tslib"); function append(m, k, v) { var _a; const vs = (_a = m.get(k)) !== null && _a !== void 0 ? _a : []; vs.push(v); return m.set(k, vs); } exports.append = append; function promiseToAsyncIterable(promise) { return (0, tslib_1.__asyncGenerator)(this, arguments, function* promiseToAsyncIterable_1() { yield yield (0, tslib_1.__await)(yield (0, tslib_1.__await)(promise)); }); } exports.promiseToAsyncIterable = promiseToAsyncIterable; function* treeWalkerToIter(walker) { let node = walker.nextNode(); while (node) { yield node; node = walker.nextNode(); } } exports.treeWalkerToIter = treeWalkerToIter; /** Fragment form string function that works with linkedom. */ function fragmentFromString(document, html) { const temp = document.createElement('template'); temp.innerHTML = html; return temp.content; } function replace(document, node, content, opts) { node === null || node === void 0 ? void 0 : node.replaceWith(...(opts === null || opts === void 0 ? void 0 : opts.html) ? fragmentFromString(document, content).childNodes // depends on DOM.Iterable : [content]); } class ParsedHTMLRewriterNode { constructor(node, document) { _ParsedHTMLRewriterNode_node.set(this, void 0); _ParsedHTMLRewriterNode_doc.set(this, void 0); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterNode_node, node, "f"); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterNode_doc, document, "f"); } get removed() { return !(0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_doc, "f").contains((0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_node, "f")); } before(content, opts) { var _a, _b; const before = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_doc, "f").createComment(''); (_b = (_a = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_node, "f")) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.insertBefore(before, (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_node, "f")); replace((0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_doc, "f"), before, content, opts); return this; } after(content, opts) { var _a, _b; const after = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_doc, "f").createComment(''); (_b = (_a = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_node, "f")) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.insertBefore(after, (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_node, "f").nextSibling); replace((0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_doc, "f"), after, content, opts); return this; } replace(content, opts) { replace((0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_doc, "f"), (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_node, "f"), content, opts); return this; } remove() { var _a; (_a = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterNode_node, "f")) === null || _a === void 0 ? void 0 : _a.remove(); return this; } } exports.ParsedHTMLRewriterNode = ParsedHTMLRewriterNode; _ParsedHTMLRewriterNode_node = new WeakMap(), _ParsedHTMLRewriterNode_doc = new WeakMap(); class ParsedHTMLRewriterElement extends ParsedHTMLRewriterNode { constructor(node, document) { super(node, document); _ParsedHTMLRewriterElement_node.set(this, void 0); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterElement_node, node, "f"); } get tagName() { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").tagName.toLowerCase(); } get attributes() { return [...(0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").attributes].map(attr => [attr.name, attr.value]); } get namespaceURI() { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").namespaceURI; } getAttribute(name) { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").getAttribute(name); } hasAttribute(name) { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").hasAttribute(name); } setAttribute(name, value) { (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").setAttribute(name, value); return this; } removeAttribute(name) { (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").removeAttribute(name); return this; } prepend(content, opts) { return this.before(content, opts); } append(content, opts) { return this.after(content, opts); } setInnerContent(content, opts) { (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f")[(opts === null || opts === void 0 ? void 0 : opts.html) ? 'innerHTML' : 'textContent'] = content; return this; } removeAndKeepContent() { var _a; (_a = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f")) === null || _a === void 0 ? void 0 : _a.replaceWith(...(0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterElement_node, "f").childNodes); return this; } } exports.ParsedHTMLRewriterElement = ParsedHTMLRewriterElement; _ParsedHTMLRewriterElement_node = new WeakMap(); class ParsedHTMLRewriterText extends ParsedHTMLRewriterNode { constructor(text, document) { super(text, document); _ParsedHTMLRewriterText_text.set(this, void 0); _ParsedHTMLRewriterText_done.set(this, void 0); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterText_text, text, "f"); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterText_done, text === null, "f"); } get text() { var _a, _b; return (_b = (_a = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterText_text, "f")) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : ''; } get lastInTextNode() { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterText_done, "f"); } } exports.ParsedHTMLRewriterText = ParsedHTMLRewriterText; _ParsedHTMLRewriterText_text = new WeakMap(), _ParsedHTMLRewriterText_done = new WeakMap(); class ParsedHTMLRewriterComment extends ParsedHTMLRewriterNode { constructor(comm, document) { super(comm, document); _ParsedHTMLRewriterComment_comm.set(this, void 0); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterComment_comm, comm, "f"); } get text() { var _a; return (_a = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterComment_comm, "f").textContent) !== null && _a !== void 0 ? _a : ''; } set text(value) { (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterComment_comm, "f").textContent = value; } } exports.ParsedHTMLRewriterComment = ParsedHTMLRewriterComment; _ParsedHTMLRewriterComment_comm = new WeakMap(); class ParsedHTMLRewriterDocumentType { constructor(doctype) { _ParsedHTMLRewriterDocumentType_doctype.set(this, void 0); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterDocumentType_doctype, doctype, "f"); } get name() { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterDocumentType_doctype, "f").name; } get publicId() { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterDocumentType_doctype, "f").publicId; } get systemId() { return (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterDocumentType_doctype, "f").systemId; } } exports.ParsedHTMLRewriterDocumentType = ParsedHTMLRewriterDocumentType; _ParsedHTMLRewriterDocumentType_doctype = new WeakMap(); class ParsedHTMLRewriterEnd { constructor(document) { _ParsedHTMLRewriterEnd_doc.set(this, void 0); (0, tslib_1.__classPrivateFieldSet)(this, _ParsedHTMLRewriterEnd_doc, document, "f"); } append(content, opts) { const after = (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterEnd_doc, "f").createComment(''); (0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterEnd_doc, "f").insertBefore(after, null); replace((0, tslib_1.__classPrivateFieldGet)(this, _ParsedHTMLRewriterEnd_doc, "f"), after, content, opts); return this; } } exports.ParsedHTMLRewriterEnd = ParsedHTMLRewriterEnd; _ParsedHTMLRewriterEnd_doc = new WeakMap(); // function* ancestors(el: Node) { // while (el.parentElement) { // yield el.parentElement // el = el.parentElement // } // } // function root(el: Node): globalThis.HTMLElement | undefined { // const ancs = [...ancestors(el)] // return ancs[ancs.length - 1]; // } // function* zip(xs: Iterable, ys: Iterable): IterableIterator<[X, Y]> { // const xit = xs[Symbol.iterator](); // const yit = ys[Symbol.iterator](); // while (true) { // const [xr, yr] = [xit.next(), yit.next()]; // if (xr.done || yr.done) break; // yield [xr.value, yr.value]; // } // } // /* Checks if this element or any of its parents matches a given `selector`. */ // function matchesAncestors(el: Element | null, selector: string): Element | null { // let curr = el; // while (curr != null) { // if (curr.matches(selector)) return curr; // curr = curr.parentElement; // } // return null; // }