@vtj/designer 0.7.19 → 0.7.21
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/dist/index.cjs
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
* Copyright (c) 2024, VTJ.PRO All rights reserved.
|
|
3
3
|
* @name @vtj/designer
|
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
|
5
|
-
* @version 0.7.
|
|
5
|
+
* @version 0.7.21
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
|
-
*/const Be="0.7.19",ge={width:390,height:844},he={width:1180,height:820},Q=/^[A-Za-z_$][\w_-]*$/,xe=["click","dblclick","mouseenter","mouseleave","mousedown","mouseup","mouseover","contextmenu"],Se=["keydown","keyup","keypress"],Ee=["GET","POST","PUT","PATCH","DELETE","JSONP"],Ne=["stop","prevent","capture","self","once","passive"];var K=(c=>(c.Block="block",c.Node="node",c))(K||{}),$e=(c=>(c.Brand="Brand",c.Toolbar="Toolbar",c.Actions="Actions",c.Apps="Apps",c.Workspace="Workspace",c.Settings="Settings",c.Status="Status",c.Preview="Preview",c))($e||{});const ye="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAQd0lEQVR4nO2dCXRVxRnHf/clIPsekBgIS1hFdqVoZbGLFNTWWgQ3bLVurRYJcTuntbW22qooKKWl2toWquygIFa01doqmBBWWcomIkhACLIKyXvcnu/eefiSNzd57y4vAfI/553wuPfNzJ3/nW9m/t83M4Yx6iTVGOlAC6AD0Bs4F2gGtFT/lmtNgLpABDgMFAN7gCJgH3AQ2ACsAz5V91RbpFfDguUAg4EewBCgLdAQqJXAb5sD7RyuHVGfpcBy4AOgADjkc/k9obq0kP7AN4CrgK7qrQ8aJrALeAt4Q/3dV7XVULWEtAauBq5ThNSpqoIo7AReBWYA/6mqQlQFId2AW4HRwHmpzjwBSMv5N/BHYAHwRSozTyUhQsS9iohGqcrUI1YDE4GXgROpyDAVhMiIKBe4I0V9QxCQgcCvgdeCzigUcPo/BN4HHjiNyRAMBBYBs4BOQWYUFCFdgIXA80DHgPKoCowE3gHuCirvIAj5AfAmcEUAaVcHZAJTgHlqjuQr/CREJm/PAH8G2pyWVZ0crlbzl8v8TNQvQrLVGP5en9I7XdBV9S0/9qu8fhDSC1isZI6zEaKjTQYe8aM+vSZwqeq8u5+lZMTiYeA5oLaXRLwQMhSYe5b0F4niR8BUL6S4VXsvAWYCGZ6Kf2bi+8oVcDuQ9KzbTQvpqQS4GjKcIVrdU25+mCwhbZWuk+WhsGcLxgEPJvusyRAi84xpNR14UhD9a1QyP0iGkEeBQcGV/YyE1O+zwPnJ/CARSEc1NrBin9kQtftFoHEiT5kIIeLj/s3ZXqsecSHwUCJJVEZIGjAJaFXVT3QG4D7ga5U9RmWEiHI7/GyvSZ8QUkPhhhUlVxEhLZUcUAP/ILFld7slJK9GFgkEuRXEjjkSIh6/O0+fZzyt0EK5tLVwIiSvMltXA0+4yWluoiOkqwrVqUFwqA/ckygholI2SCUZZhjM4/bflOYrn1IwT4AZSW3eSlLpUP4/yxPSKtWtwyyBnPPgioHQtpX93Zd0TVXZEbviddcJQ59OMHwAZDTxL+8EIWFRN5a/tTwh31UxtymBtIrhF8GiBwwWPmDw2oMGg3t5rxghIi0NLugAbcRJUKoIiEUYbhwCrz9k57sgz6BvZ7u1pBBjlPk6hdjIRSHnXeV8ChzmF3DlJfDyWIP653yZ28ZP4dKHTfYdBCPNHRndsuGpmwwGdYNjJ2DiYpMnFtheI8OwTWPnLCh43KBR3S9/u/0z+N4Ek8KNYKQu9PvbKkDEQmwL6QP0S0UJhIxhA2D6PWXJEHTNhN7t7Tc46XQj0KQRzBhrMLwPNKgDLRvDY9cZfFOeLtrywjC0B2XIELTLgNm5Br072603RRgZm00sIcNSsSRAyBjSF6b/xIirEMHRE7D7gEtfZhiG9YGe2fGXLuwY41A1oOhzfRLtW8LMcQbnd0wZKd9UC40shGL+Xhl0zkLGwJ4w816D5g7juKlvwbqPwEhkvVRs2thPcfWFhvb62h02ERZqw+vL4e//1afVuTXMGW/QpV1KSMmIDaGKEtI+GSeKGwgZ/brZZLR08AzMWgY/e8l03TqyW8PXesRf2roH3t3w5aI46UdKwnDnVJNXC/XJiemcPd4gp03gpMhr8tXol+ijDwly7iFk9Opiv3VtmuvvmZsPtzxnWp2wm85cCBnRB5pr9IXFK2F/sXImKBjpcOQY3DTJ5LWV+iQvaGOTkp0Z+Ojr8mjoUJSQnkHlJG9X9xyYO96wOk0dFq6AHzxncvS4XVFJ52FCWh24+qJ4cxU5Ca8WmpZNK39VzOKhIzDmWZO31+nT7t0OZuUaZGYESkrbaOB2SMVmBeIrlwfo0h7mjTfo6ODikrdzzCSTw8eS7zdOIQzd28JXNCs3pO94f6PzGl6jNhQfhOsnmrz3P/09F+XAy7kGGc0CmzzWV2tQLEJaqD7EVwgZHdvA/DyDLpn6lN9aCzc/a/L5YfdkWJ15BIb1soe55TEv3+SYpF9BvySkFO2D6yeZrNyuv2dQV3hpnEHTRvZcJwB0jRIieko9X8kogQ5ZMC/PoJvDss531sMNE032H7QrxDVOQq168F2NuZIh9PyCsn2HE4xzYMduuPZpk3U79Td9vQdMG2vQqF4gpAgPTUPKi+XWWMRByDivpW13ezosZ/lgC9w4yWRvsUcysGWRAZ3UPKMclm6CDTsSD5gVUrbssEnZskd/jwwc/ibqQl3fSZGl4e1DakWQLxAyWjW3Z7v9HIygmIRRT5vs2mtXgBdE9SmZe6RpTJKYq8gJe5ibKEQyWb8NrnnS5KPP9D/6dn948W6DunV8JUVc5i1Dfi3GFDKaNYaX7zUY2Fl/z4ZdMPoZk493eyfDwklo2Bgu7x1/af8ReH1VYuaqPISUNZvhe0+ZfLJff8/Ir8Cff2xwTm3f3AZS0mYhxYwnCBkNG9id3lCH6aWYgJETTDZ97BMZ2Obqki5o+6klq2H7LveDBaMurNhoi427HWSW0RfDCz8ySE/3hRSplcyQ2lXHNaQg9evB9LEGlzvMZiwV9SmTddv8U1Etc2XYc4+QxiTN+cB0sRigLISU/HU2KZ85bFFz46Uw9Q5FijcnV3qUkBZuUzBPQnoaTLnd4CoHnViavDzQ6s0+S9oRaJkBwzXm6qO98M46f/Y6ElLeXwM3PGty4Kj+nluGwiOjDatMcX6X5HCutz6kFAb1gDEO08pPDyj/woYA/Aul8PULIEsjxSxaAcX73c36dRBS3iyAMZNNDjvsfJI7Avp2scvlAVYfohHBE0QELu+lH8KImbr2GdNq8ob7HLSw3sJaemW3NAxzlml0Eq+oA4veh9ummhQfiU+rTi3VWr2ZrXohT0mY0NbB4P1qnsl7+f6TYSEM7VrDEM0AYvUOyN/i/9Zs1tC5Dsx8A/70tv6erOae34JwyNOWdwbscNjyK3eEQe+eAUnXYfttbKFRdhcWmhw/7FIxrgzH4VuD4Iav6u/bVeytA5Hd7UJqj0J3SIf5+SZhTRvrrqSTCzra8rtfkIGEKLvXDIh/G4+VJC6VJAt5hqF9Ydo9BplN4398vNTuuzzm/VlIbRjpDrVg2Qb45Vz9myHu0Hn3++wOVcruAI2y+98N8OF2/82VkHFJT5hRgafzyYWwcpMnEUoq8dOQ2r3TFSy7mgaPzoDHFuhTyGkF8+4z6OqXOzSCNcQuHxwhmP2BaanMFSm7yULI6NvV1uacPJ3P/xMemWladZGMTFMO4m3ZJUV3EAcSg/XwafDT6SYTF+t/Ij7q+fcbdMn2RoqYqzoN4Dua0dWeg7BkjZ8yqU1Gz072C6UzU4KX3oO7nzeJRDz3WzJg3ivV6SAMJA4piGlA3l9MJr+h/5n4qOfeZ9C5rQdSSuGiTtBHI1z+60PYUeRf/2F5OjvaZc52GEnOWQa3TTEt/7wPcx5pIQdCapNhzxBSIibkvmjygsOw8PwsmDXesHwlrtyhJlzV31nZlf7Fg8n4Mpvj0Dkb5uYZlsnVQYIjbplicsyl21mD9SJshNSOzw6iQHIQUkojcPcfTaY5bLTaKxvm5CUfOCA6UcMmcEXf+Gtbimzvox/mSsjIaav6PQfHxOJVth/+8FEPbud4iMHdGfJ7+20h5UQp3PUHk9nL9Pf0aWcHo2W1SoKUsK3sdtJEHr+yHD53G1wXAylL+yw70uR8h70qpJ+6aaLJwSO+kiEQV1pJdGK41M+UpQlLBMmtk00WOsQ9DciBmbkG52YkGDhgwKiB8cqutMgFBfaw24u5EjKyzrXNVG9N5KPg3xtst3PxId/JKFVbn596p1b4mrwKsREhTpq2NfrR4OLOtkOrRdOKSRGJP7OV6Gbx11Zth8Jt3syV5enMgFnjDKv16rB0M4yaYLLvcx/czvGQAwM+JIaQpZ5lMQ2EFIkokbfqPxv19wzpDjPGGTRpXIE7NGJHJLbWDD1fKTD54rB7cyVkNG1im1AnT6fldp5gsmd/IGQIlkUVk+hjFHiZIFYEeYB9B2w/+vJt+hulsl8aa9CgfjwplrKbbo+uyuPIcZi/3B7qurFWklcD8XT+xGBwN/0963fans5Pinz0dMbj1Lg0SsghdTpAIJAH2b3XJuXDT/Q5fKt3DCmxbTUCHVrDZRplV2z6+iSiSmIhZrBeXTsKf5jGyYUavUkEytZPAl0vIkrfv6JfYhv6PwLLUgUObFNv26bd+nuu7AeTbzVID8V43kTZ7QPNNBrSPHHTliTfmVuhp2nwu9sMK4JEB/HnjJQYra2BL96ReeDa6JdYQpaoIXBgkAfbuN1+67Y5SJo3D4b+nWKWoaVLKKeDVLLWpZBYCiP6w/cH6y+LS0HKuGpTQP6cspgZ23/HElKsdhgNFEKK+NdHTzLZ6aCi1a6ltE/DLuqWong1WUJ8dha5JOSkPUHVQRYLSUhpQRBu53gcjV3OhmZsMt2zVzgByIMWrFeklPPGyIx7xRZ7GGu1i3T4wxLKBELvPwwTF6m5h5sCpMGba+wJbCyk1V03yeS9tSlbYyh9R5nxZ5rR4+ex33eqLYQc3h//IJNHiaV9ax00bWBw0oRFhTDur2UXfIqafPQYvFIIoZBhEZg3zSR/o/shqKS9cw98XAz9OthL6wq22v7yd9ekdMHneGBzmbJpzg8ZpXYdTQmsCWEte3Hm3gO2qdKJddbIy1RtOux9PmD1T6XQvb3tSFu+FfbsC2yeoUOhWvFcRjzSEVJXTVQCW8RTHlblnLQru6IRU3Tk5YeieyrNUpV3ekB+eGfcDPyt/FXd/FbGxRNSWTKpYCMBb5t1n8/hPaImyDwpxWTIUUpzdBecBIeZUbGrBoHgcYnJSIYQsWu/CELfqoGliMx2qoaKJLl/qGPjauAfpMf6WUV7wlemkcrOZw7LVmrgAhPVgMkRlRGytWYjTN8gXqHHKkssES/C8zWmyzPCamfwSiN8EiEkorY23VT1z3Xa4qfquL1KkaifbZfapTR1mxadOZiTzLwuGcfn20p7qUHiWKlOcEt4BWKynugp6tiKGlSObUoX3JtMXbkJDXhYEVMDZxSpzUQ3J1tHbkPLZMTwlxpCtNinDu0vcPNjt4SE1XHcf3L5+zMV0jKuTXREpYOX4MsSNfJ6+myt/XKQSfR3YkN63MDr0pawGnkldHrMGYxCdc6KZ4Xcr7VGv1F2M9ColWoKOfR+hF8TZz+P756htprN9zHN6oxSdU7hdZ7WaZaD3wfcS6TUN1SLOZN9KavVxpW/dXO8akXwmxBUWOpDyqauCiD9qkSJImGo187bCUEQEsUSdbz3A3426SrEEhUiJWbqQFDFCJIQgewK8oTacfN36vvpBmnl10s8uCyFD7rsujCgINFDnTl+bex+59UUMtP+vQr40AYkBIFUExKFbFl5gzqLKacqCuCAQ6pveEGZqNQe8VKFhEQhiwwuA66RXVj93JAzCRxTSwJmqWBzX5aJu0VVExILWZ4vCwQuVvY6M9EDfZNERAmABao1vKP6iWpREdWJkFjUUgHfMhjopD79Vb9TW20YWdlChOPK5JSoRflr1NLjfDVfcr8LUoDwed8c3yCzYFmUIB9BM3U6prQi+UjrkY9s4CnXZGdu0dWkD5CwJZFwxO0sw20JLJCFdPIJfKmFJwD/B4g2wB0X86iqAAAAAElFTkSuQmCC",nt=["title","src"],ot={key:1},lt=e.defineComponent({name:"LogoWidget",inheritAttrs:!1,__name:"index",props:{icon:{default:ye},text:{default:"VTJ"},link:{}},setup(c){const t=c,n=()=>{t.link&&(location.href=t.link)};return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:"v-logo-widget",onClick:n},[t.icon?(e.openBlock(),e.createElementBlock("img",{key:0,title:t.text,class:"v-logo-widget__icon",src:t.icon},null,8,nt)):(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(t.text),1))]))}}),rt={class:"v-empty-widget"},at=e.defineComponent({name:"EmptyWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",rt,"EmptyWidget"))}});function Ie(){const c=U(),t=e.computed(()=>c.project.value?.dependencies??[]);return{engine:c,dependencies:t}}function oe(c,t){const n=e.computed(()=>Ce.getWidgets(e.unref(c),e.unref(t)).filter(l=>!l.invisible)),o=e.ref();return{widgets:n,widgetsRef:o}}function De(){const c=U();return{span:e.computed(()=>{const l=c.skeleton?.skeletonRef.leftWidth||400,a=Math.min(Math.floor((l-50)/120),24);return Math.floor(24/a)}),engine:c}}function st(){const c=U(),t=e.computed(()=>c.project.value?.blocks??[]);return{engine:c,blocks:t}}const it=(c=[])=>c.map(t=>t.name);function ct(){const c=U(),{components:t,groups:n,componentMap:o}=c.assets,l=e.reactive({}),a=e.computed(()=>{const p={};return n.value&&n.value.forEach(v=>{p[v.name]=v}),p}),s=e.computed(()=>n.value?n.value.map(p=>({label:`${p.label} (${p.count})`,name:p.name,disabled:!p.children?.length})):[]),r=e.ref(s.value[0]?.name),i=e.ref(""),m=e.computed(()=>a.value[r.value]);e.watchEffect(()=>{const p=s.value.reduce((v,f)=>(v[f.name]=it(a.value[f.name].children),v),{});Object.assign(l,p)});const d=e.computed(()=>{const p=i.value.toLowerCase();return!p||!t?[]:t.filter(v=>v.name.toLowerCase().includes(p)||v.label?.toLowerCase().includes(p))});return{components:t,groups:n,componentMap:o,groupMap:a,tabs:s,model:l,currentTab:r,currentGroup:m,searchKey:i,searchResult:d}}function W(){const c=U(),t=e.computed(()=>c.current.value),n=e.computed(()=>c.context.value),o=e.computed(()=>c.isEmptyCurrent.value);return{engine:c,current:t,isEmpty:o,context:n}}function ut(c,t){const n=U();n.simulator.init(c,t);const o=e.computed(()=>n.simulator.designer.value),l=e.computed(()=>fe("hover",o.value?.hover.value)),a=e.computed(()=>fe("dropping",o.value?.dropping.value)),s=e.computed(()=>fe("selected",o.value?.selected.value));return e.watch(n.changed,()=>{o.value?.updateRect()}),{designer:o,dropping:a,hover:l,selected:s}}function dt(c,t=!0){const{top:n,height:o,width:l,left:a}=c||{};if(o>100&&l>200)return"inner";let s,r;return r=n>30?"top":"bottom",s=t||a<300&&l<300?"left":"right",[s,r].join("-")}function mt(c){const{rect:t,type:n}=c,{left:o,width:l,top:a,height:s}=t,r={left:o,width:l,top:a,height:s};switch(n){case"left":r.left=0,r.width=0;break;case"right":r.left=r.left+r.width-4,r.width=0;break;case"bottom":r.top=r.top+r.height-4,r.height=0;break;case"top":r.height=0;break}return r}function fe(c,t){if(!t)return null;const{left:n,top:o,width:l,height:a}=c==="dropping"?mt(t):t.rect,s={left:`${n}px`,top:`${o}px`,width:`${l}px`,height:`${a}px`,visibility:l||a?"visible":"hidden"};return{...t,style:s,position:dt(t.rect,c!=="selected")}}function Y(){const c=U(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>t.value?.selected.value),o=e.computed(()=>w.isBlock(n.value?.model));return{engine:c,designer:t,selected:n,isSelectBlock:o}}function pt(c,t){const n=e.ref(""),{selected:o,isSelectBlock:l}=Y(),a=e.computed(()=>o.value?.model.id),s=e.computed(()=>{const i=e.toValue(c),m=e.toValue(t),d=[];if(!i)return d;const p=m?.__contextRefs[a.value||""],f=m===p||l.value?[]:Object.keys(p?.context||{}).filter(V=>!["context","ref"].includes(V)).map(V=>`this.context.${V}`);f.length&&d.push({title:"上下文",items:f});const u=i.inject.map(V=>`this.${V.name}`);u.length&&d.push({title:"注入",items:u});const g=i.props.map(V=>typeof V=="string"?`this.$props.${V}`:`this.$props.${V.name}`);g.length&&d.push({title:"属性",items:g});const h=Object.keys(i.state).map(V=>`this.state.${V}`);h.length&&d.push({title:"状态",items:h});const _=Object.keys(i.computed).map(V=>`this.${V}.value`);_.length&&d.push({title:"计算属性",items:_});const C=Object.keys(i.methods).map(V=>`this.${V}`);C.length&&d.push({title:"方法",items:C});const B=Object.keys(i.dataSources).map(V=>`this.${V}`);B.length&&d.push({title:"数据源",items:B});const I=Object.keys(m?.$refs||{}).map(V=>`this.$refs.${V}`);return I.length&&d.push({title:"refs",items:I}),d}),r=e.computed(()=>{if(!n.value)return s.value;const i=n.value.toLowerCase(),m=[];return s.value.forEach(d=>{const p=d.items.filter(v=>v.toLowerCase().includes(i));p.length&&m.push({title:d.title,items:p})}),m});return{keyword:n,options:s,searchResult:r}}const ue=[{name:"StringSetter",label:"文本"},{name:"ExpressionSetter",label:"表达式"}];function ft(c){const t=U(),n=e.computed(()=>{const p=c.value?.model||null;return w.isBlock(p)?null:p}),o=e.ref();e.watch(n,async p=>{p?.from?o.value=await t.assets.getBlockMaterial(p.from)||void 0:o.value=void 0},{immediate:!0});const l=e.computed(()=>n.value?[{name:"key",setters:ue,value:n.value.getPropValue("key")},{name:"ref",setters:ue,value:n.value.getPropValue("ref")},{name:"class",label:"class",setters:ue,value:n.value.getPropValue("class")},{name:"children",label:"文本",title:"如设置组件文本,将清空子组件",setters:ue,value:Array.isArray(n.value.children)?"":n.value.children}]:[]),a=e.computed(()=>{if(!n.value)return[];const p=o.value||t.assets.componentMap.get(n.value.name);return p?(p.props||[]).map(f=>({...f,value:n.value?.getPropValue(f.name)??f.defaultValue})):[]}),s=p=>l.value.some(v=>v.name===p)||a.value.some(v=>v.name===p)||p==="style",r=e.computed(()=>n.value?Object.keys(n.value.props).filter(p=>!s(p)).map(p=>({name:p,setters:"InputSetter",value:n.value?.getPropValue(p)})):[]);return{commonProps:l,componentProps:a,customProps:r,node:n,change:(p,v)=>{n.value&&(p==="children"?n.value.setChildren(v):n.value.setProp(p,v))},addCustom:p=>{p&&n.value?.setProp(p,"")},removeCustom:p=>{n.value?.removeProp(p)},isExist:s}}function L(c,t="提示"){return y.ElNotification.warning({title:t,message:c})}async function re(c){return await y.ElMessageBox.confirm(c,"提示",{type:"warning"}).catch(()=>!1)}function H(c,t="success"){return y.ElMessage({message:c,type:t})}function X(c,t,n=!1){let o=!0;try{c.type==="JSExpression"?D.parseExpression(c,t,n,!0):D.parseFunction(c,t,n,!0)}catch(l){o=!1,y.ElNotification.error({title:"代码错误",message:l.message})}return o}function je(){const c=U(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>c.current.value?c.history.value:null),o=e.computed(()=>n.value?.items.length||0),l=()=>{t.value?.cleanHelper(),n.value?.forward()},a=()=>{n.value?.backward(),t.value?.cleanHelper()},s=m=>{t.value?.cleanHelper(),n.value?.load(m),H("已载入历史记录","success")},r=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)<=0),i=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)>=o.value-1);return{engine:c,history:n,total:o,forward:l,backward:a,load:s,forwardDisabled:r,backwardDisabled:i}}function me(){const c=U(),t=e.computed(()=>c.project.value);return{engine:c,project:t}}function vt(c){const t=U(),n=e.computed(()=>{const r=c.value?.model||null;return!r||w.isBlock(r)?null:r}),o=e.ref();e.watch(n,async r=>{r?.from?o.value=await t.assets.getBlockMaterial(r.from)||void 0:o.value=void 0});const l=e.computed(()=>{if(w.isBlock(n.value))return[];const r=n.value?.events||{};return xe.map(i=>({name:i,event:r[i]}))}),a=e.computed(()=>{if(w.isBlock(n.value))return[];const r=n.value?.events||{};return Se.map(i=>({name:i,event:r[i]}))}),s=e.computed(()=>{if(!n.value||w.isBlock(n.value))return[];const r=n.value.events||{};return(o.value?.events||t.assets.componentMap.get(n.value.name)?.events||[]).map(m=>{const d=typeof m=="string"?m:m.name;return{name:d,event:r[d]}})});return{mouseEventList:l,keyboardEventList:a,componentEventList:s}}const Ve=(c,t)=>new w.DirectiveModel({name:c,value:void 0,iterator:t}),gt=(c="modelValue")=>new w.DirectiveModel({name:"vModel",value:void 0,arg:c});function ht(c){if(!c)return[];const{props:t=[],events:n=[]}=c;if(t.length&&n.length){const o=n.filter(l=>(typeof l=="string"?l:l.name).startsWith("update:")).map(l=>l=typeof l=="string"?l:l.name);return o.length?t.filter(l=>o.some(a=>a.includes(l.name))):[]}return[]}function bt(c){const t=U(),n=e.computed(()=>{const u=c.value?.model||null;return w.isBlock(u)?null:u}),o=u=>e.computed(()=>n.value&&(n.value.directives||[]).find(g=>g.name===u)||Ve(u)),l=()=>e.computed(()=>{if(!n.value)return[];const u=t.assets.componentMap.get(n.value.name||"");return(u?ht(u):[]).map(h=>(n.value?.directives||[]).find(_=>_.name==="vModel"&&_.arg==h.name)||gt(h.name))}),a=o("vIf"),s=o("vShow"),r=o("vBind"),i=o("vFor"),m=l(),d={vIf:a,vShow:s,vBind:r,vFor:i};return{engine:t,node:n,vIf:a,vShow:s,vBind:r,vFor:i,vModels:m,onValueChange:(u,g)=>{const h=d[u];n.value&&(g?(h.value.value=g,n.value.setDirective(h.value)):(h.value.value=void 0,n.value.removeDirective(h.value)))},onForChange:(u,g)=>{if(n.value){if(u==="value"){g?(i.value.value=g,n.value.setDirective(i.value)):n.value.removeDirective(i.value);return}(u==="item"||u==="index")&&(i.value.iterator={...i.value.iterator,[u]:g||void 0},n.value.setDirective(i.value))}},onModelChange:(u,g)=>{if(!n.value)return;const h=parseInt(u),_=m.value[h];_&&(g?(_.value=g,n.value.setDirective(_)):(_.value=void 0,n.value.removeDirective(_)))}}}function kt(){const{engine:c,project:t}=me(),n=e.computed(()=>t.value?.apis||[]);return{engine:c,project:t,apis:n}}const yt={class:"v-switcher-widget"},_t={key:1},Ct=e.defineComponent({name:"SwitcherWidget",inheritAttrs:!1,__name:"index",emits:["click"],setup(c,{emit:t}){const n=t,{engine:o}=W(),l=e.computed(()=>o.project.value?.name),a=e.computed(()=>o.project.value?.currentFile?.title),s=()=>{n("click",o.project.value)};return(r,i)=>(e.openBlock(),e.createElementBlock("div",yt,[e.createVNode(e.unref(y.ElButton),{size:"small",round:"",onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconBack),{class:"v-switcher-widget__back"}),e.createElementVNode("span",null,e.toDisplayString(l.value),1),a.value?(e.openBlock(),e.createBlock(e.unref(y.ElDivider),{key:0,direction:"vertical"})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("span",_t,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)]),_:1})]))}}),wt={class:"v-toolbar-widget"},Vt=e.defineComponent({name:"ToolbarWidget",inheritAttrs:!1,__name:"index",props:{preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{forward:o,backward:l,forwardDisabled:a,backwardDisabled:s}=je(),r=e.ref("pc");return t({mode:r}),(i,m)=>(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(e.unref(y.ElRadioGroup),{size:"small",modelValue:r.value,"onUpdate:modelValue":m[0]||(m[0]=d=>r.value=d)},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElRadioButton),{label:"pc"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPc))]),_:1}),e.createVNode(e.unref(y.ElRadioButton),{label:"mobile"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPhone))]),_:1}),e.createVNode(e.unref(y.ElRadioButton),{label:"pad"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPad))]),_:1})]),_:1},8,["modelValue"]),e.createCommentVNode("",!0),e.createVNode(e.unref(y.ElButtonGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",onClick:e.unref(l),disabled:e.unref(s)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconUndo))]),_:1},8,["onClick","disabled"]),e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",onClick:e.unref(o),disabled:e.unref(a)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconRedo))]),_:1},8,["onClick","disabled"])]),_:1})]))}}),Bt={class:"v-actions-widget"},xt=e.createElementVNode("span",null,"发布",-1),St=e.defineComponent({name:"ActionsWidget",inheritAttrs:!1,__name:"index",props:{coder:{type:Boolean,default:!0}},setup(c){const{engine:t,designer:n}=Y(),o=e.ref(!1),l=()=>{t.current.value?(o.value?t.skeleton?.getWidget("Previewer")?.widgetRef.refresh():(n.value?.setSelected(null),t.simulator.refresh()),H("刷新完成","success")):H("请先打开文件","warning")},a=async()=>{t.current.value?(o.value&&(t.skeleton?.closePreview(),o.value=!1,await F.delay(1e3)),n.value?.setSelected(t.current.value)):H("请先打开文件","warning")},s=()=>{if(t.project.value)if(t.current.value){if(o.value){t.skeleton?.closePreview(),o.value=!1;return}t.skeleton?.openPreview(""),o.value=!0}else H("请先打开文件","warning")},r=()=>{const m=t.project.value;m&&(m.currentFile?m.publish(m.currentFile):H("请先打开文件","warning"))},i=m=>{const d=t.project.value;d&&(m==="current"?r():d.publish())};return(m,d)=>(e.openBlock(),e.createElementBlock("div",Bt,[e.createCommentVNode("",!0),e.createCommentVNode("",!0),e.createVNode(e.unref(y.ElButton),{onClick:s,type:o.value?"warning":"default",size:"small",title:"预览"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPreview))]),_:1},8,["type"]),e.createVNode(e.unref(y.ElButton),{onClick:l,type:"default",size:"small",title:"刷新"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconRefresh))]),_:1}),e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",title:"页面设置",onClick:a},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSetting))]),_:1}),e.createVNode(e.unref(y.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(y.ElDropdown),{"split-button":"",type:"primary",size:"small",onClick:r,onCommand:i},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownMenu),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownItem),{command:"current"},{default:e.withCtx(()=>[e.createTextVNode("发布页面")]),_:1}),e.createVNode(e.unref(y.ElDropdownItem),{command:"project"},{default:e.withCtx(()=>[e.createTextVNode("整站发布")]),_:1})]),_:1})]),default:e.withCtx(()=>[xt]),_:1})]))}}),Et={class:"v-icon-setter"},Nt={class:"v-icon-setter__content"},$t={class:"v-icon-setter__list"},Ae=e.defineComponent({name:"IconSetter",__name:"icon",props:{modelValue:{default:""},size:{default:"small"}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(n.modelValue),s=e.ref(""),r=e.computed(()=>k.icons[n.modelValue]||n.modelValue),i=e.computed(()=>{const f=Object.entries(k.icons);return s.value?f.filter(u=>u[0].toLowerCase().includes(s.value)):f}),m=f=>{a.value=f},d=()=>{o("change",a.value),o("update:modelValue",a.value),l.value=!1},p=()=>{a.value="",o("change",""),o("update:modelValue",""),l.value=!1},v=()=>{l.value=!0};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Et,[e.createVNode(e.unref(y.ElInput),{size:n.size,readonly:"",placeholder:"请选择图标","model-value":n.modelValue,"suffix-icon":e.unref(k.ArrowDown),onFocus:v},{prepend:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:r.value},null,8,["icon"])]),_:1},8,["size","model-value","suffix-icon"]),l.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,title:"图标选择器",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value=g),onSubmit:d},{extra:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{size:"default",type:"warning",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 清除绑定 ")]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Nt,[e.createVNode(e.unref(y.ElInput),{size:n.size,"prefix-icon":e.unref(k.Search),clearable:"",modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=g=>s.value=g),placeholder:"请输入查询关键字"},null,8,["size","prefix-icon","modelValue"]),e.createElementVNode("div",$t,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,g=>(e.openBlock(),e.createBlock(e.unref(b.XIcon),{icon:g[1],onClick:h=>m(g[0]),class:e.normalizeClass({"is-active":a.value===g[0]})},null,8,["icon","onClick","class"]))),256)),i.value.length===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0})):e.createCommentVNode("",!0)])])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]))}}),It=e.defineComponent({name:"PageForm",__name:"form",props:{item:{},parentId:{}},setup(c){const t=c,{project:n}=me(),o=e.computed(()=>t.item?"编辑页面":"新增页面"),l=()=>({dir:!1,name:"",title:"",icon:"",mask:!0,hidden:!1,raw:!1}),a=e.ref(t.item||l()),s=[{label:"页面",value:!1},{label:"目录",value:!0}],r=m=>{a.value&&(a.value.name=F.upperFirstCamelCase(m))},i=async m=>n.value?.existPageName(m.name,[m.id])?(L("页面名称已存在,请更换"),!1):(t.item?n.value?.updatePage(m):n.value?.createPage(m,t.parentId),!0);return(m,d)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:o.value,width:"800px",height:"500px","form-props":{tooltipMessage:!1},model:a.value,"submit-method":i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"dir",label:"类型",editor:"radio",options:s,props:{button:!0,size:"small"},disabled:!!t.item,required:""},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",onChange:r,rules:{pattern:e.unref(Q),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""}),e.createVNode(e.unref(b.XField),{name:"icon",label:"菜单图标",editor:"none"},{editor:e.withCtx(()=>[e.createVNode(Ae,{modelValue:a.value.icon,"onUpdate:modelValue":d[0]||(d[0]=p=>a.value.icon=p),size:"default"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},name:"mask",label:"包含母版",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"hidden",label:"隐藏菜单",editor:"switch"}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},disabled:!!t.item,inline:"",name:"raw",label:"源码模式",editor:"switch",tip:"页面是非低代码开发,不能在线编辑"},null,8,["disabled"])]),_:1},8,["title","model"]))}}),be=e.defineComponent({name:"VIcon",__name:"Icon",props:{icon:{},label:{},active:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:["click"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>({"is-active":n.active,"is-open":n.open})),a=()=>{o("click")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(y.ElTooltip),{effect:"dark",placement:"right",content:s.label,"show-after":600},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["v-apps-region__icon",l.value]),onClick:a},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))],2)]),_:1},8,["content"]))}}),$=e.defineComponent({name:"VPanel",__name:"panel",props:{title:{},subtitle:{},plus:{type:Boolean},back:{type:Boolean},edit:{type:Boolean},remove:{type:Boolean},save:{type:Boolean},header:{type:Boolean,default:!0},collapsable:{type:Boolean}},emits:["plus","back","remove","save","edit"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.computed(()=>({"is-collapsed":!!l.value})),s=()=>{o("plus")},r=()=>{o("edit")},i=()=>{o("back")},m=()=>{o("remove")},d=()=>{o("save")},p=e.computed(()=>n.header?{content:n.title,subtitle:n.subtitle,icon:n.back?k.Back:void 0,onClickBack:n.back?i:void 0,onClick:n.collapsable?()=>{l.value=!l.value}:void 0}:null),v=f=>{l.value=f};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:e.normalizeClass(["v-panel",a.value]),border:!1,header:p.value,fit:""},e.createSlots({actions:e.withCtx(()=>[n.plus?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,size:f.$attrs.size,mode:"icon",icon:e.unref(k.VtjIconPlus),background:"hover",title:"新增",onClick:s},null,8,["size","icon"])):e.createCommentVNode("",!0),n.edit?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:1,size:f.$attrs.size,mode:"icon",icon:e.unref(k.EditPen),background:"hover",title:"编辑",onClick:r},null,8,["size","icon"])):e.createCommentVNode("",!0),n.remove?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:2,size:f.$attrs.size,mode:"icon",icon:e.unref(k.Delete),background:"hover",title:"清除",onClick:m},null,8,["size","icon"])):e.createCommentVNode("",!0),n.save?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:3,size:f.$attrs.size,mode:"icon",icon:e.unref(k.VtjIconSave),background:"hover",title:"保存",onClick:d},null,8,["size","icon"])):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:4,size:f.$attrs.size,mode:"icon",icon:e.unref(k.ArrowDown),background:"hover",title:"展开",onClick:u[0]||(u[0]=g=>v(!1))},null,8,["size","icon"])),[[e.vShow,l.value]]):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:5,size:f.$attrs.size,mode:"icon",icon:e.unref(k.ArrowUp),background:"hover",title:"收起",onClick:u[1]||(u[1]=g=>v(!0))},null,8,["size","icon"])),[[e.vShow,!l.value]]):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"actions")]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:2},[f.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(f.$slots,"footer")]),key:"0"}:void 0]),1032,["class","header"]))}}),Dt={class:"v-tabs__header"},jt={key:0,class:"v-tabs__actions"},ie=e.defineComponent({__name:"tabs",props:{items:{default:()=>[]},menus:{},modelValue:{},stretch:{type:Boolean},checkable:{type:Boolean}},emits:["update:modelValue","command","remove","action-click"],setup(c,{emit:t}){const n=c,o=t,l=e.ref((n.modelValue||n.items[0]?.name)??"");e.watch(l,()=>{o("update:modelValue",l.value)}),e.watch(()=>n.modelValue,i=>{l.value=i});const a=i=>{o("command",i)},s=i=>{o("remove",i)},r=i=>{o("action-click",i)};return(i,m)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:"v-tabs",border:!1,fit:"",radius:!1},{header:e.withCtx(()=>[e.createElementVNode("div",Dt,[e.createVNode(e.unref(b.XTabs),{class:"v-tabs__tabs",items:n.items,type:"card",modelValue:l.value,"onUpdate:modelValue":m[0]||(m[0]=d=>l.value=d),onTabRemove:s,onActionClick:r,stretch:n.stretch},null,8,["items","modelValue","stretch"]),n.menus&&n.menus.length?(e.openBlock(),e.createElementBlock("div",jt,[n.menus&&n.menus.length?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,mode:"icon",size:"small",icon:e.unref(k.MoreFilled),background:"hover",dropdown:{size:"small",placement:"bottom-end"},menus:n.menus,onCommand:a},{item:e.withCtx(({item:d})=>[e.createElementVNode("span",null,[n.checkable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconCheck),{key:0,class:e.normalizeClass({"v-tabs__checked":!0,"is-checked":d.checked})},null,8,["class"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(d.label),1)])]),_:1},8,["icon","menus"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3}))}}),At={key:2,class:"v-item__index"},Ft={class:"v-item__content"},Pt={key:3,class:"v-item__subtitle"},O=e.defineComponent({name:"VItem",__name:"item",props:{icon:{},index:{},tag:{},tagType:{},title:{},subtitle:{},actions:{default:()=>[]},background:{type:Boolean},border:{type:Boolean},switch:{type:Boolean},modelValue:{},active:{type:Boolean},hover:{type:Boolean},small:{type:Boolean}},emits:["click","action","update:modelValue","switch"],setup(c,{emit:t}){const n={add:{label:"创建",icon:k.VtjIconPlus},copy:{label:"复制",icon:k.VtjIconCopy},edit:{label:"编辑",icon:k.VtjIconEdit},remove:{label:"删除",icon:k.VtjIconRemove},lock:{label:"锁定",icon:k.VtjIconLock},unlock:{label:"解锁",icon:k.VtjIconUnlock},invisible:{label:"隐藏",icon:k.VtjIconInvisible},visible:{label:"显示",icon:k.VtjIconVisible},home:{label:"主页",icon:k.VtjIconHome}},o=c,l=t,a=e.ref(!!o.modelValue),s=e.computed(()=>o.actions.map(d=>{const p=n[d];return{name:d,...p}})),r=e.computed(()=>({"is-background":o.background,"is-border":o.border,"is-active":o.active,"is-hover":o.hover,"is-small":o.small})),i=()=>{l("click",o.modelValue)},m=async d=>{d==="remove"?await y.ElMessageBox.confirm("确定删除吗?","提示",{type:"warning"}).catch(()=>!1)&&l("action",{name:d,modelValue:o.modelValue}):l("action",{name:d,modelValue:o.modelValue})};return e.watch(a,d=>{l("update:modelValue",d),l("switch",d)}),e.watch(()=>o.modelValue,d=>{a.value=!!d}),(d,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-item",r.value]),justify:"space-between",align:"center",onClick:i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-item__title",align:"center"},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default",{},()=>[d.icon?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,icon:d.icon},null,8,["icon"])):e.createCommentVNode("",!0),o.tag?(e.openBlock(),e.createBlock(e.unref(y.ElTag),{key:1,class:"v-item__tag",size:"small",type:o.tagType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.tag),1)]),_:1},8,["type"])):e.createCommentVNode("",!0),d.index!==void 0?(e.openBlock(),e.createElementBlock("span",At," # "+e.toDisplayString(d.index),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Ft,e.toDisplayString(d.title),1),d.subtitle?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(d.subtitle),1)):e.createCommentVNode("",!0)])]),_:3}),e.createVNode(e.unref(b.XContainer),{class:"v-item__actions",onClick:p[1]||(p[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,v=>(e.openBlock(),e.createBlock(e.unref(b.XAction),{name:v.name,title:v.label,mode:"icon",size:"small",background:"none",type:"info",icon:v.icon,onClick:f=>m(v.name)},null,8,["name","title","icon","onClick"]))),256)),o.switch?(e.openBlock(),e.createBlock(e.unref(y.ElSwitch),{key:0,modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=v=>a.value=v),class:"v-item__switch",size:"small"},null,8,["modelValue"])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"status")]),_:3})]),_:3},8,["class"]))}}),Tt=["draggable"],Rt={class:"v-box__name"},zt={class:"v-box__label"},de=e.defineComponent({name:"VBox",__name:"box",props:{name:{},title:{},editable:{type:Boolean},active:{type:Boolean},draggable:{type:Boolean}},emits:["edit","remove","dragstart","dragend"],setup(c,{emit:t}){const n=c,o=t,l=()=>{o("edit")},a=async()=>{await y.ElMessageBox.confirm("确认删除?","提示",{type:"warning"}).catch(()=>!1)&&o("remove")},s=e.computed(()=>({"is-active":n.active,"is-draggable":n.draggable})),r=()=>{o("dragstart",n)},i=()=>{o("dragend",n)};return(m,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-box",s.value]),draggable:m.draggable,onDragstart:r,onDragend:i},[e.createVNode(e.unref(b.XContainer),{direction:"column",justify:"center",align:"center"},{default:e.withCtx(()=>[e.createElementVNode("span",Rt,e.toDisplayString(n.name),1),e.createElementVNode("span",zt,e.toDisplayString(n.title),1)]),_:1}),n.editable?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-box__footer",justify:"flex-end",align:"center"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.VtjIconEdit),onClick:l},null,8,["icon"]),e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.VtjIconRemove),onClick:a},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)],42,Tt))}}),Jt={class:"v-context-viewer"},Fe=e.defineComponent({__name:"viewer",props:{context:{}},emits:["pick","copy"],setup(c,{emit:t}){const n=c,o=t,l=["$provider","$apis","$components","context"],a=d=>{const p=d.value,v=F.toRawType(p);return v==="Object"||v==="Module"?Object.keys(p||{}).length===0:v==="Array"?p.length===0:!0},s=(d,p="this")=>typeof d=="object"?Array.isArray(d)?d.map((v,f)=>{const u=`[${f}]`;return{label:u,value:v,type:F.toRawType(v),path:`${p}${u}`}}):Object.entries(d).map(([v,f])=>({label:v,value:f,type:F.toRawType(f),path:`${p}.${v}`})).filter(v=>!v.label.startsWith("__")&&!l.includes(v.label)):[],r=(d,p)=>{if(d.level===0)p(s(n.context));else{const v=e.toRaw(d.data.value);p(s(v,d.data.path))}},i=d=>{o("copy",d.path)},m=d=>{o("pick",d.path)};return(d,p)=>(e.openBlock(),e.createElementBlock("div",Jt,[d.context?(e.openBlock(),e.createBlock(e.unref(y.ElTree),{key:0,lazy:"",load:r,"expand-on-click-node":!1,props:{isLeaf:a}},{default:e.withCtx(({data:v})=>[e.createVNode(O,{title:v.label,clickable:"",onClick:f=>m(v),background:"",actions:["copy"],onAction:f=>i(v),grow:"",small:""},null,8,["title","onClick","onAction"])]),_:1},8,["props"])):e.createCommentVNode("",!0)]))}}),pe=e.defineComponent({__name:"binder",props:{title:{},context:{},block:{},model:{},rules:{},modelValue:{type:Boolean},submitMethod:{type:Function},unbindEnabled:{type:Boolean}},emits:["unbind","submit","cancel","pick","update:modelValue","close"],setup(c,{emit:t}){const n=c,o=t,{searchResult:l,keyword:a}=pt(n.block,n.context),{copy:s}=le.useClipboard({}),r=[{name:"normal",label:"常用"},{name:"viewer",label:"高级"}],i=e.ref("normal"),m=e.ref(),d=async _=>{o("submit",_),n.submitMethod?await n.submitMethod(_)&&p():p()},p=()=>{o("update:modelValue",!1),o("close")},v=()=>{o("unbind")},f=()=>{p()},u=async()=>{m.value?.submit()},g=_=>{o("pick",_)},h=_=>{s(_),y.ElMessage.success({message:"已经复制到粘贴板"})};return(_,C)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),{"model-value":n.modelValue,class:"v-binder",title:_.title,width:"1000px",height:"600px","body-padding":!1,maximizable:!1,minimizable:!1,onClose:p},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{fit:"",direction:"row",overflow:"hidden"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{width:"30%",height:"100%"},{default:e.withCtx(()=>[e.createVNode(ie,{class:"v-binder__tabs",items:r,modelValue:i.value,"onUpdate:modelValue":C[1]||(C[1]=B=>i.value=B)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-binder__tab-content",fit:"",padding:"",flex:!1},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[e.createVNode(e.unref(y.ElInput),{modelValue:e.unref(a),"onUpdate:modelValue":C[0]||(C[0]=B=>e.isRef(a)?a.value=B:null),size:"small",clearable:"","prefix-icon":e.unref(k.Search),placeholder:"筛选可用项"},null,8,["modelValue","prefix-icon"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),B=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(y.ElDivider),{"border-style":"dotted"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(B.title),1)]),_:2},1024),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.items,I=>(e.openBlock(),e.createBlock(O,{title:I,background:"",actions:["copy"],small:"",onClick:V=>g(I),onAction:V=>h(I)},null,8,["title","onClick","onAction"]))),256))]))),256)),e.unref(l).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0}))],512),[[e.vShow,i.value==="normal"]]),e.withDirectives(e.createVNode(Fe,{context:n.context,onCopy:h,onPick:g},null,8,["context"]),[[e.vShow,i.value==="viewer"]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XPanel),{grow:"",header:null,border:!1},{footer:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[_.unbindEnabled?(e.openBlock(),e.createBlock(e.unref(y.ElButton),{key:0,type:"warning",size:"default",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 移除绑定 ")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{type:"default",size:"default",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(" 取消 ")]),_:1}),e.createVNode(e.unref(y.ElButton),{type:"primary",size:"default",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XForm),{ref_key:"formRef",ref:m,class:"v-binder__form",footer:!1,"label-position":"top","tooltip-message":!1,model:n.model,rules:n.rules,"submit-method":d},{default:e.withCtx(()=>[e.renderSlot(_.$slots,"default")]),_:3},8,["model","rules"])]),_:3})]),_:3})]),_:3},8,["model-value","title"]))}}),Lt={class:"v-slots-picker__sn"},Pe=e.defineComponent({__name:"slots",props:{slots:{default:()=>[]}},emits:["submit","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(),a=e.computed(()=>`${50*Math.ceil(n.slots.length/4)+180}px`),s=i=>{l.value=i},r=()=>{l.value?(o("submit",l.value),o("update:modelValue",!1)):L("请选择插槽")};return(i,m)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),e.mergeProps({class:"v-slots-picker",title:"选择插槽",width:"600px",height:a.value,submit:"",cancel:"",onSubmit:r},i.$attrs),{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElAlert),{title:"该组件支持多个插槽,请选择放置到其中一个",type:"warning",closable:!1}),e.createVNode(e.unref(b.XContainer),{class:"v-slots-picker__content",justify:"space-around",alignContent:"flex-start",gap:"",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.slots,(d,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-slots-picker__item",{"is-active":d.name===l.value?.name}]),grow:"",flex:!1,onClick:v=>s(d)},{default:e.withCtx(()=>[e.createElementVNode("span",Lt,"#"+e.toDisplayString(p+1),1),e.createTextVNode(" "+e.toDisplayString(d.name),1)]),_:2},1032,["class","onClick"]))),256))]),_:1})]),_:1},16,["height"]))}}),_e=e.defineComponent({name:"Viewport",__name:"viewport",props:{mode:{default:"pc"},width:{},height:{}},setup(c){const t=c,n=e.computed(()=>[`is-${t.mode}`]),o=e.computed(()=>{if(t.mode==="pc")return 1;const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a,i=s>0?(t.width||0)/s:1,m=r>0?(t.height||0)/r:1;return Math.min(i,m)}),l=e.computed(()=>{if(t.mode==="pc")return{};const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a;return{width:`${s}px`,height:`${r}px`,left:"50%",top:"50%",transform:`translate(-50%, -50%) scale(${o.value})`}});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-viewport",n.value]),style:e.normalizeStyle(l.value)},[e.renderSlot(a.$slots,"default")],6))}}),Mt=e.defineComponent({name:"PagesWidget",__name:"index",setup(c){const{project:t,engine:n}=me(),o=e.computed(()=>t.value?.pages||[]),{current:l}=W(),a=e.ref(!1),s=e.ref(),r=e.ref(),i=()=>{r.value=void 0,s.value=void 0,a.value=!0},m=async f=>{const{name:u,modelValue:g}=f,{data:h,node:_}=g;if(u==="add"&&(s.value=void 0,r.value=h.id,a.value=!0),u==="edit"&&(s.value=F.cloneDeep(h),r.value=void 0,a.value=!0),u==="remove"){if(h.dir){const C=t.value?.getPage(h.id);if(C&&C.children?.length){L("请先删除子页面");return}}t.value?.removePage(h.id)}if(u==="copy"){const C=_.parent?.data.id;t.value?.clonePage(h,C)}u==="home"&&(t.value?.setHomepage(h.id),H("设置主页成功","success"))},d=async f=>{f.raw&&H("这是源码模式页面,不能低代码设计","warning"),f.dir||f.raw?n.project.value?.deactivate():n.project.value?.active(f)},p=(f,u,g)=>g==="inner"?!!u.data.dir:!0,v=()=>{t.value?.update({pages:e.toValue(o)})};return(f,u)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-pages-widget",title:"页面管理",plus:"",subtitle:"(共 0 条)",onPlus:i},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElTree),{data:o.value,"node-key":"id","default-expand-all":"",draggable:"","allow-drop":p,onNodeDrop:v},{default:e.withCtx(({data:g,node:h})=>[e.createVNode(e.unref(O),{class:"v-pages-widget__item",icon:e.unref(k.icons)[g.icon],title:g.title,subtitle:g.name,"model-value":{data:g,node:h},actions:g.dir?["add","edit","remove"]:g.raw?["home","edit","remove"]:["home","copy","edit","remove"],onAction:m,onClick:_=>d(g),active:e.unref(l)?.id===g.id,tag:e.unref(t)?.homepage===g.id?"主页":void 0,"tag-type":"success",grow:"",small:"",background:"",hover:""},null,8,["icon","title","subtitle","model-value","actions","onClick","active","tag"])]),_:1},8,["data"]),a.value?(e.openBlock(),e.createBlock(It,{key:0,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=g=>a.value=g),item:s.value,"parent-id":r.value},null,8,["modelValue","item","parent-id"])):e.createCommentVNode("",!0)]),_:1}))}}),Ot=e.defineComponent({name:"BlocksWidget",__name:"index",setup(c){const{span:t}=De(),{blocks:n,engine:o}=st(),l=e.ref(void 0),{current:a}=W(),s=e.ref(!1),r=e.computed(()=>l.value?.id?"编辑":"新增"),i=e.computed(()=>`(共 ${n.value.length} 个)`),m=()=>({name:"",title:"",type:"block"}),d=async C=>{const B=C,I=o.project.value;if(!I)return!1;if(C.id)if(!I.existBlockName(B.name,[B.id]))I.updateBlock(B);else return L(`名称【${B.name}】已经存在,请更换名称`),!1;else if(!I.existBlockName(B.name))I.createBlock(B);else return L(`名称【${B.name}】已经存在,请更换名称`),!1;return!0},p=()=>{l.value=m(),s.value=!0},v=C=>{l.value=F.cloneDeep(C),s.value=!0},f=C=>{o.project.value?.removeBlock(C.id)},u=C=>{l.value&&(l.value.name=F.upperFirstCamelCase(C))},g=async C=>{o.project.value?.active(C)},h=async C=>{const B={type:"Schema",id:C.id},I=await o.assets.getBlockMaterial(B),V=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;V&&I&&V.setDragging(I)},_=()=>{const C=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;C&&C.setDragging(null)};return(C,B)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-blocks-widget",title:"区块管理",subtitle:i.value,plus:"",onPlus:p},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),I=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{key:I.id,span:e.unref(t)},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:I.name,title:I.title,active:e.unref(a)?.id===I.id,editable:"",onEdit:V=>v(I),onRemove:V=>f(I),onClick:V=>g(I),draggable:e.unref(a)?.id!==I.id,onDragstart:V=>h(I),onDragend:_},null,8,["name","title","active","onEdit","onRemove","onClick","draggable","onDragstart"])]),_:2},1032,["span"]))),128))]),_:1}),e.unref(n).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0})),e.createVNode(e.unref(b.XDialogForm),{modelValue:s.value,"onUpdate:modelValue":B[0]||(B[0]=I=>s.value=I),title:r.value,model:l.value,width:"600px",height:"250px","form-props":{tooltipMessage:!1},"submit-method":d},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",tip:"名称为英文驼峰格式",rules:{message:"名称格式错误",pattern:e.unref(Q)},onChange:u},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""})]),_:1},8,["modelValue","title","model"])]),_:1},8,["subtitle"]))}}),Xt={class:"v-components-widget__search"},Wt={key:0,class:"v-components-widget__result"},Ut={class:"v-components-widget__list"},Ht=e.defineComponent({name:"ComponentsWidget",__name:"index",setup(c){const{span:t,engine:n}=De(),{tabs:o,currentTab:l,currentGroup:a,model:s,searchKey:r,searchResult:i}=ct(),m=p=>{const v=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;v&&v.setDragging(p)},d=()=>{const p=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;p&&p.setDragging(null)};return(p,v)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-components-widget",title:"组件库",body:{flex:!0,direction:"column"}},{default:e.withCtx(()=>[e.createElementVNode("div",Xt,[e.createVNode(e.unref(y.ElInput),{modelValue:e.unref(r),"onUpdate:modelValue":v[0]||(v[0]=f=>e.isRef(r)?r.value=f:null),placeholder:"搜索组件",clearable:"",size:"small"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSearch))]),_:1},8,["modelValue"])]),e.unref(r)?(e.openBlock(),e.createElementBlock("div",Wt,[e.createVNode(e.unref(y.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),f=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{span:e.unref(t),key:f.name},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:f.name,title:f.label||f.name,draggable:"",onDragstart:u=>m(f),onDragend:d},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:1}),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0}))])):(e.openBlock(),e.createBlock(e.unref(b.XTabs),{key:1,items:e.unref(o),modelValue:e.unref(l),"onUpdate:modelValue":v[2]||(v[2]=f=>e.isRef(l)?l.value=f:null)},{default:e.withCtx(()=>[e.createElementVNode("div",Ut,[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(y.ElCollapse),{key:0,modelValue:e.unref(s)[e.unref(l)],"onUpdate:modelValue":v[1]||(v[1]=f=>e.unref(s)[e.unref(l)]=f)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).children,f=>(e.openBlock(),e.createBlock(e.unref(y.ElCollapseItem),{key:f.name,name:f.name,title:`${f.label} (${f.count})`},{default:e.withCtx(()=>[f.components?(e.openBlock(),e.createBlock(e.unref(y.ElRow),{key:0,wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.components,u=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{span:e.unref(t),key:u.name},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:u.name,title:u.label||u.name,draggable:"",onDragstart:g=>m(u),onDragend:d},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1032,["name","title"]))),128))]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)])]),_:1},8,["items","modelValue"]))]),_:1}))}}),qt=e.defineComponent({name:"OutlineWidget",__name:"index",setup(c){const{engine:t,designer:n,selected:o}=Y(),{current:l}=W(),a=e.ref([]),s=V=>{if(w.isBlock(V))return V.locked?["unlock"]:["lock"];const S=V.parent;return S&&(S.locked||S.invisible)?[]:l.value?.locked?[]:V.locked?["unlock"]:V.invisible?["visible"]:["lock","invisible","copy","remove"]},r=V=>{const S=[];return V.forEach(x=>{const J={id:x.id,label:x.name,type:x.id,model:x};Array.isArray(x.children)&&(J.children=r(x.children)),S.push(J)}),S},i=()=>{if(!l.value)return[];const{id:V,name:S,nodes:x}=l.value;return[{id:V,label:S,type:V,model:l.value,children:r(x)}]},m=async()=>{a.value=i(),o.value?.model&&(await e.nextTick(),n.value?.setSelected(o.value.model))},d=e.computed(()=>o.value?.model.id),p=V=>{const S=V.data;if(w.isBlock(S.model)||S.model.locked||S.model.name==="template")return!1;const x=t.assets.componentMap.get(S.model.name);return x?(n.value?.setDragging(x),!0):!1},v=async(V,S,x)=>{const J=S.data,ne={prev:"top",next:"bottom",inner:"inner"}[x];let j=!1;if(w.isBlock(J.model))j=x==="inner",n.value?.setDropping(j?J.model:null,"inner");else{const P=J.model;j=!!await n.value?.allowDrop(P,ne),n.value?.setDropping(j?P:null,"inner")}return j},f=V=>{const S=V?.model;!S||S.invisible||(n.value?.setSelected(S),n.value?.setHover(null))},u=async(V,S,x)=>{const J=V.data,Z=S.data;if(w.isBlock(Z.model)){n.value?.setDropping(null),n.value?.setDragging(null);return}const ne=Z.model,j={before:"left",after:"right"}[x]||"inner";if(!await n.value?.allowDrop(ne,j)){n.value?.setDropping(null),m(),y.ElMessage.warning({message:`${J.model.name}不能放置到该位置`}),n.value?.setDragging(null);return}const E=await n.value?.getDropSlot(x==="inner"?ne:ne.parent);if(E!==null){const ae=J.model;ae.slot=E,l.value?.move(ae,ne,j)}else m();n.value?.setDropping(null),n.value?.setDragging(null),t.simulator.refresh()},g=V=>{w.isBlock(V.model)?n.value?.setHover(V.model):(n.value?.setHover(V.model),V.model.invisible&&n.value?.setHover(null),V.model.name==="slot"&&n.value?.setHover(null))},h=()=>{n.value?.setHover(null)},_=V=>{const S=V.data;S.dragging=!0;const x=t.assets.componentMap.get(S.model.name);x&&n.value?.setDragging(x)},C=async V=>{const S=V.data;S.dragging=!1},B=(V,S)=>{V&&((V.id===S.id||!w.isBlock(V)&&S.isChild(V))&&n.value?.setSelected(null),n.value?.setHover(null))},I=V=>{const{name:S,modelValue:x}=V,J=o.value?.model;switch(S){case"lock":B(J,x),x.lock();break;case"unlock":B(J,x),x.unlock();break;case"invisible":B(J,x),x.setVisible(!1);break;case"visible":x.setVisible(!0);break;case"copy":const Z=l.value?.cloneNode(x);Z&&n.value?.setSelected(Z);break;case"remove":B(J,x),l.value?.removeNode(x);break}};return e.watch(t.changed,m,{immediate:!0}),(V,S)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-outline-widget",title:"大纲树"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(y.ElTree),{key:e.unref(t).changed.value,data:a.value,"node-key":"id","default-expand-all":"",draggable:"","empty-text":"请新建或打开文件","current-node-key":d.value,"highlight-current":!0,"expand-on-click-node":!1,"allow-drop":v,"allow-drag":p,onCurrentChange:f,onNodeDrop:u,onNodeDragStart:_,onNodeDragEnd:C},{default:e.withCtx(({data:x,node:J})=>[e.createVNode(e.unref(O),{class:e.normalizeClass(["v-outline-widget__item",{"is-locked":x.model.locked,"is-invisible":x.model.invisible,"is-dragging":x.dragging}]),active:!x.model.invisible&&J.isCurrent,grow:"",small:"",background:"",hover:"","model-value":x.model,icon:x.model.locked?e.unref(k.VtjIconLock):x.model.invisible?e.unref(k.VtjIconInvisible):void 0,title:x.label,subtitle:x.type,actions:s(x.model),onAction:I,onMouseenter:Z=>g(x),onMouseleave:h},null,8,["class","active","model-value","icon","title","subtitle","actions","onMouseenter"])]),_:1},8,["data","current-node-key"]))]),_:1}))}}),Gt=e.defineComponent({name:"HistoryWidget",__name:"index",setup(c){const{history:t,load:n,total:o}=je(),l=e.computed(()=>`(共 ${o.value} 条)`),a=r=>{r.name==="remove"&&t.value?.remove(r.modelValue.id)},s=async()=>{await re("确定要清空历史记录吗?")&&t.value?.clear()};return(r,i)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-history-widget",title:"历史记录",subtitle:l.value,remove:!!e.unref(o),onRemove:s},{default:e.withCtx(()=>[e.unref(o)===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.unref(t)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(t).items,(m,d)=>(e.openBlock(),e.createBlock(e.unref(O),{index:d+1,title:m.label,"model-value":m,active:d==e.unref(t).index,small:"",background:"",actions:["remove"],onAction:a,onClick:p=>e.unref(n)(m.id)},null,8,["index","title","model-value","active","onClick"]))),256)):e.createCommentVNode("",!0)]),_:1},8,["subtitle","remove"]))}}),M=e.defineAsyncComponent({loader:()=>Promise.resolve().then(()=>require("./Editor-YiL8B0KR.cjs")),loadingComponent:e.defineComponent({render(){return e.h("div","正在拼命加载...")}}),errorComponent:e.defineComponent({render(){return e.h("div","组件加载失败!")}})}),Kt=e.defineComponent({name:"ApisWidget",__name:"index",setup(c){const t=e.ref(!1),n=e.ref(null),o=e.ref(!1),l=e.computed(()=>o.value?"编辑API":"新增API"),a=e.computed(()=>s.value?.apis||[]),{project:s}=me(),r=()=>({method:"get",name:"",label:"",url:"",settings:{loading:!0,failMessage:!0,validSuccess:!0,originResponse:!1,injectHeaders:!1,type:"form",headers:{type:"JSExpression",value:"({})"}}}),i=()=>{t.value=!0,o.value=!1,n.value=r()},m=Ee.map(h=>({label:h,value:h.toLowerCase()})),d={get:"success",post:"primary",put:"warning",delete:"danger",patch:"warning",jsonp:"info"},p=[{label:"表单",value:"form"},{label:"JSON",value:"json"},{label:"文件",value:"data"}],v=(h,_,C)=>{X({type:"JSExpression",value:_},window)?C():C(new Error("代码错误"))},f=h=>{h.name==="edit"&&u(h.modelValue),h.name==="remove"&&s.value?.removeApi(h.modelValue.name)},u=h=>{o.value=!0,n.value=F.cloneDeep(h),t.value=!0},g=async h=>s.value?.existApiName(h.name,o.value?[h.id]:[])?(L(`API名称 [ ${h.name} ] 已存在`),!1):(s.value?.setApi(h),!0);return(h,_)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-apis-widget",title:"API管理",plus:"",onPlus:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,C=>(e.openBlock(),e.createBlock(e.unref(O),{key:C.id,small:"",title:C.name,subtitle:C.label,"model-value":C,tag:C.method?.toUpperCase(),"tag-type":d[C.method||"get"],background:"",actions:["edit","remove"],onClick:B=>u(C),onAction:f},null,8,["title","subtitle","model-value","tag","tag-type","onClick"]))),128)),a.value.length===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XDialogForm),{modelValue:t.value,"onUpdate:modelValue":_[1]||(_[1]=C=>t.value=C),model:n.value,title:l.value,width:"1000px",height:"600px","form-props":{labelPosition:"top",tooltipMessage:!1,size:"default"},"submit-method":g},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{gap:"",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"method",label:"请求类型",required:"",editor:"radio",options:e.unref(m),props:{button:!0}},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"接口名称",required:"",rules:{pattern:e.unref(Q),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"url",label:"接口URL",required:""})]),_:1}),e.createVNode(e.unref(b.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[n.value.method!=="jsonp"?(e.openBlock(),e.createBlock(e.unref($),{key:0,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-around"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"settings.loading",size:"small",label:"加载提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.failMessage",label:"失败提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.validSuccess",label:"校验成功",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.originResponse",label:"原始响应",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.injectHeaders",label:"注入请求头",editor:"switch"})]),_:1}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.type",label:"发送数据类型",editor:"radio",options:p,props:{button:!0}}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.headers.value",label:"请求头配置",tip:"支持 JSExpression 或 JSFunction",rules:{validator:v}},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:n.value.settings.headers.value,"onUpdate:modelValue":_[0]||(_[0]=C=>n.value.settings.headers.value=C),dark:"",height:"200px"},null,8,["modelValue"])]),_:1},8,["rules"])]),_:1},8,["subtitle"])):e.createCommentVNode("",!0),n.value.method==="jsonp"?(e.openBlock(),e.createBlock(e.unref($),{key:1,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallback",size:"small",label:"jsonpCallback"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallbackFunction",size:"small",label:"jsonpCallbackFunction"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.timeout",size:"small",label:"timeout",editor:"number"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.crossorigin",size:"small",label:"crossorigin",editor:"switch"})]),_:1},8,["subtitle"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue","model","title"])]),_:1}))}}),Zt=e.defineComponent({name:"DepsWidget",__name:"index",setup(c){const{dependencies:t,engine:n}=Ie(),o=e.ref(!1),l=e.ref(!1),a=e.ref({}),s=e.computed(()=>l.value?"查看依赖":a.value?"编辑依赖":"新增依赖"),r=u=>u.required||u.official?[]:["edit","remove"],i=u=>u.official&&!u.required,m=async u=>(u.urls=u.urls.split(`
|
|
8
|
-
`),n.project.value?.setDeps(u),!0),
|
|
7
|
+
*/const Be="0.7.21",ge={width:390,height:844},he={width:1180,height:820},Q=/^[A-Za-z_$][\w_-]*$/,xe=["click","dblclick","mouseenter","mouseleave","mousedown","mouseup","mouseover","contextmenu"],Se=["keydown","keyup","keypress"],Ee=["GET","POST","PUT","PATCH","DELETE","JSONP"],Ne=["stop","prevent","capture","self","once","passive"];var K=(c=>(c.Block="block",c.Node="node",c))(K||{}),$e=(c=>(c.Brand="Brand",c.Toolbar="Toolbar",c.Actions="Actions",c.Apps="Apps",c.Workspace="Workspace",c.Settings="Settings",c.Status="Status",c.Preview="Preview",c))($e||{});const ye="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAQd0lEQVR4nO2dCXRVxRnHf/clIPsekBgIS1hFdqVoZbGLFNTWWgQ3bLVurRYJcTuntbW22qooKKWl2toWquygIFa01doqmBBWWcomIkhACLIKyXvcnu/eefiSNzd57y4vAfI/553wuPfNzJ3/nW9m/t83M4Yx6iTVGOlAC6AD0Bs4F2gGtFT/lmtNgLpABDgMFAN7gCJgH3AQ2ACsAz5V91RbpFfDguUAg4EewBCgLdAQqJXAb5sD7RyuHVGfpcBy4AOgADjkc/k9obq0kP7AN4CrgK7qrQ8aJrALeAt4Q/3dV7XVULWEtAauBq5ThNSpqoIo7AReBWYA/6mqQlQFId2AW4HRwHmpzjwBSMv5N/BHYAHwRSozTyUhQsS9iohGqcrUI1YDE4GXgROpyDAVhMiIKBe4I0V9QxCQgcCvgdeCzigUcPo/BN4HHjiNyRAMBBYBs4BOQWYUFCFdgIXA80DHgPKoCowE3gHuCirvIAj5AfAmcEUAaVcHZAJTgHlqjuQr/CREJm/PAH8G2pyWVZ0crlbzl8v8TNQvQrLVGP5en9I7XdBV9S0/9qu8fhDSC1isZI6zEaKjTQYe8aM+vSZwqeq8u5+lZMTiYeA5oLaXRLwQMhSYe5b0F4niR8BUL6S4VXsvAWYCGZ6Kf2bi+8oVcDuQ9KzbTQvpqQS4GjKcIVrdU25+mCwhbZWuk+WhsGcLxgEPJvusyRAi84xpNR14UhD9a1QyP0iGkEeBQcGV/YyE1O+zwPnJ/CARSEc1NrBin9kQtftFoHEiT5kIIeLj/s3ZXqsecSHwUCJJVEZIGjAJaFXVT3QG4D7ga5U9RmWEiHI7/GyvSZ8QUkPhhhUlVxEhLZUcUAP/ILFld7slJK9GFgkEuRXEjjkSIh6/O0+fZzyt0EK5tLVwIiSvMltXA0+4yWluoiOkqwrVqUFwqA/ckygholI2SCUZZhjM4/bflOYrn1IwT4AZSW3eSlLpUP4/yxPSKtWtwyyBnPPgioHQtpX93Zd0TVXZEbviddcJQ59OMHwAZDTxL+8EIWFRN5a/tTwh31UxtymBtIrhF8GiBwwWPmDw2oMGg3t5rxghIi0NLugAbcRJUKoIiEUYbhwCrz9k57sgz6BvZ7u1pBBjlPk6hdjIRSHnXeV8ChzmF3DlJfDyWIP653yZ28ZP4dKHTfYdBCPNHRndsuGpmwwGdYNjJ2DiYpMnFtheI8OwTWPnLCh43KBR3S9/u/0z+N4Ek8KNYKQu9PvbKkDEQmwL6QP0S0UJhIxhA2D6PWXJEHTNhN7t7Tc46XQj0KQRzBhrMLwPNKgDLRvDY9cZfFOeLtrywjC0B2XIELTLgNm5Br072603RRgZm00sIcNSsSRAyBjSF6b/xIirEMHRE7D7gEtfZhiG9YGe2fGXLuwY41A1oOhzfRLtW8LMcQbnd0wZKd9UC40shGL+Xhl0zkLGwJ4w816D5g7juKlvwbqPwEhkvVRs2thPcfWFhvb62h02ERZqw+vL4e//1afVuTXMGW/QpV1KSMmIDaGKEtI+GSeKGwgZ/brZZLR08AzMWgY/e8l03TqyW8PXesRf2roH3t3w5aI46UdKwnDnVJNXC/XJiemcPd4gp03gpMhr8tXol+ijDwly7iFk9Opiv3VtmuvvmZsPtzxnWp2wm85cCBnRB5pr9IXFK2F/sXImKBjpcOQY3DTJ5LWV+iQvaGOTkp0Z+Ojr8mjoUJSQnkHlJG9X9xyYO96wOk0dFq6AHzxncvS4XVFJ52FCWh24+qJ4cxU5Ca8WmpZNK39VzOKhIzDmWZO31+nT7t0OZuUaZGYESkrbaOB2SMVmBeIrlwfo0h7mjTfo6ODikrdzzCSTw8eS7zdOIQzd28JXNCs3pO94f6PzGl6jNhQfhOsnmrz3P/09F+XAy7kGGc0CmzzWV2tQLEJaqD7EVwgZHdvA/DyDLpn6lN9aCzc/a/L5YfdkWJ15BIb1soe55TEv3+SYpF9BvySkFO2D6yeZrNyuv2dQV3hpnEHTRvZcJwB0jRIieko9X8kogQ5ZMC/PoJvDss531sMNE032H7QrxDVOQq168F2NuZIh9PyCsn2HE4xzYMduuPZpk3U79Td9vQdMG2vQqF4gpAgPTUPKi+XWWMRByDivpW13ezosZ/lgC9w4yWRvsUcysGWRAZ3UPKMclm6CDTsSD5gVUrbssEnZskd/jwwc/ibqQl3fSZGl4e1DakWQLxAyWjW3Z7v9HIygmIRRT5vs2mtXgBdE9SmZe6RpTJKYq8gJe5ibKEQyWb8NrnnS5KPP9D/6dn948W6DunV8JUVc5i1Dfi3GFDKaNYaX7zUY2Fl/z4ZdMPoZk493eyfDwklo2Bgu7x1/af8ReH1VYuaqPISUNZvhe0+ZfLJff8/Ir8Cff2xwTm3f3AZS0mYhxYwnCBkNG9id3lCH6aWYgJETTDZ97BMZ2Obqki5o+6klq2H7LveDBaMurNhoi427HWSW0RfDCz8ySE/3hRSplcyQ2lXHNaQg9evB9LEGlzvMZiwV9SmTddv8U1Etc2XYc4+QxiTN+cB0sRigLISU/HU2KZ85bFFz46Uw9Q5FijcnV3qUkBZuUzBPQnoaTLnd4CoHnViavDzQ6s0+S9oRaJkBwzXm6qO98M46f/Y6ElLeXwM3PGty4Kj+nluGwiOjDatMcX6X5HCutz6kFAb1gDEO08pPDyj/woYA/Aul8PULIEsjxSxaAcX73c36dRBS3iyAMZNNDjvsfJI7Avp2scvlAVYfohHBE0QELu+lH8KImbr2GdNq8ob7HLSw3sJaemW3NAxzlml0Eq+oA4veh9ummhQfiU+rTi3VWr2ZrXohT0mY0NbB4P1qnsl7+f6TYSEM7VrDEM0AYvUOyN/i/9Zs1tC5Dsx8A/70tv6erOae34JwyNOWdwbscNjyK3eEQe+eAUnXYfttbKFRdhcWmhw/7FIxrgzH4VuD4Iav6u/bVeytA5Hd7UJqj0J3SIf5+SZhTRvrrqSTCzra8rtfkIGEKLvXDIh/G4+VJC6VJAt5hqF9Ydo9BplN4398vNTuuzzm/VlIbRjpDrVg2Qb45Vz9myHu0Hn3++wOVcruAI2y+98N8OF2/82VkHFJT5hRgafzyYWwcpMnEUoq8dOQ2r3TFSy7mgaPzoDHFuhTyGkF8+4z6OqXOzSCNcQuHxwhmP2BaanMFSm7yULI6NvV1uacPJ3P/xMemWladZGMTFMO4m3ZJUV3EAcSg/XwafDT6SYTF+t/Ij7q+fcbdMn2RoqYqzoN4Dua0dWeg7BkjZ8yqU1Gz072C6UzU4KX3oO7nzeJRDz3WzJg3ivV6SAMJA4piGlA3l9MJr+h/5n4qOfeZ9C5rQdSSuGiTtBHI1z+60PYUeRf/2F5OjvaZc52GEnOWQa3TTEt/7wPcx5pIQdCapNhzxBSIibkvmjygsOw8PwsmDXesHwlrtyhJlzV31nZlf7Fg8n4Mpvj0Dkb5uYZlsnVQYIjbplicsyl21mD9SJshNSOzw6iQHIQUkojcPcfTaY5bLTaKxvm5CUfOCA6UcMmcEXf+Gtbimzvox/mSsjIaav6PQfHxOJVth/+8FEPbud4iMHdGfJ7+20h5UQp3PUHk9nL9Pf0aWcHo2W1SoKUsK3sdtJEHr+yHD53G1wXAylL+yw70uR8h70qpJ+6aaLJwSO+kiEQV1pJdGK41M+UpQlLBMmtk00WOsQ9DciBmbkG52YkGDhgwKiB8cqutMgFBfaw24u5EjKyzrXNVG9N5KPg3xtst3PxId/JKFVbn596p1b4mrwKsREhTpq2NfrR4OLOtkOrRdOKSRGJP7OV6Gbx11Zth8Jt3syV5enMgFnjDKv16rB0M4yaYLLvcx/czvGQAwM+JIaQpZ5lMQ2EFIkokbfqPxv19wzpDjPGGTRpXIE7NGJHJLbWDD1fKTD54rB7cyVkNG1im1AnT6fldp5gsmd/IGQIlkUVk+hjFHiZIFYEeYB9B2w/+vJt+hulsl8aa9CgfjwplrKbbo+uyuPIcZi/3B7qurFWklcD8XT+xGBwN/0963fans5Pinz0dMbj1Lg0SsghdTpAIJAH2b3XJuXDT/Q5fKt3DCmxbTUCHVrDZRplV2z6+iSiSmIhZrBeXTsKf5jGyYUavUkEytZPAl0vIkrfv6JfYhv6PwLLUgUObFNv26bd+nuu7AeTbzVID8V43kTZ7QPNNBrSPHHTliTfmVuhp2nwu9sMK4JEB/HnjJQYra2BL96ReeDa6JdYQpaoIXBgkAfbuN1+67Y5SJo3D4b+nWKWoaVLKKeDVLLWpZBYCiP6w/cH6y+LS0HKuGpTQP6cspgZ23/HElKsdhgNFEKK+NdHTzLZ6aCi1a6ltE/DLuqWong1WUJ8dha5JOSkPUHVQRYLSUhpQRBu53gcjV3OhmZsMt2zVzgByIMWrFeklPPGyIx7xRZ7GGu1i3T4wxLKBELvPwwTF6m5h5sCpMGba+wJbCyk1V03yeS9tSlbYyh9R5nxZ5rR4+ex33eqLYQc3h//IJNHiaV9ax00bWBw0oRFhTDur2UXfIqafPQYvFIIoZBhEZg3zSR/o/shqKS9cw98XAz9OthL6wq22v7yd9ekdMHneGBzmbJpzg8ZpXYdTQmsCWEte3Hm3gO2qdKJddbIy1RtOux9PmD1T6XQvb3tSFu+FfbsC2yeoUOhWvFcRjzSEVJXTVQCW8RTHlblnLQru6IRU3Tk5YeieyrNUpV3ekB+eGfcDPyt/FXd/FbGxRNSWTKpYCMBb5t1n8/hPaImyDwpxWTIUUpzdBecBIeZUbGrBoHgcYnJSIYQsWu/CELfqoGliMx2qoaKJLl/qGPjauAfpMf6WUV7wlemkcrOZw7LVmrgAhPVgMkRlRGytWYjTN8gXqHHKkssES/C8zWmyzPCamfwSiN8EiEkorY23VT1z3Xa4qfquL1KkaifbZfapTR1mxadOZiTzLwuGcfn20p7qUHiWKlOcEt4BWKynugp6tiKGlSObUoX3JtMXbkJDXhYEVMDZxSpzUQ3J1tHbkPLZMTwlxpCtNinDu0vcPNjt4SE1XHcf3L5+zMV0jKuTXREpYOX4MsSNfJ6+myt/XKQSfR3YkN63MDr0pawGnkldHrMGYxCdc6KZ4Xcr7VGv1F2M9ColWoKOfR+hF8TZz+P756htprN9zHN6oxSdU7hdZ7WaZaD3wfcS6TUN1SLOZN9KavVxpW/dXO8akXwmxBUWOpDyqauCiD9qkSJImGo187bCUEQEsUSdbz3A3426SrEEhUiJWbqQFDFCJIQgewK8oTacfN36vvpBmnl10s8uCyFD7rsujCgINFDnTl+bex+59UUMtP+vQr40AYkBIFUExKFbFl5gzqLKacqCuCAQ6pveEGZqNQe8VKFhEQhiwwuA66RXVj93JAzCRxTSwJmqWBzX5aJu0VVExILWZ4vCwQuVvY6M9EDfZNERAmABao1vKP6iWpREdWJkFjUUgHfMhjopD79Vb9TW20YWdlChOPK5JSoRflr1NLjfDVfcr8LUoDwed8c3yCzYFmUIB9BM3U6prQi+UjrkY9s4CnXZGdu0dWkD5CwJZFwxO0sw20JLJCFdPIJfKmFJwD/B4g2wB0X86iqAAAAAElFTkSuQmCC",nt=["title","src"],ot={key:1},lt=e.defineComponent({name:"LogoWidget",inheritAttrs:!1,__name:"index",props:{icon:{default:ye},text:{default:"VTJ"},link:{}},setup(c){const t=c,n=()=>{t.link&&(location.href=t.link)};return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:"v-logo-widget",onClick:n},[t.icon?(e.openBlock(),e.createElementBlock("img",{key:0,title:t.text,class:"v-logo-widget__icon",src:t.icon},null,8,nt)):(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(t.text),1))]))}}),rt={class:"v-empty-widget"},at=e.defineComponent({name:"EmptyWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",rt,"EmptyWidget"))}});function Ie(){const c=U(),t=e.computed(()=>c.project.value?.dependencies??[]),n=e.computed(()=>c.project.value?.apis??[]);return{engine:c,dependencies:t,apis:n}}function oe(c,t){const n=e.computed(()=>Ce.getWidgets(e.unref(c),e.unref(t)).filter(l=>!l.invisible)),o=e.ref();return{widgets:n,widgetsRef:o}}function De(){const c=U();return{span:e.computed(()=>{const l=c.skeleton?.skeletonRef.leftWidth||400,a=Math.min(Math.floor((l-50)/120),24);return Math.floor(24/a)}),engine:c}}function st(){const c=U(),t=e.computed(()=>c.project.value?.blocks??[]);return{engine:c,blocks:t}}const it=(c=[])=>c.map(t=>t.name);function ct(){const c=U(),{components:t,groups:n,componentMap:o}=c.assets,l=e.reactive({}),a=e.computed(()=>{const p={};return n.value&&n.value.forEach(v=>{p[v.name]=v}),p}),s=e.computed(()=>n.value?n.value.map(p=>({label:`${p.label} (${p.count})`,name:p.name,disabled:!p.children?.length})):[]),r=e.ref(s.value[0]?.name),i=e.ref(""),d=e.computed(()=>a.value[r.value]);e.watchEffect(()=>{const p=s.value.reduce((v,f)=>(v[f.name]=it(a.value[f.name].children),v),{});Object.assign(l,p)});const m=e.computed(()=>{const p=i.value.toLowerCase();return!p||!t?[]:t.filter(v=>v.name.toLowerCase().includes(p)||v.label?.toLowerCase().includes(p))});return{components:t,groups:n,componentMap:o,groupMap:a,tabs:s,model:l,currentTab:r,currentGroup:d,searchKey:i,searchResult:m}}function W(){const c=U(),t=e.computed(()=>c.current.value),n=e.computed(()=>c.simulator.renderer?.context??null),o=e.computed(()=>c.isEmptyCurrent.value);return{engine:c,current:t,isEmpty:o,context:n}}function ut(c,t,n){const o=U();o.simulator.init(c,t,n);const l=e.computed(()=>o.simulator.designer.value),a=e.computed(()=>fe("hover",l.value?.hover.value)),s=e.computed(()=>fe("dropping",l.value?.dropping.value)),r=e.computed(()=>fe("selected",l.value?.selected.value));return e.watch(o.changed,()=>{l.value?.updateRect()}),{designer:l,dropping:s,hover:a,selected:r}}function dt(c,t=!0){const{top:n,height:o,width:l,left:a}=c||{};if(o>100&&l>200)return"inner";let s,r;return r=n>30?"top":"bottom",s=t||a<300&&l<300?"left":"right",[s,r].join("-")}function mt(c){const{rect:t,type:n}=c,{left:o,width:l,top:a,height:s}=t,r={left:o,width:l,top:a,height:s};switch(n){case"left":r.left=0,r.width=0;break;case"right":r.left=r.left+r.width-4,r.width=0;break;case"bottom":r.top=r.top+r.height-4,r.height=0;break;case"top":r.height=0;break}return r}function fe(c,t){if(!t)return null;const{left:n,top:o,width:l,height:a}=c==="dropping"?mt(t):t.rect,s={left:`${n}px`,top:`${o}px`,width:`${l}px`,height:`${a}px`,visibility:l||a?"visible":"hidden"};return{...t,style:s,position:dt(t.rect,c!=="selected")}}function Y(){const c=U(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>t.value?.selected.value),o=e.computed(()=>w.isBlock(n.value?.model));return{engine:c,designer:t,selected:n,isSelectBlock:o}}function pt(c,t){const n=e.ref(""),{selected:o,isSelectBlock:l}=Y(),a=e.computed(()=>o.value?.model.id),s=e.computed(()=>{const i=e.toValue(c),d=e.toValue(t),m=[];if(!i)return m;const p=d?.__contextRefs[a.value||""],f=d===p||l.value?[]:Object.keys(p?.context||{}).filter(B=>!["context","ref"].includes(B)).map(B=>`this.context.${B}`);f.length&&m.push({title:"上下文",items:f});const u=i.inject.map(B=>`this.${B.name}`);u.length&&m.push({title:"注入",items:u});const g=i.props.map(B=>typeof B=="string"?`this.$props.${B}`:`this.$props.${B.name}`);g.length&&m.push({title:"属性",items:g});const h=Object.keys(i.state).map(B=>`this.state.${B}`);h.length&&m.push({title:"状态",items:h});const _=Object.keys(i.computed).map(B=>`this.${B}.value`);_.length&&m.push({title:"计算属性",items:_});const C=Object.keys(i.methods).map(B=>`this.${B}`);C.length&&m.push({title:"方法",items:C});const V=Object.keys(i.dataSources).map(B=>`this.${B}`);V.length&&m.push({title:"数据源",items:V});const S=Object.keys(d?.$refs||{}).map(B=>`this.$refs.${B}`);return S.length&&m.push({title:"refs",items:S}),m}),r=e.computed(()=>{if(!n.value)return s.value;const i=n.value.toLowerCase(),d=[];return s.value.forEach(m=>{const p=m.items.filter(v=>v.toLowerCase().includes(i));p.length&&d.push({title:m.title,items:p})}),d});return{keyword:n,options:s,searchResult:r}}const ue=[{name:"StringSetter",label:"文本"},{name:"ExpressionSetter",label:"表达式"}];function ft(c){const t=U(),n=e.computed(()=>{const p=c.value?.model||null;return w.isBlock(p)?null:p}),o=e.ref();e.watch(n,async p=>{p?.from?o.value=await t.assets.getBlockMaterial(p.from)||void 0:o.value=void 0},{immediate:!0});const l=e.computed(()=>n.value?[{name:"key",setters:ue,value:n.value.getPropValue("key")},{name:"ref",setters:ue,value:n.value.getPropValue("ref")},{name:"class",label:"class",setters:ue,value:n.value.getPropValue("class")},{name:"children",label:"文本",title:"如设置组件文本,将清空子组件",setters:ue,value:Array.isArray(n.value.children)?"":n.value.children}]:[]),a=e.computed(()=>{if(!n.value)return[];const p=o.value||t.assets.componentMap.get(n.value.name);return p?(p.props||[]).map(f=>({...f,value:n.value?.getPropValue(f.name)??f.defaultValue})):[]}),s=p=>l.value.some(v=>v.name===p)||a.value.some(v=>v.name===p)||p==="style",r=e.computed(()=>n.value?Object.keys(n.value.props).filter(p=>!s(p)).map(p=>({name:p,setters:"InputSetter",value:n.value?.getPropValue(p)})):[]);return{commonProps:l,componentProps:a,customProps:r,node:n,change:(p,v)=>{n.value&&(p==="children"?n.value.setChildren(v):n.value.setProp(p,v))},addCustom:p=>{p&&n.value?.setProp(p,"")},removeCustom:p=>{n.value?.removeProp(p)},isExist:s}}function L(c,t="提示"){return y.ElNotification.warning({title:t,message:c})}async function re(c){return await y.ElMessageBox.confirm(c,"提示",{type:"warning"}).catch(()=>!1)}function H(c,t="success"){return y.ElMessage({message:c,type:t})}function X(c,t,n=!1){let o=!0;try{c.type==="JSExpression"?D.parseExpression(c,t,n,!0):D.parseFunction(c,t,n,!0)}catch(l){o=!1,y.ElNotification.error({title:"代码错误",message:l.message})}return o}function je(){const c=U(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>c.current.value?c.history.value:null),o=e.computed(()=>n.value?.items.length||0),l=()=>{t.value?.cleanHelper(),n.value?.forward()},a=()=>{n.value?.backward(),t.value?.cleanHelper()},s=d=>{t.value?.cleanHelper(),n.value?.load(d),H("已载入历史记录","success")},r=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)<=0),i=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)>=o.value-1);return{engine:c,history:n,total:o,forward:l,backward:a,load:s,forwardDisabled:r,backwardDisabled:i}}function me(){const c=U(),t=e.computed(()=>c.project.value);return{engine:c,project:t}}function vt(c){const t=U(),n=e.computed(()=>{const r=c.value?.model||null;return!r||w.isBlock(r)?null:r}),o=e.ref();e.watch(n,async r=>{r?.from?o.value=await t.assets.getBlockMaterial(r.from)||void 0:o.value=void 0});const l=e.computed(()=>{if(w.isBlock(n.value))return[];const r=n.value?.events||{};return xe.map(i=>({name:i,event:r[i]}))}),a=e.computed(()=>{if(w.isBlock(n.value))return[];const r=n.value?.events||{};return Se.map(i=>({name:i,event:r[i]}))}),s=e.computed(()=>{if(!n.value||w.isBlock(n.value))return[];const r=n.value.events||{};return(o.value?.events||t.assets.componentMap.get(n.value.name)?.events||[]).map(d=>{const m=typeof d=="string"?d:d.name;return{name:m,event:r[m]}})});return{mouseEventList:l,keyboardEventList:a,componentEventList:s}}const Ve=(c,t)=>new w.DirectiveModel({name:c,value:void 0,iterator:t}),gt=(c="modelValue")=>new w.DirectiveModel({name:"vModel",value:void 0,arg:c});function ht(c){if(!c)return[];const{props:t=[],events:n=[]}=c;if(t.length&&n.length){const o=n.filter(l=>(typeof l=="string"?l:l.name).startsWith("update:")).map(l=>l=typeof l=="string"?l:l.name);return o.length?t.filter(l=>o.some(a=>a.includes(l.name))):[]}return[]}function bt(c){const t=U(),n=e.computed(()=>{const u=c.value?.model||null;return w.isBlock(u)?null:u}),o=u=>e.computed(()=>n.value&&(n.value.directives||[]).find(g=>g.name===u)||Ve(u)),l=()=>e.computed(()=>{if(!n.value)return[];const u=t.assets.componentMap.get(n.value.name||"");return(u?ht(u):[]).map(h=>(n.value?.directives||[]).find(_=>_.name==="vModel"&&_.arg==h.name)||gt(h.name))}),a=o("vIf"),s=o("vShow"),r=o("vBind"),i=o("vFor"),d=l(),m={vIf:a,vShow:s,vBind:r,vFor:i};return{engine:t,node:n,vIf:a,vShow:s,vBind:r,vFor:i,vModels:d,onValueChange:(u,g)=>{const h=m[u];n.value&&(g?(h.value.value=g,n.value.setDirective(h.value)):(h.value.value=void 0,n.value.removeDirective(h.value)))},onForChange:(u,g)=>{if(n.value){if(u==="value"){g?(i.value.value=g,n.value.setDirective(i.value)):n.value.removeDirective(i.value);return}(u==="item"||u==="index")&&(i.value.iterator={...i.value.iterator,[u]:g||void 0},n.value.setDirective(i.value))}},onModelChange:(u,g)=>{if(!n.value)return;const h=parseInt(u),_=d.value[h];_&&(g?(_.value=g,n.value.setDirective(_)):(_.value=void 0,n.value.removeDirective(_)))}}}function kt(){const{engine:c,project:t}=me(),n=e.computed(()=>t.value?.apis||[]);return{engine:c,project:t,apis:n}}const yt={class:"v-switcher-widget"},_t={key:1},Ct=e.defineComponent({name:"SwitcherWidget",inheritAttrs:!1,__name:"index",emits:["click"],setup(c,{emit:t}){const n=t,{engine:o}=W(),l=e.computed(()=>o.project.value?.name),a=e.computed(()=>o.project.value?.currentFile?.title),s=()=>{n("click",o.project.value)};return(r,i)=>(e.openBlock(),e.createElementBlock("div",yt,[e.createVNode(e.unref(y.ElButton),{size:"small",round:"",onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconBack),{class:"v-switcher-widget__back"}),e.createElementVNode("span",null,e.toDisplayString(l.value),1),a.value?(e.openBlock(),e.createBlock(e.unref(y.ElDivider),{key:0,direction:"vertical"})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("span",_t,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)]),_:1})]))}}),wt={class:"v-toolbar-widget"},Vt=e.defineComponent({name:"ToolbarWidget",inheritAttrs:!1,__name:"index",props:{preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{forward:o,backward:l,forwardDisabled:a,backwardDisabled:s}=je(),r=e.ref("pc");return t({mode:r}),(i,d)=>(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(e.unref(y.ElRadioGroup),{size:"small",modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=m=>r.value=m)},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElRadioButton),{label:"pc"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPc))]),_:1}),e.createVNode(e.unref(y.ElRadioButton),{label:"mobile"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPhone))]),_:1}),e.createVNode(e.unref(y.ElRadioButton),{label:"pad"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPad))]),_:1})]),_:1},8,["modelValue"]),e.createCommentVNode("",!0),e.createVNode(e.unref(y.ElButtonGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",onClick:e.unref(l),disabled:e.unref(s)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconUndo))]),_:1},8,["onClick","disabled"]),e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",onClick:e.unref(o),disabled:e.unref(a)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconRedo))]),_:1},8,["onClick","disabled"])]),_:1})]))}}),Bt={class:"v-actions-widget"},xt=e.createElementVNode("span",null,"发布",-1),St=e.defineComponent({name:"ActionsWidget",inheritAttrs:!1,__name:"index",props:{coder:{type:Boolean,default:!0}},setup(c){const{engine:t,designer:n}=Y(),o=e.ref(!1),l=()=>{t.current.value?(o.value?t.skeleton?.getWidget("Previewer")?.widgetRef.refresh():(n.value?.setSelected(null),t.simulator.refresh()),H("刷新完成","success")):H("请先打开文件","warning")},a=async()=>{t.current.value?(o.value&&(t.skeleton?.closePreview(),o.value=!1,await F.delay(1e3)),n.value?.setSelected(t.current.value)):H("请先打开文件","warning")},s=()=>{if(t.project.value)if(t.current.value){if(o.value){t.skeleton?.closePreview(),o.value=!1;return}t.skeleton?.openPreview(""),o.value=!0}else H("请先打开文件","warning")},r=()=>{const d=t.project.value;d&&(d.currentFile?d.publish(d.currentFile):H("请先打开文件","warning"))},i=d=>{const m=t.project.value;m&&(d==="current"?r():m.publish())};return(d,m)=>(e.openBlock(),e.createElementBlock("div",Bt,[e.createCommentVNode("",!0),e.createCommentVNode("",!0),e.createVNode(e.unref(y.ElButton),{onClick:s,type:o.value?"warning":"default",size:"small",title:"预览"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPreview))]),_:1},8,["type"]),e.createVNode(e.unref(y.ElButton),{onClick:l,type:"default",size:"small",title:"刷新"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconRefresh))]),_:1}),e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",title:"页面设置",onClick:a},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSetting))]),_:1}),e.createVNode(e.unref(y.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(y.ElDropdown),{"split-button":"",type:"primary",size:"small",onClick:r,onCommand:i},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownMenu),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownItem),{command:"current"},{default:e.withCtx(()=>[e.createTextVNode("发布页面")]),_:1}),e.createVNode(e.unref(y.ElDropdownItem),{command:"project"},{default:e.withCtx(()=>[e.createTextVNode("整站发布")]),_:1})]),_:1})]),default:e.withCtx(()=>[xt]),_:1})]))}}),Et={class:"v-icon-setter"},Nt={class:"v-icon-setter__content"},$t={class:"v-icon-setter__list"},Ae=e.defineComponent({name:"IconSetter",__name:"icon",props:{modelValue:{default:""},size:{default:"small"}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(n.modelValue),s=e.ref(""),r=e.computed(()=>k.icons[n.modelValue]||n.modelValue),i=e.computed(()=>{const f=Object.entries(k.icons);return s.value?f.filter(u=>u[0].toLowerCase().includes(s.value)):f}),d=f=>{a.value=f},m=()=>{o("change",a.value),o("update:modelValue",a.value),l.value=!1},p=()=>{a.value="",o("change",""),o("update:modelValue",""),l.value=!1},v=()=>{l.value=!0};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Et,[e.createVNode(e.unref(y.ElInput),{size:n.size,readonly:"",placeholder:"请选择图标","model-value":n.modelValue,"suffix-icon":e.unref(k.ArrowDown),onFocus:v},{prepend:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:r.value},null,8,["icon"])]),_:1},8,["size","model-value","suffix-icon"]),l.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,title:"图标选择器",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value=g),onSubmit:m},{extra:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{size:"default",type:"warning",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 清除绑定 ")]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Nt,[e.createVNode(e.unref(y.ElInput),{size:n.size,"prefix-icon":e.unref(k.Search),clearable:"",modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=g=>s.value=g),placeholder:"请输入查询关键字"},null,8,["size","prefix-icon","modelValue"]),e.createElementVNode("div",$t,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,g=>(e.openBlock(),e.createBlock(e.unref(b.XIcon),{icon:g[1],onClick:h=>d(g[0]),class:e.normalizeClass({"is-active":a.value===g[0]})},null,8,["icon","onClick","class"]))),256)),i.value.length===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0})):e.createCommentVNode("",!0)])])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]))}}),It=e.defineComponent({name:"PageForm",__name:"form",props:{item:{},parentId:{}},setup(c){const t=c,{project:n}=me(),o=e.computed(()=>t.item?"编辑页面":"新增页面"),l=()=>({dir:!1,name:"",title:"",icon:"",mask:!0,hidden:!1,raw:!1}),a=e.ref(t.item||l()),s=[{label:"页面",value:!1},{label:"目录",value:!0}],r=d=>{a.value&&(a.value.name=F.upperFirstCamelCase(d))},i=async d=>n.value?.existPageName(d.name,[d.id])?(L("页面名称已存在,请更换"),!1):(t.item?n.value?.updatePage(d):n.value?.createPage(d,t.parentId),!0);return(d,m)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:o.value,width:"800px",height:"500px","form-props":{tooltipMessage:!1},model:a.value,"submit-method":i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"dir",label:"类型",editor:"radio",options:s,props:{button:!0,size:"small"},disabled:!!t.item,required:""},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",onChange:r,rules:{pattern:e.unref(Q),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""}),e.createVNode(e.unref(b.XField),{name:"icon",label:"菜单图标",editor:"none"},{editor:e.withCtx(()=>[e.createVNode(Ae,{modelValue:a.value.icon,"onUpdate:modelValue":m[0]||(m[0]=p=>a.value.icon=p),size:"default"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},name:"mask",label:"包含母版",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"hidden",label:"隐藏菜单",editor:"switch"}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},disabled:!!t.item,inline:"",name:"raw",label:"源码模式",editor:"switch",tip:"页面是非低代码开发,不能在线编辑"},null,8,["disabled"])]),_:1},8,["title","model"]))}}),be=e.defineComponent({name:"VIcon",__name:"Icon",props:{icon:{},label:{},active:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:["click"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>({"is-active":n.active,"is-open":n.open})),a=()=>{o("click")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(y.ElTooltip),{effect:"dark",placement:"right",content:s.label,"show-after":600},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["v-apps-region__icon",l.value]),onClick:a},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))],2)]),_:1},8,["content"]))}}),I=e.defineComponent({name:"VPanel",__name:"panel",props:{title:{},subtitle:{},plus:{type:Boolean},back:{type:Boolean},edit:{type:Boolean},remove:{type:Boolean},save:{type:Boolean},header:{type:Boolean,default:!0},collapsable:{type:Boolean}},emits:["plus","back","remove","save","edit"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.computed(()=>({"is-collapsed":!!l.value})),s=()=>{o("plus")},r=()=>{o("edit")},i=()=>{o("back")},d=()=>{o("remove")},m=()=>{o("save")},p=e.computed(()=>n.header?{content:n.title,subtitle:n.subtitle,icon:n.back?k.Back:void 0,onClickBack:n.back?i:void 0,onClick:n.collapsable?()=>{l.value=!l.value}:void 0}:null),v=f=>{l.value=f};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:e.normalizeClass(["v-panel",a.value]),border:!1,header:p.value,fit:""},e.createSlots({actions:e.withCtx(()=>[n.plus?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,size:f.$attrs.size,mode:"icon",icon:e.unref(k.VtjIconPlus),background:"hover",title:"新增",onClick:s},null,8,["size","icon"])):e.createCommentVNode("",!0),n.edit?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:1,size:f.$attrs.size,mode:"icon",icon:e.unref(k.EditPen),background:"hover",title:"编辑",onClick:r},null,8,["size","icon"])):e.createCommentVNode("",!0),n.remove?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:2,size:f.$attrs.size,mode:"icon",icon:e.unref(k.Delete),background:"hover",title:"清除",onClick:d},null,8,["size","icon"])):e.createCommentVNode("",!0),n.save?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:3,size:f.$attrs.size,mode:"icon",icon:e.unref(k.VtjIconSave),background:"hover",title:"保存",onClick:m},null,8,["size","icon"])):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:4,size:f.$attrs.size,mode:"icon",icon:e.unref(k.ArrowDown),background:"hover",title:"展开",onClick:u[0]||(u[0]=g=>v(!1))},null,8,["size","icon"])),[[e.vShow,l.value]]):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:5,size:f.$attrs.size,mode:"icon",icon:e.unref(k.ArrowUp),background:"hover",title:"收起",onClick:u[1]||(u[1]=g=>v(!0))},null,8,["size","icon"])),[[e.vShow,!l.value]]):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"actions")]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:2},[f.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(f.$slots,"footer")]),key:"0"}:void 0]),1032,["class","header"]))}}),Dt={class:"v-tabs__header"},jt={key:0,class:"v-tabs__actions"},ie=e.defineComponent({__name:"tabs",props:{items:{default:()=>[]},menus:{},modelValue:{},stretch:{type:Boolean},checkable:{type:Boolean}},emits:["update:modelValue","command","remove","action-click"],setup(c,{emit:t}){const n=c,o=t,l=e.ref((n.modelValue||n.items[0]?.name)??"");e.watch(l,()=>{o("update:modelValue",l.value)}),e.watch(()=>n.modelValue,i=>{l.value=i});const a=i=>{o("command",i)},s=i=>{o("remove",i)},r=i=>{o("action-click",i)};return(i,d)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:"v-tabs",border:!1,fit:"",radius:!1},{header:e.withCtx(()=>[e.createElementVNode("div",Dt,[e.createVNode(e.unref(b.XTabs),{class:"v-tabs__tabs",items:n.items,type:"card",modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=m=>l.value=m),onTabRemove:s,onActionClick:r,stretch:n.stretch},null,8,["items","modelValue","stretch"]),n.menus&&n.menus.length?(e.openBlock(),e.createElementBlock("div",jt,[n.menus&&n.menus.length?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,mode:"icon",size:"small",icon:e.unref(k.MoreFilled),background:"hover",dropdown:{size:"small",placement:"bottom-end"},menus:n.menus,onCommand:a},{item:e.withCtx(({item:m})=>[e.createElementVNode("span",null,[n.checkable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconCheck),{key:0,class:e.normalizeClass({"v-tabs__checked":!0,"is-checked":m.checked})},null,8,["class"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(m.label),1)])]),_:1},8,["icon","menus"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3}))}}),At={key:2,class:"v-item__index"},Ft={class:"v-item__content"},Pt={key:3,class:"v-item__subtitle"},O=e.defineComponent({name:"VItem",__name:"item",props:{icon:{},index:{},tag:{},tagType:{},title:{},subtitle:{},actions:{default:()=>[]},background:{type:Boolean},border:{type:Boolean},switch:{type:Boolean},modelValue:{},active:{type:Boolean},hover:{type:Boolean},small:{type:Boolean}},emits:["click","action","update:modelValue","switch"],setup(c,{emit:t}){const n={add:{label:"创建",icon:k.VtjIconPlus},copy:{label:"复制",icon:k.VtjIconCopy},edit:{label:"编辑",icon:k.VtjIconEdit},remove:{label:"删除",icon:k.VtjIconRemove},lock:{label:"锁定",icon:k.VtjIconLock},unlock:{label:"解锁",icon:k.VtjIconUnlock},invisible:{label:"隐藏",icon:k.VtjIconInvisible},visible:{label:"显示",icon:k.VtjIconVisible},home:{label:"主页",icon:k.VtjIconHome}},o=c,l=t,a=e.ref(!!o.modelValue),s=e.computed(()=>o.actions.map(m=>{const p=n[m];return{name:m,...p}})),r=e.computed(()=>({"is-background":o.background,"is-border":o.border,"is-active":o.active,"is-hover":o.hover,"is-small":o.small})),i=()=>{l("click",o.modelValue)},d=async m=>{m==="remove"?await y.ElMessageBox.confirm("确定删除吗?","提示",{type:"warning"}).catch(()=>!1)&&l("action",{name:m,modelValue:o.modelValue}):l("action",{name:m,modelValue:o.modelValue})};return e.watch(a,m=>{l("update:modelValue",m),l("switch",m)}),e.watch(()=>o.modelValue,m=>{a.value=!!m}),(m,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-item",r.value]),justify:"space-between",align:"center",onClick:i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-item__title",align:"center"},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default",{},()=>[m.icon?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,icon:m.icon},null,8,["icon"])):e.createCommentVNode("",!0),o.tag?(e.openBlock(),e.createBlock(e.unref(y.ElTag),{key:1,class:"v-item__tag",size:"small",type:o.tagType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.tag),1)]),_:1},8,["type"])):e.createCommentVNode("",!0),m.index!==void 0?(e.openBlock(),e.createElementBlock("span",At," # "+e.toDisplayString(m.index),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Ft,e.toDisplayString(m.title),1),m.subtitle?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(m.subtitle),1)):e.createCommentVNode("",!0)])]),_:3}),e.createVNode(e.unref(b.XContainer),{class:"v-item__actions",onClick:p[1]||(p[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,v=>(e.openBlock(),e.createBlock(e.unref(b.XAction),{name:v.name,title:v.label,mode:"icon",size:"small",background:"none",type:"info",icon:v.icon,onClick:f=>d(v.name)},null,8,["name","title","icon","onClick"]))),256)),o.switch?(e.openBlock(),e.createBlock(e.unref(y.ElSwitch),{key:0,modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=v=>a.value=v),class:"v-item__switch",size:"small"},null,8,["modelValue"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"status")]),_:3})]),_:3},8,["class"]))}}),Tt=["draggable"],Rt={class:"v-box__name"},zt={class:"v-box__label"},de=e.defineComponent({name:"VBox",__name:"box",props:{name:{},title:{},editable:{type:Boolean},active:{type:Boolean},draggable:{type:Boolean}},emits:["edit","remove","dragstart","dragend"],setup(c,{emit:t}){const n=c,o=t,l=()=>{o("edit")},a=async()=>{await y.ElMessageBox.confirm("确认删除?","提示",{type:"warning"}).catch(()=>!1)&&o("remove")},s=e.computed(()=>({"is-active":n.active,"is-draggable":n.draggable})),r=()=>{o("dragstart",n)},i=()=>{o("dragend",n)};return(d,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-box",s.value]),draggable:d.draggable,onDragstart:r,onDragend:i},[e.createVNode(e.unref(b.XContainer),{direction:"column",justify:"center",align:"center"},{default:e.withCtx(()=>[e.createElementVNode("span",Rt,e.toDisplayString(n.name),1),e.createElementVNode("span",zt,e.toDisplayString(n.title),1)]),_:1}),n.editable?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-box__footer",justify:"flex-end",align:"center"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.VtjIconEdit),onClick:l},null,8,["icon"]),e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.VtjIconRemove),onClick:a},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)],42,Tt))}}),Jt={class:"v-context-viewer"},Fe=e.defineComponent({__name:"viewer",props:{context:{}},emits:["pick","copy"],setup(c,{emit:t}){const n=c,o=t,l=["$provider","$apis","$components","context"],a=m=>{const p=m.value,v=F.toRawType(p);return v==="Object"||v==="Module"?Object.keys(p||{}).length===0:v==="Array"?p.length===0:!0},s=(m,p="this")=>typeof m=="object"?Array.isArray(m)?m.map((v,f)=>{const u=`[${f}]`;return{label:u,value:v,type:F.toRawType(v),path:`${p}${u}`}}):Object.entries(m).map(([v,f])=>({label:v,value:f,type:F.toRawType(f),path:`${p}.${v}`})).filter(v=>!v.label.startsWith("__")&&!l.includes(v.label)):[],r=(m,p)=>{if(m.level===0)p(s(n.context));else{const v=e.toRaw(m.data.value);p(s(v,m.data.path))}},i=m=>{o("copy",m.path)},d=m=>{o("pick",m.path)};return(m,p)=>(e.openBlock(),e.createElementBlock("div",Jt,[m.context?(e.openBlock(),e.createBlock(e.unref(y.ElTree),{key:0,lazy:"",load:r,"expand-on-click-node":!1,props:{isLeaf:a}},{default:e.withCtx(({data:v})=>[e.createVNode(O,{title:v.label,clickable:"",onClick:f=>d(v),background:"",actions:["copy"],onAction:f=>i(v),grow:"",small:""},null,8,["title","onClick","onAction"])]),_:1},8,["props"])):e.createCommentVNode("",!0)]))}}),pe=e.defineComponent({__name:"binder",props:{title:{},context:{},block:{},model:{},rules:{},modelValue:{type:Boolean},submitMethod:{type:Function},unbindEnabled:{type:Boolean}},emits:["unbind","submit","cancel","pick","update:modelValue","close"],setup(c,{emit:t}){const n=c,o=t,{searchResult:l,keyword:a}=pt(n.block,n.context),{copy:s}=le.useClipboard({}),r=[{name:"normal",label:"常用"},{name:"viewer",label:"高级"}],i=e.ref("normal"),d=e.ref(),m=async _=>{o("submit",_),n.submitMethod?await n.submitMethod(_)&&p():p()},p=()=>{o("update:modelValue",!1),o("close")},v=()=>{o("unbind")},f=()=>{p()},u=async()=>{d.value?.submit()},g=_=>{o("pick",_)},h=_=>{s(_),y.ElMessage.success({message:"已经复制到粘贴板"})};return(_,C)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),{"model-value":n.modelValue,class:"v-binder",title:_.title,width:"1000px",height:"600px","body-padding":!1,maximizable:!1,minimizable:!1,onClose:p},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{fit:"",direction:"row",overflow:"hidden"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{width:"30%",height:"100%"},{default:e.withCtx(()=>[e.createVNode(ie,{class:"v-binder__tabs",items:r,modelValue:i.value,"onUpdate:modelValue":C[1]||(C[1]=V=>i.value=V)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-binder__tab-content",fit:"",padding:"",flex:!1},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[e.createVNode(e.unref(y.ElInput),{modelValue:e.unref(a),"onUpdate:modelValue":C[0]||(C[0]=V=>e.isRef(a)?a.value=V:null),size:"small",clearable:"","prefix-icon":e.unref(k.Search),placeholder:"筛选可用项"},null,8,["modelValue","prefix-icon"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),V=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(y.ElDivider),{"border-style":"dotted"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.title),1)]),_:2},1024),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.items,S=>(e.openBlock(),e.createBlock(O,{title:S,background:"",actions:["copy"],small:"",onClick:B=>g(S),onAction:B=>h(S)},null,8,["title","onClick","onAction"]))),256))]))),256)),e.unref(l).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0}))],512),[[e.vShow,i.value==="normal"]]),e.withDirectives(e.createVNode(Fe,{context:n.context,onCopy:h,onPick:g},null,8,["context"]),[[e.vShow,i.value==="viewer"]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XPanel),{grow:"",header:null,border:!1},{footer:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[_.unbindEnabled?(e.openBlock(),e.createBlock(e.unref(y.ElButton),{key:0,type:"warning",size:"default",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 移除绑定 ")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{type:"default",size:"default",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(" 取消 ")]),_:1}),e.createVNode(e.unref(y.ElButton),{type:"primary",size:"default",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XForm),{ref_key:"formRef",ref:d,class:"v-binder__form",footer:!1,"label-position":"top","tooltip-message":!1,model:n.model,rules:n.rules,"submit-method":m},{default:e.withCtx(()=>[e.renderSlot(_.$slots,"default")]),_:3},8,["model","rules"])]),_:3})]),_:3})]),_:3},8,["model-value","title"]))}}),Lt={class:"v-slots-picker__sn"},Pe=e.defineComponent({__name:"slots",props:{slots:{default:()=>[]}},emits:["submit","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(),a=e.computed(()=>`${50*Math.ceil(n.slots.length/4)+180}px`),s=i=>{l.value=i},r=()=>{l.value?(o("submit",l.value),o("update:modelValue",!1)):L("请选择插槽")};return(i,d)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),e.mergeProps({class:"v-slots-picker",title:"选择插槽",width:"600px",height:a.value,submit:"",cancel:"",onSubmit:r},i.$attrs),{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElAlert),{title:"该组件支持多个插槽,请选择放置到其中一个",type:"warning",closable:!1}),e.createVNode(e.unref(b.XContainer),{class:"v-slots-picker__content",justify:"space-around",alignContent:"flex-start",gap:"",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.slots,(m,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-slots-picker__item",{"is-active":m.name===l.value?.name}]),grow:"",flex:!1,onClick:v=>s(m)},{default:e.withCtx(()=>[e.createElementVNode("span",Lt,"#"+e.toDisplayString(p+1),1),e.createTextVNode(" "+e.toDisplayString(m.name),1)]),_:2},1032,["class","onClick"]))),256))]),_:1})]),_:1},16,["height"]))}}),_e=e.defineComponent({name:"Viewport",__name:"viewport",props:{mode:{default:"pc"},width:{},height:{}},setup(c){const t=c,n=e.computed(()=>[`is-${t.mode}`]),o=e.computed(()=>{if(t.mode==="pc")return 1;const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a,i=s>0?(t.width||0)/s:1,d=r>0?(t.height||0)/r:1;return Math.min(i,d)}),l=e.computed(()=>{if(t.mode==="pc")return{};const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a;return{width:`${s}px`,height:`${r}px`,left:"50%",top:"50%",transform:`translate(-50%, -50%) scale(${o.value})`}});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-viewport",n.value]),style:e.normalizeStyle(l.value)},[e.renderSlot(a.$slots,"default")],6))}}),Mt=e.defineComponent({name:"PagesWidget",__name:"index",setup(c){const{project:t,engine:n}=me(),o=e.computed(()=>t.value?.pages||[]),{current:l}=W(),a=e.ref(!1),s=e.ref(),r=e.ref(),i=()=>{r.value=void 0,s.value=void 0,a.value=!0},d=async f=>{const{name:u,modelValue:g}=f,{data:h,node:_}=g;if(u==="add"&&(s.value=void 0,r.value=h.id,a.value=!0),u==="edit"&&(s.value=F.cloneDeep(h),r.value=void 0,a.value=!0),u==="remove"){if(h.dir){const C=t.value?.getPage(h.id);if(C&&C.children?.length){L("请先删除子页面");return}}t.value?.removePage(h.id)}if(u==="copy"){const C=_.parent?.data.id;t.value?.clonePage(h,C)}u==="home"&&(t.value?.setHomepage(h.id),H("设置主页成功","success"))},m=async f=>{f.raw&&H("这是源码模式页面,不能低代码设计","warning"),f.dir||f.raw?n.project.value?.deactivate():n.project.value?.active(f)},p=(f,u,g)=>g==="inner"?!!u.data.dir:!0,v=()=>{t.value?.update({pages:e.toValue(o)})};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-pages-widget",title:"页面管理",plus:"",subtitle:"(共 0 条)",onPlus:i},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElTree),{data:o.value,"node-key":"id","default-expand-all":"",draggable:"","allow-drop":p,onNodeDrop:v},{default:e.withCtx(({data:g,node:h})=>[e.createVNode(e.unref(O),{class:"v-pages-widget__item",icon:e.unref(k.icons)[g.icon],title:g.title,subtitle:g.name,"model-value":{data:g,node:h},actions:g.dir?["add","edit","remove"]:g.raw?["home","edit","remove"]:["home","copy","edit","remove"],onAction:d,onClick:_=>m(g),active:e.unref(l)?.id===g.id,tag:e.unref(t)?.homepage===g.id?"主页":void 0,"tag-type":"success",grow:"",small:"",background:"",hover:""},null,8,["icon","title","subtitle","model-value","actions","onClick","active","tag"])]),_:1},8,["data"]),a.value?(e.openBlock(),e.createBlock(It,{key:0,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=g=>a.value=g),item:s.value,"parent-id":r.value},null,8,["modelValue","item","parent-id"])):e.createCommentVNode("",!0)]),_:1}))}}),Ot=e.defineComponent({name:"BlocksWidget",__name:"index",setup(c){const{span:t}=De(),{blocks:n,engine:o}=st(),l=e.ref(void 0),{current:a}=W(),s=e.ref(!1),r=e.computed(()=>l.value?.id?"编辑":"新增"),i=e.computed(()=>`(共 ${n.value.length} 个)`),d=()=>({name:"",title:"",type:"block"}),m=async C=>{const V=C,S=o.project.value;if(!S)return!1;if(C.id)if(!S.existBlockName(V.name,[V.id]))S.updateBlock(V);else return L(`名称【${V.name}】已经存在,请更换名称`),!1;else if(!S.existBlockName(V.name))S.createBlock(V);else return L(`名称【${V.name}】已经存在,请更换名称`),!1;return!0},p=()=>{l.value=d(),s.value=!0},v=C=>{l.value=F.cloneDeep(C),s.value=!0},f=C=>{o.project.value?.removeBlock(C.id)},u=C=>{l.value&&(l.value.name=F.upperFirstCamelCase(C))},g=async C=>{o.project.value?.active(C)},h=async C=>{const V={type:"Schema",id:C.id},S=await o.assets.getBlockMaterial(V),B=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;B&&S&&B.setDragging(S)},_=()=>{const C=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;C&&C.setDragging(null)};return(C,V)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-blocks-widget",title:"区块管理",subtitle:i.value,plus:"",onPlus:p},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),S=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{key:S.id,span:e.unref(t)},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:S.name,title:S.title,active:e.unref(a)?.id===S.id,editable:"",onEdit:B=>v(S),onRemove:B=>f(S),onClick:B=>g(S),draggable:e.unref(a)?.id!==S.id,onDragstart:B=>h(S),onDragend:_},null,8,["name","title","active","onEdit","onRemove","onClick","draggable","onDragstart"])]),_:2},1032,["span"]))),128))]),_:1}),e.unref(n).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0})),e.createVNode(e.unref(b.XDialogForm),{modelValue:s.value,"onUpdate:modelValue":V[0]||(V[0]=S=>s.value=S),title:r.value,model:l.value,width:"600px",height:"250px","form-props":{tooltipMessage:!1},"submit-method":m},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",tip:"名称为英文驼峰格式",rules:{message:"名称格式错误",pattern:e.unref(Q)},onChange:u},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""})]),_:1},8,["modelValue","title","model"])]),_:1},8,["subtitle"]))}}),Xt={class:"v-components-widget__search"},Wt={key:0,class:"v-components-widget__result"},Ut={class:"v-components-widget__list"},Ht=e.defineComponent({name:"ComponentsWidget",__name:"index",setup(c){const{span:t,engine:n}=De(),{tabs:o,currentTab:l,currentGroup:a,model:s,searchKey:r,searchResult:i}=ct(),d=p=>{const v=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;v&&v.setDragging(p)},m=()=>{const p=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;p&&p.setDragging(null)};return(p,v)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-components-widget",title:"组件库",body:{flex:!0,direction:"column"}},{default:e.withCtx(()=>[e.createElementVNode("div",Xt,[e.createVNode(e.unref(y.ElInput),{modelValue:e.unref(r),"onUpdate:modelValue":v[0]||(v[0]=f=>e.isRef(r)?r.value=f:null),placeholder:"搜索组件",clearable:"",size:"small"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSearch))]),_:1},8,["modelValue"])]),e.unref(r)?(e.openBlock(),e.createElementBlock("div",Wt,[e.createVNode(e.unref(y.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),f=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{span:e.unref(t),key:f.name},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:f.name,title:f.label||f.name,draggable:"",onDragstart:u=>d(f),onDragend:m},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:1}),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0}))])):(e.openBlock(),e.createBlock(e.unref(b.XTabs),{key:1,items:e.unref(o),modelValue:e.unref(l),"onUpdate:modelValue":v[2]||(v[2]=f=>e.isRef(l)?l.value=f:null)},{default:e.withCtx(()=>[e.createElementVNode("div",Ut,[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(y.ElCollapse),{key:0,modelValue:e.unref(s)[e.unref(l)],"onUpdate:modelValue":v[1]||(v[1]=f=>e.unref(s)[e.unref(l)]=f)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).children,f=>(e.openBlock(),e.createBlock(e.unref(y.ElCollapseItem),{key:f.name,name:f.name,title:`${f.label} (${f.count})`},{default:e.withCtx(()=>[f.components?(e.openBlock(),e.createBlock(e.unref(y.ElRow),{key:0,wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.components,u=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{span:e.unref(t),key:u.name},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:u.name,title:u.label||u.name,draggable:"",onDragstart:g=>d(u),onDragend:m},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1032,["name","title"]))),128))]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)])]),_:1},8,["items","modelValue"]))]),_:1}))}}),qt=e.defineComponent({name:"OutlineWidget",__name:"index",setup(c){const{engine:t,designer:n,selected:o}=Y(),{current:l}=W(),a=e.ref([]),s=B=>{if(w.isBlock(B))return B.locked?["unlock"]:["lock"];const E=B.parent;return E&&(E.locked||E.invisible)?[]:l.value?.locked?[]:B.locked?["unlock"]:B.invisible?["visible"]:["lock","invisible","copy","remove"]},r=B=>{const E=[];return B.forEach(x=>{const J={id:x.id,label:x.name,type:x.id,model:x};Array.isArray(x.children)&&(J.children=r(x.children)),E.push(J)}),E},i=()=>{if(!l.value)return[];const{id:B,name:E,nodes:x}=l.value;return[{id:B,label:E,type:B,model:l.value,children:r(x)}]},d=async()=>{a.value=i(),o.value?.model&&(await e.nextTick(),n.value?.setSelected(o.value.model))},m=e.computed(()=>o.value?.model.id),p=B=>{const E=B.data;if(w.isBlock(E.model)||E.model.locked||E.model.name==="template")return!1;const x=t.assets.componentMap.get(E.model.name);return x?(n.value?.setDragging(x),!0):!1},v=async(B,E,x)=>{const J=E.data,ne={prev:"top",next:"bottom",inner:"inner"}[x];let j=!1;if(w.isBlock(J.model))j=x==="inner",n.value?.setDropping(j?J.model:null,"inner");else{const P=J.model;j=!!await n.value?.allowDrop(P,ne),n.value?.setDropping(j?P:null,"inner")}return j},f=B=>{const E=B?.model;!E||E.invisible||(n.value?.setSelected(E),n.value?.setHover(null))},u=async(B,E,x)=>{const J=B.data,Z=E.data;if(w.isBlock(Z.model)){n.value?.setDropping(null),n.value?.setDragging(null);return}const ne=Z.model,j={before:"left",after:"right"}[x]||"inner";if(!await n.value?.allowDrop(ne,j)){n.value?.setDropping(null),d(),y.ElMessage.warning({message:`${J.model.name}不能放置到该位置`}),n.value?.setDragging(null);return}const N=await n.value?.getDropSlot(x==="inner"?ne:ne.parent);if(N!==null){const ae=J.model;ae.slot=N,l.value?.move(ae,ne,j)}else d();n.value?.setDropping(null),n.value?.setDragging(null),t.simulator.refresh()},g=B=>{w.isBlock(B.model)?n.value?.setHover(B.model):(n.value?.setHover(B.model),B.model.invisible&&n.value?.setHover(null),B.model.name==="slot"&&n.value?.setHover(null))},h=()=>{n.value?.setHover(null)},_=B=>{const E=B.data;E.dragging=!0;const x=t.assets.componentMap.get(E.model.name);x&&n.value?.setDragging(x)},C=async B=>{const E=B.data;E.dragging=!1},V=(B,E)=>{B&&((B.id===E.id||!w.isBlock(B)&&E.isChild(B))&&n.value?.setSelected(null),n.value?.setHover(null))},S=B=>{const{name:E,modelValue:x}=B,J=o.value?.model;switch(E){case"lock":V(J,x),x.lock();break;case"unlock":V(J,x),x.unlock();break;case"invisible":V(J,x),x.setVisible(!1);break;case"visible":x.setVisible(!0);break;case"copy":const Z=l.value?.cloneNode(x);Z&&n.value?.setSelected(Z);break;case"remove":V(J,x),l.value?.removeNode(x);break}};return e.watch(t.changed,d,{immediate:!0}),(B,E)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-outline-widget",title:"大纲树"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(y.ElTree),{key:e.unref(t).changed.value,data:a.value,"node-key":"id","default-expand-all":"",draggable:"","empty-text":"请新建或打开文件","current-node-key":m.value,"highlight-current":!0,"expand-on-click-node":!1,"allow-drop":v,"allow-drag":p,onCurrentChange:f,onNodeDrop:u,onNodeDragStart:_,onNodeDragEnd:C},{default:e.withCtx(({data:x,node:J})=>[e.createVNode(e.unref(O),{class:e.normalizeClass(["v-outline-widget__item",{"is-locked":x.model.locked,"is-invisible":x.model.invisible,"is-dragging":x.dragging}]),active:!x.model.invisible&&J.isCurrent,grow:"",small:"",background:"",hover:"","model-value":x.model,icon:x.model.locked?e.unref(k.VtjIconLock):x.model.invisible?e.unref(k.VtjIconInvisible):void 0,title:x.label,subtitle:x.type,actions:s(x.model),onAction:S,onMouseenter:Z=>g(x),onMouseleave:h},null,8,["class","active","model-value","icon","title","subtitle","actions","onMouseenter"])]),_:1},8,["data","current-node-key"]))]),_:1}))}}),Gt=e.defineComponent({name:"HistoryWidget",__name:"index",setup(c){const{history:t,load:n,total:o}=je(),l=e.computed(()=>`(共 ${o.value} 条)`),a=r=>{r.name==="remove"&&t.value?.remove(r.modelValue.id)},s=async()=>{await re("确定要清空历史记录吗?")&&t.value?.clear()};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-history-widget",title:"历史记录",subtitle:l.value,remove:!!e.unref(o),onRemove:s},{default:e.withCtx(()=>[e.unref(o)===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.unref(t)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(t).items,(d,m)=>(e.openBlock(),e.createBlock(e.unref(O),{index:m+1,title:d.label,"model-value":d,active:m==e.unref(t).index,small:"",background:"",actions:["remove"],onAction:a,onClick:p=>e.unref(n)(d.id)},null,8,["index","title","model-value","active","onClick"]))),256)):e.createCommentVNode("",!0)]),_:1},8,["subtitle","remove"]))}}),M=e.defineAsyncComponent({loader:()=>Promise.resolve().then(()=>require("./Editor-YiL8B0KR.cjs")),loadingComponent:e.defineComponent({render(){return e.h("div","正在拼命加载...")}}),errorComponent:e.defineComponent({render(){return e.h("div","组件加载失败!")}})}),Kt=e.defineComponent({name:"ApisWidget",__name:"index",setup(c){const t=e.ref(!1),n=e.ref(null),o=e.ref(!1),l=e.computed(()=>o.value?"编辑API":"新增API"),a=e.computed(()=>s.value?.apis||[]),{project:s}=me(),r=()=>({method:"get",name:"",label:"",url:"",settings:{loading:!0,failMessage:!0,validSuccess:!0,originResponse:!1,injectHeaders:!1,type:"form",headers:{type:"JSExpression",value:"({})"}}}),i=()=>{t.value=!0,o.value=!1,n.value=r()},d=Ee.map(h=>({label:h,value:h.toLowerCase()})),m={get:"success",post:"primary",put:"warning",delete:"danger",patch:"warning",jsonp:"info"},p=[{label:"表单",value:"form"},{label:"JSON",value:"json"},{label:"文件",value:"data"}],v=(h,_,C)=>{X({type:"JSExpression",value:_},window)?C():C(new Error("代码错误"))},f=h=>{h.name==="edit"&&u(h.modelValue),h.name==="remove"&&s.value?.removeApi(h.modelValue.name)},u=h=>{o.value=!0,n.value=F.cloneDeep(h),t.value=!0},g=async h=>s.value?.existApiName(h.name,o.value?[h.id]:[])?(L(`API名称 [ ${h.name} ] 已存在`),!1):(s.value?.setApi(h),!0);return(h,_)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-apis-widget",title:"API管理",plus:"",onPlus:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,C=>(e.openBlock(),e.createBlock(e.unref(O),{key:C.id,small:"",title:C.name,subtitle:C.label,"model-value":C,tag:C.method?.toUpperCase(),"tag-type":m[C.method||"get"],background:"",actions:["edit","remove"],onClick:V=>u(C),onAction:f},null,8,["title","subtitle","model-value","tag","tag-type","onClick"]))),128)),a.value.length===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XDialogForm),{modelValue:t.value,"onUpdate:modelValue":_[1]||(_[1]=C=>t.value=C),model:n.value,title:l.value,width:"1000px",height:"600px","form-props":{labelPosition:"top",tooltipMessage:!1,size:"default"},"submit-method":g},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{gap:"",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"method",label:"请求类型",required:"",editor:"radio",options:e.unref(d),props:{button:!0}},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"接口名称",required:"",rules:{pattern:e.unref(Q),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"url",label:"接口URL",required:""})]),_:1}),e.createVNode(e.unref(b.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[n.value.method!=="jsonp"?(e.openBlock(),e.createBlock(e.unref(I),{key:0,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-around"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"settings.loading",size:"small",label:"加载提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.failMessage",label:"失败提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.validSuccess",label:"校验成功",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.originResponse",label:"原始响应",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.injectHeaders",label:"注入请求头",editor:"switch"})]),_:1}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.type",label:"发送数据类型",editor:"radio",options:p,props:{button:!0}}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.headers.value",label:"请求头配置",tip:"支持 JSExpression 或 JSFunction",rules:{validator:v}},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:n.value.settings.headers.value,"onUpdate:modelValue":_[0]||(_[0]=C=>n.value.settings.headers.value=C),dark:"",height:"200px"},null,8,["modelValue"])]),_:1},8,["rules"])]),_:1},8,["subtitle"])):e.createCommentVNode("",!0),n.value.method==="jsonp"?(e.openBlock(),e.createBlock(e.unref(I),{key:1,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallback",size:"small",label:"jsonpCallback"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallbackFunction",size:"small",label:"jsonpCallbackFunction"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.timeout",size:"small",label:"timeout",editor:"number"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.crossorigin",size:"small",label:"crossorigin",editor:"switch"})]),_:1},8,["subtitle"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue","model","title"])]),_:1}))}}),Zt=e.defineComponent({name:"DepsWidget",__name:"index",setup(c){const{dependencies:t,engine:n}=Ie(),o=e.ref(!1),l=e.ref(!1),a=e.ref({}),s=e.computed(()=>l.value?"查看依赖":a.value?"编辑依赖":"新增依赖"),r=u=>u.required||u.official?[]:["edit","remove"],i=u=>u.official&&!u.required,d=async u=>(u.urls=u.urls.split(`
|
|
8
|
+
`),n.project.value?.setDeps(u),!0),m=u=>{n.project.value?.setDeps(u)},p=()=>{l.value=!1,o.value=!0,a.value=null},v=u=>{l.value=!0,a.value={...u,urls:u.urls.join(`
|
|
9
9
|
`)},o.value=!0},f=(u,g)=>{g.name==="edit"&&(a.value={...u,urls:u.urls.join(`
|
|
10
|
-
`)},l.value=!1,o.value=!0),g.name==="remove"&&n.project.value?.removeDeps(u)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-deps-widget",title:"依赖管理",plus:"",onPlus:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:h.package,title:h.package,subtitle:h.version,actions:r(h),background:"",switch:i(h),modelValue:h.enabled,"onUpdate:modelValue":_=>h.enabled=_,onSwitch:_=>d(h),onClick:_=>v(h),onAction:_=>f(h,_)},null,8,["title","subtitle","actions","switch","modelValue","onUpdate:modelValue","onSwitch","onClick","onAction"]))),128)),e.createVNode(e.unref(b.XDialogForm),{modelValue:o.value,"onUpdate:modelValue":g[0]||(g[0]=h=>o.value=h),width:"600px",height:"500px",title:s.value,model:a.value,submitMethod:m,formProps:{disabled:l.value,tooltipMessage:!1}},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"package",label:"包名",required:"",disabled:!!a.value},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"version",label:"版本",required:""}),e.createVNode(e.unref(b.XField),{name:"library",label:"导出名称",required:""}),e.createVNode(e.unref(b.XField),{name:"urls",label:"资源文件",editor:"textarea",props:{rows:3},tip:"多个资源可以换行输入",required:""}),e.createVNode(e.unref(b.XField),{name:"assetsUrl",label:"物料URL"}),e.createVNode(e.unref(b.XField),{name:"assetsLibrary",label:"物料名称"})]),_:1},8,["modelValue","title","model","formProps"])]),_:1}))}}),Qt=e.defineComponent({__name:"actions",props:{position:{},model:{},path:{default:()=>[]}},emits:["action"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>n.model.name),a=e.computed(()=>!w.isBlock(n.model)&&!n.model.locked),s=e.computed(()=>n.path.map(d=>({command:d,label:d.name,onMouseenter:()=>{o("action",{type:"hover",model:d})}}))),r=[{name:"prev",icon:k.VtjIconArrowUp,title:"向前移动"},{name:"next",icon:k.VtjIconArrowDown,title:"向后移动"},{name:"copy",icon:k.VtjIconCopy,title:"复制"},{name:"remove",icon:k.VtjIconRemove,title:"删除"}],i=d=>{o("action",{type:"selected",model:d.command})},m=async d=>{d.name==="remove"?await re("确定删除?")&&o("action",{type:d.name,model:n.model}):o("action",{type:d.name,model:n.model})};return(d,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-actions",[`is-${n.position}`]])},[e.createVNode(e.unref(b.XAction),{mode:"icon",size:"small",icon:e.unref(k.VtjIconLayers),label:l.value,menus:s.value,background:"none",onCommand:i},null,8,["icon","label","menus"]),e.createVNode(e.unref(b.XActionBar),{disabled:!a.value,mode:"icon",size:"small",items:r,background:"none",onClick:m},null,8,["disabled"])],2))}}),Yt={key:1,class:"v-designer__placeholder"},en=e.defineComponent({name:"VDesigner",inheritAttrs:!1,__name:"index",setup(c,{expose:t}){const n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{dependencies:s,engine:r}=Ie(),{current:i,isEmpty:m}=W(),d=e.computed(()=>r.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc"),{designer:p,hover:v,dropping:f,selected:u}=ut(o,s),g=h=>{const _=h.type,C=h.model;if(i.value)switch(_){case"remove":i.value.removeNode(C),p.value?.setSelected(null);break;case"copy":const B=i.value.cloneNode(C);p.value?.setSelected(B);break;case"prev":i.value.movePrev(C),p.value?.setSelected(C);break;case"next":i.value.moveNext(C),p.value?.setSelected(C);break;case"hover":p.value?.setHover(C);break;case"selected":p.value?.setSelected(C);break}};return t({designer:p,mode:d}),(h,_)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"v-designer"},[e.createVNode(e.unref(_e),{mode:d.value,width:e.unref(l),height:e.unref(a)},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref_key:"iframe",ref:o,frameborder:"0"},null,512),e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["v-designer__dropping","is-inner"]),style:e.normalizeStyle(e.unref(f).style)},null,4)):e.createCommentVNode("",!0),e.unref(v)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"v-designer__hover",style:e.normalizeStyle(e.unref(v).style)},[e.createElementVNode("span",{class:e.normalizeClass(`is-${e.unref(v).position}`)},[e.createTextVNode(e.toDisplayString(e.unref(v).model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(v).model.id),1)],2)],4)):e.createCommentVNode("",!0),e.unref(u)?(e.openBlock(),e.createElementBlock("div",{key:2,class:"v-designer__selected",style:e.normalizeStyle(e.unref(u).style)},[e.createVNode(Qt,{position:e.unref(u).position,model:e.unref(u).model,path:e.unref(u).path,onAction:g},null,8,["position","model","path"])],4)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"]),e.unref(i)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,description:"请新建或打开文件"})),e.unref(i)&&e.unref(m)?(e.openBlock(),e.createElementBlock("div",Yt," 您可以拖拽组件放置到这里 ")):e.createCommentVNode("",!0)],512))}}),ce=e.defineComponent({__name:"group",props:{context:{},current:{},title:{},nameLabel:{},valueLabel:{},createEmpty:{},list:{},remove:{},submit:{},itemTitle:{type:Function,default:c=>c.name}},setup(c){const t=c,n=e.ref(),o=e.ref(),l=e.ref(!1),a=e.ref(t.createEmpty()),s=e.ref(!1),r=e.computed(()=>s.value?`编辑${t.title}`:`新增${t.title}`),i=()=>{s.value=!1,a.value=t.createEmpty(),l.value=!0},m=(u,g)=>{switch(g.name){case"edit":p(u);break;case"remove":t.remove(u);break}},d=u=>{a.value.value=u},p=u=>{s.value=!0,a.value={...u},l.value=!0},v=async u=>t.submit(u,s.value),f=()=>{o.value?.itemRef.validate()};return(u,g)=>(e.openBlock(),e.createBlock(e.unref($),{title:t.title,class:"v-sub-panel",size:"small",fit:!1,plus:"",onPlus:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,h=>(e.openBlock(),e.createBlock(e.unref(O),{title:t.itemTitle(h),border:"",actions:["edit","remove"],onAction:_=>m(h,_),onClick:_=>p(h)},null,8,["title","onAction","onClick"]))),256)),u.list.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":40})),e.createVNode(e.unref(pe),{modelValue:l.value,"onUpdate:modelValue":g[1]||(g[1]=h=>l.value=h),title:r.value,"submit-method":v,model:a.value,block:u.current,context:u.context,onPick:d},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"fields",e.normalizeProps(e.guardReactiveProps({model:a.value,isEdit:s.value,nameLabel:u.nameLabel,valueLabel:u.valueLabel})),()=>[e.createVNode(e.unref(b.XField),{name:"name",label:u.nameLabel,required:"",disabled:s.value},null,8,["label","disabled"]),e.createVNode(e.unref(b.XField),{ref_key:"codeFieldRef",ref:o,name:"value",label:u.valueLabel,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,dark:"",height:"350px",modelValue:a.value.value,"onUpdate:modelValue":g[0]||(g[0]=h=>a.value.value=h),onBlur:f},null,8,["modelValue"])]),_:1},8,["label"])])]),_:3},8,["modelValue","title","model","block","context"])]),_:3},8,["title"]))}}),tn=e.defineComponent({__name:"state",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.state||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:""}),l=s=>t.current?.removeState(s.name),a=async(s,r)=>{const{name:i,value:m}=s;if(!r&&t.current?.state[i])return L(`名称 ${i} 已存在,请更换!`),!1;const d={type:"JSExpression",value:m};return X(d,t.context,!0)?(t.current?.setState(i,d),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"状态数据",current:t.current,context:t.context,list:n.value,nameLabel:"状态数据名称",valueLabel:"状态初始值 [ JSExpression ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),nn=e.defineComponent({__name:"computed",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.computed||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("computed",s.name),a=async(s,r)=>{const{name:i,value:m}=s;if(!r&&t.current?.computed[i])return L(`名称 ${i} 已存在,请更换!`),!1;const d={type:"JSFunction",value:m};return X(d,t.context,!0)?(t.current?.setFunction("computed",i,d),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"计算属性",current:t.current,context:t.context,list:n.value,nameLabel:"计算属性名称",valueLabel:"计算函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),on=e.defineComponent({__name:"methods",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.methods||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("methods",s.name),a=async(s,r)=>{const{name:i,value:m}=s;if(!r&&t.current?.methods[i])return L(`名称 ${i} 已存在,请更换!`),!1;const d={type:"JSFunction",value:m};return X(d,t.context,!0)?(t.current?.setFunction("methods",i,d),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"组件方法",current:t.current,context:t.context,list:n.value,nameLabel:"方法名称",valueLabel:"方法函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),ln=e.defineComponent({__name:"lifeCycles",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>D.LIFE_CYCLES_LIST.map(r=>({label:r,value:r}))),o=e.computed(()=>Object.entries(t.current?.lifeCycles||{}).map(([i,m])=>({name:i,value:D.JSCodeToString(m)}))),l=()=>({name:"",value:"() => { }"}),a=r=>t.current?.removeFunction("lifeCycles",r.name),s=async(r,i)=>{const{name:m,value:d}=r;if(!i&&t.current?.lifeCycles[m])return L(`名称 ${m} 已存在,请更换!`),!1;const p={type:"JSFunction",value:d};return X(p,t.context,!0)?(t.current?.setFunction("lifeCycles",m,p),!0):!1};return(r,i)=>(e.openBlock(),e.createBlock(ce,{title:"生命周期",current:t.current,context:t.context,list:o.value,nameLabel:"名称",valueLabel:"函数 [ JSFunction ]",createEmpty:l,remove:a,submit:s},{fields:e.withCtx(({model:m,nameLabel:d,isEdit:p,valueLabel:v})=>[e.createVNode(e.unref(b.XField),{name:"name",label:d,editor:"select",options:n.value,required:"",disabled:p},null,8,["label","options","disabled"]),e.createVNode(e.unref(b.XField),{name:"value",label:v,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref:"editorRef",dark:"",height:"350px",modelValue:m.value,"onUpdate:modelValue":f=>m.value=f},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),rn=e.defineComponent({__name:"watch",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>(t.current?.watch||[]).map(r=>({...r,source:D.JSCodeToString(r.source),handler:D.JSCodeToString(r.handler)}))),o=()=>({source:"() => { }",deep:!1,immediate:!1,handler:"() => { }"}),l=r=>r.source,a=r=>t.current?.removeWatch(r),s=async(r,i)=>{const m={type:"JSFunction",value:r.source},d={type:"JSFunction",value:r.handler};if(!X(m,t.context,!0)||!X(d,t.context,!0))return!1;const p={...r,source:m,handler:d};return t.current?.setWatch(p),!0};return(r,i)=>(e.openBlock(),e.createBlock(ce,{title:"侦听器",current:t.current,context:t.context,list:n.value,nameLabel:"侦听源 [ JSFunction ]",valueLabel:"处理函数 [ JSFunction ]",createEmpty:o,remove:a,submit:s,itemTitle:l,grow:""},{fields:e.withCtx(({model:m,nameLabel:d,valueLabel:p})=>[e.createVNode(e.unref(b.XField),{name:"source",label:d,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{dark:"",height:"100px",modelValue:m.source,"onUpdate:modelValue":v=>m.source=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"]),e.createVNode(e.unref(b.XField),{name:"deep",modelValue:m.deep,"onUpdate:modelValue":v=>m.deep=v,label:"深度监听",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"immediate",modelValue:m.immediate,"onUpdate:modelValue":v=>m.immediate=v,label:"立即执行",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"handler",label:p,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{dark:"",height:"130px",modelValue:m.handler,"onUpdate:modelValue":v=>m.handler=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),an=e.defineComponent({__name:"index",setup(c){const{current:t,context:n}=W();return(o,l)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-scripts-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(tn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(nn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(on,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(ln,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(rn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"])]),_:1}))}}),ve=e.defineComponent({__name:"setters",props:{context:{},current:{},title:{},items:{},node:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=(s,r)=>{o("change",s,r)},a=s=>{o("remove",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref($),{title:n.title,class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-properties-widget__form",size:"small","label-width":"90px",onKeydown:r[0]||(r[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>(e.openBlock(),e.createBlock(e.unref(N),e.mergeProps(i,{key:`${i.name}_${n.node.id}`,current:n.current,context:n.context,removable:n.removable,onChange:l,onRemove:a}),null,16,["current","context","removable"]))),128))]),_:1})]),_:1},8,["title"]))}}),sn=e.defineComponent({name:"PropertiesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{node:l,commonProps:a,change:s,componentProps:r,customProps:i,addCustom:m,removeCustom:d,isExist:p}=ft(o),v=e.ref(!1),f=e.ref(),u=()=>{v.value=!0,f.value={name:""}},g=async _=>{const C=Object.keys(l.value?.props||{});return!p(_.name)&&!C.includes(_.name)?(m(_.name),!0):(L("已存在该属性名称"),!1)},h=async _=>{await re("确定删除?")&&d(_)};return(_,C)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-properties-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:0,title:"通用属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(a),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)&&e.unref(r).length?(e.openBlock(),e.createBlock(ve,{key:1,title:"组件属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(r),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:2,title:"自定义属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(i),onChange:e.unref(s),removable:"",plus:"",grow:"",onPlus:u,onRemove:h},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XDialogForm),{modelValue:v.value,"onUpdate:modelValue":C[0]||(C[0]=B=>v.value=B),title:"新增自定义属性",width:"400px",height:"150px","submit-method":g,formProps:{tooltipMessage:!1},model:f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["rules"])]),_:1},8,["modelValue","model"])]),_:1})):e.createCommentVNode("",!0)}}),Te=e.defineComponent({name:"VariableBinder",__name:"variable",props:{context:{},current:{},value:{}},setup(c){const t=c,n=e.ref(),o=e.reactive({type:"JSExpression",value:t.value}),l=a=>{n.value.getEditor().setValue(a),o.value=a};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定变量","unbind-enabled":"",block:t.current,context:t.context,model:o,onPick:l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"value",label:"绑定内容 [ JSExpression ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value=r),dark:"",height:"450px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),Re=e.defineComponent({name:"EventBinder",__name:"event",props:{context:{},current:{},name:{},event:{}},setup(c){const t=c,n=e.ref(),o=()=>({name:t.name,...t.event,modifiers:Object.keys(t.event?.modifiers||{}),handler:{type:"JSFunction",value:t.event?.handler?.value||"() => {}"}}),l=e.reactive(o()),a=Ne.map(r=>({label:r,value:r})),s=r=>{n.value.getEditor().setValue(r),l.handler.value=r};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定事件","unbind-enabled":"",block:t.current,context:t.context,model:l,onPick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"modifiers",label:"事件修饰符",editor:"checkbox",options:e.unref(a)},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"handler.value",label:"事件处理函数 [ JSFunction ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,modelValue:l.handler.value,"onUpdate:modelValue":i[0]||(i[0]=m=>l.handler.value=m),dark:"",height:"350px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),cn=e.defineComponent({name:"EventsWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{mouseEventList:l,keyboardEventList:a,componentEventList:s}=vt(o),r=e.ref({name:"",event:void 0}),i=e.ref(!1),m=u=>{r.value=F.cloneDeep(u),i.value=!0},d=async u=>{const g={...u,modifiers:u.modifiers.reduce((_,C)=>(_[C]=!0,_),{})};return X(g.handler,n.value,!0)?((o.value?.model).setEvent(g),!0):!1},p=async u=>{const g=o.value?.model;u.name&&(g.removeEvent(u.name),i.value=!1)},v=async()=>{r.value.name&&await re("确定要删除该事件吗?")&&p(r.value)},f=u=>{const{name:g,modelValue:h}=u;g==="edit"&&m(h),g==="remove"&&p(h)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-events-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref($),{title:"组件事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.unref(s).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50,description:"该组件无自带事件"})),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`component_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:_=>m(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref($),{title:"鼠标事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`mouse_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:_=>m(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref($),{title:"键盘事件",class:"v-sub-panel",size:"small",grow:"",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`keyboard_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:_=>m(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),i.value?(e.openBlock(),e.createBlock(e.unref(Re),{key:0,modelValue:i.value,"onUpdate:modelValue":g[0]||(g[0]=h=>i.value=h),context:e.unref(n),current:e.unref(t),name:r.value.name,event:r.value.event,submitMethod:d,onUnbind:v},null,8,["modelValue","context","current","name","event"])):e.createCommentVNode("",!0)]),_:1}))}}),un=e.defineComponent({name:"CssWidget",__name:"index",setup(c){const{current:t}=W(),n=e.ref(),o=e.computed(()=>t.value?.css||""),l=s=>{t.value?.setCss(s)},a=()=>{const r=(n.value?.getEditor()).getValue();l(r),H("保存成功")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-css-widget v-sub-panel",title:"lang:css scoped",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"css",dark:"",onBlur:l},null,8,["model-value"])]),_:1}))}}),dn=e.defineComponent({name:"DirectivesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{vIf:l,vShow:a,vBind:s,vFor:r,vModels:i,onValueChange:m,onForChange:d,onModelChange:p}=bt(o),v=f=>f.arg?typeof f.arg=="string"?f.arg:D.parseExpression(f.arg,{}):"modelValue";return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-directives-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref($),{class:"v-sub-panel",title:"内置指令",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px",onKeydown:u[0]||(u[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:"vIf",label:"v-if",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(l).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(N),{name:"vShow",label:"v-show",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(a).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(N),{name:"vBind",label:"v-bind",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(s).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref($),{class:"v-sub-panel",title:"循环",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px",onKeydown:u[1]||(u[1]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:"value",label:"循环数据",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(r).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(N),{name:"item",label:"迭代变量名",setters:{name:"StringSetter",props:{placeholder:"item"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.item,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(N),{name:"index",label:"索引变量名",setters:{name:"StringSetter",props:{placeholder:"index"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.index,onChange:e.unref(d)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref($),{class:"v-sub-panel",title:"双向绑定",size:"small",fit:!1,grow:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),(g,h)=>(e.openBlock(),e.createBlock(e.unref($),{card:"",border:"",class:"v-sub-panel",size:"small",title:`v-model: ${v(g)}`,body:{grow:!1},fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"60px",onKeydown:u[2]||(u[2]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:h.toString(),label:"绑定变量",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:g.value,onChange:e.unref(p)},null,8,["name","current","context","value","onChange"])]),_:2},1024)]),_:2},1032,["title"]))),256)),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,description:"当前组件没有双向绑定属性","image-size":50}))]),_:1})]),_:1}))}}),mn=e.defineComponent({name:"DefinedPropsDialog",__name:"props",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义属性":"新增定义属性"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=Object.keys(D.DATA_TYPES).map(s=>({label:s,value:s})),a=async s=>{const r=s.default;return r&&!X(r,t.context,!0)?!1:(t.current.setProp(s),!0)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":a},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"type",label:"数据类型",editor:"checkbox",props:{button:!0,size:"small"},options:e.unref(l),required:""},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"required",label:"必须",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:o.value.default.value,"onUpdate:modelValue":r[0]||(r[0]=i=>o.value.default.value=i),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),pn=e.defineComponent({name:"DefinedEventsDialog",__name:"events",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义事件":"新增定义事件"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeEmit(t.item,!0),t.current.setEmit(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"事件名称",required:"",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),fn=e.defineComponent({name:"DefinedSlotsDialog",__name:"slots",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义插槽":"新增定义插槽"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeSlot(t.item,!0),t.current.setSlot(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"插槽名称",disabled:!!t.item,required:"",rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),vn=e.defineComponent({name:"DefinedInjectsDialog",__name:"injects",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑注入":"新增注入"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=async a=>{const s=a.default;return s&&!X(s,t.context,!0)?!1:(t.current.setInject(a),!0)};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"注入名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"from",label:"来源名称",tip:"默认和注入名称一致"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:o.value.default.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value.default.value=r),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),gn=e.defineComponent({name:"DefinedWidget",__name:"index",setup(c){const{current:t,context:n}=W(),o=e.computed(()=>(t.value?.props||[]).map(j=>typeof j=="string"?{name:j}:j)),l=e.computed(()=>t.value?.emits||[]),a=e.computed(()=>t.value?.slots||[]),s=e.computed(()=>t.value?.inject||[]),r=e.ref(!1),i=e.ref(),m=e.ref(!1),d=e.ref(),p=e.ref(!1),v=e.ref(),f=e.ref(!1),u=e.ref(),g=()=>{i.value=void 0,r.value=!0},h=j=>{const{name:P,modelValue:E}=j;P==="edit"&&_(E),P==="remove"&&t.value?.removeProp(E)},_=j=>{i.value=j,r.value=!0},C=()=>{d.value=void 0,m.value=!0},B=j=>{d.value=j,m.value=!0},I=j=>{const{name:P,modelValue:E}=j;P==="edit"&&B(E),P==="remove"&&t.value?.removeEmit(E)},V=()=>{v.value=void 0,p.value=!0},S=j=>{v.value=j,p.value=!0},x=j=>{const{name:P,modelValue:E}=j;P==="edit"&&S(E),P==="remove"&&t.value?.removeSlot(E)},J=()=>{u.value=void 0,f.value=!0},Z=j=>{u.value=j,f.value=!0},ne=j=>{const{name:P,modelValue:E}=j;P==="edit"&&Z(E),P==="remove"&&t.value?.removeInject(E)};return(j,P)=>e.unref(t)&&e.unref(n)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-defined-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref($),{class:"v-sub-panel",title:"定义属性",size:"small",plus:"",fit:!1,onPlus:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,E=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":E,title:E.name,border:"",actions:["edit","remove"],onClick:ae=>_(E),onAction:h},null,8,["model-value","title","onClick"]))),256)),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),r.value?(e.openBlock(),e.createBlock(mn,{key:1,current:e.unref(t),context:e.unref(n),modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=E=>r.value=E),item:i.value},null,8,["current","context","modelValue","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref($),{class:"v-sub-panel",title:"定义事件",size:"small",plus:"",fit:!1,onPlus:C},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,E=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":E,title:E,border:"",actions:["remove"],onClick:ae=>B(E),onAction:I},null,8,["model-value","title","onClick"]))),256)),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),m.value?(e.openBlock(),e.createBlock(pn,{key:1,modelValue:m.value,"onUpdate:modelValue":P[1]||(P[1]=E=>m.value=E),current:e.unref(t),context:e.unref(n),item:d.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref($),{class:"v-sub-panel",title:"定义插槽",size:"small",plus:"",fit:!1,onPlus:V},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,E=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":E,title:E,border:"",actions:["remove"],onClick:ae=>S(E),onAction:x},null,8,["model-value","title","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),p.value?(e.openBlock(),e.createBlock(fn,{key:1,modelValue:p.value,"onUpdate:modelValue":P[2]||(P[2]=E=>p.value=E),current:e.unref(t),context:e.unref(n),item:v.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref($),{class:"v-sub-panel",title:"注入",size:"small",plus:"",fit:!1,grow:"",onPlus:J},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,E=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":E,title:E.name,border:"",actions:["remove"],onClick:ae=>Z(E),onAction:ne},null,8,["model-value","title","onClick"]))),256)),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),f.value?(e.openBlock(),e.createBlock(vn,{key:1,modelValue:f.value,"onUpdate:modelValue":P[3]||(P[3]=E=>f.value=E),current:e.unref(t),context:e.unref(n),item:u.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)}}),hn=e.defineComponent({name:"DataSourceDialogForm",__name:"form",props:{context:{},current:{},item:{}},setup(c){const t=c,{apis:n}=kt(),o=()=>({type:"api",ref:"",name:"",label:"",transform:{type:"JSFunction",value:`(res) => {
|
|
10
|
+
`)},l.value=!1,o.value=!0),g.name==="remove"&&n.project.value?.removeDeps(u)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-deps-widget",title:"依赖管理",plus:"",onPlus:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:h.package,title:h.package,subtitle:h.version,actions:r(h),background:"",switch:i(h),modelValue:h.enabled,"onUpdate:modelValue":_=>h.enabled=_,onSwitch:_=>m(h),onClick:_=>v(h),onAction:_=>f(h,_)},null,8,["title","subtitle","actions","switch","modelValue","onUpdate:modelValue","onSwitch","onClick","onAction"]))),128)),e.createVNode(e.unref(b.XDialogForm),{modelValue:o.value,"onUpdate:modelValue":g[0]||(g[0]=h=>o.value=h),width:"600px",height:"500px",title:s.value,model:a.value,submitMethod:d,formProps:{disabled:l.value,tooltipMessage:!1}},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"package",label:"包名",required:"",disabled:!!a.value},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"version",label:"版本",required:""}),e.createVNode(e.unref(b.XField),{name:"library",label:"导出名称",required:""}),e.createVNode(e.unref(b.XField),{name:"urls",label:"资源文件",editor:"textarea",props:{rows:3},tip:"多个资源可以换行输入",required:""}),e.createVNode(e.unref(b.XField),{name:"assetsUrl",label:"物料URL"}),e.createVNode(e.unref(b.XField),{name:"assetsLibrary",label:"物料名称"})]),_:1},8,["modelValue","title","model","formProps"])]),_:1}))}}),Qt=e.defineComponent({__name:"actions",props:{position:{},model:{},path:{default:()=>[]}},emits:["action"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>n.model.name),a=e.computed(()=>!w.isBlock(n.model)&&!n.model.locked),s=e.computed(()=>n.path.map(m=>({command:m,label:m.name,onMouseenter:()=>{o("action",{type:"hover",model:m})}}))),r=[{name:"prev",icon:k.VtjIconArrowUp,title:"向前移动"},{name:"next",icon:k.VtjIconArrowDown,title:"向后移动"},{name:"copy",icon:k.VtjIconCopy,title:"复制"},{name:"remove",icon:k.VtjIconRemove,title:"删除"}],i=m=>{o("action",{type:"selected",model:m.command})},d=async m=>{m.name==="remove"?await re("确定删除?")&&o("action",{type:m.name,model:n.model}):o("action",{type:m.name,model:n.model})};return(m,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-actions",[`is-${n.position}`]])},[e.createVNode(e.unref(b.XAction),{mode:"icon",size:"small",icon:e.unref(k.VtjIconLayers),label:l.value,menus:s.value,background:"none",onCommand:i},null,8,["icon","label","menus"]),e.createVNode(e.unref(b.XActionBar),{disabled:!a.value,mode:"icon",size:"small",items:r,background:"none",onClick:d},null,8,["disabled"])],2))}}),Yt={key:1,class:"v-designer__placeholder"},en=e.defineComponent({name:"VDesigner",inheritAttrs:!1,__name:"index",setup(c,{expose:t}){const n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{dependencies:s,engine:r,apis:i}=Ie(),{current:d,isEmpty:m}=W(),p=e.computed(()=>r.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc"),{designer:v,hover:f,dropping:u,selected:g}=ut(o,s,i),h=_=>{const C=_.type,V=_.model;if(d.value)switch(C){case"remove":d.value.removeNode(V),v.value?.setSelected(null);break;case"copy":const S=d.value.cloneNode(V);v.value?.setSelected(S);break;case"prev":d.value.movePrev(V),v.value?.setSelected(V);break;case"next":d.value.moveNext(V),v.value?.setSelected(V);break;case"hover":v.value?.setHover(V);break;case"selected":v.value?.setSelected(V);break}};return t({designer:v,mode:p}),(_,C)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"v-designer"},[e.createVNode(e.unref(_e),{mode:p.value,width:e.unref(l),height:e.unref(a)},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref_key:"iframe",ref:o,frameborder:"0"},null,512),e.unref(u)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["v-designer__dropping","is-inner"]),style:e.normalizeStyle(e.unref(u).style)},null,4)):e.createCommentVNode("",!0),e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"v-designer__hover",style:e.normalizeStyle(e.unref(f).style)},[e.createElementVNode("span",{class:e.normalizeClass(`is-${e.unref(f).position}`)},[e.createTextVNode(e.toDisplayString(e.unref(f).model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(f).model.id),1)],2)],4)):e.createCommentVNode("",!0),e.unref(g)?(e.openBlock(),e.createElementBlock("div",{key:2,class:"v-designer__selected",style:e.normalizeStyle(e.unref(g).style)},[e.createVNode(Qt,{position:e.unref(g).position,model:e.unref(g).model,path:e.unref(g).path,onAction:h},null,8,["position","model","path"])],4)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"]),e.unref(d)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,description:"请新建或打开文件"})),e.unref(d)&&e.unref(m)?(e.openBlock(),e.createElementBlock("div",Yt," 您可以拖拽组件放置到这里 ")):e.createCommentVNode("",!0)],512))}}),ce=e.defineComponent({__name:"group",props:{context:{},current:{},title:{},nameLabel:{},valueLabel:{},createEmpty:{},list:{},remove:{},submit:{},itemTitle:{type:Function,default:c=>c.name}},setup(c){const t=c,n=e.ref(),o=e.ref(),l=e.ref(!1),a=e.ref(t.createEmpty()),s=e.ref(!1),r=e.computed(()=>s.value?`编辑${t.title}`:`新增${t.title}`),i=()=>{s.value=!1,a.value=t.createEmpty(),l.value=!0},d=(u,g)=>{switch(g.name){case"edit":p(u);break;case"remove":t.remove(u);break}},m=u=>{a.value.value=u},p=u=>{s.value=!0,a.value={...u},l.value=!0},v=async u=>t.submit(u,s.value),f=()=>{o.value?.itemRef.validate()};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(I),{title:t.title,class:"v-sub-panel",size:"small",fit:!1,plus:"",onPlus:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,h=>(e.openBlock(),e.createBlock(e.unref(O),{title:t.itemTitle(h),border:"",actions:["edit","remove"],onAction:_=>d(h,_),onClick:_=>p(h)},null,8,["title","onAction","onClick"]))),256)),u.list.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":40})),e.createVNode(e.unref(pe),{modelValue:l.value,"onUpdate:modelValue":g[1]||(g[1]=h=>l.value=h),title:r.value,"submit-method":v,model:a.value,block:u.current,context:u.context,onPick:m},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"fields",e.normalizeProps(e.guardReactiveProps({model:a.value,isEdit:s.value,nameLabel:u.nameLabel,valueLabel:u.valueLabel})),()=>[e.createVNode(e.unref(b.XField),{name:"name",label:u.nameLabel,required:"",disabled:s.value},null,8,["label","disabled"]),e.createVNode(e.unref(b.XField),{ref_key:"codeFieldRef",ref:o,name:"value",label:u.valueLabel,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,dark:"",height:"350px",modelValue:a.value.value,"onUpdate:modelValue":g[0]||(g[0]=h=>a.value.value=h),onBlur:f},null,8,["modelValue"])]),_:1},8,["label"])])]),_:3},8,["modelValue","title","model","block","context"])]),_:3},8,["title"]))}}),tn=e.defineComponent({__name:"state",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.state||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:""}),l=s=>t.current?.removeState(s.name),a=async(s,r)=>{const{name:i,value:d}=s;if(!r&&t.current?.state[i])return L(`名称 ${i} 已存在,请更换!`),!1;const m={type:"JSExpression",value:d};return X(m,t.context,!0)?(t.current?.setState(i,m),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"状态数据",current:t.current,context:t.context,list:n.value,nameLabel:"状态数据名称",valueLabel:"状态初始值 [ JSExpression ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),nn=e.defineComponent({__name:"computed",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.computed||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("computed",s.name),a=async(s,r)=>{const{name:i,value:d}=s;if(!r&&t.current?.computed[i])return L(`名称 ${i} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return X(m,t.context,!0)?(t.current?.setFunction("computed",i,m),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"计算属性",current:t.current,context:t.context,list:n.value,nameLabel:"计算属性名称",valueLabel:"计算函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),on=e.defineComponent({__name:"methods",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.methods||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("methods",s.name),a=async(s,r)=>{const{name:i,value:d}=s;if(!r&&t.current?.methods[i])return L(`名称 ${i} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return X(m,t.context,!0)?(t.current?.setFunction("methods",i,m),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"组件方法",current:t.current,context:t.context,list:n.value,nameLabel:"方法名称",valueLabel:"方法函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),ln=e.defineComponent({__name:"lifeCycles",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>D.LIFE_CYCLES_LIST.map(r=>({label:r,value:r}))),o=e.computed(()=>Object.entries(t.current?.lifeCycles||{}).map(([i,d])=>({name:i,value:D.JSCodeToString(d)}))),l=()=>({name:"",value:"() => { }"}),a=r=>t.current?.removeFunction("lifeCycles",r.name),s=async(r,i)=>{const{name:d,value:m}=r;if(!i&&t.current?.lifeCycles[d])return L(`名称 ${d} 已存在,请更换!`),!1;const p={type:"JSFunction",value:m};return X(p,t.context,!0)?(t.current?.setFunction("lifeCycles",d,p),!0):!1};return(r,i)=>(e.openBlock(),e.createBlock(ce,{title:"生命周期",current:t.current,context:t.context,list:o.value,nameLabel:"名称",valueLabel:"函数 [ JSFunction ]",createEmpty:l,remove:a,submit:s},{fields:e.withCtx(({model:d,nameLabel:m,isEdit:p,valueLabel:v})=>[e.createVNode(e.unref(b.XField),{name:"name",label:m,editor:"select",options:n.value,required:"",disabled:p},null,8,["label","options","disabled"]),e.createVNode(e.unref(b.XField),{name:"value",label:v,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref:"editorRef",dark:"",height:"350px",modelValue:d.value,"onUpdate:modelValue":f=>d.value=f},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),rn=e.defineComponent({__name:"watch",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>(t.current?.watch||[]).map(r=>({...r,source:D.JSCodeToString(r.source),handler:D.JSCodeToString(r.handler)}))),o=()=>({source:"() => { }",deep:!1,immediate:!1,handler:"() => { }"}),l=r=>r.source,a=r=>t.current?.removeWatch(r),s=async(r,i)=>{const d={type:"JSFunction",value:r.source},m={type:"JSFunction",value:r.handler};if(!X(d,t.context,!0)||!X(m,t.context,!0))return!1;const p={...r,source:d,handler:m};return t.current?.setWatch(p),!0};return(r,i)=>(e.openBlock(),e.createBlock(ce,{title:"侦听器",current:t.current,context:t.context,list:n.value,nameLabel:"侦听源 [ JSFunction ]",valueLabel:"处理函数 [ JSFunction ]",createEmpty:o,remove:a,submit:s,itemTitle:l,grow:""},{fields:e.withCtx(({model:d,nameLabel:m,valueLabel:p})=>[e.createVNode(e.unref(b.XField),{name:"source",label:m,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{dark:"",height:"100px",modelValue:d.source,"onUpdate:modelValue":v=>d.source=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"]),e.createVNode(e.unref(b.XField),{name:"deep",modelValue:d.deep,"onUpdate:modelValue":v=>d.deep=v,label:"深度监听",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"immediate",modelValue:d.immediate,"onUpdate:modelValue":v=>d.immediate=v,label:"立即执行",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"handler",label:p,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{dark:"",height:"130px",modelValue:d.handler,"onUpdate:modelValue":v=>d.handler=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),an=e.defineComponent({__name:"index",setup(c){const{current:t,context:n}=W();return(o,l)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-scripts-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(tn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(nn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(on,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(ln,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(rn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"])]),_:1}))}}),ve=e.defineComponent({__name:"setters",props:{context:{},current:{},title:{},items:{},node:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=(s,r)=>{o("change",s,r)},a=s=>{o("remove",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:n.title,class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-properties-widget__form",size:"small","label-width":"90px",onKeydown:r[0]||(r[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>(e.openBlock(),e.createBlock(e.unref($),e.mergeProps(i,{key:`${i.name}_${n.node.id}`,current:n.current,context:n.context,removable:n.removable,onChange:l,onRemove:a}),null,16,["current","context","removable"]))),128))]),_:1})]),_:1},8,["title"]))}}),sn=e.defineComponent({name:"PropertiesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{node:l,commonProps:a,change:s,componentProps:r,customProps:i,addCustom:d,removeCustom:m,isExist:p}=ft(o),v=e.ref(!1),f=e.ref(),u=()=>{v.value=!0,f.value={name:""}},g=async _=>{const C=Object.keys(l.value?.props||{});return!p(_.name)&&!C.includes(_.name)?(d(_.name),!0):(L("已存在该属性名称"),!1)},h=async _=>{await re("确定删除?")&&m(_)};return(_,C)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-properties-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:0,title:"通用属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(a),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)&&e.unref(r).length?(e.openBlock(),e.createBlock(ve,{key:1,title:"组件属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(r),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:2,title:"自定义属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(i),onChange:e.unref(s),removable:"",plus:"",grow:"",onPlus:u,onRemove:h},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XDialogForm),{modelValue:v.value,"onUpdate:modelValue":C[0]||(C[0]=V=>v.value=V),title:"新增自定义属性",width:"400px",height:"150px","submit-method":g,formProps:{tooltipMessage:!1},model:f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["rules"])]),_:1},8,["modelValue","model"])]),_:1})):e.createCommentVNode("",!0)}}),Te=e.defineComponent({name:"VariableBinder",__name:"variable",props:{context:{},current:{},value:{}},setup(c){const t=c,n=e.ref(),o=e.reactive({type:"JSExpression",value:t.value}),l=a=>{n.value.getEditor().setValue(a),o.value=a};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定变量","unbind-enabled":"",block:t.current,context:t.context,model:o,onPick:l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"value",label:"绑定内容 [ JSExpression ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value=r),dark:"",height:"450px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),Re=e.defineComponent({name:"EventBinder",__name:"event",props:{context:{},current:{},name:{},event:{}},setup(c){const t=c,n=e.ref(),o=()=>({name:t.name,...t.event,modifiers:Object.keys(t.event?.modifiers||{}),handler:{type:"JSFunction",value:t.event?.handler?.value||"() => {}"}}),l=e.reactive(o()),a=Ne.map(r=>({label:r,value:r})),s=r=>{n.value.getEditor().setValue(r),l.handler.value=r};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定事件","unbind-enabled":"",block:t.current,context:t.context,model:l,onPick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"modifiers",label:"事件修饰符",editor:"checkbox",options:e.unref(a)},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"handler.value",label:"事件处理函数 [ JSFunction ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,modelValue:l.handler.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.handler.value=d),dark:"",height:"350px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),cn=e.defineComponent({name:"EventsWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{mouseEventList:l,keyboardEventList:a,componentEventList:s}=vt(o),r=e.ref({name:"",event:void 0}),i=e.ref(!1),d=u=>{r.value=F.cloneDeep(u),i.value=!0},m=async u=>{const g={...u,modifiers:u.modifiers.reduce((_,C)=>(_[C]=!0,_),{})};return X(g.handler,n.value,!0)?((o.value?.model).setEvent(g),!0):!1},p=async u=>{const g=o.value?.model;u.name&&(g.removeEvent(u.name),i.value=!1)},v=async()=>{r.value.name&&await re("确定要删除该事件吗?")&&p(r.value)},f=u=>{const{name:g,modelValue:h}=u;g==="edit"&&d(h),g==="remove"&&p(h)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-events-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{title:"组件事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.unref(s).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50,description:"该组件无自带事件"})),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`component_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:_=>d(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref(I),{title:"鼠标事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`mouse_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:_=>d(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref(I),{title:"键盘事件",class:"v-sub-panel",size:"small",grow:"",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`keyboard_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:_=>d(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),i.value?(e.openBlock(),e.createBlock(e.unref(Re),{key:0,modelValue:i.value,"onUpdate:modelValue":g[0]||(g[0]=h=>i.value=h),context:e.unref(n),current:e.unref(t),name:r.value.name,event:r.value.event,submitMethod:m,onUnbind:v},null,8,["modelValue","context","current","name","event"])):e.createCommentVNode("",!0)]),_:1}))}}),un=e.defineComponent({name:"CssWidget",__name:"index",setup(c){const{current:t}=W(),n=e.ref(),o=e.computed(()=>t.value?.css||""),l=s=>{t.value?.setCss(s)},a=()=>{const r=(n.value?.getEditor()).getValue();l(r),H("保存成功")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-css-widget v-sub-panel",title:"lang:css scoped",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"css",dark:"",onBlur:l},null,8,["model-value"])]),_:1}))}}),dn=e.defineComponent({name:"DirectivesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{vIf:l,vShow:a,vBind:s,vFor:r,vModels:i,onValueChange:d,onForChange:m,onModelChange:p}=bt(o),v=f=>f.arg?typeof f.arg=="string"?f.arg:D.parseExpression(f.arg,{}):"modelValue";return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-directives-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{class:"v-sub-panel",title:"内置指令",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px",onKeydown:u[0]||(u[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"vIf",label:"v-if",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(l).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"vShow",label:"v-show",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(a).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"vBind",label:"v-bind",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(s).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"循环",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px",onKeydown:u[1]||(u[1]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"value",label:"循环数据",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(r).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"item",label:"迭代变量名",setters:{name:"StringSetter",props:{placeholder:"item"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.item,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"index",label:"索引变量名",setters:{name:"StringSetter",props:{placeholder:"index"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.index,onChange:e.unref(m)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"双向绑定",size:"small",fit:!1,grow:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),(g,h)=>(e.openBlock(),e.createBlock(e.unref(I),{card:"",border:"",class:"v-sub-panel",size:"small",title:`v-model: ${v(g)}`,body:{grow:!1},fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"60px",onKeydown:u[2]||(u[2]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:h.toString(),label:"绑定变量",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:g.value,onChange:e.unref(p)},null,8,["name","current","context","value","onChange"])]),_:2},1024)]),_:2},1032,["title"]))),256)),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,description:"当前组件没有双向绑定属性","image-size":50}))]),_:1})]),_:1}))}}),mn=e.defineComponent({name:"DefinedPropsDialog",__name:"props",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义属性":"新增定义属性"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=Object.keys(D.DATA_TYPES).map(s=>({label:s,value:s})),a=async s=>{const r=s.default;return r&&!X(r,t.context,!0)?!1:(t.current.setProp(s),!0)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":a},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"type",label:"数据类型",editor:"checkbox",props:{button:!0,size:"small"},options:e.unref(l),required:""},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"required",label:"必须",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:o.value.default.value,"onUpdate:modelValue":r[0]||(r[0]=i=>o.value.default.value=i),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),pn=e.defineComponent({name:"DefinedEventsDialog",__name:"events",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义事件":"新增定义事件"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeEmit(t.item,!0),t.current.setEmit(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"事件名称",required:"",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),fn=e.defineComponent({name:"DefinedSlotsDialog",__name:"slots",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义插槽":"新增定义插槽"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeSlot(t.item,!0),t.current.setSlot(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"插槽名称",disabled:!!t.item,required:"",rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),vn=e.defineComponent({name:"DefinedInjectsDialog",__name:"injects",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑注入":"新增注入"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=async a=>{const s=a.default;return s&&!X(s,t.context,!0)?!1:(t.current.setInject(a),!0)};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"注入名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"from",label:"来源名称",tip:"默认和注入名称一致"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:o.value.default.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value.default.value=r),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),gn=e.defineComponent({name:"DefinedWidget",__name:"index",setup(c){const{current:t,context:n}=W(),o=e.computed(()=>(t.value?.props||[]).map(j=>typeof j=="string"?{name:j}:j)),l=e.computed(()=>t.value?.emits||[]),a=e.computed(()=>t.value?.slots||[]),s=e.computed(()=>t.value?.inject||[]),r=e.ref(!1),i=e.ref(),d=e.ref(!1),m=e.ref(),p=e.ref(!1),v=e.ref(),f=e.ref(!1),u=e.ref(),g=()=>{i.value=void 0,r.value=!0},h=j=>{const{name:P,modelValue:N}=j;P==="edit"&&_(N),P==="remove"&&t.value?.removeProp(N)},_=j=>{i.value=j,r.value=!0},C=()=>{m.value=void 0,d.value=!0},V=j=>{m.value=j,d.value=!0},S=j=>{const{name:P,modelValue:N}=j;P==="edit"&&V(N),P==="remove"&&t.value?.removeEmit(N)},B=()=>{v.value=void 0,p.value=!0},E=j=>{v.value=j,p.value=!0},x=j=>{const{name:P,modelValue:N}=j;P==="edit"&&E(N),P==="remove"&&t.value?.removeSlot(N)},J=()=>{u.value=void 0,f.value=!0},Z=j=>{u.value=j,f.value=!0},ne=j=>{const{name:P,modelValue:N}=j;P==="edit"&&Z(N),P==="remove"&&t.value?.removeInject(N)};return(j,P)=>e.unref(t)&&e.unref(n)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-defined-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义属性",size:"small",plus:"",fit:!1,onPlus:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N.name,border:"",actions:["edit","remove"],onClick:ae=>_(N),onAction:h},null,8,["model-value","title","onClick"]))),256)),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),r.value?(e.openBlock(),e.createBlock(mn,{key:1,current:e.unref(t),context:e.unref(n),modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=N=>r.value=N),item:i.value},null,8,["current","context","modelValue","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义事件",size:"small",plus:"",fit:!1,onPlus:C},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N,border:"",actions:["remove"],onClick:ae=>V(N),onAction:S},null,8,["model-value","title","onClick"]))),256)),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),d.value?(e.openBlock(),e.createBlock(pn,{key:1,modelValue:d.value,"onUpdate:modelValue":P[1]||(P[1]=N=>d.value=N),current:e.unref(t),context:e.unref(n),item:m.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义插槽",size:"small",plus:"",fit:!1,onPlus:B},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N,border:"",actions:["remove"],onClick:ae=>E(N),onAction:x},null,8,["model-value","title","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),p.value?(e.openBlock(),e.createBlock(fn,{key:1,modelValue:p.value,"onUpdate:modelValue":P[2]||(P[2]=N=>p.value=N),current:e.unref(t),context:e.unref(n),item:v.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"注入",size:"small",plus:"",fit:!1,grow:"",onPlus:J},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N.name,border:"",actions:["remove"],onClick:ae=>Z(N),onAction:ne},null,8,["model-value","title","onClick"]))),256)),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),f.value?(e.openBlock(),e.createBlock(vn,{key:1,modelValue:f.value,"onUpdate:modelValue":P[3]||(P[3]=N=>f.value=N),current:e.unref(t),context:e.unref(n),item:u.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)}}),hn=e.defineComponent({name:"DataSourceDialogForm",__name:"form",props:{context:{},current:{},item:{}},setup(c){const t=c,{apis:n}=kt(),o=()=>({type:"api",ref:"",name:"",label:"",transform:{type:"JSFunction",value:`(res) => {
|
|
11
11
|
/* 在这里可对接口返回数据进行转换 */
|
|
12
12
|
return res;
|
|
13
13
|
}`},test:{type:"JSFunction",value:`() => this.runApi({
|
|
14
14
|
/* 在这里可输入接口参数 */
|
|
15
|
-
})`}}),l=e.ref(Object.assign(o(),t.item)),a=e.ref(!1),s=e.ref(""),r=e.ref(!1),i=e.computed(()=>n.value.map(f=>({label:f.label||"",value:f.id,data:f}))),m=e.computed(()=>t.item?"编辑数据源":"新增数据源"),d=f=>{const u=n.value.find(g=>g.id===f);u&&(l.value.name=u.name,l.value.label=u.label||"")},p=async f=>{const{transform:u,test:g,name:h}=f;if(!t.current)return!1;if(!t.item&&t.current.dataSources[h])return L(`名称【${h}】已经存在,请更换名称`),!1;if(u?.value){if(!X(u,t.context,!0))return!1}else f.transform=void 0;if(g?.value){if(!X(g,t.context,!0))return!1}else f.test=void 0;return t.current?.setDataSource(f),!0},v=async()=>{if(!t.context)return;if(!l.value.ref){L("请先选择API");return}if(!l.value.test?.value){L("请先填写测试用例");return}if(!X(l.value.test,t.context,!0))return;const u=async(..._)=>{const C=t.context?.$apis[l.value.ref];if(C)return await C.apply(C,_);F.logger.warn(`API【${l.value.ref}】不存在`)},g=D.parseExpression(l.value.test,{runApi:u}),h=l.value.transform?.value?D.parseExpression(l.value.transform,{},!0):_=>_;a.value=!0;try{const _=await g();s.value=JSON.stringify(await h(_),null,2)}catch(_){F.logger.error(_)}a.value=!1,r.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{width:"1000px",height:"600px",title:m.value,model:l.value,"form-props":{tooltipMessage:!1},"submit-method":p},{extra:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{loading:a.value,type:"warning",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 运行测试用例 ")]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"ref",label:"引用API",editor:"select",required:"",disabled:!!t.item,options:i.value,props:{filterable:!0},onChange:d},{option:e.withCtx(({option:g})=>[e.createTextVNode(e.toDisplayString(g.data.label)+" ",1),e.createElementVNode("i",null,"[ "+e.toDisplayString(g.data.name)+" ]",1)]),_:1},8,["disabled","options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"调用名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"transform.value",label:"转换函数",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:l.value.transform.value,"onUpdate:modelValue":u[0]||(u[0]=g=>l.value.transform.value=g),height:"200px",dark:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{name:"test.value",label:"测试用例",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:l.value.test.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value.test.value=g),height:"100px",dark:""},null,8,["modelValue"])]),_:1}),r.value?(e.openBlock(),e.createBlock(e.unref(y.ElDrawer),{key:0,class:"v-drawer",modelValue:r.value,"onUpdate:modelValue":u[2]||(u[2]=g=>r.value=g),title:"测试用例运行结果",direction:"btt","append-to-body":"",size:"80%"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{"model-value":s.value,border:"",dark:"",height:"100%",lang:"json"},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]),_:1},8,["title","model"]))}}),bn=e.defineComponent({name:"DataSourcesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),o=e.ref(!1),l=e.ref(),a=e.computed(()=>Object.values(t.value?.dataSources||{}).filter(m=>m.type==="api")),s=()=>{l.value=void 0,o.value=!0},r=m=>{l.value=m,o.value=!0},i=m=>{const{name:d,modelValue:p}=m;d==="edit"&&r(p),d==="remove"&&t.value?.removeDataSource(p.name)};return(m,d)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-data-sources-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref($),{title:"API",class:"v-sub-panel",size:"small",plus:"",onPlus:s},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,p=>(e.openBlock(),e.createBlock(e.unref(O),{border:"",title:p.name,subtitle:p.label,"model-value":p,actions:["edit","remove"],onAction:i,onClick:v=>r(p)},null,8,["title","subtitle","model-value","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50}))]),_:1}),o.value?(e.openBlock(),e.createBlock(hn,{key:0,modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=p=>o.value=p),current:e.unref(t),context:e.unref(n),item:l.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}))}}),kn=e.defineComponent({__name:"layout",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref();e.watch(()=>t.styleJson.display,m=>{n.value=m==="flex"},{immediate:!0});const o=[{label:"block-块级布局",value:"block",svg:k.IconDisplayBlock},{label:"flex-弹性布局",value:"flex",svg:k.IconDisplayFlex},{label:"inline-block-行内块级布局",value:"inline-block",svg:k.IconDisplayInlineBlock},{label:"inline-行内布局",value:"inline",svg:k.IconDisplayInline},{label:"invisible-不可见",value:"none",svg:k.IconEyeInvisible}],l=[{label:"row-水平",value:"row",svg:k.IconFlexDirectionrow},{label:"row-reverse-水平",value:"row-reverse",svg:k.IconFlexDirectionrowReverse},{label:"column-垂直",value:"column",svg:k.IconFlexDirectioncolumn},{label:"column-reverse-垂直",value:"column-reverse",svg:k.IconFlexDirectioncolumnReverse}],a=[{label:"flex-start",value:"flex-start",svg:k.IconFlexJustifyflexStartrow},{label:"flex-end",value:"flex-end",svg:k.IconFlexJustifyflexEndrow},{label:"center",value:"center",svg:k.IconFlexJustifycenterrow},{label:"space-between",value:"space-between",svg:k.IconFlexJustifyspaceBetweenrow},{label:"space-around",value:"space-around",svg:k.IconFlexJustifyspaceAroundrow}],s=[{label:"不换行",value:"nowrap"},{label:"正换行",value:"wrap"},{label:"逆换行",value:"wrap-reverse"}],r=[{label:"flex-start",value:"flex-start",svg:k.IconFlexAlignflexStartrow},{label:"flex-end",value:"flex-end",svg:k.IconFlexAlignflexEndrow},{label:"center",value:"center",svg:k.IconFlexAligncenterrow},{label:"baseline",value:"baseline",svg:k.IconFlexAlignbaselinerow},{label:"stretch",value:"stretch",svg:k.IconFlexAlignstretchrow}],i=(m,d)=>{n.value=d==="flex",t.setStyle("display",d),n.value||(t.setStyle("flex-direction",void 0),t.setStyle("justify-content",void 0),t.setStyle("align-items",void 0),t.setStyle("flex-wrap",void 0))};return(m,d)=>(e.openBlock(),e.createBlock(e.unref($),{title:"布局",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:"display",label:"排布",setters:{name:"TagSetter"},options:o,variable:!1,value:t.styleJson.display,onChange:i},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref(N),{name:"flex-direction",label:"主轴方向",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson["flex-direction"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"justify-content",label:"主轴对齐",setters:{name:"TagSetter"},options:a,variable:!1,value:t.styleJson["justify-content"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"align-items",label:"辅轴对齐",setters:{name:"TagSetter"},options:r,variable:!1,value:t.styleJson["align-items"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"flex-wrap",label:"换行模式",setters:{name:"TagSetter"},options:s,variable:!1,value:t.styleJson["flex-wrap"],onChange:t.setStyle},null,8,["value","onChange"])],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),yn=e.defineComponent({name:"StyleWidget",__name:"JsonMode",setup(c){const{selected:t}=Y(),n=e.ref(),o=e.computed(()=>{const r=t.value?.model||null;return w.isBlock(r)?null:r}),l=e.computed(()=>JSON.stringify(o.value?.getPropValue("style")||{},null,2)),a=r=>{try{const i=JSON.parse(r);o.value?.setProp("style",i)}catch{L("JSON格式错误")}},s=()=>{const i=(n.value?.getEditor()).getValue();a(i),H("保存成功")};return(r,i)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-css-widget v-sub-panel",title:"JSON",size:"small",fit:"",save:"",onSave:s},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":l.value,height:"100%",lang:"json",dark:"",onBlur:a},null,8,["model-value"])]),_:1}))}}),_n={class:"v-spacing-input"},Cn=e.createElementVNode("div",{class:"v-spacing-input__modal"},null,-1),wn={class:"v-spacing-input__content"},Vn=["onClick"],ze=e.defineComponent({__name:"spacing-input",props:{name:{},modelValue:{},auto:{type:Boolean}},emits:["close","update:modelValue","submit"],setup(c,{emit:t}){const n=[0,10,20,40,60,100,140,220],o=c,l=t,a=e.computed(()=>o.auto||o.name.includes("margin")),s=e.ref(),r=e.ref(o.modelValue),i=e.ref("px");le.onClickOutside(s,()=>{l("close")});const m=f=>{r.value=typeof f=="number"?`${f}px`:"auto",d(r.value)},d=f=>{i.value=f==="auto"?void 0:"px"},p=()=>{r.value?(l("update:modelValue",r.value),l("submit",o.name,r.value),l("close")):L("请输入有效值","提示")},v=()=>{r.value=void 0,l("update:modelValue",r.value),l("submit",o.name,void 0),l("close")};return(f,u)=>(e.openBlock(),e.createElementBlock("div",_n,[Cn,e.createElementVNode("div",wn,[e.createVNode(e.unref(b.XContainer),{class:"v-spacing-input__body",ref_key:"bodyRef",ref:s,direction:"column"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.XInputUnit),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=g=>r.value=g),size:"small","with-unit":!!i.value,unit:i.value,format:i.value?"0":void 0,onChange:d},null,8,["modelValue","with-unit","unit","format"])]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-spacing-input__auto",width:"20%"},{default:e.withCtx(()=>[e.createElementVNode("span",{onClick:u[1]||(u[1]=g=>m("auto"))},"auto")]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XContainer),{grow:"",class:"v-spacing-input__values",align:"center",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,g=>e.createElementVNode("span",{onClick:h=>m(g)},e.toDisplayString(g),9,Vn)),64))]),_:1})]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{size:"small",type:"primary",round:"",style:{width:"100%"},onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1}),e.createVNode(e.unref(y.ElButton),{size:"small",round:"",style:{width:"100%"},onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 重置 ")]),_:1})]),_:1})]),_:1},512)])]))}}),Bn={class:"spacing-wrap"},xn={class:"spacing-max-icon"},Sn=["width","height"],En=["d"],Nn=["d"],$n=["d"],In=["d"],Dn={id:"margin-outer"},jn=["width","height"],An=["width","height"],Fn={id:"margin-inner"},Pn=["width","height"],Tn=["width","height"],Rn=["width","height"],zn=["d"],Jn=["d"],Ln=["d"],Mn=["d"],On={id:"padding-outer"},Xn=["width","height"],Wn=["width","height"],Un={id:"padding-inner"},Hn=["width","height"],qn=["width","height"],Gn={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"3 / 3 / span 3 / span 3","pointer-events":"none"}},Kn=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," padding ",-1),Zn=[Kn],Qn={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"1 / 1 / -1 / -1","pointer-events":"none"}},Yn=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," margin ",-1),eo=[Yn],T=36,R=24,to=e.defineComponent({__name:"spacing",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{width:s,height:r}=le.useElementSize(o),i=e.ref(!1),m=e.ref(),d=e.ref(),p=()=>{i.value=!1,m.value=void 0,d.value=void 0},v=f=>{m.value=f,d.value=t.styleJson[f],i.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref($),{title:"间距",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"v-style-widget__spacing",ref_key:"container",ref:n},[e.createElementVNode("div",Bn,[e.createElementVNode("div",xn,[e.unref(l)&&e.unref(a)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(l),height:e.unref(a),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
|
|
15
|
+
})`}}),l=e.ref(Object.assign(o(),t.item)),a=e.ref(!1),s=e.ref(""),r=e.ref(!1),i=e.computed(()=>n.value.map(f=>({label:f.label||"",value:f.id,data:f}))),d=e.computed(()=>t.item?"编辑数据源":"新增数据源"),m=f=>{const u=n.value.find(g=>g.id===f);u&&(l.value.name=u.name,l.value.label=u.label||"")},p=async f=>{const{transform:u,test:g,name:h}=f;if(!t.current)return!1;if(!t.item&&t.current.dataSources[h])return L(`名称【${h}】已经存在,请更换名称`),!1;if(u?.value){if(!X(u,t.context,!0))return!1}else f.transform=void 0;if(g?.value){if(!X(g,t.context,!0))return!1}else f.test=void 0;return t.current?.setDataSource(f),!0},v=async()=>{if(!t.context)return;if(!l.value.ref){L("请先选择API");return}if(!l.value.test?.value){L("请先填写测试用例");return}if(!X(l.value.test,t.context,!0))return;const u=async(..._)=>{const C=t.context?.$apis[l.value.ref];if(C)return await C.apply(C,_);F.logger.warn(`API【${l.value.ref}】不存在`)},g=D.parseExpression(l.value.test,{runApi:u}),h=l.value.transform?.value?D.parseExpression(l.value.transform,{},!0):_=>_;a.value=!0;try{const _=await g();s.value=JSON.stringify(await h(_),null,2)}catch(_){F.logger.error(_)}a.value=!1,r.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{width:"1000px",height:"600px",title:d.value,model:l.value,"form-props":{tooltipMessage:!1},"submit-method":p},{extra:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{loading:a.value,type:"warning",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 运行测试用例 ")]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"ref",label:"引用API",editor:"select",required:"",disabled:!!t.item,options:i.value,props:{filterable:!0},onChange:m},{option:e.withCtx(({option:g})=>[e.createTextVNode(e.toDisplayString(g.data.label)+" ",1),e.createElementVNode("i",null,"[ "+e.toDisplayString(g.data.name)+" ]",1)]),_:1},8,["disabled","options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"调用名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"transform.value",label:"转换函数",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:l.value.transform.value,"onUpdate:modelValue":u[0]||(u[0]=g=>l.value.transform.value=g),height:"200px",dark:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{name:"test.value",label:"测试用例",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:l.value.test.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value.test.value=g),height:"100px",dark:""},null,8,["modelValue"])]),_:1}),r.value?(e.openBlock(),e.createBlock(e.unref(y.ElDrawer),{key:0,class:"v-drawer",modelValue:r.value,"onUpdate:modelValue":u[2]||(u[2]=g=>r.value=g),title:"测试用例运行结果",direction:"btt","append-to-body":"",size:"80%"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{"model-value":s.value,border:"",dark:"",height:"100%",lang:"json"},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]),_:1},8,["title","model"]))}}),bn=e.defineComponent({name:"DataSourcesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),o=e.ref(!1),l=e.ref(),a=e.computed(()=>Object.values(t.value?.dataSources||{}).filter(d=>d.type==="api")),s=()=>{l.value=void 0,o.value=!0},r=d=>{l.value=d,o.value=!0},i=d=>{const{name:m,modelValue:p}=d;m==="edit"&&r(p),m==="remove"&&t.value?.removeDataSource(p.name)};return(d,m)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-data-sources-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{title:"API",class:"v-sub-panel",size:"small",plus:"",onPlus:s},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,p=>(e.openBlock(),e.createBlock(e.unref(O),{border:"",title:p.name,subtitle:p.label,"model-value":p,actions:["edit","remove"],onAction:i,onClick:v=>r(p)},null,8,["title","subtitle","model-value","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50}))]),_:1}),o.value?(e.openBlock(),e.createBlock(hn,{key:0,modelValue:o.value,"onUpdate:modelValue":m[0]||(m[0]=p=>o.value=p),current:e.unref(t),context:e.unref(n),item:l.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}))}}),kn=e.defineComponent({__name:"layout",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref();e.watch(()=>t.styleJson.display,d=>{n.value=d==="flex"},{immediate:!0});const o=[{label:"block-块级布局",value:"block",svg:k.IconDisplayBlock},{label:"flex-弹性布局",value:"flex",svg:k.IconDisplayFlex},{label:"inline-block-行内块级布局",value:"inline-block",svg:k.IconDisplayInlineBlock},{label:"inline-行内布局",value:"inline",svg:k.IconDisplayInline},{label:"invisible-不可见",value:"none",svg:k.IconEyeInvisible}],l=[{label:"row-水平",value:"row",svg:k.IconFlexDirectionrow},{label:"row-reverse-水平",value:"row-reverse",svg:k.IconFlexDirectionrowReverse},{label:"column-垂直",value:"column",svg:k.IconFlexDirectioncolumn},{label:"column-reverse-垂直",value:"column-reverse",svg:k.IconFlexDirectioncolumnReverse}],a=[{label:"flex-start",value:"flex-start",svg:k.IconFlexJustifyflexStartrow},{label:"flex-end",value:"flex-end",svg:k.IconFlexJustifyflexEndrow},{label:"center",value:"center",svg:k.IconFlexJustifycenterrow},{label:"space-between",value:"space-between",svg:k.IconFlexJustifyspaceBetweenrow},{label:"space-around",value:"space-around",svg:k.IconFlexJustifyspaceAroundrow}],s=[{label:"不换行",value:"nowrap"},{label:"正换行",value:"wrap"},{label:"逆换行",value:"wrap-reverse"}],r=[{label:"flex-start",value:"flex-start",svg:k.IconFlexAlignflexStartrow},{label:"flex-end",value:"flex-end",svg:k.IconFlexAlignflexEndrow},{label:"center",value:"center",svg:k.IconFlexAligncenterrow},{label:"baseline",value:"baseline",svg:k.IconFlexAlignbaselinerow},{label:"stretch",value:"stretch",svg:k.IconFlexAlignstretchrow}],i=(d,m)=>{n.value=m==="flex",t.setStyle("display",m),n.value||(t.setStyle("flex-direction",void 0),t.setStyle("justify-content",void 0),t.setStyle("align-items",void 0),t.setStyle("flex-wrap",void 0))};return(d,m)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"布局",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"display",label:"排布",setters:{name:"TagSetter"},options:o,variable:!1,value:t.styleJson.display,onChange:i},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref($),{name:"flex-direction",label:"主轴方向",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson["flex-direction"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"justify-content",label:"主轴对齐",setters:{name:"TagSetter"},options:a,variable:!1,value:t.styleJson["justify-content"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"align-items",label:"辅轴对齐",setters:{name:"TagSetter"},options:r,variable:!1,value:t.styleJson["align-items"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"flex-wrap",label:"换行模式",setters:{name:"TagSetter"},options:s,variable:!1,value:t.styleJson["flex-wrap"],onChange:t.setStyle},null,8,["value","onChange"])],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),yn=e.defineComponent({name:"StyleWidget",__name:"JsonMode",setup(c){const{selected:t}=Y(),n=e.ref(),o=e.computed(()=>{const r=t.value?.model||null;return w.isBlock(r)?null:r}),l=e.computed(()=>JSON.stringify(o.value?.getPropValue("style")||{},null,2)),a=r=>{try{const i=JSON.parse(r);o.value?.setProp("style",i)}catch{L("JSON格式错误")}},s=()=>{const i=(n.value?.getEditor()).getValue();a(i),H("保存成功")};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-css-widget v-sub-panel",title:"JSON",size:"small",fit:"",save:"",onSave:s},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":l.value,height:"100%",lang:"json",dark:"",onBlur:a},null,8,["model-value"])]),_:1}))}}),_n={class:"v-spacing-input"},Cn=e.createElementVNode("div",{class:"v-spacing-input__modal"},null,-1),wn={class:"v-spacing-input__content"},Vn=["onClick"],ze=e.defineComponent({__name:"spacing-input",props:{name:{},modelValue:{},auto:{type:Boolean}},emits:["close","update:modelValue","submit"],setup(c,{emit:t}){const n=[0,10,20,40,60,100,140,220],o=c,l=t,a=e.computed(()=>o.auto||o.name.includes("margin")),s=e.ref(),r=e.ref(o.modelValue),i=e.ref("px");le.onClickOutside(s,()=>{l("close")});const d=f=>{r.value=typeof f=="number"?`${f}px`:"auto",m(r.value)},m=f=>{i.value=f==="auto"?void 0:"px"},p=()=>{r.value?(l("update:modelValue",r.value),l("submit",o.name,r.value),l("close")):L("请输入有效值","提示")},v=()=>{r.value=void 0,l("update:modelValue",r.value),l("submit",o.name,void 0),l("close")};return(f,u)=>(e.openBlock(),e.createElementBlock("div",_n,[Cn,e.createElementVNode("div",wn,[e.createVNode(e.unref(b.XContainer),{class:"v-spacing-input__body",ref_key:"bodyRef",ref:s,direction:"column"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.XInputUnit),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=g=>r.value=g),size:"small","with-unit":!!i.value,unit:i.value,format:i.value?"0":void 0,onChange:m},null,8,["modelValue","with-unit","unit","format"])]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-spacing-input__auto",width:"20%"},{default:e.withCtx(()=>[e.createElementVNode("span",{onClick:u[1]||(u[1]=g=>d("auto"))},"auto")]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XContainer),{grow:"",class:"v-spacing-input__values",align:"center",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,g=>e.createElementVNode("span",{onClick:h=>d(g)},e.toDisplayString(g),9,Vn)),64))]),_:1})]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{size:"small",type:"primary",round:"",style:{width:"100%"},onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1}),e.createVNode(e.unref(y.ElButton),{size:"small",round:"",style:{width:"100%"},onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 重置 ")]),_:1})]),_:1})]),_:1},512)])]))}}),Bn={class:"spacing-wrap"},xn={class:"spacing-max-icon"},Sn=["width","height"],En=["d"],Nn=["d"],$n=["d"],In=["d"],Dn={id:"margin-outer"},jn=["width","height"],An=["width","height"],Fn={id:"margin-inner"},Pn=["width","height"],Tn=["width","height"],Rn=["width","height"],zn=["d"],Jn=["d"],Ln=["d"],Mn=["d"],On={id:"padding-outer"},Xn=["width","height"],Wn=["width","height"],Un={id:"padding-inner"},Hn=["width","height"],qn=["width","height"],Gn={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"3 / 3 / span 3 / span 3","pointer-events":"none"}},Kn=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," padding ",-1),Zn=[Kn],Qn={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"1 / 1 / -1 / -1","pointer-events":"none"}},Yn=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," margin ",-1),eo=[Yn],T=36,R=24,to=e.defineComponent({__name:"spacing",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{width:s,height:r}=le.useElementSize(o),i=e.ref(!1),d=e.ref(),m=e.ref(),p=()=>{i.value=!1,d.value=void 0,m.value=void 0},v=f=>{d.value=f,m.value=t.styleJson[f],i.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"间距",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"v-style-widget__spacing",ref_key:"container",ref:n},[e.createElementVNode("div",Bn,[e.createElementVNode("div",xn,[e.unref(l)&&e.unref(a)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(l),height:e.unref(a),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
|
|
16
16
|
m1,1
|
|
17
17
|
h${e.unref(l)-1}
|
|
18
18
|
l-${T},${R}
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
v${e.unref(r)-1}
|
|
53
53
|
l${T},-${R}
|
|
54
54
|
v-${e.unref(r)-2*R}
|
|
55
|
-
l-${T},-${R}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[11]||(u[11]=g=>v("padding-left"))},null,8,Mn)])]),e.createElementVNode("clipPath",On,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Xn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-outer)",x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,Wn),e.createElementVNode("clipPath",Un,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(s)-2*T+1,height:e.unref(r)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Hn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-inner)",x:"36",y:"24",width:e.unref(s)-2*T+1,height:e.unref(r)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,qn)],8,Rn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson["padding-top"]}]),onClick:u[12]||(u[12]=g=>v("padding-top"))},e.toDisplayString(t.styleJson["padding-top"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson["padding-right"]}]),onClick:u[13]||(u[13]=g=>v("padding-right"))},e.toDisplayString(t.styleJson["padding-right"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson["padding-bottom"]}]),onClick:u[14]||(u[14]=g=>v("padding-bottom"))},e.toDisplayString(t.styleJson["padding-bottom"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson["padding-left"]}]),onClick:u[15]||(u[15]=g=>v("padding-left"))},e.toDisplayString(t.styleJson["padding-left"]||"-"),3)],512),(e.openBlock(),e.createElementBlock("svg",Gn,Zn)),(e.openBlock(),e.createElementBlock("svg",Qn,eo))]),i.value?(e.openBlock(),e.createBlock(ze,{key:0,name:
|
|
55
|
+
l-${T},-${R}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[11]||(u[11]=g=>v("padding-left"))},null,8,Mn)])]),e.createElementVNode("clipPath",On,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Xn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-outer)",x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,Wn),e.createElementVNode("clipPath",Un,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(s)-2*T+1,height:e.unref(r)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Hn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-inner)",x:"36",y:"24",width:e.unref(s)-2*T+1,height:e.unref(r)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,qn)],8,Rn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson["padding-top"]}]),onClick:u[12]||(u[12]=g=>v("padding-top"))},e.toDisplayString(t.styleJson["padding-top"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson["padding-right"]}]),onClick:u[13]||(u[13]=g=>v("padding-right"))},e.toDisplayString(t.styleJson["padding-right"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson["padding-bottom"]}]),onClick:u[14]||(u[14]=g=>v("padding-bottom"))},e.toDisplayString(t.styleJson["padding-bottom"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson["padding-left"]}]),onClick:u[15]||(u[15]=g=>v("padding-left"))},e.toDisplayString(t.styleJson["padding-left"]||"-"),3)],512),(e.openBlock(),e.createElementBlock("svg",Gn,Zn)),(e.openBlock(),e.createElementBlock("svg",Qn,eo))]),i.value?(e.openBlock(),e.createBlock(ze,{key:0,name:d.value,modelValue:m.value,"onUpdate:modelValue":u[16]||(u[16]=g=>m.value=g),onClose:p,onSubmit:t.setStyle},null,8,["name","modelValue","onSubmit"])):e.createCommentVNode("",!0)],512)]),_:1}))}}),no=e.defineComponent({__name:"sizing",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,l=[{name:"width",label:"宽(W)",setter:"SizeSetter"},{name:"height",label:"高(H)",setter:"SizeSetter"},{name:"min-width",label:"最小宽",setter:"SizeSetter"},{name:"min-height",label:"最小高",setter:"SizeSetter"},{name:"max-width",label:"最大宽",setter:"SizeSetter"},{name:"max-height",label:"最大高",setter:"SizeSetter"},{name:"overflow",label:"溢出",setter:"SelectSetter",options:[{label:"自动",value:"auto"},{label:"隐藏",value:"hidden"},{label:"滚动",value:"scroll"},{label:"显示",value:"visible"}]},{name:"object-fit",label:"适应",setter:"SelectSetter",options:[{label:"填充",value:"fill"},{label:"适应",value:"contain"},{label:"覆盖",value:"cover"},{label:"拉伸",value:"scale-down"},{label:"原始",value:"none"}]}];return(a,s)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"尺寸",class:"v-sub-panel v-",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-style-widget__sizing",size:"small","label-width":"60px",inline:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,r=>e.createVNode(e.unref($),{name:r.name,label:r.label,setters:{name:r.setter},options:r.options,variable:!1,value:t.styleJson[r.name],onChange:a.setStyle},null,8,["name","label","setters","options","value","onChange"])),64))]),_:1})]),_:1}))}}),oo={class:"v-style-widget__positioning"},lo={class:"spacing-wrap"},ro=["width","height"],ao=["d"],so=["d"],io=["d"],co=["d"],uo={id:"margin-outer"},mo=["width","height"],po=["width","height"],fo={id:"margin-inner"},vo=["width","height"],go=["width","height"],q=36,G=24,ho=e.defineComponent({__name:"positioning",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref(),{width:o,height:l}=le.useElementSize(n),a=e.ref(!1),s=e.ref(),r=e.ref(),i=[{label:"静态",value:"static"},{label:"相对",value:"relative"},{label:"绝对",value:"absolute"},{label:"固定",value:"fixed"},{label:"粘性",value:"sticky"}],d=[{label:"左上",svg:k.IconPositionTopLeft,value:"0% auto auto 0%"},{label:"右上",svg:k.IconPositionTopRight,value:"0% 0% auto auto"},{label:"左下",svg:k.IconPositionBottomLeft,value:"auto auto 0% 0%"},{label:"右下",svg:k.IconPositionBottomRight,value:"auto 0% 0% auto"},{label:"左",svg:k.IconPositionLeft,value:"0% auto 0% 0%"},{label:"右",svg:k.IconPositionRight,value:"0% 0% 0% auto"},{label:"上",svg:k.IconPositionTop,value:"auto 0% 0% 0%"},{label:"下",svg:k.IconPositionBottom,value:"0% 0% auto 0%"},{label:"填充",svg:k.IconPositionAll,value:"0% 0% 0% 0%"}],m=e.computed(()=>(t.styleJson.inset||"").split(" ")),p=f=>{s.value=f,r.value=t.styleJson[f],a.value=!0},v=()=>{a.value=!1,s.value=void 0,r.value=void 0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"定位",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createElementVNode("div",oo,[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"position",label:"定位",setters:{name:"SelectSetter"},options:i,variable:!1,value:t.styleJson.position,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"inset",label:" ",setters:{name:"TagSetter"},options:d,variable:!1,value:t.styleJson.inset,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(y.ElFormItem),{label:" "},{default:e.withCtx(()=>[e.createElementVNode("div",lo,[e.createElementVNode("div",{ref_key:"inner",ref:n,class:"spacing-min-icon"},[e.unref(o)&&e.unref(o)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(o),height:e.unref(l),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
|
|
56
56
|
m1,1
|
|
57
57
|
h${e.unref(o)-1}
|
|
58
58
|
l-${q},${G}
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
v${e.unref(l)-1}
|
|
73
73
|
l${q},-${G}
|
|
74
74
|
v-${e.unref(l)-2*G}
|
|
75
|
-
l-${q},-${G}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[3]||(u[3]=g=>p("left"))},null,8,co)])]),e.createElementVNode("clipPath",uo,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,mo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-outer)",x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,po),e.createElementVNode("clipPath",fo,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(o)-2*q+1,height:e.unref(l)-2*G+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,vo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-inner)",x:"36",y:"24",width:e.unref(o)-2*q+1,height:e.unref(l)-2*G+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,go)],8,ro)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson.top}]),onClick:u[4]||(u[4]=g=>p("top"))},e.toDisplayString(t.styleJson.top||d.value[0]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson.right}]),onClick:u[5]||(u[5]=g=>p("right"))},e.toDisplayString(t.styleJson.right||d.value[1]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson.bottom}]),onClick:u[6]||(u[6]=g=>p("bottom"))},e.toDisplayString(t.styleJson.bottom||d.value[2]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson.left}]),onClick:u[7]||(u[7]=g=>p("left"))},e.toDisplayString(t.styleJson.left||d.value[3]||"-"),3)],512),a.value?(e.openBlock(),e.createBlock(ze,{key:0,auto:"",name:s.value,modelValue:r.value,"onUpdate:modelValue":u[8]||(u[8]=g=>r.value=g),onClose:v,onSubmit:t.setStyle},null,8,["name","modelValue","onSubmit"])):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(e.unref(N),{name:"z-index",label:"层级",setters:{name:"NumberSetter"},variable:!1,value:t.styleJson["z-index"],onChange:t.setStyle},null,8,["value","onChange"])]),_:1})])]),_:1}))}}),bo=e.defineComponent({__name:"texting",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{name:"font-size",label:"字号",setter:"SizeSetter"},{name:"font-family",label:"字体",setter:"SelectSetter",options:["Arial","Verdana","Georgia",'"Times New Roman"','"Microsoft YaHei"',"SimSun","SimHei","KaiTi","FangSong","STSong","STKaiti","STFangsong","STCaiyun","STHupo","STLiti","STXingkai","STXinwei","STXinwei","STZhongsong"]},{name:"line-height",label:"行高",setter:"SizeSetter"},{name:"font-weight",label:"字重",setter:"SelectSetter",options:[{label:"正常",value:"normal"},{label:"粗体",value:"bold"},{label:"更粗",value:"bolder"},{label:"更细",value:"lighter"}]}],o=[{label:"左",value:"left",svg:k.IconTextAlignLeft},{label:"中",value:"center",svg:k.IconTextAlignCenter},{label:"右",value:"right",svg:k.IconTextAlignRight},{label:"两端",value:"justify",svg:k.IconTextAlignJustify}],l=[{label:"正常",value:"normal",svg:k.IconFontStyleNone},{label:"斜体",value:"italic",svg:k.IconFontStyleItalic}],a=[{label:"无",value:"none",svg:k.IconCross},{label:"下划线",value:"underline",svg:k.IconTextDecorationUnderline},{label:"删除线",value:"line-through",svg:k.IconTextDecorationStrike},{label:"上划线",value:"overline",svg:k.IconTextDecorationOverline}];return(s,r)=>(e.openBlock(),e.createBlock(e.unref($),{title:"文本",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-style-widget__texting",size:"small","label-width":"60px",inline:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,i=>e.createVNode(e.unref(N),{name:i.name,label:i.label,setters:{name:i.setter},options:i.options,variable:!1,value:t.styleJson[i.name],onChange:s.setStyle},null,8,["name","label","setters","options","value","onChange"])),64))]),_:1}),e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"60px"},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:"color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson.color,onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"text-align",label:"对齐",setters:{name:"TagSetter"},variable:!1,options:o,value:t.styleJson["text-align"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"font-style",label:"风格",setters:{name:"TagSetter"},variable:!1,options:l,value:t.styleJson["font-style"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"text-decoration",label:"修饰",setters:{name:"TagSetter"},variable:!1,options:a,value:t.styleJson["text-decoration"],onChange:s.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),ko=e.defineComponent({__name:"backgound",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=(i,m)=>{m?t.setStyle("background-image",`url(${m})`):t.setStyle("background-image",void 0)},o=i=>{const m=/^url\(([\w\W]+)\)$/;return i?.match(m)?.[1]},l=[{label:"重复",value:"repeat",svg:k.IconTileXy},{label:"水平重复",value:"repeat-x",svg:k.IconTileX},{label:"垂直重复",value:"repeat-y",svg:k.IconTileY},{label:"不重复",value:"no-repeat",svg:k.IconClose}],a=[{label:"固定",value:"fixed"},{label:"滚动",value:"scroll"}],s=[{label:"裁剪到填充",value:"padding-box"},{label:"裁剪到内容",value:"content-box"},{label:"裁剪到文字",value:"text"}],r=[{label:"自动",value:"auto"},{label:"长度",value:"length"},{label:"百分比",value:"percentage"},{label:"覆盖",value:"cover"},{label:"填充",value:"contain"}];return(i,m)=>(e.openBlock(),e.createBlock(e.unref($),{title:"背景",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:"background-image",label:"图片",setters:{name:"ImageSetter"},variable:!1,value:o(t.styleJson["background-image"]),onChange:n},null,8,["value"]),e.createVNode(e.unref(N),{name:"background-color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson["background-color"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"background-repeat",label:"重复",setters:{name:"TagSetter"},variable:!1,value:t.styleJson["background-repeat"],options:l,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"background-attachment",label:"固定",setters:{name:"RadioSetter"},variable:!1,value:t.styleJson["background-attachment"],options:a,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"background-position",label:"位置",setters:{name:"SectionSetter",props:{sections:2}},variable:!1,value:t.styleJson["background-position"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"background-size",label:"大小",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-size"],options:r,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"background-clip",label:"裁剪",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-clip"],options:s,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),yo=e.defineComponent({__name:"border",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref("border"),o=[{label:"全边框",svg:k.IconBorderAll,value:"border"},{label:"左边框",svg:k.IconBorderLeft,value:"border-left"},{label:"上边框",svg:k.IconBorderTop,value:"border-top"},{label:"下边框",svg:k.IconBorderBottom,value:"border-bottom"},{label:"右边框",svg:k.IconBorderRight,value:"border-right"}],l=[{label:"无",value:"none",svg:k.IconCross},{label:"实线",value:"solid",svg:k.IconBorderStyleSolid},{label:"虚线",value:"dashed",svg:k.IconBorderStyleDashed},{label:"点线",value:"dotted",svg:k.IconBorderStyleDotted}],a=(s,r)=>{n.value=r};return(s,r)=>(e.openBlock(),e.createBlock(e.unref($),{title:"边框",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:"border-radius",label:"圆角",setters:{name:"SectionSetter",props:{sections:4}},variable:!1,value:t.styleJson["border-radius"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"borders",label:"边框",setters:{name:"TagSetter"},variable:!1,options:o,value:n.value,onChange:a},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(),e.createBlock(e.unref(N),{name:`${n.value}-width`,key:`${n.value}-width`,label:"宽度",setters:{name:"SizeSetter"},variable:!1,value:t.styleJson[`${n.value}-width`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref(N),{name:`${n.value}-style`,key:`${n.value}-style`,label:"样式",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson[`${n.value}-style`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref(N),{name:`${n.value}-color`,key:`${n.value}-color`,label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson[`${n.value}-color`],onChange:t.setStyle},null,8,["name","value","onChange"]))],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),_o=e.defineComponent({__name:"effect",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{label:"自动",value:"auto",svg:k.IconCursorAuto},{label:"Pointer",value:"pointer",svg:k.IconCursorPointer},{label:"NotAllowed",value:"not-allowed",svg:k.IconCursorNotAllowed},{label:"无",value:"none",svg:k.IconCursorNone}],o=[{label:"Basic",value:"var(--el-box-shadow)"},{label:"Light",value:"var(--el-box-shadow-light)"},{label:"Lighter",value:"var(--el-box-shadow-lighter)"},{label:"Dark",value:"var(--el-box-shadow-dark)"}],l=(s,r)=>{t.setStyle("opacity",r!==void 0?(Number(r)||0)/100:void 0)},a=()=>Number(t.styleJson.opactiy||0)*100;return(s,r)=>(e.openBlock(),e.createBlock(e.unref($),{title:"效果",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(N),{name:"opacity",label:"透明度",setters:{name:"SliderSetter"},variable:!1,value:a(),onChange:l},null,8,["value"]),e.createVNode(e.unref(N),{name:"box-shadow",label:"阴影",setters:{name:"SelectSetter"},variable:!1,options:o,value:t.styleJson["box-shadow"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(N),{name:"cursor",label:"光标",setters:{name:"TagSetter"},variable:!1,options:n,value:t.styleJson.cursor,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),Co=e.defineComponent({name:"StyleWidget",__name:"index",props:{isStyleCodeMode:{type:Boolean}},setup(c){const t=c,{selected:n}=Y(),o=e.computed(()=>{const s=n.value?.model||null;return w.isBlock(s)?null:s}),l=e.computed(()=>o.value?.getPropValue("style")||{}),a=(s,r)=>{const i=o.value?.getPropValue("style")||{};r!==void 0?i[s]=r:delete i[s],o.value?.setProp("style",i)};return(s,r)=>t.isStyleCodeMode?(e.openBlock(),e.createBlock(yn,{key:0})):(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:1,class:"v-style-widget",direction:"column",fit:""},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(kn,{key:`Layout${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(to,{key:`Spacing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(no,{key:`Sizing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(ho,{key:`Positioning${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(bo,{key:`Texting${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(ko,{key:`Backgound${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(yo,{key:`Border${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(_o,{key:`Effect${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"]))]),_:1}))}}),wo=["src"],Vo=e.defineComponent({name:"PreviewerWidget",__name:"index",props:{path:{type:Function}},setup(c,{expose:t}){const n=c,o=e.ref(),l=e.ref(Symbol()),{current:a,engine:s}=W(),{width:r,height:i}=le.useElementSize(o),m=e.computed(()=>a.value&&n.path?n.path(a.value):null),d=e.computed(()=>s.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc");return t({refresh:()=>{l.value=Symbol()}}),(v,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:o,class:"v-previewer",key:l.value},[e.createVNode(e.unref(_e),{mode:d.value,width:e.unref(r),height:e.unref(i)},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("iframe",{key:0,ref:"iframe",frameborder:"0",src:m.value},null,8,wo)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"])]))}}),Bo=e.defineComponent({name:"NodePathWidget",inheritAttrs:!1,__name:"index",setup(c){const{selected:t,designer:n}=Y(),o=e.computed(()=>(t.value?.path||[]).slice(0).reverse()),l=s=>{n.value?.setSelected(s)},a=s=>{n.value?.setHover(s)};return(s,r)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(y.ElBreadcrumb),{key:0,class:"v-nodepath-widget","separator-icon":e.unref(k.ArrowRight)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,i=>(e.openBlock(),e.createBlock(e.unref(y.ElBreadcrumbItem),{onClick:m=>l(i),onMouseover:m=>a(i)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.name),1)]),_:2},1032,["onClick","onMouseover"]))),256))]),_:1},8,["separator-icon"])):e.createCommentVNode("",!0)}}),xo=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t}=W(),n=e.ref(),o=e.computed(()=>JSON.stringify(t.value?.toDsl()||{},null,2)),l=e.computed(()=>t.value?t.value.name:""),a=async()=>{const r=(n.value?.getEditor()).getValue();if(r&&await re("手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。"))try{const m=JSON.parse(r);t.value?.update(m),H("保存成功")}catch(m){L(m?.message)}};return(s,r)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-schema-widget",title:l.value,subtitle:"手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"json",dark:""},null,8,["model-value"])]),_:1},8,["title"]))}}),So=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t,engine:n}=W(),o=e.ref(),l=e.ref(""),a=e.computed(()=>t.value?`$vtj/vue/${t.value.id}.vue`:""),s=e.computed(()=>t.value?t.value.name:"");return e.watch(t,async r=>{const i=n.project.value;i&&r?l.value=await n.service.genVueContent(i.toDsl(),r.toDsl()):l.value=""},{immediate:!0,deep:!0}),(r,i)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-raw-widget",title:s.value,subtitle:a.value,size:"small",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:o,"model-value":l.value,height:"100%",lang:"html",dark:"",readonly:""},null,8,["model-value"])]),_:1},8,["title","subtitle"]))}}),Eo=["src"],No=e.defineComponent({name:"DocsWidget",__name:"index",props:{url:{default:"https://newgateway.gitee.io/vtj/help/index.html"}},setup(c){const t=c,n=e.ref();let o=null;e.onMounted(()=>{o||(o=y.ElLoading.service({target:n.value?.$el}))}),e.onUnmounted(()=>{l(),o=null});const l=()=>{o?.close()};return(a,s)=>(e.openBlock(),e.createBlock(e.unref($),{class:"v-docs-widget",size:"small",fit:"",body:{padding:!1},header:!1,ref_key:"panel",ref:n},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref:"frame",src:t.url,onLoad:l},null,40,Eo)]),_:1},512))}}),$o={class:"v-about-widget"},Io={class:"v-about-widget__logo"},Do=["src"],jo=e.createElementVNode("div",{class:"v-about-widget__name"},"VTJ.PRO",-1),Ao={class:"v-about-widget__version"},Fo=e.defineComponent({name:"AboutWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",$o,[e.createElementVNode("div",Io,[e.createElementVNode("img",{src:e.unref(ye)},null,8,Do)]),jo,e.createElementVNode("div",Ao,"版本:"+e.toDisplayString(e.unref(Be)),1)]))}}),A={Logo:lt,EmptyWidget:at,Switcher:Ct,Toolbar:Vt,Actions:St,Pages:Mt,Blocks:Ot,Components:Ht,Outline:qt,History:Gt,Apis:Kt,Deps:Zt,Designer:en,Scripts:an,Properties:sn,Events:cn,Css:un,Directives:dn,Defined:gn,DataSources:bn,Style:Co,Previewer:Vo,NodePath:Bo,Schema:xo,Raw:So,Docs:No,About:Fo},Je=[{name:"Logo",region:"Brand",component:A.Logo},{name:"Switcher",region:"Brand",component:A.Switcher},{name:"Toolbar",region:"Toolbar",component:A.Toolbar},{name:"Actions",region:"Actions",component:A.Actions},{name:"Pages",region:"Apps",component:A.Pages,type:"app",openType:"panel",icon:k.VtjIconDocument,label:"页面管理"},{name:"Blocks",region:"Apps",component:A.Blocks,type:"app",openType:"panel",icon:k.VtjIconComponents,label:"区块管理"},{name:"Components",region:"Apps",component:A.Components,type:"app",openType:"panel",icon:k.VtjIconBlock,label:"组件库"},{name:"Outline",region:"Apps",component:A.Outline,type:"app",openType:"panel",icon:k.VtjIconOutline,label:"大纲树"},{name:"History",region:"Apps",component:A.History,type:"app",openType:"panel",icon:k.VtjIconHistory,label:"历史记录"},{name:"Apis",region:"Apps",component:A.Apis,type:"app",openType:"panel",icon:k.VtjIconApi,label:"API管理"},{name:"Deps",region:"Apps",component:A.Deps,type:"app",openType:"panel",icon:k.VtjIconCategory,label:"依赖管理"},{name:"About",region:"Apps",component:A.About,type:"app",openType:"dialog",icon:k.VtjIconInfo,label:"关于",props:{width:500,height:300}},{name:"Designer",region:"Workspace",component:A.Designer,type:"tab",closable:!1,label:"设计视图"},{name:"Previewer",region:"Preview",component:A.Previewer,type:"tab",closable:!1,label:"预览视图"},{name:"Schema",region:"Workspace",component:A.Schema,type:"tab",closable:!0,label:"DSL视图"},{name:"Raw",region:"Workspace",component:A.Raw,type:"tab",closable:!0,label:"源码视图"},{name:"Docs",region:"Workspace",component:A.Docs,type:"tab",closable:!0,label:"帮助中心"},{name:"Scripts",region:"Settings",component:A.Scripts,type:"tab",group:K.Block,label:"设置"},{name:"Css",region:"Settings",component:A.Css,type:"tab",group:K.Block,label:"CSS"},{name:"DataSources",region:"Settings",component:A.DataSources,type:"tab",group:K.Block,label:"数据源"},{name:"Defined",region:"Settings",component:A.Defined,type:"tab",group:K.Block,label:"定义"},{name:"Properties",region:"Settings",component:A.Properties,type:"tab",group:K.Node,label:"属性"},{name:"Style",region:"Settings",component:A.Style,type:"tab",group:K.Node,label:"样式"},{name:"Events",region:"Settings",component:A.Events,type:"tab",group:K.Node,label:"事件"},{name:"Directives",region:"Settings",component:A.Directives,type:"tab",group:K.Node,label:"指令"},{name:"NodePath",region:"Status",component:A.NodePath}],Le=[{package:"vue",version:"latest",library:"Vue",urls:["@vtj/materials/deps/vue/vue.global.prod.js"],assetsLibrary:w.BUILT_IN_VUE,required:!0,official:!0,enabled:!0},{package:"vue-router",version:"latest",library:"VueRouter",urls:["@vtj/materials/deps/vue-router/vue-router.global.prod.js"],assetsLibrary:w.BUILT_IN_VUE_ROUTER,required:!0,official:!0,enabled:!0},{package:"@vtj/utils",version:"latest",library:"VtjUtils",urls:["@vtj/materials/deps/@vtj/utils/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"@vtj/icons",version:"latest",library:"VtjIcons",urls:["@vtj/materials/deps/@vtj/icons/style.css","@vtj/materials/deps/@vtj/icons/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"element-plus",version:"latest",library:"ElementPlus",urls:["@vtj/materials/deps/element-plus/dark/css-vars.css","@vtj/materials/deps/element-plus/index.css","@vtj/materials/deps/element-plus/index.full.min.js"],assetsUrl:"@vtj/materials/assets/element/index.umd.js",assetsLibrary:"ElementPlusMaterial",required:!1,official:!0,enabled:!0},{package:"echarts",version:"latest",library:"echarts",urls:["@vtj/materials/deps/echarts/echarts.min.js"],required:!1,official:!0,enabled:!0},{package:"@vtj/ui",version:"latest",library:"VtjUI",urls:["@vtj/materials/deps/@vtj/ui/style.css","@vtj/materials/deps/@vtj/ui/index.umd.js"],assetsUrl:"@vtj/materials/assets/ui/index.umd.js",assetsLibrary:"VtjUIMaterial",required:!1,official:!0,enabled:!0},{package:"ant-design-vue",version:"latest",library:"antd",urls:["@vtj/materials/deps/ant-design-vue/rest.css","@vtj/materials/deps/ant-design-vue/dayjs/dayjs.min.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/customParseFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekday.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/localeData.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekOfYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/advancedFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/quarterOfYear.js","@vtj/materials/deps/ant-design-vue/antd.min.js"],assetsUrl:"@vtj/materials/assets/antdv/index.umd.js",assetsLibrary:"AntdvMaterial",required:!1,official:!0,enabled:!1}],Po=[{id:"html",category:"HTML"},{id:"elements",category:"特殊元素"},{id:"components",category:"内置组件"}],To=[{name:"div",label:"容器",categoryId:"html",snippet:{children:"容器文本内容示例"}},{name:"span",label:"内联",categoryId:"html",snippet:{children:"内联容器文本内容示例"}},{name:"a",label:"链接",categoryId:"html",props:[{name:"href",label:"href",setters:"InputSetter"}],snippet:{children:"链接文本内容示例",props:{href:"#"}}},{name:"img",label:"图片",categoryId:"html",childIncludes:!1,props:[{name:"src",label:"src",setters:"InputSetter"},{name:"width",label:"width",setters:"InputSetter"},{name:"height",label:"height",setters:"InputSetter"}],snippet:{props:{src:ye,width:"200",height:"200"}}},{name:"h1",label:"大标题",categoryId:"html",snippet:{children:"标题"}},{name:"h2",label:"中标题",categoryId:"html",snippet:{children:"标题"}},{name:"h3",label:"小标题",categoryId:"html",snippet:{children:"标题"}},{name:"p",label:"段落",categoryId:"html",snippet:{children:"段落文本"}},{name:"component",label:"动态组件",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#component",props:[{name:"is",label:"组件名",setters:"InputSetter"}],snippet:{children:"组件文本内容示例",props:{is:"div"}}},{name:"slot",label:"插槽",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#slot",props:[{name:"name",label:"名称",defaultValue:"default",setters:"InputSetter"}],snippet:{children:"默认插槽内容"}}],Ro=[...To,{name:"Transition",label:"过渡效果",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transition",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"mode",label:"时序",defaultValue:"default",title:"控制离开/进入过渡的时序。",setters:"SelectSetter",options:["in-out","out-in","default"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"Transition"}},{name:"TransitionGroup",label:"过渡效果组",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transitiongroup",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"tag",label:"标签名",defaultValue:void 0,title:"如果未定义,则渲染为片段 (fragment)",setters:"InputSetter"},{name:"moveClass",label:"moveClass",defaultValue:void 0,title:"用于自定义过渡期间被应用的 CSS class。",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"TransitionGroup"}},{name:"KeepAlive",label:"缓存切换组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#keepalive",package:"vue",props:[{name:"include",label:"匹配包含",title:"如果指定,则只有与 `include` 名称, 匹配的组件才会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"exclude",label:"匹配排除",title:"任何名称与 `exclude` 匹配的组件都不会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"max",label:"最大缓存数",title:"最多可以缓存多少组件实例。",setters:["InputSetter"]}]},{name:"Teleport",label:"传送组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#teleport",package:"vue",props:[{name:"to",label:"目标容器",title:"指定目标容器,可以是选择器或实际元素",setters:["InputSetter"]},{name:"disabled",label:"禁用",title:"当值为 `true` 时,内容将保留在其原始位置, 而不是移动到目标容器中, 可以动态更改",setters:["BooleanSetter"]}]},{name:"Suspense",label:"异步依赖",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#suspense",package:"vue",props:[{name:"timeout",label:"timeout",setters:["InputSetter"]}]},{name:"RouterLink",label:"路由链接",categoryId:"components",doc:"https://router.vuejs.org/zh/api/interfaces/RouterLinkProps.html",package:"vue-router",props:[{name:"to",label:"to",setters:["InputSetter"]},{name:"replace",label:"replace",setters:["BooleanSetter"]}],snippet:{children:"RouterLink",props:{to:"/"}}}],Me=[{name:w.BUILT_IN_NAME,version:"latest",label:"内置",library:w.BUILT_IN_NAME,order:0,categories:Po,components:Ro}],zo=e.defineComponent({name:"StringSetter",__name:"string",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElInput),e.mergeProps({clearable:""},t.$attrs),null,16))}}),Jo=e.defineComponent({name:"BooleanSetter",__name:"boolean",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElSwitch),e.mergeProps(t.$attrs,{"model-value":!!t.$attrs.modelValue}),null,16,["model-value"]))}}),Lo="{{",Mo="}}",Oo=e.defineComponent({name:"ExpressionSetter",__name:"expression",props:{modelValue:{},context:{}},emits:["change"],setup(c,{emit:t}){const n=(i="")=>({type:"JSExpression",value:D.isJSExpression(i)?i.value:i}),o=c,l=t,a=i=>X(i,o.context,!0),s=e.ref(n(o.modelValue).value);e.watch(()=>o.modelValue,i=>{s.value=n(i).value},{immediate:!0});const r=i=>{const m={type:"JSExpression",value:i};a(m)&&l("change",m)};return(i,m)=>(e.openBlock(),e.createBlock(e.unref(y.ElInput),{class:"v-expression-setter",modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=d=>s.value=d),onChange:r},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Lo))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Mo))]),_:1},8,["modelValue"]))}}),Xo=e.defineComponent({name:"SelectSetter",__name:"select",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(y.ElSelect),e.mergeProps({clearable:""},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(y.ElOption),e.mergeProps({key:l.label},l),null,16))),128))]),_:1},16))}}),Wo=e.defineComponent({name:"NumberSetter",__name:"number",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>D.isJSExpression(n.modelValue)?void 0:Number(n.modelValue||0)),a=s=>{o("change",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(y.ElInputNumber),e.mergeProps({class:"v-number-setter","controls-position":"right","model-value":l.value},s.$attrs,{onChange:a}),null,16,["model-value"]))}}),Uo=e.defineComponent({name:"ColorSetter",__name:"color",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElColorPicker),e.normalizeProps(e.guardReactiveProps(t.$attrs)),null,16))}}),Ho=e.defineComponent({name:"JsonSetter",__name:"json",props:{modelValue:{default:void 0},type:{default:"JSON"}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(typeof n.modelValue=="object"?JSON.stringify(n.modelValue,null,2):void 0),a=e.computed(()=>!!l.value),s=e.ref(!1),r=t,i=v=>{let f=!0;try{const u=JSON.parse(v);if(n.type==="Array"&&!Array.isArray(u))throw new Error(`"${v}" is not a Array`);if(n.type==="Object"&&!F.isPlainObject(u))throw new Error(`"${v}" is not a PlainObject`);if(typeof u!="object")throw new Error(`"${v}" is not a ${n.type}`)}catch(u){f=!1,y.ElNotification.error({title:"代码错误",message:u?.message||u})}return f},m=()=>{const v=o.value?.getEditor();if(v){const f=v.getValue();i(f)&&(l.value=f,r("change",JSON.parse(f)),s.value=!1)}},d=()=>{l.value="",r("change",void 0),s.value=!1},p=()=>{s.value=!0};return(v,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-json-setter",{"is-active":a.value}])},[e.createVNode(e.unref(y.ElInput),e.mergeProps({readonly:"",onFocus:p,"model-value":n.type,"suffix-icon":e.unref(k.MoreFilled)},v.$attrs),null,16,["model-value","suffix-icon"]),s.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:s.value,"onUpdate:modelValue":f[0]||(f[0]=u=>s.value=u),title:n.type,width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:m,onClear:d},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"codeEditor",ref:o,height:"100%",lang:"json",dark:"","model-value":l.value},null,8,["model-value"])]),_:1},8,["modelValue","title"])):e.createCommentVNode("",!0)],2))}}),qo=e.defineComponent({name:"FunctionSetter",__name:"function",props:{modelValue:{default:()=>({type:"JSFunction",value:""})}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(n.modelValue.value),a=e.ref(!1),s=e.computed(()=>!!l.value),r=t,i=()=>{const p=o.value?.getEditor();if(p){const v=p.getValue(),f={type:"JSFunction",value:v};X(f,{})&&(l.value=v,r("change",f),a.value=!1)}},m=()=>{l.value="",r("change",void 0),a.value=!1},d=()=>{a.value=!0};return(p,v)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-function-setter",{"is-active":s.value}])},[e.createVNode(e.unref(y.ElInput),e.mergeProps({readonly:"",onFocus:d,"model-value":"JSFunction","suffix-icon":e.unref(k.MoreFilled)},p.$attrs),null,16,["suffix-icon"]),a.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:a.value,"onUpdate:modelValue":v[0]||(v[0]=f=>a.value=f),title:"JSFunction",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:i,onClear:m},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"codeEditor",ref:o,height:"100%","model-value":l.value,dark:""},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)],2))}}),Go=e.defineComponent({name:"RadioSetter",__name:"radio",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(y.ElRadioGroup),e.mergeProps({class:"v-radio-setter",size:"small"},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(y.ElRadioButton),{label:l.value,title:l.label},{default:e.withCtx(()=>[l.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:l.svg},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.label),1)],64))]),_:2},1032,["label","title"]))),256))]),_:1},16))}}),Ko=["label","title","onClick"],Zo=e.defineComponent({name:"TagSetter",__name:"tag",props:{options:{default:()=>[]},modelValue:{}},emits:["update:modelValue","change"],setup(c,{emit:t}){const n=c,o=t,l=a=>{a.value===n.modelValue?(o("update:modelValue",void 0),o("change",void 0)):(o("update:modelValue",a.value),o("change",a.value))};return(a,s)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"v-tag-setter",size:"small"},a.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.options,r=>(e.openBlock(),e.createElementBlock("span",{label:r.value,title:r.label,class:e.normalizeClass({"is-active":n.modelValue===r.value}),onClick:i=>l(r)},[r.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:r.svg,size:16},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.label),1)],64))],10,Ko))),256))],16))}}),Oe=e.defineComponent({name:"SizeSetter",__name:"size",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!0),a=e.computed(()=>l.value?"px":void 0),s=e.ref(n.modelValue),r=i=>{l.value=!!Number(i)};return e.watch(s,i=>{o("change",i)}),e.watch(()=>n.modelValue,i=>{i&&(l.value=i.endsWith("px"),s.value=i)},{immediate:!0}),(i,m)=>(e.openBlock(),e.createBlock(e.unref(b.XInputUnit),e.mergeProps({clearable:"",unit:a.value,"with-unit":!!a.value,modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=d=>s.value=d),onChange:r},i.$attrs),null,16,["unit","with-unit","modelValue"]))}}),Qo={class:"v-image-setter__plus"},Yo=e.defineComponent({name:"ImageSetter",__name:"image",props:{modelValue:{},limit:{default:1}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref([]),a=e.computed(()=>l.value.length<n.limit),s=i=>i.type.includes("image")?(F.fileToBase64(i).then(m=>{l.value=[{name:i.name,url:m}]}),!1):(y.ElMessage.error("只能上传图片"),!1),r=()=>{l.value=[]};return e.watch(()=>n.modelValue,i=>{l.value=i?[{name:"",url:i}]:[]},{immediate:!0}),e.watch(l,()=>{o("change",l.value[0]?.url)}),(i,m)=>(e.openBlock(),e.createBlock(e.unref(y.ElUpload),e.mergeProps({class:["v-image-setter",{"v-image-setter--addable":a.value}],"list-type":"picture-card",limit:1,action:"#","file-list":l.value,"onUpdate:fileList":m[0]||(m[0]=d=>l.value=d),"before-upload":s,"auto-upload":!0,"on-remove":r},i.$attrs),{default:e.withCtx(()=>[e.createElementVNode("span",Qo,[e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.Plus)},null,8,["icon"])])]),_:1},16,["class","file-list"]))}}),el={class:"v-section-setter"},tl=e.defineComponent({name:"SectionSetter",__name:"section",props:{modelValue:{},sections:{default:4}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(new Array(n.sections).fill(""));e.watch(()=>n.modelValue,s=>{l.value=s?s.split(" "):new Array(n.sections).fill("")},{immediate:!0});const a=()=>{o("change",l.value.join(" ").trim())};return(s,r)=>(e.openBlock(),e.createElementBlock("div",el,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.sections,i=>(e.openBlock(),e.createBlock(Oe,{name:i-1,modelValue:l.value[i-1],"onUpdate:modelValue":m=>l.value[i-1]=m,onChange:a,class:"v-section-setter__item"},null,8,["name","modelValue","onUpdate:modelValue"]))),256))]))}}),nl={class:"v-slider-setter"},ol=e.defineComponent({name:"SliderSetter",__name:"slider",props:{modelValue:{default:void 0}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref();e.watch(()=>n.modelValue,s=>{l.value=s},{immediate:!0}),e.watch(l,s=>{o("change",s),o("update:modelValue",s)});const a=()=>{l.value=void 0,o("change",void 0),o("update:modelValue",void 0)};return(s,r)=>(e.openBlock(),e.createElementBlock("div",nl,[e.createVNode(e.unref(y.ElSlider),e.mergeProps({size:"small"},s.$attrs,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=i=>l.value=i)}),null,16,["modelValue"]),e.createVNode(e.unref(b.XIcon),{onClick:a,class:"v-slider-setter__close",size:16,icon:e.unref(k.Close)},null,8,["icon"])]))}}),z={StringSetter:zo,BooleanSetter:Jo,ExpressionSetter:Oo,SelectSetter:Xo,NumberSetter:Wo,ColorSetter:Uo,IconSetter:Ae,JsonSetter:Ho,FunctionSetter:qo,RadioSetter:Go,TagSetter:Zo,SizeSetter:Oe,ImageSetter:Yo,SectionSetter:tl,SliderSetter:ol},Xe={name:"StringSetter",component:z.StringSetter,type:"String"},We=[{name:"InputSetter",component:z.StringSetter,type:"String"},{name:"StringSetter",component:z.StringSetter,type:"String"},{name:"BooleanSetter",component:z.BooleanSetter,type:"Boolean"},{name:"ExpressionSetter",component:z.ExpressionSetter,type:"Object"},{name:"SelectSetter",component:z.SelectSetter,type:"String"},{name:"NumberSetter",component:z.NumberSetter,type:"Number"},{name:"ColorSetter",component:z.ColorSetter,type:"String"},{name:"IconSetter",component:z.IconSetter,type:"String"},{name:"ObjectSetter",component:z.JsonSetter,type:"Object",props:{type:"Object"}},{name:"ArraySetter",component:z.JsonSetter,type:"Array",props:{type:"Array"}},{name:"JsonSetter",component:z.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"JSONSetter",component:z.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"FunctionSetter",component:z.FunctionSetter,type:"Function"},{name:"RadioSetter",component:z.RadioSetter,type:"String"},{name:"TagSetter",component:z.TagSetter,type:"String"},{name:"SizeSetter",component:z.SizeSetter,type:"String"},{name:"ImageSetter",component:z.ImageSetter,type:"String"},{name:"SectionSetter",component:z.SectionSetter,type:"String"},{name:"SliderSetter",component:z.SliderSetter,type:"Number"},{name:"RangeSetter",component:z.SliderSetter,type:"Array",props:{range:!0}}];class ll{widgets={};constructor(){this.widgets=this.createWidgets()}createWidgets(){const t={};for(const n of Je)t[n.name]=n;return t}register(t){this.widgets[t.name]=t}get(t){return this.widgets[t]}set(t,n){const o=this.widgets[t];if(!o){F.logger.warn(`widget '${t}' is not found`);return}F.merge(o,n),n.component&&(o.component=n.component)}getWidgets(t,n){const o=Object.values(this.widgets);return t?o.filter(l=>l.region===t&&(!n||n&&n===l.group)):o}}const Ce=new ll;class rl{constructor(t=Le){this.deps=t}get(){return this.deps}set(t){this.deps=t}add(t){const n=this.deps.find(o=>o.package===t.package);n?Object.assign(n,t):this.deps.push(t)}merge(t){const n=[];for(const o of this.deps){const l=t.find(a=>a.package===o.package);n.push({...o,...l})}for(const o of t)this.deps.find(a=>a.package===o.package)||n.push(o);return n}remove(t){const n=this.deps.findIndex(o=>o.package===t);n>-1&&this.deps.splice(n,1)}}const Ue=new rl;class al{setters={};defaultSetter=Xe;constructor(){this.setters=this.createSetters()}createSetters(){const t={};for(const n of We)t[n.name]=n;return t}register(t){this.setters[t.name]=t}get(t){return this.setters[t]}set(t,n){const o=this.setters[t];if(!o){F.logger.warn(`setter '${t}' is not found`);return}F.merge(o,n),n.component&&(o.component=n.component)}getByType(t){return Object.values(this.setters).filter(o=>o.type===t).map(o=>o.name)}}const se=new al;function He(c){return new Promise((t,n)=>{const o=e.createApp(Pe,{slots:c,onClose:()=>{o.unmount(),n(null)},onSubmit:l=>{o.unmount(),t(l)}});o.mount(document.createElement("div"))})}class qe{constructor(t,n,o){this.engine=t,this.contentWindow=n,this.dependencies=o,this.document=this.contentWindow.document,this.bindEvents(n,this.document)}proxied={};document=null;hover=e.shallowRef(null);dropping=e.shallowRef(null);selected=e.ref(null);dragging=null;bind(t,n){let o=this.proxied[n];return o||(o=t.bind(this),this.proxied[n]=o),o}bindEvents(t,n){n.addEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.addEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.addEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.addEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.addEventListener("drop",this.bind(this.onDrop,"onDrop")),n.addEventListener("click",this.bind(this.onSelected,"onSelected")),w.emitter.on(w.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),w.emitter.on(w.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}unbindEvents(t,n){n.removeEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.removeEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.removeEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.removeEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.removeEventListener("drop",this.bind(this.onDrop,"onDrop")),n.removeEventListener("click",this.bind(this.onSelected,"onSelected")),w.emitter.off(w.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),w.emitter.off(w.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}onMouseOver(t){const n=this.getHelper(t);n?.model.id!==this.selected.value?.model.id&&(this.hover.value=n)}onViewChange(){this.updateRect()}onLeave(t){this.hover.value=null,this.dropping.value=null}onActiveChange(){this.hover.value=null,this.dropping.value=null,this.selected.value=null}async getDropSlot(t){if(!t)return;const{engine:n}=this,o=n.assets,l=o.componentMap,a=await o.getBlockMaterial(t.from)||l.get(t.name);if(!a?.slots)return;const s=(a?.slots||["default"]).map(i=>typeof i=="string"?{name:i,params:[]}:{name:i.name,params:i.params||[]});if(s.length===0)return;if(s.length===1)return s[0];const r=await He(s).catch(()=>null);if(!(r&&r.name==="default"&&(!r.params||r.params?.length===0)))return r}async onDrop(t){t.preventDefault();const{engine:n,dragging:o,dropping:l}=this,a=n.current.value,s=this.getHelper(t);if(!a||!o||!l.value||!s)return;const r=s.model,i=l.value.type;if(!await this.allowDrop(r,i))return;const m=this.createNodeDsl(o),d=new w.NodeModel(m);if(w.isBlock(r))a.addNode(d,void 0,i);else{const p=await this.getDropSlot(i==="inner"?r:r.parent);if(p===null){this.dropping.value=null;return}d.slot=p,a.addNode(d,r,i)}this.dropping.value=null}onSelected(t){this.setHover(null),this.selected.value=this.getHelper(t)}async onDragOver(t){const n=this.getHelper(t);if(!n)return;const{model:o,type:l}=n;o&&await this.allowDrop(o,l)?(t.preventDefault(),this.dropping.value=n):this.dropping.value=null}isVtjElement(t){return!!t.__vtj__&&!!t.__context__}findVtjElement(t){return t.find(n=>this.isVtjElement(n))}getNodeByElement(t){const n=t.__vtj__??"";return w.NodeModel.nodes[n]||null}getDropType(t,n,o){const{left:l,top:a,width:s,height:r}=t;return n>=l&&n<=l+s*.2?"left":n>=l+s*.8&&n<=l+s?"right":o>=a&&o<=a+r*.2?"top":o>=a+r*.8&&o<=a+r?"bottom":"inner"}getNodePath(t=[]){const n=t.filter(a=>this.isVtjElement(a)),o=this.engine.current.value;return[...n.map(a=>this.getNodeByElement(a)).filter(a=>!!a),o]}setDslFrom(t){const n=this.engine.assets.componentMap.get(t.name);if(t.from=t.from||n?.package,Array.isArray(t.children))for(const o of t.children)this.setDslFrom(o)}createNodeDsl(t){const{name:n,snippet:o={},from:l}=t,a={...o,name:n,from:l||t.package};return this.setDslFrom(a),a}getElmenetByModel(t){return!this.document||!t?null:w.isBlock(t)?this.document.body:Array.from(this.document.querySelectorAll("*")).find(o=>o.__vtj__===t.id)}findPathByNode(t){const n=[t];let o=t;for(;o.parent&&o.parent!==o;)o=o.parent,o!==t&&n.unshift(o);const l=this.engine.current.value;return n.unshift(l),n.reverse()}getHelper(t){const n=t.composedPath()||[],o=this.findVtjElement(n)||this.document?.body;if(!o)return null;const l=this.getNodeByElement(o)||this.engine.current.value;if(!l)return null;const a=o.getBoundingClientRect(),s=this.getDropType(a,t.clientX,t.clientY),r=this.getNodePath(n);return{el:o,model:l,rect:a,type:s,path:r}}cleanHelper(){this.setSelected(null),this.setHover(null),this.setDragging(null),this.setDropping(null)}async updateRect(){await F.delay(100);const t=e.unref(this.selected),n=e.unref(this.hover);if(t){const o=t.el.getBoundingClientRect();this.selected.value={...t,rect:o}}if(n){const o=n.el.getBoundingClientRect();this.hover.value={...n,rect:o}}}setDragging(t){this.dragging=t}async setHover(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t);if(!n)return;const o=n.getBoundingClientRect(),l=w.isBlock(t)?[]:this.findPathByNode(t);this.hover.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.hover.value=null}async setSelected(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t)||this.document?.createElement("span");if(!n)return;const o=n.getBoundingClientRect(),l=w.isBlock(t)?[]:this.findPathByNode(t);this.selected.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.selected.value=null}async setDropping(t,n="inner"){if(await e.nextTick(),t){const o=this.getElmenetByModel(t);if(!o)return;const l=o.getBoundingClientRect(),a=w.isBlock(t)?[]:this.findPathByNode(t);this.dropping.value={el:o,model:t,rect:l,type:n,path:a}}else this.dropping.value=null}async allowDrop(t,n="inner"){const{dragging:o,engine:l}=this,a=l.current.value;if(!o||!a)return!1;if(w.isBlock(t))return!0;const s=l.assets.componentMap,r=n!=="inner"&&t.parent||t,i=await l.assets.getBlockMaterial(r.from)||s.get(r.name);if(!i)return!1;const{parentIncludes:m=!0,name:d}=o,{childIncludes:p=!0}=i,v=m===!0||Array.isArray(m)&&m.includes(r.name),f=p===!0||Array.isArray(p)&&p.includes(d);return v&&f}dispose(){const{contentWindow:t,document:n}=this;this.setSelected(null),this.setHover(null),this.setDragging(null),t&&n&&this.unbindEvents(t,n),this.document=null}}class Ge{constructor(t,n,o=null){this.env=t,this.service=n,this.designer=o,this.nodeChange=this.__onNodeChange.bind(this),this.blockChange=this.__onBlockChange.bind(this)}app=null;dsl=null;nodeChange;blockChange;context=null;install(t){const{library:n,globals:o,VueRouter:l}=this.env;if(l){const s=l.createRouter({history:l.createWebHashHistory(),routes:[]});t.use(s)}const a=Object.values(n);Object.assign(t.config.globalProperties,o),t.config.errorHandler=(s,r,i)=>{const m=r?.$options.name,d=s?.message||s?.msg||"未知错误",p=`[ ${m} ] ${d}`;console.error({err:s,instance:r,info:i}),y.ElNotification.error({title:"运行错误",message:p})},a.forEach(s=>{(typeof s=="function"||typeof s.install=="function")&&t?.use(s)})}render(t){const{window:n,container:o,Vue:l,components:a,library:s,apis:r}=this.env,i=n.document.createElement("div");i.id="app",o.appendChild(i),this.dsl=l.reactive(t.toDsl());const m=D.createLoader({getDsl:async v=>await this.service.getFile(v)||null,options:{mode:D.ContextMode.Design,Vue:l,components:a,libs:s,apis:r,window:n}}),{renderer:d,context:p}=D.createRenderer({Vue:l,mode:D.ContextMode.Design,dsl:this.dsl,components:a,libs:s,apis:r,loader:m,window:n});this.app=l.createApp(d),this.install(this.app);try{this.app.mount(i)}catch(v){L(v.message||"未知错误","运行时错误"),console.error(v)}this.context=p,w.emitter.on(w.EVENT_NODE_CHANGE,this.nodeChange),w.emitter.on(w.EVENT_BLOCK_CHANGE,this.blockChange)}dispose(){if(this.app){this.app.unmount();const t=this.app._container;t&&t.parentNode&&(t.parentNode.removeChild(t),this.app._container=null),this.app=null}this.dsl=null,this.context=null,w.emitter.off(w.EVENT_NODE_CHANGE,this.nodeChange),w.emitter.off(w.EVENT_BLOCK_CHANGE,this.blockChange)}updateChild(t,n){const o=n.children||n.nodes||[];if(Array.isArray(o))for(let l=0;l<o.length;l++){const a=o[l];if(a.id===t.id){o.splice(l,1,t);return}else this.updateChild(t,a)}}__onNodeChange(t){this.dsl&&this.updateChild(t.toDsl(),this.dsl)}__onBlockChange(t){this.dispose(),this.render(t),this.designer?.selected.value&&this.designer.setSelected(t)}}class Ke extends w.Base{contentWindow=null;renderer=null;designer=e.shallowRef(null);engine;materialPath;constructor(t){super();const{engine:n,materialPath:o}=t;this.engine=n,this.materialPath=o,e.watch(this.engine.current,()=>{this.refresh()})}init(t,n){e.watch([t,n],()=>{t.value&&n.value.length&&(this.resetReady(),this.setup(t.value,n.value),this.contentWindow&&(this.designer.value?.dispose(),this.designer.value=new qe(this.engine,this.contentWindow,n)))},{immediate:!0,deep:!0})}setup(t,n){const o=t.contentWindow;if(!o){F.logger.warn("Simulator contentWindow is null");return}o.__simulator__=this;const l=o.document;this.contentWindow=o;const{scripts:a,css:s,materials:r,libraryExports:i,materialExports:m,materialMapLibrary:d}=D.parseDeps(n,this.materialPath);l.open(),l.write(`
|
|
75
|
+
l-${q},-${G}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[3]||(u[3]=g=>p("left"))},null,8,co)])]),e.createElementVNode("clipPath",uo,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,mo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-outer)",x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,po),e.createElementVNode("clipPath",fo,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(o)-2*q+1,height:e.unref(l)-2*G+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,vo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-inner)",x:"36",y:"24",width:e.unref(o)-2*q+1,height:e.unref(l)-2*G+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,go)],8,ro)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson.top}]),onClick:u[4]||(u[4]=g=>p("top"))},e.toDisplayString(t.styleJson.top||m.value[0]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson.right}]),onClick:u[5]||(u[5]=g=>p("right"))},e.toDisplayString(t.styleJson.right||m.value[1]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson.bottom}]),onClick:u[6]||(u[6]=g=>p("bottom"))},e.toDisplayString(t.styleJson.bottom||m.value[2]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson.left}]),onClick:u[7]||(u[7]=g=>p("left"))},e.toDisplayString(t.styleJson.left||m.value[3]||"-"),3)],512),a.value?(e.openBlock(),e.createBlock(ze,{key:0,auto:"",name:s.value,modelValue:r.value,"onUpdate:modelValue":u[8]||(u[8]=g=>r.value=g),onClose:v,onSubmit:t.setStyle},null,8,["name","modelValue","onSubmit"])):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(e.unref($),{name:"z-index",label:"层级",setters:{name:"NumberSetter"},variable:!1,value:t.styleJson["z-index"],onChange:t.setStyle},null,8,["value","onChange"])]),_:1})])]),_:1}))}}),bo=e.defineComponent({__name:"texting",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{name:"font-size",label:"字号",setter:"SizeSetter"},{name:"font-family",label:"字体",setter:"SelectSetter",options:["Arial","Verdana","Georgia",'"Times New Roman"','"Microsoft YaHei"',"SimSun","SimHei","KaiTi","FangSong","STSong","STKaiti","STFangsong","STCaiyun","STHupo","STLiti","STXingkai","STXinwei","STXinwei","STZhongsong"]},{name:"line-height",label:"行高",setter:"SizeSetter"},{name:"font-weight",label:"字重",setter:"SelectSetter",options:[{label:"正常",value:"normal"},{label:"粗体",value:"bold"},{label:"更粗",value:"bolder"},{label:"更细",value:"lighter"}]}],o=[{label:"左",value:"left",svg:k.IconTextAlignLeft},{label:"中",value:"center",svg:k.IconTextAlignCenter},{label:"右",value:"right",svg:k.IconTextAlignRight},{label:"两端",value:"justify",svg:k.IconTextAlignJustify}],l=[{label:"正常",value:"normal",svg:k.IconFontStyleNone},{label:"斜体",value:"italic",svg:k.IconFontStyleItalic}],a=[{label:"无",value:"none",svg:k.IconCross},{label:"下划线",value:"underline",svg:k.IconTextDecorationUnderline},{label:"删除线",value:"line-through",svg:k.IconTextDecorationStrike},{label:"上划线",value:"overline",svg:k.IconTextDecorationOverline}];return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"文本",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-style-widget__texting",size:"small","label-width":"60px",inline:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,i=>e.createVNode(e.unref($),{name:i.name,label:i.label,setters:{name:i.setter},options:i.options,variable:!1,value:t.styleJson[i.name],onChange:s.setStyle},null,8,["name","label","setters","options","value","onChange"])),64))]),_:1}),e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"60px"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson.color,onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"text-align",label:"对齐",setters:{name:"TagSetter"},variable:!1,options:o,value:t.styleJson["text-align"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"font-style",label:"风格",setters:{name:"TagSetter"},variable:!1,options:l,value:t.styleJson["font-style"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"text-decoration",label:"修饰",setters:{name:"TagSetter"},variable:!1,options:a,value:t.styleJson["text-decoration"],onChange:s.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),ko=e.defineComponent({__name:"backgound",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=(i,d)=>{d?t.setStyle("background-image",`url(${d})`):t.setStyle("background-image",void 0)},o=i=>{const d=/^url\(([\w\W]+)\)$/;return i?.match(d)?.[1]},l=[{label:"重复",value:"repeat",svg:k.IconTileXy},{label:"水平重复",value:"repeat-x",svg:k.IconTileX},{label:"垂直重复",value:"repeat-y",svg:k.IconTileY},{label:"不重复",value:"no-repeat",svg:k.IconClose}],a=[{label:"固定",value:"fixed"},{label:"滚动",value:"scroll"}],s=[{label:"裁剪到填充",value:"padding-box"},{label:"裁剪到内容",value:"content-box"},{label:"裁剪到文字",value:"text"}],r=[{label:"自动",value:"auto"},{label:"长度",value:"length"},{label:"百分比",value:"percentage"},{label:"覆盖",value:"cover"},{label:"填充",value:"contain"}];return(i,d)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"背景",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"background-image",label:"图片",setters:{name:"ImageSetter"},variable:!1,value:o(t.styleJson["background-image"]),onChange:n},null,8,["value"]),e.createVNode(e.unref($),{name:"background-color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson["background-color"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-repeat",label:"重复",setters:{name:"TagSetter"},variable:!1,value:t.styleJson["background-repeat"],options:l,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-attachment",label:"固定",setters:{name:"RadioSetter"},variable:!1,value:t.styleJson["background-attachment"],options:a,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-position",label:"位置",setters:{name:"SectionSetter",props:{sections:2}},variable:!1,value:t.styleJson["background-position"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-size",label:"大小",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-size"],options:r,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-clip",label:"裁剪",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-clip"],options:s,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),yo=e.defineComponent({__name:"border",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref("border"),o=[{label:"全边框",svg:k.IconBorderAll,value:"border"},{label:"左边框",svg:k.IconBorderLeft,value:"border-left"},{label:"上边框",svg:k.IconBorderTop,value:"border-top"},{label:"下边框",svg:k.IconBorderBottom,value:"border-bottom"},{label:"右边框",svg:k.IconBorderRight,value:"border-right"}],l=[{label:"无",value:"none",svg:k.IconCross},{label:"实线",value:"solid",svg:k.IconBorderStyleSolid},{label:"虚线",value:"dashed",svg:k.IconBorderStyleDashed},{label:"点线",value:"dotted",svg:k.IconBorderStyleDotted}],a=(s,r)=>{n.value=r};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"边框",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"border-radius",label:"圆角",setters:{name:"SectionSetter",props:{sections:4}},variable:!1,value:t.styleJson["border-radius"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"borders",label:"边框",setters:{name:"TagSetter"},variable:!1,options:o,value:n.value,onChange:a},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(),e.createBlock(e.unref($),{name:`${n.value}-width`,key:`${n.value}-width`,label:"宽度",setters:{name:"SizeSetter"},variable:!1,value:t.styleJson[`${n.value}-width`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref($),{name:`${n.value}-style`,key:`${n.value}-style`,label:"样式",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson[`${n.value}-style`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref($),{name:`${n.value}-color`,key:`${n.value}-color`,label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson[`${n.value}-color`],onChange:t.setStyle},null,8,["name","value","onChange"]))],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),_o=e.defineComponent({__name:"effect",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{label:"自动",value:"auto",svg:k.IconCursorAuto},{label:"Pointer",value:"pointer",svg:k.IconCursorPointer},{label:"NotAllowed",value:"not-allowed",svg:k.IconCursorNotAllowed},{label:"无",value:"none",svg:k.IconCursorNone}],o=[{label:"Basic",value:"var(--el-box-shadow)"},{label:"Light",value:"var(--el-box-shadow-light)"},{label:"Lighter",value:"var(--el-box-shadow-lighter)"},{label:"Dark",value:"var(--el-box-shadow-dark)"}],l=(s,r)=>{t.setStyle("opacity",r!==void 0?(Number(r)||0)/100:void 0)},a=()=>Number(t.styleJson.opactiy||0)*100;return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"效果",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"opacity",label:"透明度",setters:{name:"SliderSetter"},variable:!1,value:a(),onChange:l},null,8,["value"]),e.createVNode(e.unref($),{name:"box-shadow",label:"阴影",setters:{name:"SelectSetter"},variable:!1,options:o,value:t.styleJson["box-shadow"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"cursor",label:"光标",setters:{name:"TagSetter"},variable:!1,options:n,value:t.styleJson.cursor,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),Co=e.defineComponent({name:"StyleWidget",__name:"index",props:{isStyleCodeMode:{type:Boolean}},setup(c){const t=c,{selected:n}=Y(),o=e.computed(()=>{const s=n.value?.model||null;return w.isBlock(s)?null:s}),l=e.computed(()=>o.value?.getPropValue("style")||{}),a=(s,r)=>{const i=o.value?.getPropValue("style")||{};r!==void 0?i[s]=r:delete i[s],o.value?.setProp("style",i)};return(s,r)=>t.isStyleCodeMode?(e.openBlock(),e.createBlock(yn,{key:0})):(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:1,class:"v-style-widget",direction:"column",fit:""},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(kn,{key:`Layout${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(to,{key:`Spacing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(no,{key:`Sizing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(ho,{key:`Positioning${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(bo,{key:`Texting${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(ko,{key:`Backgound${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(yo,{key:`Border${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(_o,{key:`Effect${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"]))]),_:1}))}}),wo=["src"],Vo=e.defineComponent({name:"PreviewerWidget",__name:"index",props:{path:{type:Function}},setup(c,{expose:t}){const n=c,o=e.ref(),l=e.ref(Symbol()),{current:a,engine:s}=W(),{width:r,height:i}=le.useElementSize(o),d=e.computed(()=>a.value&&n.path?n.path(a.value):null),m=e.computed(()=>s.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc");return t({refresh:()=>{l.value=Symbol()}}),(v,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:o,class:"v-previewer",key:l.value},[e.createVNode(e.unref(_e),{mode:m.value,width:e.unref(r),height:e.unref(i)},{default:e.withCtx(()=>[d.value?(e.openBlock(),e.createElementBlock("iframe",{key:0,ref:"iframe",frameborder:"0",src:d.value},null,8,wo)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"])]))}}),Bo=e.defineComponent({name:"NodePathWidget",inheritAttrs:!1,__name:"index",setup(c){const{selected:t,designer:n}=Y(),o=e.computed(()=>(t.value?.path||[]).slice(0).reverse()),l=s=>{n.value?.setSelected(s)},a=s=>{n.value?.setHover(s)};return(s,r)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(y.ElBreadcrumb),{key:0,class:"v-nodepath-widget","separator-icon":e.unref(k.ArrowRight)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,i=>(e.openBlock(),e.createBlock(e.unref(y.ElBreadcrumbItem),{onClick:d=>l(i),onMouseover:d=>a(i)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.name),1)]),_:2},1032,["onClick","onMouseover"]))),256))]),_:1},8,["separator-icon"])):e.createCommentVNode("",!0)}}),xo=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t}=W(),n=e.ref(),o=e.computed(()=>JSON.stringify(t.value?.toDsl()||{},null,2)),l=e.computed(()=>t.value?t.value.name:""),a=async()=>{const r=(n.value?.getEditor()).getValue();if(r&&await re("手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。"))try{const d=JSON.parse(r);t.value?.update(d),H("保存成功")}catch(d){L(d?.message)}};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-schema-widget",title:l.value,subtitle:"手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"json",dark:""},null,8,["model-value"])]),_:1},8,["title"]))}}),So=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t,engine:n}=W(),o=e.ref(),l=e.ref(""),a=e.computed(()=>t.value?`$vtj/vue/${t.value.id}.vue`:""),s=e.computed(()=>t.value?t.value.name:"");return e.watch(t,async r=>{const i=n.project.value;i&&r?l.value=await n.service.genVueContent(i.toDsl(),r.toDsl()):l.value=""},{immediate:!0,deep:!0}),(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-raw-widget",title:s.value,subtitle:a.value,size:"small",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:o,"model-value":l.value,height:"100%",lang:"html",dark:"",readonly:""},null,8,["model-value"])]),_:1},8,["title","subtitle"]))}}),Eo=["src"],No=e.defineComponent({name:"DocsWidget",__name:"index",props:{url:{default:"https://newgateway.gitee.io/vtj/help/index.html"}},setup(c){const t=c,n=e.ref();let o=null;e.onMounted(()=>{o||(o=y.ElLoading.service({target:n.value?.$el}))}),e.onUnmounted(()=>{l(),o=null});const l=()=>{o?.close()};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-docs-widget",size:"small",fit:"",body:{padding:!1},header:!1,ref_key:"panel",ref:n},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref:"frame",src:t.url,onLoad:l},null,40,Eo)]),_:1},512))}}),$o={class:"v-about-widget"},Io={class:"v-about-widget__logo"},Do=["src"],jo=e.createElementVNode("div",{class:"v-about-widget__name"},"VTJ.PRO",-1),Ao={class:"v-about-widget__version"},Fo=e.defineComponent({name:"AboutWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",$o,[e.createElementVNode("div",Io,[e.createElementVNode("img",{src:e.unref(ye)},null,8,Do)]),jo,e.createElementVNode("div",Ao,"版本:"+e.toDisplayString(e.unref(Be)),1)]))}}),A={Logo:lt,EmptyWidget:at,Switcher:Ct,Toolbar:Vt,Actions:St,Pages:Mt,Blocks:Ot,Components:Ht,Outline:qt,History:Gt,Apis:Kt,Deps:Zt,Designer:en,Scripts:an,Properties:sn,Events:cn,Css:un,Directives:dn,Defined:gn,DataSources:bn,Style:Co,Previewer:Vo,NodePath:Bo,Schema:xo,Raw:So,Docs:No,About:Fo},Je=[{name:"Logo",region:"Brand",component:A.Logo},{name:"Switcher",region:"Brand",component:A.Switcher},{name:"Toolbar",region:"Toolbar",component:A.Toolbar},{name:"Actions",region:"Actions",component:A.Actions},{name:"Pages",region:"Apps",component:A.Pages,type:"app",openType:"panel",icon:k.VtjIconDocument,label:"页面管理"},{name:"Blocks",region:"Apps",component:A.Blocks,type:"app",openType:"panel",icon:k.VtjIconComponents,label:"区块管理"},{name:"Components",region:"Apps",component:A.Components,type:"app",openType:"panel",icon:k.VtjIconBlock,label:"组件库"},{name:"Outline",region:"Apps",component:A.Outline,type:"app",openType:"panel",icon:k.VtjIconOutline,label:"大纲树"},{name:"History",region:"Apps",component:A.History,type:"app",openType:"panel",icon:k.VtjIconHistory,label:"历史记录"},{name:"Apis",region:"Apps",component:A.Apis,type:"app",openType:"panel",icon:k.VtjIconApi,label:"API管理"},{name:"Deps",region:"Apps",component:A.Deps,type:"app",openType:"panel",icon:k.VtjIconCategory,label:"依赖管理"},{name:"About",region:"Apps",component:A.About,type:"app",openType:"dialog",icon:k.VtjIconInfo,label:"关于",props:{width:500,height:300}},{name:"Designer",region:"Workspace",component:A.Designer,type:"tab",closable:!1,label:"设计视图"},{name:"Previewer",region:"Preview",component:A.Previewer,type:"tab",closable:!1,label:"预览视图"},{name:"Schema",region:"Workspace",component:A.Schema,type:"tab",closable:!0,label:"DSL视图"},{name:"Raw",region:"Workspace",component:A.Raw,type:"tab",closable:!0,label:"源码视图"},{name:"Docs",region:"Workspace",component:A.Docs,type:"tab",closable:!0,label:"帮助中心"},{name:"Scripts",region:"Settings",component:A.Scripts,type:"tab",group:K.Block,label:"设置"},{name:"Css",region:"Settings",component:A.Css,type:"tab",group:K.Block,label:"CSS"},{name:"DataSources",region:"Settings",component:A.DataSources,type:"tab",group:K.Block,label:"数据源"},{name:"Defined",region:"Settings",component:A.Defined,type:"tab",group:K.Block,label:"定义"},{name:"Properties",region:"Settings",component:A.Properties,type:"tab",group:K.Node,label:"属性"},{name:"Style",region:"Settings",component:A.Style,type:"tab",group:K.Node,label:"样式"},{name:"Events",region:"Settings",component:A.Events,type:"tab",group:K.Node,label:"事件"},{name:"Directives",region:"Settings",component:A.Directives,type:"tab",group:K.Node,label:"指令"},{name:"NodePath",region:"Status",component:A.NodePath}],Le=[{package:"vue",version:"latest",library:"Vue",urls:["@vtj/materials/deps/vue/vue.global.prod.js"],assetsLibrary:w.BUILT_IN_VUE,required:!0,official:!0,enabled:!0},{package:"vue-router",version:"latest",library:"VueRouter",urls:["@vtj/materials/deps/vue-router/vue-router.global.prod.js"],assetsLibrary:w.BUILT_IN_VUE_ROUTER,required:!0,official:!0,enabled:!0},{package:"@vtj/utils",version:"latest",library:"VtjUtils",urls:["@vtj/materials/deps/@vtj/utils/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"@vtj/icons",version:"latest",library:"VtjIcons",urls:["@vtj/materials/deps/@vtj/icons/style.css","@vtj/materials/deps/@vtj/icons/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"element-plus",version:"latest",library:"ElementPlus",urls:["@vtj/materials/deps/element-plus/dark/css-vars.css","@vtj/materials/deps/element-plus/index.css","@vtj/materials/deps/element-plus/index.full.min.js"],assetsUrl:"@vtj/materials/assets/element/index.umd.js",assetsLibrary:"ElementPlusMaterial",required:!1,official:!0,enabled:!0},{package:"echarts",version:"latest",library:"echarts",urls:["@vtj/materials/deps/echarts/echarts.min.js"],required:!1,official:!0,enabled:!0},{package:"@vtj/ui",version:"latest",library:"VtjUI",urls:["@vtj/materials/deps/@vtj/ui/style.css","@vtj/materials/deps/@vtj/ui/index.umd.js"],assetsUrl:"@vtj/materials/assets/ui/index.umd.js",assetsLibrary:"VtjUIMaterial",required:!1,official:!0,enabled:!0},{package:"ant-design-vue",version:"latest",library:"antd",urls:["@vtj/materials/deps/ant-design-vue/rest.css","@vtj/materials/deps/ant-design-vue/dayjs/dayjs.min.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/customParseFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekday.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/localeData.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekOfYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/advancedFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/quarterOfYear.js","@vtj/materials/deps/ant-design-vue/antd.min.js"],assetsUrl:"@vtj/materials/assets/antdv/index.umd.js",assetsLibrary:"AntdvMaterial",required:!1,official:!0,enabled:!1}],Po=[{id:"html",category:"HTML"},{id:"elements",category:"特殊元素"},{id:"components",category:"内置组件"}],To=[{name:"div",label:"容器",categoryId:"html",snippet:{children:"容器文本内容示例"}},{name:"span",label:"内联",categoryId:"html",snippet:{children:"内联容器文本内容示例"}},{name:"a",label:"链接",categoryId:"html",props:[{name:"href",label:"href",setters:"InputSetter"}],snippet:{children:"链接文本内容示例",props:{href:"#"}}},{name:"img",label:"图片",categoryId:"html",childIncludes:!1,props:[{name:"src",label:"src",setters:"InputSetter"},{name:"width",label:"width",setters:"InputSetter"},{name:"height",label:"height",setters:"InputSetter"}],snippet:{props:{src:ye,width:"200",height:"200"}}},{name:"h1",label:"大标题",categoryId:"html",snippet:{children:"标题"}},{name:"h2",label:"中标题",categoryId:"html",snippet:{children:"标题"}},{name:"h3",label:"小标题",categoryId:"html",snippet:{children:"标题"}},{name:"p",label:"段落",categoryId:"html",snippet:{children:"段落文本"}},{name:"component",label:"动态组件",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#component",props:[{name:"is",label:"组件名",setters:"InputSetter"}],snippet:{children:"组件文本内容示例",props:{is:"div"}}},{name:"slot",label:"插槽",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#slot",props:[{name:"name",label:"名称",defaultValue:"default",setters:"InputSetter"}],snippet:{children:"默认插槽内容"}}],Ro=[...To,{name:"Transition",label:"过渡效果",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transition",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"mode",label:"时序",defaultValue:"default",title:"控制离开/进入过渡的时序。",setters:"SelectSetter",options:["in-out","out-in","default"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"Transition"}},{name:"TransitionGroup",label:"过渡效果组",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transitiongroup",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"tag",label:"标签名",defaultValue:void 0,title:"如果未定义,则渲染为片段 (fragment)",setters:"InputSetter"},{name:"moveClass",label:"moveClass",defaultValue:void 0,title:"用于自定义过渡期间被应用的 CSS class。",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"TransitionGroup"}},{name:"KeepAlive",label:"缓存切换组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#keepalive",package:"vue",props:[{name:"include",label:"匹配包含",title:"如果指定,则只有与 `include` 名称, 匹配的组件才会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"exclude",label:"匹配排除",title:"任何名称与 `exclude` 匹配的组件都不会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"max",label:"最大缓存数",title:"最多可以缓存多少组件实例。",setters:["InputSetter"]}]},{name:"Teleport",label:"传送组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#teleport",package:"vue",props:[{name:"to",label:"目标容器",title:"指定目标容器,可以是选择器或实际元素",setters:["InputSetter"]},{name:"disabled",label:"禁用",title:"当值为 `true` 时,内容将保留在其原始位置, 而不是移动到目标容器中, 可以动态更改",setters:["BooleanSetter"]}]},{name:"Suspense",label:"异步依赖",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#suspense",package:"vue",props:[{name:"timeout",label:"timeout",setters:["InputSetter"]}]},{name:"RouterLink",label:"路由链接",categoryId:"components",doc:"https://router.vuejs.org/zh/api/interfaces/RouterLinkProps.html",package:"vue-router",props:[{name:"to",label:"to",setters:["InputSetter"]},{name:"replace",label:"replace",setters:["BooleanSetter"]}],snippet:{children:"RouterLink",props:{to:"/"}}}],Me=[{name:w.BUILT_IN_NAME,version:"latest",label:"内置",library:w.BUILT_IN_NAME,order:0,categories:Po,components:Ro}],zo=e.defineComponent({name:"StringSetter",__name:"string",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElInput),e.mergeProps({clearable:""},t.$attrs),null,16))}}),Jo=e.defineComponent({name:"BooleanSetter",__name:"boolean",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElSwitch),e.mergeProps(t.$attrs,{"model-value":!!t.$attrs.modelValue}),null,16,["model-value"]))}}),Lo="{{",Mo="}}",Oo=e.defineComponent({name:"ExpressionSetter",__name:"expression",props:{modelValue:{},context:{}},emits:["change"],setup(c,{emit:t}){const n=(i="")=>({type:"JSExpression",value:D.isJSExpression(i)?i.value:i}),o=c,l=t,a=i=>X(i,o.context,!0),s=e.ref(n(o.modelValue).value);e.watch(()=>o.modelValue,i=>{s.value=n(i).value},{immediate:!0});const r=i=>{const d={type:"JSExpression",value:i};a(d)&&l("change",d)};return(i,d)=>(e.openBlock(),e.createBlock(e.unref(y.ElInput),{class:"v-expression-setter",modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=m=>s.value=m),onChange:r},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Lo))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Mo))]),_:1},8,["modelValue"]))}}),Xo=e.defineComponent({name:"SelectSetter",__name:"select",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(y.ElSelect),e.mergeProps({clearable:""},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(y.ElOption),e.mergeProps({key:l.label},l),null,16))),128))]),_:1},16))}}),Wo=e.defineComponent({name:"NumberSetter",__name:"number",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>D.isJSExpression(n.modelValue)?void 0:Number(n.modelValue||0)),a=s=>{o("change",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(y.ElInputNumber),e.mergeProps({class:"v-number-setter","controls-position":"right","model-value":l.value},s.$attrs,{onChange:a}),null,16,["model-value"]))}}),Uo=e.defineComponent({name:"ColorSetter",__name:"color",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElColorPicker),e.normalizeProps(e.guardReactiveProps(t.$attrs)),null,16))}}),Ho=e.defineComponent({name:"JsonSetter",__name:"json",props:{modelValue:{default:void 0},type:{default:"JSON"}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(typeof n.modelValue=="object"?JSON.stringify(n.modelValue,null,2):void 0),a=e.computed(()=>!!l.value),s=e.ref(!1),r=t,i=v=>{let f=!0;try{const u=JSON.parse(v);if(n.type==="Array"&&!Array.isArray(u))throw new Error(`"${v}" is not a Array`);if(n.type==="Object"&&!F.isPlainObject(u))throw new Error(`"${v}" is not a PlainObject`);if(typeof u!="object")throw new Error(`"${v}" is not a ${n.type}`)}catch(u){f=!1,y.ElNotification.error({title:"代码错误",message:u?.message||u})}return f},d=()=>{const v=o.value?.getEditor();if(v){const f=v.getValue();i(f)&&(l.value=f,r("change",JSON.parse(f)),s.value=!1)}},m=()=>{l.value="",r("change",void 0),s.value=!1},p=()=>{s.value=!0};return(v,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-json-setter",{"is-active":a.value}])},[e.createVNode(e.unref(y.ElInput),e.mergeProps({readonly:"",onFocus:p,"model-value":n.type,"suffix-icon":e.unref(k.MoreFilled)},v.$attrs),null,16,["model-value","suffix-icon"]),s.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:s.value,"onUpdate:modelValue":f[0]||(f[0]=u=>s.value=u),title:n.type,width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:d,onClear:m},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"codeEditor",ref:o,height:"100%",lang:"json",dark:"","model-value":l.value},null,8,["model-value"])]),_:1},8,["modelValue","title"])):e.createCommentVNode("",!0)],2))}}),qo=e.defineComponent({name:"FunctionSetter",__name:"function",props:{modelValue:{default:()=>({type:"JSFunction",value:""})}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(n.modelValue.value),a=e.ref(!1),s=e.computed(()=>!!l.value),r=t,i=()=>{const p=o.value?.getEditor();if(p){const v=p.getValue(),f={type:"JSFunction",value:v};X(f,{})&&(l.value=v,r("change",f),a.value=!1)}},d=()=>{l.value="",r("change",void 0),a.value=!1},m=()=>{a.value=!0};return(p,v)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-function-setter",{"is-active":s.value}])},[e.createVNode(e.unref(y.ElInput),e.mergeProps({readonly:"",onFocus:m,"model-value":"JSFunction","suffix-icon":e.unref(k.MoreFilled)},p.$attrs),null,16,["suffix-icon"]),a.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:a.value,"onUpdate:modelValue":v[0]||(v[0]=f=>a.value=f),title:"JSFunction",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:i,onClear:d},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"codeEditor",ref:o,height:"100%","model-value":l.value,dark:""},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)],2))}}),Go=e.defineComponent({name:"RadioSetter",__name:"radio",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(y.ElRadioGroup),e.mergeProps({class:"v-radio-setter",size:"small"},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(y.ElRadioButton),{label:l.label,value:l.value,title:l.label},{default:e.withCtx(()=>[l.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:l.svg},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.label),1)],64))]),_:2},1032,["label","value","title"]))),256))]),_:1},16))}}),Ko=["label","title","onClick"],Zo=e.defineComponent({name:"TagSetter",__name:"tag",props:{options:{default:()=>[]},modelValue:{}},emits:["update:modelValue","change"],setup(c,{emit:t}){const n=c,o=t,l=a=>{a.value===n.modelValue?(o("update:modelValue",void 0),o("change",void 0)):(o("update:modelValue",a.value),o("change",a.value))};return(a,s)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"v-tag-setter",size:"small"},a.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.options,r=>(e.openBlock(),e.createElementBlock("span",{label:r.value,title:r.label,class:e.normalizeClass({"is-active":n.modelValue===r.value}),onClick:i=>l(r)},[r.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:r.svg,size:16},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.label),1)],64))],10,Ko))),256))],16))}}),Oe=e.defineComponent({name:"SizeSetter",__name:"size",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!0),a=e.computed(()=>l.value?"px":void 0),s=e.ref(n.modelValue),r=i=>{l.value=!!Number(i)};return e.watch(s,i=>{o("change",i)}),e.watch(()=>n.modelValue,i=>{i&&(l.value=i.endsWith("px"),s.value=i)},{immediate:!0}),(i,d)=>(e.openBlock(),e.createBlock(e.unref(b.XInputUnit),e.mergeProps({clearable:"",unit:a.value,"with-unit":!!a.value,modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=m=>s.value=m),onChange:r},i.$attrs),null,16,["unit","with-unit","modelValue"]))}}),Qo={class:"v-image-setter__plus"},Yo=e.defineComponent({name:"ImageSetter",__name:"image",props:{modelValue:{},limit:{default:1}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref([]),a=e.computed(()=>l.value.length<n.limit),s=i=>i.type.includes("image")?(F.fileToBase64(i).then(d=>{l.value=[{name:i.name,url:d}]}),!1):(y.ElMessage.error("只能上传图片"),!1),r=()=>{l.value=[]};return e.watch(()=>n.modelValue,i=>{l.value=i?[{name:"",url:i}]:[]},{immediate:!0}),e.watch(l,()=>{o("change",l.value[0]?.url)}),(i,d)=>(e.openBlock(),e.createBlock(e.unref(y.ElUpload),e.mergeProps({class:["v-image-setter",{"v-image-setter--addable":a.value}],"list-type":"picture-card",limit:1,action:"#","file-list":l.value,"onUpdate:fileList":d[0]||(d[0]=m=>l.value=m),"before-upload":s,"auto-upload":!0,"on-remove":r},i.$attrs),{default:e.withCtx(()=>[e.createElementVNode("span",Qo,[e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.Plus)},null,8,["icon"])])]),_:1},16,["class","file-list"]))}}),el={class:"v-section-setter"},tl=e.defineComponent({name:"SectionSetter",__name:"section",props:{modelValue:{},sections:{default:4}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(new Array(n.sections).fill(""));e.watch(()=>n.modelValue,s=>{l.value=s?s.split(" "):new Array(n.sections).fill("")},{immediate:!0});const a=()=>{o("change",l.value.join(" ").trim())};return(s,r)=>(e.openBlock(),e.createElementBlock("div",el,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.sections,i=>(e.openBlock(),e.createBlock(Oe,{name:i-1,modelValue:l.value[i-1],"onUpdate:modelValue":d=>l.value[i-1]=d,onChange:a,class:"v-section-setter__item"},null,8,["name","modelValue","onUpdate:modelValue"]))),256))]))}}),nl={class:"v-slider-setter"},ol=e.defineComponent({name:"SliderSetter",__name:"slider",props:{modelValue:{default:void 0}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref();e.watch(()=>n.modelValue,s=>{l.value=s},{immediate:!0}),e.watch(l,s=>{o("change",s),o("update:modelValue",s)});const a=()=>{l.value=void 0,o("change",void 0),o("update:modelValue",void 0)};return(s,r)=>(e.openBlock(),e.createElementBlock("div",nl,[e.createVNode(e.unref(y.ElSlider),e.mergeProps({size:"small"},s.$attrs,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=i=>l.value=i)}),null,16,["modelValue"]),e.createVNode(e.unref(b.XIcon),{onClick:a,class:"v-slider-setter__close",size:16,icon:e.unref(k.Close)},null,8,["icon"])]))}}),z={StringSetter:zo,BooleanSetter:Jo,ExpressionSetter:Oo,SelectSetter:Xo,NumberSetter:Wo,ColorSetter:Uo,IconSetter:Ae,JsonSetter:Ho,FunctionSetter:qo,RadioSetter:Go,TagSetter:Zo,SizeSetter:Oe,ImageSetter:Yo,SectionSetter:tl,SliderSetter:ol},Xe={name:"StringSetter",component:z.StringSetter,type:"String"},We=[{name:"InputSetter",component:z.StringSetter,type:"String"},{name:"StringSetter",component:z.StringSetter,type:"String"},{name:"BooleanSetter",component:z.BooleanSetter,type:"Boolean"},{name:"ExpressionSetter",component:z.ExpressionSetter,type:"Object"},{name:"SelectSetter",component:z.SelectSetter,type:"String"},{name:"NumberSetter",component:z.NumberSetter,type:"Number"},{name:"ColorSetter",component:z.ColorSetter,type:"String"},{name:"IconSetter",component:z.IconSetter,type:"String"},{name:"ObjectSetter",component:z.JsonSetter,type:"Object",props:{type:"Object"}},{name:"ArraySetter",component:z.JsonSetter,type:"Array",props:{type:"Array"}},{name:"JsonSetter",component:z.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"JSONSetter",component:z.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"FunctionSetter",component:z.FunctionSetter,type:"Function"},{name:"RadioSetter",component:z.RadioSetter,type:"String"},{name:"TagSetter",component:z.TagSetter,type:"String"},{name:"SizeSetter",component:z.SizeSetter,type:"String"},{name:"ImageSetter",component:z.ImageSetter,type:"String"},{name:"SectionSetter",component:z.SectionSetter,type:"String"},{name:"SliderSetter",component:z.SliderSetter,type:"Number"},{name:"RangeSetter",component:z.SliderSetter,type:"Array",props:{range:!0}}];class ll{widgets={};constructor(){this.widgets=this.createWidgets()}createWidgets(){const t={};for(const n of Je)t[n.name]=n;return t}register(t){this.widgets[t.name]=t}get(t){return this.widgets[t]}set(t,n){const o=this.widgets[t];if(!o){F.logger.warn(`widget '${t}' is not found`);return}F.merge(o,n),n.component&&(o.component=n.component)}getWidgets(t,n){const o=Object.values(this.widgets);return t?o.filter(l=>l.region===t&&(!n||n&&n===l.group)):o}}const Ce=new ll;class rl{constructor(t=Le){this.deps=t}get(){return this.deps}set(t){this.deps=t}add(t){const n=this.deps.find(o=>o.package===t.package);n?Object.assign(n,t):this.deps.push(t)}merge(t){const n=[];for(const o of this.deps){const l=t.find(a=>a.package===o.package);n.push({...o,...l})}for(const o of t)this.deps.find(a=>a.package===o.package)||n.push(o);return n}remove(t){const n=this.deps.findIndex(o=>o.package===t);n>-1&&this.deps.splice(n,1)}}const Ue=new rl;class al{setters={};defaultSetter=Xe;constructor(){this.setters=this.createSetters()}createSetters(){const t={};for(const n of We)t[n.name]=n;return t}register(t){this.setters[t.name]=t}get(t){return this.setters[t]}set(t,n){const o=this.setters[t];if(!o){F.logger.warn(`setter '${t}' is not found`);return}F.merge(o,n),n.component&&(o.component=n.component)}getByType(t){return Object.values(this.setters).filter(o=>o.type===t).map(o=>o.name)}}const se=new al;function He(c){return new Promise((t,n)=>{const o=e.createApp(Pe,{slots:c,onClose:()=>{o.unmount(),n(null)},onSubmit:l=>{o.unmount(),t(l)}});o.mount(document.createElement("div"))})}class qe{constructor(t,n,o){this.engine=t,this.contentWindow=n,this.dependencies=o,this.document=this.contentWindow.document,this.bindEvents(n,this.document)}proxied={};document=null;hover=e.shallowRef(null);dropping=e.shallowRef(null);selected=e.ref(null);dragging=null;bind(t,n){let o=this.proxied[n];return o||(o=t.bind(this),this.proxied[n]=o),o}bindEvents(t,n){n.addEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.addEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.addEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.addEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.addEventListener("drop",this.bind(this.onDrop,"onDrop")),n.addEventListener("click",this.bind(this.onSelected,"onSelected")),w.emitter.on(w.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),w.emitter.on(w.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}unbindEvents(t,n){n.removeEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.removeEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.removeEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.removeEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.removeEventListener("drop",this.bind(this.onDrop,"onDrop")),n.removeEventListener("click",this.bind(this.onSelected,"onSelected")),w.emitter.off(w.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),w.emitter.off(w.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}onMouseOver(t){const n=this.getHelper(t);n?.model.id!==this.selected.value?.model.id&&(this.hover.value=n)}onViewChange(){this.updateRect()}onLeave(t){this.hover.value=null,this.dropping.value=null}onActiveChange(){this.hover.value=null,this.dropping.value=null,this.selected.value=null}async getDropSlot(t){if(!t)return;const{engine:n}=this,o=n.assets,l=o.componentMap,a=await o.getBlockMaterial(t.from)||l.get(t.name);if(!a?.slots)return;const s=(a?.slots||["default"]).map(i=>typeof i=="string"?{name:i,params:[]}:{name:i.name,params:i.params||[]});if(s.length===0)return;if(s.length===1)return s[0];const r=await He(s).catch(()=>null);if(!(r&&r.name==="default"&&(!r.params||r.params?.length===0)))return r}async onDrop(t){t.preventDefault();const{engine:n,dragging:o,dropping:l}=this,a=n.current.value,s=this.getHelper(t);if(!a||!o||!l.value||!s)return;const r=s.model,i=l.value.type;if(!await this.allowDrop(r,i))return;const d=this.createNodeDsl(o),m=new w.NodeModel(d);if(w.isBlock(r))a.addNode(m,void 0,i);else{const p=await this.getDropSlot(i==="inner"?r:r.parent);if(p===null){this.dropping.value=null;return}m.slot=p,a.addNode(m,r,i)}this.dropping.value=null}onSelected(t){this.setHover(null),this.selected.value=this.getHelper(t)}async onDragOver(t){const n=this.getHelper(t);if(!n)return;const{model:o,type:l}=n;o&&await this.allowDrop(o,l)?(t.preventDefault(),this.dropping.value=n):this.dropping.value=null}isVtjElement(t){return!!t.__vtj__&&!!t.__context__}findVtjElement(t){return t.find(n=>this.isVtjElement(n))}getNodeByElement(t){const n=t.__vtj__??"";return w.NodeModel.nodes[n]||null}getDropType(t,n,o){const{left:l,top:a,width:s,height:r}=t;return n>=l&&n<=l+s*.2?"left":n>=l+s*.8&&n<=l+s?"right":o>=a&&o<=a+r*.2?"top":o>=a+r*.8&&o<=a+r?"bottom":"inner"}getNodePath(t=[]){const n=t.filter(a=>this.isVtjElement(a)),o=this.engine.current.value;return[...n.map(a=>this.getNodeByElement(a)).filter(a=>!!a),o]}setDslFrom(t){const n=this.engine.assets.componentMap.get(t.name);if(t.from=t.from||n?.package,Array.isArray(t.children))for(const o of t.children)this.setDslFrom(o)}createNodeDsl(t){const{name:n,snippet:o={},from:l}=t,a={...o,name:n,from:l||t.package};return this.setDslFrom(a),a}getElmenetByModel(t){return!this.document||!t?null:w.isBlock(t)?this.document.body:Array.from(this.document.querySelectorAll("*")).find(o=>o.__vtj__===t.id)}findPathByNode(t){const n=[t];let o=t;for(;o.parent&&o.parent!==o;)o=o.parent,o!==t&&n.unshift(o);const l=this.engine.current.value;return n.unshift(l),n.reverse()}getHelper(t){const n=t.composedPath()||[],o=this.findVtjElement(n)||this.document?.body;if(!o)return null;const l=this.getNodeByElement(o)||this.engine.current.value;if(!l)return null;const a=o.getBoundingClientRect(),s=this.getDropType(a,t.clientX,t.clientY),r=this.getNodePath(n);return{el:o,model:l,rect:a,type:s,path:r}}cleanHelper(){this.setSelected(null),this.setHover(null),this.setDragging(null),this.setDropping(null)}async updateRect(){await F.delay(100);const t=e.unref(this.selected),n=e.unref(this.hover);if(t){const o=t.el.getBoundingClientRect();this.selected.value={...t,rect:o}}if(n){const o=n.el.getBoundingClientRect();this.hover.value={...n,rect:o}}}setDragging(t){this.dragging=t}async setHover(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t);if(!n)return;const o=n.getBoundingClientRect(),l=w.isBlock(t)?[]:this.findPathByNode(t);this.hover.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.hover.value=null}async setSelected(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t)||this.document?.createElement("span");if(!n)return;const o=n.getBoundingClientRect(),l=w.isBlock(t)?[]:this.findPathByNode(t);this.selected.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.selected.value=null}async setDropping(t,n="inner"){if(await e.nextTick(),t){const o=this.getElmenetByModel(t);if(!o)return;const l=o.getBoundingClientRect(),a=w.isBlock(t)?[]:this.findPathByNode(t);this.dropping.value={el:o,model:t,rect:l,type:n,path:a}}else this.dropping.value=null}async allowDrop(t,n="inner"){const{dragging:o,engine:l}=this,a=l.current.value;if(!o||!a)return!1;if(w.isBlock(t))return!0;const s=l.assets.componentMap,r=n!=="inner"&&t.parent||t,i=await l.assets.getBlockMaterial(r.from)||s.get(r.name);if(!i)return!1;const{parentIncludes:d=!0,name:m}=o,{childIncludes:p=!0}=i,v=d===!0||Array.isArray(d)&&d.includes(r.name),f=p===!0||Array.isArray(p)&&p.includes(m);return v&&f}dispose(){const{contentWindow:t,document:n}=this;this.setSelected(null),this.setHover(null),this.setDragging(null),t&&n&&this.unbindEvents(t,n),this.document=null}}class Ge{constructor(t,n,o=null){this.env=t,this.service=n,this.designer=o,this.nodeChange=this.__onNodeChange.bind(this),this.blockChange=this.__onBlockChange.bind(this)}app=null;dsl=null;nodeChange;blockChange;context=null;install(t){const{library:n,globals:o,VueRouter:l}=this.env;if(l){const s=l.createRouter({history:l.createWebHashHistory(),routes:[]});t.use(s)}const a=Object.values(n);Object.assign(t.config.globalProperties,o),t.config.errorHandler=(s,r,i)=>{const d=r?.$options.name,m=s?.message||s?.msg||"未知错误",p=`[ ${d} ] ${m}`;console.error({err:s,instance:r,info:i}),y.ElNotification.error({title:"运行错误",message:p})},a.forEach(s=>{(typeof s=="function"||typeof s.install=="function")&&t?.use(s)})}render(t){const{window:n,container:o,Vue:l,components:a,library:s,apis:r}=this.env,i=n.document.createElement("div");i.id="app",o.appendChild(i),this.dsl=l.reactive(t.toDsl());const d=D.createLoader({getDsl:async v=>await this.service.getFile(v)||null,options:{mode:D.ContextMode.Design,Vue:l,components:a,libs:s,apis:r,window:n}}),{renderer:m,context:p}=D.createRenderer({Vue:l,mode:D.ContextMode.Design,dsl:this.dsl,components:a,libs:s,apis:r,loader:d,window:n});this.app=l.createApp(m),this.install(this.app);try{this.app.mount(i)}catch(v){L(v.message||"未知错误","运行时错误"),console.error(v)}this.context=p,w.emitter.on(w.EVENT_NODE_CHANGE,this.nodeChange),w.emitter.on(w.EVENT_BLOCK_CHANGE,this.blockChange)}dispose(){if(this.app){this.app.unmount();const t=this.app._container;t&&t.parentNode&&(t.parentNode.removeChild(t),this.app._container=null),this.app=null}this.dsl=null,this.context=null,w.emitter.off(w.EVENT_NODE_CHANGE,this.nodeChange),w.emitter.off(w.EVENT_BLOCK_CHANGE,this.blockChange)}updateChild(t,n){const o=n.children||n.nodes||[];if(Array.isArray(o))for(let l=0;l<o.length;l++){const a=o[l];if(a.id===t.id){o.splice(l,1,t);return}else this.updateChild(t,a)}}__onNodeChange(t){this.dsl&&this.updateChild(t.toDsl(),this.dsl)}__onBlockChange(t){this.dispose(),this.render(t),this.designer?.selected.value&&this.designer.setSelected(t)}}class Ke extends w.Base{contentWindow=null;renderer=null;designer=e.shallowRef(null);engine;materialPath;constructor(t){super();const{engine:n,materialPath:o}=t;this.engine=n,this.materialPath=o,e.watch(this.engine.current,()=>{this.refresh()})}init(t,n,o){e.watch([t,n,o],()=>{t.value&&n.value.length&&(this.resetReady(),this.setup(t.value,n.value),this.contentWindow&&(this.designer.value?.dispose(),this.designer.value=new qe(this.engine,this.contentWindow,n)))},{immediate:!0,deep:!0})}setup(t,n){const o=t.contentWindow;if(!o){F.logger.warn("Simulator contentWindow is null");return}o.__simulator__=this;const l=o.document;this.contentWindow=o;const{scripts:a,css:s,materials:r,libraryExports:i,materialExports:d,materialMapLibrary:m}=D.parseDeps(n,this.materialPath);l.open(),l.write(`
|
|
76
76
|
<!DOCTYPE html>
|
|
77
77
|
<html lang="zh-CN">
|
|
78
78
|
<head>
|
|
@@ -97,8 +97,8 @@
|
|
|
97
97
|
</body>
|
|
98
98
|
<script>
|
|
99
99
|
__simulator__.emitReady(${JSON.stringify(i)},
|
|
100
|
-
${JSON.stringify(
|
|
101
|
-
${JSON.stringify(
|
|
100
|
+
${JSON.stringify(d)},
|
|
101
|
+
${JSON.stringify(m)});
|
|
102
102
|
<\/script>
|
|
103
103
|
</html>
|
|
104
|
-
`),l.close()}async emitReady(t=[],n=[],o={}){this.renderer?.dispose(),this.renderer=null;const l=this.contentWindow,{assets:a,service:s,current:r,provider:i}=this.engine,m=i.materials||{},d=[];for(const v of n){const f=m[v]?(await m[v]()).default:l[v];d.push(f)}a.load(d);const p=this.createEnv(t,o,d);this.renderer=new Ge(p,s,this.designer.value),r.value&&this.renderer.render(r.value),this.triggerReady()}createEnv(t=[],n={},o=[]){const l=this.contentWindow,{engine:a}=this,{project:s,assets:r,provider:i}=a,m=t.reduce((h,_)=>(h[_]=l[_],h),{}),d={},{groups:p,componentMap:v}=r;for(const h of p.value){const _=h.names||[];if(h.name===w.BUILT_IN_NAME)_.forEach(C=>{const B=v.get(C),I=B?.package||"",V=w.BUILT_IN_LIBRARAY_MAP[I],S=m[V];S&&B&&(d[C]=D.getRawComponent(B,S))});else{const C=m[n[h.library||""]];C&&_.forEach(B=>{const I=v.get(B);I?d[B]=D.getRawComponent(I,C):d[B]=C[B]})}}const{adapter:f,globals:u}=i,g=D.createSchemaApis(s.value?.apis,f);return{window:l,Vue:l.Vue,VueRouter:l.VueRouter,library:m,materials:o,components:d,container:l.document.body,apis:g,globals:u}}refresh(){this.renderer?.dispose();const t=this.engine.current.value;t&&this.renderer?.render(t)}dispose(){this.renderer?.dispose(),this.designer.value?.dispose(),this.contentWindow=null,this.renderer=null,this.designer.value=null}}class Ze{constructor(t){this.service=t}components=[];componentMap=new Map;groups=e.ref([]);getCateoryComponents(t,n){const o=n.filter(l=>l.categoryId===t.id&&l.hidden!==!0);return{name:t.id,label:t.category,count:o.length,components:o}}parseGroups(t){const n=[];for(let o of t){const{categories:l,components:a,label:s,name:r,library:i}=o;if(!l||!a)continue;const m=a.filter(f=>!!f.package).map(f=>f.name),d=l.map(f=>this.getCateoryComponents(f,a)),p=d.reduce((f,u)=>u.count+f,0),v={name:o.name,label:s||r,count:p,names:m,library:i,children:d};n.push(v)}return n}load(t){const n=[...Me,...t].filter(o=>!!o);n.sort((o,l)=>o.order-l.order);for(let o of n)o.components&&(this.components=this.components.concat(o.components));this.groups.value=this.parseGroups(n),this.componentMap=F.arrayToMap(this.components,"name")}async getBlockMaterial(t){if(!t||typeof t=="string")return null;const n=t.type==="Schema"?t.id:null;if(!n)return null;const o=await this.service.getFile(n);if(!o)return null;const{id:l,name:a,slots:s,props:r,emits:i}=o,m=p=>{const v=Array.isArray(p)?p:[p];let f=[];for(const u of v)f=f.concat(se.getByType(u));return f};return{id:l,name:a,childIncludes:s?.length?void 0:!1,props:(r||[]).map(p=>typeof p=="string"?{name:p}:{name:p.name,type:p.type,setters:m(p.type)}),events:i,slots:s,from:t}}}const we=Symbol("VtjEngine");class sl extends w.Base{app;skeleton;container;service;assets;simulator;emitter=w.emitter;project=e.ref(null);current=e.ref(null);context=e.ref(null);isEmptyCurrent=e.ref(!1);history=e.ref(null);provider;changed=e.ref(Symbol());constructor(t){super();const{container:n,service:o,project:l={},globals:a={},dependencies:s,materials:r,materialPath:i="./"}=t;this.container=n,this.service=o,this.provider=new D.Provider({mode:D.ContextMode.Design,globals:a,project:l,service:o,dependencies:s,materials:r,materialPath:i}),this.assets=new Ze(this.service),this.simulator=new Ke({engine:this,materialPath:i}),this.bindEvents(),this.init(l),e.onMounted(this.render.bind(this)),e.onUnmounted(this.dispose.bind(this))}async init(t){const n=await this.service.init(t).catch(o=>(F.logger.warn("VTJEngine service init fail.",o),null));n&&(n.dependencies=Ue.merge(n.dependencies||[]),this.project.value=new w.ProjectModel(n),this.saveMaterials(),this.triggerReady())}render(){const t=e.unref(this.container);if(t){const n=e.createApp(Qe);n.provide(we,e.shallowReactive(this)),n.mount(t),this.app=n}else F.logger.warn("VTJEngine constructor param [ container ] is undefined")}bindEvents(){w.emitter.on(w.EVENT_PROJECT_CHANGE,t=>this.saveProject(t)),w.emitter.on(w.EVENT_PROJECT_BLOCKS_CHANGE,t=>this.saveBlockFile(t)),w.emitter.on(w.EVENT_PROJECT_PAGES_CHANGE,t=>this.saveBlockFile(t)),w.emitter.on(w.EVENT_PROJECT_DEPS_CHANGE,()=>this.saveMaterials()),w.emitter.on(w.EVENT_PROJECT_ACTIVED,t=>this.activeFile(t)),w.emitter.on(w.EVENT_PROJECT_PUBLISH,()=>this.publish()),w.emitter.on(w.EVENT_PROJECT_FILE_PUBLISH,()=>this.publishCurrent()),w.emitter.on(w.EVENT_BLOCK_CHANGE,t=>this.changeFile(t)),w.emitter.on(w.EVENT_NODE_CHANGE,()=>this.changeCurrentFile()),w.emitter.on(w.EVENT_HISTORY_CHANGE,t=>this.saveHistory(t)),w.emitter.on(w.EVENT_HISTORY_LOAD,t=>this.loadHistory(t))}async activeFile(t){await e.nextTick();const n=t.model,o=t.model.currentFile;if(o){if(n.isPageFile(o)&&o.raw)return;const l=await this.service.getFile(o.id);l&&(o.dsl=l)}if(o?.dsl){const l=new w.BlockModel(o.dsl);this.updateCurrent(l),this.initHistory(l)}else this.updateCurrent(null);e.triggerRef(this.project)}async changeFile(t){await e.nextTick();const n=t.toDsl();this.service.saveFile(n),this.updateCurrent(t),this.history.value?.add(n),e.triggerRef(this.history)}changeCurrentFile(){this.saveCurrentFile(),this.current.value&&(this.history.value?.add(this.current.value.toDsl()),e.triggerRef(this.history))}async updateCurrent(t,n=!0){this.current.value=t,await e.nextTick(),this.context.value=this.simulator.renderer?.context||null,this.isEmptyCurrent.value=this.current.value?.nodes.length===0,this.changed.value=Symbol(),n&&e.triggerRef(this.context)}async saveProject(t){const o=t.model.toDsl();await this.service.saveProject(o),e.triggerRef(this.project)}async saveBlockFile(t){const n=t.type,o=t.model;if(n==="create"){const l=t.data;o.isPageFile(l)&&l.raw?(await this.service.createRawPage(l),H(`源码文件已经生成:/.vtj/vue/${l.id}.vue`,"success")):l.dsl&&await this.service.saveFile(l.dsl)}if(n==="update"){const l=t.data;if(o.isPageFile(l)&&(l.dir||l.raw))return;const a=await this.service.getFile(l.id);a&&(a.name=l.name,await this.service.saveFile(a))}if(n==="delete"){const l=t.data;l&&o.isPageFile(l)&&l.raw?await this.service.removeRawPage(l.id):l.dir||(await this.service.removeFile(l.id),await this.service.removeHistory(l.id))}if(n==="clone"){const{page:l,newPage:a}=t.data,s=await this.service.getFile(l.id);s&&(s.id=a.id,s.name=a.name,await this.service.saveFile(s))}e.triggerRef(this.project)}async saveMaterials(){await e.nextTick(),this.simulator.ready(()=>{const t=this.project.value;if(t){const n=this.assets.componentMap;this.service.saveMaterials(t.toDsl(),n)}})}saveCurrentFile(){const t=this.current.value;t&&(this.updateCurrent(t),this.service.saveFile(t.toDsl()))}async initHistory(t){if(t){const n=await this.service.getHistory(t.id).catch(()=>null);this.history.value=new w.HistoryModel(Object.assign(n||{},{id:t.id}))}else this.history.value=null}async saveHistory(t){const n=t.type,o=t.model;n==="create"&&await this.service.saveHistoryItem(o.id,t.data),n==="delete"&&await this.service.removeHistoryItem(o.id,t.data),n==="clear"&&await this.service.removeHistoryItem(o.id,t.data);const l=o.toDsl();await this.service.saveHistory(l),e.triggerRef(this.history)}async loadHistory(t){const n=t.model,o=t.data,l=await this.service.getHistoryItem(n.id,o.id);if(l&&l.dsl){const a=new w.BlockModel(l.dsl);await this.updateCurrent(a),e.triggerRef(this.history)}}async publish(){const t=this.project.value;if(t){const n={...t.toDsl(),pages:t.getPages()};await this.service.publish(n)&&H("整站发布成功","success")}}async publishCurrent(){const t=this.project.value,n=t?.currentFile;if(t&&n){const o={...t.toDsl(),pages:t.getPages()};await this.service.publishFile(o,n)&&H("发布成功","success")}}dispose(){this.emitter.all.clear(),this.simulator.dispose(),this.app&&(this.app.unmount(),this.container=void 0)}async openFile(t){const n=this.project.value,o=this.skeleton?.getRegion("Apps"),l=t||n?.homepage;if(!n||!o||!l)return;const a=n.getPage(l);a&&!a.raw&&(o.regionRef?.setActive("Pages"),this.simulator.ready(()=>{n.active(a)}));const s=n.getBlock(l);s&&(o.regionRef?.setActive("Blocks"),this.simulator?.ready(()=>{n.active(s)}))}}function U(){const c=e.inject(we,null);return c||F.logger.error("VTJEngine is not exist"),c}const ee=e.defineComponent({name:"RegionWrapper",props:{region:{type:String,required:!0}},setup(){return{regionRef:e.ref()}},render(){const c=ke[this.region]||ke.EmptyRegion;return e.h(c,{...this.$props,...this.$attrs,ref:"regionRef"})}}),te=e.defineComponent({name:"WidgetWrapper",props:{region:{type:String,required:!0},widget:{type:Object,required:!0}},setup(){return{widgetRef:e.ref()}},render(){return e.h(this.widget.component,{...this.widget.props,...this.$props,...this.$attrs,ref:"widgetRef"})}}),Qe=e.defineComponent({name:"SkeletonWrapper",setup(){const c=e.ref(),t=U(),n=e.ref({});return{skeletonRef:c,engine:t,widgets:n}},mounted(){this.engine.skeleton=this},render(){return e.h(Ye,{...this.$props,...this.$attrs,ref:"skeletonRef"})},methods:{getRegion(c){return this.skeletonRef[c.toLowerCase()]},toggleCollapse(c){if(this.skeletonRef){const t=this.skeletonRef.collapsed;this.skeletonRef.collapsed=c??!t}},settable(c){this.skeletonRef&&(this.skeletonRef.settable=c)},getWidgets(c){const t=this.getRegion(c);return t?F.toArray(t.regionRef?.widgetsRef||[]):[]},getWidget(c){const t=Ce.get(c);if(!t){F.logger.warn(`widget [ ${c} ] is not exsit`);return}return this.getWidgets(t.region).find(o=>o.widget.name===c)},openPreview(c){this.skeletonRef&&(this.skeletonRef.isPreview=!0)},closePreview(){this.skeletonRef&&(this.skeletonRef.isPreview=!1)}}}),N=e.defineComponent({name:"SetterWrapper",props:{context:{type:Object,default:null},current:{type:Object,default:null},name:String,label:String,title:String,value:{type:[String,Object,Array,Number,Boolean],default:void 0},setters:{type:[String,Object,Array],required:!0,default(){return[]}},options:{type:Array,default(){return[]}},variable:{type:Boolean,default:!0},removable:{type:Boolean,default:!1}},computed:{computedSetters(){return(Array.isArray(this.setters)?this.setters:[this.setters]).map(t=>{let n;if(typeof t=="string")return n=this.getSetter(t),{component:e.markRaw(n.component),name:n.name,label:t,props:n.props||{}};{const o=t;return n=this.getSetter(o.name),{component:e.markRaw(o.component||n.component),name:o.name,label:o.label||o.name,props:Object.assign(n.props||{},o.props)}}})},computedOptions(){return(this.options||[]).map(t=>typeof t=="string"?{label:t,value:t}:t)},defaultSetter(){const{value:c,computedSetters:t}=this;let n=typeof c;n==="Object"&&(Array.isArray(c)?n="Array":D.isJSExpression(c)?n="Object":D.isJSFunction(c)&&(n="Function"));const o=se.getByType(n)||[];return o.length?(t.find(l=>o.includes(l.name))||t[0])?.name:t[0]?.name}},render(){const{context:c,current:t,name:n,label:o,title:l,value:a,computedSetters:s,computedOptions:r,variable:i,changeValue:m,defaultSetter:d,removable:p,onRemove:v}=this;return e.h(et,{context:c,current:t,name:n,label:o,title:l,setters:s,defaultSetter:d,variable:i,value:a,removable:p,options:r,onChange:m,onRemove:v})},emits:["change","remove"],methods:{getSetter(c){return typeof c=="string"?se.get(c)||se.defaultSetter:c},changeValue(c){this.$emit("change",this.name,c)},onRemove(c){this.$emit("remove",c)}}}),Ye=e.defineComponent({name:"Skeletion",__name:"skeleton",props:{headerHeight:{default:"36px"},leftWidth:{default:"400px"},rightWidth:{default:"350px"},footerHeight:{default:"20px"}},setup(c,{expose:t}){const n=c,o=e.ref(!1),l=e.ref(parseInt(n.leftWidth)),a=e.ref(parseInt(n.rightWidth)),s={dirs:["e"],maxWidth:600,minWidth:49,onResizing(C,B){l.value=B.elementWidth.value},onEnd(C,B){l.value=B.elementWidth.value}},r={dirs:["w"],maxWidth:600,minWidth:2,onResizing(C,B){a.value=B.elementWidth.value},onEnd(C,B){a.value=B.elementWidth.value}},i=e.ref(),m=e.ref(),d=e.ref(),p=e.ref(),v=e.ref(),f=e.ref(),u=e.ref(),g=e.ref(),h=e.ref(!1),_=e.ref(!1);return t({brand:i,toolbar:m,actions:d,apps:p,workspace:v,settings:f,status:u,collapsed:h,settable:_,leftWidth:l,rightWidth:a,preview:g,isPreview:o}),(C,B)=>(e.openBlock(),e.createBlock(e.unref(y.ElConfigProvider),{locale:e.unref(tt)},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElContainer),{class:"v-skeleton"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElHeader),{class:"v-skeleton__header",height:C.headerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"brand",ref:i,region:"Brand"},null,512),e.createVNode(e.unref(ee),{ref_key:"toolbar",ref:m,region:"Toolbar",preview:o.value},null,8,["preview"]),e.createVNode(e.unref(ee),{ref_key:"actions",ref:d,region:"Actions"},null,512)]),_:1},8,["height"]),e.createVNode(e.unref(y.ElContainer),{class:"v-skeleton__wrapper"},{default:e.withCtx(()=>[o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.ElAside),{key:0,width:n.leftWidth,class:e.normalizeClass(["v-skeleton__left",{"is-collapsed":h.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"apps",ref:p,region:"Apps"},null,512)]),_:1},8,["width","class"])),[[e.unref(b.vResizable),s]]),e.createVNode(e.unref(y.ElMain),{class:"v-skeleton__main"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createBlock(e.unref(ee),{key:0,ref_key:"preview",ref:g,region:"Preview",preview:o.value},null,8,["preview"])):e.createCommentVNode("",!0),e.withDirectives(e.createVNode(e.unref(ee),{ref_key:"workspace",ref:v,region:"Workspace"},null,512),[[e.vShow,!o.value]])]),_:1}),o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.ElAside),{key:1,width:n.rightWidth,class:"v-skeleton__right"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"settings",ref:f,region:"Settings"},null,512)]),_:1},8,["width"])),[[e.vShow,_.value],[e.unref(b.vResizable),r]])]),_:1}),o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElFooter),{key:0,class:"v-skeleton__footer",height:C.footerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"status",ref:u,region:"Status"},null,512)]),_:1},8,["height"]))]),_:1})]),_:1},8,["locale"]))}}),il={key:1},cl={class:"v-setter__content"},ul={key:0,class:"v-setter__input"},dl={class:"v-setter__action"},ml="{{",pl="}}",et=e.defineComponent({__name:"setter",props:{context:{},current:{},name:{},label:{default:""},title:{},setters:{},variable:{type:Boolean,default:!0},value:{},options:{default:()=>[]},defaultSetter:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(""),s=e.ref(n.setters.find(_=>_.name===n.defaultSetter)||n.setters[0]),r=e.ref(n.value),i=e.computed(()=>!!D.isJSExpression(r.value)),m={[s.value.name]:r.value},d=_=>{m[s.value.name]=r.value,s.value=_,r.value=m[_.name]??void 0,p(r.value)};e.watch(()=>n.value,()=>{r.value=n.value}),e.watch(()=>n.defaultSetter,()=>{s.value=n.setters.find(_=>_.name===n.defaultSetter)||n.setters[0]});const p=_=>{o("change",_)},v=()=>{o("remove",n.name)},f=()=>{l.value=!0,a.value=D.isJSExpression(r.value)?r.value.value:""},u=()=>{l.value=!1,a.value=""},g=async _=>X(_,n.context,!0)?(m[s.value.name]=r.value,r.value=_,o("change",_),!0):!1,h=async()=>{await re("确定要解除绑定吗?")&&(u(),r.value=void 0,o("change",""))};return(_,C)=>(e.openBlock(),e.createBlock(e.unref(y.ElFormItem),{class:"v-setter",size:"small","label-positon":"left"},{label:e.withCtx(()=>[n.title?(e.openBlock(),e.createBlock(e.unref(y.ElTooltip),{key:0,placement:"top-start",content:n.title},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label||n.name),1)]),_:1},8,["content"])):(e.openBlock(),e.createElementBlock("span",il,e.toDisplayString(n.label||n.name),1))]),default:e.withCtx(()=>[e.createElementVNode("div",cl,[s.value?(e.openBlock(),e.createElementBlock("div",ul,[i.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value.component),e.mergeProps({key:0,current:n.current,context:n.context},s.value.props,{options:n.options,modelValue:r.value,"onUpdate:modelValue":C[0]||(C[0]=B=>r.value=B),onChange:p,disabled:i.value}),null,16,["current","context","options","modelValue","disabled"])),i.value?(e.openBlock(),e.createBlock(e.unref(y.ElInput),{key:1,class:"v-expression-setter",disabled:"","model-value":"JSExpression"},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ml))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(pl))]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",dl,[n.variable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconVars),{key:0,onClick:f,class:e.normalizeClass(["v-icon-vars",{"is-active":i.value}]),title:"绑定变量"},null,8,["class"])):e.createCommentVNode("",!0),n.setters.length>1?(e.openBlock(),e.createBlock(e.unref(y.ElDropdown),{key:1,disabled:i.value,size:"small","popper-class":"v-setter-switch",onCommand:d},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownMenu),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.setters,B=>(e.openBlock(),e.createBlock(e.unref(y.ElDropdownItem),{command:B,key:B.name},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconCheck),{class:e.normalizeClass({"is-placeholder":B.name!==s.value.name})},null,8,["class"]),e.createTextVNode(" "+e.toDisplayString(B.label),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSwitch),{title:"切换设置器"})]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.removable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconRemove),{key:2,onClick:v,title:"删除"})):e.createCommentVNode("",!0)])]),l.value?(e.openBlock(),e.createBlock(e.unref(Te),{key:0,current:n.current,context:n.context,value:a.value,modelValue:l.value,"onUpdate:modelValue":C[1]||(C[1]=B=>l.value=B),submitMethod:g,onUnbind:h},null,8,["current","context","value","modelValue"])):e.createCommentVNode("",!0)]),_:1}))}}),fl={class:"v-empty-region"},vl=e.defineComponent({name:"EmptyRegion",__name:"empty",props:{region:{}},setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",fl,"找不到符合【"+e.toDisplayString(t.region)+"】名称的区域组件",1))}}),gl={class:"v-brand-region"},hl=e.defineComponent({name:"BrandRegion",inheritAttrs:!1,__name:"brand",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",gl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),bl={class:"v-toolbar-region"},kl=e.defineComponent({name:"ToolbarRegion",__name:"toolbar",props:{region:{},preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r,preview:a.preview},null,8,["region","widget","preview"]))),256))]))}}),yl={class:"v-actions-region"},_l=e.defineComponent({name:"ActionsRegion",inheritAttrs:!1,__name:"actions",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",yl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),Cl={class:"v-apps-region"},wl={class:"v-apps-region__header"},Vl={class:"v-apps-region__top"},Bl={class:"v-apps-region__bottom"},xl={class:"v-apps-region__panels"},Sl=e.defineComponent({name:"AppsRegion",inheritAttrs:!1,__name:"apps",props:{region:{},index:{default:0}},setup(c,{expose:t}){const n=c,o=U(),{widgets:l,widgetsRef:a}=oe(n.region),s=e.computed(()=>l.value.filter(u=>u.openType==="panel")),r=e.computed(()=>l.value.filter(u=>u.openType!=="panel")),i=s.value[n.index],m=e.ref(i),d=e.ref(i),p=u=>{m.value=u,d.value=d.value?.name===u.name?null:u},v=u=>{u.openType==="link"&&u.url&&window.open(u.url),u.openType==="dialog"&&b.createDialog({title:u.label,icon:u.icon,...u.props,content:u.component})};return e.watch(d,u=>{o.skeleton?.toggleCollapse(!u)}),t({widgets:l,widgetsRef:a,setActive:u=>{const g=s.value.find(h=>h.name===u);m.value=g,d.value=g}}),(u,g)=>(e.openBlock(),e.createElementBlock("div",Cl,[e.createElementVNode("div",wl,[e.createElementVNode("div",Vl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,active:m.value?.name===h.name,open:d.value?.name===h.name,onClick:_=>p(h)},null,8,["icon","label","active","open","onClick"]))),128))]),e.createElementVNode("div",Bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,onClick:_=>v(h)},null,8,["icon","label","onClick"]))),128))])]),e.createElementVNode("div",xl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:h.name},[m.value?.name===h.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:a,region:u.region,widget:h},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))])]))}}),El=e.defineComponent({name:"WorkspaceRegion",__name:"workspace",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(f=>({name:f.name,command:f.name,label:f.label,closable:!!f.closable,props:f.props||{},checked:!f.closable}))),s=e.computed(()=>a.filter(f=>!f.closable||f.checked)),r=e.computed(()=>a.map(f=>({...f,disabled:!f.closable}))),i=e.ref(s.value[0]?.name),m=e.computed(()=>a.find(u=>u.name===i.value)?.props||{}),d=f=>{const u=a.find(g=>g.name===f);u&&(u.checked=!1),i.value===f&&(i.value=s.value[0]?.name)},p=f=>{const u=a.find(g=>g.name===f.name);u&&u.closable&&(u.checked=!u.checked,u.checked&&(i.value=u.name),!u.checked&&i.value===u.name&&(i.value=s.value[0]?.name))};return t({currentTab:i,widgets:o,widgetsRef:l,openTab:(f,u={})=>{const g=a.find(h=>h.name===f);g&&(g.props=Object.assign({},g.props,u),g.checked=!0,i.value=g.name)}}),(f,u)=>(e.openBlock(),e.createBlock(e.unref(ie),{class:"v-workspace-region",items:s.value,menus:r.value,modelValue:i.value,"onUpdate:modelValue":u[0]||(u[0]=g=>i.value=g),checkable:"",onRemove:d,onCommand:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.name},[i.value===g.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:f.region,widget:{...g,props:m.value}},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","menus","modelValue"]))}}),Nl=e.defineComponent({name:"SettingsRegion",__name:"settings",props:{region:{}},setup(c,{expose:t}){const n=c,o=U(),{current:l}=W(),{selected:a,isSelectBlock:s}=Y(),r=e.computed(()=>s.value?K.Block:K.Node),{widgets:i,widgetsRef:m}=oe(n.region,r),d=e.ref(),p=e.ref(!1),v=e.computed(()=>i.value.map(h=>({name:h.name,label:h.label,actions:h.name==="Style"?[{name:"switch",icon:k.Switch,background:"hover"}]:void 0}))),f=e.computed(()=>{const h=a.value?.model;return h?o.assets.componentMap.get(h.name)?.doc:null});e.watch(l,h=>{o.skeleton?.settable(!!h)}),e.watch(r,()=>{d.value=v.value[0]?.name},{immediate:!0}),e.watch(d,()=>{p.value=!1});const u=()=>{if(f.value){const h=o.skeleton?.getRegion("Workspace");h&&h.regionRef.openTab("Docs",{url:f.value})}},g=h=>{h.name==="switch"&&(p.value=!p.value)};return t({widgets:i,widgetsRef:m}),(h,_)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-settings-region",fit:"",direction:"column"},{default:e.withCtx(()=>[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,flex:"",justify:"space-between",align:"center",class:"v-settings-region__header"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-settings-region__title"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconLayers)),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(a)?.model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(a)?.model.id),1)])]),_:1}),f.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XAction),{onClick:u,icon:e.unref(k.VtjIconHelp),mode:"text",label:"帮助"},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),e.unref(a)&&!e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:1,grow:"",padding:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(ie),{items:v.value,modelValue:d.value,"onUpdate:modelValue":_[0]||(_[0]=C=>d.value=C),stretch:"",body:{padding:!1},onActionClick:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),C=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:C.name},[d.value===C.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:m,region:h.region,widget:e.unref(F.merge)({props:{isStyleCodeMode:p.value}},C)},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:2,description:"请在左侧画布选中节点"})),e.unref(a)&&e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:3,"image-size":1,description:"节点已被锁定, 禁止编辑"})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),$l={class:"v-status-region"},Il=e.defineComponent({name:"StatusRegion",inheritAttrs:!1,__name:"status",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),Dl=e.defineComponent({name:"PreviewRegion",__name:"preview",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(i=>({name:i.name,command:i.name,label:i.label,closable:!!i.closable,checked:!1}))),s=e.computed(()=>a.filter(i=>!i.closable||i.checked)),r=e.ref(s.value[0]?.name);return t({currentTab:r,widgets:o,widgetsRef:l}),(i,m)=>(e.openBlock(),e.createBlock(e.unref(ie),{class:"v-workspace-region",items:s.value,modelValue:r.value,"onUpdate:modelValue":m[0]||(m[0]=d=>r.value=d)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),d=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:d.name},[r.value===d.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:i.region,widget:d},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))]),_:1},8,["items","modelValue"]))}}),ke={EmptyRegion:vl,Brand:hl,Toolbar:kl,Actions:_l,Apps:Sl,Workspace:El,Settings:Nl,Status:Il,Preview:Dl};exports.API_METHOD_TYPES=Ee;exports.Assets=Ze;exports.Binder=pe;exports.Box=de;exports.Designer=qe;exports.EVENT_MODIFIERS=Ne;exports.Editor=M;exports.Engine=sl;exports.EventBinder=Re;exports.Icon=be;exports.Item=O;exports.KEYBOARD_EVENT_LIST=Se;exports.MOBILE_SIZE=ge;exports.MOUSE_EVENT_LIST=xe;exports.NAME_REGEX=Q;exports.PAD_SIZE=he;exports.Panel=$;exports.RegionType=$e;exports.RegionWrapper=ee;exports.Renderer=Ge;exports.SetterView=et;exports.SetterWrapper=N;exports.Simulator=Ke;exports.Skeleton=Ye;exports.SkeletonWrapper=Qe;exports.SlotsPicker=Pe;exports.Tabs=ie;exports.VTJ_DESIGNER_VERSION=Be;exports.VariableBinder=Te;exports.Viewer=Fe;exports.Viewport=_e;exports.WidgetGroup=K;exports.WidgetWrapper=te;exports.builtInDeps=Le;exports.builtInMaterials=Me;exports.builtInSetters=We;exports.builtInWidgets=Je;exports.confirm=re;exports.createSlotsPicker=He;exports.defaultSetter=Xe;exports.depsManager=Ue;exports.engineKey=we;exports.expressionValidate=X;exports.message=H;exports.notify=L;exports.regions=ke;exports.setterManager=se;exports.setters=z;exports.useEngine=U;exports.widgetManager=Ce;exports.widgets=A;
|
|
104
|
+
`),l.close()}async emitReady(t=[],n=[],o={}){this.renderer?.dispose(),this.renderer=null;const l=this.contentWindow,{assets:a,service:s,current:r,provider:i}=this.engine,d=i.materials||{},m=[];for(const v of n){const f=d[v]?(await d[v]()).default:l[v];m.push(f)}a.load(m);const p=this.createEnv(t,o,m);this.renderer=new Ge(p,s,this.designer.value),r.value&&this.renderer.render(r.value),this.triggerReady()}createEnv(t=[],n={},o=[]){const l=this.contentWindow,{engine:a}=this,{project:s,assets:r,provider:i}=a,d=t.reduce((h,_)=>(h[_]=l[_],h),{}),m={},{groups:p,componentMap:v}=r;for(const h of p.value){const _=h.names||[];if(h.name===w.BUILT_IN_NAME)_.forEach(C=>{const V=v.get(C),S=V?.package||"",B=w.BUILT_IN_LIBRARAY_MAP[S],E=d[B];E&&V&&(m[C]=D.getRawComponent(V,E))});else{const C=d[n[h.library||""]];C&&_.forEach(V=>{const S=v.get(V);S?m[V]=D.getRawComponent(S,C):m[V]=C[V]})}}const{adapter:f,globals:u}=i,g=D.createSchemaApis(s.value?.apis,f);return{window:l,Vue:l.Vue,VueRouter:l.VueRouter,library:d,materials:o,components:m,container:l.document.body,apis:g,globals:u}}refresh(){this.renderer?.dispose();const t=this.engine.current.value;t&&this.renderer?.render(t)}dispose(){this.renderer?.dispose(),this.designer.value?.dispose(),this.contentWindow=null,this.renderer=null,this.designer.value=null,this.resetReady()}}class Ze{constructor(t){this.service=t}components=[];componentMap=new Map;groups=e.ref([]);getCateoryComponents(t,n){const o=n.filter(l=>l.categoryId===t.id&&l.hidden!==!0);return{name:t.id,label:t.category,count:o.length,components:o}}parseGroups(t){const n=[];for(let o of t){const{categories:l,components:a,label:s,name:r,library:i}=o;if(!l||!a)continue;const d=a.filter(f=>!!f.package).map(f=>f.name),m=l.map(f=>this.getCateoryComponents(f,a)),p=m.reduce((f,u)=>u.count+f,0),v={name:o.name,label:s||r,count:p,names:d,library:i,children:m};n.push(v)}return n}load(t){const n=[...Me,...t].filter(o=>!!o);n.sort((o,l)=>o.order-l.order);for(let o of n)o.components&&(this.components=this.components.concat(o.components));this.groups.value=this.parseGroups(n),this.componentMap=F.arrayToMap(this.components,"name")}async getBlockMaterial(t){if(!t||typeof t=="string")return null;const n=t.type==="Schema"?t.id:null;if(!n)return null;const o=await this.service.getFile(n);if(!o)return null;const{id:l,name:a,slots:s,props:r,emits:i}=o,d=p=>{const v=Array.isArray(p)?p:[p];let f=[];for(const u of v)f=f.concat(se.getByType(u));return f};return{id:l,name:a,childIncludes:s?.length?void 0:!1,props:(r||[]).map(p=>typeof p=="string"?{name:p}:{name:p.name,type:p.type,setters:d(p.type)}),events:i,slots:s,from:t}}}const we=Symbol("VtjEngine");class sl extends w.Base{app;skeleton;container;service;assets;simulator;emitter=w.emitter;project=e.ref(null);current=e.ref(null);context=e.ref(null);isEmptyCurrent=e.ref(!1);history=e.ref(null);provider;changed=e.ref(Symbol());constructor(t){super();const{container:n,service:o,project:l={},globals:a={},dependencies:s,materials:r,materialPath:i="./"}=t;this.container=n,this.service=o,this.provider=new D.Provider({mode:D.ContextMode.Design,globals:a,project:l,service:o,dependencies:s,materials:r,materialPath:i}),this.assets=new Ze(this.service),this.simulator=new Ke({engine:this,materialPath:i}),this.bindEvents(),this.init(l),e.onMounted(this.render.bind(this)),e.onUnmounted(this.dispose.bind(this))}async init(t){const n=await this.service.init(t).catch(o=>(F.logger.warn("VTJEngine service init fail.",o),null));n&&(n.dependencies=Ue.merge(n.dependencies||[]),this.project.value=new w.ProjectModel(n),this.saveMaterials(),this.triggerReady())}render(){const t=e.unref(this.container);if(t){const n=e.createApp(Qe);n.provide(we,e.shallowReactive(this)),n.mount(t),this.app=n}else F.logger.warn("VTJEngine constructor param [ container ] is undefined")}bindEvents(){w.emitter.on(w.EVENT_PROJECT_CHANGE,t=>this.saveProject(t)),w.emitter.on(w.EVENT_PROJECT_BLOCKS_CHANGE,t=>this.saveBlockFile(t)),w.emitter.on(w.EVENT_PROJECT_PAGES_CHANGE,t=>this.saveBlockFile(t)),w.emitter.on(w.EVENT_PROJECT_DEPS_CHANGE,()=>this.saveMaterials()),w.emitter.on(w.EVENT_PROJECT_ACTIVED,t=>this.activeFile(t)),w.emitter.on(w.EVENT_PROJECT_PUBLISH,()=>this.publish()),w.emitter.on(w.EVENT_PROJECT_FILE_PUBLISH,()=>this.publishCurrent()),w.emitter.on(w.EVENT_BLOCK_CHANGE,t=>this.changeFile(t)),w.emitter.on(w.EVENT_NODE_CHANGE,()=>this.changeCurrentFile()),w.emitter.on(w.EVENT_HISTORY_CHANGE,t=>this.saveHistory(t)),w.emitter.on(w.EVENT_HISTORY_LOAD,t=>this.loadHistory(t))}async activeFile(t){await e.nextTick();const n=t.model,o=t.model.currentFile;if(o){if(n.isPageFile(o)&&o.raw)return;const l=await this.service.getFile(o.id);l&&(o.dsl=l)}if(o?.dsl){const l=new w.BlockModel(o.dsl);this.updateCurrent(l),this.initHistory(l)}else this.updateCurrent(null);e.triggerRef(this.project)}async changeFile(t){await e.nextTick();const n=t.toDsl();this.service.saveFile(n),this.updateCurrent(t),this.history.value?.add(n),e.triggerRef(this.history)}changeCurrentFile(){this.saveCurrentFile(),this.current.value&&(this.history.value?.add(this.current.value.toDsl()),e.triggerRef(this.history))}async updateCurrent(t,n=!0){this.current.value=t,await e.nextTick(),this.context.value=this.simulator.renderer?.context||null,this.isEmptyCurrent.value=this.current.value?.nodes.length===0,this.changed.value=Symbol(),n&&e.triggerRef(this.context)}async saveProject(t){const o=t.model.toDsl();await this.service.saveProject(o),e.triggerRef(this.project)}async saveBlockFile(t){const n=t.type,o=t.model;if(n==="create"){const l=t.data;o.isPageFile(l)&&l.raw?(await this.service.createRawPage(l),H(`源码文件已经生成:/.vtj/vue/${l.id}.vue`,"success")):l.dsl&&await this.service.saveFile(l.dsl)}if(n==="update"){const l=t.data;if(o.isPageFile(l)&&(l.dir||l.raw))return;const a=await this.service.getFile(l.id);a&&(a.name=l.name,await this.service.saveFile(a))}if(n==="delete"){const l=t.data;l&&o.isPageFile(l)&&l.raw?await this.service.removeRawPage(l.id):l.dir||(await this.service.removeFile(l.id),await this.service.removeHistory(l.id))}if(n==="clone"){const{page:l,newPage:a}=t.data,s=await this.service.getFile(l.id);s&&(s.id=a.id,s.name=a.name,await this.service.saveFile(s))}e.triggerRef(this.project)}async saveMaterials(){await e.nextTick(),this.simulator.ready(()=>{const t=this.project.value;if(t){const n=this.assets.componentMap;this.service.saveMaterials(t.toDsl(),n)}})}saveCurrentFile(){const t=this.current.value;t&&(this.updateCurrent(t),this.service.saveFile(t.toDsl()))}async initHistory(t){if(t){const n=await this.service.getHistory(t.id).catch(()=>null);this.history.value=new w.HistoryModel(Object.assign(n||{},{id:t.id}))}else this.history.value=null}async saveHistory(t){const n=t.type,o=t.model;n==="create"&&await this.service.saveHistoryItem(o.id,t.data),n==="delete"&&await this.service.removeHistoryItem(o.id,t.data),n==="clear"&&await this.service.removeHistoryItem(o.id,t.data);const l=o.toDsl();await this.service.saveHistory(l),e.triggerRef(this.history)}async loadHistory(t){const n=t.model,o=t.data,l=await this.service.getHistoryItem(n.id,o.id);if(l&&l.dsl){const a=new w.BlockModel(l.dsl);await this.updateCurrent(a),e.triggerRef(this.history)}}async publish(){const t=this.project.value;if(t){const n={...t.toDsl(),pages:t.getPages()};await this.service.publish(n)&&H("整站发布成功","success")}}async publishCurrent(){const t=this.project.value,n=t?.currentFile;if(t&&n){const o={...t.toDsl(),pages:t.getPages()};await this.service.publishFile(o,n)&&H("发布成功","success")}}dispose(){this.emitter.all.clear(),this.simulator.dispose(),this.app&&(this.app.unmount(),this.container=void 0)}async openFile(t){const n=this.project.value,o=this.skeleton?.getRegion("Apps"),l=t||n?.homepage;if(!n||!o||!l)return;const a=n.getPage(l);a&&!a.raw&&(o.regionRef?.setActive("Pages"),this.simulator.ready(()=>{n.active(a)}));const s=n.getBlock(l);s&&(o.regionRef?.setActive("Blocks"),this.simulator?.ready(()=>{n.active(s)}))}}function U(){const c=e.inject(we,null);return c||F.logger.error("VTJEngine is not exist"),c}const ee=e.defineComponent({name:"RegionWrapper",props:{region:{type:String,required:!0}},setup(){return{regionRef:e.ref()}},render(){const c=ke[this.region]||ke.EmptyRegion;return e.h(c,{...this.$props,...this.$attrs,ref:"regionRef"})}}),te=e.defineComponent({name:"WidgetWrapper",props:{region:{type:String,required:!0},widget:{type:Object,required:!0}},setup(){return{widgetRef:e.ref()}},render(){return e.h(this.widget.component,{...this.widget.props,...this.$props,...this.$attrs,ref:"widgetRef"})}}),Qe=e.defineComponent({name:"SkeletonWrapper",setup(){const c=e.ref(),t=U(),n=e.ref({});return{skeletonRef:c,engine:t,widgets:n}},mounted(){this.engine.skeleton=this},render(){return e.h(Ye,{...this.$props,...this.$attrs,ref:"skeletonRef"})},methods:{getRegion(c){return this.skeletonRef[c.toLowerCase()]},toggleCollapse(c){if(this.skeletonRef){const t=this.skeletonRef.collapsed;this.skeletonRef.collapsed=c??!t}},settable(c){this.skeletonRef&&(this.skeletonRef.settable=c)},getWidgets(c){const t=this.getRegion(c);return t?F.toArray(t.regionRef?.widgetsRef||[]):[]},getWidget(c){const t=Ce.get(c);if(!t){F.logger.warn(`widget [ ${c} ] is not exsit`);return}return this.getWidgets(t.region).find(o=>o.widget.name===c)},openPreview(c){this.skeletonRef&&(this.skeletonRef.isPreview=!0)},closePreview(){this.skeletonRef&&(this.skeletonRef.isPreview=!1)}}}),$=e.defineComponent({name:"SetterWrapper",props:{context:{type:Object,default:null},current:{type:Object,default:null},name:String,label:String,title:String,value:{type:[String,Object,Array,Number,Boolean],default:void 0},setters:{type:[String,Object,Array],required:!0,default(){return[]}},options:{type:Array,default(){return[]}},variable:{type:Boolean,default:!0},removable:{type:Boolean,default:!1}},computed:{computedSetters(){return(Array.isArray(this.setters)?this.setters:[this.setters]).map(t=>{let n;if(typeof t=="string")return n=this.getSetter(t),{component:e.markRaw(n.component),name:n.name,label:t,props:n.props||{}};{const o=t;return n=this.getSetter(o.name),{component:e.markRaw(o.component||n.component),name:o.name,label:o.label||o.name,props:Object.assign(n.props||{},o.props)}}})},computedOptions(){return(this.options||[]).map(t=>typeof t=="string"?{label:t,value:t}:t)},defaultSetter(){const{value:c,computedSetters:t}=this;let n=typeof c;n==="Object"&&(Array.isArray(c)?n="Array":D.isJSExpression(c)?n="Object":D.isJSFunction(c)&&(n="Function"));const o=se.getByType(n)||[];return o.length?(t.find(l=>o.includes(l.name))||t[0])?.name:t[0]?.name}},render(){const{context:c,current:t,name:n,label:o,title:l,value:a,computedSetters:s,computedOptions:r,variable:i,changeValue:d,defaultSetter:m,removable:p,onRemove:v}=this;return e.h(et,{context:c,current:t,name:n,label:o,title:l,setters:s,defaultSetter:m,variable:i,value:a,removable:p,options:r,onChange:d,onRemove:v})},emits:["change","remove"],methods:{getSetter(c){return typeof c=="string"?se.get(c)||se.defaultSetter:c},changeValue(c){this.$emit("change",this.name,c)},onRemove(c){this.$emit("remove",c)}}}),Ye=e.defineComponent({name:"Skeletion",__name:"skeleton",props:{headerHeight:{default:"36px"},leftWidth:{default:"400px"},rightWidth:{default:"350px"},footerHeight:{default:"20px"}},setup(c,{expose:t}){const n=c,o=e.ref(!1),l=e.ref(parseInt(n.leftWidth)),a=e.ref(parseInt(n.rightWidth)),s={dirs:["e"],maxWidth:600,minWidth:49,onResizing(C,V){l.value=V.elementWidth.value},onEnd(C,V){l.value=V.elementWidth.value}},r={dirs:["w"],maxWidth:600,minWidth:2,onResizing(C,V){a.value=V.elementWidth.value},onEnd(C,V){a.value=V.elementWidth.value}},i=e.ref(),d=e.ref(),m=e.ref(),p=e.ref(),v=e.ref(),f=e.ref(),u=e.ref(),g=e.ref(),h=e.ref(!1),_=e.ref(!1);return t({brand:i,toolbar:d,actions:m,apps:p,workspace:v,settings:f,status:u,collapsed:h,settable:_,leftWidth:l,rightWidth:a,preview:g,isPreview:o}),(C,V)=>(e.openBlock(),e.createBlock(e.unref(y.ElConfigProvider),{locale:e.unref(tt)},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElContainer),{class:"v-skeleton"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElHeader),{class:"v-skeleton__header",height:C.headerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"brand",ref:i,region:"Brand"},null,512),e.createVNode(e.unref(ee),{ref_key:"toolbar",ref:d,region:"Toolbar",preview:o.value},null,8,["preview"]),e.createVNode(e.unref(ee),{ref_key:"actions",ref:m,region:"Actions"},null,512)]),_:1},8,["height"]),e.createVNode(e.unref(y.ElContainer),{class:"v-skeleton__wrapper"},{default:e.withCtx(()=>[o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.ElAside),{key:0,width:n.leftWidth,class:e.normalizeClass(["v-skeleton__left",{"is-collapsed":h.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"apps",ref:p,region:"Apps"},null,512)]),_:1},8,["width","class"])),[[e.unref(b.vResizable),s]]),e.createVNode(e.unref(y.ElMain),{class:"v-skeleton__main"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createBlock(e.unref(ee),{key:0,ref_key:"preview",ref:g,region:"Preview",preview:o.value},null,8,["preview"])):e.createCommentVNode("",!0),e.withDirectives(e.createVNode(e.unref(ee),{ref_key:"workspace",ref:v,region:"Workspace"},null,512),[[e.vShow,!o.value]])]),_:1}),o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.ElAside),{key:1,width:n.rightWidth,class:"v-skeleton__right"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"settings",ref:f,region:"Settings"},null,512)]),_:1},8,["width"])),[[e.vShow,_.value],[e.unref(b.vResizable),r]])]),_:1}),o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElFooter),{key:0,class:"v-skeleton__footer",height:C.footerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"status",ref:u,region:"Status"},null,512)]),_:1},8,["height"]))]),_:1})]),_:1},8,["locale"]))}}),il={key:1},cl={class:"v-setter__content"},ul={key:0,class:"v-setter__input"},dl={class:"v-setter__action"},ml="{{",pl="}}",et=e.defineComponent({__name:"setter",props:{context:{},current:{},name:{},label:{default:""},title:{},setters:{},variable:{type:Boolean,default:!0},value:{},options:{default:()=>[]},defaultSetter:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(""),s=e.ref(n.setters.find(_=>_.name===n.defaultSetter)||n.setters[0]),r=e.ref(n.value),i=e.computed(()=>!!D.isJSExpression(r.value)),d={[s.value.name]:r.value},m=_=>{d[s.value.name]=r.value,s.value=_,r.value=d[_.name]??void 0,p(r.value)};e.watch(()=>n.value,()=>{r.value=n.value}),e.watch(()=>n.defaultSetter,()=>{s.value=n.setters.find(_=>_.name===n.defaultSetter)||n.setters[0]});const p=_=>{o("change",_)},v=()=>{o("remove",n.name)},f=()=>{l.value=!0,a.value=D.isJSExpression(r.value)?r.value.value:""},u=()=>{l.value=!1,a.value=""},g=async _=>X(_,n.context,!0)?(d[s.value.name]=r.value,r.value=_,o("change",_),!0):!1,h=async()=>{await re("确定要解除绑定吗?")&&(u(),r.value=void 0,o("change",""))};return(_,C)=>(e.openBlock(),e.createBlock(e.unref(y.ElFormItem),{class:"v-setter",size:"small","label-positon":"left"},{label:e.withCtx(()=>[n.title?(e.openBlock(),e.createBlock(e.unref(y.ElTooltip),{key:0,placement:"top-start",content:n.title},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label||n.name),1)]),_:1},8,["content"])):(e.openBlock(),e.createElementBlock("span",il,e.toDisplayString(n.label||n.name),1))]),default:e.withCtx(()=>[e.createElementVNode("div",cl,[s.value?(e.openBlock(),e.createElementBlock("div",ul,[i.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value.component),e.mergeProps({key:0,current:n.current,context:n.context},s.value.props,{options:n.options,modelValue:r.value,"onUpdate:modelValue":C[0]||(C[0]=V=>r.value=V),onChange:p,disabled:i.value}),null,16,["current","context","options","modelValue","disabled"])),i.value?(e.openBlock(),e.createBlock(e.unref(y.ElInput),{key:1,class:"v-expression-setter",disabled:"","model-value":"JSExpression"},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ml))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(pl))]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",dl,[n.variable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconVars),{key:0,onClick:f,class:e.normalizeClass(["v-icon-vars",{"is-active":i.value}]),title:"绑定变量"},null,8,["class"])):e.createCommentVNode("",!0),n.setters.length>1?(e.openBlock(),e.createBlock(e.unref(y.ElDropdown),{key:1,disabled:i.value,size:"small","popper-class":"v-setter-switch",onCommand:m},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownMenu),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.setters,V=>(e.openBlock(),e.createBlock(e.unref(y.ElDropdownItem),{command:V,key:V.name},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconCheck),{class:e.normalizeClass({"is-placeholder":V.name!==s.value.name})},null,8,["class"]),e.createTextVNode(" "+e.toDisplayString(V.label),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSwitch),{title:"切换设置器"})]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.removable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconRemove),{key:2,onClick:v,title:"删除"})):e.createCommentVNode("",!0)])]),l.value?(e.openBlock(),e.createBlock(e.unref(Te),{key:0,current:n.current,context:n.context,value:a.value,modelValue:l.value,"onUpdate:modelValue":C[1]||(C[1]=V=>l.value=V),submitMethod:g,onUnbind:h},null,8,["current","context","value","modelValue"])):e.createCommentVNode("",!0)]),_:1}))}}),fl={class:"v-empty-region"},vl=e.defineComponent({name:"EmptyRegion",__name:"empty",props:{region:{}},setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",fl,"找不到符合【"+e.toDisplayString(t.region)+"】名称的区域组件",1))}}),gl={class:"v-brand-region"},hl=e.defineComponent({name:"BrandRegion",inheritAttrs:!1,__name:"brand",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",gl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),bl={class:"v-toolbar-region"},kl=e.defineComponent({name:"ToolbarRegion",__name:"toolbar",props:{region:{},preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r,preview:a.preview},null,8,["region","widget","preview"]))),256))]))}}),yl={class:"v-actions-region"},_l=e.defineComponent({name:"ActionsRegion",inheritAttrs:!1,__name:"actions",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",yl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),Cl={class:"v-apps-region"},wl={class:"v-apps-region__header"},Vl={class:"v-apps-region__top"},Bl={class:"v-apps-region__bottom"},xl={class:"v-apps-region__panels"},Sl=e.defineComponent({name:"AppsRegion",inheritAttrs:!1,__name:"apps",props:{region:{},index:{default:0}},setup(c,{expose:t}){const n=c,o=U(),{widgets:l,widgetsRef:a}=oe(n.region),s=e.computed(()=>l.value.filter(u=>u.openType==="panel")),r=e.computed(()=>l.value.filter(u=>u.openType!=="panel")),i=s.value[n.index],d=e.ref(i),m=e.ref(i),p=u=>{d.value=u,m.value=m.value?.name===u.name?null:u},v=u=>{u.openType==="link"&&u.url&&window.open(u.url),u.openType==="dialog"&&b.createDialog({title:u.label,icon:u.icon,...u.props,content:u.component})};return e.watch(m,u=>{o.skeleton?.toggleCollapse(!u)}),t({widgets:l,widgetsRef:a,setActive:u=>{const g=s.value.find(h=>h.name===u);d.value=g,m.value=g}}),(u,g)=>(e.openBlock(),e.createElementBlock("div",Cl,[e.createElementVNode("div",wl,[e.createElementVNode("div",Vl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,active:d.value?.name===h.name,open:m.value?.name===h.name,onClick:_=>p(h)},null,8,["icon","label","active","open","onClick"]))),128))]),e.createElementVNode("div",Bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,onClick:_=>v(h)},null,8,["icon","label","onClick"]))),128))])]),e.createElementVNode("div",xl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:h.name},[d.value?.name===h.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:a,region:u.region,widget:h},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))])]))}}),El=e.defineComponent({name:"WorkspaceRegion",__name:"workspace",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(f=>({name:f.name,command:f.name,label:f.label,closable:!!f.closable,props:f.props||{},checked:!f.closable}))),s=e.computed(()=>a.filter(f=>!f.closable||f.checked)),r=e.computed(()=>a.map(f=>({...f,disabled:!f.closable}))),i=e.ref(s.value[0]?.name),d=e.computed(()=>a.find(u=>u.name===i.value)?.props||{}),m=f=>{const u=a.find(g=>g.name===f);u&&(u.checked=!1),i.value===f&&(i.value=s.value[0]?.name)},p=f=>{const u=a.find(g=>g.name===f.name);u&&u.closable&&(u.checked=!u.checked,u.checked&&(i.value=u.name),!u.checked&&i.value===u.name&&(i.value=s.value[0]?.name))};return t({currentTab:i,widgets:o,widgetsRef:l,openTab:(f,u={})=>{const g=a.find(h=>h.name===f);g&&(g.props=Object.assign({},g.props,u),g.checked=!0,i.value=g.name)}}),(f,u)=>(e.openBlock(),e.createBlock(e.unref(ie),{class:"v-workspace-region",items:s.value,menus:r.value,modelValue:i.value,"onUpdate:modelValue":u[0]||(u[0]=g=>i.value=g),checkable:"",onRemove:m,onCommand:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.name},[i.value===g.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:f.region,widget:{...g,props:d.value}},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","menus","modelValue"]))}}),Nl=e.defineComponent({name:"SettingsRegion",__name:"settings",props:{region:{}},setup(c,{expose:t}){const n=c,o=U(),{current:l}=W(),{selected:a,isSelectBlock:s}=Y(),r=e.computed(()=>s.value?K.Block:K.Node),{widgets:i,widgetsRef:d}=oe(n.region,r),m=e.ref(),p=e.ref(!1),v=e.computed(()=>i.value.map(h=>({name:h.name,label:h.label,actions:h.name==="Style"?[{name:"switch",icon:k.Switch,background:"hover"}]:void 0}))),f=e.computed(()=>{const h=a.value?.model;return h?o.assets.componentMap.get(h.name)?.doc:null});e.watch(l,h=>{o.skeleton?.settable(!!h)}),e.watch(r,()=>{m.value=v.value[0]?.name},{immediate:!0}),e.watch(m,()=>{p.value=!1});const u=()=>{if(f.value){const h=o.skeleton?.getRegion("Workspace");h&&h.regionRef.openTab("Docs",{url:f.value})}},g=h=>{h.name==="switch"&&(p.value=!p.value)};return t({widgets:i,widgetsRef:d}),(h,_)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-settings-region",fit:"",direction:"column"},{default:e.withCtx(()=>[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,flex:"",justify:"space-between",align:"center",class:"v-settings-region__header"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-settings-region__title"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconLayers)),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(a)?.model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(a)?.model.id),1)])]),_:1}),f.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XAction),{onClick:u,icon:e.unref(k.VtjIconHelp),mode:"text",label:"帮助"},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),e.unref(a)&&!e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:1,grow:"",padding:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(ie),{items:v.value,modelValue:m.value,"onUpdate:modelValue":_[0]||(_[0]=C=>m.value=C),stretch:"",body:{padding:!1},onActionClick:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),C=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:C.name},[m.value===C.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:d,region:h.region,widget:e.unref(F.merge)({props:{isStyleCodeMode:p.value}},C)},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:2,description:"请在左侧画布选中节点"})),e.unref(a)&&e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:3,"image-size":1,description:"节点已被锁定, 禁止编辑"})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),$l={class:"v-status-region"},Il=e.defineComponent({name:"StatusRegion",inheritAttrs:!1,__name:"status",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),Dl=e.defineComponent({name:"PreviewRegion",__name:"preview",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(i=>({name:i.name,command:i.name,label:i.label,closable:!!i.closable,checked:!1}))),s=e.computed(()=>a.filter(i=>!i.closable||i.checked)),r=e.ref(s.value[0]?.name);return t({currentTab:r,widgets:o,widgetsRef:l}),(i,d)=>(e.openBlock(),e.createBlock(e.unref(ie),{class:"v-workspace-region",items:s.value,modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=m=>r.value=m)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),m=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:m.name},[r.value===m.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:i.region,widget:m},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))]),_:1},8,["items","modelValue"]))}}),ke={EmptyRegion:vl,Brand:hl,Toolbar:kl,Actions:_l,Apps:Sl,Workspace:El,Settings:Nl,Status:Il,Preview:Dl};exports.API_METHOD_TYPES=Ee;exports.Assets=Ze;exports.Binder=pe;exports.Box=de;exports.Designer=qe;exports.EVENT_MODIFIERS=Ne;exports.Editor=M;exports.Engine=sl;exports.EventBinder=Re;exports.Icon=be;exports.Item=O;exports.KEYBOARD_EVENT_LIST=Se;exports.MOBILE_SIZE=ge;exports.MOUSE_EVENT_LIST=xe;exports.NAME_REGEX=Q;exports.PAD_SIZE=he;exports.Panel=I;exports.RegionType=$e;exports.RegionWrapper=ee;exports.Renderer=Ge;exports.SetterView=et;exports.SetterWrapper=$;exports.Simulator=Ke;exports.Skeleton=Ye;exports.SkeletonWrapper=Qe;exports.SlotsPicker=Pe;exports.Tabs=ie;exports.VTJ_DESIGNER_VERSION=Be;exports.VariableBinder=Te;exports.Viewer=Fe;exports.Viewport=_e;exports.WidgetGroup=K;exports.WidgetWrapper=te;exports.builtInDeps=Le;exports.builtInMaterials=Me;exports.builtInSetters=We;exports.builtInWidgets=Je;exports.confirm=re;exports.createSlotsPicker=He;exports.defaultSetter=Xe;exports.depsManager=Ue;exports.engineKey=we;exports.expressionValidate=X;exports.message=H;exports.notify=L;exports.regions=ke;exports.setterManager=se;exports.setters=z;exports.useEngine=U;exports.widgetManager=Ce;exports.widgets=A;
|