happy-dom 9.10.2 → 9.10.4

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 (32) hide show
  1. package/lib/nodes/element/Element.d.ts +12 -0
  2. package/lib/nodes/element/Element.d.ts.map +1 -1
  3. package/lib/nodes/element/Element.js +16 -0
  4. package/lib/nodes/element/Element.js.map +1 -1
  5. package/lib/nodes/element/IElement.d.ts +1 -0
  6. package/lib/nodes/element/IElement.d.ts.map +1 -1
  7. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +6 -0
  8. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  9. package/lib/nodes/html-input-element/HTMLInputElement.js +19 -11
  10. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  11. package/lib/query-selector/ISelectorPseudo.d.ts +5 -0
  12. package/lib/query-selector/ISelectorPseudo.d.ts.map +1 -0
  13. package/lib/query-selector/ISelectorPseudo.js +3 -0
  14. package/lib/query-selector/ISelectorPseudo.js.map +1 -0
  15. package/lib/query-selector/QuerySelector.d.ts.map +1 -1
  16. package/lib/query-selector/QuerySelector.js +5 -0
  17. package/lib/query-selector/QuerySelector.js.map +1 -1
  18. package/lib/query-selector/SelectorItem.d.ts +4 -9
  19. package/lib/query-selector/SelectorItem.d.ts.map +1 -1
  20. package/lib/query-selector/SelectorItem.js +84 -78
  21. package/lib/query-selector/SelectorItem.js.map +1 -1
  22. package/lib/query-selector/SelectorParser.d.ts.map +1 -1
  23. package/lib/query-selector/SelectorParser.js +37 -14
  24. package/lib/query-selector/SelectorParser.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/nodes/element/Element.ts +18 -0
  27. package/src/nodes/element/IElement.ts +1 -0
  28. package/src/nodes/html-input-element/HTMLInputElement.ts +22 -13
  29. package/src/query-selector/ISelectorPseudo.ts +4 -0
  30. package/src/query-selector/QuerySelector.ts +6 -0
  31. package/src/query-selector/SelectorItem.ts +99 -92
  32. package/src/query-selector/SelectorParser.ts +37 -14
@@ -15,22 +15,18 @@ class SelectorItem {
15
15
  *
16
16
  * @param [options] Options.
17
17
  * @param [options.combinator] Combinator.
18
- * @param [options.all] All.
19
18
  * @param [options.tagName] Tag name.
20
19
  * @param [options.id] ID.
21
20
  * @param [options.classNames] Class names.
22
21
  * @param [options.attributes] Attributes.
23
- * @param [options.pseudoClass] Pseudo class.
24
- * @param [options.pseudoArguments] Pseudo arguments.
22
+ * @param [options.pseudos] Pseudos.
25
23
  */
26
24
  constructor(options) {
27
- this.all = options?.all || null;
28
25
  this.tagName = options?.tagName || null;
29
26
  this.id = options?.id || null;
30
27
  this.classNames = options?.classNames || null;
31
28
  this.attributes = options?.attributes || null;
32
- this.pseudoClass = options?.pseudoClass || null;
33
- this.pseudoArguments = options?.pseudoArguments || null;
29
+ this.pseudos = options?.pseudos || null;
34
30
  this.combinator = options?.combinator || SelectorCombinatorEnum_1.default.descendant;
35
31
  }
36
32
  /**
@@ -43,7 +39,7 @@ class SelectorItem {
43
39
  let priorityWeight = 0;
44
40
  // Tag name match
45
41
  if (this.tagName) {
46
- if (this.tagName !== element.tagName) {
42
+ if (this.tagName !== '*' && this.tagName !== element.tagName) {
47
43
  return null;
48
44
  }
49
45
  priorityWeight += 1;
@@ -72,7 +68,7 @@ class SelectorItem {
72
68
  priorityWeight += result.priorityWeight;
73
69
  }
74
70
  // Pseudo match
75
- if (this.pseudoClass && !this.matchPsuedo(element)) {
71
+ if (this.pseudos && !this.matchPsuedo(element)) {
76
72
  return null;
77
73
  }
78
74
  return { priorityWeight };
@@ -85,87 +81,93 @@ class SelectorItem {
85
81
  */
86
82
  matchPsuedo(element) {
87
83
  const parent = element.parentNode;
88
- // Validation
89
- switch (this.pseudoClass) {
90
- case 'not':
91
- case 'nth-child':
92
- case 'nth-of-type':
93
- case 'nth-last-child':
94
- case 'nth-last-of-type':
95
- if (!this.pseudoArguments) {
96
- throw new DOMException_1.default(`The selector "${this.getSelectorString()}" is not valid.`);
97
- }
98
- break;
84
+ if (!this.pseudos) {
85
+ return true;
99
86
  }
100
- // Check if parent exists
101
- if (!parent) {
102
- switch (this.pseudoClass) {
87
+ for (const psuedo of this.pseudos) {
88
+ // Validation
89
+ switch (psuedo.name) {
90
+ case 'not':
91
+ case 'nth-child':
92
+ case 'nth-of-type':
93
+ case 'nth-last-child':
94
+ case 'nth-last-of-type':
95
+ if (!psuedo.arguments) {
96
+ throw new DOMException_1.default(`The selector "${this.getSelectorString()}" is not valid.`);
97
+ }
98
+ break;
99
+ }
100
+ // Check if parent exists
101
+ if (!parent) {
102
+ switch (psuedo.name) {
103
+ case 'first-child':
104
+ case 'last-child':
105
+ case 'only-child':
106
+ case 'first-of-type':
107
+ case 'last-of-type':
108
+ case 'only-of-type':
109
+ case 'nth-child':
110
+ case 'nth-of-type':
111
+ case 'nth-last-child':
112
+ case 'nth-last-of-type':
113
+ return false;
114
+ }
115
+ }
116
+ switch (psuedo.name) {
103
117
  case 'first-child':
118
+ return parent.children[0] === element;
104
119
  case 'last-child':
120
+ return parent.children.length && parent.children[parent.children.length - 1] === element;
105
121
  case 'only-child':
122
+ return parent.children.length === 1 && parent.children[0] === element;
106
123
  case 'first-of-type':
124
+ for (const child of parent.children) {
125
+ if (child.tagName === element.tagName) {
126
+ return child === element;
127
+ }
128
+ }
129
+ return false;
107
130
  case 'last-of-type':
131
+ for (let i = parent.children.length - 1; i >= 0; i--) {
132
+ const child = parent.children[i];
133
+ if (child.tagName === element.tagName) {
134
+ return child === element;
135
+ }
136
+ }
137
+ return false;
108
138
  case 'only-of-type':
139
+ let isFound = false;
140
+ for (const child of parent.children) {
141
+ if (child.tagName === element.tagName) {
142
+ if (isFound || child !== element) {
143
+ return false;
144
+ }
145
+ isFound = true;
146
+ }
147
+ }
148
+ return isFound;
149
+ case 'checked':
150
+ return element.tagName === 'INPUT' && element.checked;
151
+ case 'empty':
152
+ return !element.children.length;
153
+ case 'root':
154
+ return element.tagName === 'HTML';
155
+ case 'not':
156
+ return !SelectorParser_1.default.getSelectorItem(psuedo.arguments).match(element);
109
157
  case 'nth-child':
158
+ return this.matchNthChild(element, parent.children, psuedo.arguments);
110
159
  case 'nth-of-type':
160
+ if (!element.parentNode) {
161
+ return false;
162
+ }
163
+ return this.matchNthChild(element, parent.children.filter((child) => child.tagName === element.tagName), psuedo.arguments);
111
164
  case 'nth-last-child':
165
+ return this.matchNthChild(element, parent.children.reverse(), psuedo.arguments);
112
166
  case 'nth-last-of-type':
113
- return false;
167
+ return this.matchNthChild(element, parent.children.filter((child) => child.tagName === element.tagName).reverse(), psuedo.arguments);
114
168
  }
115
169
  }
116
- switch (this.pseudoClass) {
117
- case 'first-child':
118
- return parent.children[0] === element;
119
- case 'last-child':
120
- return parent.children.length && parent.children[parent.children.length - 1] === element;
121
- case 'only-child':
122
- return parent.children.length === 1 && parent.children[0] === element;
123
- case 'first-of-type':
124
- for (const child of parent.children) {
125
- if (child.tagName === element.tagName) {
126
- return child === element;
127
- }
128
- }
129
- return false;
130
- case 'last-of-type':
131
- for (let i = parent.children.length - 1; i >= 0; i--) {
132
- const child = parent.children[i];
133
- if (child.tagName === element.tagName) {
134
- return child === element;
135
- }
136
- }
137
- return false;
138
- case 'only-of-type':
139
- let isFound = false;
140
- for (const child of parent.children) {
141
- if (child.tagName === element.tagName) {
142
- if (isFound || child !== element) {
143
- return false;
144
- }
145
- isFound = true;
146
- }
147
- }
148
- return isFound;
149
- case 'checked':
150
- return element.tagName === 'INPUT' && element.checked;
151
- case 'empty':
152
- return !element.children.length;
153
- case 'root':
154
- return element.tagName === 'HTML';
155
- case 'not':
156
- return !SelectorParser_1.default.getSelectorItem(this.pseudoArguments).match(element);
157
- case 'nth-child':
158
- return this.matchNthChild(element, parent.children, this.pseudoArguments);
159
- case 'nth-of-type':
160
- if (!element.parentNode) {
161
- return false;
162
- }
163
- return this.matchNthChild(element, parent.children.filter((child) => child.tagName === element.tagName), this.pseudoArguments);
164
- case 'nth-last-child':
165
- return this.matchNthChild(element, parent.children.reverse(), this.pseudoArguments);
166
- case 'nth-last-of-type':
167
- return this.matchNthChild(element, parent.children.filter((child) => child.tagName === element.tagName).reverse(), this.pseudoArguments);
168
- }
170
+ return true;
169
171
  }
170
172
  /**
171
173
  * Matches a nth-child selector.
@@ -294,11 +296,15 @@ class SelectorItem {
294
296
  * @returns Selector string.
295
297
  */
296
298
  getSelectorString() {
297
- return `${this.all || ''}${this.tagName || ''}${this.id ? `#${this.id}` : ''}${this.classNames ? `.${this.classNames.join('.')}` : ''}${this.attributes
299
+ return `${this.tagName || ''}${this.id ? `#${this.id}` : ''}${this.classNames ? `.${this.classNames.join('.')}` : ''}${this.attributes
298
300
  ? this.attributes
299
301
  .map((attribute) => `[${attribute.name}${attribute.value ? `${attribute.operator || ''}="${attribute.value}"` : ''}]`)
300
302
  .join('')
301
- : ''}${this.pseudoClass || ''}${this.pseudoArguments ? `(${this.pseudoArguments})` : ''}`;
303
+ : ''}${this.pseudos
304
+ ? this.pseudos
305
+ .map((pseudo) => `:${pseudo.name}${pseudo.arguments ? `(${pseudo.arguments})` : ''}`)
306
+ .join('')
307
+ : ''}`;
302
308
  }
303
309
  }
304
310
  exports.default = SelectorItem;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectorItem.js","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectorItem.js","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectorParser.d.ts","sourceRoot":"","sources":["../../src/query-selector/SelectorParser.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAoC1C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC;;;;;OAKG;WACW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAI7D;;;;;OAKG;WACW,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CA2F7E"}
1
+ {"version":3,"file":"SelectorParser.d.ts","sourceRoot":"","sources":["../../src/query-selector/SelectorParser.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAwC1C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC;;;;;OAKG;WACW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAI7D;;;;;OAKG;WACW,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CA8G7E"}
@@ -14,14 +14,18 @@ const DOMException_1 = __importDefault(require("../exception/DOMException"));
14
14
  * Group 3: ID (e.g. "#id")
15
15
  * Group 4: Class (e.g. ".class")
16
16
  * Group 5: Attribute name when no value (e.g. "attr1")
17
- * Group 6: Attribute name when there is a value (e.g. "attr1")
18
- * Group 7: Attribute operator (e.g. "~")
19
- * Group 8: Attribute value (e.g. "value1")
20
- * Group 9: Pseudo (e.g. "nth-child")
21
- * Group 10: Arguments of pseudo (e.g. "2n + 1")
22
- * Group 11: Combinator.
17
+ * Group 6: Attribute name when there is a value using apostrophe (e.g. "attr1")
18
+ * Group 7: Attribute operator when using apostrophe (e.g. "~")
19
+ * Group 8: Attribute value when using apostrophe (e.g. "value1")
20
+ * Group 9: Attribute name when threre is a value not using apostrophe (e.g. "attr1")
21
+ * Group 10: Attribute operator when not using apostrophe (e.g. "~")
22
+ * Group 11: Attribute value when notusing apostrophe (e.g. "value1")
23
+ * Group 12: Pseudo name when arguments (e.g. "nth-child")
24
+ * Group 13: Arguments of pseudo (e.g. "2n + 1")
25
+ * Group 14: Pseudo name when no arguments (e.g. "empty")
26
+ * Group 15: Combinator.
23
27
  */
24
- const SELECTOR_REGEXP = /(\*)|([a-zA-Z0-9-]+)|#((?:[a-zA-Z0-9-_]|\\.)+)|\.((?:[a-zA-Z0-9-_]|\\.)+)|\[([a-zA-Z0-9-_]+)\]|\[([a-zA-Z0-9-_]+)([~|^$*]{0,1}) *= *["']{0,1}([^"']*)["']{0,1}\]|:([a-zA-Z-:]+)|\(([^)]+)\)|([ ,+>]*)/g;
28
+ const SELECTOR_REGEXP = /(\*)|([a-zA-Z0-9-]+)|#((?:[a-zA-Z0-9-_]|\\.)+)|\.((?:[a-zA-Z0-9-_]|\\.)+)|\[([a-zA-Z0-9-_]+)\]|\[([a-zA-Z0-9-_]+)([~|^$*]{0,1}) *= *["']{1}([^"']*)["']{1}\]|\[([a-zA-Z0-9-_]+)([~|^$*]{0,1}) *= *([^\]]*)\]|:([a-zA-Z-]+) *\(([^)]+)\)|:([a-zA-Z-]+)|([ ,+>]*)/g;
25
29
  /**
26
30
  * Escaped Character RegExp.
27
31
  */
@@ -54,6 +58,9 @@ class SelectorParser {
54
58
  * @returns Selector groups.
55
59
  */
56
60
  static getSelectorGroups(selector) {
61
+ if (selector === '*') {
62
+ return [[new SelectorItem_1.default({ tagName: '*' })]];
63
+ }
57
64
  const simpleMatch = selector.match(SIMPLE_SELECTOR_REGEXP);
58
65
  if (simpleMatch) {
59
66
  if (simpleMatch[1]) {
@@ -78,7 +85,7 @@ class SelectorParser {
78
85
  if (match[0]) {
79
86
  isValid = true;
80
87
  if (match[1]) {
81
- currentSelectorItem.all = '*';
88
+ currentSelectorItem.tagName = '*';
82
89
  }
83
90
  else if (match[2]) {
84
91
  currentSelectorItem.tagName = match[2].toUpperCase();
@@ -106,14 +113,30 @@ class SelectorParser {
106
113
  value: match[8]
107
114
  });
108
115
  }
109
- else if (match[9]) {
110
- currentSelectorItem.pseudoClass = match[9].toLowerCase();
116
+ else if (match[9] && match[11] !== undefined) {
117
+ currentSelectorItem.attributes = currentSelectorItem.attributes || [];
118
+ currentSelectorItem.attributes.push({
119
+ name: match[9].toLowerCase(),
120
+ operator: match[10] || null,
121
+ value: match[11]
122
+ });
111
123
  }
112
- else if (match[10]) {
113
- currentSelectorItem.pseudoArguments = match[10];
124
+ else if (match[12] && match[13]) {
125
+ currentSelectorItem.pseudos = currentSelectorItem.pseudos || [];
126
+ currentSelectorItem.pseudos.push({
127
+ name: match[12].toLowerCase(),
128
+ arguments: match[13]
129
+ });
130
+ }
131
+ else if (match[14]) {
132
+ currentSelectorItem.pseudos = currentSelectorItem.pseudos || [];
133
+ currentSelectorItem.pseudos.push({
134
+ name: match[14].toLowerCase(),
135
+ arguments: null
136
+ });
114
137
  }
115
- else if (match[11]) {
116
- switch (match[11].trim()) {
138
+ else if (match[15]) {
139
+ switch (match[15].trim()) {
117
140
  case ',':
118
141
  currentSelectorItem = new SelectorItem_1.default({
119
142
  combinator: SelectorCombinatorEnum_1.default.descendant
@@ -1 +1 @@
1
- {"version":3,"file":"SelectorParser.js","sourceRoot":"","sources":["../../src/query-selector/SelectorParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectorParser.js","sourceRoot":"","sources":["../../src/query-selector/SelectorParser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "9.10.2",
3
+ "version": "9.10.4",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -160,6 +160,24 @@ export default class Element extends Node implements IElement {
160
160
  return this.tagName ? this.tagName.toLowerCase() : 'unknown';
161
161
  }
162
162
 
163
+ /**
164
+ * Returns role.
165
+ *
166
+ * @returns Role.
167
+ */
168
+ public get role(): string {
169
+ return this.getAttribute('role') || '';
170
+ }
171
+
172
+ /**
173
+ * Sets role.
174
+ *
175
+ * @param role Role.
176
+ */
177
+ public set role(role: string) {
178
+ this.setAttribute('role', role);
179
+ }
180
+
163
181
  /**
164
182
  * Previous element sibling.
165
183
  *
@@ -25,6 +25,7 @@ export default interface IElement extends IChildNode, INonDocumentTypeChildNode,
25
25
  scrollLeft: number;
26
26
  id: string;
27
27
  className: string;
28
+ role: string;
28
29
  innerHTML: string;
29
30
  outerHTML: string;
30
31
  slot: string;
@@ -570,18 +570,7 @@ export default class HTMLInputElement extends HTMLElement implements IHTMLInputE
570
570
  * @param checked Checked.
571
571
  */
572
572
  public set checked(checked: boolean) {
573
- this._checked = checked;
574
-
575
- if (checked && this.type === 'radio' && this.name) {
576
- const root = <IHTMLElement>(<IHTMLFormElement>this._formNode || this.getRootNode());
577
- const radioButtons = root.querySelectorAll(`input[type="radio"][name="${this.name}"]`);
578
-
579
- for (const radioButton of radioButtons) {
580
- if (radioButton !== this) {
581
- radioButton['_checked'] = false;
582
- }
583
- }
584
- }
573
+ this._setChecked(checked);
585
574
  }
586
575
 
587
576
  /**
@@ -1051,7 +1040,7 @@ export default class HTMLInputElement extends HTMLElement implements IHTMLInputE
1051
1040
  this.isConnected &&
1052
1041
  (this.type === 'checkbox' || this.type === 'radio')
1053
1042
  ) {
1054
- this.checked = this.type === 'checkbox' ? !this.checked : true;
1043
+ this._setChecked(this.type === 'checkbox' ? !this.checked : true);
1055
1044
  }
1056
1045
 
1057
1046
  const returnValue = super.dispatchEvent(event);
@@ -1148,4 +1137,24 @@ export default class HTMLInputElement extends HTMLElement implements IHTMLInputE
1148
1137
  this.type === 'password'
1149
1138
  );
1150
1139
  }
1140
+
1141
+ /**
1142
+ * Sets checked value.
1143
+ *
1144
+ * @param checked Checked.
1145
+ */
1146
+ private _setChecked(checked: boolean): void {
1147
+ this._checked = checked;
1148
+
1149
+ if (checked && this.type === 'radio' && this.name) {
1150
+ const root = <IHTMLElement>(<IHTMLFormElement>this._formNode || this.getRootNode());
1151
+ const radioButtons = root.querySelectorAll(`input[type="radio"][name="${this.name}"]`);
1152
+
1153
+ for (const radioButton of radioButtons) {
1154
+ if (radioButton !== this) {
1155
+ radioButton['_checked'] = false;
1156
+ }
1157
+ }
1158
+ }
1159
+ }
1151
1160
  }
@@ -0,0 +1,4 @@
1
+ export default interface ISelectorPseudo {
2
+ name: string;
3
+ arguments: string | null;
4
+ }
@@ -97,6 +97,12 @@ export default class QuerySelector {
97
97
  * @returns Result.
98
98
  */
99
99
  public static match(element: IElement, selector: string): ISelectorMatch | null {
100
+ if (selector === '*') {
101
+ return {
102
+ priorityWeight: 1
103
+ };
104
+ }
105
+
100
106
  for (const items of SelectorParser.getSelectorGroups(selector)) {
101
107
  const result = this.matchSelector(element, element, items.reverse());
102
108