happy-dom 5.4.0 → 6.0.2
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/.eslintrc.js +2 -2
- package/lib/base64/Base64.d.ts +23 -0
- package/lib/base64/Base64.js +89 -0
- package/lib/base64/Base64.js.map +1 -0
- package/lib/config/NonImplemenetedElementClasses.js +0 -1
- package/lib/config/NonImplemenetedElementClasses.js.map +1 -1
- package/lib/dom-implementation/DOMImplementation.d.ts +7 -1
- package/lib/dom-implementation/DOMImplementation.js +10 -2
- package/lib/dom-implementation/DOMImplementation.js.map +1 -1
- package/lib/dom-parser/DOMParser.d.ts +9 -4
- package/lib/dom-parser/DOMParser.js +13 -2
- package/lib/dom-parser/DOMParser.js.map +1 -1
- package/lib/exception/DOMExceptionNameEnum.d.ts +5 -1
- package/lib/exception/DOMExceptionNameEnum.js +4 -0
- package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
- package/lib/fetch/Request.d.ts +8 -0
- package/lib/fetch/Request.js +15 -6
- package/lib/fetch/Request.js.map +1 -1
- package/lib/fetch/Response.d.ts +5 -0
- package/lib/fetch/Response.js +12 -6
- package/lib/fetch/Response.js.map +1 -1
- package/lib/file/FileReader.d.ts +7 -2
- package/lib/file/FileReader.js +9 -3
- package/lib/file/FileReader.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/nodes/comment/Comment.d.ts +1 -1
- package/lib/nodes/document/Document.d.ts +18 -15
- package/lib/nodes/document/Document.js +36 -33
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/document/IDocument.d.ts +7 -0
- package/lib/nodes/document-fragment/DocumentFragment.d.ts +1 -1
- package/lib/nodes/document-type/DocumentType.d.ts +1 -1
- package/lib/nodes/element/DOMRectListFactory.d.ts +23 -0
- package/lib/nodes/element/DOMRectListFactory.js +33 -0
- package/lib/nodes/element/DOMRectListFactory.js.map +1 -0
- package/lib/nodes/element/Element.d.ts +6 -5
- package/lib/nodes/element/Element.js +9 -11
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/IDOMRectList.d.ts +11 -0
- package/lib/nodes/element/IDOMRectList.js +3 -0
- package/lib/nodes/element/IDOMRectList.js.map +1 -0
- package/lib/nodes/element/IElement.d.ts +5 -4
- package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts +1 -6
- package/lib/nodes/html-dialog-element/HTMLDialogElement.js +7 -3
- package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
- package/lib/nodes/html-dialog-element/IHTMLDialogElement.d.ts +11 -0
- package/lib/nodes/html-element/DatasetUtility.js +3 -1
- package/lib/nodes/html-element/DatasetUtility.js.map +1 -1
- package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts +1 -10
- package/lib/nodes/html-template-element/HTMLTemplateElement.js +2 -15
- package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
- package/lib/nodes/node/INode.d.ts +8 -6
- package/lib/nodes/node/Node.d.ts +20 -17
- package/lib/nodes/node/Node.js +19 -15
- package/lib/nodes/node/Node.js.map +1 -1
- package/lib/nodes/node/NodeTypeEnum.d.ts +10 -0
- package/lib/nodes/node/NodeTypeEnum.js +14 -0
- package/lib/nodes/node/NodeTypeEnum.js.map +1 -0
- package/lib/nodes/node/NodeUtility.d.ts +59 -0
- package/lib/nodes/node/NodeUtility.js +123 -0
- package/lib/nodes/node/NodeUtility.js.map +1 -0
- package/lib/nodes/text/IText.d.ts +9 -0
- package/lib/nodes/text/Text.d.ts +10 -1
- package/lib/nodes/text/Text.js +24 -0
- package/lib/nodes/text/Text.js.map +1 -1
- package/lib/query-selector/SelectorItem.js +3 -2
- package/lib/query-selector/SelectorItem.js.map +1 -1
- package/lib/range/IRangeBoundaryPoint.d.ts +8 -0
- package/lib/range/IRangeBoundaryPoint.js +3 -0
- package/lib/range/IRangeBoundaryPoint.js.map +1 -0
- package/lib/range/Range.d.ts +249 -0
- package/lib/range/Range.js +820 -0
- package/lib/range/Range.js.map +1 -0
- package/lib/range/RangeHowEnum.d.ts +7 -0
- package/lib/range/RangeHowEnum.js +11 -0
- package/lib/range/RangeHowEnum.js.map +1 -0
- package/lib/range/RangeUtility.d.ts +46 -0
- package/lib/range/RangeUtility.js +92 -0
- package/lib/range/RangeUtility.js.map +1 -0
- package/lib/selection/Selection.d.ts +167 -44
- package/lib/selection/Selection.js +369 -58
- package/lib/selection/Selection.js.map +1 -1
- package/lib/selection/SelectionDirectionEnum.d.ts +6 -0
- package/lib/selection/SelectionDirectionEnum.js +10 -0
- package/lib/selection/SelectionDirectionEnum.js.map +1 -0
- package/lib/window/IWindow.d.ts +20 -0
- package/lib/window/Window.d.ts +23 -9
- package/lib/window/Window.js +83 -35
- package/lib/window/Window.js.map +1 -1
- package/lib/xml-parser/XMLParser.d.ts +2 -2
- package/lib/xml-parser/XMLParser.js +5 -3
- package/lib/xml-parser/XMLParser.js.map +1 -1
- package/lib/xml-serializer/XMLSerializer.js +4 -1
- package/lib/xml-serializer/XMLSerializer.js.map +1 -1
- package/package.json +2 -2
- package/src/base64/Base64.ts +97 -0
- package/src/config/NonImplemenetedElementClasses.ts +0 -1
- package/src/dom-implementation/DOMImplementation.ts +13 -2
- package/src/dom-parser/DOMParser.ts +20 -7
- package/src/exception/DOMExceptionNameEnum.ts +5 -1
- package/src/fetch/Request.ts +16 -6
- package/src/fetch/Response.ts +13 -6
- package/src/file/FileReader.ts +14 -4
- package/src/index.ts +2 -0
- package/src/nodes/document/Document.ts +47 -39
- package/src/nodes/document/IDocument.ts +8 -0
- package/src/nodes/element/DOMRectListFactory.ts +33 -0
- package/src/nodes/element/Element.ts +10 -11
- package/src/nodes/element/IDOMRectList.ts +11 -0
- package/src/nodes/element/IElement.ts +5 -4
- package/src/nodes/html-dialog-element/HTMLDialogElement.ts +4 -9
- package/src/nodes/html-dialog-element/IHTMLDialogElement.ts +14 -0
- package/src/nodes/html-element/DatasetUtility.ts +3 -1
- package/src/nodes/html-template-element/HTMLTemplateElement.ts +3 -21
- package/src/nodes/node/INode.ts +8 -6
- package/src/nodes/node/Node.ts +24 -19
- package/src/nodes/node/NodeTypeEnum.ts +11 -0
- package/src/nodes/node/NodeUtility.ts +139 -0
- package/src/nodes/text/IText.ts +10 -0
- package/src/nodes/text/Text.ts +33 -0
- package/src/query-selector/SelectorItem.ts +3 -2
- package/src/range/IRangeBoundaryPoint.ts +9 -0
- package/src/range/Range.ts +1057 -0
- package/src/range/RangeHowEnum.ts +8 -0
- package/src/range/RangeUtility.ts +114 -0
- package/src/selection/Selection.ts +444 -60
- package/src/selection/SelectionDirectionEnum.ts +7 -0
- package/src/window/IWindow.ts +22 -0
- package/src/window/Window.ts +102 -32
- package/src/xml-parser/XMLParser.ts +15 -7
- package/src/xml-serializer/XMLSerializer.ts +6 -1
- package/lib/nodes/element/Range.d.ts +0 -167
- package/lib/nodes/element/Range.js +0 -215
- package/lib/nodes/element/Range.js.map +0 -1
- package/lib/window/WindowBase64.d.ts +0 -19
- package/lib/window/WindowBase64.js +0 -88
- package/lib/window/WindowBase64.js.map +0 -1
- package/src/nodes/element/Range.ts +0 -237
- package/src/window/WindowBase64.ts +0 -95
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"IDOMRectList.js","sourceRoot":"","sources":["../../../src/nodes/element/IDOMRectList.ts"],"names":[],"mappings":""}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import IShadowRoot from '../shadow-root/IShadowRoot';
|
2
2
|
import Attr from '../../attribute/Attr';
|
3
3
|
import DOMRect from './DOMRect';
|
4
|
-
import Range from './Range';
|
5
4
|
import IDOMTokenList from '../../dom-token-list/IDOMTokenList';
|
6
5
|
import INode from './../node/INode';
|
7
6
|
import IChildNode from '../child-node/IChildNode';
|
8
7
|
import IParentNode from '../parent-node/IParentNode';
|
9
8
|
import INonDocumentTypeChildNode from '../child-node/INonDocumentTypeChildNode';
|
9
|
+
import IDOMRectList from './IDOMRectList';
|
10
10
|
export declare type TInsertAdjacentPositions = 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';
|
11
11
|
/**
|
12
12
|
* Element.
|
@@ -156,11 +156,12 @@ export default interface IElement extends IChildNode, INonDocumentTypeChildNode,
|
|
156
156
|
*/
|
157
157
|
getBoundingClientRect(): DOMRect;
|
158
158
|
/**
|
159
|
-
* Returns a
|
159
|
+
* Returns a collection of DOMRect objects that indicate the bounding rectangles for each CSS border box in a client.
|
160
160
|
*
|
161
|
-
* @
|
161
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getClientRects
|
162
|
+
* @returns DOM rect list.
|
162
163
|
*/
|
163
|
-
|
164
|
+
getClientRects(): IDOMRectList<DOMRect>;
|
164
165
|
/**
|
165
166
|
* The matches() method checks to see if the Element would be selected by the provided selectorString.
|
166
167
|
*
|
@@ -7,11 +7,6 @@ import IHTMLDialogElement from './IHTMLDialogElement';
|
|
7
7
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement.
|
8
8
|
*/
|
9
9
|
export default class HTMLDialogElement extends HTMLElement implements IHTMLDialogElement {
|
10
|
-
/**
|
11
|
-
* Returns returnValue.
|
12
|
-
*
|
13
|
-
* @returns ReturnValue.
|
14
|
-
*/
|
15
10
|
returnValue: string;
|
16
11
|
/**
|
17
12
|
* Returns open.
|
@@ -22,7 +17,7 @@ export default class HTMLDialogElement extends HTMLElement implements IHTMLDialo
|
|
22
17
|
/**
|
23
18
|
* Closes the dialog.
|
24
19
|
*
|
25
|
-
* @param returnValue ReturnValue.
|
20
|
+
* @param [returnValue] ReturnValue.
|
26
21
|
*/
|
27
22
|
close(returnValue?: string): void;
|
28
23
|
/**
|
@@ -12,6 +12,10 @@ const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
|
|
12
12
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement.
|
13
13
|
*/
|
14
14
|
class HTMLDialogElement extends HTMLElement_1.default {
|
15
|
+
constructor() {
|
16
|
+
super(...arguments);
|
17
|
+
this.returnValue = '';
|
18
|
+
}
|
15
19
|
/**
|
16
20
|
* Returns open.
|
17
21
|
*
|
@@ -23,12 +27,12 @@ class HTMLDialogElement extends HTMLElement_1.default {
|
|
23
27
|
/**
|
24
28
|
* Closes the dialog.
|
25
29
|
*
|
26
|
-
* @param returnValue ReturnValue.
|
30
|
+
* @param [returnValue] ReturnValue.
|
27
31
|
*/
|
28
|
-
close(returnValue) {
|
32
|
+
close(returnValue = '') {
|
29
33
|
this.removeAttributeNS(null, 'open');
|
30
34
|
this.returnValue = returnValue;
|
31
|
-
this.dispatchEvent(new Event_1.default('close'
|
35
|
+
this.dispatchEvent(new Event_1.default('close'));
|
32
36
|
}
|
33
37
|
/**
|
34
38
|
* Shows the modal.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLDialogElement.js","sourceRoot":"","sources":["../../../src/nodes/html-dialog-element/HTMLDialogElement.ts"],"names":[],"mappings":";;;;;AAAA,8DAAsC;AACtC,8EAAsD;AAGtD;;;;;GAKG;AACH,MAAqB,iBAAkB,SAAQ,qBAAW;
|
1
|
+
{"version":3,"file":"HTMLDialogElement.js","sourceRoot":"","sources":["../../../src/nodes/html-dialog-element/HTMLDialogElement.ts"],"names":[],"mappings":";;;;;AAAA,8DAAsC;AACtC,8EAAsD;AAGtD;;;;;GAKG;AACH,MAAqB,iBAAkB,SAAQ,qBAAW;IAA1D;;QACQ,gBAAW,GAAG,EAAE,CAAC;IAmCzB,CAAC;IAjCA;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,GAAG,EAAE;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,eAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,SAAS;QACf,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,IAAI;QACV,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;CACD;AApCD,oCAoCC"}
|
@@ -8,7 +8,18 @@ import IHTMLElement from '../html-element/IHTMLElement';
|
|
8
8
|
export default interface IHTMLDialogElement extends IHTMLElement {
|
9
9
|
open: boolean;
|
10
10
|
returnValue: string;
|
11
|
+
/**
|
12
|
+
* Closes the dialog.
|
13
|
+
*
|
14
|
+
* @param [returnValue] ReturnValue.
|
15
|
+
*/
|
11
16
|
close(returnValue?: string): void;
|
17
|
+
/**
|
18
|
+
* Shows the modal.
|
19
|
+
*/
|
12
20
|
showModal(): void;
|
21
|
+
/**
|
22
|
+
* Shows the dialog.
|
23
|
+
*/
|
13
24
|
show(): void;
|
14
25
|
}
|
@@ -24,7 +24,9 @@ class DatasetUtility {
|
|
24
24
|
* @returns Kebab cased string.
|
25
25
|
*/
|
26
26
|
static camelCaseToKebab(text) {
|
27
|
-
return text
|
27
|
+
return text
|
28
|
+
.toString()
|
29
|
+
.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());
|
28
30
|
}
|
29
31
|
}
|
30
32
|
exports.default = DatasetUtility;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DatasetUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-element/DatasetUtility.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,cAAc;IAClC;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACjD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACnF;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAC1C,OAAO,IAAI,
|
1
|
+
{"version":3,"file":"DatasetUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-element/DatasetUtility.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,cAAc;IAClC;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACjD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACnF;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAC1C,OAAO,IAAI;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrF,CAAC;CACD;AA1BD,iCA0BC"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import Node from '../node/Node';
|
2
1
|
import HTMLElement from '../html-element/HTMLElement';
|
3
2
|
import IDocumentFragment from '../document-fragment/IDocumentFragment';
|
4
3
|
import INode from '../node/INode';
|
@@ -19,14 +18,6 @@ export default class HTMLTemplateElement extends HTMLElement implements IHTMLTem
|
|
19
18
|
* @override
|
20
19
|
*/
|
21
20
|
set innerHTML(html: string);
|
22
|
-
/**
|
23
|
-
* @override
|
24
|
-
*/
|
25
|
-
get outerHTML(): string;
|
26
|
-
/**
|
27
|
-
* @override
|
28
|
-
*/
|
29
|
-
set outerHTML(_html: string);
|
30
21
|
/**
|
31
22
|
* @override
|
32
23
|
*/
|
@@ -56,7 +47,7 @@ export default class HTMLTemplateElement extends HTMLElement implements IHTMLTem
|
|
56
47
|
/**
|
57
48
|
* @override
|
58
49
|
*/
|
59
|
-
removeChild(node:
|
50
|
+
removeChild(node: INode): INode;
|
60
51
|
/**
|
61
52
|
* @override
|
62
53
|
*/
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
|
7
7
|
const XMLParser_1 = __importDefault(require("../../xml-parser/XMLParser"));
|
8
8
|
const XMLSerializer_1 = __importDefault(require("../../xml-serializer/XMLSerializer"));
|
9
|
-
const DOMException_1 = __importDefault(require("../../exception/DOMException"));
|
10
9
|
/**
|
11
10
|
* HTML Template Element.
|
12
11
|
*
|
@@ -35,29 +34,17 @@ class HTMLTemplateElement extends HTMLElement_1.default {
|
|
35
34
|
this.content.appendChild(node);
|
36
35
|
}
|
37
36
|
}
|
38
|
-
/**
|
39
|
-
* @override
|
40
|
-
*/
|
41
|
-
get outerHTML() {
|
42
|
-
return new XMLSerializer_1.default().serializeToString(this.content);
|
43
|
-
}
|
44
|
-
/**
|
45
|
-
* @override
|
46
|
-
*/
|
47
|
-
set outerHTML(_html) {
|
48
|
-
throw new DOMException_1.default(`Failed to set the 'outerHTML' property on 'Element': This element has no parent node.`);
|
49
|
-
}
|
50
37
|
/**
|
51
38
|
* @override
|
52
39
|
*/
|
53
40
|
get previousSibling() {
|
54
|
-
return
|
41
|
+
return null;
|
55
42
|
}
|
56
43
|
/**
|
57
44
|
* @override
|
58
45
|
*/
|
59
46
|
get nextSibling() {
|
60
|
-
return
|
47
|
+
return null;
|
61
48
|
}
|
62
49
|
/**
|
63
50
|
* @override
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLTemplateElement.js","sourceRoot":"","sources":["../../../src/nodes/html-template-element/HTMLTemplateElement.ts"],"names":[],"mappings":";;;;;
|
1
|
+
{"version":3,"file":"HTMLTemplateElement.js","sourceRoot":"","sources":["../../../src/nodes/html-template-element/HTMLTemplateElement.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AAItD,2EAAmD;AACnD,uFAA+D;AAE/D;;;;;GAKG;AACH,MAAqB,mBAAoB,SAAQ,qBAAW;IAA5D;;QACiB,YAAO,GAAsB,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IAkG1F,CAAC;IAhGA;;OAEG;IACH,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,SAAS,CAAC,IAAY;QAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE;YACpD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,KAAK,MAAM,IAAI,IAAI,mBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE;YAChF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC/B;IACF,CAAC;IAED;;OAEG;IACH,IAAW,eAAe;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,OAA0C;QAC7D,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;QAC1C,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC3C,GAAG,IAAI,aAAa,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACtD;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAW;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAW;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,OAAc,EAAE,aAAoB;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,QAAe,EAAE,QAAe;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,IAAI,GAAG,KAAK;QAC5B,MAAM,KAAK,GAAyB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,OAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAnGD,sCAmGC"}
|
@@ -2,13 +2,15 @@ import IEventTarget from '../../event/IEventTarget';
|
|
2
2
|
import IDocument from '../document/IDocument';
|
3
3
|
import IElement from '../element/IElement';
|
4
4
|
import INodeList from './INodeList';
|
5
|
+
import NodeTypeEnum from './NodeTypeEnum';
|
5
6
|
export default interface INode extends IEventTarget {
|
6
|
-
readonly ELEMENT_NODE:
|
7
|
-
readonly TEXT_NODE:
|
8
|
-
readonly COMMENT_NODE:
|
9
|
-
readonly DOCUMENT_NODE:
|
10
|
-
readonly DOCUMENT_TYPE_NODE:
|
11
|
-
readonly DOCUMENT_FRAGMENT_NODE:
|
7
|
+
readonly ELEMENT_NODE: NodeTypeEnum;
|
8
|
+
readonly TEXT_NODE: NodeTypeEnum;
|
9
|
+
readonly COMMENT_NODE: NodeTypeEnum;
|
10
|
+
readonly DOCUMENT_NODE: NodeTypeEnum;
|
11
|
+
readonly DOCUMENT_TYPE_NODE: NodeTypeEnum;
|
12
|
+
readonly DOCUMENT_FRAGMENT_NODE: NodeTypeEnum;
|
13
|
+
readonly PROCESSING_INSTRUCTION_NODE: NodeTypeEnum;
|
12
14
|
readonly ownerDocument: IDocument;
|
13
15
|
readonly parentNode: INode;
|
14
16
|
readonly parentElement: IElement;
|
package/lib/nodes/node/Node.d.ts
CHANGED
@@ -1,34 +1,37 @@
|
|
1
1
|
import EventTarget from '../../event/EventTarget';
|
2
|
-
import
|
2
|
+
import MutationListener from '../../mutation-observer/MutationListener';
|
3
3
|
import Event from '../../event/Event';
|
4
4
|
import INode from './INode';
|
5
5
|
import IDocument from '../document/IDocument';
|
6
6
|
import IElement from '../element/IElement';
|
7
7
|
import INodeList from './INodeList';
|
8
|
+
import NodeTypeEnum from './NodeTypeEnum';
|
8
9
|
/**
|
9
10
|
* Node.
|
10
11
|
*/
|
11
12
|
export default class Node extends EventTarget implements INode {
|
12
|
-
static
|
13
|
-
static readonly
|
14
|
-
static readonly
|
15
|
-
static readonly
|
16
|
-
static readonly
|
17
|
-
static readonly
|
18
|
-
static
|
19
|
-
readonly
|
20
|
-
readonly
|
21
|
-
readonly
|
22
|
-
readonly
|
23
|
-
readonly
|
24
|
-
readonly
|
13
|
+
static _ownerDocument: IDocument;
|
14
|
+
static readonly ELEMENT_NODE = NodeTypeEnum.elementNode;
|
15
|
+
static readonly TEXT_NODE = NodeTypeEnum.textNode;
|
16
|
+
static readonly COMMENT_NODE = NodeTypeEnum.commentNode;
|
17
|
+
static readonly DOCUMENT_NODE = NodeTypeEnum.documentNode;
|
18
|
+
static readonly DOCUMENT_TYPE_NODE = NodeTypeEnum.documentTypeNode;
|
19
|
+
static readonly DOCUMENT_FRAGMENT_NODE = NodeTypeEnum.documentFragmentNode;
|
20
|
+
static readonly PROCESSING_INSTRUCTION_NODE = NodeTypeEnum.processingInstructionNode;
|
21
|
+
readonly ELEMENT_NODE = NodeTypeEnum.elementNode;
|
22
|
+
readonly TEXT_NODE = NodeTypeEnum.textNode;
|
23
|
+
readonly COMMENT_NODE = NodeTypeEnum.commentNode;
|
24
|
+
readonly DOCUMENT_NODE = NodeTypeEnum.documentNode;
|
25
|
+
readonly DOCUMENT_TYPE_NODE = NodeTypeEnum.documentTypeNode;
|
26
|
+
readonly DOCUMENT_FRAGMENT_NODE = NodeTypeEnum.documentFragmentNode;
|
27
|
+
readonly PROCESSING_INSTRUCTION_NODE = NodeTypeEnum.processingInstructionNode;
|
25
28
|
readonly ownerDocument: IDocument;
|
26
29
|
readonly parentNode: INode;
|
27
30
|
readonly nodeType: number;
|
28
31
|
readonly childNodes: INodeList<INode>;
|
29
32
|
readonly isConnected: boolean;
|
30
33
|
_rootNode: INode;
|
31
|
-
|
34
|
+
_observers: MutationListener[];
|
32
35
|
/**
|
33
36
|
* Constructor.
|
34
37
|
*/
|
@@ -181,14 +184,14 @@ export default class Node extends EventTarget implements INode {
|
|
181
184
|
*
|
182
185
|
* @param listener Listener.
|
183
186
|
*/
|
184
|
-
_observe(listener:
|
187
|
+
_observe(listener: MutationListener): void;
|
185
188
|
/**
|
186
189
|
* Stops observing the node.
|
187
190
|
* Used by MutationObserver, but it is not part of the HTML standard.
|
188
191
|
*
|
189
192
|
* @param listener Listener.
|
190
193
|
*/
|
191
|
-
_unobserve(listener:
|
194
|
+
_unobserve(listener: MutationListener): void;
|
192
195
|
/**
|
193
196
|
* Connects this element to another element.
|
194
197
|
*
|
package/lib/nodes/node/Node.js
CHANGED
@@ -8,6 +8,7 @@ const MutationRecord_1 = __importDefault(require("../../mutation-observer/Mutati
|
|
8
8
|
const MutationTypeEnum_1 = __importDefault(require("../../mutation-observer/MutationTypeEnum"));
|
9
9
|
const DOMException_1 = __importDefault(require("../../exception/DOMException"));
|
10
10
|
const NodeListFactory_1 = __importDefault(require("./NodeListFactory"));
|
11
|
+
const NodeTypeEnum_1 = __importDefault(require("./NodeTypeEnum"));
|
11
12
|
/**
|
12
13
|
* Node.
|
13
14
|
*/
|
@@ -17,20 +18,21 @@ class Node extends EventTarget_1.default {
|
|
17
18
|
*/
|
18
19
|
constructor() {
|
19
20
|
super();
|
20
|
-
this.ELEMENT_NODE =
|
21
|
-
this.TEXT_NODE =
|
22
|
-
this.COMMENT_NODE =
|
23
|
-
this.DOCUMENT_NODE =
|
24
|
-
this.DOCUMENT_TYPE_NODE =
|
25
|
-
this.DOCUMENT_FRAGMENT_NODE =
|
21
|
+
this.ELEMENT_NODE = NodeTypeEnum_1.default.elementNode;
|
22
|
+
this.TEXT_NODE = NodeTypeEnum_1.default.textNode;
|
23
|
+
this.COMMENT_NODE = NodeTypeEnum_1.default.commentNode;
|
24
|
+
this.DOCUMENT_NODE = NodeTypeEnum_1.default.documentNode;
|
25
|
+
this.DOCUMENT_TYPE_NODE = NodeTypeEnum_1.default.documentTypeNode;
|
26
|
+
this.DOCUMENT_FRAGMENT_NODE = NodeTypeEnum_1.default.documentFragmentNode;
|
27
|
+
this.PROCESSING_INSTRUCTION_NODE = NodeTypeEnum_1.default.processingInstructionNode;
|
26
28
|
this.ownerDocument = null;
|
27
29
|
this.parentNode = null;
|
28
30
|
this.childNodes = NodeListFactory_1.default.create();
|
29
31
|
this.isConnected = false;
|
30
|
-
this._rootNode = null;
|
31
32
|
// Custom Properties (not part of HTML standard)
|
33
|
+
this._rootNode = null;
|
32
34
|
this._observers = [];
|
33
|
-
this.ownerDocument = this.constructor.
|
35
|
+
this.ownerDocument = this.constructor._ownerDocument;
|
34
36
|
}
|
35
37
|
/**
|
36
38
|
* Get text value of children.
|
@@ -429,12 +431,14 @@ class Node extends EventTarget_1.default {
|
|
429
431
|
}
|
430
432
|
}
|
431
433
|
exports.default = Node;
|
434
|
+
// Owner document is set when the Node is created by the Document
|
435
|
+
Node._ownerDocument = null;
|
432
436
|
// Public properties
|
433
|
-
Node.ELEMENT_NODE =
|
434
|
-
Node.TEXT_NODE =
|
435
|
-
Node.COMMENT_NODE =
|
436
|
-
Node.DOCUMENT_NODE =
|
437
|
-
Node.DOCUMENT_TYPE_NODE =
|
438
|
-
Node.DOCUMENT_FRAGMENT_NODE =
|
439
|
-
Node.
|
437
|
+
Node.ELEMENT_NODE = NodeTypeEnum_1.default.elementNode;
|
438
|
+
Node.TEXT_NODE = NodeTypeEnum_1.default.textNode;
|
439
|
+
Node.COMMENT_NODE = NodeTypeEnum_1.default.commentNode;
|
440
|
+
Node.DOCUMENT_NODE = NodeTypeEnum_1.default.documentNode;
|
441
|
+
Node.DOCUMENT_TYPE_NODE = NodeTypeEnum_1.default.documentTypeNode;
|
442
|
+
Node.DOCUMENT_FRAGMENT_NODE = NodeTypeEnum_1.default.documentFragmentNode;
|
443
|
+
Node.PROCESSING_INSTRUCTION_NODE = NodeTypeEnum_1.default.processingInstructionNode;
|
440
444
|
//# sourceMappingURL=Node.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/nodes/node/Node.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAClD,4FAAoE;AACpE,gGAAwE;AAIxE,gFAAwD;AAKxD,wEAAgD;
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/nodes/node/Node.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var NodeTypeEnum;
|
4
|
+
(function (NodeTypeEnum) {
|
5
|
+
NodeTypeEnum[NodeTypeEnum["elementNode"] = 1] = "elementNode";
|
6
|
+
NodeTypeEnum[NodeTypeEnum["textNode"] = 3] = "textNode";
|
7
|
+
NodeTypeEnum[NodeTypeEnum["commentNode"] = 8] = "commentNode";
|
8
|
+
NodeTypeEnum[NodeTypeEnum["documentNode"] = 9] = "documentNode";
|
9
|
+
NodeTypeEnum[NodeTypeEnum["documentTypeNode"] = 10] = "documentTypeNode";
|
10
|
+
NodeTypeEnum[NodeTypeEnum["documentFragmentNode"] = 11] = "documentFragmentNode";
|
11
|
+
NodeTypeEnum[NodeTypeEnum["processingInstructionNode"] = 7] = "processingInstructionNode";
|
12
|
+
})(NodeTypeEnum || (NodeTypeEnum = {}));
|
13
|
+
exports.default = NodeTypeEnum;
|
14
|
+
//# sourceMappingURL=NodeTypeEnum.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NodeTypeEnum.js","sourceRoot":"","sources":["../../../src/nodes/node/NodeTypeEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,YAQJ;AARD,WAAK,YAAY;IAChB,6DAAe,CAAA;IACf,uDAAY,CAAA;IACZ,6DAAe,CAAA;IACf,+DAAgB,CAAA;IAChB,wEAAqB,CAAA;IACrB,gFAAyB,CAAA;IACzB,yFAA6B,CAAA;AAC9B,CAAC,EARI,YAAY,KAAZ,YAAY,QAQhB;AAED,kBAAe,YAAY,CAAC"}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import INode from './INode';
|
2
|
+
/**
|
3
|
+
* Node utility.
|
4
|
+
*/
|
5
|
+
export default class NodeUtility {
|
6
|
+
/**
|
7
|
+
* Returns boolean indicating if nodeB is an inclusive ancestor of nodeA.
|
8
|
+
*
|
9
|
+
* Based on:
|
10
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
|
11
|
+
*
|
12
|
+
* @see https://dom.spec.whatwg.org/#concept-tree-inclusive-ancestor
|
13
|
+
* @param ancestorNode Ancestor node.
|
14
|
+
* @param referenceNode Reference node.
|
15
|
+
* @returns "true" if following.
|
16
|
+
*/
|
17
|
+
static isInclusiveAncestor(ancestorNode: INode, referenceNode: INode): boolean;
|
18
|
+
/**
|
19
|
+
* Returns boolean indicating if nodeB is following nodeA in the document tree.
|
20
|
+
*
|
21
|
+
* Based on:
|
22
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
|
23
|
+
*
|
24
|
+
* @see https://dom.spec.whatwg.org/#concept-tree-following
|
25
|
+
* @param nodeA Node A.
|
26
|
+
* @param nodeB Node B.
|
27
|
+
* @returns "true" if following.
|
28
|
+
*/
|
29
|
+
static isFollowing(nodeA: INode, nodeB: INode): boolean;
|
30
|
+
/**
|
31
|
+
* Node length.
|
32
|
+
*
|
33
|
+
* Based on:
|
34
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
|
35
|
+
*
|
36
|
+
* @see https://dom.spec.whatwg.org/#concept-node-length
|
37
|
+
* @param node Node.
|
38
|
+
* @returns Node length.
|
39
|
+
*/
|
40
|
+
static getNodeLength(node: INode): number;
|
41
|
+
/**
|
42
|
+
* Returns boolean indicating if nodeB is following nodeA in the document tree.
|
43
|
+
*
|
44
|
+
* Based on:
|
45
|
+
* https://github.com/jsdom/js-symbol-tree/blob/master/lib/SymbolTree.js#L220
|
46
|
+
*
|
47
|
+
* @param node Node.
|
48
|
+
* @param [root] Root.
|
49
|
+
* @returns Following node.
|
50
|
+
*/
|
51
|
+
static following(node: INode, root?: INode): INode;
|
52
|
+
/**
|
53
|
+
* Returns the next sibling or parents sibling.
|
54
|
+
*
|
55
|
+
* @param node Node.
|
56
|
+
* @returns Next decentant node.
|
57
|
+
*/
|
58
|
+
static nextDecendantNode(node: INode): INode;
|
59
|
+
}
|
@@ -0,0 +1,123 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const NodeTypeEnum_1 = __importDefault(require("./NodeTypeEnum"));
|
7
|
+
/**
|
8
|
+
* Node utility.
|
9
|
+
*/
|
10
|
+
class NodeUtility {
|
11
|
+
/**
|
12
|
+
* Returns boolean indicating if nodeB is an inclusive ancestor of nodeA.
|
13
|
+
*
|
14
|
+
* Based on:
|
15
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
|
16
|
+
*
|
17
|
+
* @see https://dom.spec.whatwg.org/#concept-tree-inclusive-ancestor
|
18
|
+
* @param ancestorNode Ancestor node.
|
19
|
+
* @param referenceNode Reference node.
|
20
|
+
* @returns "true" if following.
|
21
|
+
*/
|
22
|
+
static isInclusiveAncestor(ancestorNode, referenceNode) {
|
23
|
+
let parent = referenceNode;
|
24
|
+
while (parent) {
|
25
|
+
if (ancestorNode === parent) {
|
26
|
+
return true;
|
27
|
+
}
|
28
|
+
parent = parent.parentNode;
|
29
|
+
}
|
30
|
+
return false;
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Returns boolean indicating if nodeB is following nodeA in the document tree.
|
34
|
+
*
|
35
|
+
* Based on:
|
36
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
|
37
|
+
*
|
38
|
+
* @see https://dom.spec.whatwg.org/#concept-tree-following
|
39
|
+
* @param nodeA Node A.
|
40
|
+
* @param nodeB Node B.
|
41
|
+
* @returns "true" if following.
|
42
|
+
*/
|
43
|
+
static isFollowing(nodeA, nodeB) {
|
44
|
+
if (nodeA === nodeB) {
|
45
|
+
return false;
|
46
|
+
}
|
47
|
+
let current = nodeB;
|
48
|
+
while (current) {
|
49
|
+
current = this.following(current);
|
50
|
+
if (current === nodeA) {
|
51
|
+
return true;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
return false;
|
55
|
+
}
|
56
|
+
/**
|
57
|
+
* Node length.
|
58
|
+
*
|
59
|
+
* Based on:
|
60
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/helpers/node.js
|
61
|
+
*
|
62
|
+
* @see https://dom.spec.whatwg.org/#concept-node-length
|
63
|
+
* @param node Node.
|
64
|
+
* @returns Node length.
|
65
|
+
*/
|
66
|
+
static getNodeLength(node) {
|
67
|
+
switch (node.nodeType) {
|
68
|
+
case NodeTypeEnum_1.default.documentTypeNode:
|
69
|
+
return 0;
|
70
|
+
case NodeTypeEnum_1.default.textNode:
|
71
|
+
case NodeTypeEnum_1.default.processingInstructionNode:
|
72
|
+
case NodeTypeEnum_1.default.commentNode:
|
73
|
+
return node.data.length;
|
74
|
+
default:
|
75
|
+
return node.childNodes.length;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
/**
|
79
|
+
* Returns boolean indicating if nodeB is following nodeA in the document tree.
|
80
|
+
*
|
81
|
+
* Based on:
|
82
|
+
* https://github.com/jsdom/js-symbol-tree/blob/master/lib/SymbolTree.js#L220
|
83
|
+
*
|
84
|
+
* @param node Node.
|
85
|
+
* @param [root] Root.
|
86
|
+
* @returns Following node.
|
87
|
+
*/
|
88
|
+
static following(node, root) {
|
89
|
+
const firstChild = node.firstChild;
|
90
|
+
if (firstChild) {
|
91
|
+
return firstChild;
|
92
|
+
}
|
93
|
+
let current = node;
|
94
|
+
while (current) {
|
95
|
+
if (current === root) {
|
96
|
+
return null;
|
97
|
+
}
|
98
|
+
const nextSibling = current.nextSibling;
|
99
|
+
if (nextSibling) {
|
100
|
+
return nextSibling;
|
101
|
+
}
|
102
|
+
current = current.parentNode;
|
103
|
+
}
|
104
|
+
return null;
|
105
|
+
}
|
106
|
+
/**
|
107
|
+
* Returns the next sibling or parents sibling.
|
108
|
+
*
|
109
|
+
* @param node Node.
|
110
|
+
* @returns Next decentant node.
|
111
|
+
*/
|
112
|
+
static nextDecendantNode(node) {
|
113
|
+
while (node && !node.nextSibling) {
|
114
|
+
node = node.parentNode;
|
115
|
+
}
|
116
|
+
if (!node) {
|
117
|
+
return null;
|
118
|
+
}
|
119
|
+
return node.nextSibling;
|
120
|
+
}
|
121
|
+
}
|
122
|
+
exports.default = NodeUtility;
|
123
|
+
//# sourceMappingURL=NodeUtility.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NodeUtility.js","sourceRoot":"","sources":["../../../src/nodes/node/NodeUtility.ts"],"names":[],"mappings":";;;;;AAGA,kEAA0C;AAE1C;;GAEG;AACH,MAAqB,WAAW;IAC/B;;;;;;;;;;OAUG;IACI,MAAM,CAAC,mBAAmB,CAAC,YAAmB,EAAE,aAAoB;QAC1E,IAAI,MAAM,GAAU,aAAa,CAAC;QAClC,OAAO,MAAM,EAAE;YACd,IAAI,YAAY,KAAK,MAAM,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACZ;YACD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAC,WAAW,CAAC,KAAY,EAAE,KAAY;QACnD,IAAI,KAAK,KAAK,KAAK,EAAE;YACpB,OAAO,KAAK,CAAC;SACb;QAED,IAAI,OAAO,GAAU,KAAK,CAAC;QAE3B,OAAO,OAAO,EAAE;YACf,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAElC,IAAI,OAAO,KAAK,KAAK,EAAE;gBACtB,OAAO,IAAI,CAAC;aACZ;SACD;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,aAAa,CAAC,IAAW;QACtC,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACtB,KAAK,sBAAY,CAAC,gBAAgB;gBACjC,OAAO,CAAC,CAAC;YAEV,KAAK,sBAAY,CAAC,QAAQ,CAAC;YAC3B,KAAK,sBAAY,CAAC,yBAAyB,CAAC;YAC5C,KAAK,sBAAY,CAAC,WAAW;gBAC5B,OAA0B,IAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAE7C;gBACC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;SAC/B;IACF,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,SAAS,CAAC,IAAW,EAAE,IAAY;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,IAAI,UAAU,EAAE;YACf,OAAO,UAAU,CAAC;SAClB;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,OAAO,OAAO,EAAE;YACf,IAAI,OAAO,KAAK,IAAI,EAAE;gBACrB,OAAO,IAAI,CAAC;aACZ;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAExC,IAAI,WAAW,EAAE;gBAChB,OAAO,WAAW,CAAC;aACnB;YAED,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;SAC7B;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAAW;QAC1C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACjC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;SACvB;QAED,IAAI,CAAC,IAAI,EAAE;YACV,OAAO,IAAI,CAAC;SACZ;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;CACD;AAlID,8BAkIC"}
|