waft-workbench
Version:
waft workbench
1 lines • 30.2 kB
JavaScript
!function(){"use strict";var e,t={1594:function(e){e.exports=React},1874:function(e,t,n){var a=n(1594),l=n.n(a),r=n(5206),s=n.n(r),c=n(9056),o=n(3427),i=n(5399),u=n.n(i),m="X-IGh",d="sXxD2",f=(n(5280),n(997)),p=(n(9820),n(6233)),v=(n(996),n(673)),E=(n(5794),n(2391)),h=(n(4301),n(7980)),w=(n(2870),n(579)),y=n(7838),g="_4vDjl",b="c93pP",S="HUppF",k="wbQQD",N="A1w8t",C="KCjba",O="W1V6F",A="SSUuK",T="Qj6T8",x="IEQVt",j="Xktz+",P="P58bE",z="COTr5",I="yI06A",_=(n(5581),n(1820)),R=(n(9296),n(898)),W=(n(4037),n(8084)),F="bB3Vf",J=n(7785);let M=function(e){return e.cc10="cc10",e.cc7="cc7",e.cc6="cc6",e["d1-86"]="d1-86",e}({});const $={[M.cc10]:{w:1280,h:800},[M.cc7]:{w:1024,h:600},[M.cc6]:{w:960,h:480},[M["d1-86"]]:{w:480,h:480}};let L=function(e){return e.web="web",e.device="device",e.simulator="simulator",e}({});const D={[L.web]:"Web模拟器",[L.simulator]:"Mac模拟器",[L.device]:"真机设备"};let G=function(e){return e.preview="preview",e.run="run",e}({});const K={[G.preview]:"预览模式",[G.run]:"运行模式"};function B(){const{optDev:e}=window.injectGlobal||{},[t]=(0,a.useState)(e||{ip:"localhost",port:"8080",devtoolPort:8020,deviceDevPort:8030,uiPort:8040});return t}function V(){const e=`http://127.0.0.1:${B().port}`,[t]=(0,a.useState)(e);return t}function U(){const e=B(),[t]=(0,a.useState)(`http://127.0.0.1:${e.port}/web/preview.html?action=run`);return t}const q="WAFT-lastDeviceType",H="WAFT-lastSizeType",Q="WAFT-CustomScreenSizes",X=()=>{const e=localStorage.getItem(Q);return JSON.parse(e)||{}},Y=()=>{const e=document.querySelector("#web-devtools");e.src=e.src},Z=()=>{const e=document.querySelector("#waft-web-simulator");e&&(e.src=e.src,setTimeout(()=>{Y()},50))};function ee(){const e=(()=>{switch(localStorage.getItem(q)){case y.ui.ConnectTypes.web:return y.ui.ConnectTypes.web;case y.ui.ConnectTypes.simulator:return y.ui.ConnectTypes.simulator;case y.ui.ConnectTypes.device:return y.ui.ConnectTypes.device;default:return y.ui.ConnectTypes.web}})(),t=(()=>{const e=localStorage.getItem(H),t=X();return Object.keys(t).includes(e)?e:M[e]?M[e]:M.cc7})(),[n,l]=(0,a.useState)(e),[r,s]=(0,a.useState)(t),[c,o]=(0,a.useState)(!1),i={};Object.assign(i,$);const[u,m]=(0,a.useState)(Object.assign(i,X()));(0,a.useEffect)(()=>{n===y.ui.ConnectTypes.web&&Z()},[n,r]),(0,a.useEffect)(()=>{setTimeout(()=>{o(!0)},5e3)},[]);const d=e=>{(e=>{localStorage.setItem(H,e)})(e),s(e)};return{device:n,size:r,setNewDevice:e=>{(e=>{localStorage.setItem(q,e)})(e),l(e)},setNewSize:d,ScreenSizeTotal:u,setNewScreenSizeItem:(e,t)=>{((e,t)=>{const n=JSON.parse(localStorage.getItem(Q))||{};n[e]=t,localStorage.setItem(Q,JSON.stringify(n))})(e,t),m({...u,[e]:t})},deleteCustomScreenSizeItem:e=>{e===r&&d(M.cc7);const t=Object.keys(u),n={};for(const a of t)a!==e&&(n[a]=u[a]);m(n),(e=>{const t=JSON.parse(localStorage.getItem(Q))||{};delete t[e],localStorage.setItem(Q,JSON.stringify(t))})(e)},showWebFrame:c,setShowWebFrame:o}}const te=l().createContext({});function ne(e){const t=function(){const e={type:J.ConnectTypes.web,connected:!1},{devStatus:t}=window.injectGlobal||{},[n]=(0,a.useState)(t||e);return n}(),n=B(),r=function(){const e={device:M.cc7,width:1024,height:600,wasm:"build/app.wasm"},t={installed:!0,version:"0.0.0",isOpen:!1,opts:e},{simulator:n}=window.injectGlobal||{};n&&!n.opts&&(n.opts=e);const[l]=(0,a.useState)(n||t);return l}(),s=function(){const e={watch:!1,push:!0,aot:void 0,aotTarget:void 0,default:"pages/index/index",mock:{dataSource:{desc:"powered by waft",percent:42}}},{buildOpts:t}=window.injectGlobal||{},[n]=(0,a.useState)(t||e);return n}(),c=function(){const{projectOpts:e}=window.injectGlobal||{},[t]=(0,a.useState)(e||{webUrl:"http://localhost:8080/web/preview.html?action=preview&path=pages/index/index"});return t}(),o=ee();return l().createElement(te.Provider,{value:{simulator:r,devStatus:t,optDev:n,buildOpts:s,projectOpts:c,deviceOpts:o}},e.children)}const{TextArea:ae}=W.A;var le=function(e){const{forwardRef:t}=e,[n]=R.A.useForm(),[r,s]=(0,a.useState)("default"),c=(0,a.useContext)(te),{buildOpts:o}=c,i=o?.mock?o?.mock:"",[u,m]=(0,a.useState)([{name:["push"],value:o?.push},{name:["watch"],value:o?.watch},{name:["aot"],value:o?.aot},{name:["aotTarget"],value:o?.aotTarget},{name:["mock"],value:i?JSON.stringify(i,null,2):""}]);(0,a.useImperativeHandle)(t,()=>({buildValidate:async()=>{try{return await n.validateFields(),u}catch{return null}}}),[u]);const d=(0,a.useCallback)((e,t)=>{m([...t])},[]);return l().createElement("div",{className:F},l().createElement(R.A,{form:n,labelCol:{span:4},wrapperCol:{span:20},layout:"horizontal",initialValues:{size:r},onFieldsChange:d,size:"small",labelAlign:"left",fields:u},l().createElement(R.A.Item,{labelCol:{span:10},name:"push",label:"push(无线推送)",valuePropName:"checked"},l().createElement(_.A,{size:"small"})),l().createElement(R.A.Item,{labelCol:{span:10},name:"watch",label:"hotReload(热重载)",valuePropName:"checked"},l().createElement(_.A,{size:"small"})),l().createElement(R.A.Item,{labelCol:{span:10},name:"aot",label:"aot(自动aot)",valuePropName:"checked"},l().createElement(_.A,{size:"small"})),u.filter(e=>"aot"===e.name[0]&&!0===e.value).length>0&&l().createElement(R.A.Item,{labelCol:{span:10},name:"aotTarget",label:"aotTarget"},l().createElement(E.Ay.Group,{defaultValue:"armv7"},l().createElement(E.Ay.Button,{value:"armv7"},"armv7"),l().createElement(E.Ay.Button,{value:"riscv64"},"riscv64"))),l().createElement(R.A.Item,{name:"mock",label:"mock数据",labelCol:{span:10},rules:[({getFieldValue:e})=>({validator(t,n){if(!n)return Promise.resolve();if(e("mock")===n)try{return"object"!=typeof JSON.parse(n)?Promise.reject(new Error("mock is not a json data")):Promise.resolve()}catch{return Promise.reject(new Error("mock is not a json data"))}}})]},l().createElement(ae,{style:{width:"400px",height:"150px"}}))))};let re=String("http://localhost:8080/");function se(e){re=e}const ce=async(e,{data:t,token:n,headers:a,method:l,...r}={})=>{const s={method:l||"GET",headers:{Authorization:n?`Bearer ${n}`:"","Content-Type":t?"application/json":""},...r};return"GET"===s.method.toUpperCase()?e+=`?${encodeURIComponent(JSON.stringify(t))}`:s.body=JSON.stringify(t||{}),window.fetch(`${re}/${e}`,s).then(async e=>{if(401===e.status)return Promise.reject({message:"报错 401"});const t=await e.json();return e.ok?t:Promise.reject(t)})},oe=()=>(se(V()),(...[e,t])=>ce(e,{...t}));var ie="LiKXZ",ue="ClwW8";var me=function(e,t){const[n,l]=(0,a.useState)(e);let r=null;const s=function(){clearTimeout(r)};return(0,a.useEffect)(()=>(r=setTimeout(()=>{l(e)},t),s),[e,t]),n};const{TextArea:de}=W.A;var fe=function(e){const{defaultValue:t,valueRef:n}=e,[r,s]=(0,a.useState)(!0),c=me(r,300),o=(0,a.useCallback)(e=>{n.current=e.target.value,i(n.current)},[r]),i=e=>{try{const t=JSON.parse(e);s("object"==typeof t||""===n.current)}catch{s(""===n.current)}};return(0,a.useEffect)(()=>{n.current=t?JSON.stringify(t):"",i(n.current)},[]),l().createElement("div",null,l().createElement(de,{className:ue,defaultValue:t?JSON.stringify(t,null,2):"",onChange:o}),!c&&l().createElement("div",{className:ie},"mock is not a json data"))};const{TextArea:pe}=W.A;var ve=function(e){const t=oe(),{skillWakenWord:n,updateSkillInfo:r,skillAccessKey:s}=e,[c,o]=(0,a.useState)(s),[i,u]=(0,a.useState)(n),[m,d]=(0,a.useState)(!1),f=()=>{0!==c.length?(d(!0),c.length>0&&t("cloudPlatFrom/bindAccessKey",{method:"POST",data:{ak:c}}).then(e=>{if(0===e.code){const{res:t}=e;r(t),u(t.wakenWord)}else w.default.error(`绑定失败 ${e.message}`)}).finally(()=>{d(!1)})):w.default.error("key 不能为空")};return l().createElement("div",null,l().createElement("div",null,"access key"),l().createElement(pe,{style:{width:"400px",marginRight:"10px"},value:c||"",onChange:e=>{const t=e.target.value;o(t)}}),!s&&(m?l().createElement(h.default,{loading:!0,type:"primary",size:"small"},"绑定中"):l().createElement(h.default,{onClick:f},"绑定")),s&&(m?l().createElement(h.default,{loading:!0,type:"primary",size:"small"},"更新中"):l().createElement(h.default,{onClick:f},"更新")),l().createElement("br",null),l().createElement("br",null),l().createElement("div",null,"调用词"),l().createElement(pe,{style:{width:"400px",marginRight:"10px"},value:i||"",onChange:e=>{const t=e.target.value;u(t)}}),l().createElement(h.default,{onClick:()=>{const e=i||"";0===e.length&&w.default.error("语料不能为空"),t("devtool/pushVoiceCommand",{method:"POST",data:{command:`${e}`}}).then(e=>{0===e.code?w.default.success("语音唤起成功"):w.default.error("语音唤起失败")})}},"测试口令"))},Ee="S+7c0",he="afgil";const{TextArea:we}=W.A;var ye=function(e){const{valueRef:t}=e,[n,r]=(0,a.useState)(!0),s=me(n,300),c=(0,a.useCallback)(e=>{t.current=e.target.value,o(t.current)},[n]),o=e=>{try{const n=JSON.parse(e);r("object"==typeof n||""===t.current)}catch{r(""===t.current)}};return l().createElement("div",null,l().createElement(we,{className:he,onChange:c}),!s&&l().createElement("div",{className:Ee},"mock is not a json data"))};function ge(){return ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ge.apply(null,arguments)}const be=(0,a.forwardRef)((e,t)=>l().createElement(le,ge({forwardRef:t},e))),Se=(0,a.forwardRef)((e,t)=>l().createElement(fe,ge({},e,{valueRef:t}))),ke=(0,a.forwardRef)((e,t)=>l().createElement(ye,ge({},e,{valueRef:t}))),Ne=(0,a.forwardRef)((e,t)=>l().createElement(ve,ge({},e,{valueRef:t})));var Ce=function(e){const t=(0,a.useContext)(te),{buildOpts:n,projectOpts:r,deviceOpts:s}=t,c=(0,a.useRef)(null),o=(0,a.useRef)(null),i=(0,a.useRef)(null),m=(0,a.useRef)(JSON.stringify(n.mock)),d=(0,a.useRef)(null),[_,R]=(0,a.useState)(!1),[W,F]=(0,a.useState)(!1),[J,M]=(0,a.useState)(!1),[$,L]=(0,a.useState)({id:0,name:"",wakenWord:"",accessKey:""}),D=oe();(0,a.useEffect)(()=>{const e=window.location.search;if(e.length>0&&e.includes("?")){const t=e.slice(1).split("&");for(const e of t){const t=e.split("=");if("debug"===t[0]&&t[1]){F(!0);break}}}},[]),(0,a.useEffect)(()=>{D("cloudPlatFrom/infoByAccessKey",{method:"GET"}).then(e=>{const{code:t,res:n}=e;0===t&&n.accessKey&&n.accessKey.length>0?L(n):console.warn("获取技能信息失败",e)}).catch(e=>{console.error(JSON.stringify(e))})},[]);const G=(0,a.useCallback)(e=>{L(e)},[]),K=(0,a.useCallback)(()=>{R(!0),window.AESPluginEvent("wb_build_click",{et:"CLK",c1:n}),D("build",{data:n}).then(e=>{if(0===e.code){const{res:t}=e;w.default.success("编译成功")}else w.default.error(e.message||"编译失败")}).catch(e=>{w.default.error(e)}).finally(()=>{R(!1)})},[]),B=(0,a.useCallback)(async e=>{const{buildValidate:t}=c.current;if(t){const e=await t();if(!e)return void w.default.error("填入的编译参数配置错误");for(const t of e){const[e]=t.name;let{value:a}=t;"mock"===e&&(a=a?JSON.parse(a):""),n[e]=a}K()}},[]),V=(0,a.useCallback)(()=>{const e=o.current;if(!e)return void w.default.error("mock 协议不能为空");let t=null;try{t=JSON.parse(e)}catch{return void w.default.error("mock json 解析失败")}D("devtool/pushMockProtocol",{method:"POST",data:{mock:t}}).then(e=>{0===e.code?w.default.success("mock 协议推送成功"):w.default.error(e.message)})},[]),U=(0,a.useCallback)(()=>{if(0===$.id||""===$.name)return void w.default.error("技能信息不全,无法真机调试");window.AESPluginEvent("wb_device_debug_click",{et:"CLK",c1:$.wakenWord});const e={wakenWord:$.wakenWord};M(!0),D("cloudPlatFrom/uploadWasm",{method:"POST",data:e}).then(e=>{0===e.code?w.default.success("调用成功"):w.default.error(`调用失败:\n ${JSON.stringify(e)}`)}).catch(e=>{w.default.error(JSON.stringify(e))}).finally(()=>{M(!1)})},[$]),q=function(){const e=m.current;let t=null;try{t=JSON.parse(e)}catch{return void w.default.error("mock json 解析失败")}window.AESPluginEvent("wb_push_click",{et:"CLK",c1:t}),D("atom/update",{method:"POST",data:{mock:t}}).then(e=>{0===e.code?(e.res,w.default.success("mock 推送成功")):w.default.error(e.message)})},H=(0,a.useCallback)(()=>{q()},[]),Q=(0,a.useCallback)(()=>{q()},[]),X=(0,a.useMemo)(()=>_?l().createElement(h.default,{loading:_,type:"primary",size:"small"},"编译中"):l().createElement(E.Ay.Group,{className:u()(S),size:"small"},l().createElement(E.Ay.Button,{onClick:K,type:"primary"},l().createElement("div",{className:u()(N)},l().createElement("i",{className:"iconfont icon-bianyi1"}),l().createElement("div",{className:u()(A)},"构建推送"))),l().createElement(v.A,{icon:()=>l().createElement("span",null),placement:"bottomRight",title:e=>l().createElement(be,ge({},e,{ref:c})),cancelText:"取消",okText:"构建推送",onConfirm:B},l().createElement(E.Ay.Button,{className:u()(x)},l().createElement("i",{className:"iconfont icon-Androidgengduo"})))),[_]),Y=(0,a.useMemo)(()=>l().createElement(E.Ay.Group,{className:u()(S),size:"small"},l().createElement(E.Ay.Button,{onClick:V,type:"primary"},l().createElement("div",{className:u()(N)},l().createElement("i",{className:"iconfont icon-tuisong"}),l().createElement("div",{className:u()(A)},"mock 协议"))),l().createElement(v.A,{icon:()=>l().createElement("span",null),placement:"bottomRight",title:e=>l().createElement(ke,ge({},e,{ref:o})),cancelText:"取消",okText:"发送",onConfirm:V},l().createElement(E.Ay.Button,{className:u()(x)},l().createElement("i",{className:"iconfont icon-Androidgengduo"})))),[]),Z=(0,a.useMemo)(()=>{const{buildOpts:e}=t;return console.warn(e),l().createElement(E.Ay.Group,{className:u()(S),size:"small"},l().createElement(E.Ay.Button,{onClick:H,type:"primary"},l().createElement("div",{className:u()(N)},l().createElement("i",{className:"iconfont icon-tuisong"}),l().createElement("div",{className:u()(A)},"模拟消息"))),l().createElement(v.A,{icon:()=>l().createElement("span",null),placement:"bottomRight",title:t=>l().createElement(Se,ge({},t,{defaultValue:e.mock,ref:m})),cancelText:"取消",okText:"发送",onConfirm:Q},l().createElement(E.Ay.Button,{className:u()(x)},l().createElement("i",{className:"iconfont icon-Androidgengduo"}))))},[]),ee=(0,a.useMemo)(()=>{const e=i.current,t=null==e?"{}":e;try{JSON.parse(null==e?"{}":e)}catch{return void w.default.error("mock json 解析失败")}const a={name:"file",action:"/atom/pushBundle",headers:{authorization:"authorization-text"},data:{mock:t},itemRender:()=>l().createElement("div",null),onChange(e){"uploading"!==e.file.status&&(e.file,e.fileList)}};return l().createElement(E.Ay.Group,{className:u()(S),size:"small"},l().createElement(E.Ay.Button,{type:"primary"},l().createElement("div",{className:u()(N)},l().createElement(p.A,a,l().createElement("div",{className:u()(C)},l().createElement("i",{className:`iconfont icon-tuisong ${u()(O)}`}),l().createElement("span",{className:u()(A)},"选包推送"))))),l().createElement(v.A,{icon:()=>l().createElement("span",null),placement:"bottomRight",title:e=>l().createElement(Se,ge({},e,{defaultValue:n.mock,ref:i})),cancelText:"取消",okText:l().createElement(p.A,a,l().createElement("span",{className:u()(T)},"选包推送"))},l().createElement(E.Ay.Button,{className:u()(x)},l().createElement("i",{className:"iconfont icon-Androidgengduo"}))))},[]),ne=(0,a.useMemo)(()=>J?l().createElement(h.default,{loading:J,type:"primary",size:"small"},"上传中"):l().createElement(E.Ay.Group,{className:u()(S),size:"small"},l().createElement(E.Ay.Button,{onClick:U,type:"primary"},l().createElement("div",{className:u()(N)},l().createElement("i",{className:"iconfont icon-tuisong"}),l().createElement("div",{className:u()(A)},"技能调试"))),l().createElement(f.default,{placement:"bottomRight",trigger:"click",title:e=>l().createElement(Ne,ge({},e,{updateSkillInfo:G,skillAccessKey:$.accessKey,skillWakenWord:$.wakenWord,ref:d}))},l().createElement(E.Ay.Button,{className:u()(x)},l().createElement("i",{className:"iconfont icon-Androidgengduo"})))),[$,J]);return l().createElement("div",{className:g},l().createElement("div",{className:j},l().createElement("span",{className:b}," WAFT 工作台 "),l().createElement("div",{className:z},$.name.length>0&&l().createElement("div",{className:P},$.name,":"),$.id>0&&l().createElement("div",{className:I},$.id))),l().createElement("span",{className:k},W&&Y,s.device!==y.ui.ConnectTypes.web&&r.isWaftProject&&[X,Z,ne],!r.isWaftProject&&ee))},Oe=n(3131),Ae="SSyE+",Te="_2M4qR",xe="JxKvj",je=(n(9468),n(4265)),Pe=(n(8447),n(8422)),ze=(n(8254),n(9739)),Ie=(n(8841),n(5760)),_e={choose_box_line:"kb88l",ant_select:"kYRA7","icon-shuaxin":"_51nZ4",menu_title:"dYjd0"};const{Option:Re}=Ie.A,{SubMenu:We}=ze.A;var Fe=function(e){const t=(0,a.useContext)(te),{deviceOpts:n,projectOpts:r}=t,{setNewDevice:s,setNewSize:c,device:o,size:i,ScreenSizeTotal:m,setNewScreenSizeItem:d,deleteCustomScreenSizeItem:f}=n,{json:p={},isWaftProject:v}=r,{pages:E=[],default:w=""}=p,[g,b]=(0,a.useState)(o!==y.ui.ConnectTypes.device),[S,k]=(0,a.useState)(!1),[N,C]=(0,a.useState)(!1),[O]=R.A.useForm(),A=U(),T=(0,a.useCallback)(e=>{window.AESPluginEvent("wb_preview_select_click",{et:"CLK",c1:e}),s(e),e===y.ui.ConnectTypes.web?(b(!0),k(!0)):e===y.ui.ConnectTypes.simulator?(b(!0),k(!1)):(b(!1),k(!1))},[]),x=(0,a.useCallback)(e=>{c(e)},[c]),j=(0,a.useCallback)(()=>E.map(e=>l().createElement(Re,{value:e},e)),[E]),P=(0,a.useCallback)(()=>Object.keys(D).filter(e=>!(e===y.ui.ConnectTypes.simulator&&!/macintosh|mac os x/i.test(navigator.userAgent))&&!(e===y.ui.ConnectTypes.web&&!v)),[r,v]),z=(0,a.useCallback)(()=>P().map(e=>l().createElement(Re,{value:e},D[e])),[P]),I=(0,a.useCallback)(()=>{const e=m;return Object.keys(m).map(t=>{const{w:n,h:a}=e[t];return l().createElement(Re,{value:t},`${t}(${n}*${a})`)})},[m]),_=((0,a.useCallback)(()=>Object.keys(K).map(e=>l().createElement(Re,{value:e},K[e])),[]),(0,a.useCallback)(()=>{const e=X();return Object.keys(e).map(e=>l().createElement(ze.A.Item,{key:e},`${e}`))},[])),F=e=>{f(e.key)},J=P(),M=J.includes(o)?o:J[0];return l().createElement("div",{className:_e.choose_box},l().createElement("div",{className:_e.choose_box_line},l().createElement(Ie.A,{className:u()(_e.ant_select),value:M,size:"small",onChange:T},z()),g&&l().createElement(Ie.A,{defaultValue:i,size:"small",onChange:x,dropdownRender:e=>l().createElement(l().Fragment,null,e,l().createElement(h.default,{type:"link",style:{width:"100%"},onClick:()=>{C(!0)}},"自定义"),l().createElement("br",null),l().createElement(ze.A,{onClick:F,mode:"vertical"},l().createElement(We,{key:"sub4",title:"删除",className:_e.menu_title},_())))},I()),l().createElement(je.A,{title:"添加自定义设备",visible:N,onOk:()=>{O.validateFields().then(e=>{const t=e.name.trim(),n={w:e.width,h:e.height};d(t,n),O.resetFields(),C(!1)})},onCancel:()=>{C(!1)}},l().createElement(R.A,{form:O,name:"test"},l().createElement(R.A.Item,{label:"设备",name:"name",rules:[{required:!0,message:"Please input name!"}]},l().createElement(W.A,null)),l().createElement(R.A.Item,{label:"宽度",name:"width",rules:[{required:!0,message:"Please input width!"}]},l().createElement(Pe.A,null)),l().createElement(R.A.Item,{label:"高度",name:"height",rules:[{required:!0,message:"Please input height!"}]},l().createElement(Pe.A,null))))),l().createElement("div",{className:_e.choose_box_line},o===y.ui.ConnectTypes.web&&l().createElement(l().Fragment,null,l().createElement(Ie.A,{size:"small",defaultValue:w,onChange:e=>{(e=>{const t=document.querySelector("#waft-web-simulator");if(!t)return;const{src:n}=t,a=n.split("?")[1],l=n.split("?")[0];if(a.length>0){let n=!0;const r=a.split("&").map(t=>"path"===t.split("=")[0]?(n=!1,`path=${e}`):t).join("&");let s;s=n?`${l}?${r}&path=${e}`:`${l}?${r}`,t.src=s,setTimeout(()=>{Y()},50)}})(e)}},j()),l().createElement(h.default,{style:{lineHeight:"20px"},type:"primary",size:"small",onClick:()=>{o===y.ui.ConnectTypes.web&&Z()}},l().createElement("i",{className:"iconfont icon-shuaxin",style:{fontSize:"18px"}})),l().createElement(h.default,{style:{lineHeight:"20px"},type:"primary",size:"small",onClick:()=>{window.open(A)}},l().createElement("i",{className:"iconfont icon-fenxiang",style:{fontSize:"18px"}})))))},Je="ZgwnT",Me=n(6194),$e=n(2016),Le=n(2071),De=n(2090),Ge="JjRSb",Ke="atZM2",Be="Qr45E",Ve="KCPTo";const Ue=function(e){const t=(0,a.useContext)(te),{installed:n,isOpen:r,opts:s}=t.simulator,[c,o]=function(e){const t=(0,a.useContext)(te),n=t.simulator,[l,r]=(0,a.useState)(e),s=oe();return(0,a.useEffect)(()=>{let e=0;const a=()=>{c(),s("simulator/info").then(e=>{e?(t.simulator={...n,installed:!0,version:e.res.version},r(!1)):o()}).catch(e=>{console.error(e)})},c=()=>{e>0&&clearTimeout(e),e=0},o=function(){e=setTimeout(a,3e3)};return l&&(n.installed?o():s("simulator/install").then(e=>{o()}).catch(e=>{console.error(e)})),c},[l]),[l,r]}(!1),i=oe(),u=(0,a.useCallback)(()=>{o(!0)},[]),m=(0,a.useCallback)(()=>{i("simulator/start",{method:"POST",data:{...s}})},[s]),d=l().createElement("div",{className:Ve},l().createElement(Me.A,{className:Ke}),l().createElement("div",{className:Be},"请先下载模拟器,然后进行调试"),l().createElement(h.default,{onClick:u,size:"small",type:"primary"},"下载安装")),f=l().createElement("div",{className:Ve},l().createElement($e.A,{className:Ke}),l().createElement("div",{className:Be},"模拟器已下载,点击启动"),l().createElement(h.default,{onClick:m,size:"small",type:"primary"},"启动 & 重启")),p=l().createElement("div",{className:Ve},l().createElement(Le.A,{className:Ke}),l().createElement("div",{className:Be},"已启动")),v=l().createElement("div",{className:Ve},l().createElement(De.A,{className:Ke}),l().createElement("div",{className:Be},"下载中"));return l().createElement("div",{className:Ge},(()=>{let e=l().createElement("div",null);return e=r?p:c?v:n?f:d,e})())};Ue.defaultProps={};var qe=Ue,He="gu90u",Qe="lugMa";var Xe=function(e){const t=U();return l().createElement("div",{className:He,style:{...e.style}},l().createElement("iframe",{title:"waft web simulator",id:"waft-web-simulator",className:Qe,style:{width:"95%",aspectRatio:""+e.screenSize.w/e.screenSize.h},src:t}))},Ye="XuAlY",Ze="iw9iv",et="vv0ze";var tt=function(e){const{devStatus:t}=e,n=B(),r=(0,a.useCallback)(()=>{window.open("https://www.yuque.com/waft/docs/uqid26","_blank")},[]),s=new Set(["abi","app","brand","model","platform","screenHeight","screenWidth","system","version","uuid"]),c={abi:"架构",screenHeight:"屏幕高度",screenWidth:"屏幕宽度",system:"系统版本",version:"容器版本",uuid:"UUID",platform:"平台",model:"型号",brand:"品牌",app:"包名"};return l().createElement("div",{className:Ye},!1===t.device&&l().createElement(l().Fragment,null,l().createElement("span",{className:Ze},"真机调试请将设备连接到 ip: ",n.ip),l().createElement(h.default,{type:"link",onClick:r},"查看连接方式")),!0===t.device&&t.deviceInfo&&l().createElement("div",null,l().createElement("div",{className:et},"设备信息:"),Object.keys(t.deviceInfo).map(e=>{if(s.has(e)){const n=c[e]||e;return l().createElement("div",null,n,": ",t.deviceInfo[e])}})))},nt="HejkT",at="iwVgy",lt="ll7sd";function rt(e){const{connected:t}=e;return l().createElement("div",{className:nt},t?l().createElement("span",{className:at}," 终端-已链接 "):l().createElement("span",{className:lt}," 终端-未连接 "))}class st extends EventTarget{ws=null;tryTime=0;tryCount=5;address="";constructor(e){super(),this.address=e,this.connect()}connect(){this.ws=new WebSocket(this.address),this.listen()}onMessage=e=>{const t=JSON.parse(e.data);console.warn(e.data),this.dispatchEvent(new MessageEvent(t.command.toString(),{data:t.data}))};onOpen=e=>{console.warn("uiServer ws is open"),this.tryTime=0};onClose=e=>{console.warn("uiServer ws is disconnect"),window.location.href="about:blank",window.close()};onError=e=>{console.warn("uiServer ws is onError")};send(e){if(this.ws.readyState===this.ws.OPEN)this.ws.send(e);else{const e=`ws state is ${{[WebSocket.CLOSED]:"CLOSED",[WebSocket.CONNECTING]:"CONNECTING",[WebSocket.CLOSING]:"CLOSING"}[this.ws.readyState]},message not send.`;console.error(e)}}sendProtocol(e){const t=JSON.stringify(e);this.send(t)}listen(){this.ws.addEventListener("message",this.onMessage),this.ws.addEventListener("open",this.onOpen),this.ws.addEventListener("error",this.onError),this.ws.addEventListener("close",this.onClose)}unlistener(){this.ws.removeEventListener("message",this.onMessage),this.ws.removeEventListener("open",this.onOpen),this.ws.removeEventListener("error",this.onError),this.ws.removeEventListener("close",this.onClose)}}let ct=null;function ot(){const e=function(){const e=`ws://127.0.0.1:${B().uiPort}`,[t]=(0,a.useState)(e);return t}();ct||(ct=new st(e));const[t]=(0,a.useState)(ct);return t}function it(){const e=(0,a.useContext)(te),t=function(e){const[t,n]=(0,a.useState)(null),l=ot();return(0,a.useEffect)(()=>{const a=function(a){const l=a;if(l.type.toString()===e.toString()){const e=l.data;n({...t,...e})}};return l.addEventListener(e.toString(),a),()=>{l.removeEventListener(e.toString(),a)}},[e]),t}(y.ui.WS_COMMAND.DEV_STATUS),[n,l]=(0,a.useState)({deviceInfo:{}}),[r,s]=(0,a.useState)(!1),{deviceOpts:c}=e,{setNewDevice:o}=c;return(0,a.useEffect)(()=>{t&&(e.devStatus=t,t.type!==y.ui.ConnectTypes.web&&(t.connected?(w.default.success("设备已连接"),s(!0)):r&&w.default.error("设备已断开")),l({...n,[t.type]:t.connected,deviceInfo:t.deviceInfo||n.deviceInfo}),t.connected&&t.type!==y.ui.ConnectTypes.web&&o(t.type))},[t]),n}var ut=function(e){const t=(0,a.useContext)(te),{deviceOpts:n,projectOpts:r}=t,{device:s,size:c,ScreenSizeTotal:o,showWebFrame:i}=n,u=it(),m=(0,a.useMemo)(()=>l().createElement(l().Fragment,null,i&&r.isWaftProject&&l().createElement(Xe,{style:{display:s===y.ui.ConnectTypes.web?"flex":"none"},size:c,screenSize:o[c]}),s===y.ui.ConnectTypes.device&&l().createElement(tt,{devStatus:u}),s===y.ui.ConnectTypes.simulator&&l().createElement(qe,null),l().createElement(rt,{connected:u[s]})),[s,u,i]);return l().createElement("div",{className:Je},l().createElement(Fe,null),m)};function mt(){return mt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},mt.apply(null,arguments)}const dt=function(e){const{id:t,src:n,onLoad:r,width:s,height:c,style:o,...i}=e,u=(0,a.useRef)(null),m={width:s,height:c},d=(0,a.useCallback)(()=>{r&&r()},[n]);return(0,a.useEffect)(()=>{},[u]),l().createElement("iframe",mt({id:t,style:{...m,...o},onLoad:d,ref:u,src:e.src},i))};dt.defaultProps={src:"",width:"100%",height:"100%"};var ft=dt;var pt=function(e){const{devtoolUrl:t,webDevtoolUrl:n}=function(){const e=V();return{devtoolUrl:`${e}/devtools/chii_app.html?ws=localhost:8020&remote=device`,webDevtoolUrl:`${e}/devtools/chii_app.html?ws=localhost:8019&remote=web`}}(),r=(0,a.useContext)(te),{deviceOpts:s}=r,{device:c,showWebFrame:o}=s;return l().createElement("div",{id:Ae},l().createElement(Oe.A,{style:{height:"100%",width:"100%"},onDragEnd:(e,t,n)=>{Z()}},l().createElement("div",{className:Te},l().createElement(ut,null)),l().createElement("div",{className:xe},o&&l().createElement(ft,{id:"web-devtools",style:c===y.ui.ConnectTypes.web?{height:"100%",position:"inherit"}:{height:"0",position:"fixed"},src:n}),l().createElement(ft,{id:"device-devtools",style:c!==y.ui.ConnectTypes.web?{height:"100%",position:"inherit"}:{height:"0",position:"fixed"},src:t}))))};var vt=function(e){const t=u()([m]);return l().createElement("div",{className:t},l().createElement(Ce,null),l().createElement(pt,null),l().createElement("img",{onClick:()=>{window.AESPluginSurvey.openSurvey({id:1698,autoTrigger:!1})},className:d,src:"https://img.alicdn.com/imgextra/i4/O1CN013Uam6B1aYE0qsD27R_!!6000000003341-2-tps-200-200.png"}))};const Et=function(e){return l().createElement(c.Kd,null,l().createElement(o.dO,null,l().createElement(o.qh,{path:"/ui",render:e=>l().createElement(vt,e)})))};Et.displayName="Main";var ht=Et,wt="_8rgw3";var yt=function(){return window.AESPluginEvent("wb_start"),l().createElement(ne,null,l().createElement("div",{className:wt},l().createElement(ht,null)))};(e=n.hmd(e))&&e.hot,s().render(l().createElement(yt,null),document.querySelector("#root"))},5206:function(e){e.exports=ReactDOM}},n={};function a(e){var l=n[e];if(void 0!==l)return l.exports;var r=n[e]={id:e,loaded:!1,exports:{}};return t[e].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=t,e=[],a.O=function(t,n,l,r){if(!n){var s=1/0;for(u=0;u<e.length;u++){n=e[u][0],l=e[u][1],r=e[u][2];for(var c=!0,o=0;o<n.length;o++)(!1&r||s>=r)&&Object.keys(a.O).every(function(e){return a.O[e](n[o])})?n.splice(o--,1):(c=!1,r<s&&(s=r));if(c){e.splice(u--,1);var i=l();void 0!==i&&(t=i)}}return t}r=r||0;for(var u=e.length;u>0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[n,l,r]},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={524:0};a.O.j=function(t){return 0===e[t]};var t=function(t,n){var l,r,s=n[0],c=n[1],o=n[2],i=0;if(s.some(function(t){return 0!==e[t]})){for(l in c)a.o(c,l)&&(a.m[l]=c[l]);if(o)var u=o(a)}for(t&&t(n);i<s.length;i++)r=s[i],a.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return a.O(u)},n=self.webpackChunkwaft_workbench=self.webpackChunkwaft_workbench||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),a.nc=void 0;var l=a.O(void 0,[858],function(){return a(1874)});l=a.O(l)}();