UNPKG

8.98 kBJavaScriptView Raw
1var _ParsedHTMLRewriterNode_node, _ParsedHTMLRewriterNode_doc, _ParsedHTMLRewriterElement_node, _ParsedHTMLRewriterText_text, _ParsedHTMLRewriterText_done, _ParsedHTMLRewriterComment_comm, _ParsedHTMLRewriterDocumentType_doctype, _ParsedHTMLRewriterEnd_doc;
2import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3export function append(m, k, v) {
4 var _a;
5 const vs = (_a = m.get(k)) !== null && _a !== void 0 ? _a : [];
6 vs.push(v);
7 return m.set(k, vs);
8}
9export async function* promiseToAsyncIterable(promise) {
10 yield await promise;
11}
12export function* treeWalkerToIter(walker) {
13 let node = walker.nextNode();
14 while (node) {
15 yield node;
16 node = walker.nextNode();
17 }
18}
19/** Fragment form string function that works with linkedom. */
20function fragmentFromString(document, html) {
21 const temp = document.createElement('template');
22 temp.innerHTML = html;
23 return temp.content;
24}
25function replace(document, node, content, opts) {
26 node === null || node === void 0 ? void 0 : node.replaceWith(...(opts === null || opts === void 0 ? void 0 : opts.html)
27 ? fragmentFromString(document, content).childNodes // depends on DOM.Iterable
28 : [content]);
29}
30export class ParsedHTMLRewriterNode {
31 constructor(node, document) {
32 _ParsedHTMLRewriterNode_node.set(this, void 0);
33 _ParsedHTMLRewriterNode_doc.set(this, void 0);
34 __classPrivateFieldSet(this, _ParsedHTMLRewriterNode_node, node, "f");
35 __classPrivateFieldSet(this, _ParsedHTMLRewriterNode_doc, document, "f");
36 }
37 get removed() { return !__classPrivateFieldGet(this, _ParsedHTMLRewriterNode_doc, "f").contains(__classPrivateFieldGet(this, _ParsedHTMLRewriterNode_node, "f")); }
38 before(content, opts) {
39 var _a, _b;
40 const before = __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_doc, "f").createComment('');
41 (_b = (_a = __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_node, "f")) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.insertBefore(before, __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_node, "f"));
42 replace(__classPrivateFieldGet(this, _ParsedHTMLRewriterNode_doc, "f"), before, content, opts);
43 return this;
44 }
45 after(content, opts) {
46 var _a, _b;
47 const after = __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_doc, "f").createComment('');
48 (_b = (_a = __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_node, "f")) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.insertBefore(after, __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_node, "f").nextSibling);
49 replace(__classPrivateFieldGet(this, _ParsedHTMLRewriterNode_doc, "f"), after, content, opts);
50 return this;
51 }
52 replace(content, opts) {
53 replace(__classPrivateFieldGet(this, _ParsedHTMLRewriterNode_doc, "f"), __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_node, "f"), content, opts);
54 return this;
55 }
56 remove() {
57 var _a;
58 (_a = __classPrivateFieldGet(this, _ParsedHTMLRewriterNode_node, "f")) === null || _a === void 0 ? void 0 : _a.remove();
59 return this;
60 }
61}
62_ParsedHTMLRewriterNode_node = new WeakMap(), _ParsedHTMLRewriterNode_doc = new WeakMap();
63export class ParsedHTMLRewriterElement extends ParsedHTMLRewriterNode {
64 constructor(node, document) {
65 super(node, document);
66 _ParsedHTMLRewriterElement_node.set(this, void 0);
67 __classPrivateFieldSet(this, _ParsedHTMLRewriterElement_node, node, "f");
68 }
69 get tagName() { return __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").tagName.toLowerCase(); }
70 get attributes() {
71 return [...__classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").attributes].map(attr => [attr.name, attr.value]);
72 }
73 get namespaceURI() { return __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").namespaceURI; }
74 getAttribute(name) {
75 return __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").getAttribute(name);
76 }
77 hasAttribute(name) {
78 return __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").hasAttribute(name);
79 }
80 setAttribute(name, value) {
81 __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").setAttribute(name, value);
82 return this;
83 }
84 removeAttribute(name) {
85 __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").removeAttribute(name);
86 return this;
87 }
88 prepend(content, opts) {
89 return this.before(content, opts);
90 }
91 append(content, opts) {
92 return this.after(content, opts);
93 }
94 setInnerContent(content, opts) {
95 __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f")[(opts === null || opts === void 0 ? void 0 : opts.html) ? 'innerHTML' : 'textContent'] = content;
96 return this;
97 }
98 removeAndKeepContent() {
99 var _a;
100 (_a = __classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f")) === null || _a === void 0 ? void 0 : _a.replaceWith(...__classPrivateFieldGet(this, _ParsedHTMLRewriterElement_node, "f").childNodes);
101 return this;
102 }
103}
104_ParsedHTMLRewriterElement_node = new WeakMap();
105export class ParsedHTMLRewriterText extends ParsedHTMLRewriterNode {
106 constructor(text, document) {
107 super(text, document);
108 _ParsedHTMLRewriterText_text.set(this, void 0);
109 _ParsedHTMLRewriterText_done.set(this, void 0);
110 __classPrivateFieldSet(this, _ParsedHTMLRewriterText_text, text, "f");
111 __classPrivateFieldSet(this, _ParsedHTMLRewriterText_done, text === null, "f");
112 }
113 get text() { var _a, _b; return (_b = (_a = __classPrivateFieldGet(this, _ParsedHTMLRewriterText_text, "f")) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : ''; }
114 get lastInTextNode() { return __classPrivateFieldGet(this, _ParsedHTMLRewriterText_done, "f"); }
115}
116_ParsedHTMLRewriterText_text = new WeakMap(), _ParsedHTMLRewriterText_done = new WeakMap();
117export class ParsedHTMLRewriterComment extends ParsedHTMLRewriterNode {
118 constructor(comm, document) {
119 super(comm, document);
120 _ParsedHTMLRewriterComment_comm.set(this, void 0);
121 __classPrivateFieldSet(this, _ParsedHTMLRewriterComment_comm, comm, "f");
122 }
123 get text() { var _a; return (_a = __classPrivateFieldGet(this, _ParsedHTMLRewriterComment_comm, "f").textContent) !== null && _a !== void 0 ? _a : ''; }
124 set text(value) { __classPrivateFieldGet(this, _ParsedHTMLRewriterComment_comm, "f").textContent = value; }
125}
126_ParsedHTMLRewriterComment_comm = new WeakMap();
127export class ParsedHTMLRewriterDocumentType {
128 constructor(doctype) {
129 _ParsedHTMLRewriterDocumentType_doctype.set(this, void 0);
130 __classPrivateFieldSet(this, _ParsedHTMLRewriterDocumentType_doctype, doctype, "f");
131 }
132 get name() { return __classPrivateFieldGet(this, _ParsedHTMLRewriterDocumentType_doctype, "f").name; }
133 get publicId() { return __classPrivateFieldGet(this, _ParsedHTMLRewriterDocumentType_doctype, "f").publicId; }
134 get systemId() { return __classPrivateFieldGet(this, _ParsedHTMLRewriterDocumentType_doctype, "f").systemId; }
135}
136_ParsedHTMLRewriterDocumentType_doctype = new WeakMap();
137export class ParsedHTMLRewriterEnd {
138 constructor(document) {
139 _ParsedHTMLRewriterEnd_doc.set(this, void 0);
140 __classPrivateFieldSet(this, _ParsedHTMLRewriterEnd_doc, document, "f");
141 }
142 append(content, opts) {
143 const after = __classPrivateFieldGet(this, _ParsedHTMLRewriterEnd_doc, "f").createComment('');
144 __classPrivateFieldGet(this, _ParsedHTMLRewriterEnd_doc, "f").insertBefore(after, null);
145 replace(__classPrivateFieldGet(this, _ParsedHTMLRewriterEnd_doc, "f"), after, content, opts);
146 return this;
147 }
148}
149_ParsedHTMLRewriterEnd_doc = new WeakMap();
150// function* ancestors(el: Node) {
151// while (el.parentElement) {
152// yield el.parentElement
153// el = el.parentElement
154// }
155// }
156// function root(el: Node): globalThis.HTMLElement | undefined {
157// const ancs = [...ancestors(el)]
158// return ancs[ancs.length - 1];
159// }
160// function* zip<X, Y>(xs: Iterable<X>, ys: Iterable<Y>): IterableIterator<[X, Y]> {
161// const xit = xs[Symbol.iterator]();
162// const yit = ys[Symbol.iterator]();
163// while (true) {
164// const [xr, yr] = [xit.next(), yit.next()];
165// if (xr.done || yr.done) break;
166// yield [xr.value, yr.value];
167// }
168// }
169// /* Checks if this element or any of its parents matches a given `selector`. */
170// function matchesAncestors(el: Element | null, selector: string): Element | null {
171// let curr = el;
172// while (curr != null) {
173// if (curr.matches(selector)) return curr;
174// curr = curr.parentElement;
175// }
176// return null;
177// }
178//# sourceMappingURL=support.js.map
\No newline at end of file