happy-dom 5.3.3 → 6.0.0
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/ElementTag.d.ts +2 -1
- package/lib/config/ElementTag.js +2 -1
- package/lib/config/ElementTag.js.map +1 -1
- 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 +4 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/location/URL.js +1 -1
- package/lib/location/URL.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 +31 -0
- package/lib/nodes/html-dialog-element/HTMLDialogElement.js +51 -0
- package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -0
- package/lib/nodes/html-dialog-element/IHTMLDialogElement.d.ts +25 -0
- package/lib/nodes/html-dialog-element/IHTMLDialogElement.js +3 -0
- package/lib/nodes/html-dialog-element/IHTMLDialogElement.js.map +1 -0
- 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/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 +22 -0
- package/lib/window/Window.d.ts +25 -9
- package/lib/window/Window.js +85 -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/ElementTag.ts +2 -1
- 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 +7 -1
- package/src/location/URL.ts +1 -1
- 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 +47 -0
- package/src/nodes/html-dialog-element/IHTMLDialogElement.ts +29 -0
- 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/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 +24 -0
- package/src/window/Window.ts +104 -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":"Range.js","sourceRoot":"","sources":["../../src/range/Range.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var RangeHowEnum;
|
4
|
+
(function (RangeHowEnum) {
|
5
|
+
RangeHowEnum[RangeHowEnum["endToEnd"] = 2] = "endToEnd";
|
6
|
+
RangeHowEnum[RangeHowEnum["endToStart"] = 3] = "endToStart";
|
7
|
+
RangeHowEnum[RangeHowEnum["startToEnd"] = 1] = "startToEnd";
|
8
|
+
RangeHowEnum[RangeHowEnum["startToStart"] = 0] = "startToStart";
|
9
|
+
})(RangeHowEnum || (RangeHowEnum = {}));
|
10
|
+
exports.default = RangeHowEnum;
|
11
|
+
//# sourceMappingURL=RangeHowEnum.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RangeHowEnum.js","sourceRoot":"","sources":["../../src/range/RangeHowEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,YAKJ;AALD,WAAK,YAAY;IAChB,uDAAY,CAAA;IACZ,2DAAc,CAAA;IACd,2DAAc,CAAA;IACd,+DAAgB,CAAA;AACjB,CAAC,EALI,YAAY,KAAZ,YAAY,QAKhB;AAED,kBAAe,YAAY,CAAC"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import INode from '../nodes/node/INode';
|
2
|
+
import Range from './Range';
|
3
|
+
import IRangeBoundaryPoint from './IRangeBoundaryPoint';
|
4
|
+
/**
|
5
|
+
* Range utility.
|
6
|
+
*
|
7
|
+
* Based on:
|
8
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/range/boundary-point.js.
|
9
|
+
*/
|
10
|
+
export default class RangeUtility {
|
11
|
+
/**
|
12
|
+
* Compares boundary points.
|
13
|
+
*
|
14
|
+
* Based on logic from:
|
15
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/range/boundary-point.js
|
16
|
+
*
|
17
|
+
* @see https://dom.spec.whatwg.org/#concept-range-bp-after
|
18
|
+
* @param pointA Point A.
|
19
|
+
* @param pointB Point B.
|
20
|
+
* @returns A number, -1, 0, or 1, indicating whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.
|
21
|
+
*/
|
22
|
+
static compareBoundaryPointsPosition(pointA: IRangeBoundaryPoint, pointB: IRangeBoundaryPoint): number;
|
23
|
+
/**
|
24
|
+
* Validates a boundary point.
|
25
|
+
*
|
26
|
+
* @throws DOMException
|
27
|
+
* @param point Boundary point.
|
28
|
+
*/
|
29
|
+
static validateBoundaryPoint(point: IRangeBoundaryPoint): void;
|
30
|
+
/**
|
31
|
+
* Returns "true" if contained.
|
32
|
+
*
|
33
|
+
* @param node Node.
|
34
|
+
* @param range Range.
|
35
|
+
* @returns "true" if contained.
|
36
|
+
*/
|
37
|
+
static isContained(node: INode, range: Range): boolean;
|
38
|
+
/**
|
39
|
+
* Returns "true" if partially contained.
|
40
|
+
*
|
41
|
+
* @param node Node.
|
42
|
+
* @param range Range.
|
43
|
+
* @returns "true" if partially contained.
|
44
|
+
*/
|
45
|
+
static isPartiallyContained(node: INode, range: Range): boolean;
|
46
|
+
}
|
@@ -0,0 +1,92 @@
|
|
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 DOMException_1 = __importDefault(require("../exception/DOMException"));
|
7
|
+
const DOMExceptionNameEnum_1 = __importDefault(require("../exception/DOMExceptionNameEnum"));
|
8
|
+
const NodeTypeEnum_1 = __importDefault(require("../nodes/node/NodeTypeEnum"));
|
9
|
+
const NodeUtility_1 = __importDefault(require("../nodes/node/NodeUtility"));
|
10
|
+
/**
|
11
|
+
* Range utility.
|
12
|
+
*
|
13
|
+
* Based on:
|
14
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/range/boundary-point.js.
|
15
|
+
*/
|
16
|
+
class RangeUtility {
|
17
|
+
/**
|
18
|
+
* Compares boundary points.
|
19
|
+
*
|
20
|
+
* Based on logic from:
|
21
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/range/boundary-point.js
|
22
|
+
*
|
23
|
+
* @see https://dom.spec.whatwg.org/#concept-range-bp-after
|
24
|
+
* @param pointA Point A.
|
25
|
+
* @param pointB Point B.
|
26
|
+
* @returns A number, -1, 0, or 1, indicating whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.
|
27
|
+
*/
|
28
|
+
static compareBoundaryPointsPosition(pointA, pointB) {
|
29
|
+
if (pointA.node === pointB.node) {
|
30
|
+
if (pointA.offset === pointB.offset) {
|
31
|
+
return 0;
|
32
|
+
}
|
33
|
+
else if (pointA.offset < pointB.offset) {
|
34
|
+
return -1;
|
35
|
+
}
|
36
|
+
return 1;
|
37
|
+
}
|
38
|
+
if (NodeUtility_1.default.isFollowing(pointA.node, pointB.node)) {
|
39
|
+
return this.compareBoundaryPointsPosition(pointB, pointA) === -1 ? 1 : -1;
|
40
|
+
}
|
41
|
+
if (NodeUtility_1.default.isInclusiveAncestor(pointA.node, pointB.node)) {
|
42
|
+
let child = pointB.node;
|
43
|
+
while (child.parentNode !== pointA.node) {
|
44
|
+
child = child.parentNode;
|
45
|
+
}
|
46
|
+
if (child.parentNode.childNodes.indexOf(child) < pointA.offset) {
|
47
|
+
return 1;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
return -1;
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* Validates a boundary point.
|
54
|
+
*
|
55
|
+
* @throws DOMException
|
56
|
+
* @param point Boundary point.
|
57
|
+
*/
|
58
|
+
static validateBoundaryPoint(point) {
|
59
|
+
if (point.node.nodeType === NodeTypeEnum_1.default.documentTypeNode) {
|
60
|
+
throw new DOMException_1.default(`DocumentType Node can't be used as boundary point.`, DOMExceptionNameEnum_1.default.invalidNodeTypeError);
|
61
|
+
}
|
62
|
+
if (point.offset > NodeUtility_1.default.getNodeLength(point.node)) {
|
63
|
+
throw new DOMException_1.default(`Offset out of bound.`, DOMExceptionNameEnum_1.default.indexSizeError);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* Returns "true" if contained.
|
68
|
+
*
|
69
|
+
* @param node Node.
|
70
|
+
* @param range Range.
|
71
|
+
* @returns "true" if contained.
|
72
|
+
*/
|
73
|
+
static isContained(node, range) {
|
74
|
+
return (this.compareBoundaryPointsPosition({ node, offset: 0 }, { node: range.startContainer, offset: range.startOffset }) === 1 &&
|
75
|
+
this.compareBoundaryPointsPosition({ node, offset: NodeUtility_1.default.getNodeLength(node) }, { node: range.endContainer, offset: range.endOffset }) === -1);
|
76
|
+
}
|
77
|
+
/**
|
78
|
+
* Returns "true" if partially contained.
|
79
|
+
*
|
80
|
+
* @param node Node.
|
81
|
+
* @param range Range.
|
82
|
+
* @returns "true" if partially contained.
|
83
|
+
*/
|
84
|
+
static isPartiallyContained(node, range) {
|
85
|
+
return ((NodeUtility_1.default.isInclusiveAncestor(node, range.startContainer) &&
|
86
|
+
!NodeUtility_1.default.isInclusiveAncestor(node, range.endContainer)) ||
|
87
|
+
(!NodeUtility_1.default.isInclusiveAncestor(node, range.startContainer) &&
|
88
|
+
NodeUtility_1.default.isInclusiveAncestor(node, range.endContainer)));
|
89
|
+
}
|
90
|
+
}
|
91
|
+
exports.default = RangeUtility;
|
92
|
+
//# sourceMappingURL=RangeUtility.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RangeUtility.js","sourceRoot":"","sources":["../../src/range/RangeUtility.ts"],"names":[],"mappings":"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"}
|
@@ -1,95 +1,218 @@
|
|
1
|
+
import IDocument from '../nodes/document/IDocument';
|
1
2
|
import INode from '../nodes/node/INode';
|
3
|
+
import Range from '../range/Range';
|
2
4
|
/**
|
3
5
|
* Selection.
|
4
6
|
*
|
7
|
+
* Based on logic from:
|
8
|
+
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/selection/Selection-impl.js
|
9
|
+
*
|
5
10
|
* Reference:
|
6
11
|
* https://developer.mozilla.org/en-US/docs/Web/API/Selection.
|
7
12
|
*/
|
8
13
|
export default class Selection {
|
9
|
-
readonly
|
10
|
-
|
11
|
-
|
12
|
-
readonly baseOffset: number;
|
13
|
-
readonly extentNode: INode;
|
14
|
-
readonly extentOffset: number;
|
15
|
-
readonly focusNode: INode;
|
16
|
-
readonly focusOffset: number;
|
17
|
-
readonly isCollapsed: boolean;
|
18
|
-
readonly rangeCount: number;
|
19
|
-
readonly type: string;
|
14
|
+
private readonly _ownerDocument;
|
15
|
+
private _range;
|
16
|
+
private _direction;
|
20
17
|
/**
|
21
|
-
*
|
18
|
+
* Constructor.
|
22
19
|
*
|
23
|
-
* @param
|
20
|
+
* @param ownerDocument Owner document.
|
24
21
|
*/
|
25
|
-
|
22
|
+
constructor(ownerDocument: IDocument);
|
26
23
|
/**
|
27
|
-
*
|
24
|
+
* Returns range count.
|
28
25
|
*
|
29
|
-
* @
|
30
|
-
* @
|
26
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-rangecount
|
27
|
+
* @returns Range count.
|
31
28
|
*/
|
32
|
-
|
29
|
+
get rangeCount(): number;
|
33
30
|
/**
|
34
|
-
*
|
31
|
+
* Returns collapsed state.
|
32
|
+
*
|
33
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-iscollapsed
|
34
|
+
* @returns "true" if collapsed.
|
35
35
|
*/
|
36
|
-
|
36
|
+
get isCollapsed(): boolean;
|
37
37
|
/**
|
38
|
-
*
|
38
|
+
* Returns type.
|
39
|
+
*
|
40
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-type
|
41
|
+
* @returns Type.
|
39
42
|
*/
|
40
|
-
|
43
|
+
get type(): string;
|
41
44
|
/**
|
42
|
-
*
|
45
|
+
* Returns anchor node.
|
43
46
|
*
|
44
|
-
* @
|
45
|
-
* @
|
46
|
-
* @returns Always returns "true" for now.
|
47
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-anchornode
|
48
|
+
* @returns Node.
|
47
49
|
*/
|
48
|
-
|
50
|
+
get anchorNode(): INode;
|
49
51
|
/**
|
50
|
-
*
|
52
|
+
* Returns anchor offset.
|
53
|
+
*
|
54
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-anchoroffset
|
55
|
+
* @returns Node.
|
51
56
|
*/
|
52
|
-
|
57
|
+
get anchorOffset(): number;
|
53
58
|
/**
|
54
|
-
*
|
59
|
+
* Returns anchor node.
|
55
60
|
*
|
56
|
-
* @
|
57
|
-
* @
|
61
|
+
* @deprecated
|
62
|
+
* @alias anchorNode
|
63
|
+
* @returns Node.
|
58
64
|
*/
|
59
|
-
|
65
|
+
get baseNode(): INode;
|
60
66
|
/**
|
61
|
-
*
|
67
|
+
* Returns anchor offset.
|
68
|
+
*
|
69
|
+
* @deprecated
|
70
|
+
* @alias anchorOffset
|
71
|
+
* @returns Node.
|
72
|
+
*/
|
73
|
+
get baseOffset(): number;
|
74
|
+
/**
|
75
|
+
* Returns focus node.
|
62
76
|
*
|
63
|
-
* @
|
77
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-focusnode
|
78
|
+
* @returns Node.
|
64
79
|
*/
|
65
|
-
|
80
|
+
get focusNode(): INode;
|
81
|
+
/**
|
82
|
+
* Returns focus offset.
|
83
|
+
*
|
84
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-focusoffset
|
85
|
+
* @returns Node.
|
86
|
+
*/
|
87
|
+
get focusOffset(): number;
|
88
|
+
/**
|
89
|
+
* Returns focus node.
|
90
|
+
*
|
91
|
+
* @deprecated
|
92
|
+
* @alias focusNode
|
93
|
+
* @returns Node.
|
94
|
+
*/
|
95
|
+
get extentNode(): INode;
|
96
|
+
/**
|
97
|
+
* Returns focus offset.
|
98
|
+
*
|
99
|
+
* @deprecated
|
100
|
+
* @alias focusOffset
|
101
|
+
* @returns Node.
|
102
|
+
*/
|
103
|
+
get extentOffset(): number;
|
104
|
+
/**
|
105
|
+
* Adds a range.
|
106
|
+
*
|
107
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-addrange
|
108
|
+
* @param newRange Range.
|
109
|
+
*/
|
110
|
+
addRange(newRange: Range): void;
|
111
|
+
/**
|
112
|
+
* Returns Range.
|
113
|
+
*
|
114
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-getrangeat
|
115
|
+
* @param index Index.
|
116
|
+
* @returns Range.
|
117
|
+
*/
|
118
|
+
getRangeAt(index: number): Range;
|
66
119
|
/**
|
67
120
|
* Removes a range from a selection.
|
68
121
|
*
|
69
|
-
* @
|
122
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-removerange
|
123
|
+
* @param range Range.
|
70
124
|
*/
|
71
|
-
removeRange(
|
125
|
+
removeRange(range: Range): void;
|
72
126
|
/**
|
73
127
|
* Removes all ranges.
|
74
128
|
*/
|
75
129
|
removeAllRanges(): void;
|
130
|
+
/**
|
131
|
+
* Removes all ranges.
|
132
|
+
*
|
133
|
+
* @alias removeAllRanges()
|
134
|
+
*/
|
135
|
+
empty(): void;
|
136
|
+
/**
|
137
|
+
* Collapses the current selection to a single point.
|
138
|
+
*
|
139
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-collapse
|
140
|
+
* @param node Node.
|
141
|
+
* @param offset Offset.
|
142
|
+
*/
|
143
|
+
collapse(node: INode, offset: number): void;
|
144
|
+
/**
|
145
|
+
* Collapses the current selection to a single point.
|
146
|
+
*
|
147
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-setposition
|
148
|
+
* @alias collapse()
|
149
|
+
* @param node Node.
|
150
|
+
* @param offset Offset.
|
151
|
+
*/
|
152
|
+
setPosition(node: INode, offset: number): void;
|
153
|
+
/**
|
154
|
+
* Collapses the selection to the end.
|
155
|
+
*
|
156
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-collapsetoend
|
157
|
+
*/
|
158
|
+
collapseToEnd(): void;
|
159
|
+
/**
|
160
|
+
* Collapses the selection to the start.
|
161
|
+
*
|
162
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-collapsetostart
|
163
|
+
*/
|
164
|
+
collapseToStart(): void;
|
165
|
+
/**
|
166
|
+
* Indicates whether a specified node is part of the selection.
|
167
|
+
*
|
168
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-containsnode
|
169
|
+
* @param node Node.
|
170
|
+
* @param [allowPartialContainment] Set to "true" to allow partial containment.
|
171
|
+
* @returns Always returns "true" for now.
|
172
|
+
*/
|
173
|
+
containsNode(node: INode, allowPartialContainment?: boolean): boolean;
|
174
|
+
/**
|
175
|
+
* Deletes the selected text from the document's DOM.
|
176
|
+
*
|
177
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-deletefromdocument
|
178
|
+
*/
|
179
|
+
deleteFromDocument(): void;
|
180
|
+
/**
|
181
|
+
* Moves the focus of the selection to a specified point.
|
182
|
+
*
|
183
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-extend
|
184
|
+
* @param node Node.
|
185
|
+
* @param offset Offset.
|
186
|
+
*/
|
187
|
+
extend(node: INode, offset: number): void;
|
76
188
|
/**
|
77
189
|
* Selects all children.
|
78
190
|
*
|
191
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-selectallchildren
|
192
|
+
* @param node
|
79
193
|
* @param _parentNode Parent node.
|
80
194
|
*/
|
81
|
-
selectAllChildren(
|
195
|
+
selectAllChildren(node: INode): void;
|
82
196
|
/**
|
83
197
|
* Sets the selection to be a range including all or parts of two specified DOM nodes, and any content located between them.
|
84
198
|
*
|
85
|
-
* @
|
86
|
-
* @param
|
87
|
-
* @param
|
88
|
-
* @param
|
199
|
+
* @see https://w3c.github.io/selection-api/#dom-selection-setbaseandextent
|
200
|
+
* @param anchorNode Anchor node.
|
201
|
+
* @param anchorOffset Anchor offset.
|
202
|
+
* @param focusNode Focus node.
|
203
|
+
* @param focusOffset Focus offset.
|
89
204
|
*/
|
90
|
-
setBaseAndExtent(
|
205
|
+
setBaseAndExtent(anchorNode: INode, anchorOffset: number, focusNode: INode, focusOffset: number): void;
|
91
206
|
/**
|
92
207
|
* Returns string currently being represented by the selection object.
|
208
|
+
*
|
209
|
+
* @returns Selection as string.
|
93
210
|
*/
|
94
211
|
toString(): string;
|
212
|
+
/**
|
213
|
+
* Sets the current range.
|
214
|
+
*
|
215
|
+
* @param range Range.
|
216
|
+
*/
|
217
|
+
protected _associateRange(range: Range): void;
|
95
218
|
}
|