happy-dom 2.53.1 → 3.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.

Files changed (303) hide show
  1. package/README.md +26 -6
  2. package/lib/async-task-manager/AsyncTaskManager.js +34 -78
  3. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  4. package/lib/attribute/Attr.js +19 -28
  5. package/lib/attribute/Attr.js.map +1 -1
  6. package/lib/config/ElementTag.d.ts +2 -1
  7. package/lib/config/ElementTag.js +16 -15
  8. package/lib/config/ElementTag.js.map +1 -1
  9. package/lib/config/NonImplemenetedElementClasses.js +0 -1
  10. package/lib/config/NonImplemenetedElementClasses.js.map +1 -1
  11. package/lib/cookie/CookieUtility.js +21 -26
  12. package/lib/cookie/CookieUtility.js.map +1 -1
  13. package/lib/css/CSS.js +12 -18
  14. package/lib/css/CSS.js.map +1 -1
  15. package/lib/css/CSSParser.js +29 -33
  16. package/lib/css/CSSParser.js.map +1 -1
  17. package/lib/css/CSSRule.js +24 -29
  18. package/lib/css/CSSRule.js.map +1 -1
  19. package/lib/css/CSSStyleDeclaration.js +4516 -6005
  20. package/lib/css/CSSStyleDeclaration.js.map +1 -1
  21. package/lib/css/CSSStyleSheet.js +17 -59
  22. package/lib/css/CSSStyleSheet.js.map +1 -1
  23. package/lib/css/CSSUnitValue.js +4 -5
  24. package/lib/css/CSSUnitValue.js.map +1 -1
  25. package/lib/css/MediaList.js +23 -28
  26. package/lib/css/MediaList.js.map +1 -1
  27. package/lib/css/rules/CSSFontFaceRule.js +6 -24
  28. package/lib/css/rules/CSSFontFaceRule.js.map +1 -1
  29. package/lib/css/rules/CSSKeyframeRule.js +14 -36
  30. package/lib/css/rules/CSSKeyframeRule.js.map +1 -1
  31. package/lib/css/rules/CSSKeyframesRule.js +31 -54
  32. package/lib/css/rules/CSSKeyframesRule.js.map +1 -1
  33. package/lib/css/rules/CSSMediaRule.js +29 -56
  34. package/lib/css/rules/CSSMediaRule.js.map +1 -1
  35. package/lib/css/rules/CSSStyleRule.js +16 -38
  36. package/lib/css/rules/CSSStyleRule.js.map +1 -1
  37. package/lib/custom-element/CustomElementRegistry.js +21 -24
  38. package/lib/custom-element/CustomElementRegistry.js.map +1 -1
  39. package/lib/dom-implementation/DOMImplementation.js +12 -13
  40. package/lib/dom-implementation/DOMImplementation.js.map +1 -1
  41. package/lib/dom-parser/DOMParser.js +29 -35
  42. package/lib/dom-parser/DOMParser.js.map +1 -1
  43. package/lib/dom-token-list/DOMTokenList.js +64 -79
  44. package/lib/dom-token-list/DOMTokenList.js.map +1 -1
  45. package/lib/event/DataTransfer.js +4 -5
  46. package/lib/event/DataTransfer.js.map +1 -1
  47. package/lib/event/DataTransferItem.js +7 -8
  48. package/lib/event/DataTransferItem.js.map +1 -1
  49. package/lib/event/DataTransferItemList.js +10 -11
  50. package/lib/event/DataTransferItemList.js.map +1 -1
  51. package/lib/event/Event.js +11 -15
  52. package/lib/event/Event.js.map +1 -1
  53. package/lib/event/EventTarget.js +14 -16
  54. package/lib/event/EventTarget.js.map +1 -1
  55. package/lib/event/IUIEventInit.d.ts +2 -2
  56. package/lib/event/UIEvent.d.ts +2 -2
  57. package/lib/event/UIEvent.js +25 -46
  58. package/lib/event/UIEvent.js.map +1 -1
  59. package/lib/event/events/AnimationEvent.js +11 -29
  60. package/lib/event/events/AnimationEvent.js.map +1 -1
  61. package/lib/event/events/CustomEvent.js +9 -31
  62. package/lib/event/events/CustomEvent.js.map +1 -1
  63. package/lib/event/events/ErrorEvent.js +15 -34
  64. package/lib/event/events/ErrorEvent.js.map +1 -1
  65. package/lib/event/events/FocusEvent.js +7 -26
  66. package/lib/event/events/FocusEvent.js.map +1 -1
  67. package/lib/event/events/InputEvent.js +13 -32
  68. package/lib/event/events/InputEvent.js.map +1 -1
  69. package/lib/event/events/KeyboardEvent.js +27 -46
  70. package/lib/event/events/KeyboardEvent.js.map +1 -1
  71. package/lib/event/events/MouseEvent.js +33 -52
  72. package/lib/event/events/MouseEvent.js.map +1 -1
  73. package/lib/event/events/PointerEvent.js +25 -44
  74. package/lib/event/events/PointerEvent.js.map +1 -1
  75. package/lib/event/events/ProgressEvent.js +11 -30
  76. package/lib/event/events/ProgressEvent.js.map +1 -1
  77. package/lib/event/events/StorageEvent.js +13 -32
  78. package/lib/event/events/StorageEvent.js.map +1 -1
  79. package/lib/event/events/WheelEvent.js +16 -35
  80. package/lib/event/events/WheelEvent.js.map +1 -1
  81. package/lib/exception/DOMException.js +5 -24
  82. package/lib/exception/DOMException.js.map +1 -1
  83. package/lib/fetch/FetchHandler.js +18 -22
  84. package/lib/fetch/FetchHandler.js.map +1 -1
  85. package/lib/fetch/Headers.js +3 -23
  86. package/lib/fetch/Headers.js.map +1 -1
  87. package/lib/fetch/Request.js +61 -81
  88. package/lib/fetch/Request.js.map +1 -1
  89. package/lib/fetch/ResourceFetchHandler.js +18 -67
  90. package/lib/fetch/ResourceFetchHandler.js.map +1 -1
  91. package/lib/fetch/Response.js +61 -81
  92. package/lib/fetch/Response.js.map +1 -1
  93. package/lib/file/Blob.js +29 -78
  94. package/lib/file/Blob.js.map +1 -1
  95. package/lib/file/File.js +9 -27
  96. package/lib/file/File.js.map +1 -1
  97. package/lib/file/FileReader.js +57 -78
  98. package/lib/file/FileReader.js.map +1 -1
  99. package/lib/history/History.js +32 -37
  100. package/lib/history/History.js.map +1 -1
  101. package/lib/index.d.ts +5 -3
  102. package/lib/index.js +71 -69
  103. package/lib/index.js.map +1 -1
  104. package/lib/location/Location.js +11 -28
  105. package/lib/location/Location.js.map +1 -1
  106. package/lib/location/RelativeURL.js +5 -8
  107. package/lib/location/RelativeURL.js.map +1 -1
  108. package/lib/location/URL.js +46 -59
  109. package/lib/location/URL.js.map +1 -1
  110. package/lib/match-media/MediaQueryList.js +28 -54
  111. package/lib/match-media/MediaQueryList.js.map +1 -1
  112. package/lib/mutation-observer/MutationListener.js +3 -4
  113. package/lib/mutation-observer/MutationListener.js.map +1 -1
  114. package/lib/mutation-observer/MutationObserver.js +12 -13
  115. package/lib/mutation-observer/MutationObserver.js.map +1 -1
  116. package/lib/mutation-observer/MutationRecord.js +3 -4
  117. package/lib/mutation-observer/MutationRecord.js.map +1 -1
  118. package/lib/navigator/MimeType.js +5 -6
  119. package/lib/navigator/MimeType.js.map +1 -1
  120. package/lib/navigator/MimeTypeArray.js +10 -11
  121. package/lib/navigator/MimeTypeArray.js.map +1 -1
  122. package/lib/navigator/Navigator.js +7 -8
  123. package/lib/navigator/Navigator.js.map +1 -1
  124. package/lib/navigator/Plugin.js +10 -11
  125. package/lib/navigator/Plugin.js.map +1 -1
  126. package/lib/navigator/PluginArray.js +12 -13
  127. package/lib/navigator/PluginArray.js.map +1 -1
  128. package/lib/nodes/character-data/CharacterData.js +119 -184
  129. package/lib/nodes/character-data/CharacterData.js.map +1 -1
  130. package/lib/nodes/character-data/CharacterDataUtility.js +12 -15
  131. package/lib/nodes/character-data/CharacterDataUtility.js.map +1 -1
  132. package/lib/nodes/child-node/ChildNodeUtility.js +24 -45
  133. package/lib/nodes/child-node/ChildNodeUtility.js.map +1 -1
  134. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js +9 -12
  135. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js.map +1 -1
  136. package/lib/nodes/comment/Comment.js +20 -43
  137. package/lib/nodes/comment/Comment.js.map +1 -1
  138. package/lib/nodes/document/Document.d.ts +3 -3
  139. package/lib/nodes/document/Document.js +334 -461
  140. package/lib/nodes/document/Document.js.map +1 -1
  141. package/lib/nodes/document/DocumentReadyStateManager.js +16 -19
  142. package/lib/nodes/document/DocumentReadyStateManager.js.map +1 -1
  143. package/lib/nodes/document/IDocument.d.ts +2 -2
  144. package/lib/nodes/document-fragment/DocumentFragment.js +93 -153
  145. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  146. package/lib/nodes/document-type/DocumentType.js +22 -45
  147. package/lib/nodes/document-type/DocumentType.js.map +1 -1
  148. package/lib/nodes/element/DOMRect.js +3 -4
  149. package/lib/nodes/element/DOMRect.js.map +1 -1
  150. package/lib/nodes/element/Element.js +367 -496
  151. package/lib/nodes/element/Element.js.map +1 -1
  152. package/lib/nodes/element/HTMLCollection.js +4 -24
  153. package/lib/nodes/element/HTMLCollection.js.map +1 -1
  154. package/lib/nodes/element/HTMLCollectionFactory.js +6 -9
  155. package/lib/nodes/element/HTMLCollectionFactory.js.map +1 -1
  156. package/lib/nodes/element/Range.js +89 -114
  157. package/lib/nodes/element/Range.js.map +1 -1
  158. package/lib/nodes/html-base-element/HTMLBaseElement.d.ts +42 -0
  159. package/lib/nodes/html-base-element/HTMLBaseElement.js +62 -0
  160. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -0
  161. package/lib/nodes/html-base-element/IHTMLBaseElement.d.ts +19 -0
  162. package/lib/nodes/html-base-element/IHTMLBaseElement.js +3 -0
  163. package/lib/nodes/html-base-element/IHTMLBaseElement.js.map +1 -0
  164. package/lib/nodes/html-document/HTMLDocument.js +3 -23
  165. package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
  166. package/lib/nodes/html-element/DatasetUtility.js +9 -12
  167. package/lib/nodes/html-element/DatasetUtility.js.map +1 -1
  168. package/lib/nodes/html-element/HTMLElement.js +232 -290
  169. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  170. package/lib/nodes/html-form-element/HTMLFormElement.js +170 -235
  171. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  172. package/lib/nodes/html-image-element/HTMLImageElement.js +178 -237
  173. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  174. package/lib/nodes/html-image-element/Image.js +7 -27
  175. package/lib/nodes/html-image-element/Image.js.map +1 -1
  176. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +17 -6
  177. package/lib/nodes/html-input-element/HTMLInputElement.js +719 -866
  178. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  179. package/lib/nodes/html-input-element/HTMLInputElementValueSanitizer.js +9 -12
  180. package/lib/nodes/html-input-element/HTMLInputElementValueSanitizer.js.map +1 -1
  181. package/lib/nodes/html-input-element/HTMLInputElementValueStepping.js +5 -8
  182. package/lib/nodes/html-input-element/HTMLInputElementValueStepping.js.map +1 -1
  183. package/lib/nodes/html-input-element/IHTMLInputElement.d.ts +11 -1
  184. package/lib/nodes/html-input-element/ValidityState.js +47 -69
  185. package/lib/nodes/html-input-element/ValidityState.js.map +1 -1
  186. package/lib/nodes/html-label-element/HTMLLabelElement.js +53 -87
  187. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  188. package/lib/nodes/html-link-element/HTMLLinkElement.js +197 -252
  189. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  190. package/lib/nodes/html-meta-element/HTMLMetaElement.js +66 -102
  191. package/lib/nodes/html-meta-element/HTMLMetaElement.js.map +1 -1
  192. package/lib/nodes/html-script-element/HTMLScriptElement.js +145 -193
  193. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  194. package/lib/nodes/html-script-element/ScriptUtility.js +58 -112
  195. package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
  196. package/lib/nodes/html-slot-element/HTMLSlotElement.js +33 -65
  197. package/lib/nodes/html-slot-element/HTMLSlotElement.js.map +1 -1
  198. package/lib/nodes/html-style-element/HTMLStyleElement.js +75 -109
  199. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  200. package/lib/nodes/html-template-element/HTMLTemplateElement.js +60 -99
  201. package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
  202. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +349 -444
  203. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  204. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +17 -37
  205. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -1
  206. package/lib/nodes/node/INode.d.ts +1 -0
  207. package/lib/nodes/node/Node.d.ts +6 -0
  208. package/lib/nodes/node/Node.js +193 -244
  209. package/lib/nodes/node/Node.js.map +1 -1
  210. package/lib/nodes/node/NodeList.js +4 -24
  211. package/lib/nodes/node/NodeList.js.map +1 -1
  212. package/lib/nodes/node/NodeListFactory.js +6 -9
  213. package/lib/nodes/node/NodeListFactory.js.map +1 -1
  214. package/lib/nodes/parent-node/ParentNodeUtility.js +43 -78
  215. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  216. package/lib/nodes/shadow-root/ShadowRoot.js +53 -83
  217. package/lib/nodes/shadow-root/ShadowRoot.js.map +1 -1
  218. package/lib/nodes/svg-document/SVGDocument.js +3 -23
  219. package/lib/nodes/svg-document/SVGDocument.js.map +1 -1
  220. package/lib/nodes/svg-element/DOMMatrix.js +3 -4
  221. package/lib/nodes/svg-element/DOMMatrix.js.map +1 -1
  222. package/lib/nodes/svg-element/SVGAngle.js +10 -11
  223. package/lib/nodes/svg-element/SVGAngle.js.map +1 -1
  224. package/lib/nodes/svg-element/SVGAnimatedRect.js +4 -5
  225. package/lib/nodes/svg-element/SVGAnimatedRect.js.map +1 -1
  226. package/lib/nodes/svg-element/SVGElement.js +58 -93
  227. package/lib/nodes/svg-element/SVGElement.js.map +1 -1
  228. package/lib/nodes/svg-element/SVGGraphicsElement.js +14 -32
  229. package/lib/nodes/svg-element/SVGGraphicsElement.js.map +1 -1
  230. package/lib/nodes/svg-element/SVGLength.js +16 -17
  231. package/lib/nodes/svg-element/SVGLength.js.map +1 -1
  232. package/lib/nodes/svg-element/SVGNumber.js +3 -4
  233. package/lib/nodes/svg-element/SVGNumber.js.map +1 -1
  234. package/lib/nodes/svg-element/SVGPoint.js +3 -4
  235. package/lib/nodes/svg-element/SVGPoint.js.map +1 -1
  236. package/lib/nodes/svg-element/SVGRect.js +3 -4
  237. package/lib/nodes/svg-element/SVGRect.js.map +1 -1
  238. package/lib/nodes/svg-element/SVGSVGElement.js +187 -248
  239. package/lib/nodes/svg-element/SVGSVGElement.js.map +1 -1
  240. package/lib/nodes/svg-element/SVGTransform.js +16 -17
  241. package/lib/nodes/svg-element/SVGTransform.js.map +1 -1
  242. package/lib/nodes/text/Text.js +20 -43
  243. package/lib/nodes/text/Text.js.map +1 -1
  244. package/lib/nodes/xml-document/XMLDocument.js +3 -23
  245. package/lib/nodes/xml-document/XMLDocument.js.map +1 -1
  246. package/lib/query-selector/QuerySelector.js +36 -44
  247. package/lib/query-selector/QuerySelector.js.map +1 -1
  248. package/lib/query-selector/SelectorItem.js +62 -66
  249. package/lib/query-selector/SelectorItem.js.map +1 -1
  250. package/lib/resize-observer/ResizeObserver.js +8 -11
  251. package/lib/resize-observer/ResizeObserver.js.map +1 -1
  252. package/lib/screen/Screen.js +3 -4
  253. package/lib/screen/Screen.js.map +1 -1
  254. package/lib/selection/Selection.js +29 -30
  255. package/lib/selection/Selection.js.map +1 -1
  256. package/lib/storage/Storage.js +22 -27
  257. package/lib/storage/Storage.js.map +1 -1
  258. package/lib/tree-walker/NodeFilterMask.js +1 -1
  259. package/lib/tree-walker/NodeFilterMask.js.map +1 -1
  260. package/lib/tree-walker/TreeWalker.js +30 -33
  261. package/lib/tree-walker/TreeWalker.js.map +1 -1
  262. package/lib/window/GlobalWindow.d.ts +84 -0
  263. package/lib/window/GlobalWindow.js +90 -0
  264. package/lib/window/GlobalWindow.js.map +1 -0
  265. package/lib/window/IWindow.d.ts +31 -18
  266. package/lib/window/VMGlobalPropertyScript.d.ts +2 -0
  267. package/lib/window/VMGlobalPropertyScript.js +65 -0
  268. package/lib/window/VMGlobalPropertyScript.js.map +1 -0
  269. package/lib/window/Window.d.ts +72 -105
  270. package/lib/window/Window.js +269 -489
  271. package/lib/window/Window.js.map +1 -1
  272. package/lib/xml-parser/XMLParser.js +65 -71
  273. package/lib/xml-parser/XMLParser.js.map +1 -1
  274. package/lib/xml-serializer/XMLSerializer.js +30 -37
  275. package/lib/xml-serializer/XMLSerializer.js.map +1 -1
  276. package/package.json +6 -7
  277. package/src/config/ElementTag.ts +2 -1
  278. package/src/config/NonImplemenetedElementClasses.ts +0 -1
  279. package/src/dom-parser/DOMParser.ts +4 -5
  280. package/src/event/IUIEventInit.ts +2 -2
  281. package/src/event/UIEvent.ts +2 -2
  282. package/src/fetch/FetchHandler.ts +3 -3
  283. package/src/fetch/ResourceFetchHandler.ts +3 -3
  284. package/src/index.ts +7 -3
  285. package/src/nodes/document/Document.ts +4 -4
  286. package/src/nodes/document/IDocument.ts +2 -2
  287. package/src/nodes/html-base-element/HTMLBaseElement.ts +61 -0
  288. package/src/nodes/html-base-element/IHTMLBaseElement.ts +21 -0
  289. package/src/nodes/html-input-element/HTMLInputElement.ts +37 -12
  290. package/src/nodes/html-input-element/IHTMLInputElement.ts +13 -1
  291. package/src/nodes/html-link-element/HTMLLinkElement.ts +8 -2
  292. package/src/nodes/html-script-element/ScriptUtility.ts +4 -4
  293. package/src/nodes/node/INode.ts +1 -0
  294. package/src/nodes/node/Node.ts +14 -0
  295. package/src/window/GlobalWindow.ts +82 -0
  296. package/src/window/IWindow.ts +26 -12
  297. package/src/window/VMGlobalPropertyScript.ts +62 -0
  298. package/src/window/Window.ts +106 -173
  299. package/tsconfig.json +1 -1
  300. package/lib/window/AsyncWindow.d.ts +0 -10
  301. package/lib/window/AsyncWindow.js +0 -38
  302. package/lib/window/AsyncWindow.js.map +0 -1
  303. package/src/window/AsyncWindow.ts +0 -17
@@ -1,55 +1,34 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
18
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
4
  };
20
5
  Object.defineProperty(exports, "__esModule", { value: true });
21
- var Node_1 = __importDefault(require("../node/Node"));
22
- var CharacterData_1 = __importDefault(require("../character-data/CharacterData"));
6
+ const Node_1 = __importDefault(require("../node/Node"));
7
+ const CharacterData_1 = __importDefault(require("../character-data/CharacterData"));
23
8
  /**
24
9
  * Text node.
25
10
  */
26
- var Text = /** @class */ (function (_super) {
27
- __extends(Text, _super);
28
- function Text() {
29
- var _this = _super !== null && _super.apply(this, arguments) || this;
30
- _this.nodeType = Node_1.default.TEXT_NODE;
31
- return _this;
11
+ class Text extends CharacterData_1.default {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.nodeType = Node_1.default.TEXT_NODE;
15
+ }
16
+ /**
17
+ * Node name.
18
+ *
19
+ * @returns Node name.
20
+ */
21
+ get nodeName() {
22
+ return '#text';
32
23
  }
33
- Object.defineProperty(Text.prototype, "nodeName", {
34
- /**
35
- * Node name.
36
- *
37
- * @returns Node name.
38
- */
39
- get: function () {
40
- return '#text';
41
- },
42
- enumerable: false,
43
- configurable: true
44
- });
45
24
  /**
46
25
  * Converts to string.
47
26
  *
48
27
  * @returns String.
49
28
  */
50
- Text.prototype.toString = function () {
29
+ toString() {
51
30
  return '[object Text]';
52
- };
31
+ }
53
32
  /**
54
33
  * Clones a node.
55
34
  *
@@ -57,11 +36,9 @@ var Text = /** @class */ (function (_super) {
57
36
  * @param [deep=false] "true" to clone deep.
58
37
  * @returns Cloned node.
59
38
  */
60
- Text.prototype.cloneNode = function (deep) {
61
- if (deep === void 0) { deep = false; }
62
- return _super.prototype.cloneNode.call(this, deep);
63
- };
64
- return Text;
65
- }(CharacterData_1.default));
39
+ cloneNode(deep = false) {
40
+ return super.cloneNode(deep);
41
+ }
42
+ }
66
43
  exports.default = Text;
67
44
  //# sourceMappingURL=Text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/nodes/text/Text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sDAAgC;AAChC,kFAA4D;AAG5D;;GAEG;AACH;IAAkC,wBAAa;IAA/C;QAAA,qEA+BC;QA9BgB,cAAQ,GAAG,cAAI,CAAC,SAAS,CAAC;;IA8B3C,CAAC;IAvBA,sBAAW,0BAAQ;QALnB;;;;WAIG;aACH;YACC,OAAO,OAAO,CAAC;QAChB,CAAC;;;OAAA;IAED;;;;OAIG;IACI,uBAAQ,GAAf;QACC,OAAO,eAAe,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACI,wBAAS,GAAhB,UAAiB,IAAY;QAAZ,qBAAA,EAAA,YAAY;QAC5B,OAAa,iBAAM,SAAS,YAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACF,WAAC;AAAD,CAAC,AA/BD,CAAkC,uBAAa,GA+B9C"}
1
+ {"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/nodes/text/Text.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,oFAA4D;AAG5D;;GAEG;AACH,MAAqB,IAAK,SAAQ,uBAAa;IAA/C;;QACiB,aAAQ,GAAG,cAAI,CAAC,SAAS,CAAC;IA8B3C,CAAC;IA5BA;;;;OAIG;IACH,IAAW,QAAQ;QAClB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACd,OAAO,eAAe,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,IAAI,GAAG,KAAK;QAC5B,OAAa,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACD;AA/BD,uBA+BC"}
@@ -1,33 +1,13 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
18
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
4
  };
20
5
  Object.defineProperty(exports, "__esModule", { value: true });
21
- var Document_1 = __importDefault(require("../document/Document"));
6
+ const Document_1 = __importDefault(require("../document/Document"));
22
7
  /**
23
8
  * Document.
24
9
  */
25
- var XMLDocument = /** @class */ (function (_super) {
26
- __extends(XMLDocument, _super);
27
- function XMLDocument() {
28
- return _super !== null && _super.apply(this, arguments) || this;
29
- }
30
- return XMLDocument;
31
- }(Document_1.default));
10
+ class XMLDocument extends Document_1.default {
11
+ }
32
12
  exports.default = XMLDocument;
33
13
  //# sourceMappingURL=XMLDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XMLDocument.js","sourceRoot":"","sources":["../../../src/nodes/xml-document/XMLDocument.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kEAA4C;AAE5C;;GAEG;AACH;IAAyC,+BAAQ;IAAjD;;IAAmD,CAAC;IAAD,kBAAC;AAAD,CAAC,AAApD,CAAyC,kBAAQ,GAAG"}
1
+ {"version":3,"file":"XMLDocument.js","sourceRoot":"","sources":["../../../src/nodes/xml-document/XMLDocument.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAE5C;;GAEG;AACH,MAAqB,WAAY,SAAQ,kBAAQ;CAAG;AAApD,8BAAoD"}
@@ -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
- var Node_1 = __importDefault(require("../nodes/node/Node"));
7
- var SelectorItem_1 = __importDefault(require("./SelectorItem"));
8
- var NodeListFactory_1 = __importDefault(require("../nodes/node/NodeListFactory"));
9
- var SELECTOR_PART_REGEXP = /(\[[^\]]+\]|[a-zA-Z0-9-_.#"*:()\]]+)|([ ,>]+)/g;
6
+ const Node_1 = __importDefault(require("../nodes/node/Node"));
7
+ const SelectorItem_1 = __importDefault(require("./SelectorItem"));
8
+ const NodeListFactory_1 = __importDefault(require("../nodes/node/NodeListFactory"));
9
+ const SELECTOR_PART_REGEXP = /(\[[^\]]+\]|[a-zA-Z0-9-_.#"*:()\]]+)|([ ,>]+)/g;
10
10
  // The above one seem to work fine and is faster, but this one can be useful if more rules need to be added as it is more "correct".
11
11
  // Const SELECTOR_PART_REGEXP = /([a-zA-Z0-9-$.]+|\[[a-zA-Z0-9-]+\]|\[[a-zA-Z0-9$-~|^$*]+[ ]*=[ ]*"[^"]+"\])|([ ,]+)/g;
12
12
  /**
@@ -14,9 +14,7 @@ var SELECTOR_PART_REGEXP = /(\[[^\]]+\]|[a-zA-Z0-9-_.#"*:()\]]+)|([ ,>]+)/g;
14
14
  *
15
15
  * @class QuerySelector
16
16
  */
17
- var QuerySelector = /** @class */ (function () {
18
- function QuerySelector() {
19
- }
17
+ class QuerySelector {
20
18
  /**
21
19
  * Finds elements based on a query selector.
22
20
  *
@@ -24,19 +22,17 @@ var QuerySelector = /** @class */ (function () {
24
22
  * @param selector Selector.
25
23
  * @returns HTML elements.
26
24
  */
27
- QuerySelector.querySelectorAll = function (node, selector) {
28
- var matches = NodeListFactory_1.default.create();
29
- for (var _i = 0, _a = this.getSelectorParts(selector); _i < _a.length; _i++) {
30
- var parts = _a[_i];
31
- for (var _b = 0, _c = this.findAll(node, [node], parts); _b < _c.length; _b++) {
32
- var element = _c[_b];
25
+ static querySelectorAll(node, selector) {
26
+ const matches = NodeListFactory_1.default.create();
27
+ for (const parts of this.getSelectorParts(selector)) {
28
+ for (const element of this.findAll(node, [node], parts)) {
33
29
  if (!matches.includes(element)) {
34
30
  matches.push(element);
35
31
  }
36
32
  }
37
33
  }
38
34
  return matches;
39
- };
35
+ }
40
36
  /**
41
37
  * Finds an element based on a query selector.
42
38
  *
@@ -44,16 +40,15 @@ var QuerySelector = /** @class */ (function () {
44
40
  * @param selector Selector.
45
41
  * @returns HTML element.
46
42
  */
47
- QuerySelector.querySelector = function (node, selector) {
48
- for (var _i = 0, _a = this.getSelectorParts(selector); _i < _a.length; _i++) {
49
- var parts = _a[_i];
50
- var match = this.findFirst(node, [node], parts);
43
+ static querySelector(node, selector) {
44
+ for (const parts of this.getSelectorParts(selector)) {
45
+ const match = this.findFirst(node, [node], parts);
51
46
  if (match) {
52
47
  return match;
53
48
  }
54
49
  }
55
50
  return null;
56
- };
51
+ }
57
52
  /**
58
53
  * Finds elements based on a query selector for a part of a list of selectors separated with comma.
59
54
  *
@@ -63,15 +58,14 @@ var QuerySelector = /** @class */ (function () {
63
58
  * @param [selectorItem] Selector item.
64
59
  * @returns HTML elements.
65
60
  */
66
- QuerySelector.findAll = function (rootNode, nodes, selectorParts, selectorItem) {
67
- var isDirectChild = selectorParts[0] === '>';
61
+ static findAll(rootNode, nodes, selectorParts, selectorItem) {
62
+ const isDirectChild = selectorParts[0] === '>';
68
63
  if (isDirectChild) {
69
64
  selectorParts = selectorParts.slice(1);
70
65
  }
71
- var selector = selectorItem || new SelectorItem_1.default(selectorParts[0]);
72
- var matched = [];
73
- for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {
74
- var node = nodes_1[_i];
66
+ const selector = selectorItem || new SelectorItem_1.default(selectorParts[0]);
67
+ let matched = [];
68
+ for (const node of nodes) {
75
69
  if (node.nodeType === Node_1.default.ELEMENT_NODE) {
76
70
  if (selector.match(node)) {
77
71
  if (selectorParts.length === 1) {
@@ -89,7 +83,7 @@ var QuerySelector = /** @class */ (function () {
89
83
  }
90
84
  }
91
85
  return matched;
92
- };
86
+ }
93
87
  /**
94
88
  * Finds an element based on a query selector for a part of a list of selectors separated with comma.
95
89
  *
@@ -100,14 +94,13 @@ var QuerySelector = /** @class */ (function () {
100
94
  * @param [selectorItem] Selector item.
101
95
  * @returns HTML element.
102
96
  */
103
- QuerySelector.findFirst = function (rootNode, nodes, selectorParts, selectorItem) {
104
- var isDirectChild = selectorParts[0] === '>';
97
+ static findFirst(rootNode, nodes, selectorParts, selectorItem) {
98
+ const isDirectChild = selectorParts[0] === '>';
105
99
  if (isDirectChild) {
106
100
  selectorParts = selectorParts.slice(1);
107
101
  }
108
- var selector = selectorItem || new SelectorItem_1.default(selectorParts[0]);
109
- for (var _i = 0, nodes_2 = nodes; _i < nodes_2.length; _i++) {
110
- var node = nodes_2[_i];
102
+ const selector = selectorItem || new SelectorItem_1.default(selectorParts[0]);
103
+ for (const node of nodes) {
111
104
  if (node.nodeType === Node_1.default.ELEMENT_NODE && selector.match(node)) {
112
105
  if (selectorParts.length === 1) {
113
106
  if (rootNode !== node) {
@@ -115,39 +108,39 @@ var QuerySelector = /** @class */ (function () {
115
108
  }
116
109
  }
117
110
  else {
118
- var childSelector = this.findFirst(rootNode, node.children, selectorParts.slice(1), null);
111
+ const childSelector = this.findFirst(rootNode, node.children, selectorParts.slice(1), null);
119
112
  if (childSelector) {
120
113
  return childSelector;
121
114
  }
122
115
  }
123
116
  }
124
117
  if (!isDirectChild && node['children']) {
125
- var childSelector = this.findFirst(rootNode, node['children'], selectorParts, selector);
118
+ const childSelector = this.findFirst(rootNode, node['children'], selectorParts, selector);
126
119
  if (childSelector) {
127
120
  return childSelector;
128
121
  }
129
122
  }
130
123
  }
131
124
  return null;
132
- };
125
+ }
133
126
  /**
134
127
  * Splits a selector string into groups and parts.
135
128
  *
136
129
  * @param selector Selector.
137
130
  * @returns HTML element.
138
131
  */
139
- QuerySelector.getSelectorParts = function (selector) {
132
+ static getSelectorParts(selector) {
140
133
  if (selector === '*' || (!selector.includes(',') && !selector.includes(' '))) {
141
134
  return [[selector]];
142
135
  }
143
- var regexp = new RegExp(SELECTOR_PART_REGEXP);
144
- var groups = [];
145
- var currentSelector = '';
146
- var parts = [];
147
- var match;
136
+ const regexp = new RegExp(SELECTOR_PART_REGEXP);
137
+ const groups = [];
138
+ let currentSelector = '';
139
+ let parts = [];
140
+ let match;
148
141
  while ((match = regexp.exec(selector))) {
149
142
  if (match[2]) {
150
- var trimmed = match[2].trim();
143
+ const trimmed = match[2].trim();
151
144
  parts.push(currentSelector);
152
145
  currentSelector = '';
153
146
  if (trimmed === ',') {
@@ -169,8 +162,7 @@ var QuerySelector = /** @class */ (function () {
169
162
  groups.push(parts);
170
163
  }
171
164
  return groups;
172
- };
173
- return QuerySelector;
174
- }());
165
+ }
166
+ }
175
167
  exports.default = QuerySelector;
176
168
  //# 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":"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"}
@@ -3,24 +3,24 @@ 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
- var DOMException_1 = __importDefault(require("../exception/DOMException"));
7
- var ATTRIBUTE_REGEXP = /\[([a-zA-Z0-9-_]+)\]|\[([a-zA-Z0-9-_]+)([~|^$*]{0,1})[ ]*=[ ]*["']{0,1}([^"']+)["']{0,1}\]/g;
8
- var ATTRIBUTE_NAME_REGEXP = /[^a-zA-Z0-9-_$]/;
9
- var PSUEDO_REGEXP = /:([a-zA-Z-]+)\(([0-9n+-]+|odd|even)\)|:not\(([^)]+)\)|:([a-zA-Z-]+)/g;
10
- var CLASS_REGEXP = /\.([a-zA-Z0-9-_$]+)/g;
11
- var TAG_NAME_REGEXP = /^[a-zA-Z0-9-]+/;
6
+ const DOMException_1 = __importDefault(require("../exception/DOMException"));
7
+ const ATTRIBUTE_REGEXP = /\[([a-zA-Z0-9-_]+)\]|\[([a-zA-Z0-9-_]+)([~|^$*]{0,1})[ ]*=[ ]*["']{0,1}([^"']+)["']{0,1}\]/g;
8
+ const ATTRIBUTE_NAME_REGEXP = /[^a-zA-Z0-9-_$]/;
9
+ const PSUEDO_REGEXP = /:([a-zA-Z-]+)\(([0-9n+-]+|odd|even)\)|:not\(([^)]+)\)|:([a-zA-Z-]+)/g;
10
+ const CLASS_REGEXP = /\.([a-zA-Z0-9-_$]+)/g;
11
+ const TAG_NAME_REGEXP = /^[a-zA-Z0-9-]+/;
12
12
  /**
13
13
  * Selector item.
14
14
  */
15
- var SelectorItem = /** @class */ (function () {
15
+ class SelectorItem {
16
16
  /**
17
17
  * Constructor.
18
18
  *
19
19
  * @param selector Selector.
20
20
  */
21
- function SelectorItem(selector) {
21
+ constructor(selector) {
22
22
  this.tagName = null;
23
- var _a = selector.split(':'), baseSelector = _a[0], psuedoSelector = _a[1];
23
+ const [baseSelector, psuedoSelector] = selector.split(':');
24
24
  this.isAll = baseSelector === '*';
25
25
  this.isID = !this.isAll ? selector.startsWith('#') : false;
26
26
  this.isAttribute = !this.isAll && !this.isID && baseSelector.includes('[');
@@ -38,8 +38,8 @@ var SelectorItem = /** @class */ (function () {
38
38
  * @param element HTML element.
39
39
  * @returns TRUE if matching.
40
40
  */
41
- SelectorItem.prototype.match = function (element) {
42
- var selector = this.selector;
41
+ match(element) {
42
+ const selector = this.selector;
43
43
  // Is all (*)
44
44
  if (this.isAll) {
45
45
  return true;
@@ -67,7 +67,7 @@ var SelectorItem = /** @class */ (function () {
67
67
  return false;
68
68
  }
69
69
  return true;
70
- };
70
+ }
71
71
  /**
72
72
  * Matches a psuedo selector.
73
73
  *
@@ -75,11 +75,11 @@ var SelectorItem = /** @class */ (function () {
75
75
  * @param selector Selector.
76
76
  * @returns True if it is a match.
77
77
  */
78
- SelectorItem.prototype.matchesPsuedo = function (element, selector) {
79
- var regexp = new RegExp(PSUEDO_REGEXP, 'g');
80
- var match;
78
+ matchesPsuedo(element, selector) {
79
+ const regexp = new RegExp(PSUEDO_REGEXP, 'g');
80
+ let match;
81
81
  while ((match = regexp.exec(selector))) {
82
- var isNotClass = match[3] && match[3].trim()[0] === '.';
82
+ const isNotClass = match[3] && match[3].trim()[0] === '.';
83
83
  if (match[1] && !this.matchesNthChild(element, match[1], match[2])) {
84
84
  return false;
85
85
  }
@@ -93,7 +93,7 @@ var SelectorItem = /** @class */ (function () {
93
93
  }
94
94
  }
95
95
  return true;
96
- };
96
+ }
97
97
  /**
98
98
  * Matches a nth-child selector.
99
99
  *
@@ -102,48 +102,48 @@ var SelectorItem = /** @class */ (function () {
102
102
  * @param place Place.
103
103
  * @returns True if it is a match.
104
104
  */
105
- SelectorItem.prototype.matchesNthChild = function (element, psuedo, place) {
106
- var children = element.parentNode ? element.parentNode.children : [];
105
+ matchesNthChild(element, psuedo, place) {
106
+ let children = element.parentNode ? element.parentNode.children : [];
107
107
  switch (psuedo.toLowerCase()) {
108
108
  case 'nth-of-type':
109
- children = children.filter(function (child) { return child.tagName === element.tagName; });
109
+ children = children.filter((child) => child.tagName === element.tagName);
110
110
  break;
111
111
  case 'nth-last-child':
112
112
  children = children.reverse();
113
113
  break;
114
114
  case 'nth-last-of-type':
115
- children = children.filter(function (child) { return child.tagName === element.tagName; }).reverse();
115
+ children = children.filter((child) => child.tagName === element.tagName).reverse();
116
116
  break;
117
117
  }
118
118
  if (place === 'odd') {
119
- var index = children.indexOf(element);
119
+ const index = children.indexOf(element);
120
120
  return index !== -1 && (index + 1) % 2 !== 0;
121
121
  }
122
122
  else if (place === 'even') {
123
- var index = children.indexOf(element);
123
+ const index = children.indexOf(element);
124
124
  return index !== -1 && (index + 1) % 2 === 0;
125
125
  }
126
126
  else if (place.includes('n')) {
127
- var _a = place.replace(/ /g, '').split('n'), a = _a[0], b = _a[1];
128
- var childIndex = children.indexOf(element);
129
- var aNumber = Number(a);
130
- var bNumber = b !== undefined ? Number(b) : 0;
127
+ const [a, b] = place.replace(/ /g, '').split('n');
128
+ const childIndex = children.indexOf(element);
129
+ const aNumber = Number(a);
130
+ const bNumber = b !== undefined ? Number(b) : 0;
131
131
  if (isNaN(aNumber) || isNaN(bNumber)) {
132
- throw new DOMException_1.default("The selector \"".concat(this.selector, "\" is not valid."));
132
+ throw new DOMException_1.default(`The selector "${this.selector}" is not valid.`);
133
133
  }
134
- for (var i = 0, max = children.length; i <= max; i += aNumber) {
134
+ for (let i = 0, max = children.length; i <= max; i += aNumber) {
135
135
  if (childIndex === i + bNumber - 1) {
136
136
  return true;
137
137
  }
138
138
  }
139
139
  return false;
140
140
  }
141
- var number = Number(place);
141
+ const number = Number(place);
142
142
  if (isNaN(number)) {
143
- throw new DOMException_1.default("The selector \"".concat(this.selector, "\" is not valid."));
143
+ throw new DOMException_1.default(`The selector "${this.selector}" is not valid.`);
144
144
  }
145
145
  return children[number - 1] === element;
146
- };
146
+ }
147
147
  /**
148
148
  * Matches a psuedo selector expression.
149
149
  *
@@ -151,8 +151,8 @@ var SelectorItem = /** @class */ (function () {
151
151
  * @param psuedo Psuedo name.
152
152
  * @returns True if it is a match.
153
153
  */
154
- SelectorItem.prototype.matchesPsuedoExpression = function (element, psuedo) {
155
- var parent = element.parentNode;
154
+ matchesPsuedoExpression(element, psuedo) {
155
+ const parent = element.parentNode;
156
156
  if (!parent) {
157
157
  return false;
158
158
  }
@@ -160,31 +160,29 @@ var SelectorItem = /** @class */ (function () {
160
160
  case 'first-child':
161
161
  return parent.children[0] === element;
162
162
  case 'last-child':
163
- var lastChildChildren = parent.children;
163
+ const lastChildChildren = parent.children;
164
164
  return lastChildChildren[lastChildChildren.length - 1] === element;
165
165
  case 'only-child':
166
- var onlyChildChildren = parent.children;
166
+ const onlyChildChildren = parent.children;
167
167
  return onlyChildChildren.length === 1 && onlyChildChildren[0] === element;
168
168
  case 'first-of-type':
169
- for (var _i = 0, _a = parent.children; _i < _a.length; _i++) {
170
- var child = _a[_i];
169
+ for (const child of parent.children) {
171
170
  if (child.tagName === element.tagName) {
172
171
  return child === element;
173
172
  }
174
173
  }
175
174
  return false;
176
175
  case 'last-of-type':
177
- for (var i = parent.children.length - 1; i >= 0; i--) {
178
- var child = parent.children[i];
176
+ for (let i = parent.children.length - 1; i >= 0; i--) {
177
+ const child = parent.children[i];
179
178
  if (child.tagName === element.tagName) {
180
179
  return child === element;
181
180
  }
182
181
  }
183
182
  return false;
184
183
  case 'only-of-type':
185
- var isFound = false;
186
- for (var _b = 0, _c = parent.children; _b < _c.length; _b++) {
187
- var child = _c[_b];
184
+ let isFound = false;
185
+ for (const child of parent.children) {
188
186
  if (child.tagName === element.tagName) {
189
187
  if (isFound || child !== element) {
190
188
  return false;
@@ -195,7 +193,7 @@ var SelectorItem = /** @class */ (function () {
195
193
  return isFound;
196
194
  }
197
195
  return false;
198
- };
196
+ }
199
197
  /**
200
198
  * Matches attribute.
201
199
  *
@@ -203,11 +201,11 @@ var SelectorItem = /** @class */ (function () {
203
201
  * @param selector Selector.
204
202
  * @returns True if it is a match.
205
203
  */
206
- SelectorItem.prototype.matchesAttribute = function (element, selector) {
207
- var regexp = new RegExp(ATTRIBUTE_REGEXP, 'g');
208
- var match;
204
+ matchesAttribute(element, selector) {
205
+ const regexp = new RegExp(ATTRIBUTE_REGEXP, 'g');
206
+ let match;
209
207
  while ((match = regexp.exec(selector))) {
210
- var isPsuedo = match.index > 0 && selector[match.index - 1] === '(';
208
+ const isPsuedo = match.index > 0 && selector[match.index - 1] === '(';
211
209
  if (!isPsuedo &&
212
210
  ((match[1] && !this.matchesAttributeName(element, match[1])) ||
213
211
  (match[2] && !this.matchesAttributeNameAndValue(element, match[2], match[4], match[3])))) {
@@ -215,7 +213,7 @@ var SelectorItem = /** @class */ (function () {
215
213
  }
216
214
  }
217
215
  return true;
218
- };
216
+ }
219
217
  /**
220
218
  * Matches class.
221
219
  *
@@ -223,17 +221,17 @@ var SelectorItem = /** @class */ (function () {
223
221
  * @param selector Selector.
224
222
  * @returns True if it is a match.
225
223
  */
226
- SelectorItem.prototype.matchesClass = function (element, selector) {
227
- var regexp = new RegExp(CLASS_REGEXP, 'g');
228
- var classList = element.className.split(' ');
229
- var match;
224
+ matchesClass(element, selector) {
225
+ const regexp = new RegExp(CLASS_REGEXP, 'g');
226
+ const classList = element.className.split(' ');
227
+ let match;
230
228
  while ((match = regexp.exec(selector.split(':')[0]))) {
231
229
  if (!classList.includes(match[1])) {
232
230
  return false;
233
231
  }
234
232
  }
235
233
  return true;
236
- };
234
+ }
237
235
  /**
238
236
  * Matches attribute name only.
239
237
  *
@@ -241,12 +239,12 @@ var SelectorItem = /** @class */ (function () {
241
239
  * @param attributeName Attribute name.
242
240
  * @returns True if it is a match.
243
241
  */
244
- SelectorItem.prototype.matchesAttributeName = function (element, attributeName) {
242
+ matchesAttributeName(element, attributeName) {
245
243
  if (ATTRIBUTE_NAME_REGEXP.test(attributeName)) {
246
- throw new DOMException_1.default("The selector \"".concat(this.selector, "\" is not valid."));
244
+ throw new DOMException_1.default(`The selector "${this.selector}" is not valid.`);
247
245
  }
248
246
  return !!element._attributes[attributeName.toLowerCase()];
249
- };
247
+ }
250
248
  /** .
251
249
  *
252
250
  * Matches attribute name and value.
@@ -264,12 +262,11 @@ var SelectorItem = /** @class */ (function () {
264
262
  * @param attributeValue
265
263
  * @param matchType
266
264
  */
267
- SelectorItem.prototype.matchesAttributeNameAndValue = function (element, attributeName, attributeValue, matchType) {
268
- if (matchType === void 0) { matchType = null; }
269
- var attribute = element._attributes[attributeName.toLowerCase()];
270
- var value = attributeValue;
265
+ matchesAttributeNameAndValue(element, attributeName, attributeValue, matchType = null) {
266
+ const attribute = element._attributes[attributeName.toLowerCase()];
267
+ const value = attributeValue;
271
268
  if (ATTRIBUTE_NAME_REGEXP.test(attributeName)) {
272
- throw new DOMException_1.default("The selector \"".concat(this.selector, "\" is not valid."));
269
+ throw new DOMException_1.default(`The selector "${this.selector}" is not valid.`);
273
270
  }
274
271
  if (!attribute) {
275
272
  return false;
@@ -281,7 +278,7 @@ var SelectorItem = /** @class */ (function () {
281
278
  return attribute.value && attribute.value.split(' ').includes(value);
282
279
  // [attribute|="value"] - Starts with the specified word.
283
280
  case '|':
284
- return attribute && attribute.value && new RegExp("^".concat(value, "[- ]")).test(attribute.value);
281
+ return attribute && attribute.value && new RegExp(`^${value}[- ]`).test(attribute.value);
285
282
  // [attribute^="value"] - Begins with a specified value.
286
283
  case '^':
287
284
  return attribute && attribute.value && attribute.value.startsWith(value);
@@ -294,8 +291,7 @@ var SelectorItem = /** @class */ (function () {
294
291
  }
295
292
  }
296
293
  return attribute && attribute.value === value;
297
- };
298
- return SelectorItem;
299
- }());
294
+ }
295
+ }
300
296
  exports.default = SelectorItem;
301
297
  //# sourceMappingURL=SelectorItem.js.map