happy-dom 9.9.2 → 9.10.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.

Files changed (43) hide show
  1. package/lib/css/declaration/utilities/CSSStyleDeclarationElementStyle.js +1 -1
  2. package/lib/css/declaration/utilities/CSSStyleDeclarationElementStyle.js.map +1 -1
  3. package/lib/nodes/element/Element.d.ts.map +1 -1
  4. package/lib/nodes/element/Element.js +2 -15
  5. package/lib/nodes/element/Element.js.map +1 -1
  6. package/lib/nodes/node/Node.d.ts +0 -8
  7. package/lib/nodes/node/Node.d.ts.map +1 -1
  8. package/lib/nodes/node/Node.js +1 -23
  9. package/lib/nodes/node/Node.js.map +1 -1
  10. package/lib/query-selector/ISelectorAttribute.d.ts +6 -0
  11. package/lib/query-selector/ISelectorAttribute.d.ts.map +1 -0
  12. package/lib/query-selector/ISelectorAttribute.js +3 -0
  13. package/lib/query-selector/ISelectorAttribute.js.map +1 -0
  14. package/lib/query-selector/ISelectorMatch.d.ts +4 -0
  15. package/lib/query-selector/ISelectorMatch.d.ts.map +1 -0
  16. package/lib/query-selector/ISelectorMatch.js +3 -0
  17. package/lib/query-selector/ISelectorMatch.js.map +1 -0
  18. package/lib/query-selector/QuerySelector.d.ts +21 -31
  19. package/lib/query-selector/QuerySelector.d.ts.map +1 -1
  20. package/lib/query-selector/QuerySelector.js +123 -131
  21. package/lib/query-selector/QuerySelector.js.map +1 -1
  22. package/lib/query-selector/SelectorCombinatorEnum.d.ts +7 -0
  23. package/lib/query-selector/SelectorCombinatorEnum.d.ts.map +1 -0
  24. package/lib/query-selector/SelectorCombinatorEnum.js +10 -0
  25. package/lib/query-selector/SelectorCombinatorEnum.js.map +1 -0
  26. package/lib/query-selector/SelectorItem.d.ts +41 -56
  27. package/lib/query-selector/SelectorItem.d.ts.map +1 -1
  28. package/lib/query-selector/SelectorItem.js +194 -220
  29. package/lib/query-selector/SelectorItem.js.map +1 -1
  30. package/lib/query-selector/SelectorParser.d.ts +21 -0
  31. package/lib/query-selector/SelectorParser.d.ts.map +1 -0
  32. package/lib/query-selector/SelectorParser.js +154 -0
  33. package/lib/query-selector/SelectorParser.js.map +1 -0
  34. package/package.json +1 -1
  35. package/src/css/declaration/utilities/CSSStyleDeclarationElementStyle.ts +2 -2
  36. package/src/nodes/element/Element.ts +3 -17
  37. package/src/nodes/node/Node.ts +1 -25
  38. package/src/query-selector/ISelectorAttribute.ts +5 -0
  39. package/src/query-selector/ISelectorMatch.ts +3 -0
  40. package/src/query-selector/QuerySelector.ts +187 -170
  41. package/src/query-selector/SelectorCombinatorEnum.ts +7 -0
  42. package/src/query-selector/SelectorItem.ts +238 -264
  43. package/src/query-selector/SelectorParser.ts +148 -0
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const Node_1 = __importDefault(require("../nodes/node/Node"));
7
- const SelectorItem_1 = __importDefault(require("./SelectorItem"));
8
6
  const NodeList_1 = __importDefault(require("../nodes/node/NodeList"));
9
- const SELECTOR_PART_REGEXP = /(\[[^\]]+\]|[a-zA-Z0-9-_.#"*:()\]]+)|([ ,>]+)/g;
7
+ const NodeTypeEnum_1 = __importDefault(require("../nodes/node/NodeTypeEnum"));
8
+ const SelectorCombinatorEnum_1 = __importDefault(require("./SelectorCombinatorEnum"));
9
+ const SelectorParser_1 = __importDefault(require("./SelectorParser"));
10
10
  /**
11
11
  * Utility for query selection in an HTML element.
12
12
  *
@@ -21,21 +21,24 @@ class QuerySelector {
21
21
  * @returns HTML elements.
22
22
  */
23
23
  static querySelectorAll(node, selector) {
24
- const matches = new NodeList_1.default();
24
+ const nodeList = new NodeList_1.default();
25
+ const allMatches = {};
25
26
  if (selector === '') {
26
27
  throw new Error("Failed to execute 'querySelectorAll' on 'Element': The provided selector is empty.");
27
28
  }
28
29
  if (selector === null || selector === undefined) {
29
- return matches;
30
+ return nodeList;
30
31
  }
31
- for (const parts of this.getSelectorParts(selector)) {
32
- for (const element of this.findAll(node, [node], parts)) {
33
- if (!matches.includes(element)) {
34
- matches.push(element);
35
- }
36
- }
32
+ for (const items of SelectorParser_1.default.getSelectorGroups(selector)) {
33
+ const matches = node.nodeType === NodeTypeEnum_1.default.elementNode
34
+ ? this.findAll(node, [node], items)
35
+ : this.findAll(null, node.children, items);
36
+ Object.assign(allMatches, matches);
37
+ }
38
+ for (const key of Object.keys(allMatches).sort()) {
39
+ nodeList.push(allMatches[key]);
37
40
  }
38
- return matches;
41
+ return nodeList;
39
42
  }
40
43
  /**
41
44
  * Finds an element based on a query selector.
@@ -51,8 +54,10 @@ class QuerySelector {
51
54
  if (selector === null || selector === undefined) {
52
55
  return null;
53
56
  }
54
- for (const parts of this.getSelectorParts(selector)) {
55
- const match = this.findFirst(node, [node], parts);
57
+ for (const items of SelectorParser_1.default.getSelectorGroups(selector)) {
58
+ const match = node.nodeType === NodeTypeEnum_1.default.elementNode
59
+ ? this.findFirst(node, [node], items)
60
+ : this.findFirst(null, node.children, items);
56
61
  if (match) {
57
62
  return match;
58
63
  }
@@ -60,85 +65,104 @@ class QuerySelector {
60
65
  return null;
61
66
  }
62
67
  /**
63
- * Checks if a node matches a selector and returns priority weight.
68
+ * Checks if an element matches a selector and returns priority weight.
64
69
  *
65
- * @param node Node to search in.
66
- * @param selector Selector.
70
+ * @param element Element to match.
71
+ * @param selector Selector to match with.
67
72
  * @returns Result.
68
73
  */
69
- static match(node, selector) {
70
- for (const parts of this.getSelectorParts(selector)) {
71
- const result = this.matchesSelector(node, node, parts.reverse());
72
- if (result.matches) {
74
+ static match(element, selector) {
75
+ for (const items of SelectorParser_1.default.getSelectorGroups(selector)) {
76
+ const result = this.matchSelector(element, element, items.reverse());
77
+ if (result) {
73
78
  return result;
74
79
  }
75
80
  }
76
- return { priorityWeight: 0, matches: false };
81
+ return null;
77
82
  }
78
83
  /**
79
84
  * Checks if a node matches a selector.
80
85
  *
81
- * @param targetNode Target node.
82
- * @param currentNode Current node.
83
- * @param selectorParts Selector parts.
86
+ * @param targetElement Target element.
87
+ * @param currentElement Current element.
88
+ * @param selectorItems Selector items.
84
89
  * @param [priorityWeight] Priority weight.
85
90
  * @returns Result.
86
91
  */
87
- static matchesSelector(targetNode, currentNode, selectorParts, priorityWeight = 0) {
88
- const isDirectChild = selectorParts[0] === '>';
89
- if (isDirectChild) {
90
- selectorParts = selectorParts.slice(1);
91
- if (selectorParts.length === 0) {
92
- return { priorityWeight: 0, matches: false };
92
+ static matchSelector(targetElement, currentElement, selectorItems, priorityWeight = 0) {
93
+ const selectorItem = selectorItems[0];
94
+ const result = selectorItem.match(currentElement);
95
+ if (result) {
96
+ if (selectorItems.length === 1) {
97
+ return {
98
+ priorityWeight: priorityWeight + result.priorityWeight
99
+ };
100
+ }
101
+ switch (selectorItem.combinator) {
102
+ case SelectorCombinatorEnum_1.default.adjacentSibling:
103
+ if (currentElement.previousElementSibling) {
104
+ const match = this.matchSelector(targetElement, currentElement.previousElementSibling, selectorItems.slice(1), priorityWeight + result.priorityWeight);
105
+ if (match) {
106
+ return match;
107
+ }
108
+ }
109
+ break;
110
+ case SelectorCombinatorEnum_1.default.child:
111
+ case SelectorCombinatorEnum_1.default.descendant:
112
+ if (currentElement.parentElement) {
113
+ const match = this.matchSelector(targetElement, currentElement.parentElement, selectorItems.slice(1), priorityWeight + result.priorityWeight);
114
+ if (match) {
115
+ return match;
116
+ }
117
+ }
118
+ break;
93
119
  }
94
120
  }
95
- if (selectorParts.length === 0) {
96
- return { priorityWeight, matches: true };
97
- }
98
- const selector = new SelectorItem_1.default(selectorParts[0]);
99
- const result = selector.match(currentNode);
100
- if (result.matches && selectorParts.length === 1) {
101
- return {
102
- priorityWeight: priorityWeight + result.priorityWeight,
103
- matches: true
104
- };
105
- }
106
- if (!currentNode.parentElement || (targetNode === currentNode && !result.matches)) {
107
- return { priorityWeight: 0, matches: false };
121
+ if (selectorItem.combinator === SelectorCombinatorEnum_1.default.descendant &&
122
+ targetElement !== currentElement &&
123
+ currentElement.parentElement) {
124
+ return this.matchSelector(targetElement, currentElement.parentElement, selectorItems, priorityWeight);
108
125
  }
109
- return this.matchesSelector(isDirectChild ? currentNode.parentElement : targetNode, currentNode.parentElement, result.matches ? selectorParts.slice(1) : selectorParts, priorityWeight + result.priorityWeight);
126
+ return null;
110
127
  }
111
128
  /**
112
129
  * Finds elements based on a query selector for a part of a list of selectors separated with comma.
113
130
  *
114
- * @param rootNode Root node.
115
- * @param nodes Nodes.
116
- * @param selectorParts Selector parts.
117
- * @param [selectorItem] Selector item.
118
- * @returns HTML elements.
131
+ * @param rootElement Root element.
132
+ * @param children Child elements.
133
+ * @param selectorItems Selector items.
134
+ * @param [documentPosition] Document position of the element.
135
+ * @returns Document position and element map.
119
136
  */
120
- static findAll(rootNode, nodes, selectorParts, selectorItem) {
121
- const isDirectChild = selectorParts[0] === '>';
122
- if (isDirectChild) {
123
- selectorParts = selectorParts.slice(1);
124
- }
125
- const selector = selectorItem || new SelectorItem_1.default(selectorParts[0]);
126
- let matched = [];
127
- for (const node of nodes) {
128
- if (node.nodeType === Node_1.default.ELEMENT_NODE) {
129
- if (selector.match(node).matches) {
130
- if (selectorParts.length === 1) {
131
- if (rootNode !== node) {
132
- matched.push(node);
133
- }
137
+ static findAll(rootElement, children, selectorItems, documentPosition) {
138
+ const selectorItem = selectorItems[0];
139
+ const nextSelectorItem = selectorItems[1];
140
+ const matched = {};
141
+ for (let i = 0, max = children.length; i < max; i++) {
142
+ const child = children[i];
143
+ const position = (documentPosition ? documentPosition + '>' : '') + i;
144
+ if (selectorItem.match(child)) {
145
+ if (!nextSelectorItem) {
146
+ if (rootElement !== child) {
147
+ matched[position] = child;
134
148
  }
135
- else {
136
- matched = matched.concat(this.findAll(rootNode, node.children, selectorParts.slice(1), null));
149
+ }
150
+ else {
151
+ switch (nextSelectorItem.combinator) {
152
+ case SelectorCombinatorEnum_1.default.adjacentSibling:
153
+ if (child.nextElementSibling) {
154
+ Object.assign(matched, this.findAll(rootElement, [child.nextElementSibling], selectorItems.slice(1), position));
155
+ }
156
+ break;
157
+ case SelectorCombinatorEnum_1.default.descendant:
158
+ case SelectorCombinatorEnum_1.default.child:
159
+ Object.assign(matched, this.findAll(rootElement, child.children, selectorItems.slice(1), position));
160
+ break;
137
161
  }
138
162
  }
139
163
  }
140
- if (!isDirectChild && node['children']) {
141
- matched = matched.concat(this.findAll(rootNode, node['children'], selectorParts, selector));
164
+ if (selectorItem.combinator === SelectorCombinatorEnum_1.default.descendant && child.children.length) {
165
+ Object.assign(matched, this.findAll(rootElement, child.children, selectorItems, position));
142
166
  }
143
167
  }
144
168
  return matched;
@@ -146,82 +170,50 @@ class QuerySelector {
146
170
  /**
147
171
  * Finds an element based on a query selector for a part of a list of selectors separated with comma.
148
172
  *
149
- * @param rootNode
150
- * @param nodes Nodes.
151
- * @param selector Selector.
152
- * @param selectorParts
153
- * @param [selectorItem] Selector item.
173
+ * @param rootElement Root element.
174
+ * @param children Child elements.
175
+ * @param selectorItems Selector items.
154
176
  * @returns HTML element.
155
177
  */
156
- static findFirst(rootNode, nodes, selectorParts, selectorItem) {
157
- const isDirectChild = selectorParts[0] === '>';
158
- if (isDirectChild) {
159
- selectorParts = selectorParts.slice(1);
160
- }
161
- const selector = selectorItem || new SelectorItem_1.default(selectorParts[0]);
162
- for (const node of nodes) {
163
- if (node.nodeType === Node_1.default.ELEMENT_NODE && selector.match(node).matches) {
164
- if (selectorParts.length === 1) {
165
- if (rootNode !== node) {
166
- return node;
178
+ static findFirst(rootElement, children, selectorItems) {
179
+ const selectorItem = selectorItems[0];
180
+ const nextSelectorItem = selectorItems[1];
181
+ for (const child of children) {
182
+ if (selectorItem.match(child)) {
183
+ if (!nextSelectorItem) {
184
+ if (rootElement !== child) {
185
+ return child;
167
186
  }
168
187
  }
169
188
  else {
170
- const childSelector = this.findFirst(rootNode, node.children, selectorParts.slice(1), null);
171
- if (childSelector) {
172
- return childSelector;
189
+ switch (nextSelectorItem.combinator) {
190
+ case SelectorCombinatorEnum_1.default.adjacentSibling:
191
+ if (child.nextElementSibling) {
192
+ const match = this.findFirst(rootElement, [child.nextElementSibling], selectorItems.slice(1));
193
+ if (match) {
194
+ return match;
195
+ }
196
+ }
197
+ break;
198
+ case SelectorCombinatorEnum_1.default.descendant:
199
+ case SelectorCombinatorEnum_1.default.child:
200
+ const match = this.findFirst(rootElement, child.children, selectorItems.slice(1));
201
+ if (match) {
202
+ return match;
203
+ }
204
+ break;
173
205
  }
174
206
  }
175
207
  }
176
- if (!isDirectChild && node['children']) {
177
- const childSelector = this.findFirst(rootNode, node['children'], selectorParts, selector);
178
- if (childSelector) {
179
- return childSelector;
208
+ if (selectorItem.combinator === SelectorCombinatorEnum_1.default.descendant && child.children.length) {
209
+ const match = this.findFirst(rootElement, child.children, selectorItems);
210
+ if (match) {
211
+ return match;
180
212
  }
181
213
  }
182
214
  }
183
215
  return null;
184
216
  }
185
- /**
186
- * Splits a selector string into groups and parts.
187
- *
188
- * @param selector Selector.
189
- * @returns HTML element.
190
- */
191
- static getSelectorParts(selector) {
192
- if (selector === '*' || (!selector.includes(',') && !selector.includes(' '))) {
193
- return [[selector]];
194
- }
195
- const regexp = new RegExp(SELECTOR_PART_REGEXP);
196
- const groups = [];
197
- let currentSelector = '';
198
- let parts = [];
199
- let match;
200
- while ((match = regexp.exec(selector))) {
201
- if (match[2]) {
202
- const trimmed = match[2].trim();
203
- parts.push(currentSelector);
204
- currentSelector = '';
205
- if (trimmed === ',') {
206
- groups.push(parts);
207
- parts = [];
208
- }
209
- else if (trimmed === '>') {
210
- parts.push('>');
211
- }
212
- }
213
- else if (match[1]) {
214
- currentSelector += match[1];
215
- }
216
- }
217
- if (currentSelector !== '') {
218
- parts.push(currentSelector);
219
- }
220
- if (parts.length > 0) {
221
- groups.push(parts);
222
- }
223
- return groups;
224
- }
225
217
  }
226
218
  exports.default = QuerySelector;
227
219
  //# sourceMappingURL=QuerySelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuerySelector.js","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QuerySelector.js","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":";;;;;AAGA,sEAA8C;AAC9C,8EAAsD;AACtD,sFAA8D;AAG9D,sEAA8C;AAG9C;;;;GAIG;AACH,MAAqB,aAAa;IACjC;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAC7B,IAA8C,EAC9C,QAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAY,CAAC;QAC1C,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,QAAQ,KAAK,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CACd,oFAAoF,CACpF,CAAC;SACF;QAED,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;YAChD,OAAO,QAAQ,CAAC;SAChB;QAED,KAAK,MAAM,KAAK,IAAI,wBAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/D,MAAM,OAAO,GACZ,IAAI,CAAC,QAAQ,KAAK,sBAAY,CAAC,WAAW;gBACzC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAW,IAAI,EAAE,CAAW,IAAI,CAAC,EAAE,KAAK,CAAC;gBACvD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;SACnC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/B;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,aAAa,CAC1B,IAA8C,EAC9C,QAAgB;QAEhB,IAAI,QAAQ,KAAK,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CACd,iFAAiF,CACjF,CAAC;SACF;QAED,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;YAChD,OAAO,IAAI,CAAC;SACZ;QAED,KAAK,MAAM,KAAK,IAAI,wBAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/D,MAAM,KAAK,GACV,IAAI,CAAC,QAAQ,KAAK,sBAAY,CAAC,WAAW;gBACzC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAW,IAAI,EAAE,CAAW,IAAI,CAAC,EAAE,KAAK,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAE/C,IAAI,KAAK,EAAE;gBACV,OAAO,KAAK,CAAC;aACb;SACD;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,QAAgB;QACtD,KAAK,MAAM,KAAK,IAAI,wBAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAErE,IAAI,MAAM,EAAE;gBACX,OAAO,MAAM,CAAC;aACd;SACD;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,aAAa,CAC3B,aAAuB,EACvB,cAAwB,EACxB,aAA6B,EAC7B,cAAc,GAAG,CAAC;QAElB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,MAAM,EAAE;YACX,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,OAAO;oBACN,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC,cAAc;iBACtD,CAAC;aACF;YAED,QAAQ,YAAY,CAAC,UAAU,EAAE;gBAChC,KAAK,gCAAsB,CAAC,eAAe;oBAC1C,IAAI,cAAc,CAAC,sBAAsB,EAAE;wBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAC/B,aAAa,EACb,cAAc,CAAC,sBAAsB,EACrC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EACtB,cAAc,GAAG,MAAM,CAAC,cAAc,CACtC,CAAC;wBAEF,IAAI,KAAK,EAAE;4BACV,OAAO,KAAK,CAAC;yBACb;qBACD;oBACD,MAAM;gBACP,KAAK,gCAAsB,CAAC,KAAK,CAAC;gBAClC,KAAK,gCAAsB,CAAC,UAAU;oBACrC,IAAI,cAAc,CAAC,aAAa,EAAE;wBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAC/B,aAAa,EACb,cAAc,CAAC,aAAa,EAC5B,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EACtB,cAAc,GAAG,MAAM,CAAC,cAAc,CACtC,CAAC;wBACF,IAAI,KAAK,EAAE;4BACV,OAAO,KAAK,CAAC;yBACb;qBACD;oBACD,MAAM;aACP;SACD;QAED,IACC,YAAY,CAAC,UAAU,KAAK,gCAAsB,CAAC,UAAU;YAC7D,aAAa,KAAK,cAAc;YAChC,cAAc,CAAC,aAAa,EAC3B;YACD,OAAO,IAAI,CAAC,aAAa,CACxB,aAAa,EACb,cAAc,CAAC,aAAa,EAC5B,aAAa,EACb,cAAc,CACd,CAAC;SACF;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,OAAO,CACrB,WAAqB,EACrB,QAAoB,EACpB,aAA6B,EAC7B,gBAAyB;QAEzB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,OAAO,GAA6C,EAAE,CAAC;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAEtE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,gBAAgB,EAAE;oBACtB,IAAI,WAAW,KAAK,KAAK,EAAE;wBAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;qBAC1B;iBACD;qBAAM;oBACN,QAAQ,gBAAgB,CAAC,UAAU,EAAE;wBACpC,KAAK,gCAAsB,CAAC,eAAe;4BAC1C,IAAI,KAAK,CAAC,kBAAkB,EAAE;gCAC7B,MAAM,CAAC,MAAM,CACZ,OAAO,EACP,IAAI,CAAC,OAAO,CACX,WAAW,EACX,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAC1B,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EACtB,QAAQ,CACR,CACD,CAAC;6BACF;4BACD,MAAM;wBACP,KAAK,gCAAsB,CAAC,UAAU,CAAC;wBACvC,KAAK,gCAAsB,CAAC,KAAK;4BAChC,MAAM,CAAC,MAAM,CACZ,OAAO,EACP,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAC3E,CAAC;4BACF,MAAM;qBACP;iBACD;aACD;YAED,IAAI,YAAY,CAAC,UAAU,KAAK,gCAAsB,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC3F,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC3F;SACD;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,SAAS,CACvB,WAAqB,EACrB,QAAoB,EACpB,aAA6B;QAE7B,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC7B,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,gBAAgB,EAAE;oBACtB,IAAI,WAAW,KAAK,KAAK,EAAE;wBAC1B,OAAO,KAAK,CAAC;qBACb;iBACD;qBAAM;oBACN,QAAQ,gBAAgB,CAAC,UAAU,EAAE;wBACpC,KAAK,gCAAsB,CAAC,eAAe;4BAC1C,IAAI,KAAK,CAAC,kBAAkB,EAAE;gCAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAC3B,WAAW,EACX,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAC1B,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CACtB,CAAC;gCACF,IAAI,KAAK,EAAE;oCACV,OAAO,KAAK,CAAC;iCACb;6BACD;4BACD,MAAM;wBACP,KAAK,gCAAsB,CAAC,UAAU,CAAC;wBACvC,KAAK,gCAAsB,CAAC,KAAK;4BAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAClF,IAAI,KAAK,EAAE;gCACV,OAAO,KAAK,CAAC;6BACb;4BACD,MAAM;qBACP;iBACD;aACD;YAED,IAAI,YAAY,CAAC,UAAU,KAAK,gCAAsB,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;gBAEzE,IAAI,KAAK,EAAE;oBACV,OAAO,KAAK,CAAC;iBACb;aACD;SACD;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AA/RD,gCA+RC"}
@@ -0,0 +1,7 @@
1
+ declare enum SelectorCombinatorEnum {
2
+ descendant = "descendant",
3
+ child = "child",
4
+ adjacentSibling = "adjacentSibling"
5
+ }
6
+ export default SelectorCombinatorEnum;
7
+ //# sourceMappingURL=SelectorCombinatorEnum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectorCombinatorEnum.d.ts","sourceRoot":"","sources":["../../src/query-selector/SelectorCombinatorEnum.ts"],"names":[],"mappings":"AAAA,aAAK,sBAAsB;IAC1B,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,eAAe,oBAAoB;CACnC;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var SelectorCombinatorEnum;
4
+ (function (SelectorCombinatorEnum) {
5
+ SelectorCombinatorEnum["descendant"] = "descendant";
6
+ SelectorCombinatorEnum["child"] = "child";
7
+ SelectorCombinatorEnum["adjacentSibling"] = "adjacentSibling";
8
+ })(SelectorCombinatorEnum || (SelectorCombinatorEnum = {}));
9
+ exports.default = SelectorCombinatorEnum;
10
+ //# sourceMappingURL=SelectorCombinatorEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectorCombinatorEnum.js","sourceRoot":"","sources":["../../src/query-selector/SelectorCombinatorEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,sBAIJ;AAJD,WAAK,sBAAsB;IAC1B,mDAAyB,CAAA;IACzB,yCAAe,CAAA;IACf,6DAAmC,CAAA;AACpC,CAAC,EAJI,sBAAsB,KAAtB,sBAAsB,QAI1B;AAED,kBAAe,sBAAsB,CAAC"}
@@ -1,99 +1,84 @@
1
1
  import IElement from '../nodes/element/IElement';
2
+ import SelectorCombinatorEnum from './SelectorCombinatorEnum';
3
+ import ISelectorAttribute from './ISelectorAttribute';
4
+ import ISelectorMatch from './ISelectorMatch';
2
5
  /**
3
6
  * Selector item.
4
7
  */
5
8
  export default class SelectorItem {
6
- private isAll;
7
- private isID;
8
- private isAttribute;
9
- private isPseudo;
10
- private isClass;
11
- private isTagName;
12
- private tagName;
13
- private selector;
14
- private id;
9
+ all: string | null;
10
+ tagName: string | null;
11
+ id: string | null;
12
+ classNames: string[] | null;
13
+ attributes: ISelectorAttribute[] | null;
14
+ pseudoClass: string | null;
15
+ pseudoArguments: string | null;
16
+ combinator: SelectorCombinatorEnum;
15
17
  /**
16
18
  * Constructor.
17
19
  *
18
- * @param selector Selector.
20
+ * @param [options] Options.
21
+ * @param [options.combinator] Combinator.
22
+ * @param [options.all] All.
23
+ * @param [options.tagName] Tag name.
24
+ * @param [options.id] ID.
25
+ * @param [options.classNames] Class names.
26
+ * @param [options.attributes] Attributes.
27
+ * @param [options.pseudoClass] Pseudo class.
28
+ * @param [options.pseudoArguments] Pseudo arguments.
19
29
  */
20
- constructor(selector: string);
30
+ constructor(options?: {
31
+ all?: string;
32
+ tagName?: string;
33
+ id?: string;
34
+ classNames?: string[];
35
+ attributes?: ISelectorAttribute[];
36
+ pseudoClass?: string;
37
+ pseudoArguments?: string;
38
+ combinator?: SelectorCombinatorEnum;
39
+ });
21
40
  /**
22
41
  * Matches a selector against an element.
23
42
  *
24
43
  * @param element HTML element.
25
44
  * @returns Result.
26
45
  */
27
- match(element: IElement): {
28
- priorityWeight: number;
29
- matches: boolean;
30
- };
46
+ match(element: IElement): ISelectorMatch | null;
31
47
  /**
32
48
  * Matches a psuedo selector.
33
49
  *
34
50
  * @param element Element.
35
- * @param selector Selector.
36
- * @returns True if it is a match.
51
+ * @returns Result.
37
52
  */
38
- private matchesPsuedo;
53
+ private matchPsuedo;
39
54
  /**
40
55
  * Matches a nth-child selector.
41
56
  *
42
57
  * @param element Element.
43
- * @param psuedo Psuedo name.
44
- * @param place Place.
58
+ * @param parentChildren Parent children.
59
+ * @param placement Placement.
45
60
  * @returns True if it is a match.
46
61
  */
47
- private matchesNthChild;
48
- /**
49
- * Matches a psuedo selector expression.
50
- *
51
- * @param element Element.
52
- * @param psuedo Psuedo name.
53
- * @returns True if it is a match.
54
- */
55
- private matchesPsuedoExpression;
62
+ private matchNthChild;
56
63
  /**
57
64
  * Matches attribute.
58
65
  *
59
66
  * @param element Element.
60
- * @param selector Selector.
61
67
  * @returns Result.
62
68
  */
63
- private matchesAttribute;
69
+ private matchAttributes;
64
70
  /**
65
71
  * Matches class.
66
72
  *
67
73
  * @param element Element.
68
- * @param selector Selector.
69
74
  * @returns Result.
70
75
  */
71
- private matchesClass;
72
- /**
73
- * Matches attribute name only.
74
- *
75
- * @param element Element.
76
- * @param attributeName Attribute name.
77
- * @returns True if it is a match.
78
- */
79
- private matchesAttributeName;
80
- /** .
81
- *
82
- * Matches attribute name and value.
83
- *
84
- * @param element Element.
85
- * @param attributeName Attribute name.
86
- * @param attributeValue Attribute value.
87
- * @param [matchType] Match type.
88
- * @returns True if it is a match.
89
- */
76
+ private matchClass;
90
77
  /**
78
+ * Returns the selector string.
91
79
  *
92
- * @param element
93
- * @param attributeName
94
- * @param attributeValue
95
- * @param matchType
80
+ * @returns Selector string.
96
81
  */
97
- private matchesAttributeNameAndValue;
82
+ private getSelectorString;
98
83
  }
99
84
  //# sourceMappingURL=SelectorItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectorItem.d.ts","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AAejD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,EAAE,CAAS;IAEnB;;;;OAIG;gBACS,QAAQ,EAAE,MAAM;IAkB5B;;;;;OAKG;IACI,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IAsD7E;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA8BrB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAgDvB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAiD/B;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;;;OASG;IACH;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;CAuCpC"}
1
+ {"version":3,"file":"SelectorItem.d.ts","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AAGjD,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,sBAAsB,CAAC;IAE1C;;;;;;;;;;;;OAYG;gBACS,OAAO,CAAC,EAAE;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,sBAAsB,CAAC;KACpC;IAWD;;;;;OAKG;IACI,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI;IA6CtD;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAgGnB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAkCrB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAiEvB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAkBlB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAgBzB"}