UNPKG

waft-workbench

Version:

waft workbench

1 lines 31.5 kB
!function(){"use strict";var e,t={6596:function(e,t,n){var a=n(7363),r=n.n(a),c=n(1533),l=n.n(c),s=n(3003),o=n(1297),i=n(2691),u=n.n(i),m="X-IGh",d="sXxD2",f=(n(8923),n(1707)),p=(n(3180),n(1605)),v=(n(4531),n(8090)),E=(n(7231),n(8703)),h=(n(293),n(401)),w=(n(1832),n(1656)),b=n(5060),y="_4vDjl",g="c93pP",S="HUppF",N="wbQQD",C="A1w8t",k="KCjba",O="W1V6F",T="SSUuK",P="Qj6T8",j="IEQVt",Z="Xktz+",x="P58bE",_="COTr5",z="yI06A",I=(n(7556),n(2074)),A=(n(4329),n(6363)),W=(n(2269),n(3149)),M="bB3Vf",R=n(8185);let D;!function(e){e.cc10="cc10",e.cc7="cc7",e.cc6="cc6",e["d1-86"]="d1-86"}(D||(D={}));const F={[D.cc10]:{w:1280,h:800},[D.cc7]:{w:1024,h:600},[D.cc6]:{w:960,h:480},[D["d1-86"]]:{w:480,h:480}};let J;!function(e){e.web="web",e.device="device",e.simulator="simulator"}(J||(J={}));const $={[J.web]:"Web模拟器",[J.simulator]:"Mac模拟器",[J.device]:"真机设备"};let L;!function(e){e.preview="preview",e.run="run"}(L||(L={}));const V={[L.preview]:"预览模式",[L.run]:"运行模式"};function G(){const{optDev:e}=window.injectGlobal||{},[t]=(0,a.useState)(e||{ip:"localhost",port:"8080",devtoolPort:8020,deviceDevPort:8030,uiPort:8040});return t}function B(){const e=`http://127.0.0.1:${G().port}`,[t]=(0,a.useState)(e);return t}function K(){const e=G(),[t]=(0,a.useState)(`http://127.0.0.1:${e.port}/web/preview.html?action=run`);return t}const U="WAFT-lastDeviceType",q="WAFT-lastSizeType",H="WAFT-CustomScreenSizes",Q=()=>{const e=localStorage.getItem(H);return JSON.parse(e)||{}},X=()=>{const e=document.querySelector("#web-devtools");e.src=e.src},Y=()=>{const e=document.querySelector("#waft-web-simulator");e&&(e.src=e.src,setTimeout((()=>{X()}),50))};function ee(){const e=(()=>{switch(localStorage.getItem(U)){case b.ui.ConnectTypes.web:return b.ui.ConnectTypes.web;case b.ui.ConnectTypes.simulator:return b.ui.ConnectTypes.simulator;case b.ui.ConnectTypes.device:return b.ui.ConnectTypes.device;default:return b.ui.ConnectTypes.web}})(),t=(()=>{const e=localStorage.getItem(q),t=Q();return Object.keys(t).includes(e)?e:D[e]?D[e]:D.cc7})(),[n,r]=(0,a.useState)(e),[c,l]=(0,a.useState)(t),[s,o]=(0,a.useState)(!1),i={};Object.assign(i,F);const[u,m]=(0,a.useState)(Object.assign(i,Q()));(0,a.useEffect)((()=>{n===b.ui.ConnectTypes.web&&Y()}),[n,c]),(0,a.useEffect)((()=>{setTimeout((()=>{o(!0)}),5e3)}),[]);const d=e=>{(e=>{localStorage.setItem(q,e)})(e),l(e)};return{device:n,size:c,setNewDevice:e=>{(e=>{localStorage.setItem(U,e)})(e),r(e)},setNewSize:d,ScreenSizeTotal:u,setNewScreenSizeItem:(e,t)=>{((e,t)=>{const n=JSON.parse(localStorage.getItem(H))||{};n[e]=t,localStorage.setItem(H,JSON.stringify(n))})(e,t),m({...u,[e]:t})},deleteCustomScreenSizeItem:e=>{e===c&&d(D.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(H))||{};delete t[e],localStorage.setItem(H,JSON.stringify(t))})(e)},showWebFrame:s,setShowWebFrame:o}}const te=r().createContext({});function ne(e){const t=function(){const e={type:R.ConnectTypes.web,connected:!1},{devStatus:t}=window.injectGlobal||{},[n]=(0,a.useState)(t||e);return n}(),n=G(),c=function(){const e={device:D.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[r]=(0,a.useState)(n||t);return r}(),l=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}(),s=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 r().createElement(te.Provider,{value:{simulator:c,devStatus:t,optDev:n,buildOpts:l,projectOpts:s,deviceOpts:o}},e.children)}const{TextArea:ae}=W.Z;var re=function(e){const{forwardRef:t}=e,[n]=A.Z.useForm(),[c,l]=(0,a.useState)("default"),s=(0,a.useContext)(te),{buildOpts:o}=s,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 r().createElement("div",{className:M},r().createElement(A.Z,{form:n,labelCol:{span:4},wrapperCol:{span:20},layout:"horizontal",initialValues:{size:c},onFieldsChange:d,size:"small",labelAlign:"left",fields:u},r().createElement(A.Z.Item,{labelCol:{span:10},name:"push",label:"push(无线推送)",valuePropName:"checked"},r().createElement(I.Z,{size:"small"})),r().createElement(A.Z.Item,{labelCol:{span:10},name:"watch",label:"hotReload(热重载)",valuePropName:"checked"},r().createElement(I.Z,{size:"small"})),r().createElement(A.Z.Item,{labelCol:{span:10},name:"aot",label:"aot(自动aot)",valuePropName:"checked"},r().createElement(I.Z,{size:"small"})),u.filter((e=>"aot"===e.name[0]&&!0===e.value)).length>0&&r().createElement(A.Z.Item,{labelCol:{span:10},name:"aotTarget",label:"aotTarget"},r().createElement(E.ZP.Group,{defaultValue:"armv7"},r().createElement(E.ZP.Button,{value:"armv7"},"armv7"),r().createElement(E.ZP.Button,{value:"riscv64"},"riscv64"))),r().createElement(A.Z.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"))}}})]},r().createElement(ae,{style:{width:"400px",height:"150px"}}))))};let ce=String("http://localhost:8080/");function le(e){ce=e}const se=async(e,{data:t,token:n,headers:a,method:r,...c}={})=>{const l={method:r||"GET",headers:{Authorization:n?`Bearer ${n}`:"","Content-Type":t?"application/json":""},...c};return"GET"===l.method.toUpperCase()?e+=`?${encodeURIComponent(JSON.stringify(t))}`:l.body=JSON.stringify(t||{}),window.fetch(`${ce}/${e}`,l).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=()=>(le(B()),(...[e,t])=>se(e,{...t}));var ie="LiKXZ",ue="ClwW8";var me=function(e,t){const[n,r]=(0,a.useState)(e);let c=null;const l=function(){clearTimeout(c)};return(0,a.useEffect)((()=>(c=setTimeout((()=>{r(e)}),t),l)),[e,t]),n};const{TextArea:de}=W.Z;var fe=function(e){const{defaultValue:t,valueRef:n}=e,[c,l]=(0,a.useState)(!0),s=me(c,300),o=(0,a.useCallback)((e=>{n.current=e.target.value,i(n.current)}),[c]),i=e=>{try{const t=JSON.parse(e);l("object"==typeof t||""===n.current)}catch{l(""===n.current)}};return(0,a.useEffect)((()=>{n.current=t?JSON.stringify(t):"",i(n.current)}),[]),r().createElement("div",null,r().createElement(de,{className:ue,defaultValue:t?JSON.stringify(t,null,2):"",onChange:o}),!s&&r().createElement("div",{className:ie},"mock is not a json data"))};const{TextArea:pe}=W.Z;var ve=function(e){const t=oe(),{skillWakenWord:n,updateSkillInfo:c,skillAccessKey:l}=e,[s,o]=(0,a.useState)(l),[i,u]=(0,a.useState)(n),[m,d]=(0,a.useState)(!1),f=()=>{0!==s.length?(d(!0),s.length>0&&t("cloudPlatFrom/bindAccessKey",{method:"POST",data:{ak:s}}).then((e=>{if(0===e.code){const{res:t}=e;c(t),u(t.wakenWord)}else w.default.error(`绑定失败 ${e.message}`)})).finally((()=>{d(!1)}))):w.default.error("key 不能为空")};return r().createElement("div",null,r().createElement("div",null,"access key"),r().createElement(pe,{style:{width:"400px",marginRight:"10px"},value:s||"",onChange:e=>{const t=e.target.value;o(t)}}),!l&&(m?r().createElement(h.default,{loading:!0,type:"primary",size:"small"},"绑定中"):r().createElement(h.default,{onClick:f},"绑定")),l&&(m?r().createElement(h.default,{loading:!0,type:"primary",size:"small"},"更新中"):r().createElement(h.default,{onClick:f},"更新")),r().createElement("br",null),r().createElement("br",null),r().createElement("div",null,"调用词"),r().createElement(pe,{style:{width:"400px",marginRight:"10px"},value:i||"",onChange:e=>{const t=e.target.value;u(t)}}),r().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.Z;var be=function(e){const{valueRef:t}=e,[n,c]=(0,a.useState)(!0),l=me(n,300),s=(0,a.useCallback)((e=>{t.current=e.target.value,o(t.current)}),[n]),o=e=>{try{const n=JSON.parse(e);c("object"==typeof n||""===t.current)}catch{c(""===t.current)}};return r().createElement("div",null,r().createElement(we,{className:he,onChange:s}),!l&&r().createElement("div",{className:Ee},"mock is not a json data"))};function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ye.apply(this,arguments)}const ge=(0,a.forwardRef)(((e,t)=>r().createElement(re,ye({forwardRef:t},e)))),Se=(0,a.forwardRef)(((e,t)=>r().createElement(fe,ye({},e,{valueRef:t})))),Ne=(0,a.forwardRef)(((e,t)=>r().createElement(be,ye({},e,{valueRef:t})))),Ce=(0,a.forwardRef)(((e,t)=>r().createElement(ve,ye({},e,{valueRef:t}))));var ke=function(e){const t=(0,a.useContext)(te),{buildOpts:n,projectOpts:c,deviceOpts:l}=t,s=(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),[I,A]=(0,a.useState)(!1),[W,M]=(0,a.useState)(!1),[R,D]=(0,a.useState)(!1),[F,J]=(0,a.useState)({id:0,name:"",wakenWord:"",accessKey:""}),$=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]){M(!0);break}}}}),[]),(0,a.useEffect)((()=>{$("cloudPlatFrom/infoByAccessKey",{method:"GET"}).then((e=>{const{code:t,res:n}=e;0===t&&n.accessKey&&n.accessKey.length>0?J(n):console.warn("获取技能信息失败",e)})).catch((e=>{console.error(JSON.stringify(e))}))}),[]);const L=(0,a.useCallback)((e=>{J(e)}),[]),V=(0,a.useCallback)((()=>{A(!0),window.AESPluginEvent("wb_build_click",{et:"CLK",c1:n}),$("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((()=>{A(!1)}))}),[]),G=(0,a.useCallback)((async e=>{const{buildValidate:t}=s.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}V()}}),[]),B=(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 解析失败")}$("devtool/pushMockProtocol",{method:"POST",data:{mock:t}}).then((e=>{0===e.code?w.default.success("mock 协议推送成功"):w.default.error(e.message)}))}),[]),K=(0,a.useCallback)((()=>{if(0===F.id||""===F.name)return void w.default.error("技能信息不全,无法真机调试");window.AESPluginEvent("wb_device_debug_click",{et:"CLK",c1:F.wakenWord});const e={wakenWord:F.wakenWord};D(!0),$("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((()=>{D(!1)}))}),[F]),U=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}),$("atom/update",{method:"POST",data:{mock:t}}).then((e=>{0===e.code?(e.res,w.default.success("mock 推送成功")):w.default.error(e.message)}))},q=(0,a.useCallback)((()=>{U()}),[]),H=(0,a.useCallback)((()=>{U()}),[]),Q=(0,a.useMemo)((()=>I?r().createElement(h.default,{loading:I,type:"primary",size:"small"},"编译中"):r().createElement(E.ZP.Group,{className:u()(S),size:"small"},r().createElement(E.ZP.Button,{onClick:V,type:"primary"},r().createElement("div",{className:u()(C)},r().createElement("i",{className:"iconfont icon-bianyi1"}),r().createElement("div",{className:u()(T)},"构建推送"))),r().createElement(v.Z,{icon:()=>r().createElement("span",null),placement:"bottomRight",title:e=>r().createElement(ge,ye({},e,{ref:s})),cancelText:"取消",okText:"构建推送",onConfirm:G},r().createElement(E.ZP.Button,{className:u()(j)},r().createElement("i",{className:"iconfont icon-Androidgengduo"}))))),[I]),X=(0,a.useMemo)((()=>r().createElement(E.ZP.Group,{className:u()(S),size:"small"},r().createElement(E.ZP.Button,{onClick:B,type:"primary"},r().createElement("div",{className:u()(C)},r().createElement("i",{className:"iconfont icon-tuisong"}),r().createElement("div",{className:u()(T)},"mock 协议"))),r().createElement(v.Z,{icon:()=>r().createElement("span",null),placement:"bottomRight",title:e=>r().createElement(Ne,ye({},e,{ref:o})),cancelText:"取消",okText:"发送",onConfirm:B},r().createElement(E.ZP.Button,{className:u()(j)},r().createElement("i",{className:"iconfont icon-Androidgengduo"}))))),[]),Y=(0,a.useMemo)((()=>{const{buildOpts:e}=t;return console.warn(e),r().createElement(E.ZP.Group,{className:u()(S),size:"small"},r().createElement(E.ZP.Button,{onClick:q,type:"primary"},r().createElement("div",{className:u()(C)},r().createElement("i",{className:"iconfont icon-tuisong"}),r().createElement("div",{className:u()(T)},"模拟消息"))),r().createElement(v.Z,{icon:()=>r().createElement("span",null),placement:"bottomRight",title:t=>r().createElement(Se,ye({},t,{defaultValue:e.mock,ref:m})),cancelText:"取消",okText:"发送",onConfirm:H},r().createElement(E.ZP.Button,{className:u()(j)},r().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:()=>r().createElement("div",null),onChange(e){"uploading"!==e.file.status&&(e.file,e.fileList)}};return r().createElement(E.ZP.Group,{className:u()(S),size:"small"},r().createElement(E.ZP.Button,{type:"primary"},r().createElement("div",{className:u()(C)},r().createElement(p.Z,a,r().createElement("div",{className:u()(k)},r().createElement("i",{className:`iconfont icon-tuisong ${u()(O)}`}),r().createElement("span",{className:u()(T)},"选包推送"))))),r().createElement(v.Z,{icon:()=>r().createElement("span",null),placement:"bottomRight",title:e=>r().createElement(Se,ye({},e,{defaultValue:n.mock,ref:i})),cancelText:"取消",okText:r().createElement(p.Z,a,r().createElement("span",{className:u()(P)},"选包推送"))},r().createElement(E.ZP.Button,{className:u()(j)},r().createElement("i",{className:"iconfont icon-Androidgengduo"}))))}),[]),ne=(0,a.useMemo)((()=>R?r().createElement(h.default,{loading:R,type:"primary",size:"small"},"上传中"):r().createElement(E.ZP.Group,{className:u()(S),size:"small"},r().createElement(E.ZP.Button,{onClick:K,type:"primary"},r().createElement("div",{className:u()(C)},r().createElement("i",{className:"iconfont icon-tuisong"}),r().createElement("div",{className:u()(T)},"技能调试"))),r().createElement(f.Z,{placement:"bottomRight",trigger:"click",title:e=>r().createElement(Ce,ye({},e,{updateSkillInfo:L,skillAccessKey:F.accessKey,skillWakenWord:F.wakenWord,ref:d}))},r().createElement(E.ZP.Button,{className:u()(j)},r().createElement("i",{className:"iconfont icon-Androidgengduo"}))))),[F,R]);return r().createElement("div",{className:y},r().createElement("div",{className:Z},r().createElement("span",{className:g}," WAFT 工作台 "),r().createElement("div",{className:_},F.name.length>0&&r().createElement("div",{className:x},F.name,":"),F.id>0&&r().createElement("div",{className:z},F.id))),r().createElement("span",{className:N},W&&X,l.device!==b.ui.ConnectTypes.web&&c.isWaftProject&&[Q,Y,ne],!c.isWaftProject&&ee))},Oe=n(6688),Te="SSyE+",Pe="_2M4qR",je="JxKvj",Ze=(n(3024),n(7546)),xe=(n(2054),n(3026)),_e=(n(983),n(6272)),ze=(n(4846),n(1186)),Ie={choose_box_line:"kb88l",ant_select:"kYRA7","icon-shuaxin":"_51nZ4",menu_title:"dYjd0"};const{Option:Ae}=ze.Z,{SubMenu:We}=_e.Z;var Me=function(e){const t=(0,a.useContext)(te),{deviceOpts:n,projectOpts:c}=t,{setNewDevice:l,setNewSize:s,device:o,size:i,ScreenSizeTotal:m,setNewScreenSizeItem:d,deleteCustomScreenSizeItem:f}=n,{json:p={},isWaftProject:v}=c,{pages:E=[],default:w=""}=p,[y,g]=(0,a.useState)(o!==b.ui.ConnectTypes.device),[S,N]=(0,a.useState)(!1),[C,k]=(0,a.useState)(!1),[O]=A.Z.useForm(),T=K(),P=(0,a.useCallback)((e=>{window.AESPluginEvent("wb_preview_select_click",{et:"CLK",c1:e}),l(e),e===b.ui.ConnectTypes.web?(g(!0),N(!0)):e===b.ui.ConnectTypes.simulator?(g(!0),N(!1)):(g(!1),N(!1))}),[]),j=(0,a.useCallback)((e=>{s(e)}),[s]),Z=(0,a.useCallback)((()=>E.map((e=>r().createElement(Ae,{value:e},e)))),[E]),x=(0,a.useCallback)((()=>Object.keys($).filter((e=>!(e===b.ui.ConnectTypes.simulator&&!/macintosh|mac os x/i.test(navigator.userAgent))&&!(e===b.ui.ConnectTypes.web&&!v)))),[c,v]),_=(0,a.useCallback)((()=>x().map((e=>r().createElement(Ae,{value:e},$[e])))),[x]),z=(0,a.useCallback)((()=>{const e=m;return Object.keys(m).map((t=>{const{w:n,h:a}=e[t];return r().createElement(Ae,{value:t},`${t}(${n}*${a})`)}))}),[m]),I=((0,a.useCallback)((()=>Object.keys(V).map((e=>r().createElement(Ae,{value:e},V[e])))),[]),(0,a.useCallback)((()=>{const e=Q();return Object.keys(e).map((e=>r().createElement(_e.Z.Item,{key:e},`${e}`)))}),[])),M=e=>{f(e.key)},R=x(),D=R.includes(o)?o:R[0];return r().createElement("div",{className:Ie.choose_box},r().createElement("div",{className:Ie.choose_box_line},r().createElement(ze.Z,{className:u()(Ie.ant_select),value:D,size:"small",onChange:P},_()),y&&r().createElement(ze.Z,{defaultValue:i,size:"small",onChange:j,dropdownRender:e=>r().createElement(r().Fragment,null,e,r().createElement(h.default,{type:"link",style:{width:"100%"},onClick:()=>{k(!0)}},"自定义"),r().createElement("br",null),r().createElement(_e.Z,{onClick:M,mode:"vertical"},r().createElement(We,{key:"sub4",title:"删除",className:Ie.menu_title},I())))},z()),r().createElement(Ze.Z,{title:"添加自定义设备",visible:C,onOk:()=>{O.validateFields().then((e=>{const t=e.name.trim(),n={w:e.width,h:e.height};d(t,n),O.resetFields(),k(!1)}))},onCancel:()=>{k(!1)}},r().createElement(A.Z,{form:O,name:"test"},r().createElement(A.Z.Item,{label:"设备",name:"name",rules:[{required:!0,message:"Please input name!"}]},r().createElement(W.Z,null)),r().createElement(A.Z.Item,{label:"宽度",name:"width",rules:[{required:!0,message:"Please input width!"}]},r().createElement(xe.Z,null)),r().createElement(A.Z.Item,{label:"高度",name:"height",rules:[{required:!0,message:"Please input height!"}]},r().createElement(xe.Z,null))))),r().createElement("div",{className:Ie.choose_box_line},o===b.ui.ConnectTypes.web&&r().createElement(r().Fragment,null,r().createElement(ze.Z,{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],r=n.split("?")[0];if(a.length>0){let n=!0;const c=a.split("&").map((t=>"path"===t.split("=")[0]?(n=!1,`path=${e}`):t)).join("&");let l;l=n?`${r}?${c}&path=${e}`:`${r}?${c}`,t.src=l,setTimeout((()=>{X()}),50)}})(e)}},Z()),r().createElement(h.default,{style:{lineHeight:"20px"},type:"primary",size:"small",onClick:()=>{o===b.ui.ConnectTypes.web&&Y()}},r().createElement("i",{className:"iconfont icon-shuaxin",style:{fontSize:"18px"}})),r().createElement(h.default,{style:{lineHeight:"20px"},type:"primary",size:"small",onClick:()=>{window.open(T)}},r().createElement("i",{className:"iconfont icon-fenxiang",style:{fontSize:"18px"}})))))},Re="ZgwnT",De=n(9503),Fe=n(3594),Je=n(6384),$e=n(8227),Le="JjRSb",Ve="atZM2",Ge="Qr45E",Be="KCPTo";const Ke=function(e){const t=(0,a.useContext)(te),{installed:n,isOpen:c,opts:l}=t.simulator,[s,o]=function(e){const t=(0,a.useContext)(te),n=t.simulator,[r,c]=(0,a.useState)(e),l=oe();return(0,a.useEffect)((()=>{let e=0;const a=()=>{s(),l("simulator/info").then((e=>{e?(t.simulator={...n,installed:!0,version:e.res.version},c(!1)):o()})).catch((e=>{console.error(e)}))},s=()=>{e>0&&clearTimeout(e),e=0},o=function(){e=setTimeout(a,3e3)};return r&&(n.installed?o():l("simulator/install").then((e=>{o()})).catch((e=>{console.error(e)}))),s}),[r]),[r,c]}(!1),i=oe(),u=(0,a.useCallback)((()=>{o(!0)}),[]),m=(0,a.useCallback)((()=>{i("simulator/start",{method:"POST",data:{...l}})}),[l]),d=r().createElement("div",{className:Be},r().createElement(De.Z,{className:Ve}),r().createElement("div",{className:Ge},"请先下载模拟器,然后进行调试"),r().createElement(h.default,{onClick:u,size:"small",type:"primary"},"下载安装")),f=r().createElement("div",{className:Be},r().createElement(Fe.Z,{className:Ve}),r().createElement("div",{className:Ge},"模拟器已下载,点击启动"),r().createElement(h.default,{onClick:m,size:"small",type:"primary"},"启动 & 重启")),p=r().createElement("div",{className:Be},r().createElement(Je.Z,{className:Ve}),r().createElement("div",{className:Ge},"已启动")),v=r().createElement("div",{className:Be},r().createElement($e.Z,{className:Ve}),r().createElement("div",{className:Ge},"下载中"));return r().createElement("div",{className:Le},(()=>{let e=r().createElement("div",null);return e=c?p:s?v:n?f:d,e})())};Ke.defaultProps={};var Ue=Ke,qe="gu90u",He="lugMa";var Qe=function(e){const t=K();return r().createElement("div",{className:qe,style:{...e.style}},r().createElement("iframe",{title:"waft web simulator",id:"waft-web-simulator",className:He,style:{width:"95%",aspectRatio:""+e.screenSize.w/e.screenSize.h},src:t}))},Xe="XuAlY",Ye="iw9iv",et="vv0ze";var tt=function(e){const{devStatus:t}=e,n=G(),c=(0,a.useCallback)((()=>{window.open("https://www.yuque.com/waft/docs/uqid26","_blank")}),[]),l=new Set(["abi","app","brand","model","platform","screenHeight","screenWidth","system","version","uuid"]),s={abi:"架构",screenHeight:"屏幕高度",screenWidth:"屏幕宽度",system:"系统版本",version:"容器版本",uuid:"UUID",platform:"平台",model:"型号",brand:"品牌",app:"包名"};return r().createElement("div",{className:Xe},!1===t.device&&r().createElement(r().Fragment,null,r().createElement("span",{className:Ye},"真机调试请将设备连接到 ip: ",n.ip),r().createElement(h.default,{type:"link",onClick:c},"查看连接方式")),!0===t.device&&t.deviceInfo&&r().createElement("div",null,r().createElement("div",{className:et},"设备信息:"),Object.keys(t.deviceInfo).map((e=>{if(l.has(e)){const n=s[e]||e;return r().createElement("div",null,n,": ",t.deviceInfo[e])}}))))},nt="HejkT",at="iwVgy",rt="ll7sd";function ct(e){const{connected:t}=e;return r().createElement("div",{className:nt},t?r().createElement("span",{className:at}," 终端-已链接 "):r().createElement("span",{className:rt}," 终端-未连接 "))}class lt 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 st=null;function ot(){const e=function(){const e=`ws://127.0.0.1:${G().uiPort}`,[t]=(0,a.useState)(e);return t}();st||(st=new lt(e));const[t]=(0,a.useState)(st);return t}function it(){const e=(0,a.useContext)(te),t=function(e){const[t,n]=(0,a.useState)(null),r=ot();return(0,a.useEffect)((()=>{const a=function(a){const r=a;if(r.type.toString()===e.toString()){const e=r.data;n({...t,...e})}};return r.addEventListener(e.toString(),a),()=>{r.removeEventListener(e.toString(),a)}}),[e]),t}(b.ui.WS_COMMAND.DEV_STATUS),[n,r]=(0,a.useState)({deviceInfo:{}}),[c,l]=(0,a.useState)(!1),{deviceOpts:s}=e,{setNewDevice:o}=s;return(0,a.useEffect)((()=>{t&&(e.devStatus=t,t.type!==b.ui.ConnectTypes.web&&(t.connected?(w.default.success("设备已连接"),l(!0)):c&&w.default.error("设备已断开")),r({...n,[t.type]:t.connected,deviceInfo:t.deviceInfo||n.deviceInfo}),t.connected&&t.type!==b.ui.ConnectTypes.web&&o(t.type))}),[t]),n}var ut=function(e){const t=(0,a.useContext)(te),{deviceOpts:n,projectOpts:c}=t,{device:l,size:s,ScreenSizeTotal:o,showWebFrame:i}=n,u=it(),m=(0,a.useMemo)((()=>r().createElement(r().Fragment,null,i&&c.isWaftProject&&r().createElement(Qe,{style:{display:l===b.ui.ConnectTypes.web?"flex":"none"},size:s,screenSize:o[s]}),l===b.ui.ConnectTypes.device&&r().createElement(tt,{devStatus:u}),l===b.ui.ConnectTypes.simulator&&r().createElement(Ue,null),r().createElement(ct,{connected:u[l]}))),[l,u,i]);return r().createElement("div",{className:Re},r().createElement(Me,null),m)};function mt(){return mt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},mt.apply(this,arguments)}const dt=function(e){const{id:t,src:n,onLoad:c,width:l,height:s,style:o,...i}=e,u=(0,a.useRef)(null),m={width:l,height:s},d=(0,a.useCallback)((()=>{c&&c()}),[n]);return(0,a.useEffect)((()=>{}),[u]),r().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=B();return{devtoolUrl:`${e}/devtools/chii_app.html?ws=localhost:8020&remote=device`,webDevtoolUrl:`${e}/devtools/chii_app.html?ws=localhost:8019&remote=web`}}(),c=(0,a.useContext)(te),{deviceOpts:l}=c,{device:s,showWebFrame:o}=l;return r().createElement("div",{id:Te},r().createElement(Oe.Z,{style:{height:"100%",width:"100%"},onDragEnd:(e,t,n)=>{Y()}},r().createElement("div",{className:Pe},r().createElement(ut,null)),r().createElement("div",{className:je},o&&r().createElement(ft,{id:"web-devtools",style:s===b.ui.ConnectTypes.web?{height:"100%",position:"inherit"}:{height:"0",position:"fixed"},src:n}),r().createElement(ft,{id:"device-devtools",style:s!==b.ui.ConnectTypes.web?{height:"100%",position:"inherit"}:{height:"0",position:"fixed"},src:t}))))};var vt=function(e){const t=u()([m]);return r().createElement("div",{className:t},r().createElement(ke,null),r().createElement(pt,null),r().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 r().createElement(s.VK,null,r().createElement(o.rs,null,r().createElement(o.AW,{path:"/ui",render:e=>r().createElement(vt,e)})))};Et.displayName="Main";var ht=Et,wt="_8rgw3";var bt=function(){return window.AESPluginEvent("wb_start"),r().createElement(ne,null,r().createElement("div",{className:wt},r().createElement(ht,null)))};(e=n.hmd(e))&&e.hot,l().render(r().createElement(bt,null),document.querySelector("#root"))},5060:function(e,t,n){var a=this&&this.__createBinding||(Object.create?function(e,t,n,a){void 0===a&&(a=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,r)}:function(e,t,n,a){void 0===a&&(a=n),e[a]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&a(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ui=void 0,t.ui=c(n(8185))},8185:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.WS_COMMAND=t.ConnectTypes=void 0,function(e){e.web="web",e.device="device",e.simulator="simulator"}(t.ConnectTypes||(t.ConnectTypes={})),function(e){e[e.SEND_DEV_STATUS=1000001]="SEND_DEV_STATUS",e[e.DEV_STATUS=1000002]="DEV_STATUS"}(t.WS_COMMAND||(t.WS_COMMAND={}))},7363:function(e){e.exports=React},1533:function(e){e.exports=ReactDOM}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var c=n[e]={id:e,loaded:!1,exports:{}};return t[e].call(c.exports,c,c.exports,a),c.loaded=!0,c.exports}a.m=t,e=[],a.O=function(t,n,r,c){if(!n){var l=1/0;for(u=0;u<e.length;u++){n=e[u][0],r=e[u][1],c=e[u][2];for(var s=!0,o=0;o<n.length;o++)(!1&c||l>=c)&&Object.keys(a.O).every((function(e){return a.O[e](n[o])}))?n.splice(o--,1):(s=!1,c<l&&(l=c));if(s){e.splice(u--,1);var i=r();void 0!==i&&(t=i)}}return t}c=c||0;for(var u=e.length;u>0&&e[u-1][2]>c;u--)e[u]=e[u-1];e[u]=[n,r,c]},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})},a.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e={143:0};a.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,c,l=n[0],s=n[1],o=n[2],i=0;if(l.some((function(t){return 0!==e[t]}))){for(r in s)a.o(s,r)&&(a.m[r]=s[r]);if(o)var u=o(a)}for(t&&t(n);i<l.length;i++)c=l[i],a.o(e,c)&&e[c]&&e[c][0](),e[c]=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))}();var r=a.O(void 0,[689],(function(){return a(6596)}));r=a.O(r)}();