Best JavaScript code snippet using playwright-internal
injectedScriptSource.js
Source:injectedScriptSource.js
1var pwExport2;(() => {3 'use strict'4 var e = {5 204: (e, t) => {6 Object.defineProperty(t, '__esModule', { value: !0 }),7 (t.checkComponentAttribute = function (e, t) {8 for (const n of t.jsonPath) null != e && (e = e[n])9 const n =10 'string' != typeof e || t.caseSensetive ? e : e.toUpperCase(),11 r =12 'string' != typeof t.value || t.caseSensetive13 ? t.value14 : t.value.toUpperCase()15 return '<truthy>' === t.op16 ? !!n17 : '=' === t.op18 ? n === r19 : 'string' == typeof n &&20 'string' == typeof r &&21 ('*=' === t.op22 ? n.includes(r)23 : '^=' === t.op24 ? n.startsWith(r)25 : '$=' === t.op26 ? n.endsWith(r)27 : '|=' === t.op28 ? n === r || n.startsWith(r + '-')29 : '~=' === t.op && n.split(' ').includes(r))30 }),31 (t.parseComponentSelector = function (e) {32 let t = 0,33 n = 0 === e.length34 const r = () => e[t] || '',35 o = () => {36 const o = r()37 return ++t, (n = t >= e.length), o38 },39 i = (o) => {40 if (n)41 throw new Error(42 `Unexpected end of selector while parsing selector \`${e}\``43 )44 throw new Error(45 `Error while parsing selector \`${e}\` - unexpected symbol "${r()}" at position ${t}` +46 (o ? ' during ' + o : '')47 )48 }49 function s() {50 for (; !n && /\s/.test(r()); ) o()51 }52 function c() {53 let e = ''54 for (s(); !n && /[-$0-9A-Z_]/i.test(r()); ) e += o()55 return e56 }57 function a(e) {58 let t = o()59 for (t !== e && i('parsing quoted string'); !n && r() !== e; )60 '\\' === r() && o(), (t += o())61 return r() !== e && i('parsing quoted string'), (t += o()), t62 }63 function u() {64 let e = ''65 return (66 s(),67 (e = "'" === r() || '"' === r() ? a(r()).slice(1, -1) : c()),68 e || i('parsing property path'),69 e70 )71 }72 function l() {73 o()74 const t = []75 for (t.push(u()), s(); '.' === r(); ) o(), t.push(u()), s()76 if (']' === r())77 return (78 o(),79 {80 jsonPath: t,81 op: '<truthy>',82 value: null,83 caseSensetive: !184 }85 )86 const c = (function () {87 s()88 let e = ''89 return (90 n || (e += o()),91 n || '=' === e || (e += o()),92 ['=', '*=', '^=', '$=', '|=', '~='].includes(e) ||93 i('parsing operator'),94 e95 )96 })()97 let l,98 h = !099 if ((s(), "'" === r() || '"' === r()))100 (l = a(r()).slice(1, -1)),101 s(),102 'i' === r() || 'I' === r()103 ? ((h = !1), o())104 : ('s' !== r() && 'S' !== r()) || ((h = !0), o())105 else {106 for (l = ''; !n && !/\s/.test(r()) && ']' !== r(); ) l += o()107 'true' === l108 ? (l = !0)109 : 'false' === l110 ? (l = !1)111 : ((l = +l), isNaN(l) && i('parsing attribute value'))112 }113 if (114 (s(),115 ']' !== r() && i('parsing attribute value'),116 o(),117 '=' !== c && 'string' != typeof l)118 )119 throw new Error(120 `Error while parsing selector \`${e}\` - cannot use ${c} in attribute with non-string matching value - ${l}`121 )122 return { jsonPath: t, op: c, value: l, caseSensetive: h }123 }124 const h = { name: '', attributes: [] }125 for (h.name = c(), s(); '[' === r(); ) h.attributes.push(l()), s()126 if ((n || i(void 0), !h.name && !h.attributes.length))127 throw new Error(128 `Error while parsing selector \`${e}\` - selector cannot be empty`129 )130 return h131 })132 },133 317: (e, t, n) => {134 Object.defineProperty(t, '__esModule', { value: !0 }),135 (t.parseCSS = function (e, t) {136 let n137 try {138 ;(n = r.tokenize(e)),139 n[n.length - 1] instanceof r.EOFToken ||140 n.push(new r.EOFToken())141 } catch (t) {142 const n = t.message + ` while parsing selector "${e}"`,143 r = (t.stack || '').indexOf(t.message)144 throw (145 (-1 !== r &&146 (t.stack =147 t.stack.substring(0, r) +148 n +149 t.stack.substring(r + t.message.length)),150 (t.message = n),151 t)152 )153 }154 const o = n.find(155 (e) =>156 e instanceof r.AtKeywordToken ||157 e instanceof r.BadStringToken ||158 e instanceof r.BadURLToken ||159 e instanceof r.ColumnToken ||160 e instanceof r.CDOToken ||161 e instanceof r.CDCToken ||162 e instanceof r.SemicolonToken ||163 e instanceof r.OpenCurlyToken ||164 e instanceof r.CloseCurlyToken ||165 e instanceof r.URLToken ||166 e instanceof r.PercentageToken167 )168 if (o)169 throw new Error(170 `Unsupported token "${o.toSource()}" while parsing selector "${e}"`171 )172 let i = 0173 const s = new Set()174 function c() {175 return new Error(176 `Unexpected token "${n[177 i178 ].toSource()}" while parsing selector "${e}"`179 )180 }181 function a() {182 for (; n[i] instanceof r.WhitespaceToken; ) i++183 }184 function u(e = i) {185 return n[e] instanceof r.IdentToken186 }187 function l(e = i) {188 return n[e] instanceof r.CommaToken189 }190 function h(e = i) {191 return n[e] instanceof r.CloseParenToken192 }193 function p(e = i) {194 return n[e] instanceof r.DelimToken && '*' === n[e].value195 }196 function f(e = i) {197 return n[e] instanceof r.EOFToken198 }199 function d(e = i) {200 return (201 n[e] instanceof r.DelimToken &&202 ['>', '+', '~'].includes(n[e].value)203 )204 }205 function m(e = i) {206 return (207 l(e) ||208 h(e) ||209 f(e) ||210 d(e) ||211 n[e] instanceof r.WhitespaceToken212 )213 }214 function g() {215 const e = [y()]216 for (; a(), l(); ) i++, e.push(y())217 return e218 }219 function y() {220 return (221 a(),222 (function (e = i) {223 return n[e] instanceof r.NumberToken224 })() ||225 (function (e = i) {226 return n[e] instanceof r.StringToken227 })()228 ? n[i++].value229 : (function () {230 const e = { simples: [] }231 for (232 a(),233 d()234 ? e.simples.push({235 selector: {236 functions: [{ name: 'scope', args: [] }]237 },238 combinator: ''239 })240 : e.simples.push({ selector: v(), combinator: '' });241 ;242 ) {243 if ((a(), d()))244 (e.simples[e.simples.length - 1].combinator =245 n[i++].value),246 a()247 else if (m()) break248 e.simples.push({ combinator: '', selector: v() })249 }250 return e251 })()252 )253 }254 function v() {255 let e = ''256 const o = []257 for (; !m(); )258 if (u() || p()) e += n[i++].toSource()259 else if (n[i] instanceof r.HashToken) e += n[i++].toSource()260 else if (n[i] instanceof r.DelimToken && '.' === n[i].value) {261 if ((i++, !u())) throw c()262 e += '.' + n[i++].toSource()263 } else if (n[i] instanceof r.ColonToken)264 if ((i++, u()))265 if (t.has(n[i].value.toLowerCase())) {266 const e = n[i++].value.toLowerCase()267 o.push({ name: e, args: [] }), s.add(e)268 } else e += ':' + n[i++].toSource()269 else {270 if (!(n[i] instanceof r.FunctionToken)) throw c()271 {272 const r = n[i++].value.toLowerCase()273 if (274 (t.has(r)275 ? (o.push({ name: r, args: g() }), s.add(r))276 : (e += `:${r}(${w()})`),277 a(),278 !h())279 )280 throw c()281 i++282 }283 }284 else {285 if (!(n[i] instanceof r.OpenSquareToken)) throw c()286 for (287 e += '[', i++;288 !(n[i] instanceof r.CloseSquareToken || f());289 )290 e += n[i++].toSource()291 if (!(n[i] instanceof r.CloseSquareToken)) throw c()292 ;(e += ']'), i++293 }294 if (!e && !o.length) throw c()295 return { css: e || void 0, functions: o }296 }297 function w() {298 let e = ''299 for (; !h() && !f(); ) e += n[i++].toSource()300 return e301 }302 const b = g()303 if (!f()) throw new Error(`Error while parsing selector "${e}"`)304 if (b.some((e) => 'object' != typeof e || !('simples' in e)))305 throw new Error(`Error while parsing selector "${e}"`)306 return { selector: b, names: Array.from(s) }307 }),308 (t.serializeSelector = function e(t) {309 return t310 .map((t) =>311 'string' == typeof t312 ? `"${t}"`313 : 'number' == typeof t314 ? String(t)315 : t.simples316 .map(({ selector: t, combinator: n }) => {317 let r = t.css || ''318 return (319 (r += t.functions320 .map((t) => `:${t.name}(${e(t.args)})`)321 .join('')),322 n && (r += ' ' + n),323 r324 )325 })326 .join(' ')327 )328 .join(', ')329 })330 var r = (function (e, t) {331 if (e && e.__esModule) return e332 if (null === e || ('object' != typeof e && 'function' != typeof e))333 return { default: e }334 var n = o(t)335 if (n && n.has(e)) return n.get(e)336 var r = {},337 i = Object.defineProperty && Object.getOwnPropertyDescriptor338 for (var s in e)339 if ('default' !== s && Object.prototype.hasOwnProperty.call(e, s)) {340 var c = i ? Object.getOwnPropertyDescriptor(e, s) : null341 c && (c.get || c.set)342 ? Object.defineProperty(r, s, c)343 : (r[s] = e[s])344 }345 return (r.default = e), n && n.set(e, r), r346 })(n(503))347 function o(e) {348 if ('function' != typeof WeakMap) return null349 var t = new WeakMap(),350 n = new WeakMap()351 return (o = function (e) {352 return e ? n : t353 })(e)354 }355 },356 503: (e, t) => {357 var n, r358 ;(n = function (e) {359 var t = function (e, t, n) {360 return e >= t && e <= n361 }362 function n(e) {363 return t(e, 48, 57)364 }365 function r(e) {366 return n(e) || t(e, 65, 70) || t(e, 97, 102)367 }368 function o(e) {369 return (370 (function (e) {371 return t(e, 65, 90)372 })(e) ||373 (function (e) {374 return t(e, 97, 122)375 })(e)376 )377 }378 function i(e) {379 return (380 o(e) ||381 (function (e) {382 return e >= 128383 })(e) ||384 95 == e385 )386 }387 function s(e) {388 return i(e) || n(e) || 45 == e389 }390 function c(e) {391 return t(e, 0, 8) || 11 == e || t(e, 14, 31) || 127 == e392 }393 function a(e) {394 return 10 == e395 }396 function u(e) {397 return a(e) || 9 == e || 32 == e398 }399 var l = function (e) {400 this.message = e401 }402 function h(e) {403 if (e <= 65535) return String.fromCharCode(e)404 e -= Math.pow(2, 16)405 var t = Math.floor(e / Math.pow(2, 10)) + 55296,406 n = (e % Math.pow(2, 10)) + 56320407 return String.fromCharCode(t) + String.fromCharCode(n)408 }409 function p() {410 throw 'Abstract Base Class'411 }412 function f() {413 return this414 }415 function d() {416 return this417 }418 function m() {419 return this420 }421 function g() {422 return this423 }424 function y() {425 return this426 }427 function v() {428 return this429 }430 function w() {431 return this432 }433 function b() {434 return this435 }436 function E() {437 throw 'Abstract Base Class'438 }439 function _() {440 return (this.value = '{'), (this.mirror = '}'), this441 }442 function S() {443 return (this.value = '}'), (this.mirror = '{'), this444 }445 function T() {446 return (this.value = '['), (this.mirror = ']'), this447 }448 function k() {449 return (this.value = ']'), (this.mirror = '['), this450 }451 function N() {452 return (this.value = '('), (this.mirror = ')'), this453 }454 function x() {455 return (this.value = ')'), (this.mirror = '('), this456 }457 function C() {458 return this459 }460 function A() {461 return this462 }463 function O() {464 return this465 }466 function M() {467 return this468 }469 function $() {470 return this471 }472 function R() {473 return this474 }475 function j() {476 return this477 }478 function L(e) {479 return (this.value = h(e)), this480 }481 function P() {482 throw 'Abstract Base Class'483 }484 function q(e) {485 this.value = e486 }487 function D(e) {488 ;(this.value = e), (this.mirror = ')')489 }490 function I(e) {491 this.value = e492 }493 function U(e) {494 ;(this.value = e), (this.type = 'unrestricted')495 }496 function W(e) {497 this.value = e498 }499 function F(e) {500 this.value = e501 }502 function B() {503 ;(this.value = null), (this.type = 'integer'), (this.repr = '')504 }505 function z() {506 ;(this.value = null), (this.repr = '')507 }508 function V() {509 ;(this.value = null),510 (this.type = 'integer'),511 (this.repr = ''),512 (this.unit = '')513 }514 function H(e) {515 for (516 var n = '', r = (e = '' + e).charCodeAt(0), o = 0;517 o < e.length;518 o++519 ) {520 var i = e.charCodeAt(o)521 if (0 == i)522 throw new l('Invalid character: the input contains U+0000.')523 t(i, 1, 31) ||524 127 == i ||525 (0 == o && t(i, 48, 57)) ||526 (1 == o && t(i, 48, 57) && 45 == r)527 ? (n += '\\' + i.toString(16) + ' ')528 : i >= 128 ||529 45 == i ||530 95 == i ||531 t(i, 48, 57) ||532 t(i, 65, 90) ||533 t(i, 97, 122)534 ? (n += e[o])535 : (n += '\\' + e[o])536 }537 return n538 }539 function G(e) {540 e = '' + e541 for (var n = '', r = 0; r < e.length; r++) {542 var o = e.charCodeAt(r)543 if (0 == o)544 throw new l('Invalid character: the input contains U+0000.')545 t(o, 1, 31) || 127 == o546 ? (n += '\\' + o.toString(16) + ' ')547 : (n += 34 == o || 92 == o ? '\\' + e[r] : e[r])548 }549 return n550 }551 ;((l.prototype = new Error()).name = 'InvalidCharacterError'),552 (p.prototype.toJSON = function () {553 return { token: this.tokenType }554 }),555 (p.prototype.toString = function () {556 return this.tokenType557 }),558 (p.prototype.toSource = function () {559 return '' + this560 }),561 (f.prototype = Object.create(p.prototype)),562 (f.prototype.tokenType = 'BADSTRING'),563 (d.prototype = Object.create(p.prototype)),564 (d.prototype.tokenType = 'BADURL'),565 (m.prototype = Object.create(p.prototype)),566 (m.prototype.tokenType = 'WHITESPACE'),567 (m.prototype.toString = function () {568 return 'WS'569 }),570 (m.prototype.toSource = function () {571 return ' '572 }),573 (g.prototype = Object.create(p.prototype)),574 (g.prototype.tokenType = 'CDO'),575 (g.prototype.toSource = function () {576 return '\x3c!--'577 }),578 (y.prototype = Object.create(p.prototype)),579 (y.prototype.tokenType = 'CDC'),580 (y.prototype.toSource = function () {581 return '--\x3e'582 }),583 (v.prototype = Object.create(p.prototype)),584 (v.prototype.tokenType = ':'),585 (w.prototype = Object.create(p.prototype)),586 (w.prototype.tokenType = ';'),587 (b.prototype = Object.create(p.prototype)),588 (b.prototype.tokenType = ','),589 (E.prototype = Object.create(p.prototype)),590 (_.prototype = Object.create(E.prototype)),591 (_.prototype.tokenType = '{'),592 (S.prototype = Object.create(E.prototype)),593 (S.prototype.tokenType = '}'),594 (T.prototype = Object.create(E.prototype)),595 (T.prototype.tokenType = '['),596 (k.prototype = Object.create(E.prototype)),597 (k.prototype.tokenType = ']'),598 (N.prototype = Object.create(E.prototype)),599 (N.prototype.tokenType = '('),600 (x.prototype = Object.create(E.prototype)),601 (x.prototype.tokenType = ')'),602 (C.prototype = Object.create(p.prototype)),603 (C.prototype.tokenType = '~='),604 (A.prototype = Object.create(p.prototype)),605 (A.prototype.tokenType = '|='),606 (O.prototype = Object.create(p.prototype)),607 (O.prototype.tokenType = '^='),608 (M.prototype = Object.create(p.prototype)),609 (M.prototype.tokenType = '$='),610 ($.prototype = Object.create(p.prototype)),611 ($.prototype.tokenType = '*='),612 (R.prototype = Object.create(p.prototype)),613 (R.prototype.tokenType = '||'),614 (j.prototype = Object.create(p.prototype)),615 (j.prototype.tokenType = 'EOF'),616 (j.prototype.toSource = function () {617 return ''618 }),619 (L.prototype = Object.create(p.prototype)),620 (L.prototype.tokenType = 'DELIM'),621 (L.prototype.toString = function () {622 return 'DELIM(' + this.value + ')'623 }),624 (L.prototype.toJSON = function () {625 var e =626 this.constructor.prototype.constructor.prototype.toJSON.call(627 this628 )629 return (e.value = this.value), e630 }),631 (L.prototype.toSource = function () {632 return '\\' == this.value ? '\\\n' : this.value633 }),634 (P.prototype = Object.create(p.prototype)),635 (P.prototype.ASCIIMatch = function (e) {636 return this.value.toLowerCase() == e.toLowerCase()637 }),638 (P.prototype.toJSON = function () {639 var e =640 this.constructor.prototype.constructor.prototype.toJSON.call(641 this642 )643 return (e.value = this.value), e644 }),645 (q.prototype = Object.create(P.prototype)),646 (q.prototype.tokenType = 'IDENT'),647 (q.prototype.toString = function () {648 return 'IDENT(' + this.value + ')'649 }),650 (q.prototype.toSource = function () {651 return H(this.value)652 }),653 (D.prototype = Object.create(P.prototype)),654 (D.prototype.tokenType = 'FUNCTION'),655 (D.prototype.toString = function () {656 return 'FUNCTION(' + this.value + ')'657 }),658 (D.prototype.toSource = function () {659 return H(this.value) + '('660 }),661 (I.prototype = Object.create(P.prototype)),662 (I.prototype.tokenType = 'AT-KEYWORD'),663 (I.prototype.toString = function () {664 return 'AT(' + this.value + ')'665 }),666 (I.prototype.toSource = function () {667 return '@' + H(this.value)668 }),669 (U.prototype = Object.create(P.prototype)),670 (U.prototype.tokenType = 'HASH'),671 (U.prototype.toString = function () {672 return 'HASH(' + this.value + ')'673 }),674 (U.prototype.toJSON = function () {675 var e =676 this.constructor.prototype.constructor.prototype.toJSON.call(677 this678 )679 return (e.value = this.value), (e.type = this.type), e680 }),681 (U.prototype.toSource = function () {682 return 'id' == this.type683 ? '#' + H(this.value)684 : '#' +685 (function (e) {686 for (687 var n = '', r = ((e = '' + e).charCodeAt(0), 0);688 r < e.length;689 r++690 ) {691 var o = e.charCodeAt(r)692 if (0 == o)693 throw new l(694 'Invalid character: the input contains U+0000.'695 )696 o >= 128 ||697 45 == o ||698 95 == o ||699 t(o, 48, 57) ||700 t(o, 65, 90) ||701 t(o, 97, 122)702 ? (n += e[r])703 : (n += '\\' + o.toString(16) + ' ')704 }705 return n706 })(this.value)707 }),708 (W.prototype = Object.create(P.prototype)),709 (W.prototype.tokenType = 'STRING'),710 (W.prototype.toString = function () {711 return '"' + G(this.value) + '"'712 }),713 (F.prototype = Object.create(P.prototype)),714 (F.prototype.tokenType = 'URL'),715 (F.prototype.toString = function () {716 return 'URL(' + this.value + ')'717 }),718 (F.prototype.toSource = function () {719 return 'url("' + G(this.value) + '")'720 }),721 (B.prototype = Object.create(p.prototype)),722 (B.prototype.tokenType = 'NUMBER'),723 (B.prototype.toString = function () {724 return 'integer' == this.type725 ? 'INT(' + this.value + ')'726 : 'NUMBER(' + this.value + ')'727 }),728 (B.prototype.toJSON = function () {729 var e =730 this.constructor.prototype.constructor.prototype.toJSON.call(731 this732 )733 return (734 (e.value = this.value),735 (e.type = this.type),736 (e.repr = this.repr),737 e738 )739 }),740 (B.prototype.toSource = function () {741 return this.repr742 }),743 (z.prototype = Object.create(p.prototype)),744 (z.prototype.tokenType = 'PERCENTAGE'),745 (z.prototype.toString = function () {746 return 'PERCENTAGE(' + this.value + ')'747 }),748 (z.prototype.toJSON = function () {749 var e =750 this.constructor.prototype.constructor.prototype.toJSON.call(751 this752 )753 return (e.value = this.value), (e.repr = this.repr), e754 }),755 (z.prototype.toSource = function () {756 return this.repr + '%'757 }),758 (V.prototype = Object.create(p.prototype)),759 (V.prototype.tokenType = 'DIMENSION'),760 (V.prototype.toString = function () {761 return 'DIM(' + this.value + ',' + this.unit + ')'762 }),763 (V.prototype.toJSON = function () {764 var e =765 this.constructor.prototype.constructor.prototype.toJSON.call(766 this767 )768 return (769 (e.value = this.value),770 (e.type = this.type),771 (e.repr = this.repr),772 (e.unit = this.unit),773 e774 )775 }),776 (V.prototype.toSource = function () {777 var e = this.repr,778 n = H(this.unit)779 return (780 'e' != n[0].toLowerCase() ||781 ('-' != n[1] && !t(n.charCodeAt(1), 48, 57)) ||782 (n = '\\65 ' + n.slice(1, n.length)),783 e + n784 )785 }),786 (e.tokenize = function (e) {787 e = (function (e) {788 for (var n = [], r = 0; r < e.length; r++) {789 var o = e.charCodeAt(r)790 if (791 (13 == o && 10 == e.charCodeAt(r + 1) && ((o = 10), r++),792 (13 != o && 12 != o) || (o = 10),793 0 == o && (o = 65533),794 t(o, 55296, 56319) && t(e.charCodeAt(r + 1), 56320, 57343))795 ) {796 var i = o - 55296,797 s = e.charCodeAt(r + 1) - 56320798 ;(o = Math.pow(2, 16) + i * Math.pow(2, 10) + s), r++799 }800 n.push(o)801 }802 return n803 })(e)804 for (805 var o,806 l = -1,807 p = [],808 E = 0,809 P = 0,810 H = 0,811 G = { line: E, column: P },812 J = function (t) {813 return t >= e.length ? -1 : e[t]814 },815 Q = function (e) {816 if ((void 0 === e && (e = 1), e > 3))817 throw 'Spec Error: no more than three codepoints of lookahead.'818 return J(l + e)819 },820 X = function (e) {821 return (822 void 0 === e && (e = 1),823 a((o = J((l += e))))824 ? ((E += 1), (H = P), (P = 0))825 : (P += e),826 !0827 )828 },829 K = function () {830 return (831 (l -= 1),832 a(o) ? ((E -= 1), (P = H)) : (P -= 1),833 (G.line = E),834 (G.column = P),835 !0836 )837 },838 Z = function (e) {839 return void 0 === e && (e = o), -1 == e840 },841 Y = function () {842 return (843 console.log(844 'Parse error at index ' +845 l +846 ', processing codepoint 0x' +847 o.toString(16) +848 '.'849 ),850 !0851 )852 },853 ee = function () {854 if ((te(), X(), u(o))) {855 for (; u(Q()); ) X()856 return new m()857 }858 if (34 == o) return oe()859 if (35 == o) {860 if (s(Q()) || ce(Q(1), Q(2))) {861 var e = new U()862 return (863 ue(Q(1), Q(2), Q(3)) && (e.type = 'id'),864 (e.value = pe()),865 e866 )867 }868 return new L(o)869 }870 return 36 == o871 ? 61 == Q()872 ? (X(), new M())873 : new L(o)874 : 39 == o875 ? oe()876 : 40 == o877 ? new N()878 : 41 == o879 ? new x()880 : 42 == o881 ? 61 == Q()882 ? (X(), new $())883 : new L(o)884 : 43 == o885 ? he()886 ? (K(), ne())887 : new L(o)888 : 44 == o889 ? new b()890 : 45 == o891 ? he()892 ? (K(), ne())893 : 45 == Q(1) && 62 == Q(2)894 ? (X(2), new y())895 : le()896 ? (K(), re())897 : new L(o)898 : 46 == o899 ? he()900 ? (K(), ne())901 : new L(o)902 : 58 == o903 ? new v()904 : 59 == o905 ? new w()906 : 60 == o907 ? 33 == Q(1) && 45 == Q(2) && 45 == Q(3)908 ? (X(3), new g())909 : new L(o)910 : 64 == o911 ? ue(Q(1), Q(2), Q(3))912 ? new I(pe())913 : new L(o)914 : 91 == o915 ? new T()916 : 92 == o917 ? ae()918 ? (K(), re())919 : (Y(), new L(o))920 : 93 == o921 ? new k()922 : 94 == o923 ? 61 == Q()924 ? (X(), new O())925 : new L(o)926 : 123 == o927 ? new _()928 : 124 == o929 ? 61 == Q()930 ? (X(), new A())931 : 124 == Q()932 ? (X(), new R())933 : new L(o)934 : 125 == o935 ? new S()936 : 126 == o937 ? 61 == Q()938 ? (X(), new C())939 : new L(o)940 : n(o)941 ? (K(), ne())942 : i(o)943 ? (K(), re())944 : Z()945 ? new j()946 : new L(o)947 },948 te = function () {949 for (; 47 == Q(1) && 42 == Q(2); )950 for (X(2); ; ) {951 if ((X(), 42 == o && 47 == Q())) {952 X()953 break954 }955 if (Z()) return void Y()956 }957 },958 ne = function () {959 var e,960 t = fe()961 return ue(Q(1), Q(2), Q(3))962 ? (((e = new V()).value = t.value),963 (e.repr = t.repr),964 (e.type = t.type),965 (e.unit = pe()),966 e)967 : 37 == Q()968 ? (X(),969 ((e = new z()).value = t.value),970 (e.repr = t.repr),971 e)972 : (((e = new B()).value = t.value),973 (e.repr = t.repr),974 (e.type = t.type),975 e)976 },977 re = function () {978 var e = pe()979 if ('url' == e.toLowerCase() && 40 == Q()) {980 for (X(); u(Q(1)) && u(Q(2)); ) X()981 return 34 == Q() || 39 == Q()982 ? new D(e)983 : !u(Q()) || (34 != Q(2) && 39 != Q(2))984 ? ie()985 : new D(e)986 }987 return 40 == Q() ? (X(), new D(e)) : new q(e)988 },989 oe = function (e) {990 void 0 === e && (e = o)991 for (var t = ''; X(); ) {992 if (o == e || Z()) return new W(t)993 if (a(o)) return Y(), K(), new f()994 92 == o995 ? Z(Q()) || (a(Q()) ? X() : (t += h(se())))996 : (t += h(o))997 }998 },999 ie = function () {1000 for (var e = new F(''); u(Q()); ) X()1001 if (Z(Q())) return e1002 for (; X(); ) {1003 if (41 == o || Z()) return e1004 if (u(o)) {1005 for (; u(Q()); ) X()1006 return 41 == Q() || Z(Q()) ? (X(), e) : (me(), new d())1007 }1008 if (34 == o || 39 == o || 40 == o || c(o))1009 return Y(), me(), new d()1010 if (92 == o) {1011 if (!ae()) return Y(), me(), new d()1012 e.value += h(se())1013 } else e.value += h(o)1014 }1015 },1016 se = function () {1017 if ((X(), r(o))) {1018 for (var e = [o], t = 0; t < 5 && r(Q()); t++)1019 X(), e.push(o)1020 u(Q()) && X()1021 var n = parseInt(1022 e1023 .map(function (e) {1024 return String.fromCharCode(e)1025 })1026 .join(''),1027 161028 )1029 return n > 1114111 && (n = 65533), n1030 }1031 return Z() ? 65533 : o1032 },1033 ce = function (e, t) {1034 return 92 == e && !a(t)1035 },1036 ae = function () {1037 return ce(o, Q())1038 },1039 ue = function (e, t, n) {1040 return 45 == e1041 ? i(t) || 45 == t || ce(t, n)1042 : !!i(e) || (92 == e && ce(e, t))1043 },1044 le = function () {1045 return ue(o, Q(1), Q(2))1046 },1047 he = function () {1048 return (1049 (e = o),1050 (t = Q(1)),1051 (r = Q(2)),1052 43 == e || 45 == e1053 ? !!n(t) || !(46 != t || !n(r))1054 : 46 == e1055 ? !!n(t)1056 : !!n(e)1057 )1058 var e, t, r1059 },1060 pe = function () {1061 for (var e = ''; X(); )1062 if (s(o)) e += h(o)1063 else {1064 if (!ae()) return K(), e1065 e += h(se())1066 }1067 },1068 fe = function () {1069 var e = [],1070 t = 'integer'1071 for (1072 (43 != Q() && 45 != Q()) || (X(), (e += h(o)));1073 n(Q());1074 )1075 X(), (e += h(o))1076 if (46 == Q(1) && n(Q(2)))1077 for (1078 X(), e += h(o), X(), e += h(o), t = 'number';1079 n(Q());1080 )1081 X(), (e += h(o))1082 var r = Q(1),1083 i = Q(2),1084 s = Q(3)1085 if ((69 != r && 101 != r) || !n(i)) {1086 if ((69 == r || 101 == r) && (43 == i || 45 == i) && n(s))1087 for (1088 X(),1089 e += h(o),1090 X(),1091 e += h(o),1092 X(),1093 e += h(o),1094 t = 'number';1095 n(Q());1096 )1097 X(), (e += h(o))1098 } else1099 for (1100 X(), e += h(o), X(), e += h(o), t = 'number';1101 n(Q());1102 )1103 X(), (e += h(o))1104 return { type: t, value: de(e), repr: e }1105 },1106 de = function (e) {1107 return +e1108 },1109 me = function () {1110 for (; X(); ) {1111 if (41 == o || Z()) return1112 ae() && se()1113 }1114 },1115 ge = 0;1116 !Z(Q());1117 )1118 if ((p.push(ee()), ++ge > 2 * e.length))1119 return "I'm infinite-looping!"1120 return p1121 }),1122 (e.IdentToken = q),1123 (e.FunctionToken = D),1124 (e.AtKeywordToken = I),1125 (e.HashToken = U),1126 (e.StringToken = W),1127 (e.BadStringToken = f),1128 (e.URLToken = F),1129 (e.BadURLToken = d),1130 (e.DelimToken = L),1131 (e.NumberToken = B),1132 (e.PercentageToken = z),1133 (e.DimensionToken = V),1134 (e.IncludeMatchToken = C),1135 (e.DashMatchToken = A),1136 (e.PrefixMatchToken = O),1137 (e.SuffixMatchToken = M),1138 (e.SubstringMatchToken = $),1139 (e.ColumnToken = R),1140 (e.WhitespaceToken = m),1141 (e.CDOToken = g),1142 (e.CDCToken = y),1143 (e.ColonToken = v),1144 (e.SemicolonToken = w),1145 (e.CommaToken = b),1146 (e.OpenParenToken = N),1147 (e.CloseParenToken = x),1148 (e.OpenSquareToken = T),1149 (e.CloseSquareToken = k),1150 (e.OpenCurlyToken = _),1151 (e.CloseCurlyToken = S),1152 (e.EOFToken = j),1153 (e.CSSParserToken = p),1154 (e.GroupingToken = E)1155 }),1156 void 0 === (r = n.apply(t, [t])) || (e.exports = r)1157 },1158 461: (e, t, n) => {1159 Object.defineProperty(t, '__esModule', { value: !0 }),1160 (t.parseSelector = function (e) {1161 const t = (function (e) {1162 let t,1163 n = 0,1164 r = 01165 const o = { parts: [] },1166 i = () => {1167 const t = e.substring(r, n).trim(),1168 i = t.indexOf('=')1169 let s, c1170 ;-1 !== i &&1171 t1172 .substring(0, i)1173 .trim()1174 .match(/^[a-zA-Z_0-9-+:*]+$/)1175 ? ((s = t.substring(0, i).trim()),1176 (c = t.substring(i + 1)))1177 : (t.length > 1 &&1178 '"' === t[0] &&1179 '"' === t[t.length - 1]) ||1180 (t.length > 1 &&1181 "'" === t[0] &&1182 "'" === t[t.length - 1])1183 ? ((s = 'text'), (c = t))1184 : /^\(*\/\//.test(t) || t.startsWith('..')1185 ? ((s = 'xpath'), (c = t))1186 : ((s = 'css'), (c = t))1187 let a = !11188 if (1189 ('*' === s[0] && ((a = !0), (s = s.substring(1))),1190 o.parts.push({ name: s, body: c }),1191 a)1192 ) {1193 if (void 0 !== o.capture)1194 throw new Error(1195 'Only one of the selectors can capture using * modifier'1196 )1197 o.capture = o.parts.length - 11198 }1199 }1200 if (!e.includes('>>')) return (n = e.length), i(), o1201 for (; n < e.length; ) {1202 const o = e[n]1203 '\\' === o && n + 1 < e.length1204 ? (n += 2)1205 : o === t1206 ? ((t = void 0), n++)1207 : t || ('"' !== o && "'" !== o && '`' !== o)1208 ? t || '>' !== o || '>' !== e[n + 1]1209 ? n++1210 : (i(), (n += 2), (r = n))1211 : ((t = o), n++)1212 }1213 return i(), o1214 })(e),1215 n = t.parts.map((e) =>1216 'css' === e.name || 'css:light' === e.name1217 ? ('css:light' === e.name &&1218 (e.body = ':light(' + e.body + ')'),1219 { name: 'css', body: (0, r.parseCSS)(e.body, o).selector })1220 : e1221 )1222 return { selector: e, capture: t.capture, parts: n }1223 }),1224 (t.customCSSNames = void 0)1225 var r = n(317)1226 const o = new Set([1227 'not',1228 'is',1229 'where',1230 'has',1231 'scope',1232 'light',1233 'visible',1234 'text',1235 'text-matches',1236 'text-is',1237 'has-text',1238 'above',1239 'below',1240 'right-of',1241 'left-of',1242 'near',1243 'nth-match'1244 ])1245 t.customCSSNames = o1246 },1247 836: (e, t, n) => {1248 Object.defineProperty(t, '__esModule', { value: !0 }),1249 (t.ReactEngine = void 0)1250 var r = n(204)1251 function o(e) {1252 if ('function' == typeof e.type)1253 return e.type.displayName || e.type.name || 'Anonymous'1254 if ('string' == typeof e.type) return e.type1255 if (e._currentElement) {1256 const t = e._currentElement.type1257 if ('string' == typeof t) return t1258 if ('function' == typeof t)1259 return t.displayName || t.name || 'Anonymous'1260 }1261 return ''1262 }1263 function i(e) {1264 if (e.child) {1265 const t = []1266 for (let n = e.child; n; n = n.sibling) t.push(n)1267 return t1268 }1269 if (!e._currentElement) return []1270 const t = (e) => {1271 var t1272 const n =1273 null === (t = e._currentElement) || void 0 === t ? void 0 : t.type1274 return 'function' == typeof n || 'string' == typeof n1275 }1276 if (e._renderedComponent) {1277 const n = e._renderedComponent1278 return t(n) ? [n] : []1279 }1280 return e._renderedChildren1281 ? [...Object.values(e._renderedChildren)].filter(t)1282 : []1283 }1284 function s(e) {1285 var t1286 const n =1287 e.memoizedProps ||1288 (null === (t = e._currentElement) || void 0 === t1289 ? void 01290 : t.props)1291 if (!n || 'string' == typeof n) return n1292 const r = { ...n }1293 return delete r.children, r1294 }1295 function c(e) {1296 var t1297 const n = {1298 name: o(e),1299 children: i(e).map(c),1300 rootElements: [],1301 props: s(e)1302 },1303 r =1304 e.stateNode ||1305 e._hostNode ||1306 (null === (t = e._renderedComponent) || void 0 === t1307 ? void 01308 : t._hostNode)1309 if (r instanceof Element) n.rootElements.push(r)1310 else1311 for (const e of n.children) n.rootElements.push(...e.rootElements)1312 return n1313 }1314 function a(e, t, n = []) {1315 t(e) && n.push(e)1316 for (const r of e.children) a(r, t, n)1317 return n1318 }1319 const u = {1320 queryAll(e, t) {1321 const { name: n, attributes: o } = (0, r.parseComponentSelector)(t),1322 i = (function () {1323 const e = [],1324 t = document.createTreeWalker(1325 document,1326 NodeFilter.SHOW_ELEMENT1327 )1328 for (; t.nextNode(); ) {1329 const n = t.currentNode1330 n.hasOwnProperty('_reactRootContainer') &&1331 e.push(n._reactRootContainer._internalRoot.current)1332 }1333 for (const t of document.querySelectorAll('[data-reactroot]'))1334 for (const n of Object.keys(t))1335 (n.startsWith('__reactInternalInstance') ||1336 n.startsWith('__reactFiber')) &&1337 e.push(t[n])1338 return e1339 })()1340 .map((e) => c(e))1341 .map((t) =>1342 a(t, (t) => {1343 if (n && t.name !== n) return !11344 if (t.rootElements.some((t) => !e.contains(t))) return !11345 for (const e of o)1346 if (!(0, r.checkComponentAttribute)(t.props, e)) return !11347 return !01348 })1349 )1350 .flat(),1351 s = new Set()1352 for (const e of i) for (const t of e.rootElements) s.add(t)1353 return [...s]1354 }1355 }1356 t.ReactEngine = u1357 },1358 848: (e, t, n) => {1359 Object.defineProperty(t, '__esModule', { value: !0 }),1360 (t.createLaxTextMatcher = d),1361 (t.createStrictTextMatcher = m),1362 (t.createRegexTextMatcher = g),1363 (t.elementText = v),1364 (t.elementMatchesText = w),1365 (t.parentElementOrShadowHost = x),1366 (t.isVisible = O),1367 (t.SelectorEvaluatorImpl = void 0)1368 var r = n(461)1369 t.SelectorEvaluatorImpl = class {1370 constructor(e) {1371 ;(this._engines = new Map()),1372 (this._cacheQueryCSS = new Map()),1373 (this._cacheMatches = new Map()),1374 (this._cacheQuery = new Map()),1375 (this._cacheMatchesSimple = new Map()),1376 (this._cacheMatchesParents = new Map()),1377 (this._cacheCallMatches = new Map()),1378 (this._cacheCallQuery = new Map()),1379 (this._cacheQuerySimple = new Map()),1380 (this._cacheText = new Map()),1381 (this._scoreMap = void 0),1382 (this._retainCacheCounter = 0)1383 for (const [t, n] of e) this._engines.set(t, n)1384 this._engines.set('not', c),1385 this._engines.set('is', o),1386 this._engines.set('where', o),1387 this._engines.set('has', i),1388 this._engines.set('scope', s),1389 this._engines.set('light', a),1390 this._engines.set('visible', u),1391 this._engines.set('text', l),1392 this._engines.set('text-is', h),1393 this._engines.set('text-matches', p),1394 this._engines.set('has-text', f),1395 this._engines.set('right-of', k('right-of', b)),1396 this._engines.set('left-of', k('left-of', E)),1397 this._engines.set('above', k('above', _)),1398 this._engines.set('below', k('below', S)),1399 this._engines.set('near', k('near', T)),1400 this._engines.set('nth-match', N)1401 const t = [...this._engines.keys()]1402 t.sort()1403 const n = [...r.customCSSNames]1404 if ((n.sort(), t.join('|') !== n.join('|')))1405 throw new Error(1406 `Please keep customCSSNames in sync with evaluator engines: ${t.join(1407 '|'1408 )} vs ${n.join('|')}`1409 )1410 }1411 begin() {1412 ++this._retainCacheCounter1413 }1414 end() {1415 --this._retainCacheCounter,1416 this._retainCacheCounter ||1417 (this._cacheQueryCSS.clear(),1418 this._cacheMatches.clear(),1419 this._cacheQuery.clear(),1420 this._cacheMatchesSimple.clear(),1421 this._cacheMatchesParents.clear(),1422 this._cacheCallMatches.clear(),1423 this._cacheCallQuery.clear(),1424 this._cacheQuerySimple.clear(),1425 this._cacheText.clear())1426 }1427 _cached(e, t, n, r) {1428 e.has(t) || e.set(t, [])1429 const o = e.get(t),1430 i = o.find((e) => n.every((t, n) => e.rest[n] === t))1431 if (i) return i.result1432 const s = r()1433 return o.push({ rest: n, result: s }), s1434 }1435 _checkSelector(e) {1436 if (1437 'object' != typeof e ||1438 !e ||1439 !(Array.isArray(e) || ('simples' in e && e.simples.length))1440 )1441 throw new Error(`Malformed selector "${e}"`)1442 return e1443 }1444 matches(e, t, n) {1445 const r = this._checkSelector(t)1446 this.begin()1447 try {1448 return this._cached(1449 this._cacheMatches,1450 e,1451 [r, n.scope, n.pierceShadow],1452 () =>1453 Array.isArray(r)1454 ? this._matchesEngine(o, e, r, n)1455 : !!this._matchesSimple(1456 e,1457 r.simples[r.simples.length - 1].selector,1458 n1459 ) && this._matchesParents(e, r, r.simples.length - 2, n)1460 )1461 } finally {1462 this.end()1463 }1464 }1465 query(e, t) {1466 const n = this._checkSelector(t)1467 this.begin()1468 try {1469 return this._cached(1470 this._cacheQuery,1471 n,1472 [e.scope, e.pierceShadow],1473 () => {1474 if (Array.isArray(n)) return this._queryEngine(o, e, n)1475 const t = this._scoreMap1476 this._scoreMap = new Map()1477 let r = this._querySimple(1478 e,1479 n.simples[n.simples.length - 1].selector1480 )1481 return (1482 (r = r.filter((t) =>1483 this._matchesParents(t, n, n.simples.length - 2, e)1484 )),1485 this._scoreMap.size &&1486 r.sort((e, t) => {1487 const n = this._scoreMap.get(e),1488 r = this._scoreMap.get(t)1489 return n === r1490 ? 01491 : void 0 === n1492 ? 11493 : void 0 === r1494 ? -11495 : n - r1496 }),1497 (this._scoreMap = t),1498 r1499 )1500 }1501 )1502 } finally {1503 this.end()1504 }1505 }1506 _markScore(e, t) {1507 this._scoreMap && this._scoreMap.set(e, t)1508 }1509 _matchesSimple(e, t, n) {1510 return this._cached(1511 this._cacheMatchesSimple,1512 e,1513 [t, n.scope, n.pierceShadow],1514 () => {1515 if (1516 !t.functions.some(1517 (e) => 'scope' === e.name || 'is' === e.name1518 ) &&1519 e === n.scope1520 )1521 return !11522 if (t.css && !this._matchesCSS(e, t.css)) return !11523 for (const r of t.functions)1524 if (1525 !this._matchesEngine(this._getEngine(r.name), e, r.args, n)1526 )1527 return !11528 return !01529 }1530 )1531 }1532 _querySimple(e, t) {1533 return t.functions.length1534 ? this._cached(1535 this._cacheQuerySimple,1536 t,1537 [e.scope, e.pierceShadow],1538 () => {1539 let n = t.css1540 const r = t.functions1541 let o1542 '*' === n && r.length && (n = void 0)1543 let i = -11544 void 0 !== n1545 ? (o = this._queryCSS(e, n))1546 : ((i = r.findIndex(1547 (e) => void 0 !== this._getEngine(e.name).query1548 )),1549 -1 === i && (i = 0),1550 (o = this._queryEngine(1551 this._getEngine(r[i].name),1552 e,1553 r[i].args1554 )))1555 for (let t = 0; t < r.length; t++) {1556 if (t === i) continue1557 const n = this._getEngine(r[t].name)1558 void 0 !== n.matches &&1559 (o = o.filter((o) =>1560 this._matchesEngine(n, o, r[t].args, e)1561 ))1562 }1563 for (let t = 0; t < r.length; t++) {1564 if (t === i) continue1565 const n = this._getEngine(r[t].name)1566 void 0 === n.matches &&1567 (o = o.filter((o) =>1568 this._matchesEngine(n, o, r[t].args, e)1569 ))1570 }1571 return o1572 }1573 )1574 : this._queryCSS(e, t.css || '*')1575 }1576 _matchesParents(e, t, n, r) {1577 return (1578 n < 0 ||1579 this._cached(1580 this._cacheMatchesParents,1581 e,1582 [t, n, r.scope, r.pierceShadow],1583 () => {1584 const { selector: o, combinator: i } = t.simples[n]1585 if ('>' === i) {1586 const i = C(e, r)1587 return (1588 !(!i || !this._matchesSimple(i, o, r)) &&1589 this._matchesParents(i, t, n - 1, r)1590 )1591 }1592 if ('+' === i) {1593 const i = A(e, r)1594 return (1595 !(!i || !this._matchesSimple(i, o, r)) &&1596 this._matchesParents(i, t, n - 1, r)1597 )1598 }1599 if ('' === i) {1600 let i = C(e, r)1601 for (; i; ) {1602 if (this._matchesSimple(i, o, r)) {1603 if (this._matchesParents(i, t, n - 1, r)) return !01604 if ('' === t.simples[n - 1].combinator) break1605 }1606 i = C(i, r)1607 }1608 return !11609 }1610 if ('~' === i) {1611 let i = A(e, r)1612 for (; i; ) {1613 if (this._matchesSimple(i, o, r)) {1614 if (this._matchesParents(i, t, n - 1, r)) return !01615 if ('~' === t.simples[n - 1].combinator) break1616 }1617 i = A(i, r)1618 }1619 return !11620 }1621 if ('>=' === i) {1622 let i = e1623 for (; i; ) {1624 if (this._matchesSimple(i, o, r)) {1625 if (this._matchesParents(i, t, n - 1, r)) return !01626 if ('' === t.simples[n - 1].combinator) break1627 }1628 i = C(i, r)1629 }1630 return !11631 }1632 throw new Error(`Unsupported combinator "${i}"`)1633 }1634 )1635 )1636 }1637 _matchesEngine(e, t, n, r) {1638 if (e.matches) return this._callMatches(e, t, n, r)1639 if (e.query) return this._callQuery(e, n, r).includes(t)1640 throw new Error(1641 'Selector engine should implement "matches" or "query"'1642 )1643 }1644 _queryEngine(e, t, n) {1645 if (e.query) return this._callQuery(e, n, t)1646 if (e.matches)1647 return this._queryCSS(t, '*').filter((r) =>1648 this._callMatches(e, r, n, t)1649 )1650 throw new Error(1651 'Selector engine should implement "matches" or "query"'1652 )1653 }1654 _callMatches(e, t, n, r) {1655 return this._cached(1656 this._cacheCallMatches,1657 t,1658 [e, r.scope, r.pierceShadow, ...n],1659 () => e.matches(t, n, r, this)1660 )1661 }1662 _callQuery(e, t, n) {1663 return this._cached(1664 this._cacheCallQuery,1665 e,1666 [n.scope, n.pierceShadow, ...t],1667 () => e.query(n, t, this)1668 )1669 }1670 _matchesCSS(e, t) {1671 return e.matches(t)1672 }1673 _queryCSS(e, t) {1674 return this._cached(1675 this._cacheQueryCSS,1676 t,1677 [e.scope, e.pierceShadow],1678 () => {1679 let n = []1680 return (1681 (function r(o) {1682 if (1683 ((n = n.concat([...o.querySelectorAll(t)])),1684 e.pierceShadow)1685 ) {1686 o.shadowRoot && r(o.shadowRoot)1687 for (const e of o.querySelectorAll('*'))1688 e.shadowRoot && r(e.shadowRoot)1689 }1690 })(e.scope),1691 n1692 )1693 }1694 )1695 }1696 _getEngine(e) {1697 const t = this._engines.get(e)1698 if (!t) throw new Error(`Unknown selector engine "${e}"`)1699 return t1700 }1701 }1702 const o = {1703 matches(e, t, n, r) {1704 if (0 === t.length)1705 throw new Error('"is" engine expects non-empty selector list')1706 return t.some((t) => r.matches(e, t, n))1707 },1708 query(e, t, n) {1709 if (0 === t.length)1710 throw new Error('"is" engine expects non-empty selector list')1711 let r = []1712 for (const o of t) r = r.concat(n.query(e, o))1713 return 1 === t.length1714 ? r1715 : (function (e) {1716 const t = new Map(),1717 n = [],1718 r = []1719 function o(e) {1720 let r = t.get(e)1721 if (r) return r1722 const i = x(e)1723 return (1724 i ? o(i).children.push(e) : n.push(e),1725 (r = { children: [], taken: !1 }),1726 t.set(e, r),1727 r1728 )1729 }1730 return (1731 e.forEach((e) => (o(e).taken = !0)),1732 n.forEach(function e(n) {1733 const o = t.get(n)1734 if ((o.taken && r.push(n), o.children.length > 1)) {1735 const e = new Set(o.children)1736 o.children = []1737 let t = n.firstElementChild1738 for (; t && o.children.length < e.size; )1739 e.has(t) && o.children.push(t),1740 (t = t.nextElementSibling)1741 for (1742 t = n.shadowRoot1743 ? n.shadowRoot.firstElementChild1744 : null;1745 t && o.children.length < e.size;1746 )1747 e.has(t) && o.children.push(t),1748 (t = t.nextElementSibling)1749 }1750 o.children.forEach(e)1751 }),1752 r1753 )1754 })(r)1755 }1756 },1757 i = {1758 matches(e, t, n, r) {1759 if (0 === t.length)1760 throw new Error('"has" engine expects non-empty selector list')1761 return r.query({ ...n, scope: e }, t).length > 01762 }1763 },1764 s = {1765 matches(e, t, n, r) {1766 if (0 !== t.length)1767 throw new Error('"scope" engine expects no arguments')1768 return 9 === n.scope.nodeType1769 ? e === n.scope.documentElement1770 : e === n.scope1771 },1772 query(e, t, n) {1773 if (0 !== t.length)1774 throw new Error('"scope" engine expects no arguments')1775 if (9 === e.scope.nodeType) {1776 const t = e.scope.documentElement1777 return t ? [t] : []1778 }1779 return 1 === e.scope.nodeType ? [e.scope] : []1780 }1781 },1782 c = {1783 matches(e, t, n, r) {1784 if (0 === t.length)1785 throw new Error('"not" engine expects non-empty selector list')1786 return !r.matches(e, t, n)1787 }1788 },1789 a = {1790 query: (e, t, n) => n.query({ ...e, pierceShadow: !1 }, t),1791 matches: (e, t, n, r) => r.matches(e, t, { ...n, pierceShadow: !1 })1792 },1793 u = {1794 matches(e, t, n, r) {1795 if (t.length)1796 throw new Error('"visible" engine expects no arguments')1797 return O(e)1798 }1799 },1800 l = {1801 matches(e, t, n, r) {1802 if (1 !== t.length || 'string' != typeof t[0])1803 throw new Error('"text" engine expects a single string')1804 return 'self' === w(r, e, d(t[0]))1805 }1806 },1807 h = {1808 matches(e, t, n, r) {1809 if (1 !== t.length || 'string' != typeof t[0])1810 throw new Error('"text-is" engine expects a single string')1811 return 'none' !== w(r, e, m(t[0]))1812 }1813 },1814 p = {1815 matches(e, t, n, r) {1816 if (1817 0 === t.length ||1818 'string' != typeof t[0] ||1819 t.length > 2 ||1820 (2 === t.length && 'string' != typeof t[1])1821 )1822 throw new Error(1823 '"text-matches" engine expects a regexp body and optional regexp flags'1824 )1825 return 'self' === w(r, e, g(t[0], 2 === t.length ? t[1] : void 0))1826 }1827 },1828 f = {1829 matches(e, t, n, r) {1830 if (1 !== t.length || 'string' != typeof t[0])1831 throw new Error('"has-text" engine expects a single string')1832 return !y(e) && d(t[0])(v(r, e))1833 }1834 }1835 function d(e) {1836 return (1837 (e = e.trim().replace(/\s+/g, ' ').toLowerCase()),1838 (t) => t.full.trim().replace(/\s+/g, ' ').toLowerCase().includes(e)1839 )1840 }1841 function m(e) {1842 return (1843 (e = e.trim().replace(/\s+/g, ' ')),1844 (t) =>1845 (!e && !t.immediate.length) ||1846 t.immediate.some((t) => t.trim().replace(/\s+/g, ' ') === e)1847 )1848 }1849 function g(e, t) {1850 const n = new RegExp(e, t)1851 return (e) => n.test(e.full)1852 }1853 function y(e) {1854 return (1855 'SCRIPT' === e.nodeName ||1856 'STYLE' === e.nodeName ||1857 (document.head && document.head.contains(e))1858 )1859 }1860 function v(e, t) {1861 let n = e._cacheText.get(t)1862 if (void 0 === n) {1863 if (((n = { full: '', immediate: [] }), !y(t))) {1864 let r = ''1865 if (1866 t instanceof HTMLInputElement &&1867 ('submit' === t.type || 'button' === t.type)1868 )1869 n = { full: t.value, immediate: [t.value] }1870 else {1871 for (let o = t.firstChild; o; o = o.nextSibling)1872 o.nodeType === Node.TEXT_NODE1873 ? ((n.full += o.nodeValue || ''), (r += o.nodeValue || ''))1874 : (r && n.immediate.push(r),1875 (r = ''),1876 o.nodeType === Node.ELEMENT_NODE &&1877 (n.full += v(e, o).full))1878 r && n.immediate.push(r),1879 t.shadowRoot && (n.full += v(e, t.shadowRoot).full)1880 }1881 }1882 e._cacheText.set(t, n)1883 }1884 return n1885 }1886 function w(e, t, n) {1887 if (y(t)) return 'none'1888 if (!n(v(e, t))) return 'none'1889 for (let r = t.firstChild; r; r = r.nextSibling)1890 if (r.nodeType === Node.ELEMENT_NODE && n(v(e, r)))1891 return 'selfAndChildren'1892 return t.shadowRoot && n(v(e, t.shadowRoot))1893 ? 'selfAndChildren'1894 : 'self'1895 }1896 function b(e, t, n) {1897 const r = e.left - t.right1898 if (!(r < 0 || (void 0 !== n && r > n)))1899 return (1900 r + Math.max(t.bottom - e.bottom, 0) + Math.max(e.top - t.top, 0)1901 )1902 }1903 function E(e, t, n) {1904 const r = t.left - e.right1905 if (!(r < 0 || (void 0 !== n && r > n)))1906 return (1907 r + Math.max(t.bottom - e.bottom, 0) + Math.max(e.top - t.top, 0)1908 )1909 }1910 function _(e, t, n) {1911 const r = t.top - e.bottom1912 if (!(r < 0 || (void 0 !== n && r > n)))1913 return (1914 r + Math.max(e.left - t.left, 0) + Math.max(t.right - e.right, 0)1915 )1916 }1917 function S(e, t, n) {1918 const r = e.top - t.bottom1919 if (!(r < 0 || (void 0 !== n && r > n)))1920 return (1921 r + Math.max(e.left - t.left, 0) + Math.max(t.right - e.right, 0)1922 )1923 }1924 function T(e, t, n) {1925 const r = void 0 === n ? 50 : n1926 let o = 01927 return (1928 e.left - t.right >= 0 && (o += e.left - t.right),1929 t.left - e.right >= 0 && (o += t.left - e.right),1930 t.top - e.bottom >= 0 && (o += t.top - e.bottom),1931 e.top - t.bottom >= 0 && (o += e.top - t.bottom),1932 o > r ? void 0 : o1933 )1934 }1935 function k(e, t) {1936 return {1937 matches(n, r, o, i) {1938 const s =1939 r.length && 'number' == typeof r[r.length - 1]1940 ? r[r.length - 1]1941 : void 0,1942 c = void 0 === s ? r : r.slice(0, r.length - 1)1943 if (r.length < 1 + (void 0 === s ? 0 : 1))1944 throw new Error(1945 `"${e}" engine expects a selector list and optional maximum distance in pixels`1946 )1947 const a = n.getBoundingClientRect()1948 let u1949 for (const e of i.query(o, c)) {1950 if (e === n) continue1951 const r = t(a, e.getBoundingClientRect(), s)1952 void 0 !== r && (void 0 === u || r < u) && (u = r)1953 }1954 return void 0 !== u && (i._markScore(n, u), !0)1955 }1956 }1957 }1958 const N = {1959 query(e, t, n) {1960 let r = t[t.length - 1]1961 if (t.length < 2)1962 throw new Error(1963 '"nth-match" engine expects non-empty selector list and an index argument'1964 )1965 if ('number' != typeof r || r < 1)1966 throw new Error(1967 '"nth-match" engine expects a one-based index as the last argument'1968 )1969 const i = o.query(e, t.slice(0, t.length - 1), n)1970 return r--, r < i.length ? [i[r]] : []1971 }1972 }1973 function x(e) {1974 return e.parentElement1975 ? e.parentElement1976 : e.parentNode &&1977 e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&1978 e.parentNode.host1979 ? e.parentNode.host1980 : void 01981 }1982 function C(e, t) {1983 if (e !== t.scope)1984 return t.pierceShadow ? x(e) : e.parentElement || void 01985 }1986 function A(e, t) {1987 if (e !== t.scope) return e.previousElementSibling || void 01988 }1989 function O(e) {1990 if (!e.ownerDocument || !e.ownerDocument.defaultView) return !01991 const t = e.ownerDocument.defaultView.getComputedStyle(e)1992 if (!t || 'hidden' === t.visibility) return !11993 const n = e.getBoundingClientRect()1994 return n.width > 0 && n.height > 01995 }1996 },1997 854: (e, t, n) => {1998 Object.defineProperty(t, '__esModule', { value: !0 }),1999 (t.querySelector = function (e, t, n) {2000 try {2001 const r = e.parseSelector(t)2002 return { selector: t, elements: e.querySelectorAll(r, n) }2003 } catch (e) {2004 return { selector: t, elements: [] }2005 }2006 }),2007 (t.generateSelector = function (e, t) {2008 e._evaluator.begin()2009 try {2010 const n = (function (e, t) {2011 if (t.ownerDocument.documentElement === t)2012 return [{ engine: 'css', selector: 'html', score: 1 }]2013 const n = (u, h) => {2014 const d = h ? o : i2015 let m = d.get(u)2016 return (2017 void 0 === m &&2018 ((m = ((o, i) => {2019 const u = o === t2020 let h = i2021 ? (function (e, t, n) {2022 if ('SELECT' === t.nodeName) return []2023 const o = (0, r.elementText)(e._evaluator, t)2024 .full.trim()2025 .replace(/\s+/g, ' ')2026 .substring(0, 80)2027 if (!o) return []2028 const i = []2029 let s = o2030 if (2031 ((o.includes('"') ||2032 o.includes('>>') ||2033 '/' === o[0]) &&2034 (s = `/.*${(function (e) {2035 return e.replace(2036 /[.*+?^>${}()|[\]\\]/g,2037 '\\$&'2038 )2039 })(o)}.*/`),2040 i.push({2041 engine: 'text',2042 selector: s,2043 score: 102044 }),2045 n && s === o)2046 ) {2047 let e = t.nodeName.toLocaleLowerCase()2048 t.hasAttribute('role') &&2049 (e += `[role=${l(2050 t.getAttribute('role')2051 )}]`),2052 i.push({2053 engine: 'css',2054 selector: `${e}:has-text("${o}")`,2055 score: 302056 })2057 }2058 return i2059 })(e, o, o === t).map((e) => [e])2060 : []2061 o !== t && (h = s(h))2062 const d = (function (e, t) {2063 const n = []2064 for (const e of [2065 'data-testid',2066 'data-test-id',2067 'data-test'2068 ])2069 t.hasAttribute(e) &&2070 n.push({2071 engine: 'css',2072 selector: `[${e}=${l(t.getAttribute(e))}]`,2073 score: 12074 })2075 if ('INPUT' === t.nodeName) {2076 const e = t2077 e.placeholder &&2078 n.push({2079 engine: 'css',2080 selector: `[placeholder=${l(e.placeholder)}]`,2081 score: 102082 })2083 }2084 t.hasAttribute('aria-label') &&2085 n.push({2086 engine: 'css',2087 selector: `[aria-label=${l(2088 t.getAttribute('aria-label')2089 )}]`,2090 score: 102091 }),2092 t.getAttribute('alt') &&2093 ['APPLET', 'AREA', 'IMG', 'INPUT'].includes(2094 t.nodeName2095 ) &&2096 n.push({2097 engine: 'css',2098 selector: `${t.nodeName.toLowerCase()}[alt=${l(2099 t.getAttribute('alt')2100 )}]`,2101 score: 102102 }),2103 t.hasAttribute('role') &&2104 n.push({2105 engine: 'css',2106 selector: `${t.nodeName.toLocaleLowerCase()}[role=${l(2107 t.getAttribute('role')2108 )}]`,2109 score: 502110 }),2111 t.getAttribute('name') &&2112 [2113 'BUTTON',2114 'FORM',2115 'FIELDSET',2116 'IFRAME',2117 'INPUT',2118 'KEYGEN',2119 'OBJECT',2120 'OUTPUT',2121 'SELECT',2122 'TEXTAREA',2123 'MAP',2124 'META',2125 'PARAM'2126 ].includes(t.nodeName) &&2127 n.push({2128 engine: 'css',2129 selector: `${t.nodeName.toLowerCase()}[name=${l(2130 t.getAttribute('name')2131 )}]`,2132 score: 502133 }),2134 ['INPUT', 'TEXTAREA'].includes(t.nodeName) &&2135 'hidden' !== t.getAttribute('type') &&2136 t.getAttribute('type') &&2137 n.push({2138 engine: 'css',2139 selector: `${t.nodeName.toLowerCase()}[type=${l(2140 t.getAttribute('type')2141 )}]`,2142 score: 502143 }),2144 ['INPUT', 'TEXTAREA', 'SELECT'].includes(2145 t.nodeName2146 ) &&2147 n.push({2148 engine: 'css',2149 selector: t.nodeName.toLowerCase(),2150 score: 502151 })2152 const r = t.getAttribute('id')2153 return (2154 r &&2155 !(function (e) {2156 let t,2157 n = 02158 for (let r = 0; r < e.length; ++r) {2159 const o = e[r]2160 let i2161 '-' !== o &&2162 '_' !== o &&2163 ((i =2164 o >= 'a' && o <= 'z'2165 ? 'lower'2166 : o >= 'A' && o <= 'Z'2167 ? 'upper'2168 : o >= '0' && o <= '9'2169 ? 'digit'2170 : 'other'),2171 'lower' !== i || 'upper' !== t2172 ? (t && t !== i && ++n, (t = i))2173 : (t = i))2174 }2175 return n >= e.length / 42176 })(r) &&2177 n.push({2178 engine: 'css',2179 selector: a(r),2180 score: 1002181 }),2182 n.push({2183 engine: 'css',2184 selector: t.nodeName.toLocaleLowerCase(),2185 score: 2002186 }),2187 n2188 )2189 })(0, o).map((e) => [e])2190 let m = f(e, t.ownerDocument, o, [...h, ...d], u)2191 h = s(h)2192 const g = (t) => {2193 const r = i && !t.length,2194 s = [...t, ...d].filter((e) => !m || p(e) < p(m))2195 let a = s[0]2196 if (a)2197 for (let t = c(o); t; t = c(t)) {2198 const i = n(t, r)2199 if (!i) continue2200 if (m && p([...i, ...a]) >= p(m)) continue2201 if (((a = f(e, t, o, s, u)), !a)) return2202 const c = [...i, ...a]2203 ;(!m || p(c) < p(m)) && (m = c)2204 }2205 }2206 return g(h), o === t && h.length && g([]), m2207 })(u, h)),2208 d.set(u, m)),2209 m2210 )2211 }2212 return n(t, !0)2213 })(2214 e,2215 (t =2216 t.closest(2217 'button,select,input,[role=button],[role=checkbox],[role=radio]'2218 ) || t)2219 ),2220 d = h(n || [u(e, t)]),2221 m = e.parseSelector(d)2222 return {2223 selector: d,2224 elements: e.querySelectorAll(m, t.ownerDocument)2225 }2226 } finally {2227 o.clear(), i.clear(), e._evaluator.end()2228 }2229 })2230 var r = n(848)2231 const o = new Map(),2232 i = new Map()2233 function s(e) {2234 return e.filter((e) => '/' !== e[0].selector[0])2235 }2236 function c(e) {2237 return e.parentElement2238 ? e.parentElement2239 : e.parentNode &&2240 e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&2241 e.parentNode.host2242 ? e.parentNode.host2243 : null2244 }2245 function a(e) {2246 return /^[a-zA-Z][a-zA-Z0-9\-\_]+$/.test(e) ? '#' + e : `[id="${e}"]`2247 }2248 function u(e, t) {2249 const n = 1e7,2250 r = t.ownerDocument,2251 o = []2252 function i(n) {2253 const r = o.slice()2254 n && r.unshift(n)2255 const i = r.join(' '),2256 s = e.parseSelector(i)2257 return e.querySelector(s, t.ownerDocument, !1) === t ? i : void 02258 }2259 for (let e = t; e && e !== r; e = c(e)) {2260 const t = e.nodeName.toLowerCase()2261 let r = ''2262 if (e.id) {2263 const t = a(e.id),2264 o = i(t)2265 if (o) return { engine: 'css', selector: o, score: n }2266 r = t2267 }2268 const s = e.parentNode,2269 c = [...e.classList]2270 for (let e = 0; e < c.length; ++e) {2271 const t = '.' + c.slice(0, e + 1).join('.'),2272 o = i(t)2273 if (o) return { engine: 'css', selector: o, score: n }2274 !r && s && 1 === s.querySelectorAll(t).length && (r = t)2275 }2276 if (s) {2277 const o = [...s.children],2278 c =2279 0 ===2280 o.filter((e) => e.nodeName.toLowerCase() === t).indexOf(e)2281 ? t2282 : `${t}:nth-child(${1 + o.indexOf(e)})`,2283 a = i(c)2284 if (a) return { engine: 'css', selector: a, score: n }2285 r || (r = c)2286 } else r || (r = t)2287 o.unshift(r)2288 }2289 return { engine: 'css', selector: i(), score: n }2290 }2291 function l(e) {2292 return `"${e.replace(/"/g, '\\"').replace(/\n/g, '\\n')}"`2293 }2294 function h(e) {2295 const t = []2296 let n = ''2297 for (const { engine: r, selector: o } of e)2298 t.length &&2299 ('css' !== n || 'css' !== r || o.startsWith(':nth-match(')) &&2300 t.push('>>'),2301 (n = r),2302 'css' === r ? t.push(o) : t.push(`${r}=${o}`)2303 return t.join(' ')2304 }2305 function p(e) {2306 let t = 02307 for (let n = 0; n < e.length; n++) t += e[n].score * (e.length - n)2308 return t2309 }2310 function f(e, t, n, r, o) {2311 const i = r.map((e) => ({ tokens: e, score: p(e) }))2312 i.sort((e, t) => e.score - t.score)2313 let s = null2314 for (const { tokens: r } of i) {2315 const i = e.parseSelector(h(r)),2316 c = e.querySelectorAll(i, t),2317 a = c.indexOf(n)2318 if (0 === a) return r2319 if (!o || s || -1 === a || c.length > 5) continue2320 const u = r.map((e) =>2321 'text' !== e.engine2322 ? e2323 : e.selector.startsWith('/') && e.selector.endsWith('/')2324 ? {2325 engine: 'css',2326 selector: `:text-matches("${e.selector.substring(2327 1,2328 e.selector.length - 12329 )}")`,2330 score: e.score2331 }2332 : {2333 engine: 'css',2334 selector: `:text("${e.selector}")`,2335 score: e.score2336 }2337 )2338 s = [2339 {2340 engine: 'css',2341 selector: `:nth-match(${h(u)}, ${a + 1})`,2342 score: p(u) + 1e32343 }2344 ]2345 }2346 return s2347 }2348 },2349 12: (e, t, n) => {2350 Object.defineProperty(t, '__esModule', { value: !0 }),2351 (t.VueEngine = void 0)2352 var r = n(204)2353 function o(e, t) {2354 const n = e.replace(/^[a-zA-Z]:/, '').replace(/\\/g, '/')2355 let r = n.substring(n.lastIndexOf('/') + 1)2356 return (2357 t && r.endsWith(t) && (r = r.substring(0, r.length - t.length)), r2358 )2359 }2360 function i(e, t) {2361 return t ? t.toUpperCase() : ''2362 }2363 const s = /(?:^|[-_/])(\w)/g,2364 c = (e) => e && e.replace(s, i)2365 function a(e, t, n = []) {2366 t(e) && n.push(e)2367 for (const r of e.children) a(r, t, n)2368 return n2369 }2370 const u = {2371 queryAll(e, t) {2372 const { name: n, attributes: i } = (0, r.parseComponentSelector)(t),2373 s = (function () {2374 const e = []2375 for (const t of document.querySelectorAll('[data-v-app]'))2376 t._vnode &&2377 t._vnode.component &&2378 e.push({ root: t._vnode.component, version: 3 })2379 const t = document.createTreeWalker(2380 document,2381 NodeFilter.SHOW_ELEMENT2382 ),2383 n = new Set()2384 for (; t.nextNode(); ) {2385 const e = t.currentNode2386 e && e.__vue__ && n.add(e.__vue__.$root)2387 }2388 for (const t of n) e.push({ version: 2, root: t })2389 return e2390 })()2391 .map((e) =>2392 3 === e.version2393 ? (function (e) {2394 function t(e, t) {2395 return (e.type.__playwright_guessedName = t), t2396 }2397 function n(e) {2398 const n = (function (e) {2399 const t =2400 e.name ||2401 e._componentTag ||2402 e.__playwright_guessedName2403 if (t) return t2404 const n = e.__file2405 return n ? c(o(n, '.vue')) : void 02406 })(e.type || {})2407 if (n) return n2408 if (e.root === e) return 'Root'2409 for (const n in null === (r = e.parent) ||2410 void 0 === r ||2411 null === (i = r.type) ||2412 void 0 === i2413 ? void 02414 : i.components) {2415 var r, i, s2416 if (2417 (null === (s = e.parent) || void 0 === s2418 ? void 02419 : s.type.components[n]) === e.type2420 )2421 return t(e, n)2422 }2423 for (const n in null === (a = e.appContext) ||2424 void 0 === a2425 ? void 02426 : a.components) {2427 var a2428 if (e.appContext.components[n] === e.type)2429 return t(e, n)2430 }2431 return 'Anonymous Component'2432 }2433 function r(e) {2434 const t = []2435 return (2436 e.component && t.push(e.component),2437 e.suspense && t.push(...r(e.suspense.activeBranch)),2438 Array.isArray(e.children) &&2439 e.children.forEach((e) => {2440 e.component2441 ? t.push(e.component)2442 : t.push(...r(e))2443 }),2444 t.filter((e) => {2445 var t2446 return !(2447 (function (e) {2448 return e._isBeingDestroyed || e.isUnmounted2449 })(e) ||2450 (null !== (t = e.type.devtools) &&2451 void 0 !== t &&2452 t.hide)2453 )2454 })2455 )2456 }2457 function i(e) {2458 return (function (e) {2459 return (2460 'Symbol(Fragment)' === e.subTree.type.toString()2461 )2462 })(e)2463 ? (function (e) {2464 if (!e.children) return []2465 const t = []2466 for (2467 let n = 0, r = e.children.length;2468 n < r;2469 n++2470 ) {2471 const r = e.children[n]2472 r.component2473 ? t.push(...i(r.component))2474 : r.el && t.push(r.el)2475 }2476 return t2477 })(e.subTree)2478 : [e.subTree.el]2479 }2480 return (function e(t) {2481 return {2482 name: n(t),2483 children: r(t.subTree).map(e),2484 rootElements: i(t),2485 props: t.props2486 }2487 })(e)2488 })(e.root)2489 : (function (e) {2490 function t(e) {2491 return (2492 (function (e) {2493 const t =2494 e.displayName || e.name || e._componentTag2495 if (t) return t2496 const n = e.__file2497 return n ? c(o(n, '.vue')) : void 02498 })(e.$options || e.fnOptions || {}) ||2499 (e.$root === e ? 'Root' : 'Anonymous Component')2500 )2501 }2502 function n(e) {2503 return e.$children2504 ? e.$children2505 : Array.isArray(e.subTree.children)2506 ? e.subTree.children2507 .filter((e) => !!e.component)2508 .map((e) => e.component)2509 : []2510 }2511 return (function e(r) {2512 return {2513 name: t(r),2514 children: n(r).map(e),2515 rootElements: [r.$el],2516 props: r._props2517 }2518 })(e)2519 })(e.root)2520 )2521 .map((t) =>2522 a(t, (t) => {2523 if (n && t.name !== n) return !12524 if (t.rootElements.some((t) => !e.contains(t))) return !12525 for (const e of i)2526 if (!(0, r.checkComponentAttribute)(t.props, e)) return !12527 return !02528 })2529 )2530 .flat(),2531 u = new Set()2532 for (const e of s) for (const t of e.rootElements) u.add(t)2533 return [...u]2534 }2535 }2536 t.VueEngine = u2537 },2538 530: (e, t) => {2539 Object.defineProperty(t, '__esModule', { value: !0 }),2540 (t.XPathEngine = void 0)2541 const n = {2542 queryAll(e, t) {2543 t.startsWith('/') && (t = '.' + t)2544 const n = [],2545 r = e instanceof Document ? e : e.ownerDocument2546 if (!r) return n2547 const o = r.evaluate(2548 t,2549 e,2550 null,2551 XPathResult.ORDERED_NODE_ITERATOR_TYPE2552 )2553 for (let e = o.iterateNext(); e; e = o.iterateNext())2554 e.nodeType === Node.ELEMENT_NODE && n.push(e)2555 return n2556 }2557 }2558 t.XPathEngine = n2559 }2560 },2561 t = {}2562 function n(r) {2563 var o = t[r]2564 if (void 0 !== o) return o.exports2565 var i = (t[r] = { exports: {} })2566 return e[r](i, i.exports, n), i.exports2567 }2568 n.g = (function () {2569 if ('object' == typeof globalThis) return globalThis2570 try {2571 return this || new Function('return this')()2572 } catch (e) {2573 if ('object' == typeof window) return window2574 }2575 })()2576 var r = {}2577 ;(() => {2578 var e = r2579 e.default = void 02580 var t = n(530),2581 o = n(836),2582 i = n(12),2583 s = n(461),2584 c = n(848),2585 a = n(854)2586 const u = new Set([2587 'AREA',2588 'BASE',2589 'BR',2590 'COL',2591 'COMMAND',2592 'EMBED',2593 'HR',2594 'IMG',2595 'INPUT',2596 'KEYGEN',2597 'LINK',2598 'MENUITEM',2599 'META',2600 'PARAM',2601 'SOURCE',2602 'TRACK',2603 'WBR'2604 ]),2605 l = new Set(['checked', 'selected', 'disabled', 'readonly', 'multiple'])2606 function h(e) {2607 return e.replace(/\n/g, 'âµ').replace(/\t/g, 'â')2608 }2609 const p = new Map([2610 ['auxclick', 'mouse'],2611 ['click', 'mouse'],2612 ['dblclick', 'mouse'],2613 ['mousedown', 'mouse'],2614 ['mouseeenter', 'mouse'],2615 ['mouseleave', 'mouse'],2616 ['mousemove', 'mouse'],2617 ['mouseout', 'mouse'],2618 ['mouseover', 'mouse'],2619 ['mouseup', 'mouse'],2620 ['mouseleave', 'mouse'],2621 ['mousewheel', 'mouse'],2622 ['keydown', 'keyboard'],2623 ['keyup', 'keyboard'],2624 ['keypress', 'keyboard'],2625 ['textInput', 'keyboard'],2626 ['touchstart', 'touch'],2627 ['touchmove', 'touch'],2628 ['touchend', 'touch'],2629 ['touchcancel', 'touch'],2630 ['pointerover', 'pointer'],2631 ['pointerout', 'pointer'],2632 ['pointerenter', 'pointer'],2633 ['pointerleave', 'pointer'],2634 ['pointerdown', 'pointer'],2635 ['pointerup', 'pointer'],2636 ['pointermove', 'pointer'],2637 ['pointercancel', 'pointer'],2638 ['gotpointercapture', 'pointer'],2639 ['lostpointercapture', 'pointer'],2640 ['focus', 'focus'],2641 ['blur', 'focus'],2642 ['drag', 'drag'],2643 ['dragstart', 'drag'],2644 ['dragend', 'drag'],2645 ['dragover', 'drag'],2646 ['dragenter', 'drag'],2647 ['dragleave', 'drag'],2648 ['dragexit', 'drag'],2649 ['drop', 'drag']2650 ])2651 function f(e) {2652 if (!e.includes('\\')) return e2653 const t = []2654 let n = 02655 for (; n < e.length; )2656 '\\' === e[n] && n + 1 < e.length && n++, t.push(e[n++])2657 return t.join('')2658 }2659 class d {2660 constructor(e) {2661 ;(this._string = void 0),2662 (this._substring = void 0),2663 (this._regex = void 0),2664 (this._normalizeWhiteSpace = void 0),2665 (this._normalizeWhiteSpace = e.normalizeWhiteSpace),2666 (this._string = e.matchSubstring2667 ? void 02668 : this.normalizeWhiteSpace(e.string)),2669 (this._substring = e.matchSubstring2670 ? this.normalizeWhiteSpace(e.string)2671 : void 0),2672 (this._regex = e.regexSource2673 ? new RegExp(e.regexSource, e.regexFlags)2674 : void 0)2675 }2676 matches(e) {2677 return (2678 this._normalizeWhiteSpace &&2679 !this._regex &&2680 (e = this.normalizeWhiteSpace(e)),2681 void 0 !== this._string2682 ? e === this._string2683 : void 0 !== this._substring2684 ? e.includes(this._substring)2685 : !!this._regex && !!this._regex.test(e)2686 )2687 }2688 normalizeWhiteSpace(e) {2689 return e && this._normalizeWhiteSpace2690 ? e.trim().replace(/\s+/g, ' ')2691 : e2692 }2693 }2694 function m(e, t) {2695 if (e === t) return !02696 if (e && t && 'object' == typeof e && 'object' == typeof t) {2697 if (e.constructor !== t.constructor) return !12698 if (Array.isArray(e)) {2699 if (e.length !== t.length) return !12700 for (let n = 0; n < e.length; ++n) if (!m(e[n], t[n])) return !12701 return !02702 }2703 if (e instanceof RegExp)2704 return e.source === t.source && e.flags === t.flags2705 if (e.valueOf !== Object.prototype.valueOf)2706 return e.valueOf() === t.valueOf()2707 if (e.toString !== Object.prototype.toString)2708 return e.toString() === t.toString()2709 const n = Object.keys(e)2710 if (n.length !== Object.keys(t).length) return !12711 for (let e = 0; e < n.length; ++e)2712 if (!t.hasOwnProperty(n[e])) return !12713 for (const r of n) if (!m(e[r], t[r])) return !12714 return !02715 }2716 return (2717 'number' == typeof e && 'number' == typeof t && isNaN(e) && isNaN(t)2718 )2719 }2720 var g = class {2721 constructor(e, n, r) {2722 ;(this._engines = void 0),2723 (this._evaluator = void 0),2724 (this._stableRafCount = void 0),2725 (this._browserName = void 0),2726 (this.onGlobalListenersRemoved = new Set()),2727 (this._evaluator = new c.SelectorEvaluatorImpl(new Map())),2728 (this._engines = new Map()),2729 this._engines.set('xpath', t.XPathEngine),2730 this._engines.set('xpath:light', t.XPathEngine),2731 this._engines.set('_react', o.ReactEngine),2732 this._engines.set('_vue', i.VueEngine),2733 this._engines.set('text', this._createTextEngine(!0)),2734 this._engines.set('text:light', this._createTextEngine(!1)),2735 this._engines.set('id', this._createAttributeEngine('id', !0)),2736 this._engines.set('id:light', this._createAttributeEngine('id', !1)),2737 this._engines.set(2738 'data-testid',2739 this._createAttributeEngine('data-testid', !0)2740 ),2741 this._engines.set(2742 'data-testid:light',2743 this._createAttributeEngine('data-testid', !1)2744 ),2745 this._engines.set(2746 'data-test-id',2747 this._createAttributeEngine('data-test-id', !0)2748 ),2749 this._engines.set(2750 'data-test-id:light',2751 this._createAttributeEngine('data-test-id', !1)2752 ),2753 this._engines.set(2754 'data-test',2755 this._createAttributeEngine('data-test', !0)2756 ),2757 this._engines.set(2758 'data-test:light',2759 this._createAttributeEngine('data-test', !1)2760 ),2761 this._engines.set('css', this._createCSSEngine()),2762 this._engines.set('nth', { queryAll: () => [] }),2763 this._engines.set('visible', { queryAll: () => [] })2764 for (const { name: e, engine: t } of r) this._engines.set(e, t)2765 ;(this._stableRafCount = e),2766 (this._browserName = n),2767 this._setupGlobalListenersRemovalDetection()2768 }2769 eval(e) {2770 return n.g.eval(e)2771 }2772 parseSelector(e) {2773 const t = (0, s.parseSelector)(e)2774 for (const n of t.parts)2775 if (!this._engines.has(n.name))2776 throw this.createStacklessError(2777 `Unknown engine "${n.name}" while parsing selector ${e}`2778 )2779 return t2780 }2781 querySelector(e, t, n) {2782 if (!t.querySelector)2783 throw this.createStacklessError('Node is not queryable.')2784 this._evaluator.begin()2785 try {2786 var r, o2787 const i = this._querySelectorRecursively(2788 [{ element: t, capture: void 0 }],2789 e,2790 0,2791 new Map()2792 )2793 if (n && i.length > 1)2794 throw this.strictModeViolationError(2795 e,2796 i.map((e) => e.element)2797 )2798 return (2799 (null === (r = i[0]) || void 0 === r ? void 0 : r.capture) ||2800 (null === (o = i[0]) || void 0 === o ? void 0 : o.element)2801 )2802 } finally {2803 this._evaluator.end()2804 }2805 }2806 _querySelectorRecursively(e, t, n, r) {2807 if (n === t.parts.length) return e2808 const o = t.parts[n]2809 if ('nth' === o.name) {2810 let i = []2811 if ('0' === o.body) i = e.slice(0, 1)2812 else if ('-1' === o.body) e.length && (i = e.slice(e.length - 1))2813 else {2814 if ('number' == typeof t.capture)2815 throw this.createStacklessError(2816 "Can't query n-th element in a request with the capture."2817 )2818 const n = +o.body,2819 r = new Set()2820 for (const t of e) r.add(t.element), n + 1 === r.size && (i = [t])2821 }2822 return this._querySelectorRecursively(i, t, n + 1, r)2823 }2824 if ('visible' === o.name) {2825 const i = Boolean(o.body),2826 s = e.filter((e) => i === (0, c.isVisible)(e.element))2827 return this._querySelectorRecursively(s, t, n + 1, r)2828 }2829 const i = []2830 for (const o of e) {2831 const e = n - 1 === t.capture ? o.element : o.capture2832 let s = r.get(o.element)2833 s || ((s = []), r.set(o.element, s))2834 let c = s[n]2835 c || ((c = this._queryEngineAll(t.parts[n], o.element)), (s[n] = c))2836 for (const t of c) {2837 if (!('nodeName' in t))2838 throw this.createStacklessError(2839 `Expected a Node but got ${Object.prototype.toString.call(t)}`2840 )2841 i.push({ element: t, capture: e })2842 }2843 }2844 return this._querySelectorRecursively(i, t, n + 1, r)2845 }2846 querySelectorAll(e, t) {2847 if (!t.querySelectorAll)2848 throw this.createStacklessError('Node is not queryable.')2849 this._evaluator.begin()2850 try {2851 const n = this._querySelectorRecursively(2852 [{ element: t, capture: void 0 }],2853 e,2854 0,2855 new Map()2856 ),2857 r = new Set()2858 for (const e of n) r.add(e.capture || e.element)2859 return [...r]2860 } finally {2861 this._evaluator.end()2862 }2863 }2864 _queryEngineAll(e, t) {2865 return this._engines.get(e.name).queryAll(t, e.body)2866 }2867 _createAttributeEngine(e, t) {2868 return {2869 queryAll: (n, r) =>2870 this._evaluator.query(2871 { scope: n, pierceShadow: t },2872 ((t) => [2873 {2874 simples: [2875 {2876 selector: {2877 css: `[${e}=${JSON.stringify(t)}]`,2878 functions: []2879 },2880 combinator: ''2881 }2882 ]2883 }2884 ])(r)2885 )2886 }2887 }2888 _createCSSEngine() {2889 const e = this._evaluator2890 return {2891 queryAll: (t, n) => e.query({ scope: t, pierceShadow: !0 }, n)2892 }2893 }2894 _createTextEngine(e) {2895 const t = (t, n) => {2896 const { matcher: r, kind: o } = (function (e) {2897 if ('/' === e[0] && e.lastIndexOf('/') > 0) {2898 const t = e.lastIndexOf('/')2899 return {2900 matcher: (0, c.createRegexTextMatcher)(2901 e.substring(1, t),2902 e.substring(t + 1)2903 ),2904 kind: 'regex'2905 }2906 }2907 let t = !12908 return (2909 e.length > 1 &&2910 '"' === e[0] &&2911 '"' === e[e.length - 1] &&2912 ((e = f(e.substring(1, e.length - 1))), (t = !0)),2913 e.length > 1 &&2914 "'" === e[0] &&2915 "'" === e[e.length - 1] &&2916 ((e = f(e.substring(1, e.length - 1))), (t = !0)),2917 {2918 matcher: t2919 ? (0, c.createStrictTextMatcher)(e)2920 : (0, c.createLaxTextMatcher)(e),2921 kind: t ? 'strict' : 'lax'2922 }2923 )2924 })(n),2925 i = []2926 let s = null2927 const a = (e) => {2928 if ('lax' === o && s && s.contains(e)) return !12929 const t = (0, c.elementMatchesText)(this._evaluator, e, r)2930 'none' === t && (s = e),2931 ('self' === t || ('selfAndChildren' === t && 'strict' === o)) &&2932 i.push(e)2933 }2934 t.nodeType === Node.ELEMENT_NODE && a(t)2935 const u = this._evaluator._queryCSS(2936 { scope: t, pierceShadow: e },2937 '*'2938 )2939 for (const e of u) a(e)2940 return i2941 }2942 return { queryAll: (e, n) => t(e, n) }2943 }2944 extend(e, t) {2945 return new (n.g.eval(2946 `\n (() => {\n ${e}\n return pwExport;\n })()`2947 ))(this, t)2948 }2949 isVisible(e) {2950 return (0, c.isVisible)(e)2951 }2952 pollRaf(e) {2953 return this.poll(e, (e) => requestAnimationFrame(e))2954 }2955 pollInterval(e, t) {2956 return this.poll(t, (t) => setTimeout(t, e))2957 }2958 pollLogScale(e) {2959 const t = [100, 250, 500]2960 let n = 02961 return this.poll(e, (e) => setTimeout(e, t[n++] || 1e3))2962 }2963 poll(e, t) {2964 return this._runAbortableTask((n) => {2965 let r, o2966 const i = new Promise((e, t) => {2967 ;(r = e), (o = t)2968 }),2969 s = () => {2970 if (!n.aborted)2971 try {2972 const o = e(n)2973 o !== n.continuePolling ? r(o) : t(s)2974 } catch (e) {2975 n.log(' ' + e.message), o(e)2976 }2977 }2978 return s(), i2979 })2980 }2981 _runAbortableTask(e) {2982 let t,2983 n = [],2984 r = !12985 const o = () => {2986 t && (t(n), (n = []), (t = void 0))2987 }2988 let i,2989 s = ''2990 const c = {2991 injectedScript: this,2992 aborted: !1,2993 continuePolling: Symbol('continuePolling'),2994 log: (e) => {2995 ;(s = e), n.push({ message: e }), o()2996 },2997 logRepeating: (e) => {2998 e !== s && c.log(e)2999 },3000 setIntermediateResult: (e) => {3001 i !== e && ((i = e), n.push({ intermediateResult: e }), o())3002 }3003 }3004 return {3005 takeNextLogs: () =>3006 new Promise((e) => {3007 ;(t = e), (n.length || r) && o()3008 }),3009 run: () => {3010 const t = e(c)3011 return (3012 t.finally(() => {3013 ;(r = !0), o()3014 }),3015 t3016 )3017 },3018 cancel: () => {3019 c.aborted = !03020 },3021 takeLastLogs: () => n3022 }3023 }3024 getElementBorderWidth(e) {3025 if (3026 e.nodeType !== Node.ELEMENT_NODE ||3027 !e.ownerDocument ||3028 !e.ownerDocument.defaultView3029 )3030 return { left: 0, top: 0 }3031 const t = e.ownerDocument.defaultView.getComputedStyle(e)3032 return {3033 left: parseInt(t.borderLeftWidth || '', 10),3034 top: parseInt(t.borderTopWidth || '', 10)3035 }3036 }3037 retarget(e, t) {3038 let n = e.nodeType === Node.ELEMENT_NODE ? e : e.parentElement3039 return n3040 ? (n.matches('input, textarea, select') ||3041 (n =3042 n.closest(3043 'button, [role=button], [role=checkbox], [role=radio]'3044 ) || n),3045 'follow-label' === t &&3046 (n.matches(3047 'input, textarea, button, select, [role=button], [role=checkbox], [role=radio]'3048 ) ||3049 n.isContentEditable ||3050 (n = n.closest('label') || n),3051 'LABEL' === n.nodeName && (n = n.control || n)),3052 n)3053 : null3054 }3055 waitForElementStatesAndPerformAction(e, t, n, r) {3056 let o,3057 i = 0,3058 s = 0,3059 c = 03060 return this.pollRaf((a) => {3061 if (n) return a.log(' forcing action'), r(e, a)3062 for (const n of t) {3063 if ('stable' !== n) {3064 const t = this.elementState(e, n)3065 if ('boolean' != typeof t) return t3066 if (!t)3067 return (3068 a.logRepeating(` element is not ${n} - waiting...`),3069 a.continuePolling3070 )3071 continue3072 }3073 const t = this.retarget(e, 'no-follow-label')3074 if (!t) return 'error:notconnected'3075 if (1 == ++i) return a.continuePolling3076 const r = performance.now()3077 if (this._stableRafCount > 1 && r - c < 15) return a.continuePolling3078 c = r3079 const u = t.getBoundingClientRect(),3080 l = { x: u.top, y: u.left, width: u.width, height: u.height }3081 o &&3082 l.x === o.x &&3083 l.y === o.y &&3084 l.width === o.width &&3085 l.height === o.height3086 ? ++s3087 : (s = 0)3088 const h = s >= this._stableRafCount,3089 p = h || !o3090 if (3091 ((o = l),3092 p || a.logRepeating(' element is not stable - waiting...'),3093 !h)3094 )3095 return a.continuePolling3096 }3097 return r(e, a)3098 })3099 }3100 elementState(e, t) {3101 const n = this.retarget(3102 e,3103 ['stable', 'visible', 'hidden'].includes(t)3104 ? 'no-follow-label'3105 : 'follow-label'3106 )3107 if (!n || !n.isConnected) return 'hidden' === t || 'error:notconnected'3108 if ('visible' === t) return this.isVisible(n)3109 if ('hidden' === t) return !this.isVisible(n)3110 const r =3111 ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'].includes(n.nodeName) &&3112 n.hasAttribute('disabled')3113 if ('disabled' === t) return r3114 if ('enabled' === t) return !r3115 const o = !(3116 ['INPUT', 'TEXTAREA', 'SELECT'].includes(n.nodeName) &&3117 n.hasAttribute('readonly')3118 )3119 if ('editable' === t) return !r && o3120 if ('checked' === t) {3121 if (['checkbox', 'radio'].includes(n.getAttribute('role') || ''))3122 return 'true' === n.getAttribute('aria-checked')3123 if ('INPUT' !== n.nodeName)3124 throw this.createStacklessError('Not a checkbox or radio button')3125 if (!['radio', 'checkbox'].includes(n.type.toLowerCase()))3126 throw this.createStacklessError('Not a checkbox or radio button')3127 return n.checked3128 }3129 throw this.createStacklessError(`Unexpected element state "${t}"`)3130 }3131 selectOptions(e, t, n) {3132 const r = this.retarget(t, 'follow-label')3133 if (!r) return 'error:notconnected'3134 if ('select' !== r.nodeName.toLowerCase())3135 throw this.createStacklessError('Element is not a <select> element')3136 const o = r,3137 i = [...o.options],3138 s = []3139 let c = e.slice()3140 for (let e = 0; e < i.length; e++) {3141 const t = i[e],3142 n = (n) => {3143 if (n instanceof Node) return t === n3144 let r = !03145 return (3146 void 0 !== n.value && (r = r && n.value === t.value),3147 void 0 !== n.label && (r = r && n.label === t.label),3148 void 0 !== n.index && (r = r && n.index === e),3149 r3150 )3151 }3152 if (c.some(n)) {3153 if ((s.push(t), !o.multiple)) {3154 c = []3155 break3156 }3157 c = c.filter((e) => !n(e))3158 }3159 }3160 return c.length3161 ? (n.logRepeating(' did not find some options - waiting... '),3162 n.continuePolling)3163 : ((o.value = void 0),3164 s.forEach((e) => (e.selected = !0)),3165 n.log(' selected specified option(s)'),3166 o.dispatchEvent(new Event('input', { bubbles: !0 })),3167 o.dispatchEvent(new Event('change', { bubbles: !0 })),3168 s.map((e) => e.value))3169 }3170 fill(e, t, n) {3171 const r = this.retarget(t, 'follow-label')3172 if (!r) return 'error:notconnected'3173 if ('input' === r.nodeName.toLowerCase()) {3174 const t = r,3175 o = t.type.toLowerCase(),3176 i = new Set([3177 'date',3178 'time',3179 'datetime',3180 'datetime-local',3181 'month',3182 'week'3183 ])3184 if (3185 !new Set([3186 '',3187 'email',3188 'number',3189 'password',3190 'search',3191 'tel',3192 'text',3193 'url'3194 ]).has(o) &&3195 !i.has(o)3196 )3197 throw (3198 (n.log(` input of type "${o}" cannot be filled`),3199 this.createStacklessError(3200 `Input of type "${o}" cannot be filled`3201 ))3202 )3203 if ('number' === o && ((e = e.trim()), isNaN(Number(e))))3204 throw this.createStacklessError(3205 'Cannot type text into input[type=number]'3206 )3207 if (i.has(o)) {3208 if (((e = e.trim()), t.focus(), (t.value = e), t.value !== e))3209 throw this.createStacklessError('Malformed value')3210 return (3211 r.dispatchEvent(new Event('input', { bubbles: !0 })),3212 r.dispatchEvent(new Event('change', { bubbles: !0 })),3213 'done'3214 )3215 }3216 } else if ('textarea' === r.nodeName.toLowerCase());3217 else if (!r.isContentEditable)3218 throw this.createStacklessError(3219 'Element is not an <input>, <textarea> or [contenteditable] element'3220 )3221 return this.selectText(r), 'needsinput'3222 }3223 selectText(e) {3224 const t = this.retarget(e, 'follow-label')3225 if (!t) return 'error:notconnected'3226 if ('input' === t.nodeName.toLowerCase()) {3227 const e = t3228 return e.select(), e.focus(), 'done'3229 }3230 if ('textarea' === t.nodeName.toLowerCase()) {3231 const e = t3232 return (3233 (e.selectionStart = 0),3234 (e.selectionEnd = e.value.length),3235 e.focus(),3236 'done'3237 )3238 }3239 const n = t.ownerDocument.createRange()3240 n.selectNodeContents(t)3241 const r = t.ownerDocument.defaultView.getSelection()3242 return r && (r.removeAllRanges(), r.addRange(n)), t.focus(), 'done'3243 }3244 focusNode(e, t) {3245 if (!e.isConnected) return 'error:notconnected'3246 if (e.nodeType !== Node.ELEMENT_NODE)3247 throw this.createStacklessError('Node is not an element')3248 const n =3249 e.getRootNode().activeElement === e &&3250 e.ownerDocument &&3251 e.ownerDocument.hasFocus()3252 if ((e.focus(), t && !n && 'input' === e.nodeName.toLowerCase()))3253 try {3254 e.setSelectionRange(0, 0)3255 } catch (e) {}3256 return 'done'3257 }3258 setInputFiles(e, t) {3259 if (e.nodeType !== Node.ELEMENT_NODE)3260 return 'Node is not of type HTMLElement'3261 const n = e3262 if ('INPUT' !== n.nodeName) return 'Not an <input> element'3263 const r = n3264 if ('file' !== (r.getAttribute('type') || '').toLowerCase())3265 return 'Not an input[type=file] element'3266 const o = t.map((e) => {3267 const t = Uint8Array.from(atob(e.buffer), (e) => e.charCodeAt(0))3268 return new File([t], e.name, { type: e.mimeType })3269 }),3270 i = new DataTransfer()3271 for (const e of o) i.items.add(e)3272 ;(r.files = i.files),3273 r.dispatchEvent(new Event('input', { bubbles: !0 })),3274 r.dispatchEvent(new Event('change', { bubbles: !0 }))3275 }3276 checkHitTargetAt(e, t) {3277 let n = e.nodeType === Node.ELEMENT_NODE ? e : e.parentElement3278 if (!n || !n.isConnected) return 'error:notconnected'3279 n = n.closest('button, [role=button]') || n3280 let r = this.deepElementFromPoint(document, t.x, t.y)3281 const o = []3282 for (; r && r !== n; )3283 o.push(r), (r = (0, c.parentElementOrShadowHost)(r))3284 if (r === n) return 'done'3285 const i = this.previewNode(o[0])3286 let s3287 for (; n; ) {3288 const e = o.indexOf(n)3289 if (-1 !== e) {3290 e > 1 && (s = this.previewNode(o[e - 1]))3291 break3292 }3293 n = (0, c.parentElementOrShadowHost)(n)3294 }3295 return s3296 ? { hitTargetDescription: `${i} from ${s} subtree` }3297 : { hitTargetDescription: i }3298 }3299 dispatchEvent(e, t, n) {3300 let r3301 switch (3302 ((n = { bubbles: !0, cancelable: !0, composed: !0, ...n }), p.get(t))3303 ) {3304 case 'mouse':3305 r = new MouseEvent(t, n)3306 break3307 case 'keyboard':3308 r = new KeyboardEvent(t, n)3309 break3310 case 'touch':3311 r = new TouchEvent(t, n)3312 break3313 case 'pointer':3314 r = new PointerEvent(t, n)3315 break3316 case 'focus':3317 r = new FocusEvent(t, n)3318 break3319 case 'drag':3320 r = new DragEvent(t, n)3321 break3322 default:3323 r = new Event(t, n)3324 }3325 e.dispatchEvent(r)3326 }3327 deepElementFromPoint(e, t, n) {3328 let r,3329 o = e3330 for (; o; ) {3331 const e = o.elementsFromPoint(t, n)[0]3332 if (!e || r === e) break3333 ;(r = e), (o = r.shadowRoot)3334 }3335 return r3336 }3337 previewNode(e) {3338 if (e.nodeType === Node.TEXT_NODE)3339 return h(`#text=${e.nodeValue || ''}`)3340 if (e.nodeType !== Node.ELEMENT_NODE)3341 return h(`<${e.nodeName.toLowerCase()} />`)3342 const t = e,3343 n = []3344 for (let e = 0; e < t.attributes.length; e++) {3345 const { name: r, value: o } = t.attributes[e]3346 'style' === r ||3347 r.startsWith('__playwright') ||3348 (!o && l.has(r) ? n.push(` ${r}`) : n.push(` ${r}="${o}"`))3349 }3350 n.sort((e, t) => e.length - t.length)3351 let r = n.join('')3352 if (3353 (r.length > 50 && (r = r.substring(0, 49) + 'â¦'), u.has(t.nodeName))3354 )3355 return h(`<${t.nodeName.toLowerCase()}${r}/>`)3356 const o = t.childNodes3357 let i = !13358 if (o.length <= 5) {3359 i = !03360 for (let e = 0; e < o.length; e++)3361 i = i && o[e].nodeType === Node.TEXT_NODE3362 }3363 let s = i ? t.textContent || '' : o.length ? 'â¦' : ''3364 return (3365 s.length > 50 && (s = s.substring(0, 49) + 'â¦'),3366 h(3367 `<${t.nodeName.toLowerCase()}${r}>${s}</${t.nodeName.toLowerCase()}>`3368 )3369 )3370 }3371 strictModeViolationError(e, t) {3372 const n = t3373 .slice(0, 10)3374 .map((e) => ({3375 preview: this.previewNode(e),3376 selector: (0, a.generateSelector)(this, e).selector3377 })),3378 r = n.map(3379 (e, t) =>3380 `\n ${t + 1}) ${e.preview} aka playwright.$("${e.selector}")`3381 )3382 return (3383 n.length < t.length && r.push('\n ...'),3384 this.createStacklessError(3385 `strict mode violation: "${e.selector}" resolved to ${3386 t.length3387 } elements:${r.join('')}\n`3388 )3389 )3390 }3391 createStacklessError(e) {3392 if ('firefox' === this._browserName) {3393 const t = new Error('Error: ' + e)3394 return (t.stack = ''), t3395 }3396 const t = new Error(e)3397 return delete t.stack, t3398 }3399 _setupGlobalListenersRemovalDetection() {3400 const e = '__playwright_global_listeners_check__'3401 let t = !13402 const n = () => (t = !0)3403 window.addEventListener(e, n),3404 new MutationObserver((r) => {3405 if (3406 r.some((e) =>3407 Array.from(e.addedNodes).includes(document.documentElement)3408 ) &&3409 ((t = !1), window.dispatchEvent(new CustomEvent(e)), !t)3410 ) {3411 window.addEventListener(e, n)3412 for (const e of this.onGlobalListenersRemoved) e()3413 }3414 }).observe(document, { childList: !0 })3415 }3416 expectSingleElement(e, t, n) {3417 const r = e.injectedScript,3418 o = n.expression3419 {3420 let n3421 if ('to.be.checked' === o)3422 n = e.injectedScript.elementState(t, 'checked')3423 else if ('to.be.disabled' === o)3424 n = e.injectedScript.elementState(t, 'disabled')3425 else if ('to.be.editable' === o)3426 n = e.injectedScript.elementState(t, 'editable')3427 else if ('to.be.empty' === o) {3428 var i3429 n =3430 'INPUT' === t.nodeName || 'TEXTAREA' === t.nodeName3431 ? !t.value3432 : !(null !== (i = t.textContent) && void 0 !== i && i.trim())3433 } else3434 'to.be.enabled' === o3435 ? (n = e.injectedScript.elementState(t, 'enabled'))3436 : 'to.be.focused' === o3437 ? (n = document.activeElement === t)3438 : 'to.be.hidden' === o3439 ? (n = e.injectedScript.elementState(t, 'hidden'))3440 : 'to.be.visible' === o &&3441 (n = e.injectedScript.elementState(t, 'visible'))3442 if (void 0 !== n) {3443 if ('error:notcheckbox' === n)3444 throw r.createStacklessError('Element is not a checkbox')3445 if ('error:notconnected' === n)3446 throw r.createStacklessError('Element is not connected')3447 return { received: n, matches: n }3448 }3449 }3450 if ('to.have.property' === o) {3451 const e = t[n.expressionArg]3452 return { received: e, matches: m(e, n.expectedValue) }3453 }3454 {3455 let e3456 if ('to.have.attribute' === o)3457 e = t.getAttribute(n.expressionArg) || ''3458 else if ('to.have.class' === o) e = t.className3459 else if ('to.have.css' === o)3460 e = window.getComputedStyle(t)[n.expressionArg]3461 else if ('to.have.id' === o) e = t.id3462 else if ('to.have.text' === o)3463 e = n.useInnerText ? t.innerText : t.textContent || ''3464 else if ('to.have.title' === o) e = document.title3465 else if ('to.have.url' === o) e = document.location.href3466 else if ('to.have.value' === o) {3467 if (3468 'INPUT' !== t.nodeName &&3469 'TEXTAREA' !== t.nodeName &&3470 'SELECT' !== t.nodeName3471 )3472 throw this.createStacklessError('Not an input element')3473 e = t.value3474 }3475 if (void 0 !== e && n.expectedText)3476 return { received: e, matches: new d(n.expectedText[0]).matches(e) }3477 }3478 throw this.createStacklessError('Unknown expect matcher: ' + o)3479 }3480 expectArray(e, t) {3481 const n = t.expression3482 if ('to.have.count' === n) {3483 const n = e.length3484 return { received: n, matches: n === t.expectedNumber }3485 }3486 let r3487 if (3488 ('to.have.text.array' === n || 'to.contain.text.array' === n3489 ? (r = e.map((e) =>3490 t.useInnerText ? e.innerText : e.textContent || ''3491 ))3492 : 'to.have.class.array' === n && (r = e.map((e) => e.className)),3493 r && t.expectedText)3494 ) {3495 const e = 'to.contain.text.array' !== n3496 if (r.length !== t.expectedText.length && e)3497 return { received: r, matches: !1 }3498 let o = 03499 const i = t.expectedText.map((e) => new d(e))3500 let s = !03501 for (const e of i) {3502 for (; o < r.length && !e.matches(r[o]); ) o++3503 if (o >= r.length) {3504 s = !13505 break3506 }3507 }3508 return { received: r, matches: s }3509 }3510 throw this.createStacklessError('Unknown expect matcher: ' + n)3511 }3512 }3513 e.default = g3514 })(),3515 (pwExport = r.default)...
recorderSource.js
Source:recorderSource.js
1var pwExport2;(() => {3 'use strict'4 var e = {5 317: (e, t, n) => {6 Object.defineProperty(t, '__esModule', { value: !0 }),7 (t.parseCSS = function (e, t) {8 let n9 try {10 ;(n = o.tokenize(e)),11 n[n.length - 1] instanceof o.EOFToken ||12 n.push(new o.EOFToken())13 } catch (t) {14 const n = t.message + ` while parsing selector "${e}"`,15 o = (t.stack || '').indexOf(t.message)16 throw (17 (-1 !== o &&18 (t.stack =19 t.stack.substring(0, o) +20 n +21 t.stack.substring(o + t.message.length)),22 (t.message = n),23 t)24 )25 }26 const r = n.find(27 (e) =>28 e instanceof o.AtKeywordToken ||29 e instanceof o.BadStringToken ||30 e instanceof o.BadURLToken ||31 e instanceof o.ColumnToken ||32 e instanceof o.CDOToken ||33 e instanceof o.CDCToken ||34 e instanceof o.SemicolonToken ||35 e instanceof o.OpenCurlyToken ||36 e instanceof o.CloseCurlyToken ||37 e instanceof o.URLToken ||38 e instanceof o.PercentageToken39 )40 if (r)41 throw new Error(42 `Unsupported token "${r.toSource()}" while parsing selector "${e}"`43 )44 let i = 045 const s = new Set()46 function c() {47 return new Error(48 `Unexpected token "${n[49 i50 ].toSource()}" while parsing selector "${e}"`51 )52 }53 function l() {54 for (; n[i] instanceof o.WhitespaceToken; ) i++55 }56 function a(e = i) {57 return n[e] instanceof o.IdentToken58 }59 function h(e = i) {60 return n[e] instanceof o.CommaToken61 }62 function u(e = i) {63 return n[e] instanceof o.CloseParenToken64 }65 function p(e = i) {66 return n[e] instanceof o.DelimToken && '*' === n[e].value67 }68 function f(e = i) {69 return n[e] instanceof o.EOFToken70 }71 function d(e = i) {72 return (73 n[e] instanceof o.DelimToken &&74 ['>', '+', '~'].includes(n[e].value)75 )76 }77 function m(e = i) {78 return (79 h(e) ||80 u(e) ||81 f(e) ||82 d(e) ||83 n[e] instanceof o.WhitespaceToken84 )85 }86 function g() {87 const e = [y()]88 for (; l(), h(); ) i++, e.push(y())89 return e90 }91 function y() {92 return (93 l(),94 (function (e = i) {95 return n[e] instanceof o.NumberToken96 })() ||97 (function (e = i) {98 return n[e] instanceof o.StringToken99 })()100 ? n[i++].value101 : (function () {102 const e = { simples: [] }103 for (104 l(),105 d()106 ? e.simples.push({107 selector: {108 functions: [{ name: 'scope', args: [] }]109 },110 combinator: ''111 })112 : e.simples.push({ selector: _(), combinator: '' });113 ;114 ) {115 if ((l(), d()))116 (e.simples[e.simples.length - 1].combinator =117 n[i++].value),118 l()119 else if (m()) break120 e.simples.push({ combinator: '', selector: _() })121 }122 return e123 })()124 )125 }126 function _() {127 let e = ''128 const r = []129 for (; !m(); )130 if (a() || p()) e += n[i++].toSource()131 else if (n[i] instanceof o.HashToken) e += n[i++].toSource()132 else if (n[i] instanceof o.DelimToken && '.' === n[i].value) {133 if ((i++, !a())) throw c()134 e += '.' + n[i++].toSource()135 } else if (n[i] instanceof o.ColonToken)136 if ((i++, a()))137 if (t.has(n[i].value.toLowerCase())) {138 const e = n[i++].value.toLowerCase()139 r.push({ name: e, args: [] }), s.add(e)140 } else e += ':' + n[i++].toSource()141 else {142 if (!(n[i] instanceof o.FunctionToken)) throw c()143 {144 const o = n[i++].value.toLowerCase()145 if (146 (t.has(o)147 ? (r.push({ name: o, args: g() }), s.add(o))148 : (e += `:${o}(${v()})`),149 l(),150 !u())151 )152 throw c()153 i++154 }155 }156 else {157 if (!(n[i] instanceof o.OpenSquareToken)) throw c()158 for (159 e += '[', i++;160 !(n[i] instanceof o.CloseSquareToken || f());161 )162 e += n[i++].toSource()163 if (!(n[i] instanceof o.CloseSquareToken)) throw c()164 ;(e += ']'), i++165 }166 if (!e && !r.length) throw c()167 return { css: e || void 0, functions: r }168 }169 function v() {170 let e = ''171 for (; !u() && !f(); ) e += n[i++].toSource()172 return e173 }174 const w = g()175 if (!f()) throw new Error(`Error while parsing selector "${e}"`)176 if (w.some((e) => 'object' != typeof e || !('simples' in e)))177 throw new Error(`Error while parsing selector "${e}"`)178 return { selector: w, names: Array.from(s) }179 }),180 (t.serializeSelector = function e(t) {181 return t182 .map((t) =>183 'string' == typeof t184 ? `"${t}"`185 : 'number' == typeof t186 ? String(t)187 : t.simples188 .map(({ selector: t, combinator: n }) => {189 let o = t.css || ''190 return (191 (o += t.functions192 .map((t) => `:${t.name}(${e(t.args)})`)193 .join('')),194 n && (o += ' ' + n),195 o196 )197 })198 .join(' ')199 )200 .join(', ')201 })202 var o = (function (e, t) {203 if (e && e.__esModule) return e204 if (null === e || ('object' != typeof e && 'function' != typeof e))205 return { default: e }206 var n = r(t)207 if (n && n.has(e)) return n.get(e)208 var o = {},209 i = Object.defineProperty && Object.getOwnPropertyDescriptor210 for (var s in e)211 if ('default' !== s && Object.prototype.hasOwnProperty.call(e, s)) {212 var c = i ? Object.getOwnPropertyDescriptor(e, s) : null213 c && (c.get || c.set)214 ? Object.defineProperty(o, s, c)215 : (o[s] = e[s])216 }217 return (o.default = e), n && n.set(e, o), o218 })(n(503))219 function r(e) {220 if ('function' != typeof WeakMap) return null221 var t = new WeakMap(),222 n = new WeakMap()223 return (r = function (e) {224 return e ? n : t225 })(e)226 }227 },228 503: (e, t) => {229 var n, o230 ;(n = function (e) {231 var t = function (e, t, n) {232 return e >= t && e <= n233 }234 function n(e) {235 return t(e, 48, 57)236 }237 function o(e) {238 return n(e) || t(e, 65, 70) || t(e, 97, 102)239 }240 function r(e) {241 return (242 (function (e) {243 return t(e, 65, 90)244 })(e) ||245 (function (e) {246 return t(e, 97, 122)247 })(e)248 )249 }250 function i(e) {251 return (252 r(e) ||253 (function (e) {254 return e >= 128255 })(e) ||256 95 == e257 )258 }259 function s(e) {260 return i(e) || n(e) || 45 == e261 }262 function c(e) {263 return t(e, 0, 8) || 11 == e || t(e, 14, 31) || 127 == e264 }265 function l(e) {266 return 10 == e267 }268 function a(e) {269 return l(e) || 9 == e || 32 == e270 }271 var h = function (e) {272 this.message = e273 }274 function u(e) {275 if (e <= 65535) return String.fromCharCode(e)276 e -= Math.pow(2, 16)277 var t = Math.floor(e / Math.pow(2, 10)) + 55296,278 n = (e % Math.pow(2, 10)) + 56320279 return String.fromCharCode(t) + String.fromCharCode(n)280 }281 function p() {282 throw 'Abstract Base Class'283 }284 function f() {285 return this286 }287 function d() {288 return this289 }290 function m() {291 return this292 }293 function g() {294 return this295 }296 function y() {297 return this298 }299 function _() {300 return this301 }302 function v() {303 return this304 }305 function w() {306 return this307 }308 function E() {309 throw 'Abstract Base Class'310 }311 function S() {312 return (this.value = '{'), (this.mirror = '}'), this313 }314 function T() {315 return (this.value = '}'), (this.mirror = '{'), this316 }317 function b() {318 return (this.value = '['), (this.mirror = ']'), this319 }320 function k() {321 return (this.value = ']'), (this.mirror = '['), this322 }323 function M() {324 return (this.value = '('), (this.mirror = ')'), this325 }326 function x() {327 return (this.value = ')'), (this.mirror = '('), this328 }329 function C() {330 return this331 }332 function P() {333 return this334 }335 function A() {336 return this337 }338 function N() {339 return this340 }341 function O() {342 return this343 }344 function R() {345 return this346 }347 function j() {348 return this349 }350 function I(e) {351 return (this.value = u(e)), this352 }353 function D() {354 throw 'Abstract Base Class'355 }356 function L(e) {357 this.value = e358 }359 function $(e) {360 ;(this.value = e), (this.mirror = ')')361 }362 function U(e) {363 this.value = e364 }365 function q(e) {366 ;(this.value = e), (this.type = 'unrestricted')367 }368 function G(e) {369 this.value = e370 }371 function F(e) {372 this.value = e373 }374 function H() {375 ;(this.value = null), (this.type = 'integer'), (this.repr = '')376 }377 function K() {378 ;(this.value = null), (this.repr = '')379 }380 function B() {381 ;(this.value = null),382 (this.type = 'integer'),383 (this.repr = ''),384 (this.unit = '')385 }386 function W(e) {387 for (388 var n = '', o = (e = '' + e).charCodeAt(0), r = 0;389 r < e.length;390 r++391 ) {392 var i = e.charCodeAt(r)393 if (0 == i)394 throw new h('Invalid character: the input contains U+0000.')395 t(i, 1, 31) ||396 127 == i ||397 (0 == r && t(i, 48, 57)) ||398 (1 == r && t(i, 48, 57) && 45 == o)399 ? (n += '\\' + i.toString(16) + ' ')400 : i >= 128 ||401 45 == i ||402 95 == i ||403 t(i, 48, 57) ||404 t(i, 65, 90) ||405 t(i, 97, 122)406 ? (n += e[r])407 : (n += '\\' + e[r])408 }409 return n410 }411 function J(e) {412 e = '' + e413 for (var n = '', o = 0; o < e.length; o++) {414 var r = e.charCodeAt(o)415 if (0 == r)416 throw new h('Invalid character: the input contains U+0000.')417 t(r, 1, 31) || 127 == r418 ? (n += '\\' + r.toString(16) + ' ')419 : (n += 34 == r || 92 == r ? '\\' + e[o] : e[o])420 }421 return n422 }423 ;((h.prototype = new Error()).name = 'InvalidCharacterError'),424 (p.prototype.toJSON = function () {425 return { token: this.tokenType }426 }),427 (p.prototype.toString = function () {428 return this.tokenType429 }),430 (p.prototype.toSource = function () {431 return '' + this432 }),433 (f.prototype = Object.create(p.prototype)),434 (f.prototype.tokenType = 'BADSTRING'),435 (d.prototype = Object.create(p.prototype)),436 (d.prototype.tokenType = 'BADURL'),437 (m.prototype = Object.create(p.prototype)),438 (m.prototype.tokenType = 'WHITESPACE'),439 (m.prototype.toString = function () {440 return 'WS'441 }),442 (m.prototype.toSource = function () {443 return ' '444 }),445 (g.prototype = Object.create(p.prototype)),446 (g.prototype.tokenType = 'CDO'),447 (g.prototype.toSource = function () {448 return '\x3c!--'449 }),450 (y.prototype = Object.create(p.prototype)),451 (y.prototype.tokenType = 'CDC'),452 (y.prototype.toSource = function () {453 return '--\x3e'454 }),455 (_.prototype = Object.create(p.prototype)),456 (_.prototype.tokenType = ':'),457 (v.prototype = Object.create(p.prototype)),458 (v.prototype.tokenType = ';'),459 (w.prototype = Object.create(p.prototype)),460 (w.prototype.tokenType = ','),461 (E.prototype = Object.create(p.prototype)),462 (S.prototype = Object.create(E.prototype)),463 (S.prototype.tokenType = '{'),464 (T.prototype = Object.create(E.prototype)),465 (T.prototype.tokenType = '}'),466 (b.prototype = Object.create(E.prototype)),467 (b.prototype.tokenType = '['),468 (k.prototype = Object.create(E.prototype)),469 (k.prototype.tokenType = ']'),470 (M.prototype = Object.create(E.prototype)),471 (M.prototype.tokenType = '('),472 (x.prototype = Object.create(E.prototype)),473 (x.prototype.tokenType = ')'),474 (C.prototype = Object.create(p.prototype)),475 (C.prototype.tokenType = '~='),476 (P.prototype = Object.create(p.prototype)),477 (P.prototype.tokenType = '|='),478 (A.prototype = Object.create(p.prototype)),479 (A.prototype.tokenType = '^='),480 (N.prototype = Object.create(p.prototype)),481 (N.prototype.tokenType = '$='),482 (O.prototype = Object.create(p.prototype)),483 (O.prototype.tokenType = '*='),484 (R.prototype = Object.create(p.prototype)),485 (R.prototype.tokenType = '||'),486 (j.prototype = Object.create(p.prototype)),487 (j.prototype.tokenType = 'EOF'),488 (j.prototype.toSource = function () {489 return ''490 }),491 (I.prototype = Object.create(p.prototype)),492 (I.prototype.tokenType = 'DELIM'),493 (I.prototype.toString = function () {494 return 'DELIM(' + this.value + ')'495 }),496 (I.prototype.toJSON = function () {497 var e =498 this.constructor.prototype.constructor.prototype.toJSON.call(499 this500 )501 return (e.value = this.value), e502 }),503 (I.prototype.toSource = function () {504 return '\\' == this.value ? '\\\n' : this.value505 }),506 (D.prototype = Object.create(p.prototype)),507 (D.prototype.ASCIIMatch = function (e) {508 return this.value.toLowerCase() == e.toLowerCase()509 }),510 (D.prototype.toJSON = function () {511 var e =512 this.constructor.prototype.constructor.prototype.toJSON.call(513 this514 )515 return (e.value = this.value), e516 }),517 (L.prototype = Object.create(D.prototype)),518 (L.prototype.tokenType = 'IDENT'),519 (L.prototype.toString = function () {520 return 'IDENT(' + this.value + ')'521 }),522 (L.prototype.toSource = function () {523 return W(this.value)524 }),525 ($.prototype = Object.create(D.prototype)),526 ($.prototype.tokenType = 'FUNCTION'),527 ($.prototype.toString = function () {528 return 'FUNCTION(' + this.value + ')'529 }),530 ($.prototype.toSource = function () {531 return W(this.value) + '('532 }),533 (U.prototype = Object.create(D.prototype)),534 (U.prototype.tokenType = 'AT-KEYWORD'),535 (U.prototype.toString = function () {536 return 'AT(' + this.value + ')'537 }),538 (U.prototype.toSource = function () {539 return '@' + W(this.value)540 }),541 (q.prototype = Object.create(D.prototype)),542 (q.prototype.tokenType = 'HASH'),543 (q.prototype.toString = function () {544 return 'HASH(' + this.value + ')'545 }),546 (q.prototype.toJSON = function () {547 var e =548 this.constructor.prototype.constructor.prototype.toJSON.call(549 this550 )551 return (e.value = this.value), (e.type = this.type), e552 }),553 (q.prototype.toSource = function () {554 return 'id' == this.type555 ? '#' + W(this.value)556 : '#' +557 (function (e) {558 for (559 var n = '', o = ((e = '' + e).charCodeAt(0), 0);560 o < e.length;561 o++562 ) {563 var r = e.charCodeAt(o)564 if (0 == r)565 throw new h(566 'Invalid character: the input contains U+0000.'567 )568 r >= 128 ||569 45 == r ||570 95 == r ||571 t(r, 48, 57) ||572 t(r, 65, 90) ||573 t(r, 97, 122)574 ? (n += e[o])575 : (n += '\\' + r.toString(16) + ' ')576 }577 return n578 })(this.value)579 }),580 (G.prototype = Object.create(D.prototype)),581 (G.prototype.tokenType = 'STRING'),582 (G.prototype.toString = function () {583 return '"' + J(this.value) + '"'584 }),585 (F.prototype = Object.create(D.prototype)),586 (F.prototype.tokenType = 'URL'),587 (F.prototype.toString = function () {588 return 'URL(' + this.value + ')'589 }),590 (F.prototype.toSource = function () {591 return 'url("' + J(this.value) + '")'592 }),593 (H.prototype = Object.create(p.prototype)),594 (H.prototype.tokenType = 'NUMBER'),595 (H.prototype.toString = function () {596 return 'integer' == this.type597 ? 'INT(' + this.value + ')'598 : 'NUMBER(' + this.value + ')'599 }),600 (H.prototype.toJSON = function () {601 var e =602 this.constructor.prototype.constructor.prototype.toJSON.call(603 this604 )605 return (606 (e.value = this.value),607 (e.type = this.type),608 (e.repr = this.repr),609 e610 )611 }),612 (H.prototype.toSource = function () {613 return this.repr614 }),615 (K.prototype = Object.create(p.prototype)),616 (K.prototype.tokenType = 'PERCENTAGE'),617 (K.prototype.toString = function () {618 return 'PERCENTAGE(' + this.value + ')'619 }),620 (K.prototype.toJSON = function () {621 var e =622 this.constructor.prototype.constructor.prototype.toJSON.call(623 this624 )625 return (e.value = this.value), (e.repr = this.repr), e626 }),627 (K.prototype.toSource = function () {628 return this.repr + '%'629 }),630 (B.prototype = Object.create(p.prototype)),631 (B.prototype.tokenType = 'DIMENSION'),632 (B.prototype.toString = function () {633 return 'DIM(' + this.value + ',' + this.unit + ')'634 }),635 (B.prototype.toJSON = function () {636 var e =637 this.constructor.prototype.constructor.prototype.toJSON.call(638 this639 )640 return (641 (e.value = this.value),642 (e.type = this.type),643 (e.repr = this.repr),644 (e.unit = this.unit),645 e646 )647 }),648 (B.prototype.toSource = function () {649 var e = this.repr,650 n = W(this.unit)651 return (652 'e' != n[0].toLowerCase() ||653 ('-' != n[1] && !t(n.charCodeAt(1), 48, 57)) ||654 (n = '\\65 ' + n.slice(1, n.length)),655 e + n656 )657 }),658 (e.tokenize = function (e) {659 e = (function (e) {660 for (var n = [], o = 0; o < e.length; o++) {661 var r = e.charCodeAt(o)662 if (663 (13 == r && 10 == e.charCodeAt(o + 1) && ((r = 10), o++),664 (13 != r && 12 != r) || (r = 10),665 0 == r && (r = 65533),666 t(r, 55296, 56319) && t(e.charCodeAt(o + 1), 56320, 57343))667 ) {668 var i = r - 55296,669 s = e.charCodeAt(o + 1) - 56320670 ;(r = Math.pow(2, 16) + i * Math.pow(2, 10) + s), o++671 }672 n.push(r)673 }674 return n675 })(e)676 for (677 var r,678 h = -1,679 p = [],680 E = 0,681 D = 0,682 W = 0,683 J = { line: E, column: D },684 Q = function (t) {685 return t >= e.length ? -1 : e[t]686 },687 z = function (e) {688 if ((void 0 === e && (e = 1), e > 3))689 throw 'Spec Error: no more than three codepoints of lookahead.'690 return Q(h + e)691 },692 V = function (e) {693 return (694 void 0 === e && (e = 1),695 l((r = Q((h += e))))696 ? ((E += 1), (W = D), (D = 0))697 : (D += e),698 !0699 )700 },701 X = function () {702 return (703 (h -= 1),704 l(r) ? ((E -= 1), (D = W)) : (D -= 1),705 (J.line = E),706 (J.column = D),707 !0708 )709 },710 Y = function (e) {711 return void 0 === e && (e = r), -1 == e712 },713 Z = function () {714 return (715 console.log(716 'Parse error at index ' +717 h +718 ', processing codepoint 0x' +719 r.toString(16) +720 '.'721 ),722 !0723 )724 },725 ee = function () {726 if ((te(), V(), a(r))) {727 for (; a(z()); ) V()728 return new m()729 }730 if (34 == r) return re()731 if (35 == r) {732 if (s(z()) || ce(z(1), z(2))) {733 var e = new q()734 return (735 ae(z(1), z(2), z(3)) && (e.type = 'id'),736 (e.value = pe()),737 e738 )739 }740 return new I(r)741 }742 return 36 == r743 ? 61 == z()744 ? (V(), new N())745 : new I(r)746 : 39 == r747 ? re()748 : 40 == r749 ? new M()750 : 41 == r751 ? new x()752 : 42 == r753 ? 61 == z()754 ? (V(), new O())755 : new I(r)756 : 43 == r757 ? ue()758 ? (X(), ne())759 : new I(r)760 : 44 == r761 ? new w()762 : 45 == r763 ? ue()764 ? (X(), ne())765 : 45 == z(1) && 62 == z(2)766 ? (V(2), new y())767 : he()768 ? (X(), oe())769 : new I(r)770 : 46 == r771 ? ue()772 ? (X(), ne())773 : new I(r)774 : 58 == r775 ? new _()776 : 59 == r777 ? new v()778 : 60 == r779 ? 33 == z(1) && 45 == z(2) && 45 == z(3)780 ? (V(3), new g())781 : new I(r)782 : 64 == r783 ? ae(z(1), z(2), z(3))784 ? new U(pe())785 : new I(r)786 : 91 == r787 ? new b()788 : 92 == r789 ? le()790 ? (X(), oe())791 : (Z(), new I(r))792 : 93 == r793 ? new k()794 : 94 == r795 ? 61 == z()796 ? (V(), new A())797 : new I(r)798 : 123 == r799 ? new S()800 : 124 == r801 ? 61 == z()802 ? (V(), new P())803 : 124 == z()804 ? (V(), new R())805 : new I(r)806 : 125 == r807 ? new T()808 : 126 == r809 ? 61 == z()810 ? (V(), new C())811 : new I(r)812 : n(r)813 ? (X(), ne())814 : i(r)815 ? (X(), oe())816 : Y()817 ? new j()818 : new I(r)819 },820 te = function () {821 for (; 47 == z(1) && 42 == z(2); )822 for (V(2); ; ) {823 if ((V(), 42 == r && 47 == z())) {824 V()825 break826 }827 if (Y()) return void Z()828 }829 },830 ne = function () {831 var e,832 t = fe()833 return ae(z(1), z(2), z(3))834 ? (((e = new B()).value = t.value),835 (e.repr = t.repr),836 (e.type = t.type),837 (e.unit = pe()),838 e)839 : 37 == z()840 ? (V(),841 ((e = new K()).value = t.value),842 (e.repr = t.repr),843 e)844 : (((e = new H()).value = t.value),845 (e.repr = t.repr),846 (e.type = t.type),847 e)848 },849 oe = function () {850 var e = pe()851 if ('url' == e.toLowerCase() && 40 == z()) {852 for (V(); a(z(1)) && a(z(2)); ) V()853 return 34 == z() || 39 == z()854 ? new $(e)855 : !a(z()) || (34 != z(2) && 39 != z(2))856 ? ie()857 : new $(e)858 }859 return 40 == z() ? (V(), new $(e)) : new L(e)860 },861 re = function (e) {862 void 0 === e && (e = r)863 for (var t = ''; V(); ) {864 if (r == e || Y()) return new G(t)865 if (l(r)) return Z(), X(), new f()866 92 == r867 ? Y(z()) || (l(z()) ? V() : (t += u(se())))868 : (t += u(r))869 }870 },871 ie = function () {872 for (var e = new F(''); a(z()); ) V()873 if (Y(z())) return e874 for (; V(); ) {875 if (41 == r || Y()) return e876 if (a(r)) {877 for (; a(z()); ) V()878 return 41 == z() || Y(z()) ? (V(), e) : (me(), new d())879 }880 if (34 == r || 39 == r || 40 == r || c(r))881 return Z(), me(), new d()882 if (92 == r) {883 if (!le()) return Z(), me(), new d()884 e.value += u(se())885 } else e.value += u(r)886 }887 },888 se = function () {889 if ((V(), o(r))) {890 for (var e = [r], t = 0; t < 5 && o(z()); t++)891 V(), e.push(r)892 a(z()) && V()893 var n = parseInt(894 e895 .map(function (e) {896 return String.fromCharCode(e)897 })898 .join(''),899 16900 )901 return n > 1114111 && (n = 65533), n902 }903 return Y() ? 65533 : r904 },905 ce = function (e, t) {906 return 92 == e && !l(t)907 },908 le = function () {909 return ce(r, z())910 },911 ae = function (e, t, n) {912 return 45 == e913 ? i(t) || 45 == t || ce(t, n)914 : !!i(e) || (92 == e && ce(e, t))915 },916 he = function () {917 return ae(r, z(1), z(2))918 },919 ue = function () {920 return (921 (e = r),922 (t = z(1)),923 (o = z(2)),924 43 == e || 45 == e925 ? !!n(t) || !(46 != t || !n(o))926 : 46 == e927 ? !!n(t)928 : !!n(e)929 )930 var e, t, o931 },932 pe = function () {933 for (var e = ''; V(); )934 if (s(r)) e += u(r)935 else {936 if (!le()) return X(), e937 e += u(se())938 }939 },940 fe = function () {941 var e = [],942 t = 'integer'943 for (944 (43 != z() && 45 != z()) || (V(), (e += u(r)));945 n(z());946 )947 V(), (e += u(r))948 if (46 == z(1) && n(z(2)))949 for (950 V(), e += u(r), V(), e += u(r), t = 'number';951 n(z());952 )953 V(), (e += u(r))954 var o = z(1),955 i = z(2),956 s = z(3)957 if ((69 != o && 101 != o) || !n(i)) {958 if ((69 == o || 101 == o) && (43 == i || 45 == i) && n(s))959 for (960 V(),961 e += u(r),962 V(),963 e += u(r),964 V(),965 e += u(r),966 t = 'number';967 n(z());968 )969 V(), (e += u(r))970 } else971 for (972 V(), e += u(r), V(), e += u(r), t = 'number';973 n(z());974 )975 V(), (e += u(r))976 return { type: t, value: de(e), repr: e }977 },978 de = function (e) {979 return +e980 },981 me = function () {982 for (; V(); ) {983 if (41 == r || Y()) return984 le() && se()985 }986 },987 ge = 0;988 !Y(z());989 )990 if ((p.push(ee()), ++ge > 2 * e.length))991 return "I'm infinite-looping!"992 return p993 }),994 (e.IdentToken = L),995 (e.FunctionToken = $),996 (e.AtKeywordToken = U),997 (e.HashToken = q),998 (e.StringToken = G),999 (e.BadStringToken = f),1000 (e.URLToken = F),1001 (e.BadURLToken = d),1002 (e.DelimToken = I),1003 (e.NumberToken = H),1004 (e.PercentageToken = K),1005 (e.DimensionToken = B),1006 (e.IncludeMatchToken = C),1007 (e.DashMatchToken = P),1008 (e.PrefixMatchToken = A),1009 (e.SuffixMatchToken = N),1010 (e.SubstringMatchToken = O),1011 (e.ColumnToken = R),1012 (e.WhitespaceToken = m),1013 (e.CDOToken = g),1014 (e.CDCToken = y),1015 (e.ColonToken = _),1016 (e.SemicolonToken = v),1017 (e.CommaToken = w),1018 (e.OpenParenToken = M),1019 (e.CloseParenToken = x),1020 (e.OpenSquareToken = b),1021 (e.CloseSquareToken = k),1022 (e.OpenCurlyToken = S),1023 (e.CloseCurlyToken = T),1024 (e.EOFToken = j),1025 (e.CSSParserToken = p),1026 (e.GroupingToken = E)1027 }),1028 void 0 === (o = n.apply(t, [t])) || (e.exports = o)1029 },1030 461: (e, t, n) => {1031 Object.defineProperty(t, '__esModule', { value: !0 }),1032 (t.parseSelector = function (e) {1033 const t = (function (e) {1034 let t,1035 n = 0,1036 o = 01037 const r = { parts: [] },1038 i = () => {1039 const t = e.substring(o, n).trim(),1040 i = t.indexOf('=')1041 let s, c1042 ;-1 !== i &&1043 t1044 .substring(0, i)1045 .trim()1046 .match(/^[a-zA-Z_0-9-+:*]+$/)1047 ? ((s = t.substring(0, i).trim()),1048 (c = t.substring(i + 1)))1049 : (t.length > 1 &&1050 '"' === t[0] &&1051 '"' === t[t.length - 1]) ||1052 (t.length > 1 &&1053 "'" === t[0] &&1054 "'" === t[t.length - 1])1055 ? ((s = 'text'), (c = t))1056 : /^\(*\/\//.test(t) || t.startsWith('..')1057 ? ((s = 'xpath'), (c = t))1058 : ((s = 'css'), (c = t))1059 let l = !11060 if (1061 ('*' === s[0] && ((l = !0), (s = s.substring(1))),1062 r.parts.push({ name: s, body: c }),1063 l)1064 ) {1065 if (void 0 !== r.capture)1066 throw new Error(1067 'Only one of the selectors can capture using * modifier'1068 )1069 r.capture = r.parts.length - 11070 }1071 }1072 if (!e.includes('>>')) return (n = e.length), i(), r1073 for (; n < e.length; ) {1074 const r = e[n]1075 '\\' === r && n + 1 < e.length1076 ? (n += 2)1077 : r === t1078 ? ((t = void 0), n++)1079 : t || ('"' !== r && "'" !== r && '`' !== r)1080 ? t || '>' !== r || '>' !== e[n + 1]1081 ? n++1082 : (i(), (n += 2), (o = n))1083 : ((t = r), n++)1084 }1085 return i(), r1086 })(e),1087 n = t.parts.map((e) =>1088 'css' === e.name || 'css:light' === e.name1089 ? ('css:light' === e.name &&1090 (e.body = ':light(' + e.body + ')'),1091 { name: 'css', body: (0, o.parseCSS)(e.body, r).selector })1092 : e1093 )1094 return { selector: e, capture: t.capture, parts: n }1095 }),1096 (t.customCSSNames = void 0)1097 var o = n(317)1098 const r = new Set([1099 'not',1100 'is',1101 'where',1102 'has',1103 'scope',1104 'light',1105 'visible',1106 'text',1107 'text-matches',1108 'text-is',1109 'has-text',1110 'above',1111 'below',1112 'right-of',1113 'left-of',1114 'near',1115 'nth-match'1116 ])1117 t.customCSSNames = r1118 },1119 848: (e, t, n) => {1120 Object.defineProperty(t, '__esModule', { value: !0 }),1121 (t.createLaxTextMatcher = d),1122 (t.createStrictTextMatcher = m),1123 (t.createRegexTextMatcher = g),1124 (t.elementText = _),1125 (t.elementMatchesText = v),1126 (t.parentElementOrShadowHost = x),1127 (t.isVisible = A),1128 (t.SelectorEvaluatorImpl = void 0)1129 var o = n(461)1130 t.SelectorEvaluatorImpl = class {1131 constructor(e) {1132 ;(this._engines = new Map()),1133 (this._cacheQueryCSS = new Map()),1134 (this._cacheMatches = new Map()),1135 (this._cacheQuery = new Map()),1136 (this._cacheMatchesSimple = new Map()),1137 (this._cacheMatchesParents = new Map()),1138 (this._cacheCallMatches = new Map()),1139 (this._cacheCallQuery = new Map()),1140 (this._cacheQuerySimple = new Map()),1141 (this._cacheText = new Map()),1142 (this._scoreMap = void 0),1143 (this._retainCacheCounter = 0)1144 for (const [t, n] of e) this._engines.set(t, n)1145 this._engines.set('not', c),1146 this._engines.set('is', r),1147 this._engines.set('where', r),1148 this._engines.set('has', i),1149 this._engines.set('scope', s),1150 this._engines.set('light', l),1151 this._engines.set('visible', a),1152 this._engines.set('text', h),1153 this._engines.set('text-is', u),1154 this._engines.set('text-matches', p),1155 this._engines.set('has-text', f),1156 this._engines.set('right-of', k('right-of', w)),1157 this._engines.set('left-of', k('left-of', E)),1158 this._engines.set('above', k('above', S)),1159 this._engines.set('below', k('below', T)),1160 this._engines.set('near', k('near', b)),1161 this._engines.set('nth-match', M)1162 const t = [...this._engines.keys()]1163 t.sort()1164 const n = [...o.customCSSNames]1165 if ((n.sort(), t.join('|') !== n.join('|')))1166 throw new Error(1167 `Please keep customCSSNames in sync with evaluator engines: ${t.join(1168 '|'1169 )} vs ${n.join('|')}`1170 )1171 }1172 begin() {1173 ++this._retainCacheCounter1174 }1175 end() {1176 --this._retainCacheCounter,1177 this._retainCacheCounter ||1178 (this._cacheQueryCSS.clear(),1179 this._cacheMatches.clear(),1180 this._cacheQuery.clear(),1181 this._cacheMatchesSimple.clear(),1182 this._cacheMatchesParents.clear(),1183 this._cacheCallMatches.clear(),1184 this._cacheCallQuery.clear(),1185 this._cacheQuerySimple.clear(),1186 this._cacheText.clear())1187 }1188 _cached(e, t, n, o) {1189 e.has(t) || e.set(t, [])1190 const r = e.get(t),1191 i = r.find((e) => n.every((t, n) => e.rest[n] === t))1192 if (i) return i.result1193 const s = o()1194 return r.push({ rest: n, result: s }), s1195 }1196 _checkSelector(e) {1197 if (1198 'object' != typeof e ||1199 !e ||1200 !(Array.isArray(e) || ('simples' in e && e.simples.length))1201 )1202 throw new Error(`Malformed selector "${e}"`)1203 return e1204 }1205 matches(e, t, n) {1206 const o = this._checkSelector(t)1207 this.begin()1208 try {1209 return this._cached(1210 this._cacheMatches,1211 e,1212 [o, n.scope, n.pierceShadow],1213 () =>1214 Array.isArray(o)1215 ? this._matchesEngine(r, e, o, n)1216 : !!this._matchesSimple(1217 e,1218 o.simples[o.simples.length - 1].selector,1219 n1220 ) && this._matchesParents(e, o, o.simples.length - 2, n)1221 )1222 } finally {1223 this.end()1224 }1225 }1226 query(e, t) {1227 const n = this._checkSelector(t)1228 this.begin()1229 try {1230 return this._cached(1231 this._cacheQuery,1232 n,1233 [e.scope, e.pierceShadow],1234 () => {1235 if (Array.isArray(n)) return this._queryEngine(r, e, n)1236 const t = this._scoreMap1237 this._scoreMap = new Map()1238 let o = this._querySimple(1239 e,1240 n.simples[n.simples.length - 1].selector1241 )1242 return (1243 (o = o.filter((t) =>1244 this._matchesParents(t, n, n.simples.length - 2, e)1245 )),1246 this._scoreMap.size &&1247 o.sort((e, t) => {1248 const n = this._scoreMap.get(e),1249 o = this._scoreMap.get(t)1250 return n === o1251 ? 01252 : void 0 === n1253 ? 11254 : void 0 === o1255 ? -11256 : n - o1257 }),1258 (this._scoreMap = t),1259 o1260 )1261 }1262 )1263 } finally {1264 this.end()1265 }1266 }1267 _markScore(e, t) {1268 this._scoreMap && this._scoreMap.set(e, t)1269 }1270 _matchesSimple(e, t, n) {1271 return this._cached(1272 this._cacheMatchesSimple,1273 e,1274 [t, n.scope, n.pierceShadow],1275 () => {1276 if (1277 !t.functions.some(1278 (e) => 'scope' === e.name || 'is' === e.name1279 ) &&1280 e === n.scope1281 )1282 return !11283 if (t.css && !this._matchesCSS(e, t.css)) return !11284 for (const o of t.functions)1285 if (1286 !this._matchesEngine(this._getEngine(o.name), e, o.args, n)1287 )1288 return !11289 return !01290 }1291 )1292 }1293 _querySimple(e, t) {1294 return t.functions.length1295 ? this._cached(1296 this._cacheQuerySimple,1297 t,1298 [e.scope, e.pierceShadow],1299 () => {1300 let n = t.css1301 const o = t.functions1302 let r1303 '*' === n && o.length && (n = void 0)1304 let i = -11305 void 0 !== n1306 ? (r = this._queryCSS(e, n))1307 : ((i = o.findIndex(1308 (e) => void 0 !== this._getEngine(e.name).query1309 )),1310 -1 === i && (i = 0),1311 (r = this._queryEngine(1312 this._getEngine(o[i].name),1313 e,1314 o[i].args1315 )))1316 for (let t = 0; t < o.length; t++) {1317 if (t === i) continue1318 const n = this._getEngine(o[t].name)1319 void 0 !== n.matches &&1320 (r = r.filter((r) =>1321 this._matchesEngine(n, r, o[t].args, e)1322 ))1323 }1324 for (let t = 0; t < o.length; t++) {1325 if (t === i) continue1326 const n = this._getEngine(o[t].name)1327 void 0 === n.matches &&1328 (r = r.filter((r) =>1329 this._matchesEngine(n, r, o[t].args, e)1330 ))1331 }1332 return r1333 }1334 )1335 : this._queryCSS(e, t.css || '*')1336 }1337 _matchesParents(e, t, n, o) {1338 return (1339 n < 0 ||1340 this._cached(1341 this._cacheMatchesParents,1342 e,1343 [t, n, o.scope, o.pierceShadow],1344 () => {1345 const { selector: r, combinator: i } = t.simples[n]1346 if ('>' === i) {1347 const i = C(e, o)1348 return (1349 !(!i || !this._matchesSimple(i, r, o)) &&1350 this._matchesParents(i, t, n - 1, o)1351 )1352 }1353 if ('+' === i) {1354 const i = P(e, o)1355 return (1356 !(!i || !this._matchesSimple(i, r, o)) &&1357 this._matchesParents(i, t, n - 1, o)1358 )1359 }1360 if ('' === i) {1361 let i = C(e, o)1362 for (; i; ) {1363 if (this._matchesSimple(i, r, o)) {1364 if (this._matchesParents(i, t, n - 1, o)) return !01365 if ('' === t.simples[n - 1].combinator) break1366 }1367 i = C(i, o)1368 }1369 return !11370 }1371 if ('~' === i) {1372 let i = P(e, o)1373 for (; i; ) {1374 if (this._matchesSimple(i, r, o)) {1375 if (this._matchesParents(i, t, n - 1, o)) return !01376 if ('~' === t.simples[n - 1].combinator) break1377 }1378 i = P(i, o)1379 }1380 return !11381 }1382 if ('>=' === i) {1383 let i = e1384 for (; i; ) {1385 if (this._matchesSimple(i, r, o)) {1386 if (this._matchesParents(i, t, n - 1, o)) return !01387 if ('' === t.simples[n - 1].combinator) break1388 }1389 i = C(i, o)1390 }1391 return !11392 }1393 throw new Error(`Unsupported combinator "${i}"`)1394 }1395 )1396 )1397 }1398 _matchesEngine(e, t, n, o) {1399 if (e.matches) return this._callMatches(e, t, n, o)1400 if (e.query) return this._callQuery(e, n, o).includes(t)1401 throw new Error(1402 'Selector engine should implement "matches" or "query"'1403 )1404 }1405 _queryEngine(e, t, n) {1406 if (e.query) return this._callQuery(e, n, t)1407 if (e.matches)1408 return this._queryCSS(t, '*').filter((o) =>1409 this._callMatches(e, o, n, t)1410 )1411 throw new Error(1412 'Selector engine should implement "matches" or "query"'1413 )1414 }1415 _callMatches(e, t, n, o) {1416 return this._cached(1417 this._cacheCallMatches,1418 t,1419 [e, o.scope, o.pierceShadow, ...n],1420 () => e.matches(t, n, o, this)1421 )1422 }1423 _callQuery(e, t, n) {1424 return this._cached(1425 this._cacheCallQuery,1426 e,1427 [n.scope, n.pierceShadow, ...t],1428 () => e.query(n, t, this)1429 )1430 }1431 _matchesCSS(e, t) {1432 return e.matches(t)1433 }1434 _queryCSS(e, t) {1435 return this._cached(1436 this._cacheQueryCSS,1437 t,1438 [e.scope, e.pierceShadow],1439 () => {1440 let n = []1441 return (1442 (function o(r) {1443 if (1444 ((n = n.concat([...r.querySelectorAll(t)])),1445 e.pierceShadow)1446 ) {1447 r.shadowRoot && o(r.shadowRoot)1448 for (const e of r.querySelectorAll('*'))1449 e.shadowRoot && o(e.shadowRoot)1450 }1451 })(e.scope),1452 n1453 )1454 }1455 )1456 }1457 _getEngine(e) {1458 const t = this._engines.get(e)1459 if (!t) throw new Error(`Unknown selector engine "${e}"`)1460 return t1461 }1462 }1463 const r = {1464 matches(e, t, n, o) {1465 if (0 === t.length)1466 throw new Error('"is" engine expects non-empty selector list')1467 return t.some((t) => o.matches(e, t, n))1468 },1469 query(e, t, n) {1470 if (0 === t.length)1471 throw new Error('"is" engine expects non-empty selector list')1472 let o = []1473 for (const r of t) o = o.concat(n.query(e, r))1474 return 1 === t.length1475 ? o1476 : (function (e) {1477 const t = new Map(),1478 n = [],1479 o = []1480 function r(e) {1481 let o = t.get(e)1482 if (o) return o1483 const i = x(e)1484 return (1485 i ? r(i).children.push(e) : n.push(e),1486 (o = { children: [], taken: !1 }),1487 t.set(e, o),1488 o1489 )1490 }1491 return (1492 e.forEach((e) => (r(e).taken = !0)),1493 n.forEach(function e(n) {1494 const r = t.get(n)1495 if ((r.taken && o.push(n), r.children.length > 1)) {1496 const e = new Set(r.children)1497 r.children = []1498 let t = n.firstElementChild1499 for (; t && r.children.length < e.size; )1500 e.has(t) && r.children.push(t),1501 (t = t.nextElementSibling)1502 for (1503 t = n.shadowRoot1504 ? n.shadowRoot.firstElementChild1505 : null;1506 t && r.children.length < e.size;1507 )1508 e.has(t) && r.children.push(t),1509 (t = t.nextElementSibling)1510 }1511 r.children.forEach(e)1512 }),1513 o1514 )1515 })(o)1516 }1517 },1518 i = {1519 matches(e, t, n, o) {1520 if (0 === t.length)1521 throw new Error('"has" engine expects non-empty selector list')1522 return o.query({ ...n, scope: e }, t).length > 01523 }1524 },1525 s = {1526 matches(e, t, n, o) {1527 if (0 !== t.length)1528 throw new Error('"scope" engine expects no arguments')1529 return 9 === n.scope.nodeType1530 ? e === n.scope.documentElement1531 : e === n.scope1532 },1533 query(e, t, n) {1534 if (0 !== t.length)1535 throw new Error('"scope" engine expects no arguments')1536 if (9 === e.scope.nodeType) {1537 const t = e.scope.documentElement1538 return t ? [t] : []1539 }1540 return 1 === e.scope.nodeType ? [e.scope] : []1541 }1542 },1543 c = {1544 matches(e, t, n, o) {1545 if (0 === t.length)1546 throw new Error('"not" engine expects non-empty selector list')1547 return !o.matches(e, t, n)1548 }1549 },1550 l = {1551 query: (e, t, n) => n.query({ ...e, pierceShadow: !1 }, t),1552 matches: (e, t, n, o) => o.matches(e, t, { ...n, pierceShadow: !1 })1553 },1554 a = {1555 matches(e, t, n, o) {1556 if (t.length)1557 throw new Error('"visible" engine expects no arguments')1558 return A(e)1559 }1560 },1561 h = {1562 matches(e, t, n, o) {1563 if (1 !== t.length || 'string' != typeof t[0])1564 throw new Error('"text" engine expects a single string')1565 return 'self' === v(o, e, d(t[0]))1566 }1567 },1568 u = {1569 matches(e, t, n, o) {1570 if (1 !== t.length || 'string' != typeof t[0])1571 throw new Error('"text-is" engine expects a single string')1572 return 'none' !== v(o, e, m(t[0]))1573 }1574 },1575 p = {1576 matches(e, t, n, o) {1577 if (1578 0 === t.length ||1579 'string' != typeof t[0] ||1580 t.length > 2 ||1581 (2 === t.length && 'string' != typeof t[1])1582 )1583 throw new Error(1584 '"text-matches" engine expects a regexp body and optional regexp flags'1585 )1586 return 'self' === v(o, e, g(t[0], 2 === t.length ? t[1] : void 0))1587 }1588 },1589 f = {1590 matches(e, t, n, o) {1591 if (1 !== t.length || 'string' != typeof t[0])1592 throw new Error('"has-text" engine expects a single string')1593 return !y(e) && d(t[0])(_(o, e))1594 }1595 }1596 function d(e) {1597 return (1598 (e = e.trim().replace(/\s+/g, ' ').toLowerCase()),1599 (t) => t.full.trim().replace(/\s+/g, ' ').toLowerCase().includes(e)1600 )1601 }1602 function m(e) {1603 return (1604 (e = e.trim().replace(/\s+/g, ' ')),1605 (t) =>1606 (!e && !t.immediate.length) ||1607 t.immediate.some((t) => t.trim().replace(/\s+/g, ' ') === e)1608 )1609 }1610 function g(e, t) {1611 const n = new RegExp(e, t)1612 return (e) => n.test(e.full)1613 }1614 function y(e) {1615 return (1616 'SCRIPT' === e.nodeName ||1617 'STYLE' === e.nodeName ||1618 (document.head && document.head.contains(e))1619 )1620 }1621 function _(e, t) {1622 let n = e._cacheText.get(t)1623 if (void 0 === n) {1624 if (((n = { full: '', immediate: [] }), !y(t))) {1625 let o = ''1626 if (1627 t instanceof HTMLInputElement &&1628 ('submit' === t.type || 'button' === t.type)1629 )1630 n = { full: t.value, immediate: [t.value] }1631 else {1632 for (let r = t.firstChild; r; r = r.nextSibling)1633 r.nodeType === Node.TEXT_NODE1634 ? ((n.full += r.nodeValue || ''), (o += r.nodeValue || ''))1635 : (o && n.immediate.push(o),1636 (o = ''),1637 r.nodeType === Node.ELEMENT_NODE &&1638 (n.full += _(e, r).full))1639 o && n.immediate.push(o),1640 t.shadowRoot && (n.full += _(e, t.shadowRoot).full)1641 }1642 }1643 e._cacheText.set(t, n)1644 }1645 return n1646 }1647 function v(e, t, n) {1648 if (y(t)) return 'none'1649 if (!n(_(e, t))) return 'none'1650 for (let o = t.firstChild; o; o = o.nextSibling)1651 if (o.nodeType === Node.ELEMENT_NODE && n(_(e, o)))1652 return 'selfAndChildren'1653 return t.shadowRoot && n(_(e, t.shadowRoot))1654 ? 'selfAndChildren'1655 : 'self'1656 }1657 function w(e, t, n) {1658 const o = e.left - t.right1659 if (!(o < 0 || (void 0 !== n && o > n)))1660 return (1661 o + Math.max(t.bottom - e.bottom, 0) + Math.max(e.top - t.top, 0)1662 )1663 }1664 function E(e, t, n) {1665 const o = t.left - e.right1666 if (!(o < 0 || (void 0 !== n && o > n)))1667 return (1668 o + Math.max(t.bottom - e.bottom, 0) + Math.max(e.top - t.top, 0)1669 )1670 }1671 function S(e, t, n) {1672 const o = t.top - e.bottom1673 if (!(o < 0 || (void 0 !== n && o > n)))1674 return (1675 o + Math.max(e.left - t.left, 0) + Math.max(t.right - e.right, 0)1676 )1677 }1678 function T(e, t, n) {1679 const o = e.top - t.bottom1680 if (!(o < 0 || (void 0 !== n && o > n)))1681 return (1682 o + Math.max(e.left - t.left, 0) + Math.max(t.right - e.right, 0)1683 )1684 }1685 function b(e, t, n) {1686 const o = void 0 === n ? 50 : n1687 let r = 01688 return (1689 e.left - t.right >= 0 && (r += e.left - t.right),1690 t.left - e.right >= 0 && (r += t.left - e.right),1691 t.top - e.bottom >= 0 && (r += t.top - e.bottom),1692 e.top - t.bottom >= 0 && (r += e.top - t.bottom),1693 r > o ? void 0 : r1694 )1695 }1696 function k(e, t) {1697 return {1698 matches(n, o, r, i) {1699 const s =1700 o.length && 'number' == typeof o[o.length - 1]1701 ? o[o.length - 1]1702 : void 0,1703 c = void 0 === s ? o : o.slice(0, o.length - 1)1704 if (o.length < 1 + (void 0 === s ? 0 : 1))1705 throw new Error(1706 `"${e}" engine expects a selector list and optional maximum distance in pixels`1707 )1708 const l = n.getBoundingClientRect()1709 let a1710 for (const e of i.query(r, c)) {1711 if (e === n) continue1712 const o = t(l, e.getBoundingClientRect(), s)1713 void 0 !== o && (void 0 === a || o < a) && (a = o)1714 }1715 return void 0 !== a && (i._markScore(n, a), !0)1716 }1717 }1718 }1719 const M = {1720 query(e, t, n) {1721 let o = t[t.length - 1]1722 if (t.length < 2)1723 throw new Error(1724 '"nth-match" engine expects non-empty selector list and an index argument'1725 )1726 if ('number' != typeof o || o < 1)1727 throw new Error(1728 '"nth-match" engine expects a one-based index as the last argument'1729 )1730 const i = r.query(e, t.slice(0, t.length - 1), n)1731 return o--, o < i.length ? [i[o]] : []1732 }1733 }1734 function x(e) {1735 return e.parentElement1736 ? e.parentElement1737 : e.parentNode &&1738 e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&1739 e.parentNode.host1740 ? e.parentNode.host1741 : void 01742 }1743 function C(e, t) {1744 if (e !== t.scope)1745 return t.pierceShadow ? x(e) : e.parentElement || void 01746 }1747 function P(e, t) {1748 if (e !== t.scope) return e.previousElementSibling || void 01749 }1750 function A(e) {1751 if (!e.ownerDocument || !e.ownerDocument.defaultView) return !01752 const t = e.ownerDocument.defaultView.getComputedStyle(e)1753 if (!t || 'hidden' === t.visibility) return !11754 const n = e.getBoundingClientRect()1755 return n.width > 0 && n.height > 01756 }1757 },1758 854: (e, t, n) => {1759 Object.defineProperty(t, '__esModule', { value: !0 }),1760 (t.querySelector = function (e, t, n) {1761 try {1762 const o = e.parseSelector(t)1763 return { selector: t, elements: e.querySelectorAll(o, n) }1764 } catch (e) {1765 return { selector: t, elements: [] }1766 }1767 }),1768 (t.generateSelector = function (e, t) {1769 e._evaluator.begin()1770 try {1771 const n = (function (e, t) {1772 if (t.ownerDocument.documentElement === t)1773 return [{ engine: 'css', selector: 'html', score: 1 }]1774 const n = (a, u) => {1775 const d = u ? r : i1776 let m = d.get(a)1777 return (1778 void 0 === m &&1779 ((m = ((r, i) => {1780 const a = r === t1781 let u = i1782 ? (function (e, t, n) {1783 if ('SELECT' === t.nodeName) return []1784 const r = (0, o.elementText)(e._evaluator, t)1785 .full.trim()1786 .replace(/\s+/g, ' ')1787 .substring(0, 80)1788 if (!r) return []1789 const i = []1790 let s = r1791 if (1792 ((r.includes('"') ||1793 r.includes('>>') ||1794 '/' === r[0]) &&1795 (s = `/.*${(function (e) {1796 return e.replace(1797 /[.*+?^>${}()|[\]\\]/g,1798 '\\$&'1799 )1800 })(r)}.*/`),1801 i.push({1802 engine: 'text',1803 selector: s,1804 score: 101805 }),1806 n && s === r)1807 ) {1808 let e = t.nodeName.toLocaleLowerCase()1809 t.hasAttribute('role') &&1810 (e += `[role=${h(1811 t.getAttribute('role')1812 )}]`),1813 i.push({1814 engine: 'css',1815 selector: `${e}:has-text("${r}")`,1816 score: 301817 })1818 }1819 return i1820 })(e, r, r === t).map((e) => [e])1821 : []1822 r !== t && (u = s(u))1823 const d = (function (e, t) {1824 const n = []1825 for (const e of [1826 'data-testid',1827 'data-test-id',1828 'data-test'1829 ])1830 t.hasAttribute(e) &&1831 n.push({1832 engine: 'css',1833 selector: `[${e}=${h(t.getAttribute(e))}]`,1834 score: 11835 })1836 if ('INPUT' === t.nodeName) {1837 const e = t1838 e.placeholder &&1839 n.push({1840 engine: 'css',1841 selector: `[placeholder=${h(e.placeholder)}]`,1842 score: 101843 })1844 }1845 t.hasAttribute('aria-label') &&1846 n.push({1847 engine: 'css',1848 selector: `[aria-label=${h(1849 t.getAttribute('aria-label')1850 )}]`,1851 score: 101852 }),1853 t.getAttribute('alt') &&1854 ['APPLET', 'AREA', 'IMG', 'INPUT'].includes(1855 t.nodeName1856 ) &&1857 n.push({1858 engine: 'css',1859 selector: `${t.nodeName.toLowerCase()}[alt=${h(1860 t.getAttribute('alt')1861 )}]`,1862 score: 101863 }),1864 t.hasAttribute('role') &&1865 n.push({1866 engine: 'css',1867 selector: `${t.nodeName.toLocaleLowerCase()}[role=${h(1868 t.getAttribute('role')1869 )}]`,1870 score: 501871 }),1872 t.getAttribute('name') &&1873 [1874 'BUTTON',1875 'FORM',1876 'FIELDSET',1877 'IFRAME',1878 'INPUT',1879 'KEYGEN',1880 'OBJECT',1881 'OUTPUT',1882 'SELECT',1883 'TEXTAREA',1884 'MAP',1885 'META',1886 'PARAM'1887 ].includes(t.nodeName) &&1888 n.push({1889 engine: 'css',1890 selector: `${t.nodeName.toLowerCase()}[name=${h(1891 t.getAttribute('name')1892 )}]`,1893 score: 501894 }),1895 ['INPUT', 'TEXTAREA'].includes(t.nodeName) &&1896 'hidden' !== t.getAttribute('type') &&1897 t.getAttribute('type') &&1898 n.push({1899 engine: 'css',1900 selector: `${t.nodeName.toLowerCase()}[type=${h(1901 t.getAttribute('type')1902 )}]`,1903 score: 501904 }),1905 ['INPUT', 'TEXTAREA', 'SELECT'].includes(1906 t.nodeName1907 ) &&1908 n.push({1909 engine: 'css',1910 selector: t.nodeName.toLowerCase(),1911 score: 501912 })1913 const o = t.getAttribute('id')1914 return (1915 o &&1916 !(function (e) {1917 let t,1918 n = 01919 for (let o = 0; o < e.length; ++o) {1920 const r = e[o]1921 let i1922 '-' !== r &&1923 '_' !== r &&1924 ((i =1925 r >= 'a' && r <= 'z'1926 ? 'lower'1927 : r >= 'A' && r <= 'Z'1928 ? 'upper'1929 : r >= '0' && r <= '9'1930 ? 'digit'1931 : 'other'),1932 'lower' !== i || 'upper' !== t1933 ? (t && t !== i && ++n, (t = i))1934 : (t = i))1935 }1936 return n >= e.length / 41937 })(o) &&1938 n.push({1939 engine: 'css',1940 selector: l(o),1941 score: 1001942 }),1943 n.push({1944 engine: 'css',1945 selector: t.nodeName.toLocaleLowerCase(),1946 score: 2001947 }),1948 n1949 )1950 })(0, r).map((e) => [e])1951 let m = f(e, t.ownerDocument, r, [...u, ...d], a)1952 u = s(u)1953 const g = (t) => {1954 const o = i && !t.length,1955 s = [...t, ...d].filter((e) => !m || p(e) < p(m))1956 let l = s[0]1957 if (l)1958 for (let t = c(r); t; t = c(t)) {1959 const i = n(t, o)1960 if (!i) continue1961 if (m && p([...i, ...l]) >= p(m)) continue1962 if (((l = f(e, t, r, s, a)), !l)) return1963 const c = [...i, ...l]1964 ;(!m || p(c) < p(m)) && (m = c)1965 }1966 }1967 return g(u), r === t && u.length && g([]), m1968 })(a, u)),1969 d.set(a, m)),1970 m1971 )1972 }1973 return n(t, !0)1974 })(1975 e,1976 (t =1977 t.closest(1978 'button,select,input,[role=button],[role=checkbox],[role=radio]'1979 ) || t)1980 ),1981 d = u(n || [a(e, t)]),1982 m = e.parseSelector(d)1983 return {1984 selector: d,1985 elements: e.querySelectorAll(m, t.ownerDocument)1986 }1987 } finally {1988 r.clear(), i.clear(), e._evaluator.end()1989 }1990 })1991 var o = n(848)1992 const r = new Map(),1993 i = new Map()1994 function s(e) {1995 return e.filter((e) => '/' !== e[0].selector[0])1996 }1997 function c(e) {1998 return e.parentElement1999 ? e.parentElement2000 : e.parentNode &&2001 e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&2002 e.parentNode.host2003 ? e.parentNode.host2004 : null2005 }2006 function l(e) {2007 return /^[a-zA-Z][a-zA-Z0-9\-\_]+$/.test(e) ? '#' + e : `[id="${e}"]`2008 }2009 function a(e, t) {2010 const n = 1e7,2011 o = t.ownerDocument,2012 r = []2013 function i(n) {2014 const o = r.slice()2015 n && o.unshift(n)2016 const i = o.join(' '),2017 s = e.parseSelector(i)2018 return e.querySelector(s, t.ownerDocument, !1) === t ? i : void 02019 }2020 for (let e = t; e && e !== o; e = c(e)) {2021 const t = e.nodeName.toLowerCase()2022 let o = ''2023 if (e.id) {2024 const t = l(e.id),2025 r = i(t)2026 if (r) return { engine: 'css', selector: r, score: n }2027 o = t2028 }2029 const s = e.parentNode,2030 c = [...e.classList]2031 for (let e = 0; e < c.length; ++e) {2032 const t = '.' + c.slice(0, e + 1).join('.'),2033 r = i(t)2034 if (r) return { engine: 'css', selector: r, score: n }2035 !o && s && 1 === s.querySelectorAll(t).length && (o = t)2036 }2037 if (s) {2038 const r = [...s.children],2039 c =2040 0 ===2041 r.filter((e) => e.nodeName.toLowerCase() === t).indexOf(e)2042 ? t2043 : `${t}:nth-child(${1 + r.indexOf(e)})`,2044 l = i(c)2045 if (l) return { engine: 'css', selector: l, score: n }2046 o || (o = c)2047 } else o || (o = t)2048 r.unshift(o)2049 }2050 return { engine: 'css', selector: i(), score: n }2051 }2052 function h(e) {2053 return `"${e.replace(/"/g, '\\"').replace(/\n/g, '\\n')}"`2054 }2055 function u(e) {2056 const t = []2057 let n = ''2058 for (const { engine: o, selector: r } of e)2059 t.length &&2060 ('css' !== n || 'css' !== o || r.startsWith(':nth-match(')) &&2061 t.push('>>'),2062 (n = o),2063 'css' === o ? t.push(r) : t.push(`${o}=${r}`)2064 return t.join(' ')2065 }2066 function p(e) {2067 let t = 02068 for (let n = 0; n < e.length; n++) t += e[n].score * (e.length - n)2069 return t2070 }2071 function f(e, t, n, o, r) {2072 const i = o.map((e) => ({ tokens: e, score: p(e) }))2073 i.sort((e, t) => e.score - t.score)2074 let s = null2075 for (const { tokens: o } of i) {2076 const i = e.parseSelector(u(o)),2077 c = e.querySelectorAll(i, t),2078 l = c.indexOf(n)2079 if (0 === l) return o2080 if (!r || s || -1 === l || c.length > 5) continue2081 const a = o.map((e) =>2082 'text' !== e.engine2083 ? e2084 : e.selector.startsWith('/') && e.selector.endsWith('/')2085 ? {2086 engine: 'css',2087 selector: `:text-matches("${e.selector.substring(2088 1,2089 e.selector.length - 12090 )}")`,2091 score: e.score2092 }2093 : {2094 engine: 'css',2095 selector: `:text("${e.selector}")`,2096 score: e.score2097 }2098 )2099 s = [2100 {2101 engine: 'css',2102 selector: `:nth-match(${u(a)}, ${l + 1})`,2103 score: p(a) + 1e32104 }2105 ]2106 }2107 return s2108 }2109 }2110 },2111 t = {}2112 function n(o) {2113 var r = t[o]2114 if (void 0 !== r) return r.exports2115 var i = (t[o] = { exports: {} })2116 return e[o](i, i.exports, n), i.exports2117 }2118 var o = {}2119 ;(() => {2120 var e = o2121 e.default = void 02122 var t = n(854)2123 function r(e) {2124 return (2125 (e.altKey ? 1 : 0) |2126 (e.ctrlKey ? 2 : 0) |2127 (e.metaKey ? 4 : 0) |2128 (e.shiftKey ? 8 : 0)2129 )2130 }2131 function i(e) {2132 switch (e.which) {2133 case 1:2134 return 'left'2135 case 2:2136 return 'middle'2137 case 3:2138 return 'right'2139 }2140 return 'left'2141 }2142 function s(e) {2143 if ('CANVAS' === e.target.nodeName) return { x: e.offsetX, y: e.offsetY }2144 }2145 function c(e) {2146 e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation()2147 }2148 function l(e) {2149 if (!e || 'INPUT' !== e.nodeName) return null2150 const t = e2151 return 'checkbox' === t.type ? t : null2152 }2153 function a(e, t, n, o) {2154 return (2155 e.addEventListener(t, n, o),2156 () => {2157 e.removeEventListener(t, n, o)2158 }2159 )2160 }2161 var h = class {2162 constructor(e, t) {2163 ;(this._injectedScript = void 0),2164 (this._performingAction = !1),2165 (this._outerGlassPaneElement = void 0),2166 (this._glassPaneShadow = void 0),2167 (this._innerGlassPaneElement = void 0),2168 (this._highlightElements = []),2169 (this._tooltipElement = void 0),2170 (this._listeners = []),2171 (this._hoveredModel = null),2172 (this._hoveredElement = null),2173 (this._activeModel = null),2174 (this._expectProgrammaticKeyUp = !1),2175 (this._pollRecorderModeTimer = void 0),2176 (this._mode = 'none'),2177 (this._actionPointElement = void 0),2178 (this._actionPoint = void 0),2179 (this._actionSelector = void 0),2180 (this._params = void 0),2181 (this._params = t),2182 (this._injectedScript = e),2183 (this._outerGlassPaneElement = document.createElement('x-pw-glass')),2184 (this._outerGlassPaneElement.style.position = 'fixed'),2185 (this._outerGlassPaneElement.style.top = '0'),2186 (this._outerGlassPaneElement.style.right = '0'),2187 (this._outerGlassPaneElement.style.bottom = '0'),2188 (this._outerGlassPaneElement.style.left = '0'),2189 (this._outerGlassPaneElement.style.zIndex = '2147483647'),2190 (this._outerGlassPaneElement.style.pointerEvents = 'none'),2191 (this._outerGlassPaneElement.style.display = 'flex'),2192 (this._tooltipElement = document.createElement('x-pw-tooltip')),2193 (this._actionPointElement =2194 document.createElement('x-pw-action-point')),2195 this._actionPointElement.setAttribute('hidden', 'true'),2196 (this._innerGlassPaneElement =2197 document.createElement('x-pw-glass-inner')),2198 (this._innerGlassPaneElement.style.flex = 'auto'),2199 this._innerGlassPaneElement.appendChild(this._tooltipElement),2200 (this._glassPaneShadow = this._outerGlassPaneElement.attachShadow({2201 mode: this._params.isUnderTest ? 'open' : 'closed'2202 })),2203 this._glassPaneShadow.appendChild(this._innerGlassPaneElement),2204 this._glassPaneShadow.appendChild(this._actionPointElement)2205 const n = document.createElement('style')2206 ;(n.textContent =2207 "\n x-pw-tooltip {\n align-items: center;\n backdrop-filter: blur(5px);\n background-color: rgba(0, 0, 0, 0.7);\n border-radius: 2px;\n box-shadow: rgba(0, 0, 0, 0.1) 0px 3.6px 3.7px,\n rgba(0, 0, 0, 0.15) 0px 12.1px 12.3px,\n rgba(0, 0, 0, 0.1) 0px -2px 4px,\n rgba(0, 0, 0, 0.15) 0px -12.1px 24px,\n rgba(0, 0, 0, 0.25) 0px 54px 55px;\n color: rgb(204, 204, 204);\n display: none;\n font-family: 'Dank Mono', 'Operator Mono', Inconsolata, 'Fira Mono',\n 'SF Mono', Monaco, 'Droid Sans Mono', 'Source Code Pro', monospace;\n font-size: 12.8px;\n font-weight: normal;\n left: 0;\n line-height: 1.5;\n max-width: 600px;\n padding: 3.2px 5.12px 3.2px;\n position: absolute;\n top: 0;\n }\n x-pw-action-point {\n position: absolute;\n width: 20px;\n height: 20px;\n background: red;\n border-radius: 10px;\n pointer-events: none;\n margin: -10px 0 0 -10px;\n z-index: 2;\n }\n *[hidden] {\n display: none !important;\n }\n "),2208 this._glassPaneShadow.appendChild(n),2209 this._refreshListenersIfNeeded(),2210 e.onGlobalListenersRemoved.add(() =>2211 this._refreshListenersIfNeeded()2212 ),2213 (globalThis._playwrightRefreshOverlay = () => {2214 this._pollRecorderMode().catch((e) => console.log(e))2215 }),2216 globalThis._playwrightRefreshOverlay(),2217 t.isUnderTest && console.error('Recorder script ready for test')2218 }2219 _refreshListenersIfNeeded() {2220 ;(this._outerGlassPaneElement.parentElement !==2221 document.documentElement ||2222 this._outerGlassPaneElement.nextElementSibling) &&2223 ((function (e) {2224 for (const t of e) t()2225 e.splice(0, e.length)2226 })(this._listeners),2227 (this._listeners = [2228 a(document, 'click', (e) => this._onClick(e), !0),2229 a(document, 'auxclick', (e) => this._onClick(e), !0),2230 a(document, 'input', (e) => this._onInput(e), !0),2231 a(document, 'keydown', (e) => this._onKeyDown(e), !0),2232 a(document, 'keyup', (e) => this._onKeyUp(e), !0),2233 a(document, 'mousedown', (e) => this._onMouseDown(e), !0),2234 a(document, 'mouseup', (e) => this._onMouseUp(e), !0),2235 a(document, 'mousemove', (e) => this._onMouseMove(e), !0),2236 a(document, 'mouseleave', (e) => this._onMouseLeave(e), !0),2237 a(document, 'focus', () => this._onFocus(), !0),2238 a(2239 document,2240 'scroll',2241 () => {2242 ;(this._hoveredModel = null),2243 (this._actionPointElement.hidden = !0),2244 this._updateHighlight()2245 },2246 !02247 )2248 ]),2249 document.documentElement.appendChild(this._outerGlassPaneElement))2250 }2251 async _pollRecorderMode() {2252 var e2253 this._pollRecorderModeTimer && clearTimeout(this._pollRecorderModeTimer)2254 const n = await globalThis._playwrightRecorderState().catch((e) => null)2255 if (!n)2256 return void (this._pollRecorderModeTimer = setTimeout(2257 () => this._pollRecorderMode(),2258 1e32259 ))2260 const { mode: o, actionPoint: r, actionSelector: i } = n2261 o !== this._mode && ((this._mode = o), this._clearHighlight()),2262 (r &&2263 this._actionPoint &&2264 r.x === this._actionPoint.x &&2265 r.y === this._actionPoint.y) ||2266 ((r || this._actionPoint) &&2267 (r2268 ? ((this._actionPointElement.style.top = r.y + 'px'),2269 (this._actionPointElement.style.left = r.x + 'px'),2270 (this._actionPointElement.hidden = !1))2271 : (this._actionPointElement.hidden = !0),2272 (this._actionPoint = r))),2273 !this._actionSelector ||2274 (null !== (e = this._hoveredModel) &&2275 void 0 !== e &&2276 e.elements.length) ||2277 (this._actionSelector = void 0),2278 i !== this._actionSelector &&2279 ((this._hoveredModel = i2280 ? (0, t.querySelector)(this._injectedScript, i, document)2281 : null),2282 this._updateHighlight(),2283 (this._actionSelector = i)),2284 (this._pollRecorderModeTimer = setTimeout(2285 () => this._pollRecorderMode(),2286 1e32287 ))2288 }2289 _clearHighlight() {2290 ;(this._hoveredModel = null),2291 (this._activeModel = null),2292 this._updateHighlight()2293 }2294 _actionInProgress(e) {2295 return !!this._performingAction || (c(e), !1)2296 }2297 _consumedDueToNoModel(e, t) {2298 return !t && (c(e), !0)2299 }2300 _consumedDueWrongTarget(e) {2301 return !(2302 (this._activeModel &&2303 this._activeModel.elements[0] === this._deepEventTarget(e)) ||2304 (c(e), 0)2305 )2306 }2307 _onClick(e) {2308 if (2309 ('inspecting' === this._mode &&2310 globalThis._playwrightRecorderSetSelector(2311 this._hoveredModel ? this._hoveredModel.selector : ''2312 ),2313 this._shouldIgnoreMouseEvent(e))2314 )2315 return2316 if (this._actionInProgress(e)) return2317 if (this._consumedDueToNoModel(e, this._hoveredModel)) return2318 const t = l(this._deepEventTarget(e))2319 t2320 ? this._performAction({2321 name: t.checked ? 'check' : 'uncheck',2322 selector: this._hoveredModel.selector,2323 signals: []2324 })2325 : this._performAction({2326 name: 'click',2327 selector: this._hoveredModel.selector,2328 position: s(e),2329 signals: [],2330 button: i(e),2331 modifiers: r(e),2332 clickCount: e.detail2333 })2334 }2335 _shouldIgnoreMouseEvent(e) {2336 const t = this._deepEventTarget(e)2337 if ('none' === this._mode) return !02338 if ('inspecting' === this._mode) return c(e), !02339 const n = t.nodeName2340 return 'SELECT' === n || !('INPUT' !== n || !['date'].includes(t.type))2341 }2342 _onMouseDown(e) {2343 this._shouldIgnoreMouseEvent(e) ||2344 (this._performingAction || c(e),2345 (this._activeModel = this._hoveredModel))2346 }2347 _onMouseUp(e) {2348 this._shouldIgnoreMouseEvent(e) || this._performingAction || c(e)2349 }2350 _onMouseMove(e) {2351 if ('none' === this._mode) return2352 const t = this._deepEventTarget(e)2353 this._hoveredElement !== t &&2354 ((this._hoveredElement = t), this._updateModelForHoveredElement())2355 }2356 _onMouseLeave(e) {2357 this._deepEventTarget(e).nodeType === Node.DOCUMENT_NODE &&2358 ((this._hoveredElement = null), this._updateModelForHoveredElement())2359 }2360 _onFocus() {2361 const e = this._deepActiveElement(document),2362 n = e ? (0, t.generateSelector)(this._injectedScript, e) : null2363 ;(this._activeModel = n && n.selector ? n : null),2364 this._params.isUnderTest &&2365 console.error(2366 'Highlight updated for test: ' + (n ? n.selector : null)2367 )2368 }2369 _updateModelForHoveredElement() {2370 if (!this._hoveredElement)2371 return (this._hoveredModel = null), void this._updateHighlight()2372 const e = this._hoveredElement,2373 { selector: n, elements: o } = (0, t.generateSelector)(2374 this._injectedScript,2375 e2376 )2377 ;(this._hoveredModel && this._hoveredModel.selector === n) ||2378 this._hoveredElement !== e ||2379 ((this._hoveredModel = n ? { selector: n, elements: o } : null),2380 this._updateHighlight(),2381 this._params.isUnderTest &&2382 console.error('Highlight updated for test: ' + n))2383 }2384 _updateHighlight() {2385 const e = this._hoveredModel ? this._hoveredModel.elements : []2386 ;(this._tooltipElement.textContent = this._hoveredModel2387 ? this._hoveredModel.selector2388 : ''),2389 (this._tooltipElement.style.top = '0'),2390 (this._tooltipElement.style.left = '0'),2391 (this._tooltipElement.style.display = 'flex')2392 const t = e.map((e) => e.getBoundingClientRect()),2393 n = this._tooltipElement.offsetWidth,2394 o = this._tooltipElement.offsetHeight,2395 r = this._innerGlassPaneElement.offsetWidth,2396 i = this._innerGlassPaneElement.offsetHeight2397 if (t.length) {2398 const e = t[0]2399 let s = e.left2400 s + n > r - 5 && (s = r - n - 5)2401 let c = e.bottom + 52402 c + o > i - 5 && (c = e.top > o + 5 ? e.top - o - 5 : i - 5 - o),2403 (this._tooltipElement.style.top = c + 'px'),2404 (this._tooltipElement.style.left = s + 'px')2405 } else this._tooltipElement.style.display = 'none'2406 const s = this._highlightElements2407 this._highlightElements = []2408 for (const e of t) {2409 const t = s.length ? s.shift() : this._createHighlightElement(),2410 n = 'recording' === this._mode ? '#dc6f6f7f' : '#6fa8dc7f'2411 ;(t.style.backgroundColor = this._highlightElements.length2412 ? '#f6b26b7f'2413 : n),2414 (t.style.left = e.x + 'px'),2415 (t.style.top = e.y + 'px'),2416 (t.style.width = e.width + 'px'),2417 (t.style.height = e.height + 'px'),2418 (t.style.display = 'block'),2419 this._highlightElements.push(t)2420 }2421 for (const e of s)2422 (e.style.display = 'none'), this._highlightElements.push(e)2423 }2424 _createHighlightElement() {2425 const e = document.createElement('x-pw-highlight')2426 return (2427 (e.style.position = 'absolute'),2428 (e.style.top = '0'),2429 (e.style.left = '0'),2430 (e.style.width = '0'),2431 (e.style.height = '0'),2432 (e.style.boxSizing = 'border-box'),2433 this._glassPaneShadow.appendChild(e),2434 e2435 )2436 }2437 _onInput(e) {2438 if ('recording' !== this._mode) return !02439 const t = this._deepEventTarget(e)2440 if (['INPUT', 'TEXTAREA'].includes(t.nodeName)) {2441 const n = t,2442 o = (n.type || '').toLowerCase()2443 if ('checkbox' === o) return2444 if ('file' === o)2445 return void globalThis._playwrightRecorderRecordAction({2446 name: 'setInputFiles',2447 selector: this._activeModel.selector,2448 signals: [],2449 files: [...(n.files || [])].map((e) => e.name)2450 })2451 if (this._consumedDueWrongTarget(e)) return2452 globalThis._playwrightRecorderRecordAction({2453 name: 'fill',2454 selector: this._activeModel.selector,2455 signals: [],2456 text: n.value2457 })2458 }2459 if ('SELECT' === t.nodeName) {2460 const n = t2461 if (this._actionInProgress(e)) return2462 this._performAction({2463 name: 'select',2464 selector: this._hoveredModel.selector,2465 options: [...n.selectedOptions].map((e) => e.value),2466 signals: []2467 })2468 }2469 }2470 _shouldGenerateKeyPressFor(e) {2471 if (['Backspace', 'Delete', 'AltGraph'].includes(e.key)) return !12472 if ('@' === e.key && 'KeyL' === e.code) return !12473 if (navigator.platform.includes('Mac')) {2474 if ('v' === e.key && e.metaKey) return !12475 } else {2476 if ('v' === e.key && e.ctrlKey) return !12477 if ('Insert' === e.key && e.shiftKey) return !12478 }2479 if (['Shift', 'Control', 'Meta', 'Alt'].includes(e.key)) return !12480 const t = e.ctrlKey || e.altKey || e.metaKey2481 return !(1 === e.key.length && !t && !l(this._deepEventTarget(e)))2482 }2483 _onKeyDown(e) {2484 if ('inspecting' !== this._mode) {2485 if ('recording' !== this._mode) return !02486 if (this._shouldGenerateKeyPressFor(e))2487 if (this._actionInProgress(e)) this._expectProgrammaticKeyUp = !02488 else if (!this._consumedDueWrongTarget(e)) {2489 if (' ' === e.key) {2490 const t = l(this._deepEventTarget(e))2491 if (t)2492 return void this._performAction({2493 name: t.checked ? 'uncheck' : 'check',2494 selector: this._activeModel.selector,2495 signals: []2496 })2497 }2498 this._performAction({2499 name: 'press',2500 selector: this._activeModel.selector,2501 signals: [],2502 key: e.key,2503 modifiers: r(e)2504 })2505 }2506 } else c(e)2507 }2508 _onKeyUp(e) {2509 this._shouldGenerateKeyPressFor(e) &&2510 (this._expectProgrammaticKeyUp2511 ? (this._expectProgrammaticKeyUp = !1)2512 : c(e))2513 }2514 async _performAction(e) {2515 ;(this._performingAction = !0),2516 await globalThis._playwrightRecorderPerformAction(e).catch(() => {}),2517 (this._performingAction = !1),2518 this._updateModelForHoveredElement(),2519 this._onFocus(),2520 this._params.isUnderTest &&2521 console.error(2522 'Action performed for test: ' +2523 JSON.stringify({2524 hovered: this._hoveredModel2525 ? this._hoveredModel.selector2526 : null,2527 active: this._activeModel ? this._activeModel.selector : null2528 })2529 )2530 }2531 _deepEventTarget(e) {2532 return e.composedPath()[0]2533 }2534 _deepActiveElement(e) {2535 let t = e.activeElement2536 for (; t && t.shadowRoot && t.shadowRoot.activeElement; )2537 t = t.shadowRoot.activeElement2538 return t2539 }2540 }2541 e.default = h2542 })(),2543 (pwExport = o.default)...
consoleApiSource.js
Source:consoleApiSource.js
1var pwExport2;(() => {3 'use strict'4 var e = {5 317: (e, t, r) => {6 Object.defineProperty(t, '__esModule', { value: !0 }),7 (t.parseCSS = function (e, t) {8 let r9 try {10 ;(r = n.tokenize(e)),11 r[r.length - 1] instanceof n.EOFToken ||12 r.push(new n.EOFToken())13 } catch (t) {14 const r = t.message + ` while parsing selector "${e}"`,15 n = (t.stack || '').indexOf(t.message)16 throw (17 (-1 !== n &&18 (t.stack =19 t.stack.substring(0, n) +20 r +21 t.stack.substring(n + t.message.length)),22 (t.message = r),23 t)24 )25 }26 const o = r.find(27 (e) =>28 e instanceof n.AtKeywordToken ||29 e instanceof n.BadStringToken ||30 e instanceof n.BadURLToken ||31 e instanceof n.ColumnToken ||32 e instanceof n.CDOToken ||33 e instanceof n.CDCToken ||34 e instanceof n.SemicolonToken ||35 e instanceof n.OpenCurlyToken ||36 e instanceof n.CloseCurlyToken ||37 e instanceof n.URLToken ||38 e instanceof n.PercentageToken39 )40 if (o)41 throw new Error(42 `Unsupported token "${o.toSource()}" while parsing selector "${e}"`43 )44 let i = 045 const s = new Set()46 function c() {47 return new Error(48 `Unexpected token "${r[49 i50 ].toSource()}" while parsing selector "${e}"`51 )52 }53 function a() {54 for (; r[i] instanceof n.WhitespaceToken; ) i++55 }56 function u(e = i) {57 return r[e] instanceof n.IdentToken58 }59 function p(e = i) {60 return r[e] instanceof n.CommaToken61 }62 function l(e = i) {63 return r[e] instanceof n.CloseParenToken64 }65 function h(e = i) {66 return r[e] instanceof n.DelimToken && '*' === r[e].value67 }68 function f(e = i) {69 return r[e] instanceof n.EOFToken70 }71 function y(e = i) {72 return (73 r[e] instanceof n.DelimToken &&74 ['>', '+', '~'].includes(r[e].value)75 )76 }77 function g(e = i) {78 return (79 p(e) ||80 l(e) ||81 f(e) ||82 y(e) ||83 r[e] instanceof n.WhitespaceToken84 )85 }86 function m() {87 const e = [d()]88 for (; a(), p(); ) i++, e.push(d())89 return e90 }91 function d() {92 return (93 a(),94 (function (e = i) {95 return r[e] instanceof n.NumberToken96 })() ||97 (function (e = i) {98 return r[e] instanceof n.StringToken99 })()100 ? r[i++].value101 : (function () {102 const e = { simples: [] }103 for (104 a(),105 y()106 ? e.simples.push({107 selector: {108 functions: [{ name: 'scope', args: [] }]109 },110 combinator: ''111 })112 : e.simples.push({ selector: w(), combinator: '' });113 ;114 ) {115 if ((a(), y()))116 (e.simples[e.simples.length - 1].combinator =117 r[i++].value),118 a()119 else if (g()) break120 e.simples.push({ combinator: '', selector: w() })121 }122 return e123 })()124 )125 }126 function w() {127 let e = ''128 const o = []129 for (; !g(); )130 if (u() || h()) e += r[i++].toSource()131 else if (r[i] instanceof n.HashToken) e += r[i++].toSource()132 else if (r[i] instanceof n.DelimToken && '.' === r[i].value) {133 if ((i++, !u())) throw c()134 e += '.' + r[i++].toSource()135 } else if (r[i] instanceof n.ColonToken)136 if ((i++, u()))137 if (t.has(r[i].value.toLowerCase())) {138 const e = r[i++].value.toLowerCase()139 o.push({ name: e, args: [] }), s.add(e)140 } else e += ':' + r[i++].toSource()141 else {142 if (!(r[i] instanceof n.FunctionToken)) throw c()143 {144 const n = r[i++].value.toLowerCase()145 if (146 (t.has(n)147 ? (o.push({ name: n, args: m() }), s.add(n))148 : (e += `:${n}(${S()})`),149 a(),150 !l())151 )152 throw c()153 i++154 }155 }156 else {157 if (!(r[i] instanceof n.OpenSquareToken)) throw c()158 for (159 e += '[', i++;160 !(r[i] instanceof n.CloseSquareToken || f());161 )162 e += r[i++].toSource()163 if (!(r[i] instanceof n.CloseSquareToken)) throw c()164 ;(e += ']'), i++165 }166 if (!e && !o.length) throw c()167 return { css: e || void 0, functions: o }168 }169 function S() {170 let e = ''171 for (; !l() && !f(); ) e += r[i++].toSource()172 return e173 }174 const v = m()175 if (!f()) throw new Error(`Error while parsing selector "${e}"`)176 if (v.some((e) => 'object' != typeof e || !('simples' in e)))177 throw new Error(`Error while parsing selector "${e}"`)178 return { selector: v, names: Array.from(s) }179 }),180 (t.serializeSelector = function e(t) {181 return t182 .map((t) =>183 'string' == typeof t184 ? `"${t}"`185 : 'number' == typeof t186 ? String(t)187 : t.simples188 .map(({ selector: t, combinator: r }) => {189 let n = t.css || ''190 return (191 (n += t.functions192 .map((t) => `:${t.name}(${e(t.args)})`)193 .join('')),194 r && (n += ' ' + r),195 n196 )197 })198 .join(' ')199 )200 .join(', ')201 })202 var n = (function (e, t) {203 if (e && e.__esModule) return e204 if (null === e || ('object' != typeof e && 'function' != typeof e))205 return { default: e }206 var r = o(t)207 if (r && r.has(e)) return r.get(e)208 var n = {},209 i = Object.defineProperty && Object.getOwnPropertyDescriptor210 for (var s in e)211 if ('default' !== s && Object.prototype.hasOwnProperty.call(e, s)) {212 var c = i ? Object.getOwnPropertyDescriptor(e, s) : null213 c && (c.get || c.set)214 ? Object.defineProperty(n, s, c)215 : (n[s] = e[s])216 }217 return (n.default = e), r && r.set(e, n), n218 })(r(503))219 function o(e) {220 if ('function' != typeof WeakMap) return null221 var t = new WeakMap(),222 r = new WeakMap()223 return (o = function (e) {224 return e ? r : t225 })(e)226 }227 },228 503: (e, t) => {229 var r, n230 ;(r = function (e) {231 var t = function (e, t, r) {232 return e >= t && e <= r233 }234 function r(e) {235 return t(e, 48, 57)236 }237 function n(e) {238 return r(e) || t(e, 65, 70) || t(e, 97, 102)239 }240 function o(e) {241 return (242 (function (e) {243 return t(e, 65, 90)244 })(e) ||245 (function (e) {246 return t(e, 97, 122)247 })(e)248 )249 }250 function i(e) {251 return (252 o(e) ||253 (function (e) {254 return e >= 128255 })(e) ||256 95 == e257 )258 }259 function s(e) {260 return i(e) || r(e) || 45 == e261 }262 function c(e) {263 return t(e, 0, 8) || 11 == e || t(e, 14, 31) || 127 == e264 }265 function a(e) {266 return 10 == e267 }268 function u(e) {269 return a(e) || 9 == e || 32 == e270 }271 var p = function (e) {272 this.message = e273 }274 function l(e) {275 if (e <= 65535) return String.fromCharCode(e)276 e -= Math.pow(2, 16)277 var t = Math.floor(e / Math.pow(2, 10)) + 55296,278 r = (e % Math.pow(2, 10)) + 56320279 return String.fromCharCode(t) + String.fromCharCode(r)280 }281 function h() {282 throw 'Abstract Base Class'283 }284 function f() {285 return this286 }287 function y() {288 return this289 }290 function g() {291 return this292 }293 function m() {294 return this295 }296 function d() {297 return this298 }299 function w() {300 return this301 }302 function S() {303 return this304 }305 function v() {306 return this307 }308 function _() {309 throw 'Abstract Base Class'310 }311 function T() {312 return (this.value = '{'), (this.mirror = '}'), this313 }314 function b() {315 return (this.value = '}'), (this.mirror = '{'), this316 }317 function E() {318 return (this.value = '['), (this.mirror = ']'), this319 }320 function k() {321 return (this.value = ']'), (this.mirror = '['), this322 }323 function C() {324 return (this.value = '('), (this.mirror = ')'), this325 }326 function O() {327 return (this.value = ')'), (this.mirror = '('), this328 }329 function M() {330 return this331 }332 function x() {333 return this334 }335 function N() {336 return this337 }338 function A() {339 return this340 }341 function j() {342 return this343 }344 function $() {345 return this346 }347 function q() {348 return this349 }350 function P(e) {351 return (this.value = l(e)), this352 }353 function L() {354 throw 'Abstract Base Class'355 }356 function R(e) {357 this.value = e358 }359 function D(e) {360 ;(this.value = e), (this.mirror = ')')361 }362 function I(e) {363 this.value = e364 }365 function U(e) {366 ;(this.value = e), (this.type = 'unrestricted')367 }368 function B(e) {369 this.value = e370 }371 function Q(e) {372 this.value = e373 }374 function F() {375 ;(this.value = null), (this.type = 'integer'), (this.repr = '')376 }377 function J() {378 ;(this.value = null), (this.repr = '')379 }380 function W() {381 ;(this.value = null),382 (this.type = 'integer'),383 (this.repr = ''),384 (this.unit = '')385 }386 function z(e) {387 for (388 var r = '', n = (e = '' + e).charCodeAt(0), o = 0;389 o < e.length;390 o++391 ) {392 var i = e.charCodeAt(o)393 if (0 == i)394 throw new p('Invalid character: the input contains U+0000.')395 t(i, 1, 31) ||396 127 == i ||397 (0 == o && t(i, 48, 57)) ||398 (1 == o && t(i, 48, 57) && 45 == n)399 ? (r += '\\' + i.toString(16) + ' ')400 : i >= 128 ||401 45 == i ||402 95 == i ||403 t(i, 48, 57) ||404 t(i, 65, 90) ||405 t(i, 97, 122)406 ? (r += e[o])407 : (r += '\\' + e[o])408 }409 return r410 }411 function G(e) {412 e = '' + e413 for (var r = '', n = 0; n < e.length; n++) {414 var o = e.charCodeAt(n)415 if (0 == o)416 throw new p('Invalid character: the input contains U+0000.')417 t(o, 1, 31) || 127 == o418 ? (r += '\\' + o.toString(16) + ' ')419 : (r += 34 == o || 92 == o ? '\\' + e[n] : e[n])420 }421 return r422 }423 ;((p.prototype = new Error()).name = 'InvalidCharacterError'),424 (h.prototype.toJSON = function () {425 return { token: this.tokenType }426 }),427 (h.prototype.toString = function () {428 return this.tokenType429 }),430 (h.prototype.toSource = function () {431 return '' + this432 }),433 (f.prototype = Object.create(h.prototype)),434 (f.prototype.tokenType = 'BADSTRING'),435 (y.prototype = Object.create(h.prototype)),436 (y.prototype.tokenType = 'BADURL'),437 (g.prototype = Object.create(h.prototype)),438 (g.prototype.tokenType = 'WHITESPACE'),439 (g.prototype.toString = function () {440 return 'WS'441 }),442 (g.prototype.toSource = function () {443 return ' '444 }),445 (m.prototype = Object.create(h.prototype)),446 (m.prototype.tokenType = 'CDO'),447 (m.prototype.toSource = function () {448 return '\x3c!--'449 }),450 (d.prototype = Object.create(h.prototype)),451 (d.prototype.tokenType = 'CDC'),452 (d.prototype.toSource = function () {453 return '--\x3e'454 }),455 (w.prototype = Object.create(h.prototype)),456 (w.prototype.tokenType = ':'),457 (S.prototype = Object.create(h.prototype)),458 (S.prototype.tokenType = ';'),459 (v.prototype = Object.create(h.prototype)),460 (v.prototype.tokenType = ','),461 (_.prototype = Object.create(h.prototype)),462 (T.prototype = Object.create(_.prototype)),463 (T.prototype.tokenType = '{'),464 (b.prototype = Object.create(_.prototype)),465 (b.prototype.tokenType = '}'),466 (E.prototype = Object.create(_.prototype)),467 (E.prototype.tokenType = '['),468 (k.prototype = Object.create(_.prototype)),469 (k.prototype.tokenType = ']'),470 (C.prototype = Object.create(_.prototype)),471 (C.prototype.tokenType = '('),472 (O.prototype = Object.create(_.prototype)),473 (O.prototype.tokenType = ')'),474 (M.prototype = Object.create(h.prototype)),475 (M.prototype.tokenType = '~='),476 (x.prototype = Object.create(h.prototype)),477 (x.prototype.tokenType = '|='),478 (N.prototype = Object.create(h.prototype)),479 (N.prototype.tokenType = '^='),480 (A.prototype = Object.create(h.prototype)),481 (A.prototype.tokenType = '$='),482 (j.prototype = Object.create(h.prototype)),483 (j.prototype.tokenType = '*='),484 ($.prototype = Object.create(h.prototype)),485 ($.prototype.tokenType = '||'),486 (q.prototype = Object.create(h.prototype)),487 (q.prototype.tokenType = 'EOF'),488 (q.prototype.toSource = function () {489 return ''490 }),491 (P.prototype = Object.create(h.prototype)),492 (P.prototype.tokenType = 'DELIM'),493 (P.prototype.toString = function () {494 return 'DELIM(' + this.value + ')'495 }),496 (P.prototype.toJSON = function () {497 var e =498 this.constructor.prototype.constructor.prototype.toJSON.call(499 this500 )501 return (e.value = this.value), e502 }),503 (P.prototype.toSource = function () {504 return '\\' == this.value ? '\\\n' : this.value505 }),506 (L.prototype = Object.create(h.prototype)),507 (L.prototype.ASCIIMatch = function (e) {508 return this.value.toLowerCase() == e.toLowerCase()509 }),510 (L.prototype.toJSON = function () {511 var e =512 this.constructor.prototype.constructor.prototype.toJSON.call(513 this514 )515 return (e.value = this.value), e516 }),517 (R.prototype = Object.create(L.prototype)),518 (R.prototype.tokenType = 'IDENT'),519 (R.prototype.toString = function () {520 return 'IDENT(' + this.value + ')'521 }),522 (R.prototype.toSource = function () {523 return z(this.value)524 }),525 (D.prototype = Object.create(L.prototype)),526 (D.prototype.tokenType = 'FUNCTION'),527 (D.prototype.toString = function () {528 return 'FUNCTION(' + this.value + ')'529 }),530 (D.prototype.toSource = function () {531 return z(this.value) + '('532 }),533 (I.prototype = Object.create(L.prototype)),534 (I.prototype.tokenType = 'AT-KEYWORD'),535 (I.prototype.toString = function () {536 return 'AT(' + this.value + ')'537 }),538 (I.prototype.toSource = function () {539 return '@' + z(this.value)540 }),541 (U.prototype = Object.create(L.prototype)),542 (U.prototype.tokenType = 'HASH'),543 (U.prototype.toString = function () {544 return 'HASH(' + this.value + ')'545 }),546 (U.prototype.toJSON = function () {547 var e =548 this.constructor.prototype.constructor.prototype.toJSON.call(549 this550 )551 return (e.value = this.value), (e.type = this.type), e552 }),553 (U.prototype.toSource = function () {554 return 'id' == this.type555 ? '#' + z(this.value)556 : '#' +557 (function (e) {558 for (559 var r = '', n = ((e = '' + e).charCodeAt(0), 0);560 n < e.length;561 n++562 ) {563 var o = e.charCodeAt(n)564 if (0 == o)565 throw new p(566 'Invalid character: the input contains U+0000.'567 )568 o >= 128 ||569 45 == o ||570 95 == o ||571 t(o, 48, 57) ||572 t(o, 65, 90) ||573 t(o, 97, 122)574 ? (r += e[n])575 : (r += '\\' + o.toString(16) + ' ')576 }577 return r578 })(this.value)579 }),580 (B.prototype = Object.create(L.prototype)),581 (B.prototype.tokenType = 'STRING'),582 (B.prototype.toString = function () {583 return '"' + G(this.value) + '"'584 }),585 (Q.prototype = Object.create(L.prototype)),586 (Q.prototype.tokenType = 'URL'),587 (Q.prototype.toString = function () {588 return 'URL(' + this.value + ')'589 }),590 (Q.prototype.toSource = function () {591 return 'url("' + G(this.value) + '")'592 }),593 (F.prototype = Object.create(h.prototype)),594 (F.prototype.tokenType = 'NUMBER'),595 (F.prototype.toString = function () {596 return 'integer' == this.type597 ? 'INT(' + this.value + ')'598 : 'NUMBER(' + this.value + ')'599 }),600 (F.prototype.toJSON = function () {601 var e =602 this.constructor.prototype.constructor.prototype.toJSON.call(603 this604 )605 return (606 (e.value = this.value),607 (e.type = this.type),608 (e.repr = this.repr),609 e610 )611 }),612 (F.prototype.toSource = function () {613 return this.repr614 }),615 (J.prototype = Object.create(h.prototype)),616 (J.prototype.tokenType = 'PERCENTAGE'),617 (J.prototype.toString = function () {618 return 'PERCENTAGE(' + this.value + ')'619 }),620 (J.prototype.toJSON = function () {621 var e =622 this.constructor.prototype.constructor.prototype.toJSON.call(623 this624 )625 return (e.value = this.value), (e.repr = this.repr), e626 }),627 (J.prototype.toSource = function () {628 return this.repr + '%'629 }),630 (W.prototype = Object.create(h.prototype)),631 (W.prototype.tokenType = 'DIMENSION'),632 (W.prototype.toString = function () {633 return 'DIM(' + this.value + ',' + this.unit + ')'634 }),635 (W.prototype.toJSON = function () {636 var e =637 this.constructor.prototype.constructor.prototype.toJSON.call(638 this639 )640 return (641 (e.value = this.value),642 (e.type = this.type),643 (e.repr = this.repr),644 (e.unit = this.unit),645 e646 )647 }),648 (W.prototype.toSource = function () {649 var e = this.repr,650 r = z(this.unit)651 return (652 'e' != r[0].toLowerCase() ||653 ('-' != r[1] && !t(r.charCodeAt(1), 48, 57)) ||654 (r = '\\65 ' + r.slice(1, r.length)),655 e + r656 )657 }),658 (e.tokenize = function (e) {659 e = (function (e) {660 for (var r = [], n = 0; n < e.length; n++) {661 var o = e.charCodeAt(n)662 if (663 (13 == o && 10 == e.charCodeAt(n + 1) && ((o = 10), n++),664 (13 != o && 12 != o) || (o = 10),665 0 == o && (o = 65533),666 t(o, 55296, 56319) && t(e.charCodeAt(n + 1), 56320, 57343))667 ) {668 var i = o - 55296,669 s = e.charCodeAt(n + 1) - 56320670 ;(o = Math.pow(2, 16) + i * Math.pow(2, 10) + s), n++671 }672 r.push(o)673 }674 return r675 })(e)676 for (677 var o,678 p = -1,679 h = [],680 _ = 0,681 L = 0,682 z = 0,683 G = { line: _, column: L },684 H = function (t) {685 return t >= e.length ? -1 : e[t]686 },687 V = function (e) {688 if ((void 0 === e && (e = 1), e > 3))689 throw 'Spec Error: no more than three codepoints of lookahead.'690 return H(p + e)691 },692 K = function (e) {693 return (694 void 0 === e && (e = 1),695 a((o = H((p += e))))696 ? ((_ += 1), (z = L), (L = 0))697 : (L += e),698 !0699 )700 },701 X = function () {702 return (703 (p -= 1),704 a(o) ? ((_ -= 1), (L = z)) : (L -= 1),705 (G.line = _),706 (G.column = L),707 !0708 )709 },710 Z = function (e) {711 return void 0 === e && (e = o), -1 == e712 },713 Y = function () {714 return (715 console.log(716 'Parse error at index ' +717 p +718 ', processing codepoint 0x' +719 o.toString(16) +720 '.'721 ),722 !0723 )724 },725 ee = function () {726 if ((te(), K(), u(o))) {727 for (; u(V()); ) K()728 return new g()729 }730 if (34 == o) return oe()731 if (35 == o) {732 if (s(V()) || ce(V(1), V(2))) {733 var e = new U()734 return (735 ue(V(1), V(2), V(3)) && (e.type = 'id'),736 (e.value = he()),737 e738 )739 }740 return new P(o)741 }742 return 36 == o743 ? 61 == V()744 ? (K(), new A())745 : new P(o)746 : 39 == o747 ? oe()748 : 40 == o749 ? new C()750 : 41 == o751 ? new O()752 : 42 == o753 ? 61 == V()754 ? (K(), new j())755 : new P(o)756 : 43 == o757 ? le()758 ? (X(), re())759 : new P(o)760 : 44 == o761 ? new v()762 : 45 == o763 ? le()764 ? (X(), re())765 : 45 == V(1) && 62 == V(2)766 ? (K(2), new d())767 : pe()768 ? (X(), ne())769 : new P(o)770 : 46 == o771 ? le()772 ? (X(), re())773 : new P(o)774 : 58 == o775 ? new w()776 : 59 == o777 ? new S()778 : 60 == o779 ? 33 == V(1) && 45 == V(2) && 45 == V(3)780 ? (K(3), new m())781 : new P(o)782 : 64 == o783 ? ue(V(1), V(2), V(3))784 ? new I(he())785 : new P(o)786 : 91 == o787 ? new E()788 : 92 == o789 ? ae()790 ? (X(), ne())791 : (Y(), new P(o))792 : 93 == o793 ? new k()794 : 94 == o795 ? 61 == V()796 ? (K(), new N())797 : new P(o)798 : 123 == o799 ? new T()800 : 124 == o801 ? 61 == V()802 ? (K(), new x())803 : 124 == V()804 ? (K(), new $())805 : new P(o)806 : 125 == o807 ? new b()808 : 126 == o809 ? 61 == V()810 ? (K(), new M())811 : new P(o)812 : r(o)813 ? (X(), re())814 : i(o)815 ? (X(), ne())816 : Z()817 ? new q()818 : new P(o)819 },820 te = function () {821 for (; 47 == V(1) && 42 == V(2); )822 for (K(2); ; ) {823 if ((K(), 42 == o && 47 == V())) {824 K()825 break826 }827 if (Z()) return void Y()828 }829 },830 re = function () {831 var e,832 t = fe()833 return ue(V(1), V(2), V(3))834 ? (((e = new W()).value = t.value),835 (e.repr = t.repr),836 (e.type = t.type),837 (e.unit = he()),838 e)839 : 37 == V()840 ? (K(),841 ((e = new J()).value = t.value),842 (e.repr = t.repr),843 e)844 : (((e = new F()).value = t.value),845 (e.repr = t.repr),846 (e.type = t.type),847 e)848 },849 ne = function () {850 var e = he()851 if ('url' == e.toLowerCase() && 40 == V()) {852 for (K(); u(V(1)) && u(V(2)); ) K()853 return 34 == V() || 39 == V()854 ? new D(e)855 : !u(V()) || (34 != V(2) && 39 != V(2))856 ? ie()857 : new D(e)858 }859 return 40 == V() ? (K(), new D(e)) : new R(e)860 },861 oe = function (e) {862 void 0 === e && (e = o)863 for (var t = ''; K(); ) {864 if (o == e || Z()) return new B(t)865 if (a(o)) return Y(), X(), new f()866 92 == o867 ? Z(V()) || (a(V()) ? K() : (t += l(se())))868 : (t += l(o))869 }870 },871 ie = function () {872 for (var e = new Q(''); u(V()); ) K()873 if (Z(V())) return e874 for (; K(); ) {875 if (41 == o || Z()) return e876 if (u(o)) {877 for (; u(V()); ) K()878 return 41 == V() || Z(V()) ? (K(), e) : (ge(), new y())879 }880 if (34 == o || 39 == o || 40 == o || c(o))881 return Y(), ge(), new y()882 if (92 == o) {883 if (!ae()) return Y(), ge(), new y()884 e.value += l(se())885 } else e.value += l(o)886 }887 },888 se = function () {889 if ((K(), n(o))) {890 for (var e = [o], t = 0; t < 5 && n(V()); t++)891 K(), e.push(o)892 u(V()) && K()893 var r = parseInt(894 e895 .map(function (e) {896 return String.fromCharCode(e)897 })898 .join(''),899 16900 )901 return r > 1114111 && (r = 65533), r902 }903 return Z() ? 65533 : o904 },905 ce = function (e, t) {906 return 92 == e && !a(t)907 },908 ae = function () {909 return ce(o, V())910 },911 ue = function (e, t, r) {912 return 45 == e913 ? i(t) || 45 == t || ce(t, r)914 : !!i(e) || (92 == e && ce(e, t))915 },916 pe = function () {917 return ue(o, V(1), V(2))918 },919 le = function () {920 return (921 (e = o),922 (t = V(1)),923 (n = V(2)),924 43 == e || 45 == e925 ? !!r(t) || !(46 != t || !r(n))926 : 46 == e927 ? !!r(t)928 : !!r(e)929 )930 var e, t, n931 },932 he = function () {933 for (var e = ''; K(); )934 if (s(o)) e += l(o)935 else {936 if (!ae()) return X(), e937 e += l(se())938 }939 },940 fe = function () {941 var e = [],942 t = 'integer'943 for (944 (43 != V() && 45 != V()) || (K(), (e += l(o)));945 r(V());946 )947 K(), (e += l(o))948 if (46 == V(1) && r(V(2)))949 for (950 K(), e += l(o), K(), e += l(o), t = 'number';951 r(V());952 )953 K(), (e += l(o))954 var n = V(1),955 i = V(2),956 s = V(3)957 if ((69 != n && 101 != n) || !r(i)) {958 if ((69 == n || 101 == n) && (43 == i || 45 == i) && r(s))959 for (960 K(),961 e += l(o),962 K(),963 e += l(o),964 K(),965 e += l(o),966 t = 'number';967 r(V());968 )969 K(), (e += l(o))970 } else971 for (972 K(), e += l(o), K(), e += l(o), t = 'number';973 r(V());974 )975 K(), (e += l(o))976 return { type: t, value: ye(e), repr: e }977 },978 ye = function (e) {979 return +e980 },981 ge = function () {982 for (; K(); ) {983 if (41 == o || Z()) return984 ae() && se()985 }986 },987 me = 0;988 !Z(V());989 )990 if ((h.push(ee()), ++me > 2 * e.length))991 return "I'm infinite-looping!"992 return h993 }),994 (e.IdentToken = R),995 (e.FunctionToken = D),996 (e.AtKeywordToken = I),997 (e.HashToken = U),998 (e.StringToken = B),999 (e.BadStringToken = f),1000 (e.URLToken = Q),1001 (e.BadURLToken = y),1002 (e.DelimToken = P),1003 (e.NumberToken = F),1004 (e.PercentageToken = J),1005 (e.DimensionToken = W),1006 (e.IncludeMatchToken = M),1007 (e.DashMatchToken = x),1008 (e.PrefixMatchToken = N),1009 (e.SuffixMatchToken = A),1010 (e.SubstringMatchToken = j),1011 (e.ColumnToken = $),1012 (e.WhitespaceToken = g),1013 (e.CDOToken = m),1014 (e.CDCToken = d),1015 (e.ColonToken = w),1016 (e.SemicolonToken = S),1017 (e.CommaToken = v),1018 (e.OpenParenToken = C),1019 (e.CloseParenToken = O),1020 (e.OpenSquareToken = E),1021 (e.CloseSquareToken = k),1022 (e.OpenCurlyToken = T),1023 (e.CloseCurlyToken = b),1024 (e.EOFToken = q),1025 (e.CSSParserToken = h),1026 (e.GroupingToken = _)1027 }),1028 void 0 === (n = r.apply(t, [t])) || (e.exports = n)1029 },1030 461: (e, t, r) => {1031 Object.defineProperty(t, '__esModule', { value: !0 }),1032 (t.parseSelector = function (e) {1033 const t = (function (e) {1034 let t,1035 r = 0,1036 n = 01037 const o = { parts: [] },1038 i = () => {1039 const t = e.substring(n, r).trim(),1040 i = t.indexOf('=')1041 let s, c1042 ;-1 !== i &&1043 t1044 .substring(0, i)1045 .trim()1046 .match(/^[a-zA-Z_0-9-+:*]+$/)1047 ? ((s = t.substring(0, i).trim()),1048 (c = t.substring(i + 1)))1049 : (t.length > 1 &&1050 '"' === t[0] &&1051 '"' === t[t.length - 1]) ||1052 (t.length > 1 &&1053 "'" === t[0] &&1054 "'" === t[t.length - 1])1055 ? ((s = 'text'), (c = t))1056 : /^\(*\/\//.test(t) || t.startsWith('..')1057 ? ((s = 'xpath'), (c = t))1058 : ((s = 'css'), (c = t))1059 let a = !11060 if (1061 ('*' === s[0] && ((a = !0), (s = s.substring(1))),1062 o.parts.push({ name: s, body: c }),1063 a)1064 ) {1065 if (void 0 !== o.capture)1066 throw new Error(1067 'Only one of the selectors can capture using * modifier'1068 )1069 o.capture = o.parts.length - 11070 }1071 }1072 if (!e.includes('>>')) return (r = e.length), i(), o1073 for (; r < e.length; ) {1074 const o = e[r]1075 '\\' === o && r + 1 < e.length1076 ? (r += 2)1077 : o === t1078 ? ((t = void 0), r++)1079 : t || ('"' !== o && "'" !== o && '`' !== o)1080 ? t || '>' !== o || '>' !== e[r + 1]1081 ? r++1082 : (i(), (r += 2), (n = r))1083 : ((t = o), r++)1084 }1085 return i(), o1086 })(e),1087 r = t.parts.map((e) =>1088 'css' === e.name || 'css:light' === e.name1089 ? ('css:light' === e.name &&1090 (e.body = ':light(' + e.body + ')'),1091 { name: 'css', body: (0, n.parseCSS)(e.body, o).selector })1092 : e1093 )1094 return { selector: e, capture: t.capture, parts: r }1095 }),1096 (t.customCSSNames = void 0)1097 var n = r(317)1098 const o = new Set([1099 'not',1100 'is',1101 'where',1102 'has',1103 'scope',1104 'light',1105 'visible',1106 'text',1107 'text-matches',1108 'text-is',1109 'has-text',1110 'above',1111 'below',1112 'right-of',1113 'left-of',1114 'near',1115 'nth-match'1116 ])1117 t.customCSSNames = o1118 },1119 848: (e, t, r) => {1120 Object.defineProperty(t, '__esModule', { value: !0 }),1121 (t.createLaxTextMatcher = y),1122 (t.createStrictTextMatcher = g),1123 (t.createRegexTextMatcher = m),1124 (t.elementText = w),1125 (t.elementMatchesText = S),1126 (t.parentElementOrShadowHost = O),1127 (t.isVisible = N),1128 (t.SelectorEvaluatorImpl = void 0)1129 var n = r(461)1130 t.SelectorEvaluatorImpl = class {1131 constructor(e) {1132 ;(this._engines = new Map()),1133 (this._cacheQueryCSS = new Map()),1134 (this._cacheMatches = new Map()),1135 (this._cacheQuery = new Map()),1136 (this._cacheMatchesSimple = new Map()),1137 (this._cacheMatchesParents = new Map()),1138 (this._cacheCallMatches = new Map()),1139 (this._cacheCallQuery = new Map()),1140 (this._cacheQuerySimple = new Map()),1141 (this._cacheText = new Map()),1142 (this._scoreMap = void 0),1143 (this._retainCacheCounter = 0)1144 for (const [t, r] of e) this._engines.set(t, r)1145 this._engines.set('not', c),1146 this._engines.set('is', o),1147 this._engines.set('where', o),1148 this._engines.set('has', i),1149 this._engines.set('scope', s),1150 this._engines.set('light', a),1151 this._engines.set('visible', u),1152 this._engines.set('text', p),1153 this._engines.set('text-is', l),1154 this._engines.set('text-matches', h),1155 this._engines.set('has-text', f),1156 this._engines.set('right-of', k('right-of', v)),1157 this._engines.set('left-of', k('left-of', _)),1158 this._engines.set('above', k('above', T)),1159 this._engines.set('below', k('below', b)),1160 this._engines.set('near', k('near', E)),1161 this._engines.set('nth-match', C)1162 const t = [...this._engines.keys()]1163 t.sort()1164 const r = [...n.customCSSNames]1165 if ((r.sort(), t.join('|') !== r.join('|')))1166 throw new Error(1167 `Please keep customCSSNames in sync with evaluator engines: ${t.join(1168 '|'1169 )} vs ${r.join('|')}`1170 )1171 }1172 begin() {1173 ++this._retainCacheCounter1174 }1175 end() {1176 --this._retainCacheCounter,1177 this._retainCacheCounter ||1178 (this._cacheQueryCSS.clear(),1179 this._cacheMatches.clear(),1180 this._cacheQuery.clear(),1181 this._cacheMatchesSimple.clear(),1182 this._cacheMatchesParents.clear(),1183 this._cacheCallMatches.clear(),1184 this._cacheCallQuery.clear(),1185 this._cacheQuerySimple.clear(),1186 this._cacheText.clear())1187 }1188 _cached(e, t, r, n) {1189 e.has(t) || e.set(t, [])1190 const o = e.get(t),1191 i = o.find((e) => r.every((t, r) => e.rest[r] === t))1192 if (i) return i.result1193 const s = n()1194 return o.push({ rest: r, result: s }), s1195 }1196 _checkSelector(e) {1197 if (1198 'object' != typeof e ||1199 !e ||1200 !(Array.isArray(e) || ('simples' in e && e.simples.length))1201 )1202 throw new Error(`Malformed selector "${e}"`)1203 return e1204 }1205 matches(e, t, r) {1206 const n = this._checkSelector(t)1207 this.begin()1208 try {1209 return this._cached(1210 this._cacheMatches,1211 e,1212 [n, r.scope, r.pierceShadow],1213 () =>1214 Array.isArray(n)1215 ? this._matchesEngine(o, e, n, r)1216 : !!this._matchesSimple(1217 e,1218 n.simples[n.simples.length - 1].selector,1219 r1220 ) && this._matchesParents(e, n, n.simples.length - 2, r)1221 )1222 } finally {1223 this.end()1224 }1225 }1226 query(e, t) {1227 const r = this._checkSelector(t)1228 this.begin()1229 try {1230 return this._cached(1231 this._cacheQuery,1232 r,1233 [e.scope, e.pierceShadow],1234 () => {1235 if (Array.isArray(r)) return this._queryEngine(o, e, r)1236 const t = this._scoreMap1237 this._scoreMap = new Map()1238 let n = this._querySimple(1239 e,1240 r.simples[r.simples.length - 1].selector1241 )1242 return (1243 (n = n.filter((t) =>1244 this._matchesParents(t, r, r.simples.length - 2, e)1245 )),1246 this._scoreMap.size &&1247 n.sort((e, t) => {1248 const r = this._scoreMap.get(e),1249 n = this._scoreMap.get(t)1250 return r === n1251 ? 01252 : void 0 === r1253 ? 11254 : void 0 === n1255 ? -11256 : r - n1257 }),1258 (this._scoreMap = t),1259 n1260 )1261 }1262 )1263 } finally {1264 this.end()1265 }1266 }1267 _markScore(e, t) {1268 this._scoreMap && this._scoreMap.set(e, t)1269 }1270 _matchesSimple(e, t, r) {1271 return this._cached(1272 this._cacheMatchesSimple,1273 e,1274 [t, r.scope, r.pierceShadow],1275 () => {1276 if (1277 !t.functions.some(1278 (e) => 'scope' === e.name || 'is' === e.name1279 ) &&1280 e === r.scope1281 )1282 return !11283 if (t.css && !this._matchesCSS(e, t.css)) return !11284 for (const n of t.functions)1285 if (1286 !this._matchesEngine(this._getEngine(n.name), e, n.args, r)1287 )1288 return !11289 return !01290 }1291 )1292 }1293 _querySimple(e, t) {1294 return t.functions.length1295 ? this._cached(1296 this._cacheQuerySimple,1297 t,1298 [e.scope, e.pierceShadow],1299 () => {1300 let r = t.css1301 const n = t.functions1302 let o1303 '*' === r && n.length && (r = void 0)1304 let i = -11305 void 0 !== r1306 ? (o = this._queryCSS(e, r))1307 : ((i = n.findIndex(1308 (e) => void 0 !== this._getEngine(e.name).query1309 )),1310 -1 === i && (i = 0),1311 (o = this._queryEngine(1312 this._getEngine(n[i].name),1313 e,1314 n[i].args1315 )))1316 for (let t = 0; t < n.length; t++) {1317 if (t === i) continue1318 const r = this._getEngine(n[t].name)1319 void 0 !== r.matches &&1320 (o = o.filter((o) =>1321 this._matchesEngine(r, o, n[t].args, e)1322 ))1323 }1324 for (let t = 0; t < n.length; t++) {1325 if (t === i) continue1326 const r = this._getEngine(n[t].name)1327 void 0 === r.matches &&1328 (o = o.filter((o) =>1329 this._matchesEngine(r, o, n[t].args, e)1330 ))1331 }1332 return o1333 }1334 )1335 : this._queryCSS(e, t.css || '*')1336 }1337 _matchesParents(e, t, r, n) {1338 return (1339 r < 0 ||1340 this._cached(1341 this._cacheMatchesParents,1342 e,1343 [t, r, n.scope, n.pierceShadow],1344 () => {1345 const { selector: o, combinator: i } = t.simples[r]1346 if ('>' === i) {1347 const i = M(e, n)1348 return (1349 !(!i || !this._matchesSimple(i, o, n)) &&1350 this._matchesParents(i, t, r - 1, n)1351 )1352 }1353 if ('+' === i) {1354 const i = x(e, n)1355 return (1356 !(!i || !this._matchesSimple(i, o, n)) &&1357 this._matchesParents(i, t, r - 1, n)1358 )1359 }1360 if ('' === i) {1361 let i = M(e, n)1362 for (; i; ) {1363 if (this._matchesSimple(i, o, n)) {1364 if (this._matchesParents(i, t, r - 1, n)) return !01365 if ('' === t.simples[r - 1].combinator) break1366 }1367 i = M(i, n)1368 }1369 return !11370 }1371 if ('~' === i) {1372 let i = x(e, n)1373 for (; i; ) {1374 if (this._matchesSimple(i, o, n)) {1375 if (this._matchesParents(i, t, r - 1, n)) return !01376 if ('~' === t.simples[r - 1].combinator) break1377 }1378 i = x(i, n)1379 }1380 return !11381 }1382 if ('>=' === i) {1383 let i = e1384 for (; i; ) {1385 if (this._matchesSimple(i, o, n)) {1386 if (this._matchesParents(i, t, r - 1, n)) return !01387 if ('' === t.simples[r - 1].combinator) break1388 }1389 i = M(i, n)1390 }1391 return !11392 }1393 throw new Error(`Unsupported combinator "${i}"`)1394 }1395 )1396 )1397 }1398 _matchesEngine(e, t, r, n) {1399 if (e.matches) return this._callMatches(e, t, r, n)1400 if (e.query) return this._callQuery(e, r, n).includes(t)1401 throw new Error(1402 'Selector engine should implement "matches" or "query"'1403 )1404 }1405 _queryEngine(e, t, r) {1406 if (e.query) return this._callQuery(e, r, t)1407 if (e.matches)1408 return this._queryCSS(t, '*').filter((n) =>1409 this._callMatches(e, n, r, t)1410 )1411 throw new Error(1412 'Selector engine should implement "matches" or "query"'1413 )1414 }1415 _callMatches(e, t, r, n) {1416 return this._cached(1417 this._cacheCallMatches,1418 t,1419 [e, n.scope, n.pierceShadow, ...r],1420 () => e.matches(t, r, n, this)1421 )1422 }1423 _callQuery(e, t, r) {1424 return this._cached(1425 this._cacheCallQuery,1426 e,1427 [r.scope, r.pierceShadow, ...t],1428 () => e.query(r, t, this)1429 )1430 }1431 _matchesCSS(e, t) {1432 return e.matches(t)1433 }1434 _queryCSS(e, t) {1435 return this._cached(1436 this._cacheQueryCSS,1437 t,1438 [e.scope, e.pierceShadow],1439 () => {1440 let r = []1441 return (1442 (function n(o) {1443 if (1444 ((r = r.concat([...o.querySelectorAll(t)])),1445 e.pierceShadow)1446 ) {1447 o.shadowRoot && n(o.shadowRoot)1448 for (const e of o.querySelectorAll('*'))1449 e.shadowRoot && n(e.shadowRoot)1450 }1451 })(e.scope),1452 r1453 )1454 }1455 )1456 }1457 _getEngine(e) {1458 const t = this._engines.get(e)1459 if (!t) throw new Error(`Unknown selector engine "${e}"`)1460 return t1461 }1462 }1463 const o = {1464 matches(e, t, r, n) {1465 if (0 === t.length)1466 throw new Error('"is" engine expects non-empty selector list')1467 return t.some((t) => n.matches(e, t, r))1468 },1469 query(e, t, r) {1470 if (0 === t.length)1471 throw new Error('"is" engine expects non-empty selector list')1472 let n = []1473 for (const o of t) n = n.concat(r.query(e, o))1474 return 1 === t.length1475 ? n1476 : (function (e) {1477 const t = new Map(),1478 r = [],1479 n = []1480 function o(e) {1481 let n = t.get(e)1482 if (n) return n1483 const i = O(e)1484 return (1485 i ? o(i).children.push(e) : r.push(e),1486 (n = { children: [], taken: !1 }),1487 t.set(e, n),1488 n1489 )1490 }1491 return (1492 e.forEach((e) => (o(e).taken = !0)),1493 r.forEach(function e(r) {1494 const o = t.get(r)1495 if ((o.taken && n.push(r), o.children.length > 1)) {1496 const e = new Set(o.children)1497 o.children = []1498 let t = r.firstElementChild1499 for (; t && o.children.length < e.size; )1500 e.has(t) && o.children.push(t),1501 (t = t.nextElementSibling)1502 for (1503 t = r.shadowRoot1504 ? r.shadowRoot.firstElementChild1505 : null;1506 t && o.children.length < e.size;1507 )1508 e.has(t) && o.children.push(t),1509 (t = t.nextElementSibling)1510 }1511 o.children.forEach(e)1512 }),1513 n1514 )1515 })(n)1516 }1517 },1518 i = {1519 matches(e, t, r, n) {1520 if (0 === t.length)1521 throw new Error('"has" engine expects non-empty selector list')1522 return n.query({ ...r, scope: e }, t).length > 01523 }1524 },1525 s = {1526 matches(e, t, r, n) {1527 if (0 !== t.length)1528 throw new Error('"scope" engine expects no arguments')1529 return 9 === r.scope.nodeType1530 ? e === r.scope.documentElement1531 : e === r.scope1532 },1533 query(e, t, r) {1534 if (0 !== t.length)1535 throw new Error('"scope" engine expects no arguments')1536 if (9 === e.scope.nodeType) {1537 const t = e.scope.documentElement1538 return t ? [t] : []1539 }1540 return 1 === e.scope.nodeType ? [e.scope] : []1541 }1542 },1543 c = {1544 matches(e, t, r, n) {1545 if (0 === t.length)1546 throw new Error('"not" engine expects non-empty selector list')1547 return !n.matches(e, t, r)1548 }1549 },1550 a = {1551 query: (e, t, r) => r.query({ ...e, pierceShadow: !1 }, t),1552 matches: (e, t, r, n) => n.matches(e, t, { ...r, pierceShadow: !1 })1553 },1554 u = {1555 matches(e, t, r, n) {1556 if (t.length)1557 throw new Error('"visible" engine expects no arguments')1558 return N(e)1559 }1560 },1561 p = {1562 matches(e, t, r, n) {1563 if (1 !== t.length || 'string' != typeof t[0])1564 throw new Error('"text" engine expects a single string')1565 return 'self' === S(n, e, y(t[0]))1566 }1567 },1568 l = {1569 matches(e, t, r, n) {1570 if (1 !== t.length || 'string' != typeof t[0])1571 throw new Error('"text-is" engine expects a single string')1572 return 'none' !== S(n, e, g(t[0]))1573 }1574 },1575 h = {1576 matches(e, t, r, n) {1577 if (1578 0 === t.length ||1579 'string' != typeof t[0] ||1580 t.length > 2 ||1581 (2 === t.length && 'string' != typeof t[1])1582 )1583 throw new Error(1584 '"text-matches" engine expects a regexp body and optional regexp flags'1585 )1586 return 'self' === S(n, e, m(t[0], 2 === t.length ? t[1] : void 0))1587 }1588 },1589 f = {1590 matches(e, t, r, n) {1591 if (1 !== t.length || 'string' != typeof t[0])1592 throw new Error('"has-text" engine expects a single string')1593 return !d(e) && y(t[0])(w(n, e))1594 }1595 }1596 function y(e) {1597 return (1598 (e = e.trim().replace(/\s+/g, ' ').toLowerCase()),1599 (t) => t.full.trim().replace(/\s+/g, ' ').toLowerCase().includes(e)1600 )1601 }1602 function g(e) {1603 return (1604 (e = e.trim().replace(/\s+/g, ' ')),1605 (t) =>1606 (!e && !t.immediate.length) ||1607 t.immediate.some((t) => t.trim().replace(/\s+/g, ' ') === e)1608 )1609 }1610 function m(e, t) {1611 const r = new RegExp(e, t)1612 return (e) => r.test(e.full)1613 }1614 function d(e) {1615 return (1616 'SCRIPT' === e.nodeName ||1617 'STYLE' === e.nodeName ||1618 (document.head && document.head.contains(e))1619 )1620 }1621 function w(e, t) {1622 let r = e._cacheText.get(t)1623 if (void 0 === r) {1624 if (((r = { full: '', immediate: [] }), !d(t))) {1625 let n = ''1626 if (1627 t instanceof HTMLInputElement &&1628 ('submit' === t.type || 'button' === t.type)1629 )1630 r = { full: t.value, immediate: [t.value] }1631 else {1632 for (let o = t.firstChild; o; o = o.nextSibling)1633 o.nodeType === Node.TEXT_NODE1634 ? ((r.full += o.nodeValue || ''), (n += o.nodeValue || ''))1635 : (n && r.immediate.push(n),1636 (n = ''),1637 o.nodeType === Node.ELEMENT_NODE &&1638 (r.full += w(e, o).full))1639 n && r.immediate.push(n),1640 t.shadowRoot && (r.full += w(e, t.shadowRoot).full)1641 }1642 }1643 e._cacheText.set(t, r)1644 }1645 return r1646 }1647 function S(e, t, r) {1648 if (d(t)) return 'none'1649 if (!r(w(e, t))) return 'none'1650 for (let n = t.firstChild; n; n = n.nextSibling)1651 if (n.nodeType === Node.ELEMENT_NODE && r(w(e, n)))1652 return 'selfAndChildren'1653 return t.shadowRoot && r(w(e, t.shadowRoot))1654 ? 'selfAndChildren'1655 : 'self'1656 }1657 function v(e, t, r) {1658 const n = e.left - t.right1659 if (!(n < 0 || (void 0 !== r && n > r)))1660 return (1661 n + Math.max(t.bottom - e.bottom, 0) + Math.max(e.top - t.top, 0)1662 )1663 }1664 function _(e, t, r) {1665 const n = t.left - e.right1666 if (!(n < 0 || (void 0 !== r && n > r)))1667 return (1668 n + Math.max(t.bottom - e.bottom, 0) + Math.max(e.top - t.top, 0)1669 )1670 }1671 function T(e, t, r) {1672 const n = t.top - e.bottom1673 if (!(n < 0 || (void 0 !== r && n > r)))1674 return (1675 n + Math.max(e.left - t.left, 0) + Math.max(t.right - e.right, 0)1676 )1677 }1678 function b(e, t, r) {1679 const n = e.top - t.bottom1680 if (!(n < 0 || (void 0 !== r && n > r)))1681 return (1682 n + Math.max(e.left - t.left, 0) + Math.max(t.right - e.right, 0)1683 )1684 }1685 function E(e, t, r) {1686 const n = void 0 === r ? 50 : r1687 let o = 01688 return (1689 e.left - t.right >= 0 && (o += e.left - t.right),1690 t.left - e.right >= 0 && (o += t.left - e.right),1691 t.top - e.bottom >= 0 && (o += t.top - e.bottom),1692 e.top - t.bottom >= 0 && (o += e.top - t.bottom),1693 o > n ? void 0 : o1694 )1695 }1696 function k(e, t) {1697 return {1698 matches(r, n, o, i) {1699 const s =1700 n.length && 'number' == typeof n[n.length - 1]1701 ? n[n.length - 1]1702 : void 0,1703 c = void 0 === s ? n : n.slice(0, n.length - 1)1704 if (n.length < 1 + (void 0 === s ? 0 : 1))1705 throw new Error(1706 `"${e}" engine expects a selector list and optional maximum distance in pixels`1707 )1708 const a = r.getBoundingClientRect()1709 let u1710 for (const e of i.query(o, c)) {1711 if (e === r) continue1712 const n = t(a, e.getBoundingClientRect(), s)1713 void 0 !== n && (void 0 === u || n < u) && (u = n)1714 }1715 return void 0 !== u && (i._markScore(r, u), !0)1716 }1717 }1718 }1719 const C = {1720 query(e, t, r) {1721 let n = t[t.length - 1]1722 if (t.length < 2)1723 throw new Error(1724 '"nth-match" engine expects non-empty selector list and an index argument'1725 )1726 if ('number' != typeof n || n < 1)1727 throw new Error(1728 '"nth-match" engine expects a one-based index as the last argument'1729 )1730 const i = o.query(e, t.slice(0, t.length - 1), r)1731 return n--, n < i.length ? [i[n]] : []1732 }1733 }1734 function O(e) {1735 return e.parentElement1736 ? e.parentElement1737 : e.parentNode &&1738 e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&1739 e.parentNode.host1740 ? e.parentNode.host1741 : void 01742 }1743 function M(e, t) {1744 if (e !== t.scope)1745 return t.pierceShadow ? O(e) : e.parentElement || void 01746 }1747 function x(e, t) {1748 if (e !== t.scope) return e.previousElementSibling || void 01749 }1750 function N(e) {1751 if (!e.ownerDocument || !e.ownerDocument.defaultView) return !01752 const t = e.ownerDocument.defaultView.getComputedStyle(e)1753 if (!t || 'hidden' === t.visibility) return !11754 const r = e.getBoundingClientRect()1755 return r.width > 0 && r.height > 01756 }1757 },1758 854: (e, t, r) => {1759 Object.defineProperty(t, '__esModule', { value: !0 }),1760 (t.querySelector = function (e, t, r) {1761 try {1762 const n = e.parseSelector(t)1763 return { selector: t, elements: e.querySelectorAll(n, r) }1764 } catch (e) {1765 return { selector: t, elements: [] }1766 }1767 }),1768 (t.generateSelector = function (e, t) {1769 e._evaluator.begin()1770 try {1771 const r = (function (e, t) {1772 if (t.ownerDocument.documentElement === t)1773 return [{ engine: 'css', selector: 'html', score: 1 }]1774 const r = (u, l) => {1775 const y = l ? o : i1776 let g = y.get(u)1777 return (1778 void 0 === g &&1779 ((g = ((o, i) => {1780 const u = o === t1781 let l = i1782 ? (function (e, t, r) {1783 if ('SELECT' === t.nodeName) return []1784 const o = (0, n.elementText)(e._evaluator, t)1785 .full.trim()1786 .replace(/\s+/g, ' ')1787 .substring(0, 80)1788 if (!o) return []1789 const i = []1790 let s = o1791 if (1792 ((o.includes('"') ||1793 o.includes('>>') ||1794 '/' === o[0]) &&1795 (s = `/.*${(function (e) {1796 return e.replace(1797 /[.*+?^>${}()|[\]\\]/g,1798 '\\$&'1799 )1800 })(o)}.*/`),1801 i.push({1802 engine: 'text',1803 selector: s,1804 score: 101805 }),1806 r && s === o)1807 ) {1808 let e = t.nodeName.toLocaleLowerCase()1809 t.hasAttribute('role') &&1810 (e += `[role=${p(1811 t.getAttribute('role')1812 )}]`),1813 i.push({1814 engine: 'css',1815 selector: `${e}:has-text("${o}")`,1816 score: 301817 })1818 }1819 return i1820 })(e, o, o === t).map((e) => [e])1821 : []1822 o !== t && (l = s(l))1823 const y = (function (e, t) {1824 const r = []1825 for (const e of [1826 'data-testid',1827 'data-test-id',1828 'data-test'1829 ])1830 t.hasAttribute(e) &&1831 r.push({1832 engine: 'css',1833 selector: `[${e}=${p(t.getAttribute(e))}]`,1834 score: 11835 })1836 if ('INPUT' === t.nodeName) {1837 const e = t1838 e.placeholder &&1839 r.push({1840 engine: 'css',1841 selector: `[placeholder=${p(e.placeholder)}]`,1842 score: 101843 })1844 }1845 t.hasAttribute('aria-label') &&1846 r.push({1847 engine: 'css',1848 selector: `[aria-label=${p(1849 t.getAttribute('aria-label')1850 )}]`,1851 score: 101852 }),1853 t.getAttribute('alt') &&1854 ['APPLET', 'AREA', 'IMG', 'INPUT'].includes(1855 t.nodeName1856 ) &&1857 r.push({1858 engine: 'css',1859 selector: `${t.nodeName.toLowerCase()}[alt=${p(1860 t.getAttribute('alt')1861 )}]`,1862 score: 101863 }),1864 t.hasAttribute('role') &&1865 r.push({1866 engine: 'css',1867 selector: `${t.nodeName.toLocaleLowerCase()}[role=${p(1868 t.getAttribute('role')1869 )}]`,1870 score: 501871 }),1872 t.getAttribute('name') &&1873 [1874 'BUTTON',1875 'FORM',1876 'FIELDSET',1877 'IFRAME',1878 'INPUT',1879 'KEYGEN',1880 'OBJECT',1881 'OUTPUT',1882 'SELECT',1883 'TEXTAREA',1884 'MAP',1885 'META',1886 'PARAM'1887 ].includes(t.nodeName) &&1888 r.push({1889 engine: 'css',1890 selector: `${t.nodeName.toLowerCase()}[name=${p(1891 t.getAttribute('name')1892 )}]`,1893 score: 501894 }),1895 ['INPUT', 'TEXTAREA'].includes(t.nodeName) &&1896 'hidden' !== t.getAttribute('type') &&1897 t.getAttribute('type') &&1898 r.push({1899 engine: 'css',1900 selector: `${t.nodeName.toLowerCase()}[type=${p(1901 t.getAttribute('type')1902 )}]`,1903 score: 501904 }),1905 ['INPUT', 'TEXTAREA', 'SELECT'].includes(1906 t.nodeName1907 ) &&1908 r.push({1909 engine: 'css',1910 selector: t.nodeName.toLowerCase(),1911 score: 501912 })1913 const n = t.getAttribute('id')1914 return (1915 n &&1916 !(function (e) {1917 let t,1918 r = 01919 for (let n = 0; n < e.length; ++n) {1920 const o = e[n]1921 let i1922 '-' !== o &&1923 '_' !== o &&1924 ((i =1925 o >= 'a' && o <= 'z'1926 ? 'lower'1927 : o >= 'A' && o <= 'Z'1928 ? 'upper'1929 : o >= '0' && o <= '9'1930 ? 'digit'1931 : 'other'),1932 'lower' !== i || 'upper' !== t1933 ? (t && t !== i && ++r, (t = i))1934 : (t = i))1935 }1936 return r >= e.length / 41937 })(n) &&1938 r.push({1939 engine: 'css',1940 selector: a(n),1941 score: 1001942 }),1943 r.push({1944 engine: 'css',1945 selector: t.nodeName.toLocaleLowerCase(),1946 score: 2001947 }),1948 r1949 )1950 })(0, o).map((e) => [e])1951 let g = f(e, t.ownerDocument, o, [...l, ...y], u)1952 l = s(l)1953 const m = (t) => {1954 const n = i && !t.length,1955 s = [...t, ...y].filter((e) => !g || h(e) < h(g))1956 let a = s[0]1957 if (a)1958 for (let t = c(o); t; t = c(t)) {1959 const i = r(t, n)1960 if (!i) continue1961 if (g && h([...i, ...a]) >= h(g)) continue1962 if (((a = f(e, t, o, s, u)), !a)) return1963 const c = [...i, ...a]1964 ;(!g || h(c) < h(g)) && (g = c)1965 }1966 }1967 return m(l), o === t && l.length && m([]), g1968 })(u, l)),1969 y.set(u, g)),1970 g1971 )1972 }1973 return r(t, !0)1974 })(1975 e,1976 (t =1977 t.closest(1978 'button,select,input,[role=button],[role=checkbox],[role=radio]'1979 ) || t)1980 ),1981 y = l(r || [u(e, t)]),1982 g = e.parseSelector(y)1983 return {1984 selector: y,1985 elements: e.querySelectorAll(g, t.ownerDocument)1986 }1987 } finally {1988 o.clear(), i.clear(), e._evaluator.end()1989 }1990 })1991 var n = r(848)1992 const o = new Map(),1993 i = new Map()1994 function s(e) {1995 return e.filter((e) => '/' !== e[0].selector[0])1996 }1997 function c(e) {1998 return e.parentElement1999 ? e.parentElement2000 : e.parentNode &&2001 e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&2002 e.parentNode.host2003 ? e.parentNode.host2004 : null2005 }2006 function a(e) {2007 return /^[a-zA-Z][a-zA-Z0-9\-\_]+$/.test(e) ? '#' + e : `[id="${e}"]`2008 }2009 function u(e, t) {2010 const r = 1e7,2011 n = t.ownerDocument,2012 o = []2013 function i(r) {2014 const n = o.slice()2015 r && n.unshift(r)2016 const i = n.join(' '),2017 s = e.parseSelector(i)2018 return e.querySelector(s, t.ownerDocument, !1) === t ? i : void 02019 }2020 for (let e = t; e && e !== n; e = c(e)) {2021 const t = e.nodeName.toLowerCase()2022 let n = ''2023 if (e.id) {2024 const t = a(e.id),2025 o = i(t)2026 if (o) return { engine: 'css', selector: o, score: r }2027 n = t2028 }2029 const s = e.parentNode,2030 c = [...e.classList]2031 for (let e = 0; e < c.length; ++e) {2032 const t = '.' + c.slice(0, e + 1).join('.'),2033 o = i(t)2034 if (o) return { engine: 'css', selector: o, score: r }2035 !n && s && 1 === s.querySelectorAll(t).length && (n = t)2036 }2037 if (s) {2038 const o = [...s.children],2039 c =2040 0 ===2041 o.filter((e) => e.nodeName.toLowerCase() === t).indexOf(e)2042 ? t2043 : `${t}:nth-child(${1 + o.indexOf(e)})`,2044 a = i(c)2045 if (a) return { engine: 'css', selector: a, score: r }2046 n || (n = c)2047 } else n || (n = t)2048 o.unshift(n)2049 }2050 return { engine: 'css', selector: i(), score: r }2051 }2052 function p(e) {2053 return `"${e.replace(/"/g, '\\"').replace(/\n/g, '\\n')}"`2054 }2055 function l(e) {2056 const t = []2057 let r = ''2058 for (const { engine: n, selector: o } of e)2059 t.length &&2060 ('css' !== r || 'css' !== n || o.startsWith(':nth-match(')) &&2061 t.push('>>'),2062 (r = n),2063 'css' === n ? t.push(o) : t.push(`${n}=${o}`)2064 return t.join(' ')2065 }2066 function h(e) {2067 let t = 02068 for (let r = 0; r < e.length; r++) t += e[r].score * (e.length - r)2069 return t2070 }2071 function f(e, t, r, n, o) {2072 const i = n.map((e) => ({ tokens: e, score: h(e) }))2073 i.sort((e, t) => e.score - t.score)2074 let s = null2075 for (const { tokens: n } of i) {2076 const i = e.parseSelector(l(n)),2077 c = e.querySelectorAll(i, t),2078 a = c.indexOf(r)2079 if (0 === a) return n2080 if (!o || s || -1 === a || c.length > 5) continue2081 const u = n.map((e) =>2082 'text' !== e.engine2083 ? e2084 : e.selector.startsWith('/') && e.selector.endsWith('/')2085 ? {2086 engine: 'css',2087 selector: `:text-matches("${e.selector.substring(2088 1,2089 e.selector.length - 12090 )}")`,2091 score: e.score2092 }2093 : {2094 engine: 'css',2095 selector: `:text("${e.selector}")`,2096 score: e.score2097 }2098 )2099 s = [2100 {2101 engine: 'css',2102 selector: `:nth-match(${l(u)}, ${a + 1})`,2103 score: h(u) + 1e32104 }2105 ]2106 }2107 return s2108 }2109 }2110 },2111 t = {}2112 function r(n) {2113 var o = t[n]2114 if (void 0 !== o) return o.exports2115 var i = (t[n] = { exports: {} })2116 return e[n](i, i.exports, r), i.exports2117 }2118 var n = {}2119 ;(() => {2120 var e = n2121 e.default = void 02122 var t = r(854)2123 var o = class {2124 constructor(e) {2125 ;(this._injectedScript = void 0),2126 (this._injectedScript = e),2127 window.playwright ||2128 (window.playwright = {2129 $: (e, t) => this._querySelector(e, !!t),2130 $$: (e) => this._querySelectorAll(e),2131 inspect: (e) => this._inspect(e),2132 selector: (e) => this._selector(e),2133 resume: () => this._resume()2134 })2135 }2136 _querySelector(e, t) {2137 if ('string' != typeof e)2138 throw new Error("Usage: playwright.query('Playwright >> selector').")2139 const r = this._injectedScript.parseSelector(e)2140 return this._injectedScript.querySelector(r, document, t)2141 }2142 _querySelectorAll(e) {2143 if ('string' != typeof e)2144 throw new Error("Usage: playwright.$$('Playwright >> selector').")2145 const t = this._injectedScript.parseSelector(e)2146 return this._injectedScript.querySelectorAll(t, document)2147 }2148 _inspect(e) {2149 if ('string' != typeof e)2150 throw new Error(2151 "Usage: playwright.inspect('Playwright >> selector')."2152 )2153 window.inspect(this._querySelector(e, !1))2154 }2155 _selector(e) {2156 if (!(e instanceof Element))2157 throw new Error('Usage: playwright.selector(element).')2158 return (0, t.generateSelector)(this._injectedScript, e).selector2159 }2160 _resume() {2161 window._playwrightResume().catch(() => {})2162 }2163 }2164 e.default = o2165 })(),2166 (pwExport = n.default)...
Using AI Code Generation
1const { createLaxTextMatcher } = require('playwright/lib/utils');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const page = await browser.newPage();6 const laxText = createLaxTextMatcher(/Playwright/);7 await page.click(laxText);8 await browser.close();9})();10createLaxTextMatcher(textOrRegexp: string | RegExp): string11const { createLaxTextMatcher } = require('playwright/lib/utils');12const { chromium } = require('playwright');13(async () => {14 const browser = await chromium.launch();15 const page = await browser.newPage();16 const laxText = createLaxTextMatcher(/Playwright/);17 await page.click(laxText);18 await browser.close();19})();20createRegExp(text: string): RegExp
Using AI Code Generation
1const { createLaxTextMatcher } = require('playwright/lib/utils/textUtils');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const matcher = createLaxTextMatcher('Google');8 const element = await page.waitForSelector(matcher);9 console.log(element);10 await browser.close();11})();
Using AI Code Generation
1const { createLaxTextMatcher } = require('@playwright/test/lib/matchers/matchers');2const { test } = require('@playwright/test');3test('Test', async ({ page }) => {4 await page.setContent(`<div>Test</div>`);5 await page.waitForSelector(createLaxTextMatcher('Test'));6});7const { createLaxTextMatcher } = require('@playwright/test/lib/matchers/matchers');8const { test } = require('@playwright/test');9test('Test', async ({ page }) => {10 await page.setContent(`<div>Test</div>`);11 await page.waitForSelector(createLaxTextMatcher('Test'));12});13const { createLaxTextMatcher } = require('@playwright/test/lib/matchers/matchers');
Using AI Code Generation
1const { createLaxTextMatcher } = require('playwright/lib/utils/matchers');2const { chromium } = require('playwright');3const { expect } = require('chai');4const { describe, it } = require('mocha');5describe('Playwright Internal API', () => {6 it('should match the text with laxText matcher', async () => {7 const browser = await chromium.launch({ headless: false });8 const context = await browser.newContext();9 const page = await context.newPage();10 const laxTextMatcher = createLaxTextMatcher('English');11 const element = await page.waitForSelector('div.central-featured-lang');12 const text = await element.textContent();13 expect(laxTextMatcher(text)).to.be.true;14 await browser.close();15 });16});
Using AI Code Generation
1const { createLaxTextMatcher } = require('playwright-core/lib/utils/utils')2const matcher = createLaxTextMatcher('Hello World')3const { matcher } = require('playwright-core/lib/utils/utils')4describe('Playwright Internal API', () => {5 it('should match text', async () => {6 const match = matcher(text)7 expect(match('Hello World')).toBe(true)8 expect(match('Hello World!')).toBe(true)9 expect(match('Hello World!!!')).toBe(true)10 expect(match('Hello World!!!!')).toBe(false)11 })12})13const { createLaxTextMatcher } = require('playwright-core/lib/utils/utils')14describe('Playwright Internal API', () => {15 it('should match text', async () => {16 const match = createLaxTextMatcher('Hello World')17 expect(match('Hello World')).toBe(true)18 expect(match('Hello World!')).toBe(true)19 expect(match('Hello World!!!')).toBe(true)20 expect(match('Hello World!!!!')).toBe(false)21 })22})23const { createLaxTextMatcher } = require('playwright-core/lib/utils/utils')24describe('Playwright Internal API', () => {25 it('should match text', async () => {26 const match = createLaxTextMatcher('Hello World')27 expect(match('Hello World')).toBe(true)28 expect(match('Hello World!')).toBe(true)29 expect(match('Hello World!!!')).toBe(true)30 expect(match('Hello World!!!!')).toBe(false)31 })32})33const { createLaxTextMatcher } = require('playwright-core/lib/utils/utils')34describe('Playwright Internal API', () =>
Using AI Code Generation
1const { createLaxTextMatcher } = require('playwright/lib/internal/utils').helper;2const { test } = require('@playwright/test');3test('should match text with lax matcher', async ({ page }) => {4 await page.setContent('<div>My div</div>');5 await page.waitForSelector(createLaxTextMatcher('my div'));6});
Using AI Code Generation
1const { createLaxTextMatcher } = require('playwright/lib/utils/selectorParser');2const matcher = createLaxTextMatcher('text=foo');3const { createLaxTextMatcher } = require('playwright/lib/utils/selectorParser');4const { SelectorEngine } = require('@playwright/test');5module.exports = {6 create(root, target) {7 const matcher = createLaxTextMatcher(target);8 return new SelectorEngine(root, matcher);9 }10};11const { test } = require('@playwright/test');12const laxTextEngine = require('./customSelectorEngine');13test.use({ laxTextEngine });14test('custom selector engine', async ({ page }) => {15 await page.setContent('<div>foo bar baz</div>');16 const div = await page.$('laxText=foo');17 expect(div).toBeTruthy();18});
Using AI Code Generation
1const { createLaxTextMatcher } = require('playwright/lib/internal/selectorParser');2const selector = createLaxTextMatcher('text', 'Hello World');3const { createLaxTextMatcher } = require('playwright/lib/internal/selectorParser');4const selector = createLaxTextMatcher('text', 'Hello World', 'i');5const { createLaxTextMatcher } = require('playwright/lib/internal/selectorParser');6const selector = createLaxTextMatcher('text', 'Hello World', 'i', 'g');7const { createLaxTextMatcher } = require('playwright/lib/internal/selectorParser');8const selector = createLaxTextMatcher('text', 'Hello World', 'g');9const { createLaxTextMatcher } = require('playwright/lib/internal
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!