@midscene/android 0.14.2 → 0.14.3-beta-20250409031306.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/playground +3 -0
- package/dist/es/index.js +4 -0
- package/dist/es/playground.d.ts +2 -0
- package/dist/es/playground.js +852 -0
- package/dist/lib/index.js +4 -0
- package/dist/lib/playground.d.ts +2 -0
- package/dist/lib/playground.js +872 -0
- package/dist/types/playground.d.ts +2 -0
- package/package.json +25 -4
- package/static/index.html +1 -0
- package/static/scripts/htmlElement.js +5 -0
- package/static/scripts/htmlElement.js.LICENSE.txt +12 -0
- package/static/scripts/htmlElementDebug.js +2 -0
- package/static/scripts/htmlElementDebug.js.LICENSE.txt +12 -0
- package/static/scripts/stop-water-flow.js +2 -0
- package/static/scripts/stop-water-flow.js.map +1 -0
- package/static/scripts/water-flow.js +54 -0
- package/static/scripts/water-flow.js.map +1 -0
- package/static/static/css/index.fa8491ca.css +2 -0
- package/static/static/css/index.fa8491ca.css.map +1 -0
- package/static/static/js/792.8ac93205.js +467 -0
- package/static/static/js/792.8ac93205.js.LICENSE.txt +1673 -0
- package/static/static/js/792.8ac93205.js.map +1 -0
- package/static/static/js/async/166.208adb78.js +2 -0
- package/static/static/js/async/166.208adb78.js.map +1 -0
- package/static/static/js/index.906d88a4.js +504 -0
- package/static/static/js/index.906d88a4.js.map +1 -0
- package/static/static/js/lib-polyfill.c3257577.js +2 -0
- package/static/static/js/lib-polyfill.c3257577.js.map +1 -0
- package/static/static/js/lib-react.bac2292c.js +3 -0
- package/static/static/js/lib-react.bac2292c.js.LICENSE.txt +39 -0
- package/static/static/js/lib-react.bac2292c.js.map +1 -0
- package/LICENSE +0 -21
package/package.json
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@midscene/android",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.3-beta-20250409031306.0",
|
|
4
4
|
"description": "Android automation library for Midscene",
|
|
5
5
|
"main": "./dist/lib/index.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist",
|
|
9
|
+
"static",
|
|
9
10
|
"bin",
|
|
10
11
|
"README.md"
|
|
11
12
|
],
|
|
13
|
+
"bin": {
|
|
14
|
+
"playground": "./bin/playground",
|
|
15
|
+
"@midscene/android": "./bin/playground"
|
|
16
|
+
},
|
|
12
17
|
"exports": {
|
|
13
18
|
".": {
|
|
14
19
|
"types": "./dist/types/index.d.ts",
|
|
@@ -16,13 +21,25 @@
|
|
|
16
21
|
}
|
|
17
22
|
},
|
|
18
23
|
"dependencies": {
|
|
24
|
+
"@yume-chan/adb": "^1.1.0",
|
|
25
|
+
"@yume-chan/adb-scrcpy": "^1.1.0",
|
|
26
|
+
"@yume-chan/adb-server-node-tcp": "^1.1.0",
|
|
27
|
+
"@yume-chan/fetch-scrcpy-server": "^1.0.0",
|
|
28
|
+
"@yume-chan/scrcpy": "^1.1.0",
|
|
29
|
+
"@yume-chan/stream-extra": "^1.0.0",
|
|
19
30
|
"appium-adb": "12.12.1",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
31
|
+
"cors": "2.8.5",
|
|
32
|
+
"express": "^4.21.2",
|
|
33
|
+
"open": "10.1.0",
|
|
34
|
+
"socket.io": "^4.8.1",
|
|
35
|
+
"@midscene/core": "0.14.3-beta-20250409031306.0",
|
|
36
|
+
"@midscene/web": "0.14.3-beta-20250409031306.0",
|
|
37
|
+
"@midscene/shared": "0.14.3-beta-20250409031306.0"
|
|
23
38
|
},
|
|
24
39
|
"devDependencies": {
|
|
25
40
|
"@modern-js/module-tools": "2.60.6",
|
|
41
|
+
"@types/cors": "2.8.12",
|
|
42
|
+
"@types/express": "^4.17.21",
|
|
26
43
|
"@types/node": "^18.0.0",
|
|
27
44
|
"dotenv": "16.4.5",
|
|
28
45
|
"typescript": "^5.8.2",
|
|
@@ -30,7 +47,11 @@
|
|
|
30
47
|
},
|
|
31
48
|
"license": "MIT",
|
|
32
49
|
"scripts": {
|
|
50
|
+
"postinstall": "fetch-scrcpy-server 3.1",
|
|
51
|
+
"dev": "modern dev",
|
|
52
|
+
"dev:server": "npm run build && ./bin/playground",
|
|
33
53
|
"build": "modern build -c ./modern.config.ts",
|
|
54
|
+
"build:watch": "modern build -w -c ./modern.config.ts",
|
|
34
55
|
"test": "vitest --run",
|
|
35
56
|
"test:u": "vitest --run -u",
|
|
36
57
|
"test:ai": "MIDSCENE_CACHE=true npm run test"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><title>Rsbuild App</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script defer src="/static/js/lib-polyfill.c3257577.js"></script><script defer src="/static/js/lib-react.bac2292c.js"></script><script defer src="/static/js/792.8ac93205.js"></script><script defer src="/static/js/index.906d88a4.js"></script><link href="/static/css/index.fa8491ca.css" rel="stylesheet"><script src="/scripts/report-template.js"></script></head><body><div id="root"></div></body></html>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*! For license information please see htmlElement.js.LICENSE.txt */
|
|
2
|
+
"use strict";var midscene_element_inspector=(()=>{var e=Object.create,t=Object.defineProperty,n=Object.defineProperties,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertyNames,a=Object.getOwnPropertySymbols,h=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,d=(e,n,r)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,c=(e,t)=>{for(var n in t||(t={}))s.call(t,n)&&d(e,n,t[n]);if(a)for(var n of a(t))l.call(t,n)&&d(e,n,t[n]);return e},f=(e,t)=>n(e,i(t)),u=(e,t)=>function(){return t||(0,e[o(e)[0]])((t={exports:{}}).exports,t),t.exports},p=(e,n,i,a)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let h of o(n))s.call(e,h)||h===i||t(e,h,{get:()=>n[h],enumerable:!(a=r(n,h))||a.enumerable});return e},m=u({"resolve-false:/empty-stub"(e,t){t.exports={}}}),b=u({"../../node_modules/.pnpm/js-sha256@0.11.0/node_modules/js-sha256/src/sha256.js"(e,t){!function(){var e="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA256_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self,o=!r.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;o?r=global:i&&(r=self);var a=!r.JS_SHA256_NO_COMMON_JS&&"object"==typeof t&&t.exports,h="function"==typeof define&&define.amd,s=!r.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,l="0123456789abcdef".split(""),d=[-0x80000000,8388608,32768,128],c=[24,16,8,0],f=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2],u=["hex","array","digest","arrayBuffer"],p=[];(r.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),s&&(r.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var b=function(e,t){return function(n){return new w(t,!0).update(n)[e]()}},y=function(e){var t=b("hex",e);o&&(t=g(t,e)),t.create=function(){return new w(e)},t.update=function(e){return t.create().update(e)};for(var n=0;n<u.length;++n){var r=u[n];t[r]=b(r,e)}return t},g=function(t,n){var i,o=m(),a=m().Buffer,h=n?"sha224":"sha256";return i=a.from&&!r.JS_SHA256_NO_BUFFER_FROM?a.from:function(e){return new a(e)},function(n){if("string"==typeof n)return o.createHash(h).update(n,"utf8").digest("hex");if(null==n)throw Error(e);return n.constructor===ArrayBuffer&&(n=new Uint8Array(n)),Array.isArray(n)||ArrayBuffer.isView(n)||n.constructor===a?o.createHash(h).update(i(n)).digest("hex"):t(n)}},x=function(e,t){return function(n,r){return new T(n,t,!0).update(r)[e]()}},N=function(e){var t=x("hex",e);t.create=function(t){return new T(t,e)},t.update=function(e,n){return t.create(e).update(n)};for(var n=0;n<u.length;++n){var r=u[n];t[r]=x(r,e)}return t};function w(e,t){t?(p[0]=p[16]=p[1]=p[2]=p[3]=p[4]=p[5]=p[6]=p[7]=p[8]=p[9]=p[10]=p[11]=p[12]=p[13]=p[14]=p[15]=0,this.blocks=p):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=0xc1059ed8,this.h1=0x367cd507,this.h2=0x3070dd17,this.h3=0xf70e5939,this.h4=0xffc00b31,this.h5=0x68581511,this.h6=0x64f98fa7,this.h7=0xbefa4fa4):(this.h0=0x6a09e667,this.h1=0xbb67ae85,this.h2=0x3c6ef372,this.h3=0xa54ff53a,this.h4=0x510e527f,this.h5=0x9b05688c,this.h6=0x1f83d9ab,this.h7=0x5be0cd19),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}function T(t,n,r){var i,o=typeof t;if("string"===o){var a,h=[],l=t.length,d=0;for(i=0;i<l;++i)(a=t.charCodeAt(i))<128?h[d++]=a:(a<2048?h[d++]=192|a>>>6:(a<55296||a>=57344?h[d++]=224|a>>>12:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++i)),h[d++]=240|a>>>18,h[d++]=128|a>>>12&63),h[d++]=128|a>>>6&63),h[d++]=128|63&a);t=h}else if("object"===o){if(null===t)throw Error(e);else if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!s||!ArrayBuffer.isView(t)))throw Error(e)}else throw Error(e);t.length>64&&(t=new w(n,!0).update(t).array());var c=[],f=[];for(i=0;i<64;++i){var u=t[i]||0;c[i]=92^u,f[i]=54^u}w.call(this,n,r),this.update(f),this.oKeyPad=c,this.inner=!0,this.sharedMemory=r}w.prototype.update=function(t){if(!this.finalized){var n,r=typeof t;if("string"!==r){if("object"===r){if(null===t)throw Error(e);else if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!s||!ArrayBuffer.isView(t)))throw Error(e)}else throw Error(e);n=!0}for(var i,o,a=0,h=t.length,l=this.blocks;a<h;){if(this.hashed&&(this.hashed=!1,l[0]=this.block,this.block=l[16]=l[1]=l[2]=l[3]=l[4]=l[5]=l[6]=l[7]=l[8]=l[9]=l[10]=l[11]=l[12]=l[13]=l[14]=l[15]=0),n)for(o=this.start;a<h&&o<64;++a)l[o>>>2]|=t[a]<<c[3&o++];else for(o=this.start;a<h&&o<64;++a)(i=t.charCodeAt(a))<128?l[o>>>2]|=i<<c[3&o++]:(i<2048?l[o>>>2]|=(192|i>>>6)<<c[3&o++]:(i<55296||i>=57344?l[o>>>2]|=(224|i>>>12)<<c[3&o++]:(i=65536+((1023&i)<<10|1023&t.charCodeAt(++a)),l[o>>>2]|=(240|i>>>18)<<c[3&o++],l[o>>>2]|=(128|i>>>12&63)<<c[3&o++]),l[o>>>2]|=(128|i>>>6&63)<<c[3&o++]),l[o>>>2]|=(128|63&i)<<c[3&o++]);this.lastByteIndex=o,this.bytes+=o-this.start,o>=64?(this.block=l[16],this.start=o-64,this.hash(),this.hashed=!0):this.start=o}return this.bytes>0xffffffff&&(this.hBytes+=this.bytes/0x100000000<<0,this.bytes=this.bytes%0x100000000),this}},w.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>>2]|=d[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},w.prototype.hash=function(){var e,t,n,r,i,o,a,h,s,l,d,c=this.h0,u=this.h1,p=this.h2,m=this.h3,b=this.h4,y=this.h5,g=this.h6,x=this.h7,N=this.blocks;for(e=16;e<64;++e)t=((i=N[e-15])>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,n=((i=N[e-2])>>>17|i<<15)^(i>>>19|i<<13)^i>>>10,N[e]=N[e-16]+t+N[e-7]+n<<0;for(e=0,d=u&p;e<64;e+=4)this.first?(this.is224?(h=300032,x=(i=N[0]-0x543c9a5b)-0x8f1a6c7<<0,m=i+0x170e9b5<<0):(h=0x2a01a605,x=(i=N[0]-0xc881298)-0x5ab00ac6<<0,m=i+0x8909ae5<<0),this.first=!1):(t=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),n=(b>>>6|b<<26)^(b>>>11|b<<21)^(b>>>25|b<<7),r=(h=c&u)^c&p^d,i=x+n+(b&y^~b&g)+f[e]+N[e],o=t+r,x=m+i<<0,m=i+o<<0),t=(m>>>2|m<<30)^(m>>>13|m<<19)^(m>>>22|m<<10),n=(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7),r=(s=m&c)^m&u^h,i=g+n+(x&b^~x&y)+f[e+1]+N[e+1],o=t+r,g=p+i<<0,t=((p=i+o<<0)>>>2|p<<30)^(p>>>13|p<<19)^(p>>>22|p<<10),n=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7),r=(l=p&m)^p&c^s,i=y+n+(g&x^~g&b)+f[e+2]+N[e+2],o=t+r,y=u+i<<0,t=((u=i+o<<0)>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),n=(y>>>6|y<<26)^(y>>>11|y<<21)^(y>>>25|y<<7),r=(d=u&p)^u&m^l,i=b+n+(y&g^~y&x)+f[e+3]+N[e+3],o=t+r,b=c+i<<0,c=i+o<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+c<<0,this.h1=this.h1+u<<0,this.h2=this.h2+p<<0,this.h3=this.h3+m<<0,this.h4=this.h4+b<<0,this.h5=this.h5+y<<0,this.h6=this.h6+g<<0,this.h7=this.h7+x<<0},w.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,o=this.h5,a=this.h6,h=this.h7,s=l[e>>>28&15]+l[e>>>24&15]+l[e>>>20&15]+l[e>>>16&15]+l[e>>>12&15]+l[e>>>8&15]+l[e>>>4&15]+l[15&e]+l[t>>>28&15]+l[t>>>24&15]+l[t>>>20&15]+l[t>>>16&15]+l[t>>>12&15]+l[t>>>8&15]+l[t>>>4&15]+l[15&t]+l[n>>>28&15]+l[n>>>24&15]+l[n>>>20&15]+l[n>>>16&15]+l[n>>>12&15]+l[n>>>8&15]+l[n>>>4&15]+l[15&n]+l[r>>>28&15]+l[r>>>24&15]+l[r>>>20&15]+l[r>>>16&15]+l[r>>>12&15]+l[r>>>8&15]+l[r>>>4&15]+l[15&r]+l[i>>>28&15]+l[i>>>24&15]+l[i>>>20&15]+l[i>>>16&15]+l[i>>>12&15]+l[i>>>8&15]+l[i>>>4&15]+l[15&i]+l[o>>>28&15]+l[o>>>24&15]+l[o>>>20&15]+l[o>>>16&15]+l[o>>>12&15]+l[o>>>8&15]+l[o>>>4&15]+l[15&o]+l[a>>>28&15]+l[a>>>24&15]+l[a>>>20&15]+l[a>>>16&15]+l[a>>>12&15]+l[a>>>8&15]+l[a>>>4&15]+l[15&a];return this.is224||(s+=l[h>>>28&15]+l[h>>>24&15]+l[h>>>20&15]+l[h>>>16&15]+l[h>>>12&15]+l[h>>>8&15]+l[h>>>4&15]+l[15&h]),s},w.prototype.toString=w.prototype.hex,w.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,o=this.h5,a=this.h6,h=this.h7,s=[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,n>>>24&255,n>>>16&255,n>>>8&255,255&n,r>>>24&255,r>>>16&255,r>>>8&255,255&r,i>>>24&255,i>>>16&255,i>>>8&255,255&i,o>>>24&255,o>>>16&255,o>>>8&255,255&o,a>>>24&255,a>>>16&255,a>>>8&255,255&a];return this.is224||s.push(h>>>24&255,h>>>16&255,h>>>8&255,255&h),s},w.prototype.array=w.prototype.digest,w.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e},T.prototype=new w,T.prototype.finalize=function(){if(w.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();w.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),w.prototype.finalize.call(this)}};var E=y();E.sha256=E,E.sha224=y(!0),E.sha256.hmac=N(),E.sha224.hmac=N(!0),a?t.exports=E:(r.sha256=E.sha256,r.sha224=E.sha224,h&&define(function(){return E}))}()}}),y={};function g(e,t=150){return void 0===e?"":("object"==typeof e&&(e=JSON.stringify(e)),"number"==typeof e)?e.toString():"string"==typeof e&&e.length>t?`${e.slice(0,t)}...`:"string"==typeof e?e.trim():""}function x(e,t,n=!1){let r=e=>Object.entries(e).map(([e,n])=>`${e}="${g(n,t)}"`).join(" ");return(function e(i,o=0){var a,h;let s="",l="",d="",c=!0,f=" ".repeat(o),u="";for(let t=0;t<(i.children||[]).length;t++){let n=e(i.children[t],o+1);n&&(u+=`
|
|
3
|
+
${n}`)}if(i.node&&i.node.rect.width>4&&i.node.rect.height>4&&(!n||n&&i.node.content)){let e;c=!1,e=(null==(a=i.node.attributes)?void 0:a.htmlTagName)?i.node.attributes.htmlTagName.replace(/[<>]/g,""):i.node.attributes.nodeType.replace(/\sNode$/,"").toLowerCase();let n=i.node.indexId,o=n?`markerId="${n}"`:"",u=i.node.rect?{left:i.node.rect.left,top:i.node.rect.top,width:i.node.rect.width,height:i.node.rect.height}:{};s=`<${e} id="${i.node.id}" ${o} ${r((h=i.node.attributes||{},Object.keys(h).reduce((e,n)=>{let r=h[n];return"style"===n||"src"===n||"htmlTagName"===n||"nodeType"===n||(e[n]=g(r,t)),e},{})))} ${r(u)}>`;let p=g(i.node.content,t);l=p?`
|
|
4
|
+
${f} ${p}`:"",d=`</${e}>`}else!n&&(u.trim().startsWith("<>")||(s="<>",l="",d="</>"));if(c&&!u.trim())return"";let p=`${f}${s}${l}${u}
|
|
5
|
+
${f}${d}`;return p.trim()?p:""})(e).replace(/^\s*\n/gm,"")}function N(e){let t=[];return!function e(n){for(let r of(n.node&&t.push(n.node),n.children))e(r)}(e),t}function w(e,t){return!function e(n){for(let r of(n.node&&(n.node=t(n.node)),n.children))e(r)}(e),e}function T(e){return e instanceof Element&&(window.getComputedStyle(e).fontFamily||"").toLowerCase().indexOf("iconfont")>=0}function E(e){if(!(e instanceof HTMLElement))return!1;if(e.innerText)return!0;for(let t of["svg","button","input","textarea","select","option","img"])if(e.querySelectorAll(t).length>0)return!0;return!1}((e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})})(y,{clientExtractTextWithPosition:()=>R,descriptionOfTree:()=>x,traverseTree:()=>w,treeToList:()=>N,webExtractNodeTree:()=>U,webExtractNodeTreeAsString:()=>z,webExtractTextWithPosition:()=>k});var v=((n,r,i)=>(i=null!=n?e(h(n)):{},p(n&&n.__esModule?i:t(i,"default",{value:n,enumerable:!0}),n)))(b()),M={},A=!1;function O(...e){A&&console.log(...e)}var C="_midscene_retrieve_task_id";function _(e,t,n,r){if(!(e instanceof r.HTMLElement))return"";if(!C)return console.error("No task id found"),"";let i=`[${C}='${t}']`;return A&&(n?e.parentNode instanceof r.HTMLElement&&e.parentNode.setAttribute(C,t.toString()):e.setAttribute(C,t.toString())),i}function S(e,t){let n=Math.max(e.left,t.left),r=Math.max(e.top,t.top),i=Math.min(e.right,t.right),o=Math.min(e.bottom,t.bottom);return n<i&&r<o?{left:n,top:r,right:i,bottom:o,width:i-n,height:o-r,x:n,y:r,zoom:1}:null}function H(e,t,n){let r,i=1;if(e instanceof n.HTMLElement)r=e.getBoundingClientRect(),"currentCSSZoom"in e||(i=Number.parseFloat(n.getComputedStyle(e).zoom)||1);else{let t=n.document.createRange();t.selectNodeContents(e),r=t.getBoundingClientRect()}let o=i*t;return{width:r.width*o,height:r.height*o,left:r.left*o,top:r.top*o,right:r.right*o,bottom:r.bottom*o,x:r.x*o,y:r.y*o,zoom:o}}var L=(e,t,n)=>{let r=t.left+t.width/2,i=t.top+t.height/2,o=n.document.elementFromPoint(r,i);return!(!o||o===e||(null==e?void 0:e.contains(o))||(null==o?void 0:o.contains(e)))&&!!S(t,H(o,1,n))&&(O(e,"Element is covered by another element",{topElement:o,el:e,rect:t,x:r,y:i}),!0)};function I(e,t){return e&&e instanceof t.HTMLElement&&e.attributes?Object.fromEntries(Array.from(e.attributes).map(e=>{if("class"===e.name)return[e.name,`.${e.value.split(" ").join(".")}`];if(!e.value)return[];let t=e.value;return t.startsWith("data:image")&&(t="image"),t.length>300&&(t=`${t.slice(0,300)}...`),[e.name,t]})):{}}function j(e,t,n){return function(e,t=""){let n=JSON.stringify({content:t,rect:e}),r=5,i="",o=v.sha256.create().update(n).hex().split("").map(e=>String.fromCharCode(97+Number.parseInt(e,16)%26)).join("");for(;r<o.length-1;){if(M[i=o.slice(0,r)]&&M[i]!==n){r++;continue}M[i]=n;break}return i}(n,t)}var B=0;function $(e){let t="";e instanceof HTMLElement&&(t=e.tagName.toLowerCase());let n=e.parentElement;return n&&n instanceof HTMLElement&&(t=n.tagName.toLowerCase()),t?`<${t}>`:""}function W(e,t,n,r=1,i={left:0,top:0}){var o;let a=function(e,t,n,r=1){if(!e||!(e instanceof t.HTMLElement)&&e.nodeType!==Node.TEXT_NODE&&"svg"!==e.nodeName.toLowerCase())return O(e,"Element is not in the DOM hierarchy"),!1;if(e instanceof t.HTMLElement){let n=t.getComputedStyle(e);if("none"===n.display||"hidden"===n.visibility||"0"===n.opacity&&"INPUT"!==e.tagName)return O(e,"Element is hidden"),!1}let i=H(e,r,t);if(0===i.width&&0===i.height)return O(e,"Element has no size"),!1;if(1===r&&L(e,i,t))return!1;let o=t.pageXOffset||n.documentElement.scrollLeft,a=t.pageYOffset||n.documentElement.scrollTop,h=t.innerWidth||n.documentElement.clientWidth,s=t.innerHeight||n.documentElement.clientHeight;if(!function(e,t,n){let r=e.height,i=e.width,o=S(e,{left:0,top:0,width:t.innerWidth||n.documentElement.clientWidth,height:t.innerHeight||n.documentElement.clientHeight,right:t.innerWidth||n.documentElement.clientWidth,bottom:t.innerHeight||n.documentElement.clientHeight,x:0,y:0,zoom:1});return!!o&&o.width*o.height/(r*i)>=2/3}(i,t,n))return O(e,"Element is completely outside the viewport",{rect:i,viewportHeight:s,viewportWidth:h,scrollTop:a,scrollLeft:o}),!1;let l=e,d=e=>{let n=null==e?void 0:e.parentElement;for(;n;){if("static"!==t.getComputedStyle(n).position)return n;n=n.parentElement}return null};for(;l&&l!==n.body;){if(!(l instanceof t.HTMLElement)){l=l.parentElement;continue}let n=t.getComputedStyle(l);if("hidden"===n.overflow){let n=H(l,1,t);if(i.right<n.left-10||i.left>n.right+10||i.bottom<n.top-10||i.top>n.bottom+10)return O(e,"element is partially or totally hidden by an ancestor",{rect:i,parentRect:n}),!1}if("fixed"===n.position||"sticky"===n.position)break;l="absolute"===n.position?d(l):l.parentElement}return{left:Math.round(i.left),top:Math.round(i.top),width:Math.round(i.width),height:Math.round(i.height),zoom:i.zoom}}(e,t,n,r);if(!a||a.width<3||a.height<3||((0!==i.left||0!==i.top)&&(a.left+=i.left,a.top+=i.top),a.height>=window.innerHeight&&a.width>=window.innerWidth))return null;if(e instanceof HTMLElement&&("input"===e.tagName.toLowerCase()||"textarea"===e.tagName.toLowerCase()||"select"===e.tagName.toLowerCase()||"option"===e.tagName.toLowerCase())){let n=I(e,t),r=n.value||n.placeholder||e.textContent||"",i=j(e,r,a),o=_(e,i,!1,t),h=e.tagName.toLowerCase();return"select"===e.tagName.toLowerCase()&&(r=e.options[e.selectedIndex].textContent||""),("input"===e.tagName.toLowerCase()||"textarea"===e.tagName.toLowerCase())&&e.value&&(r=e.value),{id:i,nodeHashId:i,locator:o,nodeType:"FORM_ITEM Node",indexId:B++,attributes:f(c({},n),{htmlTagName:`<${h}>`,nodeType:"FORM_ITEM Node"}),content:r.trim(),rect:a,center:[Math.round(a.left+a.width/2),Math.round(a.top+a.height/2)],zoom:a.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if(e instanceof HTMLElement&&"button"===e.tagName.toLowerCase()){let n=I(e,t),r=function(e,t){if(!(e instanceof t.HTMLElement))return{before:"",after:""};let n=t.getComputedStyle(e,"::before").getPropertyValue("content"),r=t.getComputedStyle(e,"::after").getPropertyValue("content");return{before:"none"===n?"":n.replace(/"/g,""),after:"none"===r?"":r.replace(/"/g,"")}}(e,t),i=e.innerText||r.before||r.after||"",o=j(e,i,a),h=_(e,o,!1,t);return{id:o,indexId:B++,nodeHashId:o,nodeType:"BUTTON Node",locator:h,attributes:f(c({},n),{htmlTagName:$(e),nodeType:"BUTTON Node"}),content:i,rect:a,center:[Math.round(a.left+a.width/2),Math.round(a.top+a.height/2)],zoom:a.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if(!E(e)&&e instanceof Element&&"none"!==window.getComputedStyle(e).getPropertyValue("background-image")||T(e)||e instanceof HTMLElement&&"img"===e.tagName.toLowerCase()||e instanceof SVGElement&&"svg"===e.tagName.toLowerCase()){let n=I(e,t),r=j(e,"",a),i=_(e,r,!1,t);return{id:r,indexId:B++,nodeHashId:r,locator:i,attributes:f(c(c({},n),"svg"===e.nodeName.toLowerCase()?{svgContent:"true"}:{}),{nodeType:"IMG Node",htmlTagName:$(e)}),nodeType:"IMG Node",content:"",rect:a,center:[Math.round(a.left+a.width/2),Math.round(a.top+a.height/2)],zoom:a.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if("#text"===e.nodeName.toLowerCase()&&!T(e)){let n=null==(o=e.textContent)?void 0:o.trim().replace(/\n+/g," ");if(!n)return null;let r=I(e,t),i=Object.keys(r);if(!n.trim()&&0===i.length)return null;let h=j(e,n,a),s=_(e,h,!0,t);return{id:h,indexId:B++,nodeHashId:h,nodeType:"TEXT Node",locator:s,attributes:f(c({},r),{nodeType:"TEXT Node",htmlTagName:$(e)}),center:[Math.round(a.left+a.width/2),Math.round(a.top+a.height/2)],content:n,rect:a,zoom:a.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if(!(!(e instanceof HTMLElement)||E(e))&&window.getComputedStyle(e).getPropertyValue("background-color")){let n=I(e,t),r=j(e,"",a),i=_(e,r,!1,t);return{id:r,nodeHashId:r,indexId:B++,nodeType:"CONTAINER Node",locator:i,attributes:f(c({},n),{nodeType:"CONTAINER Node",htmlTagName:$(e)}),content:"",rect:a,center:[Math.round(a.left+a.width/2),Math.round(a.top+a.height/2)],zoom:a.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}return null}function k(e,t=!1){let n=U(e,t),r=[];return!function e(t){t.node&&r.push(t.node);for(let n=0;n<t.children.length;n++)e(t.children[n])}({children:n.children,node:n.node}),r}function z(e,t=!1){return x(U(e,t))}function U(e,t=!1){A=t,B=0;let n=document.body||document,r=e||n,i=[];function o(e,t,n,r=1,i={left:0,top:0}){if(!e||e.nodeType&&10===e.nodeType)return null;let a=W(e,t,n,r,i);if(e instanceof t.HTMLIFrameElement&&e.contentWindow&&e.contentWindow)return null;let h={node:a,children:[]};if((null==a?void 0:a.nodeType)==="BUTTON Node"||(null==a?void 0:a.nodeType)==="IMG Node"||(null==a?void 0:a.nodeType)==="TEXT Node"||(null==a?void 0:a.nodeType)==="FORM_ITEM Node"||(null==a?void 0:a.nodeType)==="CONTAINER Node")return h;let s=H(e,r,t);for(let r=0;r<e.childNodes.length;r++){O("will dfs",e.childNodes[r]);let a=o(e.childNodes[r],t,n,s.zoom,i);a&&h.children.push(a)}return h}let a=o(r,window,document,1,{left:0,top:0});if(a&&i.push(a),r===n){let e=document.querySelectorAll("iframe");for(let t=0;t<e.length;t++){let n=e[t];if(n.contentDocument&&n.contentWindow){let e=W(n,window,document,1);if(e){let t=o(n.contentDocument.body,n.contentWindow,n.contentDocument,1,{left:e.rect.left,top:e.rect.top});t&&i.push(t)}}}}return{node:null,children:i}}function R(e){let t=[],n=1;return!function e(r,i=null){if(!r)return;let o={node:r,children:[]};if(i&&i.children.push(o),function(e){var r;let i,o=function(e){var t;let n={};if(e&&1===e.nodeType)for(let r=0;r<e.attributes.length;r++){let i=e.attributes[r];n[i.nodeName]=null!=(t=i.nodeValue)?t:""}return n}(e),a=function(e){var t,n,r,i;let o=Math.round(Number.parseFloat(null!=(t=e.x)?t:"0")),a=Math.round(Number.parseFloat(null!=(n=e.y)?n:"0"));return{left:Math.max(0,Math.floor(o)),top:Math.max(0,Math.floor(a)),width:Math.max(0,Math.round(Number.parseFloat(null!=(r=e.width)?r:"0"))),height:Math.max(0,Math.round(Number.parseFloat(null!=(i=e.height)?i:"0")))}}(o),h=j(null,o.placeholder,a),s=3===e.nodeType&&(null==(r=e.nodeValue)?void 0:r.trim())||"";switch(e.nodeName.toUpperCase()){case"TEXT":i="TEXT Node";break;case"IMAGE":i="IMG Node";break;case"BUTTON":i="BUTTON Node";break;case"SEARCHINPUT":case"TEXTINPUT":case"INPUT":i="FORM_ITEM Node";break;case"NAV":case"LIST":case"CELL":i="CONTAINER Node";break;default:i="android:id/input"===o.id||"android:id/inputArea"===o.id?"FORM_ITEM Node":"CONTAINER Node"}let l=function(e){if(1!==e.nodeType)return"";let t=(e,t)=>{let n=1;for(let r=e.previousSibling;r;r=r.previousSibling)1===r.nodeType&&r.nodeName===t&&n++;return n},n=e=>{for(let t of["id","resource-id","content-desc","class"])if(e.hasAttribute(t)){let n=e.getAttribute(t);if(n&&""!==n.trim())return`[@${t}="${n}"]`}return""},r=(e,i="")=>{if(e.parentNode&&(i=r(e.parentNode,i)),1===e.nodeType){let r=e.nodeName.toLowerCase(),o=`/${r}`,a=n(e);if(a)o+=a;else{let n=t(e,e.nodeName);n>1&&(o+=`[${n}]`)}i+=o}return i};return r(e)}(e),d={id:h,indexId:n++,nodeHashId:h,locator:l,attributes:c({nodeType:i},o),content:s,rect:a,center:[Math.round(a.left+a.width/2),Math.round(a.top+a.height/2)],nodeType:i};"CONTAINER Node"!==d.nodeType&&t.push(d)}(r),r.childNodes&&r.childNodes.length>0)for(let t=0;t<r.childNodes.length;t++)e(r.childNodes[t],o)}(e,{node:e,children:[]}),t}return p(t({},"__esModule",{value:!0}),y)})();
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*! Bundled license information:
|
|
2
|
+
|
|
3
|
+
js-sha256/src/sha256.js:
|
|
4
|
+
(**
|
|
5
|
+
* [js-sha256]{@link https://github.com/emn178/js-sha256}
|
|
6
|
+
*
|
|
7
|
+
* @version 0.11.0
|
|
8
|
+
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
9
|
+
* @copyright Chen, Yi-Cyuan 2014-2024
|
|
10
|
+
* @license MIT
|
|
11
|
+
*)
|
|
12
|
+
*/
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see htmlElementDebug.js.LICENSE.txt */
|
|
2
|
+
"use strict";var midscene_element_inspector=(()=>{var e=Object.create,t=Object.defineProperty,n=Object.defineProperties,i=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,a=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,f=(e,n,i)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i,c=(e,t)=>{for(var n in t||(t={}))s.call(t,n)&&f(e,n,t[n]);if(h)for(var n of h(t))l.call(t,n)&&f(e,n,t[n]);return e},d=(e,t)=>n(e,r(t)),u=(e,t)=>function(){return t||(0,e[o(e)[0]])((t={exports:{}}).exports,t),t.exports},p=(e,n,r,h)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let a of o(n))s.call(e,a)||a===r||t(e,a,{get:()=>n[a],enumerable:!(h=i(n,a))||h.enumerable});return e},m=u({"resolve-false:/empty-stub"(e,t){t.exports={}}});function y(e){return e instanceof Element&&(window.getComputedStyle(e).fontFamily||"").toLowerCase().indexOf("iconfont")>=0}function b(e){if(!(e instanceof HTMLElement))return!1;if(e.innerText)return!0;for(let t of["svg","button","input","textarea","select","option","img"])if(e.querySelectorAll(t).length>0)return!0;return!1}var g=((n,i,r)=>(r=null!=n?e(a(n)):{},p(n&&n.__esModule?r:t(r,"default",{value:n,enumerable:!0}),n)))(u({"../../node_modules/.pnpm/js-sha256@0.11.0/node_modules/js-sha256/src/sha256.js"(e,t){!function(){var e="input is invalid type",n="object"==typeof window,i=n?window:{};i.JS_SHA256_NO_WINDOW&&(n=!1);var r=!n&&"object"==typeof self,o=!i.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;o?i=global:r&&(i=self);var h=!i.JS_SHA256_NO_COMMON_JS&&"object"==typeof t&&t.exports,a="function"==typeof define&&define.amd,s=!i.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,l="0123456789abcdef".split(""),f=[-0x80000000,8388608,32768,128],c=[24,16,8,0],d=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2],u=["hex","array","digest","arrayBuffer"],p=[];(i.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),s&&(i.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var y=function(e,t){return function(n){return new N(t,!0).update(n)[e]()}},b=function(e){var t=y("hex",e);o&&(t=g(t,e)),t.create=function(){return new N(e)},t.update=function(e){return t.create().update(e)};for(var n=0;n<u.length;++n){var i=u[n];t[i]=y(i,e)}return t},g=function(t,n){var r,o=m(),h=m().Buffer,a=n?"sha224":"sha256";return r=h.from&&!i.JS_SHA256_NO_BUFFER_FROM?h.from:function(e){return new h(e)},function(n){if("string"==typeof n)return o.createHash(a).update(n,"utf8").digest("hex");if(null==n)throw Error(e);return n.constructor===ArrayBuffer&&(n=new Uint8Array(n)),Array.isArray(n)||ArrayBuffer.isView(n)||n.constructor===h?o.createHash(a).update(r(n)).digest("hex"):t(n)}},x=function(e,t){return function(n,i){return new T(n,t,!0).update(i)[e]()}},w=function(e){var t=x("hex",e);t.create=function(t){return new T(t,e)},t.update=function(e,n){return t.create(e).update(n)};for(var n=0;n<u.length;++n){var i=u[n];t[i]=x(i,e)}return t};function N(e,t){t?(p[0]=p[16]=p[1]=p[2]=p[3]=p[4]=p[5]=p[6]=p[7]=p[8]=p[9]=p[10]=p[11]=p[12]=p[13]=p[14]=p[15]=0,this.blocks=p):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=0xc1059ed8,this.h1=0x367cd507,this.h2=0x3070dd17,this.h3=0xf70e5939,this.h4=0xffc00b31,this.h5=0x68581511,this.h6=0x64f98fa7,this.h7=0xbefa4fa4):(this.h0=0x6a09e667,this.h1=0xbb67ae85,this.h2=0x3c6ef372,this.h3=0xa54ff53a,this.h4=0x510e527f,this.h5=0x9b05688c,this.h6=0x1f83d9ab,this.h7=0x5be0cd19),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}function T(t,n,i){var r,o=typeof t;if("string"===o){var h,a=[],l=t.length,f=0;for(r=0;r<l;++r)(h=t.charCodeAt(r))<128?a[f++]=h:(h<2048?a[f++]=192|h>>>6:(h<55296||h>=57344?a[f++]=224|h>>>12:(h=65536+((1023&h)<<10|1023&t.charCodeAt(++r)),a[f++]=240|h>>>18,a[f++]=128|h>>>12&63),a[f++]=128|h>>>6&63),a[f++]=128|63&h);t=a}else if("object"===o){if(null===t)throw Error(e);else if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!s||!ArrayBuffer.isView(t)))throw Error(e)}else throw Error(e);t.length>64&&(t=new N(n,!0).update(t).array());var c=[],d=[];for(r=0;r<64;++r){var u=t[r]||0;c[r]=92^u,d[r]=54^u}N.call(this,n,i),this.update(d),this.oKeyPad=c,this.inner=!0,this.sharedMemory=i}N.prototype.update=function(t){if(!this.finalized){var n,i=typeof t;if("string"!==i){if("object"===i){if(null===t)throw Error(e);else if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!s||!ArrayBuffer.isView(t)))throw Error(e)}else throw Error(e);n=!0}for(var r,o,h=0,a=t.length,l=this.blocks;h<a;){if(this.hashed&&(this.hashed=!1,l[0]=this.block,this.block=l[16]=l[1]=l[2]=l[3]=l[4]=l[5]=l[6]=l[7]=l[8]=l[9]=l[10]=l[11]=l[12]=l[13]=l[14]=l[15]=0),n)for(o=this.start;h<a&&o<64;++h)l[o>>>2]|=t[h]<<c[3&o++];else for(o=this.start;h<a&&o<64;++h)(r=t.charCodeAt(h))<128?l[o>>>2]|=r<<c[3&o++]:(r<2048?l[o>>>2]|=(192|r>>>6)<<c[3&o++]:(r<55296||r>=57344?l[o>>>2]|=(224|r>>>12)<<c[3&o++]:(r=65536+((1023&r)<<10|1023&t.charCodeAt(++h)),l[o>>>2]|=(240|r>>>18)<<c[3&o++],l[o>>>2]|=(128|r>>>12&63)<<c[3&o++]),l[o>>>2]|=(128|r>>>6&63)<<c[3&o++]),l[o>>>2]|=(128|63&r)<<c[3&o++]);this.lastByteIndex=o,this.bytes+=o-this.start,o>=64?(this.block=l[16],this.start=o-64,this.hash(),this.hashed=!0):this.start=o}return this.bytes>0xffffffff&&(this.hBytes+=this.bytes/0x100000000<<0,this.bytes=this.bytes%0x100000000),this}},N.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>>2]|=f[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},N.prototype.hash=function(){var e,t,n,i,r,o,h,a,s,l,f,c=this.h0,u=this.h1,p=this.h2,m=this.h3,y=this.h4,b=this.h5,g=this.h6,x=this.h7,w=this.blocks;for(e=16;e<64;++e)t=((r=w[e-15])>>>7|r<<25)^(r>>>18|r<<14)^r>>>3,n=((r=w[e-2])>>>17|r<<15)^(r>>>19|r<<13)^r>>>10,w[e]=w[e-16]+t+w[e-7]+n<<0;for(e=0,f=u&p;e<64;e+=4)this.first?(this.is224?(a=300032,x=(r=w[0]-0x543c9a5b)-0x8f1a6c7<<0,m=r+0x170e9b5<<0):(a=0x2a01a605,x=(r=w[0]-0xc881298)-0x5ab00ac6<<0,m=r+0x8909ae5<<0),this.first=!1):(t=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),n=(y>>>6|y<<26)^(y>>>11|y<<21)^(y>>>25|y<<7),i=(a=c&u)^c&p^f,r=x+n+(y&b^~y&g)+d[e]+w[e],o=t+i,x=m+r<<0,m=r+o<<0),t=(m>>>2|m<<30)^(m>>>13|m<<19)^(m>>>22|m<<10),n=(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7),i=(s=m&c)^m&u^a,r=g+n+(x&y^~x&b)+d[e+1]+w[e+1],o=t+i,g=p+r<<0,t=((p=r+o<<0)>>>2|p<<30)^(p>>>13|p<<19)^(p>>>22|p<<10),n=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7),i=(l=p&m)^p&c^s,r=b+n+(g&x^~g&y)+d[e+2]+w[e+2],o=t+i,b=u+r<<0,t=((u=r+o<<0)>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),n=(b>>>6|b<<26)^(b>>>11|b<<21)^(b>>>25|b<<7),i=(f=u&p)^u&m^l,r=y+n+(b&g^~b&x)+d[e+3]+w[e+3],o=t+i,y=c+r<<0,c=r+o<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+c<<0,this.h1=this.h1+u<<0,this.h2=this.h2+p<<0,this.h3=this.h3+m<<0,this.h4=this.h4+y<<0,this.h5=this.h5+b<<0,this.h6=this.h6+g<<0,this.h7=this.h7+x<<0},N.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,h=this.h6,a=this.h7,s=l[e>>>28&15]+l[e>>>24&15]+l[e>>>20&15]+l[e>>>16&15]+l[e>>>12&15]+l[e>>>8&15]+l[e>>>4&15]+l[15&e]+l[t>>>28&15]+l[t>>>24&15]+l[t>>>20&15]+l[t>>>16&15]+l[t>>>12&15]+l[t>>>8&15]+l[t>>>4&15]+l[15&t]+l[n>>>28&15]+l[n>>>24&15]+l[n>>>20&15]+l[n>>>16&15]+l[n>>>12&15]+l[n>>>8&15]+l[n>>>4&15]+l[15&n]+l[i>>>28&15]+l[i>>>24&15]+l[i>>>20&15]+l[i>>>16&15]+l[i>>>12&15]+l[i>>>8&15]+l[i>>>4&15]+l[15&i]+l[r>>>28&15]+l[r>>>24&15]+l[r>>>20&15]+l[r>>>16&15]+l[r>>>12&15]+l[r>>>8&15]+l[r>>>4&15]+l[15&r]+l[o>>>28&15]+l[o>>>24&15]+l[o>>>20&15]+l[o>>>16&15]+l[o>>>12&15]+l[o>>>8&15]+l[o>>>4&15]+l[15&o]+l[h>>>28&15]+l[h>>>24&15]+l[h>>>20&15]+l[h>>>16&15]+l[h>>>12&15]+l[h>>>8&15]+l[h>>>4&15]+l[15&h];return this.is224||(s+=l[a>>>28&15]+l[a>>>24&15]+l[a>>>20&15]+l[a>>>16&15]+l[a>>>12&15]+l[a>>>8&15]+l[a>>>4&15]+l[15&a]),s},N.prototype.toString=N.prototype.hex,N.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,h=this.h6,a=this.h7,s=[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,n>>>24&255,n>>>16&255,n>>>8&255,255&n,i>>>24&255,i>>>16&255,i>>>8&255,255&i,r>>>24&255,r>>>16&255,r>>>8&255,255&r,o>>>24&255,o>>>16&255,o>>>8&255,255&o,h>>>24&255,h>>>16&255,h>>>8&255,255&h];return this.is224||s.push(a>>>24&255,a>>>16&255,a>>>8&255,255&a),s},N.prototype.array=N.prototype.digest,N.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e},T.prototype=new N,T.prototype.finalize=function(){if(N.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();N.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),N.prototype.finalize.call(this)}};var v=b();v.sha256=v,v.sha224=b(!0),v.sha256.hmac=w(),v.sha224.hmac=w(!0),h?t.exports=v:(i.sha256=v.sha256,i.sha224=v.sha224,a&&define(function(){return v}))}()}})()),x={},w=!1;function N(...e){w&&console.log(...e)}var T="_midscene_retrieve_task_id";function v(e,t,n,i){if(!(e instanceof i.HTMLElement))return"";if(!T)return console.error("No task id found"),"";let r=`[${T}='${t}']`;return w&&(n?e.parentNode instanceof i.HTMLElement&&e.parentNode.setAttribute(T,t.toString()):e.setAttribute(T,t.toString())),r}function E(e,t){let n=Math.max(e.left,t.left),i=Math.max(e.top,t.top),r=Math.min(e.right,t.right),o=Math.min(e.bottom,t.bottom);return n<r&&i<o?{left:n,top:i,right:r,bottom:o,width:r-n,height:o-i,x:n,y:i,zoom:1}:null}function M(e,t,n){let i,r=1;if(e instanceof n.HTMLElement)i=e.getBoundingClientRect(),"currentCSSZoom"in e||(r=Number.parseFloat(n.getComputedStyle(e).zoom)||1);else{let t=n.document.createRange();t.selectNodeContents(e),i=t.getBoundingClientRect()}let o=r*t;return{width:i.width*o,height:i.height*o,left:i.left*o,top:i.top*o,right:i.right*o,bottom:i.bottom*o,x:i.x*o,y:i.y*o,zoom:o}}var A=(e,t,n)=>{let i=t.left+t.width/2,r=t.top+t.height/2,o=n.document.elementFromPoint(i,r);return!(!o||o===e||(null==e?void 0:e.contains(o))||(null==o?void 0:o.contains(e)))&&!!E(t,M(o,1,n))&&(N(e,"Element is covered by another element",{topElement:o,el:e,rect:t,x:i,y:r}),!0)};function O(e,t,n,i=1){if(!e||!(e instanceof t.HTMLElement)&&e.nodeType!==Node.TEXT_NODE&&"svg"!==e.nodeName.toLowerCase())return N(e,"Element is not in the DOM hierarchy"),!1;if(e instanceof t.HTMLElement){let n=t.getComputedStyle(e);if("none"===n.display||"hidden"===n.visibility||"0"===n.opacity&&"INPUT"!==e.tagName)return N(e,"Element is hidden"),!1}let r=M(e,i,t);if(0===r.width&&0===r.height)return N(e,"Element has no size"),!1;if(1===i&&A(e,r,t))return!1;let o=t.pageXOffset||n.documentElement.scrollLeft,h=t.pageYOffset||n.documentElement.scrollTop,a=t.innerWidth||n.documentElement.clientWidth,s=t.innerHeight||n.documentElement.clientHeight;if(!function(e,t,n){let i=e.height,r=e.width,o=E(e,{left:0,top:0,width:t.innerWidth||n.documentElement.clientWidth,height:t.innerHeight||n.documentElement.clientHeight,right:t.innerWidth||n.documentElement.clientWidth,bottom:t.innerHeight||n.documentElement.clientHeight,x:0,y:0,zoom:1});return!!o&&o.width*o.height/(i*r)>=2/3}(r,t,n))return N(e,"Element is completely outside the viewport",{rect:r,viewportHeight:s,viewportWidth:a,scrollTop:h,scrollLeft:o}),!1;let l=e,f=e=>{let n=null==e?void 0:e.parentElement;for(;n;){if("static"!==t.getComputedStyle(n).position)return n;n=n.parentElement}return null};for(;l&&l!==n.body;){if(!(l instanceof t.HTMLElement)){l=l.parentElement;continue}let n=t.getComputedStyle(l);if("hidden"===n.overflow){let n=M(l,1,t);if(r.right<n.left-10||r.left>n.right+10||r.bottom<n.top-10||r.top>n.bottom+10)return N(e,"element is partially or totally hidden by an ancestor",{rect:r,parentRect:n}),!1}if("fixed"===n.position||"sticky"===n.position)break;l="absolute"===n.position?f(l):l.parentElement}return{left:Math.round(r.left),top:Math.round(r.top),width:Math.round(r.width),height:Math.round(r.height),zoom:r.zoom}}function C(e,t){return e&&e instanceof t.HTMLElement&&e.attributes?Object.fromEntries(Array.from(e.attributes).map(e=>{if("class"===e.name)return[e.name,`.${e.value.split(" ").join(".")}`];if(!e.value)return[];let t=e.value;return t.startsWith("data:image")&&(t="image"),t.length>300&&(t=`${t.slice(0,300)}...`),[e.name,t]})):{}}function _(e,t,n){return function(e,t=""){let n=JSON.stringify({content:t,rect:e}),i=5,r="",o=g.sha256.create().update(n).hex().split("").map(e=>String.fromCharCode(97+Number.parseInt(e,16)%26)).join("");for(;i<o.length-1;){if(x[r=o.slice(0,i)]&&x[r]!==n){i++;continue}x[r]=n;break}return r}(n,t)}var H=0;function S(e){let t="";e instanceof HTMLElement&&(t=e.tagName.toLowerCase());let n=e.parentElement;return n&&n instanceof HTMLElement&&(t=n.tagName.toLowerCase()),t?`<${t}>`:""}function L(e,t,n,i=1,r={left:0,top:0}){var o;let h=O(e,t,n,i);if(!h||h.width<3||h.height<3||((0!==r.left||0!==r.top)&&(h.left+=r.left,h.top+=r.top),h.height>=window.innerHeight&&h.width>=window.innerWidth))return null;if(e instanceof HTMLElement&&("input"===e.tagName.toLowerCase()||"textarea"===e.tagName.toLowerCase()||"select"===e.tagName.toLowerCase()||"option"===e.tagName.toLowerCase())){let n=C(e,t),i=n.value||n.placeholder||e.textContent||"",r=_(e,i,h),o=v(e,r,!1,t),a=e.tagName.toLowerCase();return"select"===e.tagName.toLowerCase()&&(i=e.options[e.selectedIndex].textContent||""),("input"===e.tagName.toLowerCase()||"textarea"===e.tagName.toLowerCase())&&e.value&&(i=e.value),{id:r,nodeHashId:r,locator:o,nodeType:"FORM_ITEM Node",indexId:H++,attributes:d(c({},n),{htmlTagName:`<${a}>`,nodeType:"FORM_ITEM Node"}),content:i.trim(),rect:h,center:[Math.round(h.left+h.width/2),Math.round(h.top+h.height/2)],zoom:h.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if(e instanceof HTMLElement&&"button"===e.tagName.toLowerCase()){let n=C(e,t),i=function(e,t){if(!(e instanceof t.HTMLElement))return{before:"",after:""};let n=t.getComputedStyle(e,"::before").getPropertyValue("content"),i=t.getComputedStyle(e,"::after").getPropertyValue("content");return{before:"none"===n?"":n.replace(/"/g,""),after:"none"===i?"":i.replace(/"/g,"")}}(e,t),r=e.innerText||i.before||i.after||"",o=_(e,r,h),a=v(e,o,!1,t);return{id:o,indexId:H++,nodeHashId:o,nodeType:"BUTTON Node",locator:a,attributes:d(c({},n),{htmlTagName:S(e),nodeType:"BUTTON Node"}),content:r,rect:h,center:[Math.round(h.left+h.width/2),Math.round(h.top+h.height/2)],zoom:h.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if(!b(e)&&e instanceof Element&&"none"!==window.getComputedStyle(e).getPropertyValue("background-image")||y(e)||e instanceof HTMLElement&&"img"===e.tagName.toLowerCase()||e instanceof SVGElement&&"svg"===e.tagName.toLowerCase()){let n=C(e,t),i=_(e,"",h),r=v(e,i,!1,t);return{id:i,indexId:H++,nodeHashId:i,locator:r,attributes:d(c(c({},n),"svg"===e.nodeName.toLowerCase()?{svgContent:"true"}:{}),{nodeType:"IMG Node",htmlTagName:S(e)}),nodeType:"IMG Node",content:"",rect:h,center:[Math.round(h.left+h.width/2),Math.round(h.top+h.height/2)],zoom:h.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if("#text"===e.nodeName.toLowerCase()&&!y(e)){let n=null==(o=e.textContent)?void 0:o.trim().replace(/\n+/g," ");if(!n)return null;let i=C(e,t),r=Object.keys(i);if(!n.trim()&&0===r.length)return null;let a=_(e,n,h),s=v(e,a,!0,t);return{id:a,indexId:H++,nodeHashId:a,nodeType:"TEXT Node",locator:s,attributes:d(c({},i),{nodeType:"TEXT Node",htmlTagName:S(e)}),center:[Math.round(h.left+h.width/2),Math.round(h.top+h.height/2)],content:n,rect:h,zoom:h.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}if(!(!(e instanceof HTMLElement)||b(e))&&window.getComputedStyle(e).getPropertyValue("background-color")){let n=C(e,t),i=_(e,"",h),r=v(e,i,!1,t);return{id:i,nodeHashId:i,indexId:H++,nodeType:"CONTAINER Node",locator:r,attributes:d(c({},n),{nodeType:"CONTAINER Node",htmlTagName:S(e)}),content:"",rect:h,center:[Math.round(h.left+h.width/2),Math.round(h.top+h.height/2)],zoom:h.zoom,screenWidth:t.innerWidth,screenHeight:t.innerHeight}}return null}function z(e,t=!1){let n=function(e,t=!1){w=t,H=0;let n=document.body||document,i=e||n,r=[];function o(e,t,n,i=1,r={left:0,top:0}){if(!e||e.nodeType&&10===e.nodeType)return null;let h=L(e,t,n,i,r);if(e instanceof t.HTMLIFrameElement&&e.contentWindow&&e.contentWindow)return null;let a={node:h,children:[]};if((null==h?void 0:h.nodeType)==="BUTTON Node"||(null==h?void 0:h.nodeType)==="IMG Node"||(null==h?void 0:h.nodeType)==="TEXT Node"||(null==h?void 0:h.nodeType)==="FORM_ITEM Node"||(null==h?void 0:h.nodeType)==="CONTAINER Node")return a;let s=M(e,i,t);for(let i=0;i<e.childNodes.length;i++){N("will dfs",e.childNodes[i]);let h=o(e.childNodes[i],t,n,s.zoom,r);h&&a.children.push(h)}return a}let h=o(i,window,document,1,{left:0,top:0});if(h&&r.push(h),i===n){let e=document.querySelectorAll("iframe");for(let t=0;t<e.length;t++){let n=e[t];if(n.contentDocument&&n.contentWindow){let e=L(n,window,document,1);if(e){let t=o(n.contentDocument.body,n.contentWindow,n.contentDocument,1,{left:e.rect.left,top:e.rect.top});t&&r.push(t)}}}}return{node:null,children:r}}(e,t),i=[];return!function e(t){t.node&&i.push(t.node);for(let n=0;n<t.children.length;n++)e(t.children[n])}({children:n.children,node:n.node}),i}console.log(z(document.body,!0)),console.log(JSON.stringify(z(document.body,!0))),"undefined"!=typeof window&&(window.extractTextWithPosition=z),"undefined"!=typeof window&&(window.midsceneVisibleRect=O)})();
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*! Bundled license information:
|
|
2
|
+
|
|
3
|
+
js-sha256/src/sha256.js:
|
|
4
|
+
(**
|
|
5
|
+
* [js-sha256]{@link https://github.com/emn178/js-sha256}
|
|
6
|
+
*
|
|
7
|
+
* @version 0.11.0
|
|
8
|
+
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
9
|
+
* @copyright Chen, Yi-Cyuan 2014-2024
|
|
10
|
+
* @license MIT
|
|
11
|
+
*)
|
|
12
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/stop-water-flow.js","sources":["webpack://android-playground/./src/scripts/stop-water-flow.ts"],"sourcesContent":["if (typeof window.midsceneWaterFlowAnimation !== 'undefined') {\n window.midsceneWaterFlowAnimation.disable();\n}\n"],"names":["window"],"mappings":"AAAiD,SAAtCA,OAAO,0BAA0B,EAC1CA,OAAO,0BAA0B,CAAC,OAAO,G"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
(()=>{"use strict";var t={};t.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var e={};t.r(e),window.midsceneWaterFlowAnimation=window.midsceneWaterFlowAnimation||{styleElement:null,mousePointerAttribute:"data-water-flow-pointer",lastCallTime:0,cleanupTimeout:null,registerSelfCleaning(){this.lastCallTime=Date.now(),this.cleanupTimeout&&clearTimeout(this.cleanupTimeout),this.cleanupTimeout=window.setTimeout(()=>{Date.now()-this.lastCallTime>=3e4&&this.disable()},3e4)},showMousePointer(t,e){this.enable(),this.registerSelfCleaning();let r=document.querySelector(`div[${this.mousePointerAttribute}]`);if(r){let t=Number(r.getAttribute("data-timeout-id"));t&&clearTimeout(t);let e=Number(r.getAttribute("data-remove-timeout-id"));e&&clearTimeout(e)}let n=r||(()=>{let r=document.createElement("div");return r.setAttribute(this.mousePointerAttribute,"true"),r.style.position="fixed",r.style.width="30px",r.style.height="30px",r.style.borderRadius="50%",r.style.backgroundColor="rgba(0, 0, 255, 0.3)",r.style.border="1px solid rgba(0, 0, 255, 0.3)",r.style.zIndex="99999",r.style.transition="all 1s ease-in",r.style.pointerEvents="none",r.style.left=`${t-15}px`,r.style.top=`${e-15}px`,document.body.appendChild(r),r})();requestAnimationFrame(()=>{n.style.left=`${t-15}px`,n.style.top=`${e-15}px`,n.style.opacity="1"});let a=setTimeout(()=>{n.style.opacity="0";let t=setTimeout(()=>{n.parentNode&&document.body.removeChild(n)},500);n.setAttribute("data-remove-timeout-id",String(t))},3e3);n.setAttribute("data-timeout-id",String(a))},hideMousePointer(){this.registerSelfCleaning();let t=document.querySelector(`div[${this.mousePointerAttribute}]`);t&&document.body.removeChild(t)},enable(){if(this.registerSelfCleaning(),this.styleElement){if(document.head.contains(this.styleElement))return;this.styleElement=null}this.styleElement=document.createElement("style"),this.styleElement.id="water-flow-animation",this.styleElement.textContent=`
|
|
2
|
+
html::before {
|
|
3
|
+
content: "";
|
|
4
|
+
position: fixed;
|
|
5
|
+
top: 0; right: 0; bottom: 0; left: 0;
|
|
6
|
+
pointer-events: none;
|
|
7
|
+
z-index: 9999;
|
|
8
|
+
background:
|
|
9
|
+
linear-gradient(to right, rgba(30, 144, 255, 0.4), transparent 50%) left,
|
|
10
|
+
linear-gradient(to left, rgba(30, 144, 255, 0.4), transparent 50%) right,
|
|
11
|
+
linear-gradient(to bottom, rgba(30, 144, 255, 0.4), transparent 50%) top,
|
|
12
|
+
linear-gradient(to top, rgba(30, 144, 255, 0.4), transparent 50%) bottom;
|
|
13
|
+
background-repeat: no-repeat;
|
|
14
|
+
background-size: 10% 100%, 10% 100%, 100% 10%, 100% 10%;
|
|
15
|
+
animation: waterflow 5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
16
|
+
filter: blur(8px);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@keyframes waterflow {
|
|
20
|
+
0%, 100% {
|
|
21
|
+
background-image:
|
|
22
|
+
linear-gradient(to right, rgba(30, 144, 255, 0.4), transparent 50%),
|
|
23
|
+
linear-gradient(to left, rgba(30, 144, 255, 0.4), transparent 50%),
|
|
24
|
+
linear-gradient(to bottom, rgba(30, 144, 255, 0.4), transparent 50%),
|
|
25
|
+
linear-gradient(to top, rgba(30, 144, 255, 0.4), transparent 50%);
|
|
26
|
+
transform: scale(1);
|
|
27
|
+
}
|
|
28
|
+
25% {
|
|
29
|
+
background-image:
|
|
30
|
+
linear-gradient(to right, rgba(30, 144, 255, 0.39), transparent 52%),
|
|
31
|
+
linear-gradient(to left, rgba(30, 144, 255, 0.39), transparent 52%),
|
|
32
|
+
linear-gradient(to bottom, rgba(30, 144, 255, 0.39), transparent 52%),
|
|
33
|
+
linear-gradient(to top, rgba(30, 144, 255, 0.39), transparent 52%);
|
|
34
|
+
transform: scale(1.03);
|
|
35
|
+
}
|
|
36
|
+
50% {
|
|
37
|
+
background-image:
|
|
38
|
+
linear-gradient(to right, rgba(30, 144, 255, 0.38), transparent 55%),
|
|
39
|
+
linear-gradient(to left, rgba(30, 144, 255, 0.38), transparent 55%),
|
|
40
|
+
linear-gradient(to bottom, rgba(30, 144, 255, 0.38), transparent 55%),
|
|
41
|
+
linear-gradient(to top, rgba(30, 144, 255, 0.38), transparent 55%);
|
|
42
|
+
transform: scale(1.05);
|
|
43
|
+
}
|
|
44
|
+
75% {
|
|
45
|
+
background-image:
|
|
46
|
+
linear-gradient(to right, rgba(30, 144, 255, 0.39), transparent 52%),
|
|
47
|
+
linear-gradient(to left, rgba(30, 144, 255, 0.39), transparent 52%),
|
|
48
|
+
linear-gradient(to bottom, rgba(30, 144, 255, 0.39), transparent 52%),
|
|
49
|
+
linear-gradient(to top, rgba(30, 144, 255, 0.39), transparent 52%);
|
|
50
|
+
transform: scale(1.03);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
`,document.head.appendChild(this.styleElement)},disable(){this.cleanupTimeout&&(clearTimeout(this.cleanupTimeout),this.cleanupTimeout=null),document.querySelectorAll("#water-flow-animation").forEach(t=>{document.head.removeChild(t)}),this.styleElement=null,document.querySelectorAll(`div[${this.mousePointerAttribute}]`).forEach(t=>{document.body.removeChild(t)})}},window.midsceneWaterFlowAnimation.enable(),module.exports=e})();
|
|
54
|
+
//# sourceMappingURL=water-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/water-flow.js","sources":["webpack://android-playground/./src/scripts/water-flow.ts"],"sourcesContent":["const midsceneWaterFlowAnimation = {\n styleElement: null as null | HTMLStyleElement,\n\n mousePointerAttribute: 'data-water-flow-pointer',\n\n lastCallTime: 0,\n\n cleanupTimeout: null as null | number,\n\n // call to reset the self cleaning timer\n registerSelfCleaning() {\n // clean up all the indicators if there is no call for 30 seconds\n this.lastCallTime = Date.now();\n const cleaningTimeout = 30000;\n\n if (this.cleanupTimeout) {\n clearTimeout(this.cleanupTimeout);\n }\n\n this.cleanupTimeout = window.setTimeout(() => {\n const now = Date.now();\n if (now - this.lastCallTime >= cleaningTimeout) {\n this.disable();\n }\n }, cleaningTimeout);\n },\n\n showMousePointer(x: number, y: number) {\n this.enable(); // show water flow animation\n this.registerSelfCleaning();\n const existingPointer = document.querySelector(\n `div[${this.mousePointerAttribute}]`,\n ) as HTMLDivElement | null;\n\n // Clear any existing timeouts to prevent race conditions\n if (existingPointer) {\n const timeoutId = Number(existingPointer.getAttribute('data-timeout-id'));\n if (timeoutId) clearTimeout(timeoutId);\n const removeTimeoutId = Number(\n existingPointer.getAttribute('data-remove-timeout-id'),\n );\n if (removeTimeoutId) clearTimeout(removeTimeoutId);\n }\n\n const size = 30;\n const pointer =\n existingPointer ||\n (() => {\n const p = document.createElement('div');\n p.setAttribute(this.mousePointerAttribute, 'true');\n p.style.position = 'fixed';\n p.style.width = `${size}px`;\n p.style.height = `${size}px`;\n p.style.borderRadius = '50%';\n p.style.backgroundColor = 'rgba(0, 0, 255, 0.3)';\n p.style.border = '1px solid rgba(0, 0, 255, 0.3)';\n p.style.zIndex = '99999';\n p.style.transition = 'all 1s ease-in';\n p.style.pointerEvents = 'none'; // Make pointer not clickable\n // Start from offset position if new pointer\n p.style.left = `${x - size / 2}px`;\n p.style.top = `${y - size / 2}px`;\n document.body.appendChild(p);\n return p;\n })();\n\n requestAnimationFrame(() => {\n pointer.style.left = `${x - size / 2}px`;\n pointer.style.top = `${y - size / 2}px`;\n pointer.style.opacity = '1';\n });\n\n // Set new timeouts\n const fadeTimeoutId = setTimeout(() => {\n pointer.style.opacity = '0';\n const removeTimeoutId = setTimeout(() => {\n if (pointer.parentNode) {\n document.body.removeChild(pointer);\n }\n }, 500);\n pointer.setAttribute('data-remove-timeout-id', String(removeTimeoutId));\n }, 3000);\n pointer.setAttribute('data-timeout-id', String(fadeTimeoutId));\n },\n\n hideMousePointer() {\n this.registerSelfCleaning();\n const pointer = document.querySelector(\n `div[${this.mousePointerAttribute}]`,\n ) as HTMLDivElement | null;\n if (pointer) {\n document.body.removeChild(pointer);\n }\n },\n\n enable() {\n this.registerSelfCleaning();\n if (this.styleElement) {\n // double check if styleElement is still in the dom tree\n if (document.head.contains(this.styleElement)) {\n return;\n }\n this.styleElement = null;\n }\n\n this.styleElement = document.createElement('style');\n this.styleElement.id = 'water-flow-animation';\n this.styleElement.textContent = `\n html::before {\n content: \"\";\n position: fixed;\n top: 0; right: 0; bottom: 0; left: 0;\n pointer-events: none;\n z-index: 9999;\n background:\n linear-gradient(to right, rgba(30, 144, 255, 0.4), transparent 50%) left,\n linear-gradient(to left, rgba(30, 144, 255, 0.4), transparent 50%) right,\n linear-gradient(to bottom, rgba(30, 144, 255, 0.4), transparent 50%) top,\n linear-gradient(to top, rgba(30, 144, 255, 0.4), transparent 50%) bottom;\n background-repeat: no-repeat;\n background-size: 10% 100%, 10% 100%, 100% 10%, 100% 10%;\n animation: waterflow 5s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n filter: blur(8px);\n }\n\n @keyframes waterflow {\n 0%, 100% {\n background-image:\n linear-gradient(to right, rgba(30, 144, 255, 0.4), transparent 50%),\n linear-gradient(to left, rgba(30, 144, 255, 0.4), transparent 50%),\n linear-gradient(to bottom, rgba(30, 144, 255, 0.4), transparent 50%),\n linear-gradient(to top, rgba(30, 144, 255, 0.4), transparent 50%);\n transform: scale(1);\n }\n 25% {\n background-image:\n linear-gradient(to right, rgba(30, 144, 255, 0.39), transparent 52%),\n linear-gradient(to left, rgba(30, 144, 255, 0.39), transparent 52%),\n linear-gradient(to bottom, rgba(30, 144, 255, 0.39), transparent 52%),\n linear-gradient(to top, rgba(30, 144, 255, 0.39), transparent 52%);\n transform: scale(1.03);\n }\n 50% {\n background-image:\n linear-gradient(to right, rgba(30, 144, 255, 0.38), transparent 55%),\n linear-gradient(to left, rgba(30, 144, 255, 0.38), transparent 55%),\n linear-gradient(to bottom, rgba(30, 144, 255, 0.38), transparent 55%),\n linear-gradient(to top, rgba(30, 144, 255, 0.38), transparent 55%);\n transform: scale(1.05);\n }\n 75% {\n background-image:\n linear-gradient(to right, rgba(30, 144, 255, 0.39), transparent 52%),\n linear-gradient(to left, rgba(30, 144, 255, 0.39), transparent 52%),\n linear-gradient(to bottom, rgba(30, 144, 255, 0.39), transparent 52%),\n linear-gradient(to top, rgba(30, 144, 255, 0.39), transparent 52%);\n transform: scale(1.03);\n }\n }\n `;\n document.head.appendChild(this.styleElement);\n },\n\n disable() {\n if (this.cleanupTimeout) {\n clearTimeout(this.cleanupTimeout);\n this.cleanupTimeout = null;\n }\n\n const styleElements = document.querySelectorAll('#water-flow-animation');\n styleElements.forEach((element) => {\n document.head.removeChild(element);\n });\n this.styleElement = null;\n\n // remove all mouse pointers\n const mousePointers = document.querySelectorAll(\n `div[${this.mousePointerAttribute}]`,\n );\n mousePointers.forEach((element) => {\n document.body.removeChild(element);\n });\n },\n};\n\nexport {};\ndeclare global {\n interface Window {\n midsceneWaterFlowAnimation: typeof midsceneWaterFlowAnimation;\n }\n}\n(window as any).midsceneWaterFlowAnimation =\n (window as any).midsceneWaterFlowAnimation || midsceneWaterFlowAnimation;\n(window as any).midsceneWaterFlowAnimation.enable();\n"],"names":["window","Date","clearTimeout","x","y","existingPointer","document","timeoutId","Number","removeTimeoutId","pointer","p","size","requestAnimationFrame","fadeTimeoutId","setTimeout","String","styleElements","element","mousePointers"],"mappings":"mNA+LCA,OAAe,0BAA0B,CACvCA,OAAe,0BAA0B,EAhMT,CACjC,aAAc,KAEd,sBAAuB,0BAEvB,aAAc,EAEd,eAAgB,KAGhB,uBAEE,IAAI,CAAC,YAAY,CAAGC,KAAK,GAAG,GAGxB,IAAI,CAAC,cAAc,EACrBC,aAAa,IAAI,CAAC,cAAc,EAGlC,IAAI,CAAC,cAAc,CAAGF,OAAO,UAAU,CAAC,KAC1BC,KAAK,GAAG,GACV,IAAI,CAAC,YAAY,EARL,KASpB,IAAI,CAAC,OAAO,EAEhB,EAXwB,IAY1B,EAEA,iBAAiBE,CAAS,CAAEC,CAAS,EACnC,IAAI,CAAC,MAAM,GACX,IAAI,CAAC,oBAAoB,GACzB,IAAMC,EAAkBC,SAAS,aAAa,CAC5C,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAItC,GAAID,EAAiB,CACnB,IAAME,EAAYC,OAAOH,EAAgB,YAAY,CAAC,oBAClDE,GAAWL,aAAaK,GAC5B,IAAME,EAAkBD,OACtBH,EAAgB,YAAY,CAAC,2BAE3BI,GAAiBP,aAAaO,EACpC,CAGA,IAAMC,EACJL,GACC,AAAC,MACA,IAAMM,EAAIL,SAAS,aAAa,CAAC,OAejC,OAdAK,EAAE,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAE,QAC3CA,EAAE,KAAK,CAAC,QAAQ,CAAG,QACnBA,EAAE,KAAK,CAAC,KAAK,CAAG,OAChBA,EAAE,KAAK,CAAC,MAAM,CAAG,OACjBA,EAAE,KAAK,CAAC,YAAY,CAAG,MACvBA,EAAE,KAAK,CAAC,eAAe,CAAG,uBAC1BA,EAAE,KAAK,CAAC,MAAM,CAAG,iCACjBA,EAAE,KAAK,CAAC,MAAM,CAAG,QACjBA,EAAE,KAAK,CAAC,UAAU,CAAG,iBACrBA,EAAE,KAAK,CAAC,aAAa,CAAG,OAExBA,EAAE,KAAK,CAAC,IAAI,CAAG,CAAC,EAAER,EAAIS,GAAS,EAAE,CAAC,CAClCD,EAAE,KAAK,CAAC,GAAG,CAAG,CAAC,EAAEP,EAAIQ,GAAS,EAAE,CAAC,CACjCN,SAAS,IAAI,CAAC,WAAW,CAACK,GACnBA,CACT,KAEFE,sBAAsB,KACpBH,EAAQ,KAAK,CAAC,IAAI,CAAG,CAAC,EAAEP,EAAIS,GAAS,EAAE,CAAC,CACxCF,EAAQ,KAAK,CAAC,GAAG,CAAG,CAAC,EAAEN,EAAIQ,GAAS,EAAE,CAAC,CACvCF,EAAQ,KAAK,CAAC,OAAO,CAAG,GAC1B,GAGA,IAAMI,EAAgBC,WAAW,KAC/BL,EAAQ,KAAK,CAAC,OAAO,CAAG,IACxB,IAAMD,EAAkBM,WAAW,KAC7BL,EAAQ,UAAU,EACpBJ,SAAS,IAAI,CAAC,WAAW,CAACI,EAE9B,EAAG,KACHA,EAAQ,YAAY,CAAC,yBAA0BM,OAAOP,GACxD,EAAG,KACHC,EAAQ,YAAY,CAAC,kBAAmBM,OAAOF,GACjD,EAEA,mBACE,IAAI,CAAC,oBAAoB,GACzB,IAAMJ,EAAUJ,SAAS,aAAa,CACpC,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAElCI,GACFJ,SAAS,IAAI,CAAC,WAAW,CAACI,EAE9B,EAEA,SAEE,GADA,IAAI,CAAC,oBAAoB,GACrB,IAAI,CAAC,YAAY,CAAE,CAErB,GAAIJ,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAC1C,MAEF,KAAI,CAAC,YAAY,CAAG,IACtB,CAEA,IAAI,CAAC,YAAY,CAAGA,SAAS,aAAa,CAAC,SAC3C,IAAI,CAAC,YAAY,CAAC,EAAE,CAAG,uBACvB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoDhC,CAAC,CACDA,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAC7C,EAEA,UACM,IAAI,CAAC,cAAc,GACrBJ,aAAa,IAAI,CAAC,cAAc,EAChC,IAAI,CAAC,cAAc,CAAG,MAIxBe,AADsBX,SAAS,gBAAgB,CAAC,yBAClC,OAAO,CAAC,AAACY,IACrBZ,SAAS,IAAI,CAAC,WAAW,CAACY,EAC5B,GACA,IAAI,CAAC,YAAY,CAAG,KAMpBC,AAHsBb,SAAS,gBAAgB,CAC7C,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAExB,OAAO,CAAC,AAACY,IACrBZ,SAAS,IAAI,CAAC,WAAW,CAACY,EAC5B,EACF,CACF,EAUClB,OAAe,0BAA0B,CAAC,MAAM,G"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px}.popup-wrapper{box-sizing:border-box;background:#fff;flex-direction:column;width:100%;height:100%;padding:20px 0;display:flex}.popup-wrapper .tabs-container{flex-grow:1}.popup-wrapper .ant-tabs-nav{box-sizing:border-box;padding:0 20px}.popup-wrapper .popup-header{padding:0 20px}.popup-wrapper .hr{box-sizing:border-box;border-top:1px solid #e5e5e5;width:100%;margin-bottom:15px;padding:0 20px}.popup-wrapper .popup-playground-container,.popup-wrapper .popup-bridge-container{flex-grow:1}.popup-wrapper .popup-bridge-container{box-sizing:border-box;padding:0 20px}.popup-wrapper .popup-footer{color:#ccc;text-align:center;width:100%}.playground-container .playground-left-panel{background-color:#fff;flex-direction:column;justify-content:space-between;width:100%;height:100%;display:flex;overflow-y:auto!important}.playground-container .playground-left-panel .ant-form{flex-direction:column;flex-grow:1;justify-content:center;height:100%;display:flex}.playground-container .input-wrapper{box-sizing:border-box}.playground-container .input-wrapper .main-side-console-input{margin-top:4px;position:relative}.playground-container .input-wrapper .ant-input{padding-bottom:40px}.playground-container .input-wrapper .form-controller-wrapper{box-sizing:border-box;flex-direction:row;justify-content:space-between;align-items:flex-end;gap:8px;width:100%;padding:0 12px;display:flex;position:absolute;bottom:8px;left:0}.playground-container .input-wrapper .settings-wrapper{color:#777;flex-flow:wrap;gap:2px;display:flex}.playground-container .input-wrapper .settings-wrapper.settings-wrapper-hover{color:#3b3b3b}.playground-container .input-wrapper .history-selector{margin-right:8px}.playground-drawer .ant-drawer-body{padding:0}.bridge-status-bar{box-sizing:border-box;border:1px solid #ccc;border-radius:5px;flex-direction:row;justify-content:space-between;height:56px;padding:0 10px;line-height:56px;display:flex}.bridge-status-bar .bridge-status-text{text-overflow:ellipsis;white-space:nowrap;flex-direction:row;flex-grow:1;align-items:center;display:flex;overflow:hidden}.bridge-status-bar .bridge-status-text .bridge-status-tip{text-overflow:ellipsis;white-space:nowrap;flex-grow:1;margin-left:6px;overflow:hidden}.bridge-status-bar .bridge-status-btn{flex-direction:column;justify-content:center;align-items:center;display:flex}.bridge-log-container{flex-grow:1}.bridge-log-container .bridge-log-item-content{word-break:break-all;white-space:pre-wrap;text-overflow:ellipsis;width:100%;overflow:hidden}.app-container{background-color:#f5f5f5;flex-direction:column;width:100%;height:100vh;display:flex}.app-grid-layout{height:100%}.app-panel{background-color:#fff;border-radius:8px;height:100%;transition:box-shadow .3s;box-shadow:0 1px 2px #0000000d}.app-panel:hover{box-shadow:0 2px 8px #00000017}.panel-content{flex-direction:column;height:100%;padding:16px;display:flex;overflow:auto}.panel-content h2{color:#1677ff;border-bottom:1px solid #f0f0f0;margin-bottom:16px;padding-bottom:8px;font-size:18px}.panel-content canvas{border:1px solid #f0f0f0;border-radius:4px;max-width:100%;margin-top:16px}@media (max-width:768px){.app-container{height:auto;min-height:100vh}.app-panel{height:auto;min-height:200px;margin-bottom:16px}.panel-content{padding:12px}.panel-content h2{margin-bottom:12px;padding-bottom:6px;font-size:16px}.panel-content textarea{min-height:100px}}@media (min-width:769px) and (max-width:992px){.app-panel{height:auto;min-height:300px;margin-bottom:16px}}.resize-handle{background-color:#f0f0f0;width:2px;transition:background-color .2s}.resize-handle:hover{background-color:#1677ff}.scrcpy-container{max-width:1200px;margin:0 auto}.scrcpy-container .video-section{position:relative}.scrcpy-container .video-section .video-container{background-color:#f0f0f0;border:1px solid #e0e0e0;border-radius:4px;justify-content:center;align-items:center;width:100%;min-height:300px;display:flex;overflow:hidden}.scrcpy-container .video-section .video-container canvas{margin:0 auto;display:block}.scrcpy-container .video-section .video-container:empty:after{content:"Connect a device to display the screen";color:#999;font-size:14px}.scrcpy-container .video-section .screen-info{color:#fff;background-color:#00000080;border-radius:4px;padding:2px 8px;font-size:12px;position:absolute;bottom:8px;right:8px}.scrcpy-container .controls-section{flex-wrap:wrap;gap:16px;margin-top:16px;display:flex}.scrcpy-container .controls-section .button-group{gap:8px;margin-right:16px;display:flex}@media (max-width:768px){.scrcpy-container .controls-section .button-group{margin-bottom:8px;margin-right:0}.scrcpy-container .controls-section{flex-direction:column;align-items:flex-start}}@media (max-width:576px){.scrcpy-container .controls-section{flex-direction:column}.scrcpy-container .controls-section .ant-space{margin-bottom:8px}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px}.playground-container{width:100%;height:100%}.playground-container.vertical-mode{height:inherit}.playground-container.vertical-mode .form-part{margin-bottom:15px}.playground-container.vertical-mode .form-part h3{font-size:14px;line-height:1.6}.playground-container .playground-header{padding:10px 10px 30px}.playground-container .playground-left-panel{background-color:#fff;flex-direction:column;justify-content:space-between;width:100%;display:flex;overflow-y:auto!important}.playground-container .playground-left-panel .ant-form{flex-direction:column;flex-grow:1;justify-content:center;display:flex}.playground-container .form-part{margin-bottom:20px;padding:0 20px}.playground-container .form-part h3{margin-top:0;margin-bottom:12px;font-size:18px}.playground-container .form-part .switch-btn-wrapper{margin-left:2px}.playground-container .loading-container{box-sizing:border-box;flex-direction:column;align-items:center;padding:20px;display:flex}.playground-container .loading-container .loading-progress-text{text-align:center;color:#777;width:100%;margin-top:16px}.playground-container .loading-container .loading-progress-text-tab-info{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.playground-container .loading-container .loading-progress-text-progress{height:60px}.playground-container .result-wrapper{box-sizing:border-box;background-color:#f8f8f8;border-radius:4px;flex-direction:column;justify-content:center;width:100%;height:100%;padding:20px;display:flex}.playground-container .result-wrapper.result-wrapper-compact{padding:0}.playground-container .result-wrapper.vertical-mode-result{height:inherit;min-height:300px}.playground-container .result-wrapper .result-empty-tip{text-align:center;color:#ccc;width:100%}.playground-container .result-wrapper pre{word-wrap:break-word;white-space:pre-wrap;display:block}.input-wrapper{box-sizing:border-box}.input-wrapper .main-side-console-input{margin-top:4px;position:relative}.input-wrapper .ant-input{padding-bottom:40px}.input-wrapper .form-controller-wrapper{box-sizing:border-box;flex-direction:row;justify-content:space-between;align-items:flex-end;gap:8px;width:100%;padding:0 12px;display:flex;position:absolute;bottom:8px;left:0}.input-wrapper .settings-wrapper{color:#777;flex-flow:wrap;gap:2px;display:flex}.input-wrapper .settings-wrapper.settings-wrapper-hover{color:#3b3b3b}.input-wrapper .history-selector{margin-right:8px}.player-container{box-sizing:border-box;background:#434443dd;border:1px solid #979797;border-radius:6px;flex-direction:column;width:-moz-fit-content;width:fit-content;max-width:100%;max-height:100%;margin:0 auto;padding:12px 0 0;line-height:100%;display:flex;overflow:hidden}.player-container .canvas-container{flex-grow:1;justify-content:center;align-items:center;padding:0 12px;display:flex;overflow:hidden}.player-container .canvas-container canvas{box-sizing:border-box;max-width:100%;max-height:100%;margin:0 auto;display:block}.player-container .player-timeline{background:#666;width:100%;height:4px;margin-top:-2px;position:relative}.player-container .player-timeline .player-timeline-progress{background:#06b1ab;height:4px;transition-timing-function:linear;position:absolute;top:0;left:0}.player-container .player-tools{color:#fff;box-sizing:border-box;flex-direction:row;flex-shrink:0;justify-content:space-between;max-width:100%;height:40px;margin-top:15px;margin-bottom:15px;padding:0 12px;font-size:16px;display:flex;overflow:hidden}.player-container .player-tools .player-control{align-items:left;flex-direction:row;flex-grow:1;display:flex}.player-container .player-tools .status-icon{background:#666;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-right:12px;transition:all .2s;display:flex}.player-container .player-tools .status-text{flex-grow:1;position:relative;overflow:hidden}.player-container .player-tools .title{text-overflow:ellipsis;white-space:nowrap;width:100%;height:20px;font-weight:700;line-height:20px;position:absolute;top:0;left:0;overflow:hidden}.player-container .player-tools .subtitle{text-overflow:ellipsis;white-space:nowrap;width:100%;height:20px;line-height:20px;position:absolute;top:18px;left:0;overflow:hidden}.player-container .player-tools .player-tools-item{flex-direction:column;justify-content:center;height:100%;display:flex}.player-container .player-tools .player-tools-item .ant-btn-variant-link{color:#fff}.logo img{vertical-align:baseline;height:30px;vertical-align:-webkit-baseline-middle;line-height:30px}.logo-with-star-wrapper{flex-direction:row;justify-content:space-between;display:flex}.logo-with-star-wrapper .github-star{height:22px}.blackboard .footer{color:#aaa}.blackboard ul{padding-left:0}.blackboard li{list-style:none}.blackboard .bottom-tip{height:30px}.blackboard .bottom-tip-item{color:#aaa;text-overflow:ellipsis;word-wrap:break-word;max-width:500px}.blackboard-filter{margin:10px 0}.blackboard-main-content canvas{box-sizing:border-box;border:1px solid #888;width:100%}
|
|
2
|
+
/*# sourceMappingURL=index.fa8491ca.css.map*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/css/index.fa8491ca.css","sources":["webpack://android-playground/./src/App.css","webpack://android-playground/./home/runner/work/midscene/midscene/apps/android-playground/src/scrcpy-player/index.less","webpack://android-playground/./src/scrcpy-player/index.less","webpack://android-playground/../../packages/visualizer/dist/index.css"],"sourcesContent":["/* src/extension/popup.less */\nbody {\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Noto Sans\",\n Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\";\n font-size: 14px;\n}\n.popup-wrapper {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 20px 0;\n background: #fff;\n display: flex;\n flex-direction: column;\n}\n.popup-wrapper .tabs-container {\n flex-grow: 1;\n}\n.popup-wrapper .ant-tabs-nav {\n padding: 0 20px;\n box-sizing: border-box;\n}\n.popup-wrapper .popup-header {\n padding: 0 20px;\n}\n.popup-wrapper .hr {\n border-top: 1px solid #e5e5e5;\n margin-bottom: 15px;\n width: 100%;\n padding: 0 20px;\n box-sizing: border-box;\n}\n.popup-wrapper .popup-playground-container,\n.popup-wrapper .popup-bridge-container {\n flex-grow: 1;\n}\n.popup-wrapper .popup-bridge-container {\n padding: 0 20px;\n box-sizing: border-box;\n}\n.popup-wrapper .popup-footer {\n color: #ccc;\n text-align: center;\n width: 100%;\n}\n\n/* src/component/logo.less */\n.logo img {\n height: 30px;\n line-height: 30px;\n vertical-align: baseline;\n vertical-align: -webkit-baseline-middle;\n}\n.logo-with-star-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n.logo-with-star-wrapper .github-star {\n height: 22px;\n}\n\n/* src/component/blackboard.less */\n.blackboard .footer {\n color: #aaa;\n}\n.blackboard ul {\n padding-left: 0px;\n}\n.blackboard li {\n list-style: none;\n}\n.blackboard .bottom-tip {\n height: 30px;\n}\n.blackboard .bottom-tip-item {\n max-width: 500px;\n color: #aaa;\n text-overflow: ellipsis;\n word-wrap: break-word;\n}\n.blackboard-filter {\n margin: 10px 0;\n}\n.blackboard-main-content canvas {\n width: 100%;\n border: 1px solid #888;\n box-sizing: border-box;\n}\n\n/* src/component/player.less */\n.player-container {\n width: fit-content;\n max-width: 100%;\n max-height: 100%;\n padding: 12px 0;\n padding-bottom: 0;\n background: #434443dd;\n box-sizing: border-box;\n border: 1px solid #979797;\n border-radius: 6px;\n line-height: 100%;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.player-container .canvas-container {\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n padding: 0 12px;\n}\n.player-container .canvas-container canvas {\n max-width: 100%;\n max-height: 100%;\n box-sizing: border-box;\n display: block;\n margin: 0 auto;\n}\n.player-container .player-timeline {\n width: 100%;\n height: 4px;\n background: #666;\n position: relative;\n margin-top: -2px;\n}\n.player-container .player-timeline .player-timeline-progress {\n transition-timing-function: linear;\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n background: #06b1ab;\n}\n.player-container .player-tools {\n margin-top: 15px;\n margin-bottom: 15px;\n max-width: 100%;\n overflow: hidden;\n color: #fff;\n font-size: 16px;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n padding: 0 12px;\n justify-content: space-between;\n height: 40px;\n flex-shrink: 0;\n}\n.player-container .player-tools .player-control {\n flex-grow: 1;\n display: flex;\n flex-direction: row;\n align-items: left;\n}\n.player-container .player-tools .status-icon {\n transition: 0.2s;\n width: 40px;\n height: 40px;\n margin-right: 12px;\n background: #666;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n.player-container .player-tools .status-text {\n flex-grow: 1;\n overflow: hidden;\n position: relative;\n}\n.player-container .player-tools .title {\n font-weight: bold;\n height: 20px;\n line-height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n}\n.player-container .player-tools .subtitle {\n height: 20px;\n line-height: 20px;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n position: absolute;\n top: 18px;\n left: 0;\n}\n.player-container .player-tools .player-tools-item {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.player-container .player-tools .player-tools-item .ant-btn-variant-link {\n color: #fff;\n}\n\n/* src/component/playground-component.less */\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Noto Sans\",\n Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\";\n font-size: 14px;\n}\n.playground-container {\n width: 100%;\n height: 100%;\n}\n.playground-container.vertical-mode {\n height: inherit;\n}\n.playground-container.vertical-mode .form-part {\n margin-bottom: 15px;\n}\n.playground-container.vertical-mode .form-part h3 {\n font-size: 14px;\n line-height: 1.6;\n}\n.playground-container .playground-header {\n padding: 10px 10px 30px;\n}\n.playground-container .playground-left-panel {\n width: 100%;\n height: 100%;\n background-color: #fff;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow-y: auto !important;\n}\n.playground-container .playground-left-panel .ant-form {\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.playground-container .form-part {\n margin-bottom: 20px;\n padding: 0 20px;\n}\n.playground-container .form-part h3 {\n margin-top: 0;\n margin-bottom: 12px;\n font-size: 18px;\n}\n.playground-container .form-part .switch-btn-wrapper {\n margin-left: 2px;\n}\n.playground-container .input-wrapper {\n box-sizing: border-box;\n}\n.playground-container .input-wrapper .main-side-console-input {\n position: relative;\n margin-top: 4px;\n}\n.playground-container .input-wrapper .ant-input {\n padding-bottom: 40px;\n}\n.playground-container .input-wrapper .form-controller-wrapper {\n position: absolute;\n bottom: 8px;\n padding: 0 12px;\n left: 0px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n box-sizing: border-box;\n align-items: flex-end;\n gap: 8px;\n}\n.playground-container .input-wrapper .settings-wrapper {\n display: flex;\n flex-direction: row;\n gap: 2px;\n color: #777;\n flex-wrap: wrap;\n}\n.playground-container .input-wrapper .settings-wrapper.settings-wrapper-hover {\n color: #3b3b3b;\n}\n.playground-container .input-wrapper .history-selector {\n margin-right: 8px;\n}\n.playground-container .loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n box-sizing: border-box;\n padding: 20px 20px;\n}\n.playground-container .loading-container .loading-progress-text {\n text-align: center;\n width: 100%;\n color: #777;\n margin-top: 16px;\n}\n.playground-container .loading-container .loading-progress-text-tab-info {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.playground-container .loading-container .loading-progress-text-progress {\n height: 60px;\n}\n.playground-container .result-wrapper {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n box-sizing: border-box;\n padding: 20px 20px;\n background-color: #f8f8f8;\n border-radius: 4px;\n}\n.playground-container .result-wrapper.result-wrapper-compact {\n padding: 0;\n}\n.playground-container .result-wrapper.vertical-mode-result {\n height: inherit;\n min-height: 300px;\n}\n.playground-container .result-wrapper .result-empty-tip {\n text-align: center;\n width: 100%;\n color: #ccc;\n}\n.playground-container .result-wrapper pre {\n display: block;\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n\n/* src/component/open-in-playground.less */\n.playground-drawer .ant-drawer-body {\n padding: 0;\n}\n\n/* src/extension/bridge.less */\n.bridge-status-bar {\n height: 56px;\n line-height: 56px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n box-sizing: border-box;\n padding: 0 10px;\n border: 1px solid #ccc;\n border-radius: 5px;\n}\n.bridge-status-bar .bridge-status-text {\n flex-grow: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.bridge-status-bar .bridge-status-text .bridge-status-tip {\n margin-left: 6px;\n flex-grow: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.bridge-status-bar .bridge-status-btn {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n.bridge-log-container {\n flex-grow: 1;\n}\n.bridge-log-container .bridge-log-item-content {\n word-break: break-all;\n white-space: pre-wrap;\n text-overflow: ellipsis;\n width: 100%;\n overflow: hidden;\n}\n\n/* 应用容器样式 */\n.app-container {\n width: 100%;\n height: 100vh;\n display: flex;\n flex-direction: column;\n background-color: #f5f5f5;\n}\n\n/* 网格布局容器 */\n.app-grid-layout {\n height: 100%;\n}\n\n/* 面板样式 */\n.app-panel {\n height: 100%;\n background-color: #fff;\n border-radius: 8px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n transition: box-shadow 0.3s;\n}\n\n.app-panel:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);\n}\n\n/* 面板内容样式 */\n.panel-content {\n padding: 16px;\n height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.panel-content h2 {\n margin-bottom: 16px;\n color: #1677ff;\n font-size: 18px;\n border-bottom: 1px solid #f0f0f0;\n padding-bottom: 8px;\n}\n\n/* 视频播放器样式 */\n.panel-content canvas {\n max-width: 100%;\n margin-top: 16px;\n border: 1px solid #f0f0f0;\n border-radius: 4px;\n}\n\n/* 移动设备响应式布局 */\n@media (max-width: 768px) {\n .app-container {\n height: auto;\n min-height: 100vh;\n }\n\n .app-panel {\n margin-bottom: 16px;\n height: auto;\n min-height: 200px;\n }\n\n .panel-content {\n padding: 12px;\n }\n\n .panel-content h2 {\n font-size: 16px;\n margin-bottom: 12px;\n padding-bottom: 6px;\n }\n\n /* 确保表单元素在小屏幕上有足够空间 */\n .panel-content textarea {\n min-height: 100px;\n }\n}\n\n/* 平板设备响应式布局 */\n@media (min-width: 769px) and (max-width: 992px) {\n .app-panel {\n margin-bottom: 16px;\n height: auto;\n min-height: 300px;\n }\n}\n\n.resize-handle {\n width: 2px;\n background-color: #f0f0f0;\n transition: background-color 0.2s;\n}\n\n.resize-handle:hover {\n background-color: #1677ff;\n}\n",".scrcpy-container {\n max-width: 1200px;\n margin: 0 auto;\n}\n.scrcpy-container .video-section {\n position: relative;\n}\n.scrcpy-container .video-section .video-container {\n width: 100%;\n min-height: 300px;\n background-color: #f0f0f0;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 4px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n.scrcpy-container .video-section .video-container canvas {\n display: block;\n margin: 0 auto;\n}\n.scrcpy-container .video-section .video-container:empty::after {\n content: 'Connect a device to display the screen';\n color: #999;\n font-size: 14px;\n}\n.scrcpy-container .video-section .screen-info {\n position: absolute;\n bottom: 8px;\n right: 8px;\n background-color: rgba(0, 0, 0, 0.5);\n color: white;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 12px;\n}\n.scrcpy-container .controls-section {\n margin-top: 16px;\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n}\n.scrcpy-container .controls-section .button-group {\n display: flex;\n gap: 8px;\n margin-right: 16px;\n}\n@media (max-width: 768px) {\n .scrcpy-container .controls-section .button-group {\n margin-right: 0;\n margin-bottom: 8px;\n }\n}\n@media (max-width: 768px) {\n .scrcpy-container .controls-section {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n/* 确保响应式布局 */\n@media (max-width: 576px) {\n .scrcpy-container .controls-section {\n flex-direction: column;\n }\n .scrcpy-container .controls-section .ant-space {\n margin-bottom: 8px;\n }\n}\n",".scrcpy-container {\n max-width: 1200px;\n margin: 0 auto;\n}\n\n.scrcpy-container .video-section {\n position: relative;\n}\n\n.scrcpy-container .video-section .video-container {\n background-color: #f0f0f0;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n justify-content: center;\n align-items: center;\n width: 100%;\n min-height: 300px;\n display: flex;\n overflow: hidden;\n}\n\n.scrcpy-container .video-section .video-container canvas {\n margin: 0 auto;\n display: block;\n}\n\n.scrcpy-container .video-section .video-container:empty:after {\n content: \"Connect a device to display the screen\";\n color: #999;\n font-size: 14px;\n}\n\n.scrcpy-container .video-section .screen-info {\n color: #fff;\n background-color: #00000080;\n border-radius: 4px;\n padding: 2px 8px;\n font-size: 12px;\n position: absolute;\n bottom: 8px;\n right: 8px;\n}\n\n.scrcpy-container .controls-section {\n flex-wrap: wrap;\n gap: 16px;\n margin-top: 16px;\n display: flex;\n}\n\n.scrcpy-container .controls-section .button-group {\n gap: 8px;\n margin-right: 16px;\n display: flex;\n}\n\n@media (max-width: 768px) {\n .scrcpy-container .controls-section .button-group {\n margin-bottom: 8px;\n margin-right: 0;\n }\n\n .scrcpy-container .controls-section {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n\n@media (max-width: 576px) {\n .scrcpy-container .controls-section {\n flex-direction: column;\n }\n\n .scrcpy-container .controls-section .ant-space {\n margin-bottom: 8px;\n }\n}\n","/* src/component/playground/index.less */\nbody {\n margin: 0;\n font-family:\n -apple-system,\n BlinkMacSystemFont,\n \"Segoe UI\",\n \"Noto Sans\",\n Helvetica,\n Arial,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\";\n font-size: 14px;\n}\n.playground-container {\n width: 100%;\n height: 100%;\n}\n.playground-container.vertical-mode {\n height: inherit;\n}\n.playground-container.vertical-mode .form-part {\n margin-bottom: 15px;\n}\n.playground-container.vertical-mode .form-part h3 {\n font-size: 14px;\n line-height: 1.6;\n}\n.playground-container .playground-header {\n padding: 10px 10px 30px;\n}\n.playground-container .playground-left-panel {\n width: 100%;\n background-color: #FFF;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow-y: auto !important;\n}\n.playground-container .playground-left-panel .ant-form {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.playground-container .form-part {\n margin-bottom: 20px;\n padding: 0 20px;\n}\n.playground-container .form-part h3 {\n margin-top: 0;\n margin-bottom: 12px;\n font-size: 18px;\n}\n.playground-container .form-part .switch-btn-wrapper {\n margin-left: 2px;\n}\n.playground-container .loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n box-sizing: border-box;\n padding: 20px 20px;\n}\n.playground-container .loading-container .loading-progress-text {\n text-align: center;\n width: 100%;\n color: #777;\n margin-top: 16px;\n}\n.playground-container .loading-container .loading-progress-text-tab-info {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.playground-container .loading-container .loading-progress-text-progress {\n height: 60px;\n}\n.playground-container .result-wrapper {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n box-sizing: border-box;\n padding: 20px 20px;\n background-color: #F8F8F8;\n border-radius: 4px;\n}\n.playground-container .result-wrapper.result-wrapper-compact {\n padding: 0;\n}\n.playground-container .result-wrapper.vertical-mode-result {\n height: inherit;\n min-height: 300px;\n}\n.playground-container .result-wrapper .result-empty-tip {\n text-align: center;\n width: 100%;\n color: #CCC;\n}\n.playground-container .result-wrapper pre {\n display: block;\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n.input-wrapper {\n box-sizing: border-box;\n}\n.input-wrapper .main-side-console-input {\n position: relative;\n margin-top: 4px;\n}\n.input-wrapper .ant-input {\n padding-bottom: 40px;\n}\n.input-wrapper .form-controller-wrapper {\n position: absolute;\n bottom: 8px;\n padding: 0 12px;\n left: 0px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n box-sizing: border-box;\n align-items: flex-end;\n gap: 8px;\n}\n.input-wrapper .settings-wrapper {\n display: flex;\n flex-direction: row;\n gap: 2px;\n color: #777;\n flex-wrap: wrap;\n}\n.input-wrapper .settings-wrapper.settings-wrapper-hover {\n color: #3b3b3b;\n}\n.input-wrapper .history-selector {\n margin-right: 8px;\n}\n\n/* src/component/player.less */\n.player-container {\n width: fit-content;\n max-width: 100%;\n max-height: 100%;\n padding: 12px 0;\n padding-bottom: 0;\n background: #434443DD;\n box-sizing: border-box;\n border: 1px solid #979797;\n border-radius: 6px;\n line-height: 100%;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.player-container .canvas-container {\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n padding: 0 12px;\n}\n.player-container .canvas-container canvas {\n max-width: 100%;\n max-height: 100%;\n box-sizing: border-box;\n display: block;\n margin: 0 auto;\n}\n.player-container .player-timeline {\n width: 100%;\n height: 4px;\n background: #666;\n position: relative;\n margin-top: -2px;\n}\n.player-container .player-timeline .player-timeline-progress {\n transition-timing-function: linear;\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n background: #06b1ab;\n}\n.player-container .player-tools {\n margin-top: 15px;\n margin-bottom: 15px;\n max-width: 100%;\n overflow: hidden;\n color: #FFF;\n font-size: 16px;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n padding: 0 12px;\n justify-content: space-between;\n height: 40px;\n flex-shrink: 0;\n}\n.player-container .player-tools .player-control {\n flex-grow: 1;\n display: flex;\n flex-direction: row;\n align-items: left;\n}\n.player-container .player-tools .status-icon {\n transition: 0.2s;\n width: 40px;\n height: 40px;\n margin-right: 12px;\n background: #666;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n.player-container .player-tools .status-text {\n flex-grow: 1;\n overflow: hidden;\n position: relative;\n}\n.player-container .player-tools .title {\n font-weight: bold;\n height: 20px;\n line-height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n}\n.player-container .player-tools .subtitle {\n height: 20px;\n line-height: 20px;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n position: absolute;\n top: 18px;\n left: 0;\n}\n.player-container .player-tools .player-tools-item {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.player-container .player-tools .player-tools-item .ant-btn-variant-link {\n color: #FFF;\n}\n\n/* src/component/logo.less */\n.logo img {\n height: 30px;\n line-height: 30px;\n vertical-align: baseline;\n vertical-align: -webkit-baseline-middle;\n}\n.logo-with-star-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n.logo-with-star-wrapper .github-star {\n height: 22px;\n}\n\n/* src/component/blackboard.less */\n.blackboard .footer {\n color: #aaa;\n}\n.blackboard ul {\n padding-left: 0px;\n}\n.blackboard li {\n list-style: none;\n}\n.blackboard .bottom-tip {\n height: 30px;\n}\n.blackboard .bottom-tip-item {\n max-width: 500px;\n color: #AAA;\n text-overflow: ellipsis;\n word-wrap: break-word;\n}\n.blackboard-filter {\n margin: 10px 0;\n}\n.blackboard-main-content canvas {\n width: 100%;\n border: 1px solid #888;\n box-sizing: border-box;\n}\n"],"names":[],"mappings":"AAAA,mKAOA,8HAUA,2CAIA,kEAKA,4CAIA,mHAQA,8FAIA,4EAKA,qEAqNA,qLAUA,yIAuBA,2DAIA,+FAKA,oEAIA,6OAcA,sGAOA,4FAIA,wEA8DA,8CAIA,2LAYA,gKAUA,gJAQA,mHAOA,kCAIA,2IAQA,mGAQA,6BAIA,wHAQA,gDAIA,yFAQA,qHAQA,gGAOA,yBACE,4CAKA,2DAMA,4BAIA,uEAMA,0CAKF,+CACE,4DAOF,kFAMA,8CCvhBA,iDCMA,mDAIA,yNAYA,qFAKA,yIAMA,4KAWA,yFAOA,yFAMA,yBACE,mFAKA,kFAMF,yBACE,0DAIA,kECzEF,yJAMA,6CAKA,mDAIA,kEAIA,iFAKA,gEAIA,yKASA,6HAOA,mEAKA,mFAMA,qEAIA,kIAQA,wHAOA,mIAMA,qFAIA,qMAYA,uEAIA,2FAKA,gGAMA,kGAMA,qCAIA,yEAKA,8CAIA,uNAcA,gFAOA,sEAIA,kDAIA,mRAiBA,sIASA,4HAQA,2GAQA,4JASA,yPAgBA,6GAOA,gNAaA,2FAMA,wLAaA,8KAYA,yHAOA,oFAIA,sGAOA,sFAMA,iDAIA,+BAIA,8BAIA,+BAIA,oCAIA,oGAOA,iCAIA"}
|