@remote-dom/polyfill 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +7 -0
- package/README.md +45 -0
- package/build/cjs/Attr.cjs +54 -0
- package/build/cjs/CharacterData.cjs +29 -0
- package/build/cjs/ChildNode.cjs +45 -0
- package/build/cjs/Comment.cjs +11 -0
- package/build/cjs/CustomElementRegistry.cjs +35 -0
- package/build/cjs/CustomEvent.cjs +28 -0
- package/build/cjs/Document.cjs +94 -0
- package/build/cjs/DocumentFragment.cjs +12 -0
- package/build/cjs/Element.cjs +81 -0
- package/build/cjs/Event.cjs +113 -0
- package/build/cjs/EventTarget.cjs +101 -0
- package/build/cjs/HTMLElement.cjs +7 -0
- package/build/cjs/HTMLTemplateElement.cjs +26 -0
- package/build/cjs/MutationObserver.cjs +7 -0
- package/build/cjs/NamedNodeMap.cjs +115 -0
- package/build/cjs/Node.cjs +102 -0
- package/build/cjs/NodeList.cjs +9 -0
- package/build/cjs/ParentNode.cjs +130 -0
- package/build/cjs/SVGElement.cjs +19 -0
- package/build/cjs/Text.cjs +11 -0
- package/build/cjs/Window.cjs +69 -0
- package/build/cjs/constants.cjs +57 -0
- package/build/cjs/hooks.cjs +5 -0
- package/build/cjs/index.cjs +10 -0
- package/build/cjs/selectors.cjs +203 -0
- package/build/cjs/serialization.cjs +96 -0
- package/build/cjs/shared.cjs +63 -0
- package/build/esm/Attr.mjs +52 -0
- package/build/esm/CharacterData.mjs +27 -0
- package/build/esm/ChildNode.mjs +42 -0
- package/build/esm/Comment.mjs +9 -0
- package/build/esm/CustomElementRegistry.mjs +33 -0
- package/build/esm/CustomEvent.mjs +26 -0
- package/build/esm/Document.mjs +89 -0
- package/build/esm/DocumentFragment.mjs +10 -0
- package/build/esm/Element.mjs +95 -0
- package/build/esm/Event.mjs +108 -0
- package/build/esm/EventTarget.mjs +99 -0
- package/build/esm/HTMLElement.mjs +5 -0
- package/build/esm/HTMLTemplateElement.mjs +24 -0
- package/build/esm/MutationObserver.mjs +5 -0
- package/build/esm/NamedNodeMap.mjs +121 -0
- package/build/esm/Node.mjs +100 -0
- package/build/esm/NodeList.mjs +7 -0
- package/build/esm/ParentNode.mjs +128 -0
- package/build/esm/SVGElement.mjs +17 -0
- package/build/esm/Text.mjs +9 -0
- package/build/esm/Window.mjs +66 -0
- package/build/esm/constants.mjs +39 -0
- package/build/esm/hooks.mjs +3 -0
- package/build/esm/index.mjs +2 -0
- package/build/esm/selectors.mjs +197 -0
- package/build/esm/serialization.mjs +92 -0
- package/build/esm/shared.mjs +55 -0
- package/build/esnext/Attr.esnext +57 -0
- package/build/esnext/CharacterData.esnext +27 -0
- package/build/esnext/ChildNode.esnext +47 -0
- package/build/esnext/Comment.esnext +9 -0
- package/build/esnext/CustomElementRegistry.esnext +34 -0
- package/build/esnext/CustomEvent.esnext +25 -0
- package/build/esnext/Document.esnext +86 -0
- package/build/esnext/DocumentFragment.esnext +10 -0
- package/build/esnext/Element.esnext +99 -0
- package/build/esnext/Event.esnext +109 -0
- package/build/esnext/EventTarget.esnext +99 -0
- package/build/esnext/HTMLElement.esnext +6 -0
- package/build/esnext/HTMLTemplateElement.esnext +26 -0
- package/build/esnext/MutationObserver.esnext +5 -0
- package/build/esnext/NamedNodeMap.esnext +131 -0
- package/build/esnext/Node.esnext +116 -0
- package/build/esnext/NodeList.esnext +7 -0
- package/build/esnext/ParentNode.esnext +138 -0
- package/build/esnext/SVGElement.esnext +17 -0
- package/build/esnext/Text.esnext +9 -0
- package/build/esnext/Window.esnext +59 -0
- package/build/esnext/constants.esnext +37 -0
- package/build/esnext/hooks.esnext +3 -0
- package/build/esnext/index.esnext +2 -0
- package/build/esnext/selectors.esnext +169 -0
- package/build/esnext/serialization.esnext +76 -0
- package/build/esnext/shared.esnext +59 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/build/typescript/Attr.d.ts +24 -0
- package/build/typescript/Attr.d.ts.map +1 -0
- package/build/typescript/CharacterData.d.ts +10 -0
- package/build/typescript/CharacterData.d.ts.map +1 -0
- package/build/typescript/ChildNode.d.ts +10 -0
- package/build/typescript/ChildNode.d.ts.map +1 -0
- package/build/typescript/Comment.d.ts +7 -0
- package/build/typescript/Comment.d.ts.map +1 -0
- package/build/typescript/CustomElementRegistry.d.ts +9 -0
- package/build/typescript/CustomElementRegistry.d.ts.map +1 -0
- package/build/typescript/CustomEvent.d.ts +17 -0
- package/build/typescript/CustomEvent.d.ts.map +1 -0
- package/build/typescript/Document.d.ts +27 -0
- package/build/typescript/Document.d.ts.map +1 -0
- package/build/typescript/DocumentFragment.d.ts +8 -0
- package/build/typescript/DocumentFragment.d.ts.map +1 -0
- package/build/typescript/Element.d.ts +32 -0
- package/build/typescript/Element.d.ts.map +1 -0
- package/build/typescript/Event.d.ts +47 -0
- package/build/typescript/Event.d.ts.map +1 -0
- package/build/typescript/EventTarget.d.ts +12 -0
- package/build/typescript/EventTarget.d.ts.map +1 -0
- package/build/typescript/HTMLElement.d.ts +4 -0
- package/build/typescript/HTMLElement.d.ts.map +1 -0
- package/build/typescript/HTMLTemplateElement.d.ts +11 -0
- package/build/typescript/HTMLTemplateElement.d.ts.map +1 -0
- package/build/typescript/MutationObserver.d.ts +3 -0
- package/build/typescript/MutationObserver.d.ts.map +1 -0
- package/build/typescript/NamedNodeMap.d.ts +18 -0
- package/build/typescript/NamedNodeMap.d.ts.map +1 -0
- package/build/typescript/Node.d.ts +37 -0
- package/build/typescript/Node.d.ts.map +1 -0
- package/build/typescript/NodeList.d.ts +4 -0
- package/build/typescript/NodeList.d.ts.map +1 -0
- package/build/typescript/ParentNode.d.ts +18 -0
- package/build/typescript/ParentNode.d.ts.map +1 -0
- package/build/typescript/SVGElement.d.ts +7 -0
- package/build/typescript/SVGElement.d.ts.map +1 -0
- package/build/typescript/Text.d.ts +7 -0
- package/build/typescript/Text.d.ts.map +1 -0
- package/build/typescript/Window.d.ts +45 -0
- package/build/typescript/Window.d.ts.map +1 -0
- package/build/typescript/constants.d.ts +35 -0
- package/build/typescript/constants.d.ts.map +1 -0
- package/build/typescript/hooks.d.ts +13 -0
- package/build/typescript/hooks.d.ts.map +1 -0
- package/build/typescript/index.d.ts +3 -0
- package/build/typescript/index.d.ts.map +1 -0
- package/build/typescript/selectors.d.ts +32 -0
- package/build/typescript/selectors.d.ts.map +1 -0
- package/build/typescript/serialization.d.ts +6 -0
- package/build/typescript/serialization.d.ts.map +1 -0
- package/build/typescript/shared.d.ts +16 -0
- package/build/typescript/shared.d.ts.map +1 -0
- package/package.json +35 -0
- package/rollup.config.js +3 -0
- package/source/Attr.ts +70 -0
- package/source/CharacterData.ts +29 -0
- package/source/ChildNode.ts +45 -0
- package/source/Comment.ts +7 -0
- package/source/CustomElementRegistry.ts +52 -0
- package/source/CustomEvent.ts +30 -0
- package/source/Document.ts +112 -0
- package/source/DocumentFragment.ts +8 -0
- package/source/Element.ts +119 -0
- package/source/Event.ts +142 -0
- package/source/EventTarget.ts +139 -0
- package/source/HTMLElement.ts +3 -0
- package/source/HTMLTemplateElement.ts +28 -0
- package/source/MutationObserver.ts +3 -0
- package/source/NamedNodeMap.ts +156 -0
- package/source/Node.ts +139 -0
- package/source/NodeList.ts +5 -0
- package/source/ParentNode.ts +158 -0
- package/source/SVGElement.ts +16 -0
- package/source/Text.ts +7 -0
- package/source/Window.ts +64 -0
- package/source/constants.ts +37 -0
- package/source/hooks.ts +28 -0
- package/source/index.ts +2 -0
- package/source/selectors.ts +230 -0
- package/source/serialization.ts +110 -0
- package/source/shared.ts +80 -0
- package/tsconfig.json +10 -0
package/source/shared.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {DATA, OWNER_DOCUMENT, ATTRIBUTES, NodeType} from './constants.ts';
|
|
2
|
+
import type {Document} from './Document.ts';
|
|
3
|
+
import type {DocumentFragment} from './DocumentFragment.ts';
|
|
4
|
+
import type {Node} from './Node.ts';
|
|
5
|
+
import type {Comment} from './Comment.ts';
|
|
6
|
+
import type {ParentNode} from './ParentNode.ts';
|
|
7
|
+
import type {Element} from './Element.ts';
|
|
8
|
+
import type {CharacterData} from './CharacterData.ts';
|
|
9
|
+
import type {Text} from './Text.ts';
|
|
10
|
+
|
|
11
|
+
export function isCharacterData(node: Node): node is CharacterData {
|
|
12
|
+
return DATA in node;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function isTextNode(node: Node): node is Text {
|
|
16
|
+
return node.nodeType === NodeType.TEXT_NODE;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function isCommentNode(node: Node): node is Comment {
|
|
20
|
+
return node.nodeType === NodeType.COMMENT_NODE;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function isElementNode(node: Node): node is Element {
|
|
24
|
+
return node.nodeType === NodeType.ELEMENT_NODE;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function isDocumentFragmentNode(node: Node): node is DocumentFragment {
|
|
28
|
+
return node.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function isParentNode(node: Node): node is ParentNode {
|
|
32
|
+
return 'appendChild' in node;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function cloneNode(
|
|
36
|
+
node: Node,
|
|
37
|
+
deep?: boolean,
|
|
38
|
+
document: Document = node.ownerDocument,
|
|
39
|
+
): Node {
|
|
40
|
+
if (isTextNode(node)) {
|
|
41
|
+
return document.createTextNode(node.data);
|
|
42
|
+
} else if (isCommentNode(node)) {
|
|
43
|
+
return document.createComment(node.data);
|
|
44
|
+
} else if (isElementNode(node)) {
|
|
45
|
+
const cloned = document.createElement(node.localName);
|
|
46
|
+
|
|
47
|
+
if (node[ATTRIBUTES]) {
|
|
48
|
+
for (let i = 0; i < node[ATTRIBUTES].length; i++) {
|
|
49
|
+
const attribute = node[ATTRIBUTES].item(i)!;
|
|
50
|
+
cloned.setAttributeNS(
|
|
51
|
+
attribute.namespaceURI,
|
|
52
|
+
attribute.name,
|
|
53
|
+
attribute.value,
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (deep) {
|
|
59
|
+
for (const child of node.childNodes) {
|
|
60
|
+
cloned.appendChild(cloneNode(child, true, document));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return cloned;
|
|
65
|
+
} else if (isDocumentFragmentNode(node)) {
|
|
66
|
+
const fragment = document.createDocumentFragment();
|
|
67
|
+
|
|
68
|
+
if (deep) {
|
|
69
|
+
for (const child of (node as DocumentFragment).childNodes) {
|
|
70
|
+
fragment.appendChild(cloneNode(child, true, document));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return fragment;
|
|
75
|
+
} else {
|
|
76
|
+
const cloned = new (node.constructor as any)();
|
|
77
|
+
cloned[OWNER_DOCUMENT] = document;
|
|
78
|
+
return cloned;
|
|
79
|
+
}
|
|
80
|
+
}
|