happy-dom 14.7.0 → 14.7.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.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- package/cjs/PropertySymbol.cjs +6 -1
- package/cjs/PropertySymbol.cjs.map +1 -1
- package/cjs/PropertySymbol.d.ts +5 -0
- package/cjs/PropertySymbol.d.ts.map +1 -1
- package/cjs/nodes/character-data/CharacterData.cjs +2 -7
- package/cjs/nodes/character-data/CharacterData.cjs.map +1 -1
- package/cjs/nodes/character-data/CharacterData.d.ts +2 -5
- package/cjs/nodes/character-data/CharacterData.d.ts.map +1 -1
- package/cjs/nodes/comment/Comment.cjs +2 -7
- package/cjs/nodes/comment/Comment.cjs.map +1 -1
- package/cjs/nodes/comment/Comment.d.ts +2 -5
- package/cjs/nodes/comment/Comment.d.ts.map +1 -1
- package/cjs/nodes/document/Document.cjs +6 -13
- package/cjs/nodes/document/Document.cjs.map +1 -1
- package/cjs/nodes/document/Document.d.ts +5 -8
- package/cjs/nodes/document/Document.d.ts.map +1 -1
- package/cjs/nodes/document-fragment/DocumentFragment.cjs +5 -13
- package/cjs/nodes/document-fragment/DocumentFragment.cjs.map +1 -1
- package/cjs/nodes/document-fragment/DocumentFragment.d.ts +5 -8
- package/cjs/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
- package/cjs/nodes/document-type/DocumentType.cjs +2 -7
- package/cjs/nodes/document-type/DocumentType.cjs.map +1 -1
- package/cjs/nodes/document-type/DocumentType.d.ts +2 -5
- package/cjs/nodes/document-type/DocumentType.d.ts.map +1 -1
- package/cjs/nodes/element/Element.cjs +5 -13
- package/cjs/nodes/element/Element.cjs.map +1 -1
- package/cjs/nodes/element/Element.d.ts +5 -8
- package/cjs/nodes/element/Element.d.ts.map +1 -1
- package/cjs/nodes/html-base-element/HTMLBaseElement.cjs +2 -6
- package/cjs/nodes/html-base-element/HTMLBaseElement.cjs.map +1 -1
- package/cjs/nodes/html-base-element/HTMLBaseElement.d.ts +3 -5
- package/cjs/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.cjs +3 -3
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts +2 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs +3 -7
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +2 -5
- package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +2 -6
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +2 -5
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/cjs/nodes/html-image-element/HTMLImageElement.cjs +2 -7
- package/cjs/nodes/html-image-element/HTMLImageElement.cjs.map +1 -1
- package/cjs/nodes/html-image-element/HTMLImageElement.d.ts +2 -5
- package/cjs/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs +3 -7
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +2 -5
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +2 -6
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts +3 -5
- package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +2 -11
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +2 -9
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +3 -7
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +2 -5
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/cjs/nodes/html-slot-element/HTMLSlotElement.cjs +2 -6
- package/cjs/nodes/html-slot-element/HTMLSlotElement.cjs.map +1 -1
- package/cjs/nodes/html-slot-element/HTMLSlotElement.d.ts +3 -5
- package/cjs/nodes/html-slot-element/HTMLSlotElement.d.ts.map +1 -1
- package/cjs/nodes/html-style-element/HTMLStyleElement.cjs +7 -7
- package/cjs/nodes/html-style-element/HTMLStyleElement.cjs.map +1 -1
- package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts +3 -3
- package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
- package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs +6 -7
- package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs.map +1 -1
- package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts +6 -5
- package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +3 -7
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +2 -5
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/cjs/nodes/node/Node.cjs +54 -7
- package/cjs/nodes/node/Node.cjs.map +1 -1
- package/cjs/nodes/node/Node.d.ts +37 -0
- package/cjs/nodes/node/Node.d.ts.map +1 -1
- package/cjs/nodes/shadow-root/ShadowRoot.cjs +2 -7
- package/cjs/nodes/shadow-root/ShadowRoot.cjs.map +1 -1
- package/cjs/nodes/shadow-root/ShadowRoot.d.ts +2 -5
- package/cjs/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
- package/cjs/nodes/svg-element/SVGSVGElement.cjs +26 -6
- package/cjs/nodes/svg-element/SVGSVGElement.cjs.map +1 -1
- package/cjs/nodes/svg-element/SVGSVGElement.d.ts +3 -5
- package/cjs/nodes/svg-element/SVGSVGElement.d.ts.map +1 -1
- package/cjs/nodes/text/Text.cjs +3 -7
- package/cjs/nodes/text/Text.cjs.map +1 -1
- package/cjs/nodes/text/Text.d.ts +2 -5
- package/cjs/nodes/text/Text.d.ts.map +1 -1
- package/lib/PropertySymbol.d.ts +5 -0
- package/lib/PropertySymbol.d.ts.map +1 -1
- package/lib/PropertySymbol.js +5 -0
- package/lib/PropertySymbol.js.map +1 -1
- package/lib/nodes/character-data/CharacterData.d.ts +2 -5
- package/lib/nodes/character-data/CharacterData.d.ts.map +1 -1
- package/lib/nodes/character-data/CharacterData.js +3 -9
- package/lib/nodes/character-data/CharacterData.js.map +1 -1
- package/lib/nodes/comment/Comment.d.ts +2 -5
- package/lib/nodes/comment/Comment.d.ts.map +1 -1
- package/lib/nodes/comment/Comment.js +3 -9
- package/lib/nodes/comment/Comment.js.map +1 -1
- package/lib/nodes/document/Document.d.ts +5 -8
- package/lib/nodes/document/Document.d.ts.map +1 -1
- package/lib/nodes/document/Document.js +6 -13
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/document-fragment/DocumentFragment.d.ts +5 -8
- package/lib/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
- package/lib/nodes/document-fragment/DocumentFragment.js +6 -15
- package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
- package/lib/nodes/document-type/DocumentType.d.ts +2 -5
- package/lib/nodes/document-type/DocumentType.d.ts.map +1 -1
- package/lib/nodes/document-type/DocumentType.js +3 -9
- package/lib/nodes/document-type/DocumentType.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +5 -8
- package/lib/nodes/element/Element.d.ts.map +1 -1
- package/lib/nodes/element/Element.js +5 -13
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/html-base-element/HTMLBaseElement.d.ts +3 -5
- package/lib/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
- package/lib/nodes/html-base-element/HTMLBaseElement.js +2 -6
- package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts +2 -1
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +3 -3
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts +2 -5
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.js +3 -7
- package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +2 -5
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +2 -6
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-image-element/HTMLImageElement.d.ts +2 -5
- package/lib/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
- package/lib/nodes/html-image-element/HTMLImageElement.js +3 -9
- package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts +2 -5
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.js +3 -7
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.d.ts +3 -5
- package/lib/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.js +2 -6
- package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +2 -9
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.js +3 -13
- package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +2 -5
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +3 -7
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-slot-element/HTMLSlotElement.d.ts +3 -5
- package/lib/nodes/html-slot-element/HTMLSlotElement.d.ts.map +1 -1
- package/lib/nodes/html-slot-element/HTMLSlotElement.js +2 -6
- package/lib/nodes/html-slot-element/HTMLSlotElement.js.map +1 -1
- package/lib/nodes/html-style-element/HTMLStyleElement.d.ts +3 -3
- package/lib/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
- package/lib/nodes/html-style-element/HTMLStyleElement.js +7 -7
- package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
- package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts +6 -5
- package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
- package/lib/nodes/html-template-element/HTMLTemplateElement.js +7 -9
- package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +2 -5
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +3 -7
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
- package/lib/nodes/node/Node.d.ts +37 -0
- package/lib/nodes/node/Node.d.ts.map +1 -1
- package/lib/nodes/node/Node.js +54 -7
- package/lib/nodes/node/Node.js.map +1 -1
- package/lib/nodes/shadow-root/ShadowRoot.d.ts +2 -5
- package/lib/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
- package/lib/nodes/shadow-root/ShadowRoot.js +3 -9
- package/lib/nodes/shadow-root/ShadowRoot.js.map +1 -1
- package/lib/nodes/svg-element/SVGSVGElement.d.ts +3 -5
- package/lib/nodes/svg-element/SVGSVGElement.d.ts.map +1 -1
- package/lib/nodes/svg-element/SVGSVGElement.js +3 -6
- package/lib/nodes/svg-element/SVGSVGElement.js.map +1 -1
- package/lib/nodes/text/Text.d.ts +2 -5
- package/lib/nodes/text/Text.d.ts.map +1 -1
- package/lib/nodes/text/Text.js +3 -7
- package/lib/nodes/text/Text.js.map +1 -1
- package/package.json +1 -1
- package/src/PropertySymbol.ts +5 -0
- package/src/nodes/character-data/CharacterData.ts +3 -6
- package/src/nodes/comment/Comment.ts +3 -6
- package/src/nodes/document/Document.ts +6 -15
- package/src/nodes/document-fragment/DocumentFragment.ts +6 -15
- package/src/nodes/document-type/DocumentType.ts +3 -6
- package/src/nodes/element/Element.ts +6 -15
- package/src/nodes/html-base-element/HTMLBaseElement.ts +3 -6
- package/src/nodes/html-element/HTMLElement.ts +5 -2
- package/src/nodes/html-form-element/HTMLFormElement.ts +5 -6
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +6 -6
- package/src/nodes/html-image-element/HTMLImageElement.ts +3 -6
- package/src/nodes/html-input-element/HTMLInputElement.ts +5 -6
- package/src/nodes/html-label-element/HTMLLabelElement.ts +5 -6
- package/src/nodes/html-media-element/HTMLMediaElement.ts +5 -10
- package/src/nodes/html-script-element/HTMLScriptElement.ts +5 -6
- package/src/nodes/html-slot-element/HTMLSlotElement.ts +5 -6
- package/src/nodes/html-style-element/HTMLStyleElement.ts +6 -6
- package/src/nodes/html-template-element/HTMLTemplateElement.ts +10 -7
- package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +4 -6
- package/src/nodes/node/Node.ts +61 -9
- package/src/nodes/shadow-root/ShadowRoot.ts +5 -6
- package/src/nodes/svg-element/SVGSVGElement.ts +6 -6
- package/src/nodes/text/Text.ts +3 -6
@@ -82,8 +82,8 @@ export default class HTMLStyleElement extends HTMLElement {
|
|
82
82
|
/**
|
83
83
|
* @override
|
84
84
|
*/
|
85
|
-
public override appendChild(node: Node): Node {
|
86
|
-
const returnValue = super.appendChild(node);
|
85
|
+
public override [PropertySymbol.appendChild](node: Node): Node {
|
86
|
+
const returnValue = super[PropertySymbol.appendChild](node);
|
87
87
|
if (this[PropertySymbol.sheet]) {
|
88
88
|
this[PropertySymbol.sheet].replaceSync(this.textContent);
|
89
89
|
}
|
@@ -93,8 +93,8 @@ export default class HTMLStyleElement extends HTMLElement {
|
|
93
93
|
/**
|
94
94
|
* @override
|
95
95
|
*/
|
96
|
-
public override removeChild(node: Node): Node {
|
97
|
-
const returnValue = super.removeChild(node);
|
96
|
+
public override [PropertySymbol.removeChild](node: Node): Node {
|
97
|
+
const returnValue = super[PropertySymbol.removeChild](node);
|
98
98
|
if (this[PropertySymbol.sheet]) {
|
99
99
|
this[PropertySymbol.sheet].replaceSync(this.textContent);
|
100
100
|
}
|
@@ -104,8 +104,8 @@ export default class HTMLStyleElement extends HTMLElement {
|
|
104
104
|
/**
|
105
105
|
* @override
|
106
106
|
*/
|
107
|
-
public override insertBefore(newNode: Node, referenceNode: Node | null): Node {
|
108
|
-
const returnValue = super.insertBefore(newNode, referenceNode);
|
107
|
+
public override [PropertySymbol.insertBefore](newNode: Node, referenceNode: Node | null): Node {
|
108
|
+
const returnValue = super[PropertySymbol.insertBefore](newNode, referenceNode);
|
109
109
|
if (this[PropertySymbol.sheet]) {
|
110
110
|
this[PropertySymbol.sheet].replaceSync(this.textContent);
|
111
111
|
}
|
@@ -12,6 +12,9 @@ import XMLParser from '../../xml-parser/XMLParser.js';
|
|
12
12
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement.
|
13
13
|
*/
|
14
14
|
export default class HTMLTemplateElement extends HTMLElement {
|
15
|
+
// Public properties
|
16
|
+
public cloneNode: (deep?: boolean) => HTMLTemplateElement;
|
17
|
+
|
15
18
|
// Internal properties
|
16
19
|
public [PropertySymbol.content]: DocumentFragment =
|
17
20
|
this[PropertySymbol.ownerDocument].createDocumentFragment();
|
@@ -80,37 +83,37 @@ export default class HTMLTemplateElement extends HTMLElement {
|
|
80
83
|
/**
|
81
84
|
* @override
|
82
85
|
*/
|
83
|
-
public appendChild(node: Node): Node {
|
86
|
+
public override [PropertySymbol.appendChild](node: Node): Node {
|
84
87
|
return this[PropertySymbol.content].appendChild(node);
|
85
88
|
}
|
86
89
|
|
87
90
|
/**
|
88
91
|
* @override
|
89
92
|
*/
|
90
|
-
public removeChild(node: Node): Node {
|
93
|
+
public override [PropertySymbol.removeChild](node: Node): Node {
|
91
94
|
return this[PropertySymbol.content].removeChild(node);
|
92
95
|
}
|
93
96
|
|
94
97
|
/**
|
95
98
|
* @override
|
96
99
|
*/
|
97
|
-
public insertBefore(newNode: Node, referenceNode: Node): Node {
|
100
|
+
public override [PropertySymbol.insertBefore](newNode: Node, referenceNode: Node): Node {
|
98
101
|
return this[PropertySymbol.content].insertBefore(newNode, referenceNode);
|
99
102
|
}
|
100
103
|
|
101
104
|
/**
|
102
105
|
* @override
|
103
106
|
*/
|
104
|
-
public replaceChild(newChild: Node, oldChild: Node): Node {
|
107
|
+
public override [PropertySymbol.replaceChild](newChild: Node, oldChild: Node): Node {
|
105
108
|
return this[PropertySymbol.content].replaceChild(newChild, oldChild);
|
106
109
|
}
|
107
110
|
|
108
111
|
/**
|
109
112
|
* @override
|
110
113
|
*/
|
111
|
-
public cloneNode(deep = false): HTMLTemplateElement {
|
112
|
-
const clone = <HTMLTemplateElement>super.cloneNode(deep);
|
113
|
-
clone[PropertySymbol.content] = this[PropertySymbol.content].cloneNode(deep);
|
114
|
+
public override [PropertySymbol.cloneNode](deep = false): HTMLTemplateElement {
|
115
|
+
const clone = <HTMLTemplateElement>super[PropertySymbol.cloneNode](deep);
|
116
|
+
clone[PropertySymbol.content] = <DocumentFragment>this[PropertySymbol.content].cloneNode(deep);
|
114
117
|
return clone;
|
115
118
|
}
|
116
119
|
}
|
@@ -21,6 +21,8 @@ import HTMLTextAreaElementNamedNodeMap from './HTMLTextAreaElementNamedNodeMap.j
|
|
21
21
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.
|
22
22
|
*/
|
23
23
|
export default class HTMLTextAreaElement extends HTMLElement {
|
24
|
+
// Public properties
|
25
|
+
public cloneNode: (deep?: boolean) => HTMLTextAreaElement;
|
24
26
|
public readonly type = 'textarea';
|
25
27
|
|
26
28
|
// Events
|
@@ -566,14 +568,10 @@ export default class HTMLTextAreaElement extends HTMLElement {
|
|
566
568
|
}
|
567
569
|
|
568
570
|
/**
|
569
|
-
* Clones a node.
|
570
|
-
*
|
571
571
|
* @override
|
572
|
-
* @param [deep=false] "true" to clone deep.
|
573
|
-
* @returns Cloned node.
|
574
572
|
*/
|
575
|
-
public cloneNode(deep = false): HTMLTextAreaElement {
|
576
|
-
const clone = <HTMLTextAreaElement>super.cloneNode(deep);
|
573
|
+
public override [PropertySymbol.cloneNode](deep = false): HTMLTextAreaElement {
|
574
|
+
const clone = <HTMLTextAreaElement>super[PropertySymbol.cloneNode](deep);
|
577
575
|
|
578
576
|
clone[PropertySymbol.value] = this[PropertySymbol.value];
|
579
577
|
clone.#selectionStart = this.#selectionStart;
|
package/src/nodes/node/Node.ts
CHANGED
@@ -328,6 +328,63 @@ export default class Node extends EventTarget {
|
|
328
328
|
* @returns Cloned node.
|
329
329
|
*/
|
330
330
|
public cloneNode(deep = false): Node {
|
331
|
+
return this[PropertySymbol.cloneNode](deep);
|
332
|
+
}
|
333
|
+
|
334
|
+
/**
|
335
|
+
* Append a child node to childNodes.
|
336
|
+
*
|
337
|
+
* @param node Node to append.
|
338
|
+
* @returns Appended node.
|
339
|
+
*/
|
340
|
+
public appendChild(node: Node): Node {
|
341
|
+
return this[PropertySymbol.appendChild](node);
|
342
|
+
}
|
343
|
+
|
344
|
+
/**
|
345
|
+
* Remove Child element from childNodes array.
|
346
|
+
*
|
347
|
+
* @param node Node to remove.
|
348
|
+
* @returns Removed node.
|
349
|
+
*/
|
350
|
+
public removeChild(node: Node): Node {
|
351
|
+
return this[PropertySymbol.removeChild](node);
|
352
|
+
}
|
353
|
+
|
354
|
+
/**
|
355
|
+
* Inserts a node before another.
|
356
|
+
*
|
357
|
+
* @param newNode Node to insert.
|
358
|
+
* @param referenceNode Node to insert before.
|
359
|
+
* @returns Inserted node.
|
360
|
+
*/
|
361
|
+
public insertBefore(newNode: Node, referenceNode: Node | null): Node {
|
362
|
+
if (arguments.length < 2) {
|
363
|
+
throw new TypeError(
|
364
|
+
`Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only ${arguments.length} present.`
|
365
|
+
);
|
366
|
+
}
|
367
|
+
return this[PropertySymbol.insertBefore](newNode, referenceNode);
|
368
|
+
}
|
369
|
+
|
370
|
+
/**
|
371
|
+
* Replaces a node with another.
|
372
|
+
*
|
373
|
+
* @param newChild New child.
|
374
|
+
* @param oldChild Old child.
|
375
|
+
* @returns Replaced node.
|
376
|
+
*/
|
377
|
+
public replaceChild(newChild: Node, oldChild: Node): Node {
|
378
|
+
return this[PropertySymbol.replaceChild](newChild, oldChild);
|
379
|
+
}
|
380
|
+
|
381
|
+
/**
|
382
|
+
* Clones a node.
|
383
|
+
*
|
384
|
+
* @param [deep=false] "true" to clone deep.
|
385
|
+
* @returns Cloned node.
|
386
|
+
*/
|
387
|
+
public [PropertySymbol.cloneNode](deep = false): Node {
|
331
388
|
const clone = NodeFactory.createNode<Node>(
|
332
389
|
this[PropertySymbol.ownerDocument],
|
333
390
|
<typeof Node>this.constructor
|
@@ -357,7 +414,7 @@ export default class Node extends EventTarget {
|
|
357
414
|
* @param node Node to append.
|
358
415
|
* @returns Appended node.
|
359
416
|
*/
|
360
|
-
public appendChild(node: Node): Node {
|
417
|
+
public [PropertySymbol.appendChild](node: Node): Node {
|
361
418
|
return NodeUtility.appendChild(this, node);
|
362
419
|
}
|
363
420
|
|
@@ -367,7 +424,7 @@ export default class Node extends EventTarget {
|
|
367
424
|
* @param node Node to remove.
|
368
425
|
* @returns Removed node.
|
369
426
|
*/
|
370
|
-
public removeChild(node: Node): Node {
|
427
|
+
public [PropertySymbol.removeChild](node: Node): Node {
|
371
428
|
return NodeUtility.removeChild(this, node);
|
372
429
|
}
|
373
430
|
|
@@ -378,12 +435,7 @@ export default class Node extends EventTarget {
|
|
378
435
|
* @param referenceNode Node to insert before.
|
379
436
|
* @returns Inserted node.
|
380
437
|
*/
|
381
|
-
public insertBefore(newNode: Node, referenceNode: Node | null): Node {
|
382
|
-
if (arguments.length < 2) {
|
383
|
-
throw new TypeError(
|
384
|
-
`Failed to execute 'insertBefore' on 'Node': 2 arguments required, but only ${arguments.length} present.`
|
385
|
-
);
|
386
|
-
}
|
438
|
+
public [PropertySymbol.insertBefore](newNode: Node, referenceNode: Node | null): Node {
|
387
439
|
return NodeUtility.insertBefore(this, newNode, referenceNode);
|
388
440
|
}
|
389
441
|
|
@@ -394,7 +446,7 @@ export default class Node extends EventTarget {
|
|
394
446
|
* @param oldChild Old child.
|
395
447
|
* @returns Replaced node.
|
396
448
|
*/
|
397
|
-
public replaceChild(newChild: Node, oldChild: Node): Node {
|
449
|
+
public [PropertySymbol.replaceChild](newChild: Node, oldChild: Node): Node {
|
398
450
|
this.insertBefore(newChild, oldChild);
|
399
451
|
this.removeChild(oldChild);
|
400
452
|
|
@@ -12,6 +12,9 @@ import SVGElement from '../svg-element/SVGElement.js';
|
|
12
12
|
* ShadowRoot.
|
13
13
|
*/
|
14
14
|
export default class ShadowRoot extends DocumentFragment {
|
15
|
+
// Public properties
|
16
|
+
public cloneNode: (deep?: boolean) => ShadowRoot;
|
17
|
+
|
15
18
|
// Events
|
16
19
|
public onslotchange: (event: Event) => void | null = null;
|
17
20
|
|
@@ -113,14 +116,10 @@ export default class ShadowRoot extends DocumentFragment {
|
|
113
116
|
}
|
114
117
|
|
115
118
|
/**
|
116
|
-
* Clones a node.
|
117
|
-
*
|
118
119
|
* @override
|
119
|
-
* @param [deep=false] "true" to clone deep.
|
120
|
-
* @returns Cloned node.
|
121
120
|
*/
|
122
|
-
public cloneNode(deep = false): ShadowRoot {
|
123
|
-
const clone = <ShadowRoot>super.cloneNode(deep);
|
121
|
+
public override [PropertySymbol.cloneNode](deep = false): ShadowRoot {
|
122
|
+
const clone = <ShadowRoot>super[PropertySymbol.cloneNode](deep);
|
124
123
|
clone[PropertySymbol.mode] = this.mode;
|
125
124
|
return clone;
|
126
125
|
}
|
@@ -8,11 +8,15 @@ import SVGTransform from './SVGTransform.js';
|
|
8
8
|
import SVGAnimatedRect from './SVGAnimatedRect.js';
|
9
9
|
import Node from '../node/Node.js';
|
10
10
|
import Event from '../../event/Event.js';
|
11
|
+
import * as PropertySymbol from '../../PropertySymbol.js';
|
11
12
|
|
12
13
|
/**
|
13
14
|
* SVGSVGElement.
|
14
15
|
*/
|
15
16
|
export default class SVGSVGElement extends SVGGraphicsElement {
|
17
|
+
// Public properties
|
18
|
+
public cloneNode: (deep?: boolean) => SVGSVGElement;
|
19
|
+
|
16
20
|
// Events
|
17
21
|
public onafterprint: (event: Event) => void | null = null;
|
18
22
|
public onbeforeprint: (event: Event) => void | null = null;
|
@@ -326,13 +330,9 @@ export default class SVGSVGElement extends SVGGraphicsElement {
|
|
326
330
|
}
|
327
331
|
|
328
332
|
/**
|
329
|
-
* Clones a node.
|
330
|
-
*
|
331
333
|
* @override
|
332
|
-
* @param [deep=false] "true" to clone deep.
|
333
|
-
* @returns Cloned node.
|
334
334
|
*/
|
335
|
-
public cloneNode(deep = false): SVGSVGElement {
|
336
|
-
return <SVGSVGElement>super.cloneNode(deep);
|
335
|
+
public override [PropertySymbol.cloneNode](deep = false): SVGSVGElement {
|
336
|
+
return <SVGSVGElement>super[PropertySymbol.cloneNode](deep);
|
337
337
|
}
|
338
338
|
}
|
package/src/nodes/text/Text.ts
CHANGED
@@ -10,6 +10,7 @@ import NodeTypeEnum from '../node/NodeTypeEnum.js';
|
|
10
10
|
* Text node.
|
11
11
|
*/
|
12
12
|
export default class Text extends CharacterData {
|
13
|
+
public cloneNode: (deep?: boolean) => Text;
|
13
14
|
public override [PropertySymbol.nodeType] = NodeTypeEnum.textNode;
|
14
15
|
|
15
16
|
/**
|
@@ -79,14 +80,10 @@ export default class Text extends CharacterData {
|
|
79
80
|
}
|
80
81
|
|
81
82
|
/**
|
82
|
-
* Clones a node.
|
83
|
-
*
|
84
83
|
* @override
|
85
|
-
* @param [deep=false] "true" to clone deep.
|
86
|
-
* @returns Cloned node.
|
87
84
|
*/
|
88
|
-
public cloneNode(deep = false): Text {
|
89
|
-
return <Text>super.cloneNode(deep);
|
85
|
+
public override [PropertySymbol.cloneNode](deep = false): Text {
|
86
|
+
return <Text>super[PropertySymbol.cloneNode](deep);
|
90
87
|
}
|
91
88
|
|
92
89
|
/**
|