@voidzero-dev/vite-plus-test 0.0.0-0bfcc90f.20260209-0731

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.
Files changed (318) hide show
  1. package/LICENSE.md +691 -0
  2. package/browser/context.d.ts +4 -0
  3. package/browser/context.js +20 -0
  4. package/config.d.ts +3 -0
  5. package/coverage.d.ts +1 -0
  6. package/dist/@vitest/browser/client/.vite/manifest.json +24 -0
  7. package/dist/@vitest/browser/client/__vitest__/assets/index-BUCFJtth.js +57 -0
  8. package/dist/@vitest/browser/client/__vitest__/assets/index-DlhE0rqZ.css +1 -0
  9. package/dist/@vitest/browser/client/__vitest__/bg.png +0 -0
  10. package/dist/@vitest/browser/client/__vitest__/favicon.ico +0 -0
  11. package/dist/@vitest/browser/client/__vitest__/favicon.svg +5 -0
  12. package/dist/@vitest/browser/client/__vitest__/index.html +32 -0
  13. package/dist/@vitest/browser/client/__vitest_browser__/orchestrator-S_3e_uzt.js +345 -0
  14. package/dist/@vitest/browser/client/__vitest_browser__/tester-k74mgIRa.js +2171 -0
  15. package/dist/@vitest/browser/client/__vitest_browser__/utils-uxqdqUz8.js +223 -0
  16. package/dist/@vitest/browser/client/error-catcher.js +82 -0
  17. package/dist/@vitest/browser/client/esm-client-injector.js +67 -0
  18. package/dist/@vitest/browser/client/favicon.svg +5 -0
  19. package/dist/@vitest/browser/client/orchestrator.html +35 -0
  20. package/dist/@vitest/browser/client/tester/tester.html +13 -0
  21. package/dist/@vitest/browser/client.js +456 -0
  22. package/dist/@vitest/browser/context.d.ts +792 -0
  23. package/dist/@vitest/browser/context.js +541 -0
  24. package/dist/@vitest/browser/expect-element.js +32 -0
  25. package/dist/@vitest/browser/index-D6m36C6U.js +11 -0
  26. package/dist/@vitest/browser/index.d.ts +73 -0
  27. package/dist/@vitest/browser/index.js +3513 -0
  28. package/dist/@vitest/browser/jest-dom.d.ts +724 -0
  29. package/dist/@vitest/browser/locators.d.ts +354 -0
  30. package/dist/@vitest/browser/locators.js +1 -0
  31. package/dist/@vitest/browser/matchers.d.ts +29 -0
  32. package/dist/@vitest/browser/shared/screenshotMatcher/types.d.ts +22 -0
  33. package/dist/@vitest/browser/state.js +280 -0
  34. package/dist/@vitest/browser/types.d.ts +69 -0
  35. package/dist/@vitest/browser-playwright/context.d.ts +1 -0
  36. package/dist/@vitest/browser-playwright/index.d.ts +106 -0
  37. package/dist/@vitest/browser-playwright/index.js +1111 -0
  38. package/dist/@vitest/browser-playwright/locators.js +114 -0
  39. package/dist/@vitest/browser-preview/context.d.ts +1 -0
  40. package/dist/@vitest/browser-preview/index.d.ts +19 -0
  41. package/dist/@vitest/browser-preview/index.js +148 -0
  42. package/dist/@vitest/browser-preview/locators.js +79 -0
  43. package/dist/@vitest/browser-webdriverio/context.d.ts +1 -0
  44. package/dist/@vitest/browser-webdriverio/index.d.ts +63 -0
  45. package/dist/@vitest/browser-webdriverio/index.js +600 -0
  46. package/dist/@vitest/browser-webdriverio/locators.js +163 -0
  47. package/dist/@vitest/expect/index.d.ts +807 -0
  48. package/dist/@vitest/expect/index.js +1875 -0
  49. package/dist/@vitest/mocker/auto-register.d.ts +2 -0
  50. package/dist/@vitest/mocker/auto-register.js +9 -0
  51. package/dist/@vitest/mocker/automock.d.ts +12 -0
  52. package/dist/@vitest/mocker/automock.js +1 -0
  53. package/dist/@vitest/mocker/browser.d.ts +53 -0
  54. package/dist/@vitest/mocker/browser.js +91 -0
  55. package/dist/@vitest/mocker/chunk-automock.js +354 -0
  56. package/dist/@vitest/mocker/chunk-interceptor-native.js +15 -0
  57. package/dist/@vitest/mocker/chunk-mocker.js +521 -0
  58. package/dist/@vitest/mocker/chunk-pathe.M-eThtNZ.js +174 -0
  59. package/dist/@vitest/mocker/chunk-registry.js +185 -0
  60. package/dist/@vitest/mocker/chunk-utils.js +16 -0
  61. package/dist/@vitest/mocker/index.d-C-sLYZi-.d.ts +25 -0
  62. package/dist/@vitest/mocker/index.d.ts +2 -0
  63. package/dist/@vitest/mocker/index.js +185 -0
  64. package/dist/@vitest/mocker/mocker.d-TnKRhz7N.d.ts +81 -0
  65. package/dist/@vitest/mocker/node.d.ts +800 -0
  66. package/dist/@vitest/mocker/node.js +966 -0
  67. package/dist/@vitest/mocker/redirect.d.ts +3 -0
  68. package/dist/@vitest/mocker/redirect.js +79 -0
  69. package/dist/@vitest/mocker/register.d.ts +9 -0
  70. package/dist/@vitest/mocker/register.js +41 -0
  71. package/dist/@vitest/mocker/types.d-B8CCKmHt.d.ts +107 -0
  72. package/dist/@vitest/pretty-format/index.d.ts +124 -0
  73. package/dist/@vitest/pretty-format/index.js +1022 -0
  74. package/dist/@vitest/runner/chunk-tasks.js +340 -0
  75. package/dist/@vitest/runner/index.d.ts +180 -0
  76. package/dist/@vitest/runner/index.js +2114 -0
  77. package/dist/@vitest/runner/tasks.d-C7UxawJ9.d.ts +834 -0
  78. package/dist/@vitest/runner/types.d.ts +183 -0
  79. package/dist/@vitest/runner/types.js +1 -0
  80. package/dist/@vitest/runner/utils.d.ts +45 -0
  81. package/dist/@vitest/runner/utils.js +5 -0
  82. package/dist/@vitest/snapshot/environment.d-DHdQ1Csl.d.ts +22 -0
  83. package/dist/@vitest/snapshot/environment.d.ts +16 -0
  84. package/dist/@vitest/snapshot/environment.js +40 -0
  85. package/dist/@vitest/snapshot/index.d.ts +130 -0
  86. package/dist/@vitest/snapshot/index.js +1437 -0
  87. package/dist/@vitest/snapshot/manager.d.ts +18 -0
  88. package/dist/@vitest/snapshot/manager.js +73 -0
  89. package/dist/@vitest/snapshot/rawSnapshot.d-lFsMJFUd.d.ts +61 -0
  90. package/dist/@vitest/spy/index.d.ts +384 -0
  91. package/dist/@vitest/spy/index.js +433 -0
  92. package/dist/@vitest/utils/chunk-_commonjsHelpers.js +5 -0
  93. package/dist/@vitest/utils/chunk-pathe.M-eThtNZ.js +156 -0
  94. package/dist/@vitest/utils/constants.d.ts +21 -0
  95. package/dist/@vitest/utils/constants.js +49 -0
  96. package/dist/@vitest/utils/diff.d.ts +93 -0
  97. package/dist/@vitest/utils/diff.js +2199 -0
  98. package/dist/@vitest/utils/display.d.ts +29 -0
  99. package/dist/@vitest/utils/display.js +742 -0
  100. package/dist/@vitest/utils/error.d.ts +7 -0
  101. package/dist/@vitest/utils/error.js +42 -0
  102. package/dist/@vitest/utils/helpers.d.ts +73 -0
  103. package/dist/@vitest/utils/helpers.js +295 -0
  104. package/dist/@vitest/utils/highlight.d.ts +9 -0
  105. package/dist/@vitest/utils/highlight.js +538 -0
  106. package/dist/@vitest/utils/index.d.ts +5 -0
  107. package/dist/@vitest/utils/index.js +1 -0
  108. package/dist/@vitest/utils/offset.d.ts +5 -0
  109. package/dist/@vitest/utils/offset.js +32 -0
  110. package/dist/@vitest/utils/resolver.d.ts +7 -0
  111. package/dist/@vitest/utils/resolver.js +71 -0
  112. package/dist/@vitest/utils/serialize.d.ts +3 -0
  113. package/dist/@vitest/utils/serialize.js +118 -0
  114. package/dist/@vitest/utils/source-map.d.ts +55 -0
  115. package/dist/@vitest/utils/source-map.js +478 -0
  116. package/dist/@vitest/utils/timers.d.ts +33 -0
  117. package/dist/@vitest/utils/timers.js +49 -0
  118. package/dist/@vitest/utils/types.d-BCElaP-c.d.ts +53 -0
  119. package/dist/@vitest/utils/types.d.ts +34 -0
  120. package/dist/@vitest/utils/types.js +1 -0
  121. package/dist/browser-compat.js +3 -0
  122. package/dist/browser.d.ts +46 -0
  123. package/dist/browser.js +20 -0
  124. package/dist/chunks/_commonjsHelpers.D26ty3Ew.js +6 -0
  125. package/dist/chunks/base.CJ0Y4ePK.js +165 -0
  126. package/dist/chunks/benchmark.B3N2zMcH.js +40 -0
  127. package/dist/chunks/benchmark.d.DAaHLpsq.d.ts +24 -0
  128. package/dist/chunks/browser.d.ChKACdzH.d.ts +59 -0
  129. package/dist/chunks/cac.DVeoLl0M.js +1409 -0
  130. package/dist/chunks/cli-api.B7PN_QUv.js +13672 -0
  131. package/dist/chunks/config.d.Cy95HiCx.d.ts +210 -0
  132. package/dist/chunks/console.Cf-YriPC.js +146 -0
  133. package/dist/chunks/constants.D_Q9UYh-.js +36 -0
  134. package/dist/chunks/coverage.AVPTjMgw.js +3292 -0
  135. package/dist/chunks/coverage.D_JHT54q.js +25 -0
  136. package/dist/chunks/coverage.d.BZtK59WP.d.ts +37 -0
  137. package/dist/chunks/creator.DAmOKTvJ.js +673 -0
  138. package/dist/chunks/date.Bq6ZW5rf.js +73 -0
  139. package/dist/chunks/defaults.BOqNVLsY.js +74 -0
  140. package/dist/chunks/env.D4Lgay0q.js +8 -0
  141. package/dist/chunks/environment.d.CrsxCzP1.d.ts +29 -0
  142. package/dist/chunks/evaluatedModules.Dg1zASAC.js +17 -0
  143. package/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts +7 -0
  144. package/dist/chunks/git.Bm2pzPAa.js +71 -0
  145. package/dist/chunks/global.d.B15mdLcR.d.ts +99 -0
  146. package/dist/chunks/globals.DOayXfHP.js +30 -0
  147. package/dist/chunks/index.6Qv1eEA6.js +109 -0
  148. package/dist/chunks/index.C5r1PdPD.js +231 -0
  149. package/dist/chunks/index.Chj8NDwU.js +206 -0
  150. package/dist/chunks/index.CyBMJtT7.js +727 -0
  151. package/dist/chunks/index.D3XRDfWc.js +213 -0
  152. package/dist/chunks/index.D4KonVSU.js +6343 -0
  153. package/dist/chunks/index.M8mOzt4Y.js +3839 -0
  154. package/dist/chunks/index.Z5E_ObnR.js +37 -0
  155. package/dist/chunks/init-forks._y3TW739.js +41 -0
  156. package/dist/chunks/init-threads.DBO2kn-p.js +18 -0
  157. package/dist/chunks/init.B6MLFIaN.js +334 -0
  158. package/dist/chunks/inspector.CvyFGlXm.js +53 -0
  159. package/dist/chunks/modules.BJuCwlRJ.js +36 -0
  160. package/dist/chunks/node.Ce0vMQM7.js +14 -0
  161. package/dist/chunks/plugin.d.CtqpEehP.d.ts +38 -0
  162. package/dist/chunks/reporters.d.CWXNI2jG.d.ts +3271 -0
  163. package/dist/chunks/rpc.BoxB0q7B.js +76 -0
  164. package/dist/chunks/rpc.d.RH3apGEf.d.ts +64 -0
  165. package/dist/chunks/setup-common.Cm-kSBVi.js +60 -0
  166. package/dist/chunks/startModuleRunner.DEj0jb3e.js +861 -0
  167. package/dist/chunks/suite.d.BJWk38HB.d.ts +10 -0
  168. package/dist/chunks/test.B8ej_ZHS.js +254 -0
  169. package/dist/chunks/traces.CCmnQaNT.js +217 -0
  170. package/dist/chunks/traces.d.402V_yFI.d.ts +18 -0
  171. package/dist/chunks/utils.DvEY5TfP.js +52 -0
  172. package/dist/chunks/vi.2VT5v0um.js +3919 -0
  173. package/dist/chunks/vm.D3epNOPZ.js +744 -0
  174. package/dist/chunks/worker.d.Dyxm8DEL.d.ts +255 -0
  175. package/dist/cli.js +28 -0
  176. package/dist/client/.vite/manifest.json +24 -0
  177. package/dist/client/__vitest__/assets/index-BUCFJtth.js +57 -0
  178. package/dist/client/__vitest__/assets/index-DlhE0rqZ.css +1 -0
  179. package/dist/client/__vitest__/bg.png +0 -0
  180. package/dist/client/__vitest__/favicon.ico +0 -0
  181. package/dist/client/__vitest__/favicon.svg +5 -0
  182. package/dist/client/__vitest__/index.html +32 -0
  183. package/dist/client/__vitest_browser__/orchestrator-S_3e_uzt.js +345 -0
  184. package/dist/client/__vitest_browser__/tester-k74mgIRa.js +2171 -0
  185. package/dist/client/__vitest_browser__/utils-uxqdqUz8.js +223 -0
  186. package/dist/client/error-catcher.js +82 -0
  187. package/dist/client/esm-client-injector.js +67 -0
  188. package/dist/client/favicon.svg +5 -0
  189. package/dist/client/orchestrator.html +35 -0
  190. package/dist/client/tester/tester.html +13 -0
  191. package/dist/client.js +456 -0
  192. package/dist/config.cjs +94 -0
  193. package/dist/config.d.ts +104 -0
  194. package/dist/config.js +15 -0
  195. package/dist/context.js +541 -0
  196. package/dist/coverage.d.ts +118 -0
  197. package/dist/coverage.js +23 -0
  198. package/dist/dummy.js +2 -0
  199. package/dist/environments.d.ts +22 -0
  200. package/dist/environments.js +3 -0
  201. package/dist/expect-element.js +27 -0
  202. package/dist/index-D6m36C6U.js +6 -0
  203. package/dist/index-node.js +7 -0
  204. package/dist/index.d.ts +510 -0
  205. package/dist/index.js +19 -0
  206. package/dist/locators.d.ts +354 -0
  207. package/dist/locators.js +1 -0
  208. package/dist/mocker.d.ts +1 -0
  209. package/dist/mocker.js +1 -0
  210. package/dist/module-evaluator.d.ts +124 -0
  211. package/dist/module-evaluator.js +343 -0
  212. package/dist/module-runner-stub.js +44 -0
  213. package/dist/module-runner.js +17 -0
  214. package/dist/node.d.ts +251 -0
  215. package/dist/node.js +98 -0
  216. package/dist/path.js +7 -0
  217. package/dist/plugins/browser-client.mjs +2 -0
  218. package/dist/plugins/browser-context.mjs +2 -0
  219. package/dist/plugins/browser-locators.mjs +2 -0
  220. package/dist/plugins/browser-playwright.mjs +2 -0
  221. package/dist/plugins/browser-preview.mjs +2 -0
  222. package/dist/plugins/browser-webdriverio.mjs +2 -0
  223. package/dist/plugins/browser.mjs +2 -0
  224. package/dist/plugins/expect.mjs +2 -0
  225. package/dist/plugins/mocker-automock.mjs +2 -0
  226. package/dist/plugins/mocker-browser.mjs +2 -0
  227. package/dist/plugins/mocker-node.mjs +2 -0
  228. package/dist/plugins/mocker-redirect.mjs +2 -0
  229. package/dist/plugins/mocker-register.mjs +2 -0
  230. package/dist/plugins/mocker.mjs +2 -0
  231. package/dist/plugins/pretty-format.mjs +2 -0
  232. package/dist/plugins/runner-types.mjs +2 -0
  233. package/dist/plugins/runner-utils.mjs +2 -0
  234. package/dist/plugins/runner.mjs +2 -0
  235. package/dist/plugins/snapshot-environment.mjs +2 -0
  236. package/dist/plugins/snapshot-manager.mjs +2 -0
  237. package/dist/plugins/snapshot.mjs +2 -0
  238. package/dist/plugins/spy.mjs +2 -0
  239. package/dist/plugins/utils-constants.mjs +2 -0
  240. package/dist/plugins/utils-diff.mjs +2 -0
  241. package/dist/plugins/utils-display.mjs +2 -0
  242. package/dist/plugins/utils-error.mjs +2 -0
  243. package/dist/plugins/utils-helpers.mjs +2 -0
  244. package/dist/plugins/utils-highlight.mjs +2 -0
  245. package/dist/plugins/utils-offset.mjs +2 -0
  246. package/dist/plugins/utils-resolver.mjs +2 -0
  247. package/dist/plugins/utils-serialize.mjs +2 -0
  248. package/dist/plugins/utils-source-map.mjs +2 -0
  249. package/dist/plugins/utils-timers.mjs +2 -0
  250. package/dist/plugins/utils.mjs +2 -0
  251. package/dist/reporters.d.ts +27 -0
  252. package/dist/reporters.js +24 -0
  253. package/dist/runners.d.ts +50 -0
  254. package/dist/runners.js +19 -0
  255. package/dist/shared/screenshotMatcher/types.d.ts +22 -0
  256. package/dist/snapshot.d.ts +9 -0
  257. package/dist/snapshot.js +4 -0
  258. package/dist/spy.js +1 -0
  259. package/dist/state.js +280 -0
  260. package/dist/suite.d.ts +5 -0
  261. package/dist/suite.js +6 -0
  262. package/dist/types.d.ts +69 -0
  263. package/dist/vendor/chai.d.mts +1 -0
  264. package/dist/vendor/chai.mjs +3577 -0
  265. package/dist/vendor/es-module-lexer.d.mts +193 -0
  266. package/dist/vendor/es-module-lexer.mjs +79 -0
  267. package/dist/vendor/estree-walker.d.mts +583 -0
  268. package/dist/vendor/estree-walker.mjs +339 -0
  269. package/dist/vendor/expect-type.d.mts +1574 -0
  270. package/dist/vendor/expect-type.mjs +214 -0
  271. package/dist/vendor/magic-string.d.mts +261 -0
  272. package/dist/vendor/magic-string.mjs +1700 -0
  273. package/dist/vendor/obug.d.mts +56 -0
  274. package/dist/vendor/obug.mjs +276 -0
  275. package/dist/vendor/pathe.d.mts +46 -0
  276. package/dist/vendor/pathe.mjs +496 -0
  277. package/dist/vendor/picomatch.d.mts +1 -0
  278. package/dist/vendor/picomatch.mjs +1855 -0
  279. package/dist/vendor/shared-3g9mwCWP.mjs +31 -0
  280. package/dist/vendor/std-env.d.mts +88 -0
  281. package/dist/vendor/std-env.mjs +159 -0
  282. package/dist/vendor/tinybench.d.mts +317 -0
  283. package/dist/vendor/tinybench.mjs +504 -0
  284. package/dist/vendor/tinyexec.d.mts +72 -0
  285. package/dist/vendor/tinyexec.mjs +637 -0
  286. package/dist/vendor/tinyglobby.d.mts +157 -0
  287. package/dist/vendor/tinyglobby.mjs +832 -0
  288. package/dist/vendor/tinyrainbow.d.mts +60 -0
  289. package/dist/vendor/tinyrainbow.mjs +93 -0
  290. package/dist/vendor/vitest_browser.mjs +2 -0
  291. package/dist/vendor/vitest_internal_browser.mjs +2 -0
  292. package/dist/vendor/vitest_runner.mjs +2 -0
  293. package/dist/vendor/vitest_runners.mjs +2 -0
  294. package/dist/worker.d.ts +32 -0
  295. package/dist/worker.js +48 -0
  296. package/dist/workers/forks.js +54 -0
  297. package/dist/workers/runVmTests.js +95 -0
  298. package/dist/workers/threads.js +55 -0
  299. package/dist/workers/vmForks.js +36 -0
  300. package/dist/workers/vmThreads.js +37 -0
  301. package/environments.d.ts +1 -0
  302. package/globals.d.ts +20 -0
  303. package/import-meta.d.ts +5 -0
  304. package/importMeta.d.ts +4 -0
  305. package/index.cjs +5 -0
  306. package/index.d.cts +1 -0
  307. package/jsdom.d.ts +6 -0
  308. package/mocker.d.ts +1 -0
  309. package/node.d.ts +1 -0
  310. package/optional-types.d.ts +7 -0
  311. package/package.json +335 -0
  312. package/reporters.d.ts +1 -0
  313. package/runners.d.ts +1 -0
  314. package/snapshot.d.ts +1 -0
  315. package/suite.d.ts +1 -0
  316. package/suppress-warnings.cjs +21 -0
  317. package/vitest.mjs +2 -0
  318. package/worker.d.ts +1 -0
@@ -0,0 +1,22 @@
1
+ import { E as Environment } from './chunks/environment.d.CrsxCzP1.js';
2
+ export { a as EnvironmentReturn, V as VmEnvironmentReturn } from './chunks/environment.d.CrsxCzP1.js';
3
+ import './@vitest/utils/index.js';
4
+
5
+ declare const environments: {
6
+ "node": Environment;
7
+ "jsdom": Environment;
8
+ "happy-dom": Environment;
9
+ "edge-runtime": Environment;
10
+ };
11
+
12
+ interface PopulateOptions {
13
+ bindFunctions?: boolean;
14
+ additionalKeys?: string[];
15
+ }
16
+ declare function populateGlobal(global: any, win: any, options?: PopulateOptions): {
17
+ keys: Set<string>;
18
+ skipKeys: string[];
19
+ originals: Map<string | symbol, any>;
20
+ };
21
+
22
+ export { Environment, environments as builtinEnvironments, populateGlobal };
@@ -0,0 +1,3 @@
1
+ export { e as builtinEnvironments, p as populateGlobal } from './chunks/index.CyBMJtT7.js';
2
+ import 'node:url';
3
+ import 'node:console';
@@ -0,0 +1,27 @@
1
+ import{recordArtifact,expect,chai}from"vitest";import{getType}from".//browser.js";import{k as kAriaCheckedRoles,L as Locator,g as getAriaChecked,a as getAriaRole,b as getAriaDisabled,c as beginAriaCaches,e as endAriaCaches,i as isElementVisible$1,d as getElementAccessibleDescription,f as getElementAccessibleErrorMessage,h as getElementAccessibleName,j as cssEscape,l as convertToSelector,m as getBrowserState,p as processTimeoutOptions}from"./index-D6m36C6U.js";import{server}from".//context.js";function getAriaCheckedRoles(){return[...kAriaCheckedRoles]}function queryElementFromUserInput(_,K,q){return _ instanceof Locator&&(_=_.query()),_==null?null:getElementFromUserInput(_,K,q)}function getElementFromUserInput(_,K,q){_ instanceof Locator&&(_=_.element());let J=_?.ownerDocument?.defaultView||window;if(_ instanceof J.HTMLElement||_ instanceof J.SVGElement)return _;throw new UserInputElementTypeError(_,K,q)}function getNodeFromUserInput(_,K,q){_ instanceof Locator&&(_=_.element());let J=_.ownerDocument?.defaultView||window;if(_ instanceof J.Node)return _;throw new UserInputNodeTypeError(_,K,q)}function getMessage(_,K,q,J,Y,X){return[`${K}\n`,`${q}:\n${_.utils.EXPECTED_COLOR(redent(display(_,J),2))}`,`${Y}:\n${_.utils.RECEIVED_COLOR(redent(display(_,X),2))}`].join(`
2
+ `)}function redent(_,K){return indentString(stripIndent(_),K)}function indentString(_,K){return _.replace(/^(?!\s*$)/gm,` `.repeat(K))}function minIndent(_){let K=_.match(/^[ \t]*(?=\S)/gm);return K?K.reduce((_,K)=>Math.min(_,K.length),1/0):0}function stripIndent(_){let K=minIndent(_);if(K===0)return _;let q=RegExp(`^[ \\t]{${K}}`,`gm`);return _.replace(q,``)}function display(_,K){return typeof K==`string`?K:_.utils.stringify(K)}function toSentence(_,{wordConnector:K=`, `,lastWordConnector:q=` and `}={}){return[_.slice(0,-1).join(K),_.at(-1)].join(_.length>1?q:``)}class GenericTypeError extends Error{constructor(_,K,q,J){super(),Error.captureStackTrace&&Error.captureStackTrace(this,q);let Y=``;try{Y=J.utils.printWithType(`Received`,K,J.utils.printReceived)}catch{}this.message=[J.utils.matcherHint(`${J.isNot?`.not`:``}.${q.name}`,`received`,``),``,`${J.utils.RECEIVED_COLOR(`received`)} value must ${_} or a Locator that returns ${_}.`,Y].join(`
3
+ `)}}class UserInputElementTypeError extends GenericTypeError{constructor(_,K,q){super(`an HTMLElement or an SVGElement`,_,K,q)}}class UserInputNodeTypeError extends GenericTypeError{constructor(_,K,q){super(`a Node`,_,K,q)}}function getTag(_){return _ instanceof HTMLFormElement?`FORM`:_.tagName.toUpperCase()}function isInputElement(_){return getTag(_)===`INPUT`}function getSingleElementValue(_){if(_)switch(getTag(_)){case`INPUT`:return getInputValue(_);case`SELECT`:return getSelectValue(_);default:return _.value??getAccessibleValue(_)}}function getSelectValue({multiple:_,options:K}){let q=[...K].filter(_=>_.selected);if(_)return[...q].map(_=>_.value);if(q.length!==0)return q[0].value}function getInputValue(_){switch(_.type){case`number`:return _.value===``?null:Number(_.value);case`checkbox`:return _.checked;default:return _.value}}const rolesSupportingValues=[`meter`,`progressbar`,`slider`,`spinbutton`];function getAccessibleValue(_){if(rolesSupportingValues.includes(_.getAttribute(`role`)||``))return Number(_.getAttribute(`aria-valuenow`))}function normalize(_){return _.replace(/\s+/g,` `).trim()}function matches(_,K){return K instanceof RegExp?K.test(_):_.includes(String(K))}function arrayAsSetComparison(_,K){if(Array.isArray(_)&&Array.isArray(K)){let q=new Set(K);for(let K of new Set(_))if(!q.has(K))return!1;return!0}}const supportedRoles=getAriaCheckedRoles();function toBeChecked(_){let K=getElementFromUserInput(_,toBeChecked,this);if(!(()=>isInputElement(K)&&[`checkbox`,`radio`].includes(K.type))()&&!(()=>supportedRoles.includes(getAriaRole(K)||``)&&[`true`,`false`].includes(K.getAttribute(`aria-checked`)||``))())return{pass:!1,message:()=>`only inputs with type="checkbox" or type="radio" or elements with ${supportedRolesSentence()} and a valid aria-checked attribute can be used with .toBeChecked(). Use .toHaveValue() instead`};let q=getAriaChecked(K)===!0;return{pass:q,message:()=>{let _=q?`is`:`is not`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeChecked`,`element`,``),``,`Received element ${_} checked:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
4
+ `)}}}function supportedRolesSentence(){return toSentence(supportedRoles.map(_=>`role="${_}"`),{lastWordConnector:` or `})}function toBeEmptyDOMElement(_){let K=getElementFromUserInput(_,toBeEmptyDOMElement,this);return{pass:isEmptyElement(K),message:()=>[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeEmptyDOMElement`,`element`,``),``,`Received:`,` ${this.utils.printReceived(K.innerHTML)}`].join(`
5
+ `)}}function isEmptyElement(_){return[..._.childNodes].filter(_=>_.nodeType!==Node.COMMENT_NODE).length===0}function toBeDisabled(_){let K=getElementFromUserInput(_,toBeDisabled,this),q=isElementDisabled(K);return{pass:q,message:()=>{let _=q?`is`:`is not`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeDisabled`,`element`,``),``,`Received element ${_} disabled:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
6
+ `)}}}function toBeEnabled(_){let K=getElementFromUserInput(_,toBeEnabled,this),q=isElementDisabled(K);return{pass:!q,message:()=>{let _=q?`is not`:`is`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeEnabled`,`element`,``),``,`Received element ${_} enabled:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
7
+ `)}}}function isElementDisabled(_){return getTag(_).includes(`-`)?_.hasAttribute(`disabled`):getAriaDisabled(_)}function toBeInTheDocument(_){let K=null;(_!==null||!this.isNot)&&(K=queryElementFromUserInput(_,toBeInTheDocument,this));let q=K===null?!1:K.ownerDocument===K.getRootNode({composed:!0}),J=()=>`expected document not to contain element, found ${this.utils.stringify(K?.cloneNode(!0))} instead`,Y=()=>`element could not be found in the document`;return{pass:q,message:()=>[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeInTheDocument`,`element`,``),``,this.utils.RECEIVED_COLOR(this.isNot?J():Y())].join(`
8
+ `)}}const FORM_TAGS$1=[`FORM`,`INPUT`,`SELECT`,`TEXTAREA`];function isElementHavingAriaInvalid(_){return _.hasAttribute(`aria-invalid`)&&_.getAttribute(`aria-invalid`)!==`false`}function isSupportsValidityMethod(_){return FORM_TAGS$1.includes(getTag(_))}function isElementInvalid(_){let K=isElementHavingAriaInvalid(_);return isSupportsValidityMethod(_)?K||!_.checkValidity():K}function toBeInvalid(_){let K=getElementFromUserInput(_,toBeInvalid,this),q=isElementInvalid(K);return{pass:q,message:()=>{let _=q?`is`:`is not`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeInvalid`,`element`,``),``,`Received element ${_} currently invalid:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
9
+ `)}}}function toBeValid(_){let K=getElementFromUserInput(_,toBeInvalid,this),q=!isElementInvalid(K);return{pass:q,message:()=>{let _=q?`is`:`is not`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeValid`,`element`,``),``,`Received element ${_} currently valid:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
10
+ `)}}}function toBeInViewport(_,K){let q=getElementFromUserInput(_,toBeInViewport,this),J=K?.ratio??0;return getViewportIntersection(q,J).then(({pass:_,ratio:K})=>({pass:_,message:()=>{let Y=_?`is`:`is not`,X=J>0?` with ratio ${J}`:``,Z=K===void 0?``:` (actual ratio: ${K.toFixed(3)})`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeInViewport`,`element`,``),``,`Received element ${Y} in viewport${X}${Z}:`,` ${this.utils.printReceived(q.cloneNode(!1))}`].join(`
11
+ `)}}))}async function getViewportIntersection(_,K){let q=await new Promise(K=>{let q=new IntersectionObserver(_=>{_.length>0?K(_[0].intersectionRatio):K(0),q.disconnect()});q.observe(_),requestAnimationFrame(()=>{})});return{pass:q>0&&q>K-1e-9,ratio:q}}function toBePartiallyChecked(_){let K=getElementFromUserInput(_,toBePartiallyChecked,this);if(!(()=>isInputElement(K)&&K.type===`checkbox`)()&&!(()=>K.getAttribute(`role`)===`checkbox`)())return{pass:!1,message:()=>`only inputs with type="checkbox" or elements with role="checkbox" and a valid aria-checked attribute can be used with .toBePartiallyChecked(). Use .toHaveValue() instead`};let q=isAriaMixed(K);return{pass:q,message:()=>{let _=q?`is`:`is not`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBePartiallyChecked`,`element`,``),``,`Received element ${_} partially checked:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
12
+ `)}}}function isAriaMixed(_){let K=getAriaChecked(_)===`mixed`;return!K&&isInputElement(_)&&[`checkbox`,`radio`].includes(_.type)&&_.getAttribute(`aria-checked`)===`mixed`?!0:K}const FORM_TAGS=[`SELECT`,`TEXTAREA`],ARIA_FORM_TAGS=[`INPUT`,`SELECT`,`TEXTAREA`],UNSUPPORTED_INPUT_TYPES=[`color`,`hidden`,`range`,`submit`,`image`,`reset`],SUPPORTED_ARIA_ROLES=[`checkbox`,`combobox`,`gridcell`,`listbox`,`radiogroup`,`spinbutton`,`textbox`,`tree`];function isRequiredOnFormTagsExceptInput(_){return FORM_TAGS.includes(getTag(_))&&_.hasAttribute(`required`)}function isRequiredOnSupportedInput(_){return getTag(_)===`INPUT`&&_.hasAttribute(`required`)&&(_.hasAttribute(`type`)&&!UNSUPPORTED_INPUT_TYPES.includes(_.getAttribute(`type`)||``)||!_.hasAttribute(`type`))}function isElementRequiredByARIA(_){return _.hasAttribute(`aria-required`)&&_.getAttribute(`aria-required`)===`true`&&(ARIA_FORM_TAGS.includes(getTag(_))||_.hasAttribute(`role`)&&SUPPORTED_ARIA_ROLES.includes(_.getAttribute(`role`)||``))}function toBeRequired(_){let K=getElementFromUserInput(_,toBeRequired,this),q=isRequiredOnFormTagsExceptInput(K)||isRequiredOnSupportedInput(K)||isElementRequiredByARIA(K);return{pass:q,message:()=>{let _=q?`is`:`is not`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeRequired`,`element`,``),``,`Received element ${_} required:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
13
+ `)}}}function toBeVisible(_){let K=getElementFromUserInput(_,toBeVisible,this),q=K.ownerDocument===K.getRootNode({composed:!0});beginAriaCaches();let J=q&&isElementVisible(K);return endAriaCaches(),{pass:J,message:()=>{let _=J?`is`:`is not`;return[this.utils.matcherHint(`${this.isNot?`.not`:``}.toBeVisible`,`element`,``),``,`Received element ${_} visible${q?``:` (element is not in the document)`}:`,` ${this.utils.printReceived(K.cloneNode(!1))}`].join(`
14
+ `)}}}function isElementVisible(_){let K=isElementVisible$1(_);if(server.browser!==`webkit`)return K;let q=_.closest(`details`);return!q||_===q?K:isElementVisibleInDetails(_)}function isElementVisibleInDetails(_){let K=_;for(;K;){if(K.tagName===`DETAILS`){let q=K.querySelector(`summary`)===_;if(!K.open&&!q)return!1}K=K.parentElement}return _.offsetParent!==null}function toContainElement(_,K){let q=getElementFromUserInput(_,toContainElement,this),J=K===null?null:getElementFromUserInput(K,toContainElement,this);return{pass:q.contains(J),message:()=>[this.utils.matcherHint(`${this.isNot?`.not`:``}.toContainElement`,`element`,`element`),``,this.utils.RECEIVED_COLOR(`${this.utils.stringify(q.cloneNode(!1))} ${this.isNot?`contains:`:`does not contain:`} ${this.utils.stringify(J?J.cloneNode(!1):null)}
15
+ `)].join(`
16
+ `)}}function getNormalizedHtml(_,K){let q=_.ownerDocument.createElement(`div`);return q.innerHTML=K,q.innerHTML}function toContainHTML(_,K){let q=getElementFromUserInput(_,toContainHTML,this);if(typeof K!=`string`)throw TypeError(`.toContainHTML() expects a string value, got ${K}`);return{pass:q.outerHTML.includes(getNormalizedHtml(q,K)),message:()=>[this.utils.matcherHint(`${this.isNot?`.not`:``}.toContainHTML`,`element`,``),`Expected:`,` ${this.utils.EXPECTED_COLOR(K)}`,`Received:`,` ${this.utils.printReceived(q.cloneNode(!0))}`].join(`
17
+ `)}}function toHaveAccessibleDescription(_,K){let q=getElementFromUserInput(_,toHaveAccessibleDescription,this),J=getElementAccessibleDescription(q,!1),Y=q.ownerDocument.defaultView||window,X=arguments.length===1,Z=!1;return Z=X?J!==``:K instanceof Y.RegExp?K.test(J):this.equals(J,K,this.customTesters),{pass:Z,message:()=>{let _=this.isNot?`not to`:`to`;return getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveAccessibleDescription`,`element`,``),`Expected element ${_} have accessible description`,K,`Received`,J)}}}function toHaveAccessibleErrorMessage(_,K){let q=getElementFromUserInput(_,toHaveAccessibleErrorMessage,this),J=getElementAccessibleErrorMessage(q)??``,Y=q.ownerDocument.defaultView||window,X=arguments.length===1,Z=!1;return Z=X?J!==``:K instanceof Y.RegExp?K.test(J):this.equals(J,K,this.customTesters),{pass:Z,message:()=>{let _=this.isNot?`not to`:`to`;return K==null?[this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveAccessibleErrorMessage`,`element`,``),`Expected element ${_} have accessible error message, but got${this.isNot?``:` nothing`}`,this.isNot?this.utils.RECEIVED_COLOR(redent(J,2)):``].filter(Boolean).join(`
18
+
19
+ `):getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveAccessibleErrorMessage`,`element`,``),`Expected element ${_} have accessible error message`,K,`Received`,J)}}}function toHaveAccessibleName(_,K){let q=getElementFromUserInput(_,toHaveAccessibleName,this),J=getElementAccessibleName(q,!1),Y=arguments.length===1,X=q.ownerDocument.defaultView||window,Z=!1;return Z=Y?J!==``:K instanceof X.RegExp?K.test(J):this.equals(J,K,this.customTesters),{pass:Z,message:()=>{let _=this.isNot?`not to`:`to`;return getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.${toHaveAccessibleName.name}`,`element`,``),`Expected element ${_} have accessible name`,K,`Received`,J)}}}function toHaveAttribute(_,K,q){let J=getElementFromUserInput(_,toHaveAttribute,this),Y=q!==void 0,X=J.hasAttribute(K),Z=J.getAttribute(K);return{pass:Y?X&&this.equals(Z,q,this.customTesters):X,message:()=>{let _=this.isNot?`not to`:`to`,J=X?printAttribute(this.utils.stringify,K,Z):null,Q=this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveAttribute`,`element`,this.utils.printExpected(K),{secondArgument:Y?this.utils.printExpected(q):void 0,comment:getAttributeComment(this.utils.stringify,K,q)});return getMessage(this,Q,`Expected the element ${_} have attribute`,printAttribute(this.utils.stringify,K,q),`Received`,J)}}}function printAttribute(_,K,q){return q===void 0?K:`${K}=${_(q)}`}function getAttributeComment(_,K,q){return q===void 0?`element.hasAttribute(${_(K)})`:`element.getAttribute(${_(K)}) === ${_(q)}`}function toHaveClass(_,...K){let q=getElementFromUserInput(_,toHaveClass,this),{expectedClassNames:J,options:Y}=getExpectedClassNamesAndOptions(K),X=splitClassNames(q.getAttribute(`class`)),Z=J.reduce((_,K)=>_.concat(typeof K==`string`||!K?splitClassNames(K):K),[]),Q=Z.some(_=>_ instanceof RegExp);if(Y.exact&&Q)throw Error(`Exact option does not support RegExp expected class names`);return Y.exact?{pass:isSubset$1(Z,X)&&Z.length===X.length,message:()=>{let _=this.isNot?`not to`:`to`;return getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveClass`,`element`,this.utils.printExpected(Z.join(` `))),`Expected the element ${_} have EXACTLY defined classes`,Z.join(` `),`Received`,X.join(` `))}}:Z.length>0?{pass:isSubset$1(Z,X),message:()=>{let _=this.isNot?`not to`:`to`;return getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveClass`,`element`,this.utils.printExpected(Z.join(` `))),`Expected the element ${_} have class`,Z.join(` `),`Received`,X.join(` `))}}:{pass:this.isNot?X.length>0:!1,message:()=>this.isNot?getMessage(this,this.utils.matcherHint(`.not.toHaveClass`,`element`,``),`Expected the element to have classes`,`(none)`,`Received`,X.join(` `)):[this.utils.matcherHint(`.toHaveClass`,`element`),`At least one expected class must be provided.`].join(`
20
+ `)}}function getExpectedClassNamesAndOptions(_){let K=_.pop(),q,J;return typeof K==`object`&&!(K instanceof RegExp)?(q=_,J=K):(q=_.concat(K),J={exact:!1}),{expectedClassNames:q,options:J}}function splitClassNames(_){return _?_.split(/\s+/).filter(_=>_.length>0):[]}function isSubset$1(_,K){return _.every(_=>typeof _==`string`?K.includes(_):K.some(K=>_.test(K)))}function toHaveDisplayValue(_,K){let q=getElementFromUserInput(_,toHaveDisplayValue,this),J=getTag(q);if(![`SELECT`,`INPUT`,`TEXTAREA`].includes(J))throw Error(`.toHaveDisplayValue() currently supports only input, textarea or select elements, try with another matcher instead.`);if(isInputElement(q)&&[`radio`,`checkbox`].includes(q.type))throw Error(`.toHaveDisplayValue() currently does not support input[type="${q.type}"], try with another matcher instead.`);let Y=getValues(J,q),X=getExpectedValues(K),Z=X.filter(_=>Y.some(K=>_ instanceof RegExp?_.test(K):this.equals(K,String(_),this.customTesters))).length,Q=Z===Y.length,$=Z===X.length;return{pass:Q&&$,message:()=>getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveDisplayValue`,`element`,``),`Expected element ${this.isNot?`not `:``}to have display value`,K,`Received`,Y)}}function getValues(_,K){return _===`SELECT`?Array.from(K).filter(_=>_.selected).map(_=>_.textContent||``):[K.value]}function getExpectedValues(_){return Array.isArray(_)?_:[_]}function toHaveFocus(_){let K=getElementFromUserInput(_,toHaveFocus,this);return{pass:K.ownerDocument.activeElement===K,message:()=>[this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveFocus`,`element`,``),``,...this.isNot?[`Received element is focused:`,` ${this.utils.printReceived(K)}`]:[`Expected element with focus:`,` ${this.utils.printExpected(K)}`,`Received element with focus:`,` ${this.utils.printReceived(K.ownerDocument.activeElement)}`]].join(`
21
+ `)}}function toHaveFormValues(_,K){let q=getElementFromUserInput(_,toHaveFormValues,this),J=q.ownerDocument.defaultView||window;if(!(q instanceof J.HTMLFieldSetElement)&&!(q instanceof J.HTMLFormElement))throw TypeError(`toHaveFormValues must be called on a form or a fieldset, instead got ${getTag(q)}`);if(!K||typeof K!=`object`)throw TypeError(`toHaveFormValues must be called with an object of expected form values. Got ${K}`);let Y=getAllFormValues(q);return{pass:Object.entries(K).every(([_,K])=>this.equals(Y[_],K,[arrayAsSetComparison,...this.customTesters])),message:()=>{let _=this.isNot?`not to`:`to`,q=`${this.isNot?`.not`:``}.toHaveFormValues`,J={};for(let _ in Y)Object.hasOwn(K,_)&&(J[_]=Y[_]);return[this.utils.matcherHint(q,`element`,``),`Expected the element ${_} have form values`,this.utils.diff(K,J)].join(`
22
+
23
+ `)}}}function getMultiElementValue(_){let K=``;for(let q of _){if(K&&K!==q.type)throw Error(`Multiple form elements with the same name must be of the same type`);K=q.type}switch(K){case`radio`:{let K=_.find(_=>_.checked);return K?K.value:void 0}case`checkbox`:return _.filter(_=>_.checked).map(_=>_.value);default:return _.map(_=>_.value)}}function getFormValue(_,K){let q=[..._.querySelectorAll(`[name="${cssEscape(K)}"]`)];if(q.length!==0)switch(q.length){case 1:return getSingleElementValue(q[0]);default:return getMultiElementValue(q)}}function getPureName(_){return/\[\]$/.test(_)?_.slice(0,-2):_}function getAllFormValues(_){let K={};for(let q of _.elements){if(!(`name`in q))continue;let J=q.name;K[getPureName(J)]=getFormValue(_,J)}return K}function toHaveRole(_,K){let q=getElementFromUserInput(_,toHaveRole,this);beginAriaCaches();let J=getAriaRole(q);return endAriaCaches(),{pass:J===K,message:()=>{let _=this.isNot?`not to`:`to`;return getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveRole`,`element`,``),`Expected element ${_} have role`,K,`Received`,J)}}}function toHaveSelection(_,K){let q=getElementFromUserInput(_,toHaveSelection,this),J=K!==void 0;if(J&&typeof K!=`string`)throw Error(`expected selection must be a string or undefined`);let Y=getSelection(q);return{pass:J?this.equals(Y,K,[arrayAsSetComparison,...this.customTesters]):!!Y,message:()=>{let _=this.isNot?`not to`:`to`,q=this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveSelection`,`element`,K);return getMessage(this,q,`Expected the element ${_} have selection`,J?K:`(any)`,`Received`,Y)}}}function getSelection(_){let K=_.ownerDocument.getSelection();if(!K)return``;if([`INPUT`,`TEXTAREA`].includes(getTag(_))){let K=_;return[`radio`,`checkbox`].includes(K.type)||K.selectionStart==null||K.selectionEnd==null?``:K.value.toString().substring(K.selectionStart,K.selectionEnd)}if(K.anchorNode===null||K.focusNode===null)return``;let q=K.getRangeAt(0),J=_.ownerDocument.createRange();if(K.containsNode(_,!1))J.selectNodeContents(_),K.removeAllRanges(),K.addRange(J);else if(!(_.contains(K.anchorNode)&&_.contains(K.focusNode))){let Y=_===q.startContainer||_.contains(q.startContainer),X=_===q.endContainer||_.contains(q.endContainer);K.removeAllRanges(),(Y||X)&&(J.selectNodeContents(_),Y&&J.setStart(q.startContainer,q.startOffset),X&&J.setEnd(q.endContainer,q.endOffset),K.addRange(J))}let Y=K.toString();return K.removeAllRanges(),K.addRange(q),Y}const browser=server.config.browser.name,usedValuesProps=new Set(`backgroundPosition.background-position.bottom.left.right.top.height.width.margin-bottom.marginBottom.margin-left.marginLeft.margin-right.marginRight.margin-top.marginTop.min-height.minHeight.min-width.minWidth.padding-bottom.padding-left.padding-right.padding-top.text-indent.paddingBottom.paddingLeft.paddingRight.paddingTop.textIndent`.split(`.`));function toHaveStyle(_,K){let q=getElementFromUserInput(_,toHaveStyle,this),{getComputedStyle:J}=q.ownerDocument.defaultView,Y=typeof K==`object`?getStyleFromObjectCSS(K):computeCSSStyleDeclaration(K),X=J(q),Z=new Set(Array.from(q.style));return{pass:isSubset(Y,q,X,Z),message:()=>{let _=`${this.isNot?`.not`:``}.toHaveStyle`,K=new Set(Object.keys(Y)),J=printoutObjectStyles(Array.from(X).filter(_=>K.has(_)).reduce((_,K)=>(_[K]=(Z.has(K)&&usedValuesProps.has(K)?q.style:X)[K],_),{})),Q=J===``?`Expected styles could not be parsed by the browser. Did you make a typo?`:this.utils.diff(printoutObjectStyles(Y),J);return[this.utils.matcherHint(_,`element`,``),Q].join(`
24
+
25
+ `)}}}function getStyleFromObjectCSS(_){let K=browser===`chrome`||browser===`chromium`?document:document.implementation.createHTMLDocument(``),q=K.createElement(`div`);K.body.appendChild(q);let J=Object.keys(_);J.forEach(K=>{q.style[K]=_[K]});let Y={},X=window.getComputedStyle(q);return J.forEach(_=>{let K=(usedValuesProps.has(_)?q.style:X)[_];K!=null&&(Y[_]=K)}),q.remove(),Y}function computeCSSStyleDeclaration(_){let K=browser===`chrome`||browser===`chromium`||browser===`webkit`?document:document.implementation.createHTMLDocument(``),q=K.createElement(`div`);q.setAttribute(`style`,_.replace(/\n/g,``)),K.body.appendChild(q);let J=window.getComputedStyle(q),Y=Array.from(q.style).reduce((_,K)=>(_[K]=usedValuesProps.has(K)?q.style.getPropertyValue(K):J.getPropertyValue(K),_),{});return q.remove(),Y}function printoutObjectStyles(_){return Object.keys(_).sort().map(K=>`${K}: ${_[K]};`).join(`
26
+ `)}function isSubset(_,K,q,J){let Y=Object.keys(_);return Y.length?Y.every(Y=>{let X=_[Y],Z=Y.startsWith(`--`),Q=[Y];return Z||Q.push(Y.toLowerCase()),Q.some(_=>{let Z=J.has(Y)&&usedValuesProps.has(Y)?K.style:q;return Z[_]===X||Z.getPropertyValue(_)===X})}):!1}function toHaveTextContent(_,K,q={normalizeWhitespace:!0}){let J=getNodeFromUserInput(_,toHaveTextContent,this),Y=q.normalizeWhitespace?normalize(J.textContent||``):(J.textContent||``).replace(/\u00A0/g,` `),X=Y!==``&&K===``;return{pass:!X&&matches(Y,K),message:()=>{let _=this.isNot?`not to`:`to`;return getMessage(this,this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveTextContent`,`element`,``),X?`Checking with empty string will always match, use .toBeEmptyDOMElement() instead`:`Expected element ${_} have text content`,K,`Received`,Y)}}}function toHaveValue(_,K){let q=getElementFromUserInput(_,toHaveValue,this);if(isInputElement(q)&&[`checkbox`,`radio`].includes(q.type))throw Error(`input with type=checkbox or type=radio cannot be used with .toHaveValue(). Use .toBeChecked() for type=checkbox or .toHaveFormValues() instead`);let J=getSingleElementValue(q),Y=K!==void 0,X=K,Z=J;return K==J&&K!==J&&(X=`${K} (${typeof K})`,Z=`${J} (${typeof J})`),{pass:Y?this.equals(J,K,[arrayAsSetComparison,...this.customTesters]):!!J,message:()=>{let _=this.isNot?`not to`:`to`,q=this.utils.matcherHint(`${this.isNot?`.not`:``}.toHaveValue`,`element`,K);return getMessage(this,q,`Expected the element ${_} have value`,Y?X:`(any)`,`Received`,Z)}}}const counters=new Map([]);async function toMatchScreenshot(K,q,J=typeof q==`object`?q:{}){if(this.isNot)throw Error(`'toMatchScreenshot' cannot be used with "not"`);if(this.task===void 0||this.currentTestName===void 0)throw Error(`'toMatchScreenshot' cannot be used without test context`);let Y=`${this.task.result?.repeatCount??0}${this.testPath}${this.currentTestName}`,X=counters.get(Y);X===void 0&&(X={current:0},counters.set(Y,X)),X.current+=1;let Z=typeof q==`string`?q:`${this.currentTestName} ${X.current}`,Q=J.screenshotOptions&&`mask`in J.screenshotOptions?{...J,screenshotOptions:{...J.screenshotOptions,mask:J.screenshotOptions.mask.map(convertToSelector)}}:J,$=await getBrowserState().commands.triggerCommand(`__vitest_screenshotMatcher`,[Z,this.currentTestName,{element:convertToSelector(K),...Q}]);if($.pass===!1){let K=[];$.reference&&K.push({name:`reference`,...$.reference}),$.actual&&K.push({name:`actual`,...$.actual}),$.diff&&K.push({name:`diff`,...$.diff}),K.length>0&&await recordArtifact(this.task,{type:`internal:toMatchScreenshot`,kind:`visual-regression`,message:$.message,attachments:K})}return{pass:$.pass,message:()=>$.pass?``:[this.utils.matcherHint(`toMatchScreenshot`,`element`,``),``,$.message,$.reference?`\nReference screenshot:\n ${this.utils.EXPECTED_COLOR($.reference.path)}`:null,$.actual?`\nActual screenshot:\n ${this.utils.RECEIVED_COLOR($.actual.path)}`:null,$.diff?this.utils.DIM_COLOR(`\nDiff image:\n ${$.diff.path}`):null,``].filter(_=>_!==null).join(`
27
+ `)}}const matchers={toBeDisabled,toBeEnabled,toBeEmptyDOMElement,toBeInTheDocument,toBeInViewport,toBeInvalid,toBeRequired,toBeValid,toBeVisible,toContainElement,toContainHTML,toHaveAccessibleDescription,toHaveAccessibleErrorMessage,toHaveAccessibleName,toHaveAttribute,toHaveClass,toHaveFocus,toHaveFormValues,toHaveStyle,toHaveTextContent,toHaveValue,toHaveDisplayValue,toBeChecked,toBePartiallyChecked,toHaveRole,toHaveSelection,toMatchScreenshot},kLocator=Symbol.for(`$$vitest:locator`);function element(_,Y){if(_!=null&&!(_ instanceof HTMLElement)&&!(_ instanceof SVGElement)&&!(kLocator in _))throw Error(`Invalid element or locator: ${_}. Expected an instance of HTMLElement, SVGElement or Locator, received ${getType(_)}`);let X=expect.poll(function(){if(_ instanceof Element||_==null)return _;let K=chai.util.flag(this,`negate`),J=chai.util.flag(this,`_name`);if(K&&J===`toBeInTheDocument`)return _.query();if(J===`toHaveLength`)return _.elements();if(J===`toMatchScreenshot`&&!chai.util.flag(this,`_poll.assert_once`)&&chai.util.flag(this,`_poll.assert_once`,!0),chai.util.flag(this,`_isLastPollAttempt`))return _.element();let Y=_.query();if(!Y)throw Error(`Cannot find element with locator: ${JSON.stringify(_)}`);return Y},processTimeoutOptions(Y));return chai.util.flag(X,`_poll.element`,!0),X}expect.extend(matchers),expect.element=element;
@@ -0,0 +1,6 @@
1
+ import{server,page,utils}from".//context.js";import{__INTERNAL}from".//browser.js";var __defProp=Object.defineProperty,__defNormalProp=(e,T,E)=>T in e?__defProp(e,T,{enumerable:!0,configurable:!0,writable:!0,value:E}):e[T]=E,__publicField=(e,T,E)=>__defNormalProp(e,typeof T==`symbol`?T:T+``,E);function escapeWithQuotes(e,T=`'`){let E=JSON.stringify(e),D=E.substring(1,E.length-1).replace(/\\"/g,`"`);if(T===`'`)return T+D.replace(/'/g,`\\'`)+T;if(T===`"`)return T+D.replace(/"/g,`\\"`)+T;if(T==="`")return T+D.replace(/`/g,"`")+T;throw Error(`Invalid escape char`)}function cssEscape(e){let T=``;for(let E=0;E<e.length;E++)T+=cssEscapeOne(e,E);return T}function quoteCSSAttributeValue(e){return`"${cssEscape(e).replace(/\\ /g,` `)}"`}function cssEscapeOne(e,T){let E=e.charCodeAt(T);return E===0?`�`:E>=1&&E<=31||E>=48&&E<=57&&(T===0||T===1&&e.charCodeAt(0)===45)?`\\${E.toString(16)} `:T===0&&E===45&&e.length===1?`\\${e.charAt(T)}`:E>=128||E===45||E===95||E>=48&&E<=57||E>=65&&E<=90||E>=97&&E<=122?e.charAt(T):`\\${e.charAt(T)}`}function normalizeWhiteSpace(e){return e.replace(/[\u200b\u00ad]/g,``).trim().replace(/\s+/g,` `)}function normalizeEscapedRegexQuotes(e){return e.replace(/(^|[^\\])(\\\\)*\\(['"`])/g,`$1$2$3`)}function escapeRegexForSelector$1(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function escapeForTextSelector$1(e,T){return typeof e==`string`?`${JSON.stringify(e)}${T?`s`:`i`}`:escapeRegexForSelector$1(e)}function escapeForAttributeSelector(e,T){return typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"${T?`s`:`i`}`:escapeRegexForSelector$1(e)}function trimString(e,T,E=``){if(e.length<=T)return e;let D=[...e];return D.length>T?D.slice(0,T-E.length).join(``)+E:D.join(``)}function trimStringWithEllipsis(e,T){return trimString(e,T,`…`)}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var between=function(e,T,E){return e>=T&&e<=E};function digit(e){return between(e,48,57)}function hexdigit(e){return digit(e)||between(e,65,70)||between(e,97,102)}function uppercaseletter(e){return between(e,65,90)}function lowercaseletter(e){return between(e,97,122)}function letter(e){return uppercaseletter(e)||lowercaseletter(e)}function nonascii(e){return e>=128}function namestartchar(e){return letter(e)||nonascii(e)||e===95}function namechar(e){return namestartchar(e)||digit(e)||e===45}function nonprintable(e){return between(e,0,8)||e===11||between(e,14,31)||e===127}function newline(e){return e===10}function whitespace(e){return newline(e)||e===9||e===32}var maximumallowedcodepoint=1114111,InvalidCharacterError=class extends Error{constructor(e){super(e),this.name=`InvalidCharacterError`}};function preprocess(e){let T=[];for(let E=0;E<e.length;E++){let D=e.charCodeAt(E);if(D===13&&e.charCodeAt(E+1)===10&&(D=10,E++),(D===13||D===12)&&(D=10),D===0&&(D=65533),between(D,55296,56319)&&between(e.charCodeAt(E+1),56320,57343)){let T=D-55296,O=e.charCodeAt(E+1)-56320;D=2**16+T*2**10+O,E++}T.push(D)}return T}function stringFromCode(e){if(e<=65535)return String.fromCharCode(e);e-=2**16;let T=Math.floor(e/2**10)+55296,E=e%2**10+56320;return String.fromCharCode(T)+String.fromCharCode(E)}function tokenize(e){let T=preprocess(e),E=-1,D=[],O,k=function(e){return e>=T.length?-1:T[e]},A=function(e){if(e===void 0&&(e=1),e>3)throw`Spec Error: no more than three codepoints of lookahead.`;return k(E+e)},j=function(e){return e===void 0&&(e=1),E+=e,O=k(E),!0},M=function(){return--E,!0},N=function(e){return e===void 0&&(e=O),e===-1},P=function(){if(F(),j(),whitespace(O)){for(;whitespace(A());)j();return new WhitespaceToken}else if(O===34)return R();else if(O===35)if(namechar(A())||V(A(1),A(2))){let e=new HashToken(``);return U(A(1),A(2),A(3))&&(e.type=`id`),e.value=Y(),e}else return new DelimToken(O);else if(O===36)return A()===61?(j(),new SuffixMatchToken):new DelimToken(O);else if(O===39)return R();else if(O===40)return new OpenParenToken;else if(O===41)return new CloseParenToken;else if(O===42)return A()===61?(j(),new SubstringMatchToken):new DelimToken(O);else if(O===43)return J()?(M(),I()):new DelimToken(O);else if(O===44)return new CommaToken;else if(O===45)return J()?(M(),I()):A(1)===45&&A(2)===62?(j(2),new CDCToken):K()?(M(),L()):new DelimToken(O);else if(O===46)return J()?(M(),I()):new DelimToken(O);else if(O===58)return new ColonToken;else if(O===59)return new SemicolonToken;else if(O===60)return A(1)===33&&A(2)===45&&A(3)===45?(j(3),new CDOToken):new DelimToken(O);else if(O===64)return U(A(1),A(2),A(3))?new AtKeywordToken(Y()):new DelimToken(O);else if(O===91)return new OpenSquareToken;else if(O===92)return H()?(M(),L()):new DelimToken(O);else if(O===93)return new CloseSquareToken;else if(O===94)return A()===61?(j(),new PrefixMatchToken):new DelimToken(O);else if(O===123)return new OpenCurlyToken;else if(O===124)return A()===61?(j(),new DashMatchToken):A()===124?(j(),new ColumnToken):new DelimToken(O);else if(O===125)return new CloseCurlyToken;else if(O===126)return A()===61?(j(),new IncludeMatchToken):new DelimToken(O);else if(digit(O))return M(),I();else if(namestartchar(O))return M(),L();else if(N())return new EOFToken;else return new DelimToken(O)},F=function(){for(;A(1)===47&&A(2)===42;)for(j(2);;)if(j(),O===42&&A()===47){j();break}else if(N())return},I=function(){let e=X();if(U(A(1),A(2),A(3))){let T=new DimensionToken;return T.value=e.value,T.repr=e.repr,T.type=e.type,T.unit=Y(),T}else if(A()===37){j();let T=new PercentageToken;return T.value=e.value,T.repr=e.repr,T}else{let T=new NumberToken;return T.value=e.value,T.repr=e.repr,T.type=e.type,T}},L=function(){let e=Y();if(e.toLowerCase()===`url`&&A()===40){for(j();whitespace(A(1))&&whitespace(A(2));)j();return A()===34||A()===39||whitespace(A())&&(A(2)===34||A(2)===39)?new FunctionToken(e):z()}else if(A()===40)return j(),new FunctionToken(e);else return new IdentToken(e)},R=function(e){e===void 0&&(e=O);let T=``;for(;j();){if(O===e||N())return new StringToken(T);if(newline(O))return M(),new BadStringToken;O===92?N(A())||(newline(A())?j():T+=stringFromCode(B())):T+=stringFromCode(O)}throw Error(`Internal error`)},z=function(){let e=new URLToken(``);for(;whitespace(A());)j();if(N(A()))return e;for(;j();){if(O===41||N())return e;if(whitespace(O)){for(;whitespace(A());)j();return A()===41||N(A())?(j(),e):(Q(),new BadURLToken)}else if(O===34||O===39||O===40||nonprintable(O))return Q(),new BadURLToken;else if(O===92)if(H())e.value+=stringFromCode(B());else return Q(),new BadURLToken;else e.value+=stringFromCode(O)}throw Error(`Internal error`)},B=function(){if(j(),hexdigit(O)){let e=[O];for(let T=0;T<5&&hexdigit(A());T++)j(),e.push(O);whitespace(A())&&j();let T=Number.parseInt(e.map(e=>String.fromCharCode(e)).join(``),16);return T>maximumallowedcodepoint&&(T=65533),T}else if(N())return 65533;else return O},V=function(e,T){return!(e!==92||newline(T))},H=function(){return V(O,A())},U=function(e,T,E){return e===45?namestartchar(T)||T===45||V(T,E):namestartchar(e)?!0:e===92?V(e,T):!1},K=function(){return U(O,A(1),A(2))},q=function(e,T,E){return e===43||e===45?!!(digit(T)||T===46&&digit(E)):e===46?!!digit(T):!!digit(e)},J=function(){return q(O,A(1),A(2))},Y=function(){let e=``;for(;j();)if(namechar(O))e+=stringFromCode(O);else if(H())e+=stringFromCode(B());else return M(),e;throw Error(`Internal parse error`)},X=function(){let e=``,T=`integer`;for((A()===43||A()===45)&&(j(),e+=stringFromCode(O));digit(A());)j(),e+=stringFromCode(O);if(A(1)===46&&digit(A(2)))for(j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),T=`number`;digit(A());)j(),e+=stringFromCode(O);let E=A(1),D=A(2),k=A(3);if((E===69||E===101)&&digit(D))for(j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),T=`number`;digit(A());)j(),e+=stringFromCode(O);else if((E===69||E===101)&&(D===43||D===45)&&digit(k))for(j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),T=`number`;digit(A());)j(),e+=stringFromCode(O);let M=Z(e);return{type:T,value:M,repr:e}},Z=function(e){return+e},Q=function(){for(;j();){if(O===41||N())return;H()&&B()}},$=0;for(;!N(A());)if(D.push(P()),$++,$>T.length*2)throw Error(`I'm infinite-looping!`);return D}var CSSParserToken=class{constructor(){__publicField(this,`tokenType`,``),__publicField(this,`value`)}toJSON(){return{token:this.tokenType}}toString(){return this.tokenType}toSource(){return`${this}`}},BadStringToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`BADSTRING`)}},BadURLToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`BADURL`)}},WhitespaceToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`WHITESPACE`)}toString(){return`WS`}toSource(){return` `}},CDOToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`CDO`)}toSource(){return`<!--`}},CDCToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`CDC`)}toSource(){return`-->`}},ColonToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`:`)}},SemicolonToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`;`)}},CommaToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`,`)}},GroupingToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`value`,``),__publicField(this,`mirror`,``)}},OpenCurlyToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`{`),this.value=`{`,this.mirror=`}`}},CloseCurlyToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`}`),this.value=`}`,this.mirror=`{`}},OpenSquareToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`[`),this.value=`[`,this.mirror=`]`}},CloseSquareToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`]`),this.value=`]`,this.mirror=`[`}},OpenParenToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`(`),this.value=`(`,this.mirror=`)`}},CloseParenToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`)`),this.value=`)`,this.mirror=`(`}},IncludeMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`~=`)}},DashMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`|=`)}},PrefixMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`^=`)}},SuffixMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`$=`)}},SubstringMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`*=`)}},ColumnToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`||`)}},EOFToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`EOF`)}toSource(){return``}},DelimToken=class extends CSSParserToken{constructor(e){super(),__publicField(this,`tokenType`,`DELIM`),__publicField(this,`value`,``),this.value=stringFromCode(e)}toString(){return`DELIM(${this.value})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e}toSource(){return this.value===`\\`?`\\
2
+ `:this.value}},StringValuedToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`value`,``)}ASCIIMatch(e){return this.value.toLowerCase()===e.toLowerCase()}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e}},IdentToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`IDENT`),this.value=e}toString(){return`IDENT(${this.value})`}toSource(){return escapeIdent(this.value)}},FunctionToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`FUNCTION`),__publicField(this,`mirror`),this.value=e,this.mirror=`)`}toString(){return`FUNCTION(${this.value})`}toSource(){return`${escapeIdent(this.value)}(`}},AtKeywordToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`AT-KEYWORD`),this.value=e}toString(){return`AT(${this.value})`}toSource(){return`@${escapeIdent(this.value)}`}},HashToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`HASH`),__publicField(this,`type`),this.value=e,this.type=`unrestricted`}toString(){return`HASH(${this.value})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e.type=this.type,e}toSource(){return this.type===`id`?`#${escapeIdent(this.value)}`:`#${escapeHash(this.value)}`}},StringToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`STRING`),this.value=e}toString(){return`"${escapeString(this.value)}"`}},URLToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`URL`),this.value=e}toString(){return`URL(${this.value})`}toSource(){return`url("${escapeString(this.value)}")`}},NumberToken=class extends CSSParserToken{constructor(){super(),__publicField(this,`tokenType`,`NUMBER`),__publicField(this,`type`),__publicField(this,`repr`),this.type=`integer`,this.repr=``}toString(){return this.type===`integer`?`INT(${this.value})`:`NUMBER(${this.value})`}toJSON(){let e=super.toJSON();return e.value=this.value,e.type=this.type,e.repr=this.repr,e}toSource(){return this.repr}},PercentageToken=class extends CSSParserToken{constructor(){super(),__publicField(this,`tokenType`,`PERCENTAGE`),__publicField(this,`repr`),this.repr=``}toString(){return`PERCENTAGE(${this.value})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e.repr=this.repr,e}toSource(){return`${this.repr}%`}},DimensionToken=class extends CSSParserToken{constructor(){super(),__publicField(this,`tokenType`,`DIMENSION`),__publicField(this,`type`),__publicField(this,`repr`),__publicField(this,`unit`),this.type=`integer`,this.repr=``,this.unit=``}toString(){return`DIM(${this.value},${this.unit})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e.type=this.type,e.repr=this.repr,e.unit=this.unit,e}toSource(){let e=this.repr,T=escapeIdent(this.unit);return T[0].toLowerCase()===`e`&&(T[1]===`-`||between(T.charCodeAt(1),48,57))&&(T=`\\65 ${T.slice(1,T.length)}`),e+T}};function escapeIdent(e){e=`${e}`;let T=``,E=e.charCodeAt(0);for(let D=0;D<e.length;D++){let O=e.charCodeAt(D);if(O===0)throw new InvalidCharacterError(`Invalid character: the input contains U+0000.`);between(O,1,31)||O===127||D===0&&between(O,48,57)||D===1&&between(O,48,57)&&E===45?T+=`\\${O.toString(16)} `:O>=128||O===45||O===95||between(O,48,57)||between(O,65,90)||between(O,97,122)?T+=e[D]:T+=`\\${e[D]}`}return T}function escapeHash(e){e=`${e}`;let T=``;for(let E=0;E<e.length;E++){let D=e.charCodeAt(E);if(D===0)throw new InvalidCharacterError(`Invalid character: the input contains U+0000.`);D>=128||D===45||D===95||between(D,48,57)||between(D,65,90)||between(D,97,122)?T+=e[E]:T+=`\\${D.toString(16)} `}return T}function escapeString(e){e=`${e}`;let T=``;for(let E=0;E<e.length;E++){let D=e.charCodeAt(E);if(D===0)throw new InvalidCharacterError(`Invalid character: the input contains U+0000.`);between(D,1,31)||D===127?T+=`\\${D.toString(16)} `:D===34||D===92?T+=`\\${e[E]}`:T+=e[E]}return T}var InvalidSelectorError=class extends Error{};function parseCSS(e,T){let E;try{E=tokenize(e),E[E.length-1]instanceof EOFToken||E.push(new EOFToken)}catch(T){let E=`${T.message} while parsing selector "${e}"`,D=(T.stack||``).indexOf(T.message);throw D!==-1&&(T.stack=T.stack.substring(0,D)+E+T.stack.substring(D+T.message.length)),T.message=E,T}let D=E.find(e=>e instanceof AtKeywordToken||e instanceof BadStringToken||e instanceof BadURLToken||e instanceof ColumnToken||e instanceof CDOToken||e instanceof CDCToken||e instanceof SemicolonToken||e instanceof OpenCurlyToken||e instanceof CloseCurlyToken||e instanceof URLToken||e instanceof PercentageToken);if(D)throw new InvalidSelectorError(`Unsupported token "${D.toSource()}" while parsing selector "${e}"`);let O=0,k=new Set;function A(){return new InvalidSelectorError(`Unexpected token "${E[O].toSource()}" while parsing selector "${e}"`)}function j(){for(;E[O]instanceof WhitespaceToken;)O++}function M(e=O){return E[e]instanceof IdentToken}function N(e=O){return E[e]instanceof StringToken}function P(e=O){return E[e]instanceof NumberToken}function F(e=O){return E[e]instanceof CommaToken}function I(e=O){return E[e]instanceof OpenParenToken}function L(e=O){return E[e]instanceof CloseParenToken}function R(e=O){return E[e]instanceof FunctionToken}function z(e=O){return E[e]instanceof DelimToken&&E[e].value===`*`}function B(e=O){return E[e]instanceof EOFToken}function V(e=O){return E[e]instanceof DelimToken&&[`>`,`+`,`~`].includes(E[e].value)}function H(e=O){return F(e)||L(e)||B(e)||V(e)||E[e]instanceof WhitespaceToken}function U(){let e=[W()];for(;j(),F();)O++,e.push(W());return e}function W(){return j(),P()||N()?E[O++].value:G()}function G(){let e={simples:[]};for(j(),V()?e.simples.push({selector:{functions:[{name:`scope`,args:[]}]},combinator:``}):e.simples.push({selector:K(),combinator:``});;){if(j(),V())e.simples[e.simples.length-1].combinator=E[O++].value,j();else if(H())break;e.simples.push({combinator:``,selector:K()})}return e}function K(){let e=``,D=[];for(;!H();)if(M()||z())e+=E[O++].toSource();else if(E[O]instanceof HashToken)e+=E[O++].toSource();else if(E[O]instanceof DelimToken&&E[O].value===`.`)if(O++,M())e+=`.${E[O++].toSource()}`;else throw A();else if(E[O]instanceof ColonToken)if(O++,M())if(!T.has(E[O].value.toLowerCase()))e+=`:${E[O++].toSource()}`;else{let e=E[O++].value.toLowerCase();D.push({name:e,args:[]}),k.add(e)}else if(R()){let M=E[O++].value.toLowerCase();if(T.has(M)?(D.push({name:M,args:U()}),k.add(M)):e+=`:${M}(${q()})`,j(),!L())throw A();O++}else throw A();else if(E[O]instanceof OpenSquareToken){for(e+=`[`,O++;!(E[O]instanceof CloseSquareToken)&&!B();)e+=E[O++].toSource();if(!(E[O]instanceof CloseSquareToken))throw A();e+=`]`,O++}else throw A();if(!e&&!D.length)throw A();return{css:e||void 0,functions:D}}function q(){let e=``,T=1;for(;!B()&&((I()||R())&&T++,L()&&T--,T);)e+=E[O++].toSource();return e}let J=U();if(!B())throw A();if(J.some(e=>typeof e!=`object`||!(`simples`in e)))throw new InvalidSelectorError(`Error while parsing selector "${e}"`);return{selector:J,names:Array.from(k)}}var kNestedSelectorNames=new Set([`internal:has`,`internal:has-not`,`internal:and`,`internal:or`,`internal:chain`,`left-of`,`right-of`,`above`,`below`,`near`]),kNestedSelectorNamesWithDistance=new Set([`left-of`,`right-of`,`above`,`below`,`near`]),customCSSNames=new Set([`not`,`is`,`where`,`has`,`scope`,`light`,`visible`,`text`,`text-matches`,`text-is`,`has-text`,`above`,`below`,`right-of`,`left-of`,`near`,`nth-match`]);function parseSelector(e){let T=parseSelectorString(e),E=[];for(let e of T.parts){if(e.name===`css`||e.name===`css:light`){e.name===`css:light`&&(e.body=`:light(${e.body})`);let T=parseCSS(e.body,customCSSNames);E.push({name:`css`,body:T.selector,source:e.body});continue}if(kNestedSelectorNames.has(e.name)){let T,D;try{let E=JSON.parse(`[${e.body}]`);if(!Array.isArray(E)||E.length<1||E.length>2||typeof E[0]!=`string`)throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`);if(T=E[0],E.length===2){if(typeof E[1]!=`number`||!kNestedSelectorNamesWithDistance.has(e.name))throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`);D=E[1]}}catch{throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`)}let O={name:e.name,source:e.body,body:{parsed:parseSelector(T),distance:D}},k=[...O.body.parsed.parts].reverse().find(e=>e.name===`internal:control`&&e.body===`enter-frame`),A=k?O.body.parsed.parts.indexOf(k):-1;A!==-1&&selectorPartsEqual(O.body.parsed.parts.slice(0,A+1),E.slice(0,A+1))&&O.body.parsed.parts.splice(0,A+1),E.push(O);continue}E.push({...e,source:e.body})}if(kNestedSelectorNames.has(E[0].name))throw new InvalidSelectorError(`"${E[0].name}" selector cannot be first`);return{capture:T.capture,parts:E}}function selectorPartsEqual(e,T){return stringifySelector({parts:e})===stringifySelector({parts:T})}function stringifySelector(e,T){return typeof e==`string`?e:e.parts.map((E,D)=>{let O=!0;!T&&D!==e.capture&&(E.name===`css`||E.name===`xpath`&&E.source.startsWith(`//`)||E.source.startsWith(`..`))&&(O=!1);let k=O?`${E.name}=`:``;return`${D===e.capture?`*`:``}${k}${E.source}`}).join(` >> `)}function visitAllSelectorParts(e,T){let E=(e,D)=>{for(let O of e.parts)T(O,D),kNestedSelectorNames.has(O.name)&&E(O.body.parsed,!0)};E(e,!1)}function parseSelectorString(e){let T=0,E,D=0,O={parts:[]},k=()=>{let E=e.substring(D,T).trim(),k=E.indexOf(`=`),A,j;k!==-1&&E.substring(0,k).trim().match(/^[\w\-+:*]+$/)?(A=E.substring(0,k).trim(),j=E.substring(k+1)):E.length>1&&E[0]===`"`&&E[E.length-1]===`"`||E.length>1&&E[0]===`'`&&E[E.length-1]===`'`?(A=`text`,j=E):/^\(*\/\//.test(E)||E.startsWith(`..`)?(A=`xpath`,j=E):(A=`css`,j=E);let M=!1;if(A[0]===`*`&&(M=!0,A=A.substring(1)),O.parts.push({name:A,body:j}),M){if(O.capture!==void 0)throw new InvalidSelectorError(`Only one of the selectors can capture using * modifier`);O.capture=O.parts.length-1}};if(!e.includes(`>>`))return T=e.length,k(),O;let A=()=>{let E=e.substring(D,T).match(/^\s*text\s*=(.*)$/);return!!E&&!!E[1]};for(;T<e.length;){let O=e[T];O===`\\`&&T+1<e.length?T+=2:O===E?(E=void 0,T++):!E&&(O===`"`||O===`'`||O==="`")&&!A()?(E=O,T++):!E&&O===`>`&&e[T+1]===`>`?(k(),T+=2,D=T):T++}return k(),O}function parseAttributeSelector(e,T){let E=0,D=e.length===0,O=()=>e[E]||``,k=()=>{let T=O();return++E,D=E>=e.length,T},A=T=>{throw D?new InvalidSelectorError(`Unexpected end of selector while parsing selector \`${e}\``):new InvalidSelectorError(`Error while parsing selector \`${e}\` - unexpected symbol "${O()}" at position ${E}${T?` during ${T}`:``}`)};function j(){for(;!D&&/\s/.test(O());)k()}function M(e){return e>=`€`||e>=`0`&&e<=`9`||e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e>=`0`&&e<=`9`||e===`_`||e===`-`}function N(){let e=``;for(j();!D&&M(O());)e+=k();return e}function P(e){let T=k();for(T!==e&&A(`parsing quoted string`);!D&&O()!==e;)O()===`\\`&&k(),T+=k();return O()!==e&&A(`parsing quoted string`),T+=k(),T}function F(){k()!==`/`&&A(`parsing regular expression`);let T=``,E=!1;for(;!D;){if(O()===`\\`)T+=k(),D&&A(`parsing regular expression`);else if(E&&O()===`]`)E=!1;else if(!E&&O()===`[`)E=!0;else if(!E&&O()===`/`)break;T+=k()}k()!==`/`&&A(`parsing regular expression`);let j=``;for(;!D&&O().match(/[dgimsuy]/);)j+=k();try{return new RegExp(T,j)}catch(T){throw new InvalidSelectorError(`Error while parsing selector \`${e}\`: ${T.message}`)}}function I(){let e=``;return j(),e=O()===`'`||O()===`"`?P(O()).slice(1,-1):N(),e||A(`parsing property path`),e}function L(){j();let e=``;return D||(e+=k()),!D&&e!==`=`&&(e+=k()),[`=`,`*=`,`^=`,`$=`,`|=`,`~=`].includes(e)||A(`parsing operator`),e}function R(){k();let T=[];for(T.push(I()),j();O()===`.`;)k(),T.push(I()),j();if(O()===`]`)return k(),{name:T.join(`.`),jsonPath:T,op:`<truthy>`,value:null,caseSensitive:!1};let E=L(),N,R=!0;if(j(),O()===`/`){if(E!==`=`)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - cannot use ${E} in attribute with regular expression`);N=F()}else if(O()===`'`||O()===`"`)N=P(O()).slice(1,-1),j(),O()===`i`||O()===`I`?(R=!1,k()):(O()===`s`||O()===`S`)&&(R=!0,k());else{for(N=``;!D&&(M(O())||O()===`+`||O()===`.`);)N+=k();N===`true`?N=!0:N===`false`&&(N=!1)}if(j(),O()!==`]`&&A(`parsing attribute value`),k(),E!==`=`&&typeof N!=`string`)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - cannot use ${E} in attribute with non-string matching value - ${N}`);return{name:T.join(`.`),jsonPath:T,op:E,value:N,caseSensitive:R}}let z={name:``,attributes:[]};for(z.name=N(),j();O()===`[`;)z.attributes.push(R()),j();if(D||A(void 0),!z.name&&!z.attributes.length)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - selector cannot be empty`);return z}function hasExplicitAccessibleName(e){return e.hasAttribute(`aria-label`)||e.hasAttribute(`aria-labelledby`)}var kAncestorPreventingLandmark=`article:not([role]), aside:not([role]), main:not([role]), nav:not([role]), section:not([role]), [role=article], [role=complementary], [role=main], [role=navigation], [role=region]`,kGlobalAriaAttributes=new Map([[`aria-atomic`,void 0],[`aria-busy`,void 0],[`aria-controls`,void 0],[`aria-current`,void 0],[`aria-describedby`,void 0],[`aria-details`,void 0],[`aria-dropeffect`,void 0],[`aria-flowto`,void 0],[`aria-grabbed`,void 0],[`aria-hidden`,void 0],[`aria-keyshortcuts`,void 0],[`aria-label`,new Set([`caption`,`code`,`deletion`,`emphasis`,`generic`,`insertion`,`paragraph`,`presentation`,`strong`,`subscript`,`superscript`])],[`aria-labelledby`,new Set([`caption`,`code`,`deletion`,`emphasis`,`generic`,`insertion`,`paragraph`,`presentation`,`strong`,`subscript`,`superscript`])],[`aria-live`,void 0],[`aria-owns`,void 0],[`aria-relevant`,void 0],[`aria-roledescription`,new Set([`generic`])]]);function hasGlobalAriaAttribute(e,T){return[...kGlobalAriaAttributes].some(([E,D])=>!D?.has(T||``)&&e.hasAttribute(E))}function hasTabIndex(e){return!Number.isNaN(Number(String(e.getAttribute(`tabindex`))))}function isFocusable(e){return!isNativelyDisabled(e)&&(isNativelyFocusable(e)||hasTabIndex(e))}function isNativelyFocusable(e){let T=elementSafeTagName(e);return[`BUTTON`,`DETAILS`,`SELECT`,`TEXTAREA`].includes(T)?!0:T===`A`||T===`AREA`?e.hasAttribute(`href`):T===`INPUT`?!e.hidden:!1}var kImplicitRoleByTagName={A:e=>e.hasAttribute(`href`)?`link`:null,AREA:e=>e.hasAttribute(`href`)?`link`:null,ARTICLE:()=>`article`,ASIDE:()=>`complementary`,BLOCKQUOTE:()=>`blockquote`,BUTTON:()=>`button`,CAPTION:()=>`caption`,CODE:()=>`code`,DATALIST:()=>`listbox`,DD:()=>`definition`,DEL:()=>`deletion`,DETAILS:()=>`group`,DFN:()=>`term`,DIALOG:()=>`dialog`,DT:()=>`term`,EM:()=>`emphasis`,FIELDSET:()=>`group`,FIGURE:()=>`figure`,FOOTER:e=>closestCrossShadow(e,kAncestorPreventingLandmark)?null:`contentinfo`,FORM:e=>hasExplicitAccessibleName(e)?`form`:null,H1:()=>`heading`,H2:()=>`heading`,H3:()=>`heading`,H4:()=>`heading`,H5:()=>`heading`,H6:()=>`heading`,HEADER:e=>closestCrossShadow(e,kAncestorPreventingLandmark)?null:`banner`,HR:()=>`separator`,HTML:()=>`document`,IMG:e=>e.getAttribute(`alt`)===``&&!e.getAttribute(`title`)&&!hasGlobalAriaAttribute(e)&&!hasTabIndex(e)?`presentation`:`img`,INPUT:e=>{let T=e.type.toLowerCase();if(T===`search`)return e.hasAttribute(`list`)?`combobox`:`searchbox`;if([`email`,`tel`,`text`,`url`,``].includes(T)){let T=getIdRefs(e,e.getAttribute(`list`))[0];return T&&elementSafeTagName(T)===`DATALIST`?`combobox`:`textbox`}return T===`hidden`?``:{button:`button`,checkbox:`checkbox`,image:`button`,number:`spinbutton`,radio:`radio`,range:`slider`,reset:`button`,submit:`button`}[T]||`textbox`},INS:()=>`insertion`,LI:()=>`listitem`,MAIN:()=>`main`,MARK:()=>`mark`,MATH:()=>`math`,MENU:()=>`list`,METER:()=>`meter`,NAV:()=>`navigation`,OL:()=>`list`,OPTGROUP:()=>`group`,OPTION:()=>`option`,OUTPUT:()=>`status`,P:()=>`paragraph`,PROGRESS:()=>`progressbar`,SECTION:e=>hasExplicitAccessibleName(e)?`region`:null,SELECT:e=>e.hasAttribute(`multiple`)||e.size>1?`listbox`:`combobox`,STRONG:()=>`strong`,SUB:()=>`subscript`,SUP:()=>`superscript`,SVG:()=>`img`,TABLE:()=>`table`,TBODY:()=>`rowgroup`,TD:e=>{let T=closestCrossShadow(e,`table`),E=T?getExplicitAriaRole(T):``;return E===`grid`||E===`treegrid`?`gridcell`:`cell`},TEXTAREA:()=>`textbox`,TFOOT:()=>`rowgroup`,TH:e=>{if(e.getAttribute(`scope`)===`col`)return`columnheader`;if(e.getAttribute(`scope`)===`row`)return`rowheader`;let T=closestCrossShadow(e,`table`),E=T?getExplicitAriaRole(T):``;return E===`grid`||E===`treegrid`?`gridcell`:`cell`},THEAD:()=>`rowgroup`,TIME:()=>`time`,TR:()=>`row`,UL:()=>`list`},kPresentationInheritanceParents={DD:[`DL`,`DIV`],DIV:[`DL`],DT:[`DL`,`DIV`],LI:[`OL`,`UL`],TBODY:[`TABLE`],TD:[`TR`],TFOOT:[`TABLE`],TH:[`TR`],THEAD:[`TABLE`],TR:[`THEAD`,`TBODY`,`TFOOT`,`TABLE`]};function getImplicitAriaRole(e){let T=kImplicitRoleByTagName[elementSafeTagName(e)]?.call(kImplicitRoleByTagName,e)||``;if(!T)return null;let E=e;for(;E;){let e=parentElementOrShadowHost(E),T=kPresentationInheritanceParents[elementSafeTagName(E)];if(!T||!e||!T.includes(elementSafeTagName(e)))break;let D=getExplicitAriaRole(e);if((D===`none`||D===`presentation`)&&!hasPresentationConflictResolution(e,D))return D;E=e}return T}var allRoles=`alert.alertdialog.application.article.banner.blockquote.button.caption.cell.checkbox.code.columnheader.combobox.command.complementary.composite.contentinfo.definition.deletion.dialog.directory.document.emphasis.feed.figure.form.generic.grid.gridcell.group.heading.img.input.insertion.landmark.link.list.listbox.listitem.log.main.marquee.math.meter.menu.menubar.menuitem.menuitemcheckbox.menuitemradio.navigation.none.note.option.paragraph.presentation.progressbar.radio.radiogroup.range.region.roletype.row.rowgroup.rowheader.scrollbar.search.searchbox.section.sectionhead.select.separator.slider.spinbutton.status.strong.structure.subscript.superscript.switch.tab.table.tablist.tabpanel.term.textbox.time.timer.toolbar.tooltip.tree.treegrid.treeitem.widget.window`.split(`.`),abstractRoles=[`command`,`composite`,`input`,`landmark`,`range`,`roletype`,`section`,`sectionhead`,`select`,`structure`,`widget`,`window`],validRoles=allRoles.filter(e=>!abstractRoles.includes(e));function getExplicitAriaRole(e){return(e.getAttribute(`role`)||``).split(` `).map(e=>e.trim()).find(e=>validRoles.includes(e))||null}function hasPresentationConflictResolution(e,T){return hasGlobalAriaAttribute(e,T)||isFocusable(e)}function getAriaRole(e){let T=getExplicitAriaRole(e);if(!T)return getImplicitAriaRole(e);if(T===`none`||T===`presentation`){let T=getImplicitAriaRole(e);if(hasPresentationConflictResolution(e,T))return T}return T}function getAriaBoolean(e){return e===null?void 0:e.toLowerCase()===`true`}function isElementIgnoredForAria(e){return[`STYLE`,`SCRIPT`,`NOSCRIPT`,`TEMPLATE`].includes(elementSafeTagName(e))}function isElementHiddenForAria(e){if(isElementIgnoredForAria(e))return!0;let T=getElementComputedStyle(e),E=e.nodeName===`SLOT`;if(T?.display===`contents`&&!E){for(let T=e.firstChild;T;T=T.nextSibling)if(T.nodeType===1&&!isElementHiddenForAria(T)||T.nodeType===3&&isVisibleTextNode(T))return!1;return!0}return!(e.nodeName===`OPTION`&&e.closest(`select`))&&!E&&!isElementStyleVisibilityVisible(e,T)?!0:belongsToDisplayNoneOrAriaHiddenOrNonSlotted(e)}function belongsToDisplayNoneOrAriaHiddenOrNonSlotted(e){let T=cacheIsHidden?.get(e);if(T===void 0){if(T=!1,e.parentElement&&e.parentElement.shadowRoot&&!e.assignedSlot&&(T=!0),!T){let E=getElementComputedStyle(e);T=!E||E.display===`none`||getAriaBoolean(e.getAttribute(`aria-hidden`))===!0}if(!T){let E=parentElementOrShadowHost(e);E&&(T=belongsToDisplayNoneOrAriaHiddenOrNonSlotted(E))}cacheIsHidden?.set(e,T)}return T}function getIdRefs(e,T){if(!T)return[];let E=enclosingShadowRootOrDocument(e);if(!E)return[];try{let e=T.split(` `).filter(e=>!!e),D=new Set;for(let T of e){let e=E.querySelector(`#${CSS.escape(T)}`);e&&D.add(e)}return[...D]}catch{return[]}}function trimFlatString(e){return e.trim()}function asFlatString(e){return e.split(`\xA0`).map(e=>e.replace(/\r\n/g,`
3
+ `).replace(/[\u200b\u00ad]/g,``).replace(/\s\s*/g,` `)).join(`\xA0`).trim()}function queryInAriaOwned(e,T){let E=[...e.querySelectorAll(T)];for(let D of getIdRefs(e,e.getAttribute(`aria-owns`)))D.matches(T)&&E.push(D),E.push(...D.querySelectorAll(T));return E}function getPseudoContent(e,T){let E=T===`::before`?cachePseudoContentBefore:cachePseudoContentAfter;if(E?.has(e))return E?.get(e)||``;let D=getPseudoContentImpl(getElementComputedStyle(e,T));return E&&E.set(e,D),D}function getPseudoContentImpl(e){if(!e)return``;let T=e.content;if(T[0]===`'`&&T[T.length-1]===`'`||T[0]===`"`&&T[T.length-1]===`"`){let E=T.substring(1,T.length-1);return(e.display||`inline`)===`inline`?E:` ${E} `}return``}function getAriaLabelledByElements(e){let T=e.getAttribute(`aria-labelledby`);return T===null?null:getIdRefs(e,T)}function allowsNameFromContent(e,T){let E=[`button`,`cell`,`checkbox`,`columnheader`,`gridcell`,`heading`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`row`,`rowheader`,`switch`,`tab`,`tooltip`,`treeitem`].includes(e),D=T&&[``,`caption`,`code`,`contentinfo`,`definition`,`deletion`,`emphasis`,`insertion`,`list`,`listitem`,`mark`,`none`,`paragraph`,`presentation`,`region`,`row`,`rowgroup`,`section`,`strong`,`subscript`,`superscript`,`table`,`term`,`time`].includes(e);return E||D}function getElementAccessibleName(e,T){let E=T?cacheAccessibleNameHidden:cacheAccessibleName,D=E?.get(e);return D===void 0&&(D=``,[`caption`,`code`,`definition`,`deletion`,`emphasis`,`generic`,`insertion`,`mark`,`paragraph`,`presentation`,`strong`,`subscript`,`suggestion`,`superscript`,`term`,`time`].includes(getAriaRole(e)||``)||(D=asFlatString(getTextAlternativeInternal(e,{includeHidden:T,visitedElements:new Set,embeddedInDescribedBy:void 0,embeddedInLabelledBy:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0,embeddedInTargetElement:`self`}))),E?.set(e,D)),D}function getElementAccessibleDescription(e,T){let E=cacheAccessibleDescription,D=E?.get(e);return D===void 0&&(D=``,D=e.hasAttribute(`aria-describedby`)?asFlatString(getIdRefs(e,e.getAttribute(`aria-describedby`)).map(e=>getTextAlternativeInternal(e,{includeHidden:T,visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:isElementHiddenForAria(e)}})).join(` `)):e.hasAttribute(`aria-description`)?asFlatString(e.getAttribute(`aria-description`)||``):asFlatString(e.getAttribute(`title`)||``),E?.set(e,D)),D}var kAriaInvalidRoles=[`application`,`checkbox`,`combobox`,`gridcell`,`listbox`,`radiogroup`,`slider`,`spinbutton`,`textbox`,`tree`,`columnheader`,`rowheader`,`searchbox`,`switch`,`treegrid`];function getAriaInvalid(e){let T=getAriaRole(e)||``;if(!T||!kAriaInvalidRoles.includes(T))return`false`;let E=e.getAttribute(`aria-invalid`);return!E||E.trim()===``||E.toLocaleLowerCase()===`false`?`false`:E===`true`||E===`grammar`||E===`spelling`?E:`true`}function getValidityInvalid(e){return`validity`in e?e.validity?.valid===!1:!1}function getElementAccessibleErrorMessage(e){let T=cacheAccessibleErrorMessage,E=cacheAccessibleErrorMessage?.get(e);if(E===void 0){E=``;let D=getAriaInvalid(e)!==`false`,O=getValidityInvalid(e);(D||O)&&(E=getIdRefs(e,e.getAttribute(`aria-errormessage`)).map(e=>asFlatString(getTextAlternativeInternal(e,{visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:isElementHiddenForAria(e)}}))).join(` `).trim()),T?.set(e,E)}return E}function getTextAlternativeInternal(e,T){if(T.visitedElements.has(e))return``;let E={...T,embeddedInTargetElement:T.embeddedInTargetElement===`self`?`descendant`:T.embeddedInTargetElement};if(!T.includeHidden){let E=!!T.embeddedInLabelledBy?.hidden||!!T.embeddedInDescribedBy?.hidden||!!T.embeddedInNativeTextAlternative?.hidden||!!T.embeddedInLabel?.hidden;if(isElementIgnoredForAria(e)||!E&&isElementHiddenForAria(e))return T.visitedElements.add(e),``}let D=getAriaLabelledByElements(e);if(!T.embeddedInLabelledBy){let e=(D||[]).map(e=>getTextAlternativeInternal(e,{...T,embeddedInLabelledBy:{element:e,hidden:isElementHiddenForAria(e)},embeddedInDescribedBy:void 0,embeddedInTargetElement:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0})).join(` `);if(e)return e}let O=getAriaRole(e)||``,k=elementSafeTagName(e);if(T.embeddedInLabel||T.embeddedInLabelledBy||T.embeddedInTargetElement===`descendant`){let A=[...e.labels||[]].includes(e),j=(D||[]).includes(e);if(!A&&!j){if(O===`textbox`)return T.visitedElements.add(e),k===`INPUT`||k===`TEXTAREA`?e.value:e.textContent||``;if([`combobox`,`listbox`].includes(O)){T.visitedElements.add(e);let D;if(k===`SELECT`)D=[...e.selectedOptions],!D.length&&e.options.length&&D.push(e.options[0]);else{let T=O===`combobox`?queryInAriaOwned(e,`*`).find(e=>getAriaRole(e)===`listbox`):e;D=T?queryInAriaOwned(T,`[aria-selected="true"]`).filter(e=>getAriaRole(e)===`option`):[]}return!D.length&&k===`INPUT`?e.value:D.map(e=>getTextAlternativeInternal(e,E)).join(` `)}if([`progressbar`,`scrollbar`,`slider`,`spinbutton`,`meter`].includes(O))return T.visitedElements.add(e),e.hasAttribute(`aria-valuetext`)?e.getAttribute(`aria-valuetext`)||``:e.hasAttribute(`aria-valuenow`)?e.getAttribute(`aria-valuenow`)||``:e.getAttribute(`value`)||``;if([`menu`].includes(O))return T.visitedElements.add(e),``}}let A=e.getAttribute(`aria-label`)||``;if(trimFlatString(A))return T.visitedElements.add(e),A;if(![`presentation`,`none`].includes(O)){if(k===`INPUT`&&[`button`,`submit`,`reset`].includes(e.type)){T.visitedElements.add(e);let E=e.value||``;return trimFlatString(E)?E:e.type===`submit`?`Submit`:e.type===`reset`?`Reset`:e.getAttribute(`title`)||``}if(k===`INPUT`&&e.type===`image`){T.visitedElements.add(e);let E=e.labels||[];if(E.length&&!T.embeddedInLabelledBy)return getAccessibleNameFromAssociatedLabels(E,T);let D=e.getAttribute(`alt`)||``;if(trimFlatString(D))return D;let O=e.getAttribute(`title`)||``;return trimFlatString(O)?O:`Submit`}if(!D&&k===`BUTTON`){T.visitedElements.add(e);let E=e.labels||[];if(E.length)return getAccessibleNameFromAssociatedLabels(E,T)}if(!D&&k===`OUTPUT`){T.visitedElements.add(e);let E=e.labels||[];return E.length?getAccessibleNameFromAssociatedLabels(E,T):e.getAttribute(`title`)||``}if(!D&&(k===`TEXTAREA`||k===`SELECT`||k===`INPUT`)){T.visitedElements.add(e);let E=e.labels||[];if(E.length)return getAccessibleNameFromAssociatedLabels(E,T);let D=k===`INPUT`&&[`text`,`password`,`search`,`tel`,`email`,`url`].includes(e.type)||k===`TEXTAREA`,O=e.getAttribute(`placeholder`)||``,A=e.getAttribute(`title`)||``;return!D||A?A:O}if(!D&&k===`FIELDSET`){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`LEGEND`)return getTextAlternativeInternal(T,{...E,embeddedInNativeTextAlternative:{element:T,hidden:isElementHiddenForAria(T)}});return e.getAttribute(`title`)||``}if(!D&&k===`FIGURE`){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`FIGCAPTION`)return getTextAlternativeInternal(T,{...E,embeddedInNativeTextAlternative:{element:T,hidden:isElementHiddenForAria(T)}});return e.getAttribute(`title`)||``}if(k===`IMG`){T.visitedElements.add(e);let E=e.getAttribute(`alt`)||``;return trimFlatString(E)?E:e.getAttribute(`title`)||``}if(k===`TABLE`){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`CAPTION`)return getTextAlternativeInternal(T,{...E,embeddedInNativeTextAlternative:{element:T,hidden:isElementHiddenForAria(T)}});let D=e.getAttribute(`summary`)||``;if(D)return D}if(k===`AREA`){T.visitedElements.add(e);let E=e.getAttribute(`alt`)||``;return trimFlatString(E)?E:e.getAttribute(`title`)||``}if(k===`SVG`||e.ownerSVGElement){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`TITLE`&&T.ownerSVGElement)return getTextAlternativeInternal(T,{...E,embeddedInLabelledBy:{element:T,hidden:isElementHiddenForAria(T)}})}if(e.ownerSVGElement&&k===`A`){let E=e.getAttribute(`xlink:title`)||``;if(trimFlatString(E))return T.visitedElements.add(e),E}}let j=k===`SUMMARY`&&![`presentation`,`none`].includes(O);if(allowsNameFromContent(O,T.embeddedInTargetElement===`descendant`)||j||T.embeddedInLabelledBy||T.embeddedInDescribedBy||T.embeddedInLabel||T.embeddedInNativeTextAlternative){T.visitedElements.add(e);let D=innerAccumulatedElementText(e,E);if(T.embeddedInTargetElement===`self`?trimFlatString(D):D)return D}if(![`presentation`,`none`].includes(O)||k===`IFRAME`){T.visitedElements.add(e);let E=e.getAttribute(`title`)||``;if(trimFlatString(E))return E}return T.visitedElements.add(e),``}function innerAccumulatedElementText(e,T){let E=[],D=(e,D)=>{if(!(D&&e.assignedSlot))if(e.nodeType===1){let D=getElementComputedStyle(e)?.display||`inline`,O=getTextAlternativeInternal(e,T);(D!==`inline`||e.nodeName===`BR`)&&(O=` `+O+` `),E.push(O)}else e.nodeType===3&&E.push(e.textContent||``)};E.push(getPseudoContent(e,`::before`));let O=e.nodeName===`SLOT`?e.assignedNodes():[];if(O.length)for(let e of O)D(e,!1);else{for(let T=e.firstChild;T;T=T.nextSibling)D(T,!0);if(e.shadowRoot)for(let T=e.shadowRoot.firstChild;T;T=T.nextSibling)D(T,!0);for(let T of getIdRefs(e,e.getAttribute(`aria-owns`)))D(T,!0)}return E.push(getPseudoContent(e,`::after`)),E.join(``)}var kAriaSelectedRoles=[`gridcell`,`option`,`row`,`tab`,`rowheader`,`columnheader`,`treeitem`];function getAriaSelected(e){return elementSafeTagName(e)===`OPTION`?e.selected:kAriaSelectedRoles.includes(getAriaRole(e)||``)?getAriaBoolean(e.getAttribute(`aria-selected`))===!0:!1}var kAriaCheckedRoles=[`checkbox`,`menuitemcheckbox`,`option`,`radio`,`switch`,`menuitemradio`,`treeitem`];function getAriaChecked(e){let T=getChecked(e);return T===`error`?!1:T}function getChecked(e,T){let E=elementSafeTagName(e);if(E===`INPUT`&&e.indeterminate)return`mixed`;if(E===`INPUT`&&[`checkbox`,`radio`].includes(e.type))return e.checked;if(kAriaCheckedRoles.includes(getAriaRole(e)||``)){let T=e.getAttribute(`aria-checked`);return T===`true`?!0:T===`mixed`?`mixed`:!1}return`error`}var kAriaPressedRoles=[`button`];function getAriaPressed(e){if(kAriaPressedRoles.includes(getAriaRole(e)||``)){let T=e.getAttribute(`aria-pressed`);if(T===`true`)return!0;if(T===`mixed`)return`mixed`}return!1}var kAriaExpandedRoles=[`application`,`button`,`checkbox`,`combobox`,`gridcell`,`link`,`listbox`,`menuitem`,`row`,`rowheader`,`tab`,`treeitem`,`columnheader`,`menuitemcheckbox`,`menuitemradio`,`rowheader`,`switch`];function getAriaExpanded(e){if(elementSafeTagName(e)===`DETAILS`)return e.open;if(kAriaExpandedRoles.includes(getAriaRole(e)||``)){let T=e.getAttribute(`aria-expanded`);return T===null?`none`:T===`true`}return`none`}var kAriaLevelRoles=[`heading`,`listitem`,`row`,`treeitem`];function getAriaLevel(e){let T={H1:1,H2:2,H3:3,H4:4,H5:5,H6:6}[elementSafeTagName(e)];if(T)return T;if(kAriaLevelRoles.includes(getAriaRole(e)||``)){let T=e.getAttribute(`aria-level`),E=T===null?NaN:Number(T);if(Number.isInteger(E)&&E>=1)return E}return 0}var kAriaDisabledRoles=`application.button.composite.gridcell.group.input.link.menuitem.scrollbar.separator.tab.checkbox.columnheader.combobox.grid.listbox.menu.menubar.menuitemcheckbox.menuitemradio.option.radio.radiogroup.row.rowheader.searchbox.select.slider.spinbutton.switch.tablist.textbox.toolbar.tree.treegrid.treeitem`.split(`.`);function getAriaDisabled(e){return isNativelyDisabled(e)||hasExplicitAriaDisabled(e)}function isNativelyDisabled(e){return[`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`OPTION`,`OPTGROUP`].includes(e.tagName)&&(e.hasAttribute(`disabled`)||belongsToDisabledFieldSet(e))}function belongsToDisabledFieldSet(e){let T=e?.closest(`FIELDSET[DISABLED]`);if(!T)return!1;let E=T.querySelector(`:scope > LEGEND`);return!E||!E.contains(e)}function hasExplicitAriaDisabled(e){if(!e)return!1;if(kAriaDisabledRoles.includes(getAriaRole(e)||``)){let T=(e.getAttribute(`aria-disabled`)||``).toLowerCase();if(T===`true`)return!0;if(T===`false`)return!1}return hasExplicitAriaDisabled(parentElementOrShadowHost(e))}function getAccessibleNameFromAssociatedLabels(e,T){return[...e].map(e=>getTextAlternativeInternal(e,{...T,embeddedInLabel:{element:e,hidden:isElementHiddenForAria(e)},embeddedInNativeTextAlternative:void 0,embeddedInLabelledBy:void 0,embeddedInDescribedBy:void 0,embeddedInTargetElement:void 0})).filter(e=>!!e).join(` `)}var cacheAccessibleName,cacheAccessibleNameHidden,cacheAccessibleErrorMessage,cacheAccessibleDescription,cacheIsHidden,cachePseudoContentBefore,cachePseudoContentAfter,cachesCounter=0;function beginAriaCaches(){++cachesCounter,cacheAccessibleName??=new Map,cacheAccessibleNameHidden??=new Map,cacheAccessibleDescription??=new Map,cacheAccessibleErrorMessage??=new Map,cacheIsHidden??=new Map,cachePseudoContentBefore??=new Map,cachePseudoContentAfter??=new Map}function endAriaCaches(){--cachesCounter||(cacheAccessibleName=void 0,cacheAccessibleNameHidden=void 0,cacheAccessibleDescription=void 0,cacheAccessibleErrorMessage=void 0,cacheIsHidden=void 0,cachePseudoContentBefore=void 0,cachePseudoContentAfter=void 0)}function matchesAttributePart(e,T){let E=typeof e==`string`&&!T.caseSensitive?e.toUpperCase():e,D=typeof T.value==`string`&&!T.caseSensitive?T.value.toUpperCase():T.value;return T.op===`<truthy>`?!!E:T.op===`=`?D instanceof RegExp?typeof E==`string`&&!!E.match(D):E===D:typeof E!=`string`||typeof D!=`string`?!1:T.op===`*=`?E.includes(D):T.op===`^=`?E.startsWith(D):T.op===`$=`?E.endsWith(D):T.op===`|=`?E===D||E.startsWith(`${D}-`):T.op===`~=`?E.split(` `).includes(D):!1}function shouldSkipForTextMatching(e){let T=e.ownerDocument;return e.nodeName===`SCRIPT`||e.nodeName===`NOSCRIPT`||e.nodeName===`STYLE`||T.head&&T.head.contains(e)}function elementText(e,T){let E=e.get(T);if(E===void 0){if(E={full:``,normalized:``,immediate:[]},!shouldSkipForTextMatching(T)){let D=``;if(T instanceof HTMLInputElement&&(T.type===`submit`||T.type===`button`))E={full:T.value,normalized:normalizeWhiteSpace(T.value),immediate:[T.value]};else{for(let O=T.firstChild;O;O=O.nextSibling)O.nodeType===Node.TEXT_NODE?(E.full+=O.nodeValue||``,D+=O.nodeValue||``):(D&&E.immediate.push(D),D=``,O.nodeType===Node.ELEMENT_NODE&&(E.full+=elementText(e,O).full));D&&E.immediate.push(D),T.shadowRoot&&(E.full+=elementText(e,T.shadowRoot).full),E.full&&(E.normalized=normalizeWhiteSpace(E.full))}}e.set(T,E)}return E}function elementMatchesText(e,T,E){if(shouldSkipForTextMatching(T)||!E(elementText(e,T)))return`none`;for(let D=T.firstChild;D;D=D.nextSibling)if(D.nodeType===Node.ELEMENT_NODE&&E(elementText(e,D)))return`selfAndChildren`;return T.shadowRoot&&E(elementText(e,T.shadowRoot))?`selfAndChildren`:`self`}function getElementLabels(e,T){let E=getAriaLabelledByElements(T);if(E)return E.map(T=>elementText(e,T));let D=T.getAttribute(`aria-label`);if(D!==null&&D.trim())return[{full:D,normalized:normalizeWhiteSpace(D),immediate:[D]}];let O=T.nodeName===`INPUT`&&T.type!==`hidden`;if([`BUTTON`,`METER`,`OUTPUT`,`PROGRESS`,`SELECT`,`TEXTAREA`].includes(T.nodeName)||O){let E=T.labels;if(E)return[...E].map(T=>elementText(e,T))}return[]}var kSupportedAttributes=[`selected`,`checked`,`pressed`,`expanded`,`level`,`disabled`,`name`,`include-hidden`];kSupportedAttributes.sort();function validateSupportedRole(e,T,E){if(!T.includes(E))throw Error(`"${e}" attribute is only supported for roles: ${T.slice().sort().map(e=>`"${e}"`).join(`, `)}`)}function validateSupportedValues(e,T){if(e.op!==`<truthy>`&&!T.includes(e.value))throw Error(`"${e.name}" must be one of ${T.map(e=>JSON.stringify(e)).join(`, `)}`)}function validateSupportedOp(e,T){if(!T.includes(e.op))throw Error(`"${e.name}" does not support "${e.op}" matcher`)}function validateAttributes(e,T){let E={role:T};for(let D of e)switch(D.name){case`checked`:validateSupportedRole(D.name,kAriaCheckedRoles,T),validateSupportedValues(D,[!0,!1,`mixed`]),validateSupportedOp(D,[`<truthy>`,`=`]),E.checked=D.op===`<truthy>`?!0:D.value;break;case`pressed`:validateSupportedRole(D.name,kAriaPressedRoles,T),validateSupportedValues(D,[!0,!1,`mixed`]),validateSupportedOp(D,[`<truthy>`,`=`]),E.pressed=D.op===`<truthy>`?!0:D.value;break;case`selected`:validateSupportedRole(D.name,kAriaSelectedRoles,T),validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.selected=D.op===`<truthy>`?!0:D.value;break;case`expanded`:validateSupportedRole(D.name,kAriaExpandedRoles,T),validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.expanded=D.op===`<truthy>`?!0:D.value;break;case`level`:if(validateSupportedRole(D.name,kAriaLevelRoles,T),typeof D.value==`string`&&(D.value=+D.value),D.op!==`=`||typeof D.value!=`number`||Number.isNaN(D.value))throw Error(`"level" attribute must be compared to a number`);E.level=D.value;break;case`disabled`:validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.disabled=D.op===`<truthy>`?!0:D.value;break;case`name`:if(D.op===`<truthy>`)throw Error(`"name" attribute must have a value`);if(typeof D.value!=`string`&&!(D.value instanceof RegExp))throw TypeError(`"name" attribute must be a string or a regular expression`);E.name=D.value,E.nameOp=D.op,E.exact=D.caseSensitive;break;case`include-hidden`:validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.includeHidden=D.op===`<truthy>`?!0:D.value;break;default:throw Error(`Unknown attribute "${D.name}", must be one of ${kSupportedAttributes.map(e=>`"${e}"`).join(`, `)}.`)}return E}function queryRole(e,T,E){let D=[],O=e=>{if(getAriaRole(e)===T.role&&!(T.selected!==void 0&&getAriaSelected(e)!==T.selected)&&!(T.checked!==void 0&&getAriaChecked(e)!==T.checked)&&!(T.pressed!==void 0&&getAriaPressed(e)!==T.pressed)&&!(T.expanded!==void 0&&getAriaExpanded(e)!==T.expanded)&&!(T.level!==void 0&&getAriaLevel(e)!==T.level)&&!(T.disabled!==void 0&&getAriaDisabled(e)!==T.disabled)&&!(!T.includeHidden&&isElementHiddenForAria(e))){if(T.name!==void 0){let D=normalizeWhiteSpace(getElementAccessibleName(e,!!T.includeHidden));if(typeof T.name==`string`&&(T.name=normalizeWhiteSpace(T.name)),E&&!T.exact&&T.nameOp===`=`&&(T.nameOp=`*=`),!matchesAttributePart(D,{op:T.nameOp||`=`,value:T.name,caseSensitive:!!T.exact}))return}D.push(e)}},k=e=>{let T=[];e.shadowRoot&&T.push(e.shadowRoot);for(let E of e.querySelectorAll(`*`))O(E),E.shadowRoot&&T.push(E.shadowRoot);T.forEach(k)};return k(e),D}function createRoleEngine(e){return{queryAll:(T,E)=>{let D=parseAttributeSelector(E),O=D.name.toLowerCase();if(!O)throw Error(`Role must not be empty`);let k=validateAttributes(D.attributes,O);beginAriaCaches();try{return queryRole(T,k,e)}finally{endAriaCaches()}}}}function asLocator(e,T,E=!1){return asLocators(e,T,E)[0]}function asLocators(e,T,E=!1,D=20,O){try{return innerAsLocators(new generators[e](O),parseSelector(T),E,D)}catch{return[T]}}function innerAsLocators(e,T,E=!1,D=20){let O=[...T.parts];for(let e=0;e<O.length-1;e++)if(O[e].name===`nth`&&O[e+1].name===`internal:control`&&O[e+1].body===`enter-frame`){let[T]=O.splice(e,1);O.splice(e+1,0,T)}let k=[],A=E?`frame-locator`:`page`;for(let T=0;T<O.length;T++){let E=O[T],j=A;if(A=`locator`,E.name===`nth`){E.body===`0`?k.push([e.generateLocator(j,`first`,``),e.generateLocator(j,`nth`,`0`)]):E.body===`-1`?k.push([e.generateLocator(j,`last`,``),e.generateLocator(j,`nth`,`-1`)]):k.push([e.generateLocator(j,`nth`,E.body)]);continue}if(E.name===`internal:text`){let{exact:T,text:D}=detectExact(E.body);k.push([e.generateLocator(j,`text`,D,{exact:T})]);continue}if(E.name===`internal:has-text`){let{exact:T,text:D}=detectExact(E.body);if(!T){k.push([e.generateLocator(j,`has-text`,D,{exact:T})]);continue}}if(E.name===`internal:has-not-text`){let{exact:T,text:D}=detectExact(E.body);if(!T){k.push([e.generateLocator(j,`has-not-text`,D,{exact:T})]);continue}}if(E.name===`internal:has`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`has`,T)));continue}if(E.name===`internal:has-not`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`hasNot`,T)));continue}if(E.name===`internal:and`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`and`,T)));continue}if(E.name===`internal:or`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`or`,T)));continue}if(E.name===`internal:chain`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`chain`,T)));continue}if(E.name===`internal:label`){let{exact:T,text:D}=detectExact(E.body);k.push([e.generateLocator(j,`label`,D,{exact:T})]);continue}if(E.name===`internal:role`){let T=parseAttributeSelector(E.body),D={attrs:[]};for(let e of T.attributes)e.name===`name`?(D.exact=e.caseSensitive,D.name=e.value):(e.name===`level`&&typeof e.value==`string`&&(e.value=+e.value),D.attrs.push({name:e.name===`include-hidden`?`includeHidden`:e.name,value:e.value}));k.push([e.generateLocator(j,`role`,T.name,D)]);continue}if(E.name===`internal:testid`){let{value:T}=parseAttributeSelector(E.body).attributes[0];k.push([e.generateLocator(j,`test-id`,T)]);continue}if(E.name===`internal:attr`){let{name:T,value:D,caseSensitive:O}=parseAttributeSelector(E.body).attributes[0],A=D,M=!!O;if(T===`placeholder`){k.push([e.generateLocator(j,`placeholder`,A,{exact:M})]);continue}if(T===`alt`){k.push([e.generateLocator(j,`alt`,A,{exact:M})]);continue}if(T===`title`){k.push([e.generateLocator(j,`title`,A,{exact:M})]);continue}}let M=`default`,N=O[T+1];N&&N.name===`internal:control`&&N.body===`enter-frame`&&(M=`frame`,A=`frame-locator`,T++);let P=stringifySelector({parts:[E]}),F=e.generateLocator(j,M,P);if(M===`default`&&N&&[`internal:has-text`,`internal:has-not-text`].includes(N.name)){let{exact:E,text:D}=detectExact(N.body);if(!E){let O=e.generateLocator(`locator`,N.name===`internal:has-text`?`has-text`:`has-not-text`,D,{exact:E}),A={};N.name===`internal:has-text`?A.hasText=D:A.hasNotText=D;let M=e.generateLocator(j,`default`,P,A);k.push([e.chainLocators([F,O]),M]),T++;continue}}let I;if([`xpath`,`css`].includes(E.name)){let T=stringifySelector({parts:[E]},!0);I=e.generateLocator(j,M,T)}k.push([F,I].filter(Boolean))}return combineTokens(e,k,D)}function combineTokens(e,T,E){let D=T.map(()=>``),O=[],k=A=>{if(A===T.length)return O.push(e.chainLocators(D)),D.length<E;for(let e of T[A])if(D[A]=e,!k(A+1))return!1;return!0};return k(0),O}function detectExact(e){let T=!1,E=e.match(/^\/(.*)\/([igm]*)$/);return E?{text:new RegExp(E[1],E[2])}:(e.endsWith(`"`)?(e=JSON.parse(e),T=!0):e.endsWith(`"s`)?(e=JSON.parse(e.substring(0,e.length-1)),T=!0):e.endsWith(`"i`)&&(e=JSON.parse(e.substring(0,e.length-1)),T=!1),{exact:T,text:e})}var JavaScriptLocatorFactory=class{constructor(e){this.preferredQuote=e}generateLocator(e,T,E,D={}){switch(T){case`default`:return D.hasText===void 0?D.hasNotText===void 0?`locator(${this.quote(E)})`:`locator(${this.quote(E)}, { hasNotText: ${this.toHasText(D.hasNotText)} })`:`locator(${this.quote(E)}, { hasText: ${this.toHasText(D.hasText)} })`;case`frame`:return`frameLocator(${this.quote(E)})`;case`nth`:return`nth(${E})`;case`first`:return`first()`;case`last`:return`last()`;case`role`:{let e=[];isRegExp(D.name)?e.push(`name: ${this.regexToSourceString(D.name)}`):typeof D.name==`string`&&(e.push(`name: ${this.quote(D.name)}`),D.exact&&e.push(`exact: true`));for(let{name:T,value:E}of D.attrs)e.push(`${T}: ${typeof E==`string`?this.quote(E):E}`);let T=e.length?`, { ${e.join(`, `)} }`:``;return`getByRole(${this.quote(E)}${T})`}case`has-text`:return`filter({ hasText: ${this.toHasText(E)} })`;case`has-not-text`:return`filter({ hasNotText: ${this.toHasText(E)} })`;case`has`:return`filter({ has: ${E} })`;case`hasNot`:return`filter({ hasNot: ${E} })`;case`and`:return`and(${E})`;case`or`:return`or(${E})`;case`chain`:return`locator(${E})`;case`test-id`:return`getByTestId(${this.toTestIdValue(E)})`;case`text`:return this.toCallWithExact(`getByText`,E,!!D.exact);case`alt`:return this.toCallWithExact(`getByAltText`,E,!!D.exact);case`placeholder`:return this.toCallWithExact(`getByPlaceholder`,E,!!D.exact);case`label`:return this.toCallWithExact(`getByLabel`,E,!!D.exact);case`title`:return this.toCallWithExact(`getByTitle`,E,!!D.exact);default:throw Error(`Unknown selector kind ${T}`)}}chainLocators(e){return e.join(`.`)}regexToSourceString(e){return normalizeEscapedRegexQuotes(String(e))}toCallWithExact(e,T,E){return isRegExp(T)?`${e}(${this.regexToSourceString(T)})`:E?`${e}(${this.quote(T)}, { exact: true })`:`${e}(${this.quote(T)})`}toHasText(e){return isRegExp(e)?this.regexToSourceString(e):this.quote(e)}toTestIdValue(e){return isRegExp(e)?this.regexToSourceString(e):this.quote(e)}quote(e){return escapeWithQuotes(e,this.preferredQuote??`'`)}},generators={javascript:JavaScriptLocatorFactory};function isRegExp(e){return e instanceof RegExp}var cacheAllowText=new Map,cacheDisallowText=new Map,kTextScoreRange=10,kExactPenalty=kTextScoreRange/2,kTestIdScore=1,kOtherTestIdScore=2,kIframeByAttributeScore=10,kBeginPenalizedScore=50,kPlaceholderScore=100,kLabelScore=120,kRoleWithNameScore=140,kAltTextScore=160,kTextScore=180,kTitleScore=200,kTextScoreRegex=250,kPlaceholderScoreExact=kPlaceholderScore+kExactPenalty,kLabelScoreExact=kLabelScore+kExactPenalty,kRoleWithNameScoreExact=kRoleWithNameScore+kExactPenalty,kAltTextScoreExact=kAltTextScore+kExactPenalty,kTextScoreExact=kTextScore+kExactPenalty,kTitleScoreExact=kTitleScore+kExactPenalty,kEndPenalizedScore=300,kCSSIdScore=500,kRoleWithoutNameScore=510,kCSSInputTypeNameScore=520,kCSSTagNameScore=530,kNthScore=1e4,kCSSFallbackScore=1e7;function generateSelector(e,T,E){e._evaluator.begin(),beginAriaCaches();try{return joinTokens(generateSelectorFor(e,T,E)||cssFallback(e,T,E))}finally{cacheAllowText.clear(),cacheDisallowText.clear(),endAriaCaches(),e._evaluator.end()}}function filterRegexTokens(e){return e.filter(e=>e[0].selector[0]!==`/`)}function generateSelectorFor(e,T,E){if(T.ownerDocument.documentElement===T)return[{engine:`css`,selector:`html`,score:1}];let D=(D,k)=>{let A=D===T,j=k?buildTextCandidates(e,D,D===T):[];D!==T&&(j=filterRegexTokens(j));let M=buildNoTextCandidates(e,D,E).map(e=>[e]),N=chooseFirstSelector(e,T.ownerDocument,D,[...j,...M],A);j=filterRegexTokens(j);let P=T=>{let E=k&&!T.length,j=[...T,...M].filter(e=>N?combineScores(e)<combineScores(N):!0),P=j[0];if(P)for(let T=parentElementOrShadowHost(D);T;T=parentElementOrShadowHost(T)){let k=O(T,E);if(!k||N&&combineScores([...k,...P])>=combineScores(N))continue;if(P=chooseFirstSelector(e,T,D,j,A),!P)return;let M=[...k,...P];(!N||combineScores(M)<combineScores(N))&&(N=M)}};return P(j),D===T&&j.length&&P([]),N},O=(e,T)=>{let E=T?cacheAllowText:cacheDisallowText,O=E.get(e);return O===void 0&&(O=D(e,T),E.set(e,O)),O};return D(T,!E.noText)}function buildNoTextCandidates(e,T,E){let D=[];for(let e of[`data-testid`,`data-test-id`,`data-test`])e!==E.testIdAttributeName&&T.getAttribute(e)&&D.push({engine:`css`,selector:`[${e}=${quoteCSSAttributeValue(T.getAttribute(e))}]`,score:kOtherTestIdScore});if(!E.noCSSId){let e=T.getAttribute(`id`);e&&!isGuidLike(e)&&D.push({engine:`css`,selector:makeSelectorForId(e),score:kCSSIdScore})}if(D.push({engine:`css`,selector:cssEscape(T.nodeName.toLowerCase()),score:kCSSTagNameScore}),T.nodeName===`IFRAME`){for(let e of[`name`,`title`])T.getAttribute(e)&&D.push({engine:`css`,selector:`${cssEscape(T.nodeName.toLowerCase())}[${e}=${quoteCSSAttributeValue(T.getAttribute(e))}]`,score:kIframeByAttributeScore});return T.getAttribute(E.testIdAttributeName)&&D.push({engine:`css`,selector:`[${E.testIdAttributeName}=${quoteCSSAttributeValue(T.getAttribute(E.testIdAttributeName))}]`,score:kTestIdScore}),penalizeScoreForLength([D]),D}if(T.getAttribute(E.testIdAttributeName)&&D.push({engine:`internal:testid`,selector:`[${E.testIdAttributeName}=${escapeForAttributeSelector(T.getAttribute(E.testIdAttributeName),!0)}]`,score:kTestIdScore}),T.nodeName===`INPUT`||T.nodeName===`TEXTAREA`){let e=T;if(e.placeholder){D.push({engine:`internal:attr`,selector:`[placeholder=${escapeForAttributeSelector(e.placeholder,!0)}]`,score:kPlaceholderScoreExact});for(let T of suitableTextAlternatives(e.placeholder))D.push({engine:`internal:attr`,selector:`[placeholder=${escapeForAttributeSelector(T.text,!1)}]`,score:kPlaceholderScore-T.scoreBouns})}}let O=getElementLabels(e._evaluator._cacheText,T);for(let e of O){let T=e.normalized;D.push({engine:`internal:label`,selector:escapeForTextSelector$1(T,!0),score:kLabelScoreExact});for(let e of suitableTextAlternatives(T))D.push({engine:`internal:label`,selector:escapeForTextSelector$1(e.text,!1),score:kLabelScore-e.scoreBouns})}let k=getAriaRole(T);return k&&![`none`,`presentation`].includes(k)&&D.push({engine:`internal:role`,selector:k,score:kRoleWithoutNameScore}),T.getAttribute(`name`)&&[`BUTTON`,`FORM`,`FIELDSET`,`FRAME`,`IFRAME`,`INPUT`,`KEYGEN`,`OBJECT`,`OUTPUT`,`SELECT`,`TEXTAREA`,`MAP`,`META`,`PARAM`].includes(T.nodeName)&&D.push({engine:`css`,selector:`${cssEscape(T.nodeName.toLowerCase())}[name=${quoteCSSAttributeValue(T.getAttribute(`name`))}]`,score:kCSSInputTypeNameScore}),[`INPUT`,`TEXTAREA`].includes(T.nodeName)&&T.getAttribute(`type`)!==`hidden`&&T.getAttribute(`type`)&&D.push({engine:`css`,selector:`${cssEscape(T.nodeName.toLowerCase())}[type=${quoteCSSAttributeValue(T.getAttribute(`type`))}]`,score:kCSSInputTypeNameScore}),[`INPUT`,`TEXTAREA`,`SELECT`].includes(T.nodeName)&&T.getAttribute(`type`)!==`hidden`&&D.push({engine:`css`,selector:cssEscape(T.nodeName.toLowerCase()),score:kCSSInputTypeNameScore+1}),penalizeScoreForLength([D]),D}function buildTextCandidates(e,T,E){if(T.nodeName===`SELECT`)return[];let D=[],O=T.getAttribute(`title`);if(O){D.push([{engine:`internal:attr`,selector:`[title=${escapeForAttributeSelector(O,!0)}]`,score:kTitleScoreExact}]);for(let e of suitableTextAlternatives(O))D.push([{engine:`internal:attr`,selector:`[title=${escapeForAttributeSelector(e.text,!1)}]`,score:kTitleScore-e.scoreBouns}])}let k=T.getAttribute(`alt`);if(k&&[`APPLET`,`AREA`,`IMG`,`INPUT`].includes(T.nodeName)){D.push([{engine:`internal:attr`,selector:`[alt=${escapeForAttributeSelector(k,!0)}]`,score:kAltTextScoreExact}]);for(let e of suitableTextAlternatives(k))D.push([{engine:`internal:attr`,selector:`[alt=${escapeForAttributeSelector(e.text,!1)}]`,score:kAltTextScore-e.scoreBouns}])}let A=elementText(e._evaluator._cacheText,T).normalized;if(A){let e=suitableTextAlternatives(A);if(E){A.length<=80&&D.push([{engine:`internal:text`,selector:escapeForTextSelector$1(A,!0),score:kTextScoreExact}]);for(let T of e)D.push([{engine:`internal:text`,selector:escapeForTextSelector$1(T.text,!1),score:kTextScore-T.scoreBouns}])}let O={engine:`css`,selector:cssEscape(T.nodeName.toLowerCase()),score:kCSSTagNameScore};for(let T of e)D.push([O,{engine:`internal:has-text`,selector:escapeForTextSelector$1(T.text,!1),score:kTextScore-T.scoreBouns}]);if(A.length<=80){let e=RegExp(`^${escapeRegExp(A)}$`);D.push([O,{engine:`internal:has-text`,selector:escapeForTextSelector$1(e,!1),score:kTextScoreRegex}])}}let j=getAriaRole(T);if(j&&![`none`,`presentation`].includes(j)){let e=getElementAccessibleName(T,!1);if(e){D.push([{engine:`internal:role`,selector:`${j}[name=${escapeForAttributeSelector(e,!0)}]`,score:kRoleWithNameScoreExact}]);for(let T of suitableTextAlternatives(e))D.push([{engine:`internal:role`,selector:`${j}[name=${escapeForAttributeSelector(T.text,!1)}]`,score:kRoleWithNameScore-T.scoreBouns}])}}return penalizeScoreForLength(D),D}function makeSelectorForId(e){return/^[a-z][\w\-]+$/i.test(e)?`#${e}`:`[id="${cssEscape(e)}"]`}function cssFallback(e,T,E){let D=T.ownerDocument,O=[];function k(E){let k=O.slice();E&&k.unshift(E);let A=k.join(` > `),j=e.parseSelector(A);return e.querySelector(j,D,!1)===T?A:void 0}function A(E){let O={engine:`css`,selector:E,score:kCSSFallbackScore},k=e.parseSelector(E),A=e.querySelectorAll(k,D);return A.length===1?[O]:[O,{engine:`nth`,selector:String(A.indexOf(T)),score:kNthScore}]}for(let e=T;e&&e!==D;e=parentElementOrShadowHost(e)){let T=e.nodeName.toLowerCase(),D=``;if(e.id&&!E.noCSSId){let T=makeSelectorForId(e.id),E=k(T);if(E)return A(E);D=T}let j=e.parentNode,N=[...e.classList];for(let e=0;e<N.length;++e){let T=`.${cssEscape(N.slice(0,e+1).join(`.`))}`,E=k(T);if(E)return A(E);!D&&j&&j.querySelectorAll(T).length===1&&(D=T)}if(j){let E=[...j.children],O=E.filter(e=>e.nodeName.toLowerCase()===T).indexOf(e)===0?cssEscape(T):`${cssEscape(T)}:nth-child(${1+E.indexOf(e)})`,N=k(O);if(N)return A(N);D||=O}else D||=cssEscape(T);O.unshift(D)}return A(k())}function penalizeScoreForLength(e){for(let T of e)for(let e of T)e.score>kBeginPenalizedScore&&e.score<kEndPenalizedScore&&(e.score+=Math.min(kTextScoreRange,e.selector.length/10|0))}function joinTokens(e){let T=[],E=``;for(let{engine:D,selector:O}of e)T.length&&(E!==`css`||D!==`css`||O.startsWith(`:nth-match(`))&&T.push(`>>`),E=D,D===`css`?T.push(O):T.push(`${D}=${O}`);return T.join(` `)}function combineScores(e){let T=0;for(let E=0;E<e.length;E++)T+=e[E].score*(e.length-E);return T}function chooseFirstSelector(e,T,E,D,O){let k=D.map(e=>({tokens:e,score:combineScores(e)}));k.sort((e,T)=>e.score-T.score);let A=null;for(let{tokens:D}of k){let k=e.parseSelector(joinTokens(D)),j=e.querySelectorAll(k,T);if(j[0]===E&&j.length===1)return D;let M=j.indexOf(E);if(!O||A||M===-1||j.length>5)continue;let N={engine:`nth`,selector:String(M),score:kNthScore};A=[...D,N]}return A}function isGuidLike(e){let T,E=0;for(let D=0;D<e.length;++D){let O=e[D],k;if(!(O===`-`||O===`_`)){if(k=O>=`a`&&O<=`z`?`lower`:O>=`A`&&O<=`Z`?`upper`:O>=`0`&&O<=`9`?`digit`:`other`,k===`lower`&&T===`upper`){T=k;continue}T&&T!==k&&++E,T=k}}return E>=e.length/4}function trimWordBoundary(e,T){if(e.length<=T)return e;e=e.substring(0,T);let E=e.match(/^(.*)\b(.+)$/);return E?E[1].trimEnd():``}function suitableTextAlternatives(e){let T=[];{let E=e.match(/^([\d.,]+)[^.,\w]/),D=E?E[1].length:0;if(D){let E=trimWordBoundary(e.substring(D).trimStart(),80);T.push({text:E,scoreBouns:E.length<=30?2:1})}}{let E=e.match(/[^.,\w]([\d.,]+)$/),D=E?E[1].length:0;if(D){let E=trimWordBoundary(e.substring(0,e.length-D).trimEnd(),80);T.push({text:E,scoreBouns:E.length<=30?2:1})}}return e.length<=30?T.push({text:e,scoreBouns:0}):(T.push({text:trimWordBoundary(e,80),scoreBouns:0}),T.push({text:trimWordBoundary(e,30),scoreBouns:1})),T=T.filter(e=>e.text),T.length||T.push({text:e.substring(0,80),scoreBouns:0}),T}function boxRightOf(e,T,E){let D=e.left-T.right;if(!(D<0||E!==void 0&&D>E))return D+Math.max(T.bottom-e.bottom,0)+Math.max(e.top-T.top,0)}function boxLeftOf(e,T,E){let D=T.left-e.right;if(!(D<0||E!==void 0&&D>E))return D+Math.max(T.bottom-e.bottom,0)+Math.max(e.top-T.top,0)}function boxAbove(e,T,E){let D=T.top-e.bottom;if(!(D<0||E!==void 0&&D>E))return D+Math.max(e.left-T.left,0)+Math.max(T.right-e.right,0)}function boxBelow(e,T,E){let D=e.top-T.bottom;if(!(D<0||E!==void 0&&D>E))return D+Math.max(e.left-T.left,0)+Math.max(T.right-e.right,0)}function boxNear(e,T,E){let D=E===void 0?50:E,O=0;return e.left-T.right>=0&&(O+=e.left-T.right),T.left-e.right>=0&&(O+=T.left-e.right),T.top-e.bottom>=0&&(O+=T.top-e.bottom),e.top-T.bottom>=0&&(O+=e.top-T.bottom),O>D?void 0:O}var kLayoutSelectorNames=[`left-of`,`right-of`,`above`,`below`,`near`];function layoutSelectorScore(e,T,E,D){let O=T.getBoundingClientRect(),k={"left-of":boxLeftOf,"right-of":boxRightOf,above:boxAbove,below:boxBelow,near:boxNear}[e],A;for(let e of E){if(e===T)continue;let E=k(O,e.getBoundingClientRect(),D);E!==void 0&&(A===void 0||E<A)&&(A=E)}return A}var SelectorEvaluatorImpl=class{constructor(e){__publicField(this,`_engines`,new Map),__publicField(this,`_cacheQueryCSS`,new Map),__publicField(this,`_cacheMatches`,new Map),__publicField(this,`_cacheQuery`,new Map),__publicField(this,`_cacheMatchesSimple`,new Map),__publicField(this,`_cacheMatchesParents`,new Map),__publicField(this,`_cacheCallMatches`,new Map),__publicField(this,`_cacheCallQuery`,new Map),__publicField(this,`_cacheQuerySimple`,new Map),__publicField(this,`_cacheText`,new Map),__publicField(this,`_scoreMap`),__publicField(this,`_retainCacheCounter`,0);for(let[T,E]of e)this._engines.set(T,E);this._engines.set(`not`,notEngine),this._engines.set(`is`,isEngine),this._engines.set(`where`,isEngine),this._engines.set(`has`,hasEngine),this._engines.set(`scope`,scopeEngine),this._engines.set(`light`,lightEngine),this._engines.set(`visible`,visibleEngine),this._engines.set(`text`,textEngine),this._engines.set(`text-is`,textIsEngine),this._engines.set(`text-matches`,textMatchesEngine),this._engines.set(`has-text`,hasTextEngine),this._engines.set(`right-of`,createLayoutEngine(`right-of`)),this._engines.set(`left-of`,createLayoutEngine(`left-of`)),this._engines.set(`above`,createLayoutEngine(`above`)),this._engines.set(`below`,createLayoutEngine(`below`)),this._engines.set(`near`,createLayoutEngine(`near`)),this._engines.set(`nth-match`,nthMatchEngine);let T=[...this._engines.keys()];T.sort();let E=[...customCSSNames];if(E.sort(),T.join(`|`)!==E.join(`|`))throw Error(`Please keep customCSSNames in sync with evaluator engines: ${T.join(`|`)} vs ${E.join(`|`)}`)}begin(){++this._retainCacheCounter}end(){--this._retainCacheCounter,this._retainCacheCounter||(this._cacheQueryCSS.clear(),this._cacheMatches.clear(),this._cacheQuery.clear(),this._cacheMatchesSimple.clear(),this._cacheMatchesParents.clear(),this._cacheCallMatches.clear(),this._cacheCallQuery.clear(),this._cacheQuerySimple.clear(),this._cacheText.clear())}_cached(e,T,E,D){e.has(T)||e.set(T,[]);let O=e.get(T),k=O.find(e=>E.every((T,E)=>e.rest[E]===T));if(k)return k.result;let A=D();return O.push({rest:E,result:A}),A}_checkSelector(e){if(!(typeof e==`object`&&e&&(Array.isArray(e)||`simples`in e&&e.simples.length)))throw Error(`Malformed selector "${e}"`);return e}matches(e,T,E){let D=this._checkSelector(T);this.begin();try{return this._cached(this._cacheMatches,e,[D,E.scope,E.pierceShadow,E.originalScope],()=>Array.isArray(D)?this._matchesEngine(isEngine,e,D,E):(this._hasScopeClause(D)&&(E=this._expandContextForScopeMatching(E)),this._matchesSimple(e,D.simples[D.simples.length-1].selector,E)?this._matchesParents(e,D,D.simples.length-2,E):!1))}finally{this.end()}}query(e,T){let E=this._checkSelector(T);this.begin();try{return this._cached(this._cacheQuery,E,[e.scope,e.pierceShadow,e.originalScope],()=>{if(Array.isArray(E))return this._queryEngine(isEngine,e,E);this._hasScopeClause(E)&&(e=this._expandContextForScopeMatching(e));let T=this._scoreMap;this._scoreMap=new Map;let D=this._querySimple(e,E.simples[E.simples.length-1].selector);return D=D.filter(T=>this._matchesParents(T,E,E.simples.length-2,e)),this._scoreMap.size&&D.sort((e,T)=>{let E=this._scoreMap.get(e),D=this._scoreMap.get(T);return E===D?0:E===void 0?1:D===void 0?-1:E-D}),this._scoreMap=T,D})}finally{this.end()}}_markScore(e,T){this._scoreMap&&this._scoreMap.set(e,T)}_hasScopeClause(e){return e.simples.some(e=>e.selector.functions.some(e=>e.name===`scope`))}_expandContextForScopeMatching(e){if(e.scope.nodeType!==1)return e;let T=parentElementOrShadowHost(e.scope);return T?{...e,scope:T,originalScope:e.originalScope||e.scope}:e}_matchesSimple(e,T,E){return this._cached(this._cacheMatchesSimple,e,[T,E.scope,E.pierceShadow,E.originalScope],()=>{if(e===E.scope||T.css&&!this._matchesCSS(e,T.css))return!1;for(let D of T.functions)if(!this._matchesEngine(this._getEngine(D.name),e,D.args,E))return!1;return!0})}_querySimple(e,T){return T.functions.length?this._cached(this._cacheQuerySimple,T,[e.scope,e.pierceShadow,e.originalScope],()=>{let E=T.css,D=T.functions;E===`*`&&D.length&&(E=void 0);let O,k=-1;E===void 0?(k=D.findIndex(e=>this._getEngine(e.name).query!==void 0),k===-1&&(k=0),O=this._queryEngine(this._getEngine(D[k].name),e,D[k].args)):O=this._queryCSS(e,E);for(let T=0;T<D.length;T++){if(T===k)continue;let E=this._getEngine(D[T].name);E.matches!==void 0&&(O=O.filter(O=>this._matchesEngine(E,O,D[T].args,e)))}for(let T=0;T<D.length;T++){if(T===k)continue;let E=this._getEngine(D[T].name);E.matches===void 0&&(O=O.filter(O=>this._matchesEngine(E,O,D[T].args,e)))}return O}):this._queryCSS(e,T.css||`*`)}_matchesParents(e,T,E,D){return E<0?!0:this._cached(this._cacheMatchesParents,e,[T,E,D.scope,D.pierceShadow,D.originalScope],()=>{let{selector:O,combinator:k}=T.simples[E];if(k===`>`){let k=parentElementOrShadowHostInContext(e,D);return!k||!this._matchesSimple(k,O,D)?!1:this._matchesParents(k,T,E-1,D)}if(k===`+`){let k=previousSiblingInContext(e,D);return!k||!this._matchesSimple(k,O,D)?!1:this._matchesParents(k,T,E-1,D)}if(k===``){let k=parentElementOrShadowHostInContext(e,D);for(;k;){if(this._matchesSimple(k,O,D)){if(this._matchesParents(k,T,E-1,D))return!0;if(T.simples[E-1].combinator===``)break}k=parentElementOrShadowHostInContext(k,D)}return!1}if(k===`~`){let k=previousSiblingInContext(e,D);for(;k;){if(this._matchesSimple(k,O,D)){if(this._matchesParents(k,T,E-1,D))return!0;if(T.simples[E-1].combinator===`~`)break}k=previousSiblingInContext(k,D)}return!1}if(k===`>=`){let k=e;for(;k;){if(this._matchesSimple(k,O,D)){if(this._matchesParents(k,T,E-1,D))return!0;if(T.simples[E-1].combinator===``)break}k=parentElementOrShadowHostInContext(k,D)}return!1}throw Error(`Unsupported combinator "${k}"`)})}_matchesEngine(e,T,E,D){if(e.matches)return this._callMatches(e,T,E,D);if(e.query)return this._callQuery(e,E,D).includes(T);throw Error(`Selector engine should implement "matches" or "query"`)}_queryEngine(e,T,E){if(e.query)return this._callQuery(e,E,T);if(e.matches)return this._queryCSS(T,`*`).filter(D=>this._callMatches(e,D,E,T));throw Error(`Selector engine should implement "matches" or "query"`)}_callMatches(e,T,E,D){return this._cached(this._cacheCallMatches,T,[e,D.scope,D.pierceShadow,D.originalScope,...E],()=>e.matches(T,E,D,this))}_callQuery(e,T,E){return this._cached(this._cacheCallQuery,e,[E.scope,E.pierceShadow,E.originalScope,...T],()=>e.query(E,T,this))}_matchesCSS(e,T){return e.matches(T)}_queryCSS(e,T){return this._cached(this._cacheQueryCSS,T,[e.scope,e.pierceShadow,e.originalScope],()=>{let E=[];function D(O){if(E=E.concat([...O.querySelectorAll(T)]),e.pierceShadow){O.shadowRoot&&D(O.shadowRoot);for(let e of O.querySelectorAll(`*`))e.shadowRoot&&D(e.shadowRoot)}}return D(e.scope),E})}_getEngine(e){let T=this._engines.get(e);if(!T)throw Error(`Unknown selector engine "${e}"`);return T}},isEngine={matches(e,T,E,D){if(T.length===0)throw Error(`"is" engine expects non-empty selector list`);return T.some(T=>D.matches(e,T,E))},query(e,T,E){if(T.length===0)throw Error(`"is" engine expects non-empty selector list`);let D=[];for(let O of T)D=D.concat(E.query(e,O));return T.length===1?D:sortInDOMOrder(D)}},hasEngine={matches(e,T,E,D){if(T.length===0)throw Error(`"has" engine expects non-empty selector list`);return D.query({...E,scope:e},T).length>0}},scopeEngine={matches(e,T,E,D){if(T.length!==0)throw Error(`"scope" engine expects no arguments`);let O=E.originalScope||E.scope;return O.nodeType===9?e===O.documentElement:e===O},query(e,T,E){if(T.length!==0)throw Error(`"scope" engine expects no arguments`);let D=e.originalScope||e.scope;if(D.nodeType===9){let e=D.documentElement;return e?[e]:[]}return D.nodeType===1?[D]:[]}},notEngine={matches(e,T,E,D){if(T.length===0)throw Error(`"not" engine expects non-empty selector list`);return!D.matches(e,T,E)}},lightEngine={query(e,T,E){return E.query({...e,pierceShadow:!1},T)},matches(e,T,E,D){return D.matches(e,T,{...E,pierceShadow:!1})}},visibleEngine={matches(e,T,E,D){if(T.length)throw Error(`"visible" engine expects no arguments`);return isElementVisible(e)}},textEngine={matches(e,T,E,D){if(T.length!==1||typeof T[0]!=`string`)throw Error(`"text" engine expects a single string`);let O=normalizeWhiteSpace(T[0]).toLowerCase();return elementMatchesText(D._cacheText,e,e=>e.normalized.toLowerCase().includes(O))===`self`}},textIsEngine={matches(e,T,E,D){if(T.length!==1||typeof T[0]!=`string`)throw Error(`"text-is" engine expects a single string`);let O=normalizeWhiteSpace(T[0]);return elementMatchesText(D._cacheText,e,e=>!O&&!e.immediate.length?!0:e.immediate.some(e=>normalizeWhiteSpace(e)===O))!==`none`}},textMatchesEngine={matches(e,T,E,D){if(T.length===0||typeof T[0]!=`string`||T.length>2||T.length===2&&typeof T[1]!=`string`)throw Error(`"text-matches" engine expects a regexp body and optional regexp flags`);let O=new RegExp(T[0],T.length===2?T[1]:void 0);return elementMatchesText(D._cacheText,e,e=>O.test(e.full))===`self`}},hasTextEngine={matches(e,T,E,D){if(T.length!==1||typeof T[0]!=`string`)throw Error(`"has-text" engine expects a single string`);if(shouldSkipForTextMatching(e))return!1;let O=normalizeWhiteSpace(T[0]).toLowerCase();return(e=>e.normalized.toLowerCase().includes(O))(elementText(D._cacheText,e))}};function createLayoutEngine(e){return{matches(T,E,D,O){let k=E.length&&typeof E[E.length-1]==`number`?E[E.length-1]:void 0,A=k===void 0?E:E.slice(0,E.length-1);if(E.length<1+(k===void 0?0:1))throw Error(`"${e}" engine expects a selector list and optional maximum distance in pixels`);let j=layoutSelectorScore(e,T,O.query(D,A),k);return j===void 0?!1:(O._markScore(T,j),!0)}}}var nthMatchEngine={query(e,T,E){let D=T[T.length-1];if(T.length<2)throw Error(`"nth-match" engine expects non-empty selector list and an index argument`);if(typeof D!=`number`||D<1)throw Error(`"nth-match" engine expects a one-based index as the last argument`);let O=isEngine.query(e,T.slice(0,T.length-1),E);return D--,D<O.length?[O[D]]:[]}};function parentElementOrShadowHostInContext(e,T){if(e!==T.scope)return T.pierceShadow?parentElementOrShadowHost(e):e.parentElement||void 0}function previousSiblingInContext(e,T){if(e!==T.scope)return e.previousElementSibling||void 0}function sortInDOMOrder(e){let T=new Map,E=[],D=[];function O(e){let D=T.get(e);if(D)return D;let k=parentElementOrShadowHost(e);return k?O(k).children.push(e):E.push(e),D={children:[],taken:!1},T.set(e,D),D}for(let T of e)O(T).taken=!0;function k(e){let E=T.get(e);if(E.taken&&D.push(e),E.children.length>1){let T=new Set(E.children);E.children=[];let D=e.firstElementChild;for(;D&&E.children.length<T.size;)T.has(D)&&E.children.push(D),D=D.nextElementSibling;for(D=e.shadowRoot?e.shadowRoot.firstElementChild:null;D&&E.children.length<T.size;)T.has(D)&&E.children.push(D),D=D.nextElementSibling}E.children.forEach(k)}return E.forEach(k),D}function getByAttributeTextSelector(e,T,E){return`internal:attr=[${e}=${escapeForAttributeSelector(T,E?.exact||!1)}]`}function getByTestIdSelector(e,T){return`internal:testid=[${e}=${escapeForAttributeSelector(T,!0)}]`}function getByLabelSelector(e,T){return`internal:label=${escapeForTextSelector$1(e,!!T?.exact)}`}function getByAltTextSelector(e,T){return getByAttributeTextSelector(`alt`,e,T)}function getByTitleSelector(e,T){return getByAttributeTextSelector(`title`,e,T)}function getByPlaceholderSelector(e,T){return getByAttributeTextSelector(`placeholder`,e,T)}function getByTextSelector(e,T){return`internal:text=${escapeForTextSelector$1(e,!!T?.exact)}`}function getByRoleSelector(e,T={}){let E=[];return T.checked!==void 0&&E.push([`checked`,String(T.checked)]),T.disabled!==void 0&&E.push([`disabled`,String(T.disabled)]),T.selected!==void 0&&E.push([`selected`,String(T.selected)]),T.expanded!==void 0&&E.push([`expanded`,String(T.expanded)]),T.includeHidden!==void 0&&E.push([`include-hidden`,String(T.includeHidden)]),T.level!==void 0&&E.push([`level`,String(T.level)]),T.name!==void 0&&E.push([`name`,escapeForAttributeSelector(T.name,!!T.exact)]),T.pressed!==void 0&&E.push([`pressed`,String(T.pressed)]),`internal:role=${e}${E.map(([e,T])=>`[${e}=${T}]`).join(``)}`}var _Ivya=class e{constructor(){__publicField(this,`_engines`),__publicField(this,`_evaluator`),this._evaluator=new SelectorEvaluatorImpl(new Map),this._engines=new Map,this._engines.set(`xpath`,XPathEngine),this._engines.set(`xpath:light`,XPathEngine),this._engines.set(`role`,createRoleEngine(!1)),this._engines.set(`text`,this._createTextEngine(!0,!1)),this._engines.set(`text:light`,this._createTextEngine(!1,!1)),this._engines.set(`id`,this._createAttributeEngine(`id`,!0)),this._engines.set(`id:light`,this._createAttributeEngine(`id`,!1)),this._engines.set(`data-testid`,this._createAttributeEngine(`data-testid`,!0)),this._engines.set(`data-testid:light`,this._createAttributeEngine(`data-testid`,!1)),this._engines.set(`data-test-id`,this._createAttributeEngine(`data-test-id`,!0)),this._engines.set(`data-test-id:light`,this._createAttributeEngine(`data-test-id`,!1)),this._engines.set(`data-test`,this._createAttributeEngine(`data-test`,!0)),this._engines.set(`data-test:light`,this._createAttributeEngine(`data-test`,!1)),this._engines.set(`css`,this._createCSSEngine()),this._engines.set(`nth`,{queryAll:()=>[]}),this._engines.set(`visible`,this._createVisibleEngine()),this._engines.set(`internal:control`,this._createControlEngine()),this._engines.set(`internal:has`,this._createHasEngine()),this._engines.set(`internal:has-not`,this._createHasNotEngine()),this._engines.set(`internal:and`,{queryAll:()=>[]}),this._engines.set(`internal:or`,{queryAll:()=>[]}),this._engines.set(`internal:chain`,this._createInternalChainEngine()),this._engines.set(`internal:label`,this._createInternalLabelEngine()),this._engines.set(`internal:text`,this._createTextEngine(!0,!0)),this._engines.set(`internal:has-text`,this._createInternalHasTextEngine()),this._engines.set(`internal:has-not-text`,this._createInternalHasNotTextEngine()),this._engines.set(`internal:attr`,this._createNamedAttributeEngine()),this._engines.set(`internal:testid`,this._createNamedAttributeEngine()),this._engines.set(`internal:role`,createRoleEngine(!0))}static create(T){return Object.assign(e.options,T),e.singleton||=new e}queryLocatorSelector(e,T=document.documentElement,E=!0){return this.querySelector(this.parseSelector(e),T,E)}queryLocatorSelectorAll(e,T=document.documentElement){return this.querySelectorAll(this.parseSelector(e),T)}querySelector(e,T,E=!0){let D=this.querySelectorAll(e,T);if(E&&D.length>1)throw this.strictModeViolationError(e,D);return D[0]||null}queryAllByRole(e,T,E=document.documentElement){let D=this.parseSelector(getByRoleSelector(e,T));return this.querySelectorAll(D,E)}queryAllByLabelText(e,T,E=document.documentElement){let D=this.parseSelector(getByLabelSelector(e,T));return this.querySelectorAll(D,E)}queryAllByTestId(T,E=document.documentElement){let D=this.parseSelector(getByTestIdSelector(e.options.testIdAttribute,T));return this.querySelectorAll(D,E)}queryAllByText(e,T,E=document.documentElement){let D=this.parseSelector(getByTextSelector(e,T));return this.querySelectorAll(D,E)}queryAllByTitle(e,T,E=document.documentElement){let D=this.parseSelector(getByTitleSelector(e,T));return this.querySelectorAll(D,E)}queryAllByPlaceholder(e,T,E=document.documentElement){let D=this.parseSelector(getByPlaceholderSelector(e,T));return this.querySelectorAll(D,E)}queryAllByAltText(e,T,E=document.documentElement){let D=this.parseSelector(getByAltTextSelector(e,T));return this.querySelectorAll(D,E)}queryByRole(e,T,E=document.documentElement){let D=this.parseSelector(getByRoleSelector(e,T));return this.querySelector(D,E,!1)}queryByLabelText(e,T,E=document.documentElement){let D=this.parseSelector(getByLabelSelector(e,T));return this.querySelector(D,E,!1)}queryByTestId(T,E=document.documentElement){let D=this.parseSelector(getByTestIdSelector(e.options.testIdAttribute,T));return this.querySelector(D,E,!1)}queryByText(e,T,E=document.documentElement){let D=this.parseSelector(getByTextSelector(e,T));return this.querySelector(D,E,!1)}queryByTitle(e,T,E=document.documentElement){let D=this.parseSelector(getByTitleSelector(e,T));return this.querySelector(D,E,!1)}queryByPlaceholder(e,T,E=document.documentElement){let D=this.parseSelector(getByPlaceholderSelector(e,T));return this.querySelector(D,E,!1)}queryByAltText(e,T,E=document.documentElement){let D=this.parseSelector(getByAltTextSelector(e,T));return this.querySelector(D,E,!1)}strictModeViolationError(e,T){let E=T.slice(0,10).map(e=>({preview:this.previewNode(e),selector:this.generateSelectorSimple(e)})),D=E.map((e,T)=>`
4
+ ${T+1}) ${e.preview} aka ${asLocator(`javascript`,e.selector)}`);return E.length<T.length&&D.push(`
5
+ ...`),this.createStacklessError(`strict mode violation: ${asLocator(`javascript`,stringifySelector(e))} resolved to ${T.length} elements:${D.join(``)}
6
+ `)}generateSelectorSimple(T,E){return generateSelector(this,T,{...E,testIdAttributeName:e.options.testIdAttribute})}parseSelector(e){let T=parseSelector(e);return visitAllSelectorParts(T,T=>{if(!this._engines.has(T.name))throw this.createStacklessError(`Unknown engine "${T.name}" while parsing selector ${e}`)}),T}previewNode(e){if(e.nodeType===Node.TEXT_NODE)return oneLine(`#text=${e.nodeValue||``}`);if(e.nodeType!==Node.ELEMENT_NODE)return oneLine(`<${e.nodeName.toLowerCase()} />`);let T=e,E=[];for(let e=0;e<T.attributes.length;e++){let{name:D,value:O}=T.attributes[e];D!==`style`&&(!O&&booleanAttributes.has(D)?E.push(` ${D}`):E.push(` ${D}="${O}"`))}E.sort((e,T)=>e.length-T.length);let D=trimStringWithEllipsis(E.join(``),500);if(autoClosingTags.has(T.nodeName))return oneLine(`<${T.nodeName.toLowerCase()}${D}/>`);let O=T.childNodes,k=!1;if(O.length<=5){k=!0;for(let e=0;e<O.length;e++)k&&=O[e].nodeType===Node.TEXT_NODE}let A=k?T.textContent||``:O.length?`…`:``;return oneLine(`<${T.nodeName.toLowerCase()}${D}>${trimStringWithEllipsis(A,50)}</${T.nodeName.toLowerCase()}>`)}querySelectorAll(e,T){if(e.capture!==void 0){if(e.parts.some(e=>e.name===`nth`))throw this.createStacklessError(`Can't query n-th element in a request with the capture.`);let E={parts:e.parts.slice(0,e.capture+1)};if(e.capture<e.parts.length-1){let T={parts:e.parts.slice(e.capture+1)},D={name:`internal:has`,body:{parsed:T},source:stringifySelector(T)};E.parts.push(D)}return this.querySelectorAll(E,T)}if(!T.querySelectorAll)throw this.createStacklessError(`Node is not queryable.`);if(e.capture!==void 0)throw this.createStacklessError(`Internal error: there should not be a capture in the selector.`);if(T.nodeType===11&&e.parts.length===1&&e.parts[0].name===`css`&&e.parts[0].source===`:scope`)return[T];this._evaluator.begin();try{let E=new Set([T]);for(let D of e.parts)if(D.name===`nth`)E=this._queryNth(E,D);else if(D.name===`internal:and`){let e=this.querySelectorAll(D.body.parsed,T);E=new Set(e.filter(e=>E.has(e)))}else if(D.name===`internal:or`){let e=this.querySelectorAll(D.body.parsed,T);E=new Set(sortInDOMOrder(new Set([...E,...e])))}else if(kLayoutSelectorNames.includes(D.name))E=this._queryLayoutSelector(E,D,T);else{let e=new Set;for(let T of E){let E=this._queryEngineAll(D,T);for(let T of E)e.add(T)}E=e}return[...E]}finally{this._evaluator.end()}}_queryEngineAll(e,T){let E=this._engines.get(e.name).queryAll(T,e.body);for(let e of E)if(!(`nodeName`in e))throw this.createStacklessError(`Expected a Node but got ${Object.prototype.toString.call(e)}`);return E}_queryNth(e,T){let E=[...e],D=+T.body;return D===-1&&(D=E.length-1),new Set(E.slice(D,D+1))}_queryLayoutSelector(e,T,E){let D=T.name,O=T.body,k=[],A=this.querySelectorAll(O.parsed,E);for(let T of e){let e=layoutSelectorScore(D,T,A,O.distance);e!==void 0&&k.push({element:T,score:e})}return k.sort((e,T)=>e.score-T.score),new Set(k.map(e=>e.element))}createStacklessError(T){if(e.options.browser===`firefox`){let e=Error(`Error: ${T}`);return e.stack=``,e}let E=Error(T);return delete E.stack,E}_createTextEngine(e,T){return{queryAll:(E,D)=>{let{matcher:O,kind:k}=createTextMatcher(D,T),A=[],j=null,M=e=>{if(k===`lax`&&j&&j.contains(e))return!1;let E=elementMatchesText(this._evaluator._cacheText,e,O);E===`none`&&(j=e),(E===`self`||E===`selfAndChildren`&&k===`strict`&&!T)&&A.push(e)};E.nodeType===Node.ELEMENT_NODE&&M(E);let N=this._evaluator._queryCSS({scope:E,pierceShadow:e},`*`);for(let e of N)M(e);return A}}}_createAttributeEngine(e,T){let E=T=>[{simples:[{selector:{css:`[${e}=${JSON.stringify(T)}]`,functions:[]},combinator:``}]}];return{queryAll:(e,D)=>this._evaluator.query({scope:e,pierceShadow:T},E(D))}}_createCSSEngine(){return{queryAll:(e,T)=>this._evaluator.query({scope:e,pierceShadow:!0},T)}}_createNamedAttributeEngine(){return{queryAll:(e,T)=>{let E=parseAttributeSelector(T);if(E.name||E.attributes.length!==1)throw Error(`Malformed attribute selector: ${T}`);let{name:D,value:O,caseSensitive:k}=E.attributes[0],A=k?null:O.toLowerCase(),j;return j=O instanceof RegExp?e=>!!e.match(O):k?e=>e===O:e=>e.toLowerCase().includes(A),this._evaluator._queryCSS({scope:e,pierceShadow:!0},`[${D}]`).filter(e=>j(e.getAttribute(D)))}}}_createVisibleEngine(){return{queryAll:(e,T)=>e.nodeType===1&&isElementVisible(e)===!!T?[e]:[]}}_createControlEngine(){return{queryAll:(e,T)=>{if(T===`enter-frame`&&e instanceof HTMLIFrameElement){let T=e.contentDocument?.documentElement;return T?[T]:[]}return[]}}}_createHasEngine(){return{queryAll:(e,T)=>e.nodeType===1&&this.querySelector(T.parsed,e,!1)?[e]:[]}}_createHasNotEngine(){return{queryAll:(e,T)=>e.nodeType===1?this.querySelector(T.parsed,e,!1)?[]:[e]:[]}}_createInternalChainEngine(){return{queryAll:(e,T)=>this.querySelectorAll(T.parsed,e)}}_createInternalLabelEngine(){return{queryAll:(e,T)=>{let{matcher:E}=createTextMatcher(T,!0);return this._evaluator._queryCSS({scope:e,pierceShadow:!0},`*`).filter(e=>getElementLabels(this._evaluator._cacheText,e).some(e=>E(e)))}}}_createInternalHasTextEngine(){return{queryAll:(e,T)=>{if(e.nodeType!==1)return[];let E=e,D=elementText(this._evaluator._cacheText,E),{matcher:O}=createTextMatcher(T,!0);return O(D)?[E]:[]}}}_createInternalHasNotTextEngine(){return{queryAll:(e,T)=>{if(e.nodeType!==1)return[];let E=e,D=elementText(this._evaluator._cacheText,E),{matcher:O}=createTextMatcher(T,!0);return O(D)?[]:[E]}}}};__publicField(_Ivya,`options`,{testIdAttribute:`data-testid`,browser:`chromium`}),__publicField(_Ivya,`singleton`,null);var Ivya=_Ivya;function oneLine(e){return e.replace(/\n/g,`↵`).replace(/\t/g,`⇆`)}var booleanAttributes=new Set([`checked`,`selected`,`disabled`,`readonly`,`multiple`]),autoClosingTags=new Set([`AREA`,`BASE`,`BR`,`COL`,`COMMAND`,`EMBED`,`HR`,`IMG`,`INPUT`,`KEYGEN`,`LINK`,`MENUITEM`,`META`,`PARAM`,`SOURCE`,`TRACK`,`WBR`]);function cssUnquote(e){if(e=e.substring(1,e.length-1),!e.includes(`\\`))return e;let T=[],E=0;for(;E<e.length;)e[E]===`\\`&&E+1<e.length&&E++,T.push(e[E++]);return T.join(``)}function createTextMatcher(e,T){if(e[0]===`/`&&e.lastIndexOf(`/`)>0){let T=e.lastIndexOf(`/`),E=new RegExp(e.substring(1,T),e.substring(T+1));return{matcher:e=>E.test(e.full),kind:`regex`}}let E=T?JSON.parse.bind(JSON):cssUnquote,D=!1;return e.length>1&&e[0]===`"`&&e[e.length-1]===`"`?(e=E(e),D=!0):T&&e.length>1&&e[0]===`"`&&e[e.length-2]===`"`&&e[e.length-1]===`i`?(e=E(e.substring(0,e.length-1)),D=!1):T&&e.length>1&&e[0]===`"`&&e[e.length-2]===`"`&&e[e.length-1]===`s`?(e=E(e.substring(0,e.length-1)),D=!0):e.length>1&&e[0]===`'`&&e[e.length-1]===`'`&&(e=E(e),D=!0),e=normalizeWhiteSpace(e),D?T?{kind:`strict`,matcher:T=>T.normalized===e}:{matcher:T=>!e&&!T.immediate.length?!0:T.immediate.some(T=>normalizeWhiteSpace(T)===e),kind:`strict`}:(e=e.toLowerCase(),{kind:`lax`,matcher:T=>T.normalized.toLowerCase().includes(e)})}var XPathEngine={queryAll(e,T){T.startsWith(`/`)&&e.nodeType!==Node.DOCUMENT_NODE&&(T=`.${T}`);let E=[],D=e.ownerDocument||e;if(!D)return E;let O=D.evaluate(T,e,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE);for(let e=O.iterateNext();e;e=O.iterateNext())e.nodeType===Node.ELEMENT_NODE&&E.push(e);return E}};function parentElementOrShadowHost(e){if(e.parentElement)return e.parentElement;if(e.parentNode&&e.parentNode.nodeType===11&&e.parentNode.host)return e.parentNode.host}function enclosingShadowRootOrDocument(e){let T=e;for(;T.parentNode;)T=T.parentNode;if(T.nodeType===11||T.nodeType===9)return T}function enclosingShadowHost(e){for(;e.parentElement;)e=e.parentElement;return parentElementOrShadowHost(e)}function closestCrossShadow(e,T){for(;e;){let E=e.closest(T);if(E)return E;e=enclosingShadowHost(e)}}function getElementComputedStyle(e,T){return e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,T):void 0}function isElementStyleVisibilityVisible(e,T){if(T??=getElementComputedStyle(e),!T)return!0;if(Element.prototype.checkVisibility&&Ivya.options.browser!==`webkit`){if(!e.checkVisibility())return!1}else{let T=e.closest(`details,summary`);if(T!==e&&T?.nodeName===`DETAILS`&&!T.open)return!1}return T.visibility===`visible`}function isElementVisible(e){let T=getElementComputedStyle(e);if(!T)return!0;if(T.display===`contents`){for(let T=e.firstChild;T;T=T.nextSibling)if(T.nodeType===1&&isElementVisible(T)||T.nodeType===3&&isVisibleTextNode(T))return!0;return!1}if(!isElementStyleVisibilityVisible(e,T))return!1;let E=e.getBoundingClientRect();return E.width>0&&E.height>0}function isVisibleTextNode(e){let T=e.ownerDocument.createRange();T.selectNode(e);let E=T.getBoundingClientRect();return E.width>0&&E.height>0}function elementSafeTagName(e){return e instanceof HTMLFormElement?`FORM`:e.tagName.toUpperCase()}function ensureAwaited(e){let T=getWorkerState().current;if(!T||T.type!==`test`)return e();let E=!1,D=Error(`STACK_TRACE_ERROR`);T.onFinished??=[],T.onFinished.push(()=>{if(!E){let e=Error(`The call was not awaited. This method is asynchronous and must be awaited; otherwise, the call will not start to avoid unhandled rejections.`);throw e.stack=D.stack?.replace(D.message,e.message),e}});let O;return{then(T,k){return E=!0,(O||=e(D)).then(T,k)},catch(T){return(O||=e(D)).catch(T)},finally(T){return(O||=e(D)).finally(T)},[Symbol.toStringTag]:`Promise`}}function getBrowserState(){return window.__vitest_browser_runner__}function getWorkerState(){let e=window.__vitest_worker__;if(!e)throw Error(`Worker state is not found. This is an issue with Vitest. Please, open an issue.`);return e}const provider=getBrowserState().provider;function convertElementToCssSelector(e){if(!e||!(e instanceof Element))throw Error(`Expected DOM element to be an instance of Element, received ${typeof e}`);return getUniqueCssSelector(e)}function escapeIdForCSSSelector(e){return e.split(``).map(e=>{let T=e.charCodeAt(0);return e===` `||e===`#`||e===`.`||e===`:`||e===`[`||e===`]`||e===`>`||e===`+`||e===`~`||e===`\\`?`\\${e}`:T>=65536?`\\${T.toString(16).toUpperCase().padStart(6,`0`)} `:T<32||T===127||T>=128?`\\${T.toString(16).toUpperCase().padStart(2,`0`)} `:e}).join(``)}function getUniqueCssSelector(e){let T=[],E,D=!1;for(;E=getParent(e);){E.shadowRoot&&(D=!0);let O=e.tagName;if(e.id)T.push(`#${escapeIdForCSSSelector(e.id)}`);else if(!e.nextElementSibling&&!e.previousElementSibling)T.push(O.toLowerCase());else{let D=0,k=0,A=0;for(let T of E.children)D++,T.tagName===O&&k++,T===e&&(A=D);k>1?T.push(`${O.toLowerCase()}:nth-child(${A})`):T.push(O.toLowerCase())}e=E}return`${getBrowserState().provider===`webdriverio`&&D?`>>>`:``}${T.reverse().join(` > `)}`}function getParent(e){let T=e.parentNode;return T instanceof ShadowRoot?T.host:T}const now=Date.now;function processTimeoutOptions(e){if(e&&e.timeout!=null||provider!==`playwright`||getWorkerState().config.browser.providerOptions.actionTimeout!=null)return e;let T=getBrowserState().runner,E=T._currentTaskStartTime;if(!E)return e;let D=T._currentTaskTimeout;if(D===0||D==null||D===1/0)return e;e||={};let O=now(),k=E+D-O;return k<=0||(e.timeout=k-100),e}function getIframeScale(){let e=window.parent.document.querySelector(`iframe[data-vitest]`)?.parentElement;if(!e)throw Error(`Cannot find Tester element. This is a bug in Vitest. Please, open a new issue with reproduction.`);let T=e.getAttribute(`data-scale`),E=Number(T);if(Number.isNaN(E))throw TypeError(`Cannot parse scale value from Tester element (${T}). This is a bug in Vitest. Please, open a new issue with reproduction.`);return E}function escapeRegexForSelector(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function escapeForTextSelector(e,T){return typeof e==`string`?`${JSON.stringify(e)}i`:escapeRegexForSelector(e)}function convertToSelector(e){if(!e)throw Error(`Expected element or locator to be defined.`);if(e instanceof Element)return convertElementToCssSelector(e);if(isLocator(e))return e.selector;throw Error(`Expected element or locator to be an instance of Element or Locator.`)}const kLocator$1=Symbol.for(`$$vitest:locator`);function isLocator(e){return!!e&&typeof e==`object`&&kLocator$1 in e}__INTERNAL._asLocator=asLocator;const selectorEngine=Ivya.create({browser:(e=>{switch(e){case`edge`:case`chrome`:return`chromium`;case`safari`:return`webkit`;default:return e}})(server.config.browser.name),testIdAttribute:server.config.browser.locators.testIdAttribute}),kLocator=Symbol.for(`$$vitest:locator`);class Locator{_parsedSelector;_container;_pwSelector;constructor(){Object.defineProperty(this,kLocator,{enumerable:!1,writable:!1,configurable:!1,value:kLocator})}click(e){return this.triggerCommand(`__vitest_click`,this.selector,e)}dblClick(e){return this.triggerCommand(`__vitest_dblClick`,this.selector,e)}tripleClick(e){return this.triggerCommand(`__vitest_tripleClick`,this.selector,e)}clear(e){return this.triggerCommand(`__vitest_clear`,this.selector,e)}hover(e){return this.triggerCommand(`__vitest_hover`,this.selector,e)}unhover(e){return this.triggerCommand(`__vitest_hover`,`html > body`,e)}fill(e,T){return this.triggerCommand(`__vitest_fill`,this.selector,e,T)}async upload(e,T){let E=(Array.isArray(e)?e:[e]).map(async e=>{if(typeof e==`string`)return e;let T=await new Promise((T,E)=>{let D=new FileReader;D.onload=()=>T(D.result),D.onerror=()=>E(Error(`Failed to read file: ${e.name}`)),D.readAsDataURL(e)});return{name:e.name,mimeType:e.type,base64:T.slice(T.indexOf(`,`)+1)}});return this.triggerCommand(`__vitest_upload`,this.selector,await Promise.all(E),T)}dropTo(e,T={}){return this.triggerCommand(`__vitest_dragAndDrop`,this.selector,e.selector,T)}selectOptions(e,T){let E=(Array.isArray(e)?e:[e]).map(e=>typeof e==`string`?e:{element:isLocator(e)?e.selector:selectorEngine.generateSelectorSimple(e)});return this.triggerCommand(`__vitest_selectOptions`,this.selector,E,T)}screenshot(e){return page.screenshot({...e,element:this})}getByRole(e,T){return this.locator(getByRoleSelector(e,T))}getByAltText(e,T){return this.locator(getByAltTextSelector(e,T))}getByLabelText(e,T){return this.locator(getByLabelSelector(e,T))}getByPlaceholder(e,T){return this.locator(getByPlaceholderSelector(e,T))}getByTestId(T){return this.locator(getByTestIdSelector(server.config.browser.locators.testIdAttribute,T))}getByText(e,T){return this.locator(getByTextSelector(e,T))}getByTitle(e,T){return this.locator(getByTitleSelector(e,T))}filter(e){let T=[];if(e?.hasText&&T.push(`internal:has-text=${escapeForTextSelector(e.hasText)}`),e?.hasNotText&&T.push(`internal:has-not-text=${escapeForTextSelector(e.hasNotText)}`),e?.has){let E=e.has;T.push(`internal:has=${JSON.stringify(E._pwSelector||E.selector)}`)}if(e?.hasNot){let E=e.hasNot;T.push(`internal:has-not=${JSON.stringify(E._pwSelector||E.selector)}`)}if(!T.length)throw Error(`Locator.filter expects at least one filter. None provided.`);return this.locator(T.join(` >> `))}and(e){return this.locator(`internal:and=${JSON.stringify(e._pwSelector||e.selector)}`)}or(e){return this.locator(`internal:or=${JSON.stringify(e._pwSelector||e.selector)}`)}query(){let e=this._parsedSelector||=selectorEngine.parseSelector(this._pwSelector||this.selector);return selectorEngine.querySelector(e,document.documentElement,!0)}element(){let e=this.query();if(!e)throw utils.getElementError(this._pwSelector||this.selector,this._container||document.body);return e}elements(){let e=this._parsedSelector||=selectorEngine.parseSelector(this._pwSelector||this.selector);return selectorEngine.querySelectorAll(e,document.documentElement)}get length(){return this.elements().length}all(){return this.elements().map(e=>this.elementLocator(e))}nth(e){return this.locator(`nth=${e}`)}first(){return this.nth(0)}last(){return this.nth(-1)}toString(){return this.selector}toJSON(){return this.selector}triggerCommand(e,...T){let E=getBrowserState().commands;return ensureAwaited(D=>E.triggerCommand(e,T,D))}}export{Locator as L,getAriaRole as a,getAriaDisabled as b,beginAriaCaches as c,getElementAccessibleDescription as d,endAriaCaches as e,getElementAccessibleErrorMessage as f,getAriaChecked as g,getElementAccessibleName as h,isElementVisible as i,cssEscape as j,kAriaCheckedRoles as k,convertToSelector as l,getBrowserState as m,convertElementToCssSelector as n,getIframeScale as o,processTimeoutOptions as p,getByAltTextSelector as q,getByLabelSelector as r,selectorEngine as s,getByPlaceholderSelector as t,getByRoleSelector as u,getByTestIdSelector as v,getByTextSelector as w,getByTitleSelector as x};
@@ -0,0 +1,7 @@
1
+ // Node.js-specific entry that includes @vitest/browser provider symbols
2
+ // Browser code should use index.js which doesn't pull in Node.js-only code
3
+ export * from './index.js';
4
+
5
+ // Re-export @vitest/browser symbols for pnpm override compatibility
6
+ // These are only needed when this package overrides @vitest/browser in Node.js context
7
+ export { resolveScreenshotPath, defineBrowserProvider, parseKeyDef, defineBrowserCommand } from './@vitest/browser/index.js';