@vtj/designer 0.7.6 → 0.7.7
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 +4 -4
- package/dist/index.mjs +698 -691
- package/dist/style.css +1 -1
- package/package.json +8 -8
- package/types/framework/engine.d.ts +4 -0
- package/types/version.d.ts +2 -2
package/dist/index.cjs
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
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.7
|
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
|
7
|
-
*/const _e="0.7.6",de={width:390,height:844},me={width:1180,height:820},H=/^[A-Za-z_$][\w_-]*$/,ye=["click","dblclick","mouseenter","mouseleave","mousedown","mouseup","mouseover","contextmenu"],we=["keydown","keyup","keypress"],Ce=["GET","POST","PUT","PATCH","DELETE","JSONP"],Ve=["stop","prevent","capture","self","once","passive"];var J=(i=>(i.Block="block",i.Node="node",i))(J||{}),Be=(i=>(i.Brand="Brand",i.Toolbar="Toolbar",i.Actions="Actions",i.Apps="Apps",i.Workspace="Workspace",i.Settings="Settings",i.Status="Status",i.Preview="Preview",i))(Be||{});const xe="data:image/png;base64,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",Ke=["title","src"],Ze={key:1},Qe=e.defineComponent({name:"LogoWidget",inheritAttrs:!1,__name:"index",props:{icon:{default:xe},text:{default:"VTJ"},link:{}},setup(i){const t=i,n=()=>{t.link&&(location.href=t.link)};return(o,r)=>(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,Ke)):(e.openBlock(),e.createElementBlock("span",Ze,e.toDisplayString(t.text),1))]))}}),Ye={class:"v-empty-widget"},et=e.defineComponent({name:"EmptyWidget",__name:"index",setup(i){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Ye,"EmptyWidget"))}});function Ee(){const i=O(),t=e.computed(()=>i.project.value?.dependencies??[]);return{engine:i,dependencies:t}}function Y(i,t){const n=e.computed(()=>he.getWidgets(e.unref(i),e.unref(t)).filter(r=>!r.invisible)),o=e.ref();return{widgets:n,widgetsRef:o}}function Se(){const i=O();return{span:e.computed(()=>{const r=i.skeleton?.skeletonRef.leftWidth||400,l=Math.min(Math.floor((r-50)/120),24);return Math.floor(24/l)}),engine:i}}function tt(){const i=O(),t=e.computed(()=>i.project.value?.blocks??[]);return{engine:i,blocks:t}}const nt=(i=[])=>i.map(t=>t.name);function ot(){const i=O(),{components:t,groups:n,componentMap:o}=i.assets,r=e.reactive({}),l=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})):[]),a=e.ref(s.value[0]?.name),c=e.ref(""),d=e.computed(()=>l.value[a.value]);e.watchEffect(()=>{const p=s.value.reduce((v,f)=>(v[f.name]=nt(l.value[f.name].children),v),{});Object.assign(r,p)});const m=e.computed(()=>{const p=c.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:l,tabs:s,model:r,currentTab:a,currentGroup:d,searchKey:c,searchResult:m}}function z(){const i=O(),t=e.computed(()=>i.current.value),n=e.computed(()=>i.context.value),o=e.computed(()=>i.isEmptyCurrent.value);return{engine:i,current:t,isEmpty:o,context:n}}function rt(i,t){const n=O();n.simulator.init(i,t);const o=e.computed(()=>n.simulator.designer.value),r=e.computed(()=>ce("hover",o.value?.hover.value)),l=e.computed(()=>ce("dropping",o.value?.dropping.value)),s=e.computed(()=>ce("selected",o.value?.selected.value));return{designer:o,dropping:l,hover:r,selected:s}}function lt(i,t=!0){const{top:n,height:o,width:r,left:l}=i||{};if(o>100&&r>200)return"inner";let s,a;return a=n>30?"top":"bottom",s=t||l<300&&r<300?"left":"right",[s,a].join("-")}function at(i){const{rect:t,type:n}=i,{left:o,width:r,top:l,height:s}=t,a={left:o,width:r,top:l,height:s};switch(n){case"left":a.left=0,a.width=0;break;case"right":a.left=a.left+a.width-4,a.width=0;break;case"bottom":a.top=a.top+a.height-4,a.height=0;break;case"top":a.height=0;break}return a}function ce(i,t){if(!t)return null;const{left:n,top:o,width:r,height:l}=i==="dropping"?at(t):t.rect,s={left:`${n}px`,top:`${o}px`,width:`${r}px`,height:`${l}px`,visibility:r||l?"visible":"hidden"};return{...t,style:s,position:lt(t.rect,i!=="selected")}}function K(){const i=O(),t=e.computed(()=>i.simulator.designer.value),n=e.computed(()=>t.value?.selected.value),o=e.computed(()=>w.isBlock(n.value?.model));return{engine:i,designer:t,selected:n,isSelectBlock:o}}function st(i,t){const n=e.ref(""),{selected:o,isSelectBlock:r}=K(),l=e.computed(()=>o.value?.model.id),s=e.computed(()=>{const c=e.toValue(i),d=e.toValue(t),m=[];if(!c)return m;const p=d?.__contextRefs[l.value||""],f=d===p||r.value?[]:Object.keys(p?.context||{}).filter(C=>!["context","ref"].includes(C)).map(C=>`this.context.${C}`);f.length&&m.push({title:"上下文",items:f});const u=c.inject.map(C=>`this.${C.name}`);u.length&&m.push({title:"注入",items:u});const h=c.props.map(C=>typeof C=="string"?`this.$props.${C}`:`this.$props.${C.name}`);h.length&&m.push({title:"属性",items:h});const g=Object.keys(c.state).map(C=>`this.state.${C}`);g.length&&m.push({title:"状态",items:g});const _=Object.keys(c.computed).map(C=>`this.${C}.value`);_.length&&m.push({title:"计算属性",items:_});const y=Object.keys(c.methods).map(C=>`this.${C}`);y.length&&m.push({title:"方法",items:y});const V=Object.keys(c.dataSources).map(C=>`this.${C}`);V.length&&m.push({title:"数据源",items:V});const D=Object.keys(d?.$refs||{}).map(C=>`this.$refs.${C}`);return D.length&&m.push({title:"refs",items:D}),m}),a=e.computed(()=>{if(!n.value)return s.value;const c=n.value.toLowerCase(),d=[];return s.value.forEach(m=>{const p=m.items.filter(v=>v.toLowerCase().includes(c));p.length&&d.push({title:m.title,items:p})}),d});return{keyword:n,options:s,searchResult:a}}const le=[{name:"StringSetter",label:"文本"},{name:"ExpressionSetter",label:"表达式"}];function it(i){const t=O(),n=e.computed(()=>{const p=i.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 r=e.computed(()=>n.value?[{name:"key",setters:le,value:n.value.getPropValue("key")},{name:"ref",setters:le,value:n.value.getPropValue("ref")},{name:"class",label:"class",setters:le,value:n.value.getPropValue("class")},{name:"children",label:"文本",title:"如设置组件文本,将清空子组件",setters:le,value:Array.isArray(n.value.children)?"":n.value.children}]:[]),l=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=>r.value.some(v=>v.name===p)||l.value.some(v=>v.name===p)||p==="style",a=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:r,componentProps:l,customProps:a,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 T(i,t="提示"){return b.ElNotification.warning({title:t,message:i})}async function ee(i){return await b.ElMessageBox.confirm(i,"提示",{type:"warning"}).catch(()=>!1)}function W(i,t="success"){return b.ElMessage({message:i,type:t})}function M(i,t,n=!1){let o=!0;try{i.type==="JSExpression"?E.parseExpression(i,t,n,!0):E.parseFunction(i,t,n,!0)}catch(r){o=!1,b.ElNotification.error({title:"代码错误",message:r.message})}return o}function Ne(){const i=O(),t=e.computed(()=>i.simulator.designer.value),n=e.computed(()=>i.current.value?i.history.value:null),o=e.computed(()=>n.value?.items.length||0),r=()=>{t.value?.cleanHelper(),n.value?.forward()},l=()=>{n.value?.backward(),t.value?.cleanHelper()},s=d=>{t.value?.cleanHelper(),n.value?.load(d),W("已载入历史记录","success")},a=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)<=0),c=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)>=o.value-1);return{engine:i,history:n,total:o,forward:r,backward:l,load:s,forwardDisabled:a,backwardDisabled:c}}function se(){const i=O(),t=e.computed(()=>i.project.value);return{engine:i,project:t}}function ct(i){const t=O(),n=e.computed(()=>{const a=i.value?.model||null;return w.isBlock(a)?null:a}),o=e.ref();e.watch(n,async a=>{a?.from?o.value=await t.assets.getBlockMaterial(a.from)||void 0:o.value=void 0});const r=e.computed(()=>{if(w.isBlock(n.value))return[];const a=n.value?.events||{};return ye.map(c=>({name:c,event:a[c]}))}),l=e.computed(()=>{if(w.isBlock(n.value))return[];const a=n.value?.events||{};return we.map(c=>({name:c,event:a[c]}))}),s=e.computed(()=>{if(!n.value||w.isBlock(n.value))return[];const a=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:a[m]}})});return{mouseEventList:r,keyboardEventList:l,componentEventList:s}}const be=(i,t)=>new w.DirectiveModel({name:i,value:void 0,iterator:t}),ut=(i="modelValue")=>new w.DirectiveModel({name:"vModel",value:void 0,arg:i});function dt(i){if(!i)return[];const{props:t=[],events:n=[]}=i;if(t.length&&n.length){const o=n.filter(r=>(typeof r=="string"?r:r.name).startsWith("update:")).map(r=>r=typeof r=="string"?r:r.name);return o.length?t.filter(r=>o.some(l=>l.includes(r.name))):[]}return[]}function mt(i){const t=O(),n=e.computed(()=>{const u=i.value?.model||null;return w.isBlock(u)?null:u}),o=u=>e.computed(()=>n.value&&(n.value.directives||[]).find(h=>h.name===u)||be(u)),r=()=>e.computed(()=>{if(!n.value)return[];const u=t.assets.componentMap.get(n.value.name||"");return(u?dt(u):[]).map(g=>(n.value?.directives||[]).find(_=>_.name==="vModel"&&_.arg==g.name)||ut(g.name))}),l=o("vIf"),s=o("vShow"),a=o("vBind"),c=o("vFor"),d=r(),m={vIf:l,vShow:s,vBind:a,vFor:c};return{engine:t,node:n,vIf:l,vShow:s,vBind:a,vFor:c,vModels:d,onValueChange:(u,h)=>{const g=m[u];n.value&&(h?(g.value.value=h,n.value.setDirective(g.value)):(g.value.value=void 0,n.value.removeDirective(g.value)))},onForChange:(u,h)=>{if(n.value){if(u==="value"){h?(c.value.value=h,n.value.setDirective(c.value)):n.value.removeDirective(c.value);return}(u==="item"||u==="index")&&(c.value.iterator={...c.value.iterator,[u]:h||void 0},n.value.setDirective(c.value))}},onModelChange:(u,h)=>{if(!n.value)return;const g=parseInt(u),_=d.value[g];_&&(h?(_.value=h,n.value.setDirective(_)):(_.value=void 0,n.value.removeDirective(_)))}}}function pt(){const{engine:i,project:t}=se(),n=e.computed(()=>t.value?.apis||[]);return{engine:i,project:t,apis:n}}const ft={class:"v-switcher-widget"},vt={key:1},gt=e.defineComponent({name:"SwitcherWidget",inheritAttrs:!1,__name:"index",emits:["click"],setup(i,{emit:t}){const n=t,{engine:o}=z(),r=e.computed(()=>o.project.value?.name),l=e.computed(()=>o.project.value?.currentFile?.title),s=()=>{n("click",o.project.value)};return(a,c)=>(e.openBlock(),e.createElementBlock("div",ft,[e.createVNode(e.unref(b.ElButton),{size:"small",round:"",onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconBack),{class:"v-switcher-widget__back"}),e.createElementVNode("span",null,e.toDisplayString(r.value),1),l.value?(e.openBlock(),e.createBlock(e.unref(b.ElDivider),{key:0,direction:"vertical"})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("span",vt,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]),_:1})]))}}),ht={class:"v-toolbar-widget"},kt=e.defineComponent({name:"ToolbarWidget",inheritAttrs:!1,__name:"index",props:{preview:{type:Boolean}},setup(i,{expose:t}){const n=i,{forward:o,backward:r,forwardDisabled:l,backwardDisabled:s}=Ne(),a=e.ref("pc");return t({mode:a}),(c,d)=>(e.openBlock(),e.createElementBlock("div",ht,[e.createVNode(e.unref(b.ElRadioGroup),{size:"small",modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=m=>a.value=m)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElRadioButton),{label:"pc"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPc))]),_:1}),e.createVNode(e.unref(b.ElRadioButton),{label:"mobile"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPhone))]),_:1}),e.createVNode(e.unref(b.ElRadioButton),{label:"pad"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPad))]),_:1})]),_:1},8,["modelValue"]),e.createCommentVNode("",!0),e.createVNode(e.unref(b.ElButtonGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElButton),{type:"default",size:"small",onClick:e.unref(r),disabled:e.unref(s)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconUndo))]),_:1},8,["onClick","disabled"]),e.createVNode(e.unref(b.ElButton),{type:"default",size:"small",onClick:e.unref(o),disabled:e.unref(l)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconRedo))]),_:1},8,["onClick","disabled"])]),_:1})]))}}),bt={class:"v-actions-widget"},_t=e.createElementVNode("span",null,"发布",-1),yt=e.defineComponent({name:"ActionsWidget",inheritAttrs:!1,__name:"index",props:{coder:{type:Boolean,default:!0}},setup(i){const{engine:t,designer:n}=K(),o=e.ref(!1),r=()=>{t.current.value?(o.value?t.skeleton?.getWidget("Previewer")?.widgetRef.refresh():(n.value?.setSelected(null),t.simulator.refresh()),W("刷新完成","success")):W("请先打开文件","warning")},l=async()=>{t.current.value?(o.value&&(t.skeleton?.closePreview(),o.value=!1,await L.delay(1e3)),n.value?.setSelected(t.current.value)):W("请先打开文件","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 W("请先打开文件","warning")},a=()=>{const d=t.project.value;d&&(d.currentFile?d.publish(d.currentFile):W("请先打开文件","warning"))},c=d=>{const m=t.project.value;m&&(d==="current"?a():m.publish())};return(d,m)=>(e.openBlock(),e.createElementBlock("div",bt,[e.createVNode(e.unref(b.ElBadge),{value:0,max:99,hidden:!0},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XAction),{mode:"icon",icon:e.unref(B.VtjIconBug),background:"hover"},null,8,["icon"])]),_:1}),e.createVNode(e.unref(b.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(b.ElButton),{onClick:s,type:o.value?"warning":"default",size:"small",title:"预览"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPreview))]),_:1},8,["type"]),e.createVNode(e.unref(b.ElButton),{onClick:r,type:"default",size:"small",title:"刷新"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconRefresh))]),_:1}),e.createVNode(e.unref(b.ElButton),{type:"default",size:"small",title:"页面设置",onClick:l},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconSetting))]),_:1}),e.createVNode(e.unref(b.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(b.ElDropdown),{"split-button":"",type:"primary",size:"small",onClick:a,onCommand:c},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(b.ElDropdownMenu),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElDropdownItem),{command:"current"},{default:e.withCtx(()=>[e.createTextVNode("发布页面")]),_:1}),e.createVNode(e.unref(b.ElDropdownItem),{command:"project"},{default:e.withCtx(()=>[e.createTextVNode("整站发布")]),_:1})]),_:1})]),default:e.withCtx(()=>[_t]),_:1})]))}}),wt={class:"v-icon-setter"},Ct={class:"v-icon-setter__content"},Vt={class:"v-icon-setter__list"},De=e.defineComponent({name:"IconSetter",__name:"icon",props:{modelValue:{default:""},size:{default:"small"}},emits:["change","update:modelValue"],setup(i,{emit:t}){const n=i,o=t,r=e.ref(!1),l=e.ref(n.modelValue),s=e.ref(""),a=e.computed(()=>B.icons[n.modelValue]||n.modelValue),c=e.computed(()=>{const f=Object.entries(B.icons);return s.value?f.filter(u=>u[0].toLowerCase().includes(s.value)):f}),d=f=>{l.value=f},m=()=>{o("change",l.value),o("update:modelValue",l.value),r.value=!1},p=()=>{l.value="",o("change",""),o("update:modelValue",""),r.value=!1},v=()=>{r.value=!0};return(f,u)=>(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(e.unref(b.ElInput),{size:n.size,readonly:"",placeholder:"请选择图标","model-value":n.modelValue,"suffix-icon":e.unref(B.ArrowDown),onFocus:v},{prepend:e.withCtx(()=>[e.createVNode(e.unref(k.XIcon),{icon:a.value},null,8,["icon"])]),_:1},8,["size","model-value","suffix-icon"]),r.value?(e.openBlock(),e.createBlock(e.unref(k.XDialog),{key:0,title:"图标选择器",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",modelValue:r.value,"onUpdate:modelValue":u[1]||(u[1]=h=>r.value=h),onSubmit:m},{extra:e.withCtx(()=>[e.createVNode(e.unref(b.ElButton),{size:"default",type:"warning",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 清除绑定 ")]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Ct,[e.createVNode(e.unref(b.ElInput),{size:n.size,"prefix-icon":e.unref(B.Search),clearable:"",modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=h=>s.value=h),placeholder:"请输入查询关键字"},null,8,["size","prefix-icon","modelValue"]),e.createElementVNode("div",Vt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createBlock(e.unref(k.XIcon),{icon:h[1],onClick:g=>d(h[0]),class:e.normalizeClass({"is-active":l.value===h[0]})},null,8,["icon","onClick","class"]))),256)),c.value.length===0?(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0})):e.createCommentVNode("",!0)])])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]))}}),Bt=e.defineComponent({name:"PageForm",__name:"form",props:{item:{},parentId:{}},setup(i){const t=i,{project:n}=se(),o=e.computed(()=>t.item?"编辑页面":"新增页面"),r=()=>({dir:!1,name:"",title:"",icon:"",mask:!0,hidden:!1,raw:!1}),l=e.ref(t.item||r()),s=[{label:"页面",value:!1},{label:"目录",value:!0}],a=d=>{l.value&&(l.value.name=L.upperFirstCamelCase(d))},c=async d=>n.value?.existPageName(d.name,[d.id])?(T("页面名称已存在,请更换"),!1):(t.item?n.value?.updatePage(d):n.value?.createPage(d,t.parentId),!0);return(d,m)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:o.value,width:"800px",height:"500px","form-props":{tooltipMessage:!1},model:l.value,"submit-method":c},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"dir",label:"类型",editor:"radio",options:s,props:{button:!0,size:"small"},disabled:!!t.item,required:""},null,8,["disabled"]),e.createVNode(e.unref(k.XField),{name:"name",label:"名称",required:"",onChange:a,rules:{pattern:e.unref(H),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(k.XField),{name:"title",label:"标题",required:""}),e.createVNode(e.unref(k.XField),{name:"icon",label:"菜单图标",editor:"none"},{editor:e.withCtx(()=>[e.createVNode(De,{modelValue:l.value.icon,"onUpdate:modelValue":m[0]||(m[0]=p=>l.value.icon=p),size:"default"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(k.XField),{visible:{dir:!1},name:"mask",label:"包含母版",editor:"switch"}),e.createVNode(e.unref(k.XField),{name:"hidden",label:"隐藏菜单",editor:"switch"}),e.createVNode(e.unref(k.XField),{visible:{dir:!1},disabled:!!t.item,inline:"",name:"raw",label:"源码模式",editor:"switch",tip:"页面是非低代码开发,不能在线编辑"},null,8,["disabled"])]),_:1},8,["title","model"]))}}),pe=e.defineComponent({name:"VIcon",__name:"Icon",props:{icon:{},label:{},active:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:["click"],setup(i,{emit:t}){const n=i,o=t,r=e.computed(()=>({"is-active":n.active,"is-open":n.open})),l=()=>{o("click")};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(b.ElTooltip),{effect:"dark",placement:"right",content:s.label,"show-after":600},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["v-apps-region__icon",r.value]),onClick:l},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))],2)]),_:1},8,["content"]))}}),A=e.defineComponent({name:"VPanel",__name:"panel",props:{title:{},subtitle:{},plus:{type:Boolean},back:{type:Boolean},remove:{type:Boolean},save:{type:Boolean},header:{type:Boolean,default:!0}},emits:["plus","back","remove","save"],setup(i,{emit:t}){const n=i,o=t,r=()=>{o("plus")},l=()=>{o("back")},s=()=>{o("remove")},a=()=>{o("save")},c=e.computed(()=>n.header?{content:n.title,subtitle:n.subtitle,icon:n.back?B.Back:void 0,onClickBack:n.back?l:void 0}:null);return(d,m)=>(e.openBlock(),e.createBlock(e.unref(k.XPanel),{class:"v-panel",border:!1,header:c.value,fit:""},e.createSlots({actions:e.withCtx(()=>[n.plus?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:0,size:d.$attrs.size,mode:"icon",icon:e.unref(B.VtjIconPlus),background:"hover",title:"新增",onClick:r},null,8,["size","icon"])):e.createCommentVNode("",!0),n.remove?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:1,size:d.$attrs.size,mode:"icon",icon:e.unref(B.Delete),background:"hover",title:"清除",onClick:s},null,8,["size","icon"])):e.createCommentVNode("",!0),n.save?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:2,size:d.$attrs.size,mode:"icon",icon:e.unref(B.VtjIconSave),background:"hover",title:"保存",onClick:a},null,8,["size","icon"])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"actions")]),default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:2},[d.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"footer")]),key:"0"}:void 0]),1032,["header"]))}}),xt={class:"v-tabs__header"},Et={key:0,class:"v-tabs__actions"},oe=e.defineComponent({__name:"tabs",props:{items:{default:()=>[]},menus:{},modelValue:{},stretch:{type:Boolean},checkable:{type:Boolean}},emits:["update:modelValue","command","remove"],setup(i,{emit:t}){const n=i,o=t,r=e.ref((n.modelValue||n.items[0]?.name)??"");e.watch(r,()=>{o("update:modelValue",r.value)}),e.watch(()=>n.modelValue,a=>{r.value=a});const l=a=>{o("command",a)},s=a=>{o("remove",a)};return(a,c)=>(e.openBlock(),e.createBlock(e.unref(k.XPanel),{class:"v-tabs",border:!1,fit:"",radius:!1},{header:e.withCtx(()=>[e.createElementVNode("div",xt,[e.createVNode(e.unref(k.XTabs),{class:"v-tabs__tabs",items:n.items,type:"card",modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),onTabRemove:s,stretch:n.stretch},null,8,["items","modelValue","stretch"]),n.menus&&n.menus.length?(e.openBlock(),e.createElementBlock("div",Et,[n.menus&&n.menus.length?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:0,mode:"icon",size:"small",icon:e.unref(B.MoreFilled),background:"hover",dropdown:{size:"small",placement:"bottom-end"},menus:n.menus,onCommand:l},{item:e.withCtx(({item:d})=>[e.createElementVNode("span",null,[n.checkable?(e.openBlock(),e.createBlock(e.unref(B.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(a.$slots,"default")]),_:3}))}}),St={key:2,class:"v-item__index"},Nt={class:"v-item__content"},Dt={key:3,class:"v-item__subtitle"},$=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(i,{emit:t}){const n={add:{label:"创建",icon:B.VtjIconPlus},copy:{label:"复制",icon:B.VtjIconCopy},edit:{label:"编辑",icon:B.VtjIconEdit},remove:{label:"删除",icon:B.VtjIconRemove},lock:{label:"锁定",icon:B.VtjIconLock},unlock:{label:"解锁",icon:B.VtjIconUnlock},invisible:{label:"隐藏",icon:B.VtjIconInvisible},visible:{label:"显示",icon:B.VtjIconVisible},home:{label:"主页",icon:B.VtjIconHome}},o=i,r=t,l=e.ref(!!o.modelValue),s=e.computed(()=>o.actions.map(m=>{const p=n[m];return{name:m,...p}})),a=e.computed(()=>({"is-background":o.background,"is-border":o.border,"is-active":o.active,"is-hover":o.hover,"is-small":o.small})),c=()=>{r("click",o.modelValue)},d=async m=>{m==="remove"?await b.ElMessageBox.confirm("确定删除吗?","提示",{type:"warning"}).catch(()=>!1)&&r("action",{name:m,modelValue:o.modelValue}):r("action",{name:m,modelValue:o.modelValue})};return e.watch(l,m=>{r("update:modelValue",m),r("switch",m)}),e.watch(()=>o.modelValue,m=>{l.value=!!m}),(m,p)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:e.normalizeClass(["v-item",a.value]),justify:"space-between",align:"center",onClick:c},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{class:"v-item__title",align:"center"},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default",{},()=>[m.icon?(e.openBlock(),e.createBlock(e.unref(k.XIcon),{key:0,icon:m.icon},null,8,["icon"])):e.createCommentVNode("",!0),o.tag?(e.openBlock(),e.createBlock(e.unref(b.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",St," # "+e.toDisplayString(m.index),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Nt,e.toDisplayString(m.title),1),m.subtitle?(e.openBlock(),e.createElementBlock("span",Dt,e.toDisplayString(m.subtitle),1)):e.createCommentVNode("",!0)])]),_:3}),e.createVNode(e.unref(k.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(k.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(b.ElSwitch),{key:0,modelValue:l.value,"onUpdate:modelValue":p[0]||(p[0]=v=>l.value=v),class:"v-item__switch",size:"small"},null,8,["modelValue"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"status")]),_:3})]),_:3},8,["class"]))}}),jt=["draggable"],At={class:"v-box__name"},Ft={class:"v-box__label"},ae=e.defineComponent({name:"VBox",__name:"box",props:{name:{},title:{},editable:{type:Boolean},active:{type:Boolean},draggable:{type:Boolean}},emits:["edit","remove","dragstart","dragend"],setup(i,{emit:t}){const n=i,o=t,r=()=>{o("edit")},l=async()=>{await b.ElMessageBox.confirm("确认删除?","提示",{type:"warning"}).catch(()=>!1)&&o("remove")},s=e.computed(()=>({"is-active":n.active,"is-draggable":n.draggable})),a=()=>{o("dragstart",n)},c=()=>{o("dragend",n)};return(d,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-box",s.value]),draggable:d.draggable,onDragstart:a,onDragend:c},[e.createVNode(e.unref(k.XContainer),{direction:"column",justify:"center",align:"center"},{default:e.withCtx(()=>[e.createElementVNode("span",At,e.toDisplayString(n.name),1),e.createElementVNode("span",Ft,e.toDisplayString(n.title),1)]),_:1}),n.editable?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-box__footer",justify:"flex-end",align:"center"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XIcon),{icon:e.unref(B.VtjIconEdit),onClick:r},null,8,["icon"]),e.createVNode(e.unref(k.XIcon),{icon:e.unref(B.VtjIconRemove),onClick:l},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)],42,jt))}}),It={class:"v-context-viewer"},je=e.defineComponent({__name:"viewer",props:{context:{}},emits:["pick","copy"],setup(i,{emit:t}){const n=i,o=t,r=["$provider","$apis","$components","context"],l=m=>{const p=m.value,v=L.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:L.toRawType(v),path:`${p}${u}`}}):Object.entries(m).map(([v,f])=>({label:v,value:f,type:L.toRawType(f),path:`${p}.${v}`})).filter(v=>!v.label.startsWith("__")&&!r.includes(v.label)):[],a=(m,p)=>{if(m.level===0)p(s(n.context));else{const v=e.toRaw(m.data.value);p(s(v,m.data.path))}},c=m=>{o("copy",m.path)},d=m=>{o("pick",m.path)};return(m,p)=>(e.openBlock(),e.createElementBlock("div",It,[m.context?(e.openBlock(),e.createBlock(e.unref(b.ElTree),{key:0,lazy:"",load:a,"expand-on-click-node":!1,props:{isLeaf:l}},{default:e.withCtx(({data:v})=>[e.createVNode($,{title:v.label,clickable:"",onClick:f=>d(v),background:"",actions:["copy"],onAction:f=>c(v),grow:"",small:""},null,8,["title","onClick","onAction"])]),_:1},8,["props"])):e.createCommentVNode("",!0)]))}}),ie=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(i,{emit:t}){const n=i,o=t,{searchResult:r,keyword:l}=st(n.block,n.context),{copy:s}=ve.useClipboard({}),a=[{name:"normal",label:"常用"},{name:"viewer",label:"高级"}],c=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()},h=_=>{o("pick",_)},g=_=>{s(_),b.ElMessage.success({message:"已经复制到粘贴板"})};return(_,y)=>(e.openBlock(),e.createBlock(e.unref(k.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(k.XContainer),{fit:"",direction:"row",overflow:"hidden"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{width:"30%",height:"100%"},{default:e.withCtx(()=>[e.createVNode(oe,{class:"v-binder__tabs",items:a,modelValue:c.value,"onUpdate:modelValue":y[1]||(y[1]=V=>c.value=V)},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{class:"v-binder__tab-content",fit:"",padding:"",flex:!1},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[e.createVNode(e.unref(b.ElInput),{modelValue:e.unref(l),"onUpdate:modelValue":y[0]||(y[0]=V=>e.isRef(l)?l.value=V:null),size:"small",clearable:"","prefix-icon":e.unref(B.Search),placeholder:"筛选可用项"},null,8,["modelValue","prefix-icon"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r),V=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(b.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,D=>(e.openBlock(),e.createBlock($,{title:D,background:"",actions:["copy"],small:"",onClick:C=>h(D),onAction:C=>g(D)},null,8,["title","onClick","onAction"]))),256))]))),256)),e.unref(r).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0}))],512),[[e.vShow,c.value==="normal"]]),e.withDirectives(e.createVNode(je,{context:n.context,onCopy:g,onPick:h},null,8,["context"]),[[e.vShow,c.value==="viewer"]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(k.XPanel),{grow:"",header:null,border:!1},{footer:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),null,{default:e.withCtx(()=>[_.unbindEnabled?(e.openBlock(),e.createBlock(e.unref(b.ElButton),{key:0,type:"warning",size:"default",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 移除绑定 ")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(k.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElButton),{type:"default",size:"default",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(" 取消 ")]),_:1}),e.createVNode(e.unref(b.ElButton),{type:"primary",size:"default",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(k.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"]))}}),Pt={class:"v-slots-picker__sn"},Ae=e.defineComponent({__name:"slots",props:{slots:{default:()=>[]}},emits:["submit","update:modelValue"],setup(i,{emit:t}){const n=i,o=t,r=e.ref(),l=e.computed(()=>`${50*Math.ceil(n.slots.length/4)+180}px`),s=c=>{r.value=c},a=()=>{r.value?(o("submit",r.value),o("update:modelValue",!1)):T("请选择插槽")};return(c,d)=>(e.openBlock(),e.createBlock(e.unref(k.XDialog),e.mergeProps({class:"v-slots-picker",title:"选择插槽",width:"600px",height:l.value,submit:"",cancel:"",onSubmit:a},c.$attrs),{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElAlert),{title:"该组件支持多个插槽,请选择放置到其中一个",type:"warning",closable:!1}),e.createVNode(e.unref(k.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(k.XContainer),{class:e.normalizeClass(["v-slots-picker__item",{"is-active":m.name===r.value?.name}]),grow:"",flex:!1,onClick:v=>s(m)},{default:e.withCtx(()=>[e.createElementVNode("span",Pt,"#"+e.toDisplayString(p+1),1),e.createTextVNode(" "+e.toDisplayString(m.name),1)]),_:2},1032,["class","onClick"]))),256))]),_:1})]),_:1},16,["height"]))}}),ge=e.defineComponent({name:"Viewport",__name:"viewport",props:{mode:{default:"pc"},width:{},height:{}},setup(i){const t=i,n=e.computed(()=>[`is-${t.mode}`]),o=e.computed(()=>{if(t.mode==="pc")return 1;const l=t.mode==="mobile"?de:me,{width:s,height:a}=l,c=s>0?(t.width||0)/s:1,d=a>0?(t.height||0)/a:1;return Math.min(c,d)}),r=e.computed(()=>{if(t.mode==="pc")return{};const l=t.mode==="mobile"?de:me,{width:s,height:a}=l;return{width:`${s}px`,height:`${a}px`,left:"50%",top:"50%",transform:`translate(-50%, -50%) scale(${o.value})`}});return(l,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-viewport",n.value]),style:e.normalizeStyle(r.value)},[e.renderSlot(l.$slots,"default")],6))}}),Rt=e.defineComponent({name:"PagesWidget",__name:"index",setup(i){const{project:t,engine:n}=se(),o=e.computed(()=>t.value?.pages||[]),{current:r}=z(),l=e.ref(!1),s=e.ref(),a=e.ref(),c=()=>{a.value=void 0,s.value=void 0,l.value=!0},d=async f=>{const{name:u,modelValue:h}=f,{data:g,node:_}=h;if(u==="add"&&(s.value=void 0,a.value=g.id,l.value=!0),u==="edit"&&(s.value=L.cloneDeep(g),a.value=void 0,l.value=!0),u==="remove"){if(g.dir){const y=t.value?.getPage(g.id);if(y&&y.children?.length){T("请先删除子页面");return}}t.value?.removePage(g.id)}if(u==="copy"){const y=_.parent?.data.id;t.value?.clonePage(g,y)}u==="home"&&(t.value?.setHomepage(g.id),W("设置主页成功","success"))},m=async f=>{f.raw&&W("这是源码模式页面,不能低代码设计","warning"),f.dir||f.raw?n.project.value?.deactivate():n.project.value?.active(f)},p=(f,u,h)=>h==="inner"?!!u.data.dir:!0,v=()=>{t.value?.update({pages:e.toValue(o)})};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-pages-widget",title:"页面管理",plus:"",subtitle:"(共 0 条)",onPlus:c},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElTree),{data:o.value,"node-key":"id","default-expand-all":"",draggable:"","allow-drop":p,onNodeDrop:v},{default:e.withCtx(({data:h,node:g})=>[e.createVNode(e.unref($),{class:"v-pages-widget__item",icon:e.unref(B.icons)[h.icon],title:h.title,subtitle:h.name,"model-value":{data:h,node:g},actions:h.dir?["add","edit","remove"]:h.raw?["home","edit","remove"]:["home","copy","edit","remove"],onAction:d,onClick:_=>m(h),active:e.unref(r)?.id===h.id,tag:e.unref(t)?.homepage===h.id?"主页":void 0,"tag-type":"success",grow:"",small:"",background:"",hover:""},null,8,["icon","title","subtitle","model-value","actions","onClick","active","tag"])]),_:1},8,["data"]),l.value?(e.openBlock(),e.createBlock(Bt,{key:0,modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=h=>l.value=h),item:s.value,"parent-id":a.value},null,8,["modelValue","item","parent-id"])):e.createCommentVNode("",!0)]),_:1}))}}),Tt=e.defineComponent({name:"BlocksWidget",__name:"index",setup(i){const{span:t}=Se(),{blocks:n,engine:o}=tt(),r=e.ref(void 0),{current:l}=z(),s=e.ref(!1),a=e.computed(()=>r.value?.id?"编辑":"新增"),c=e.computed(()=>`(共 ${n.value.length} 个)`),d=()=>({name:"",title:"",type:"block"}),m=async y=>{const V=y,D=o.project.value;if(!D)return!1;if(y.id)if(!D.existBlockName(V.name,[V.id]))D.updateBlock(V);else return T(`名称【${V.name}】已经存在,请更换名称`),!1;else if(!D.existBlockName(V.name))D.createBlock(V);else return T(`名称【${V.name}】已经存在,请更换名称`),!1;return!0},p=()=>{r.value=d(),s.value=!0},v=y=>{r.value=L.cloneDeep(y),s.value=!0},f=y=>{o.project.value?.removeBlock(y.id)},u=y=>{r.value&&(r.value.name=L.upperFirstCamelCase(y))},h=async y=>{o.project.value?.active(y)},g=async y=>{const V={type:"Schema",id:y.id},D=await o.assets.getBlockMaterial(V),C=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;C&&D&&C.setDragging(D)},_=()=>{const y=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;y&&y.setDragging(null)};return(y,V)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-blocks-widget",title:"区块管理",subtitle:c.value,plus:"",onPlus:p},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),D=>(e.openBlock(),e.createBlock(e.unref(b.ElCol),{key:D.id,span:e.unref(t)},{default:e.withCtx(()=>[e.createVNode(e.unref(ae),{name:D.name,title:D.title,active:e.unref(l)?.id===D.id,editable:"",onEdit:C=>v(D),onRemove:C=>f(D),onClick:C=>h(D),draggable:e.unref(l)?.id!==D.id,onDragstart:C=>g(D),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(b.ElEmpty),{key:0})),e.createVNode(e.unref(k.XDialogForm),{modelValue:s.value,"onUpdate:modelValue":V[0]||(V[0]=D=>s.value=D),title:a.value,model:r.value,width:"600px",height:"250px","form-props":{tooltipMessage:!1},"submit-method":m},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"名称",required:"",tip:"名称为英文驼峰格式",rules:{message:"名称格式错误",pattern:e.unref(H)},onChange:u},null,8,["rules"]),e.createVNode(e.unref(k.XField),{name:"title",label:"标题",required:""})]),_:1},8,["modelValue","title","model"])]),_:1},8,["subtitle"]))}}),$t={class:"v-components-widget__search"},Mt={key:0,class:"v-components-widget__result"},Lt={class:"v-components-widget__list"},zt=e.defineComponent({name:"ComponentsWidget",__name:"index",setup(i){const{span:t,engine:n}=Se(),{tabs:o,currentTab:r,currentGroup:l,model:s,searchKey:a,searchResult:c}=ot(),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(A),{class:"v-components-widget",title:"组件库",body:{flex:!0,direction:"column"}},{default:e.withCtx(()=>[e.createElementVNode("div",$t,[e.createVNode(e.unref(b.ElInput),{modelValue:e.unref(a),"onUpdate:modelValue":v[0]||(v[0]=f=>e.isRef(a)?a.value=f:null),placeholder:"搜索组件",clearable:"",size:"small"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconSearch))]),_:1},8,["modelValue"])]),e.unref(a)?(e.openBlock(),e.createElementBlock("div",Mt,[e.createVNode(e.unref(b.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),f=>(e.openBlock(),e.createBlock(e.unref(b.ElCol),{span:e.unref(t),key:f.name},{default:e.withCtx(()=>[e.createVNode(e.unref(ae),{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(c).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0}))])):(e.openBlock(),e.createBlock(e.unref(k.XTabs),{key:1,items:e.unref(o),modelValue:e.unref(r),"onUpdate:modelValue":v[2]||(v[2]=f=>e.isRef(r)?r.value=f:null)},{default:e.withCtx(()=>[e.createElementVNode("div",Lt,[e.unref(l)?(e.openBlock(),e.createBlock(e.unref(b.ElCollapse),{key:0,modelValue:e.unref(s)[e.unref(r)],"onUpdate:modelValue":v[1]||(v[1]=f=>e.unref(s)[e.unref(r)]=f)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).children,f=>(e.openBlock(),e.createBlock(e.unref(b.ElCollapseItem),{key:f.name,name:f.name,title:`${f.label} (${f.count})`},{default:e.withCtx(()=>[f.components?(e.openBlock(),e.createBlock(e.unref(b.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(b.ElCol),{span:e.unref(t),key:u.name},{default:e.withCtx(()=>[e.createVNode(e.unref(ae),{name:u.name,title:u.label||u.name,draggable:"",onDragstart:h=>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}))}}),Ot=e.defineComponent({name:"OutlineWidget",__name:"index",setup(i){const{engine:t,designer:n,selected:o}=K(),{current:r}=z(),l=e.ref([]),s=C=>{if(w.isBlock(C))return C.locked?["unlock"]:["lock"];const N=C.parent;return N&&(N.locked||N.invisible)?[]:r.value?.locked?[]:C.locked?["unlock"]:C.invisible?["visible"]:["lock","invisible","copy","remove"]},a=C=>{const N=[];return C.forEach(x=>{const P={id:x.id,label:x.name,type:x.id,model:x};Array.isArray(x.children)&&(P.children=a(x.children)),N.push(P)}),N},c=()=>{if(!r.value)return[];const{id:C,name:N,nodes:x}=r.value;return[{id:C,label:N,type:C,model:r.value,children:a(x)}]},d=()=>{l.value=c()},m=e.computed(()=>o.value?.model.id),p=C=>{const N=C.data;if(w.isBlock(N.model)||N.model.locked||N.model.name==="template")return!1;const x=t.assets.componentMap.get(N.model.name);return x?(n.value?.setDragging(x),!0):!1},v=async(C,N,x)=>{const P=N.data,Q={prev:"top",next:"bottom",inner:"inner"}[x];let j=!1;if(w.isBlock(P.model))j=x==="inner",n.value?.setDropping(j?P.model:null,"inner");else{const I=P.model;j=!!await n.value?.allowDrop(I,Q),n.value?.setDropping(j?I:null,"inner")}return j},f=C=>{const N=C?.model;!N||N.invisible||(n.value?.setSelected(N),n.value?.setHover(null))},u=async(C,N,x)=>{const P=C.data,U=N.data;if(w.isBlock(U.model)){n.value?.setDropping(null),n.value?.setDragging(null);return}const Q=U.model,j={before:"left",after:"right"}[x]||"inner";if(!await n.value?.allowDrop(Q,j)){n.value?.setDropping(null),d(),b.ElMessage.warning({message:`${P.model.name}不能放置到该位置`}),n.value?.setDragging(null);return}const S=await n.value?.getDropSlot(x==="inner"?Q:Q.parent);if(S!==null){const te=P.model;te.slot=S,r.value?.move(te,Q,j)}else d();n.value?.setDropping(null),n.value?.setDragging(null),t.simulator.refresh()},h=C=>{w.isBlock(C.model)?n.value?.setHover(C.model):(n.value?.setHover(C.model),C.model.invisible&&n.value?.setHover(null),C.model.name==="slot"&&n.value?.setHover(null))},g=()=>{n.value?.setHover(null)},_=C=>{const N=C.data;N.dragging=!0;const x=t.assets.componentMap.get(N.model.name);x&&n.value?.setDragging(x)},y=async C=>{const N=C.data;N.dragging=!1},V=(C,N)=>{C&&((C.id===N.id||!w.isBlock(C)&&N.isChild(C))&&n.value?.setSelected(null),n.value?.setHover(null))},D=C=>{const{name:N,modelValue:x}=C,P=o.value?.model;switch(N){case"lock":V(P,x),x.lock();break;case"unlock":V(P,x),x.unlock();break;case"invisible":V(P,x),x.setVisible(!1);break;case"visible":x.setVisible(!0);break;case"copy":const U=r.value?.cloneNode(x);U&&n.value?.setSelected(U);break;case"remove":V(P,x),r.value?.removeNode(x);break}};return e.watch(r,d,{immediate:!0,deep:!0}),(C,N)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-outline-widget",title:"大纲树"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElTree),{data:l.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:y},{default:e.withCtx(({data:x,node:P})=>[e.createVNode(e.unref($),{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&&P.isCurrent,grow:"",small:"",background:"",hover:"","model-value":x.model,icon:x.model.locked?e.unref(B.VtjIconLock):x.model.invisible?e.unref(B.VtjIconInvisible):void 0,title:x.label,subtitle:x.type,actions:s(x.model),onAction:D,onMouseenter:U=>h(x),onMouseleave:g},null,8,["class","active","model-value","icon","title","subtitle","actions","onMouseenter"])]),_:1},8,["data","current-node-key"])]),_:1}))}}),Xt=e.defineComponent({name:"HistoryWidget",__name:"index",setup(i){const{history:t,load:n,total:o}=Ne(),r=e.computed(()=>`(共 ${o.value} 条)`),l=a=>{a.name==="remove"&&t.value?.remove(a.modelValue.id)},s=async()=>{await ee("确定要清空历史记录吗?")&&t.value?.clear()};return(a,c)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-history-widget",title:"历史记录",subtitle:r.value,remove:!!e.unref(o),onRemove:s},{default:e.withCtx(()=>[e.unref(o)===0?(e.openBlock(),e.createBlock(e.unref(b.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($),{index:m+1,title:d.label,"model-value":d,active:m==e.unref(t).index,small:"",background:"",actions:["remove"],onAction:l,onClick:p=>e.unref(n)(d.id)},null,8,["index","title","model-value","active","onClick"]))),256)):e.createCommentVNode("",!0)]),_:1},8,["subtitle","remove"]))}}),R=e.defineAsyncComponent({loader:()=>Promise.resolve().then(()=>require("./Editor-ragV9vX2.cjs")),loadingComponent:e.defineComponent({render(){return e.h("div","正在拼命加载...")}}),errorComponent:e.defineComponent({render(){return e.h("div","组件加载失败!")}})}),Wt=e.defineComponent({name:"ApisWidget",__name:"index",setup(i){const t=e.ref(!1),n=e.ref(null),o=e.ref(!1),r=e.computed(()=>o.value?"编辑API":"新增API"),l=e.computed(()=>s.value?.apis||[]),{project:s}=se(),a=()=>({method:"get",name:"",label:"",url:"",settings:{loading:!0,failMessage:!0,validSuccess:!0,originResponse:!1,injectHeaders:!1,type:"form",headers:{type:"JSExpression",value:"({})"}}}),c=()=>{t.value=!0,o.value=!1,n.value=a()},d=Ce.map(g=>({label:g,value:g.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=(g,_,y)=>{M({type:"JSExpression",value:_},window)?y():y(new Error("代码错误"))},f=g=>{g.name==="edit"&&u(g.modelValue),g.name==="remove"&&s.value?.removeApi(g.modelValue.name)},u=g=>{o.value=!0,n.value=L.cloneDeep(g),t.value=!0},h=async g=>s.value?.existApiName(g.name,o.value?[g.id]:[])?(T(`API名称 [ ${g.name} ] 已存在`),!1):(s.value?.setApi(g),!0);return(g,_)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-apis-widget",title:"API管理",plus:"",onPlus:c},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,y=>(e.openBlock(),e.createBlock(e.unref($),{key:y.id,small:"",title:y.name,subtitle:y.label,"model-value":y,tag:y.method?.toUpperCase(),"tag-type":m[y.method||"get"],background:"",actions:["edit","remove"],onClick:V=>u(y),onAction:f},null,8,["title","subtitle","model-value","tag","tag-type","onClick"]))),128)),l.value.length===0?(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.createVNode(e.unref(k.XDialogForm),{modelValue:t.value,"onUpdate:modelValue":_[1]||(_[1]=y=>t.value=y),model:n.value,title:r.value,width:"1000px",height:"600px","form-props":{labelPosition:"top",tooltipMessage:!1,size:"default"},"submit-method":h},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{gap:"",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"method",label:"请求类型",required:"",editor:"radio",options:e.unref(d),props:{button:!0}},null,8,["options"]),e.createVNode(e.unref(k.XField),{name:"name",label:"接口名称",required:"",rules:{pattern:e.unref(H),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(k.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(k.XField),{name:"url",label:"接口URL",required:""})]),_:1}),e.createVNode(e.unref(k.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[n.value.method!=="jsonp"?(e.openBlock(),e.createBlock(e.unref(A),{key:0,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{justify:"space-around"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"settings.loading",size:"small",label:"加载提示",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.failMessage",label:"失败提示",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.validSuccess",label:"校验成功",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.originResponse",label:"原始响应",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.injectHeaders",label:"注入请求头",editor:"switch"})]),_:1}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.type",label:"发送数据类型",editor:"radio",options:p,props:{button:!0}}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.headers.value",label:"请求头配置",tip:"支持 JSExpression 或 JSFunction",rules:{validator:v}},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{modelValue:n.value.settings.headers.value,"onUpdate:modelValue":_[0]||(_[0]=y=>n.value.settings.headers.value=y),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(A),{key:1,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"jsonpOptions.jsonpCallback",size:"small",label:"jsonpCallback"}),e.createVNode(e.unref(k.XField),{name:"jsonpOptions.jsonpCallbackFunction",size:"small",label:"jsonpCallbackFunction"}),e.createVNode(e.unref(k.XField),{name:"jsonpOptions.timeout",size:"small",label:"timeout",editor:"number"}),e.createVNode(e.unref(k.XField),{name:"jsonpOptions.crossorigin",size:"small",label:"crossorigin",editor:"switch"})]),_:1},8,["subtitle"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue","model","title"])]),_:1}))}}),Jt=e.defineComponent({name:"DepsWidget",__name:"index",setup(i){const{dependencies:t,engine:n}=Ee(),o=e.ref(!1),r=e.ref(!1),l=e.ref({}),s=e.computed(()=>r.value?"查看依赖":l.value?"编辑依赖":"新增依赖"),a=u=>u.required||u.official?[]:["edit","remove"],c=u=>u.official&&!u.required,d=async u=>(u.urls=u.urls.split(`
|
|
7
|
+
*/const _e="0.7.7",de={width:390,height:844},me={width:1180,height:820},H=/^[A-Za-z_$][\w_-]*$/,ye=["click","dblclick","mouseenter","mouseleave","mousedown","mouseup","mouseover","contextmenu"],we=["keydown","keyup","keypress"],Ce=["GET","POST","PUT","PATCH","DELETE","JSONP"],Ve=["stop","prevent","capture","self","once","passive"];var J=(i=>(i.Block="block",i.Node="node",i))(J||{}),Be=(i=>(i.Brand="Brand",i.Toolbar="Toolbar",i.Actions="Actions",i.Apps="Apps",i.Workspace="Workspace",i.Settings="Settings",i.Status="Status",i.Preview="Preview",i))(Be||{});const xe="data:image/png;base64,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",Ke=["title","src"],Ze={key:1},Qe=e.defineComponent({name:"LogoWidget",inheritAttrs:!1,__name:"index",props:{icon:{default:xe},text:{default:"VTJ"},link:{}},setup(i){const t=i,n=()=>{t.link&&(location.href=t.link)};return(o,r)=>(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,Ke)):(e.openBlock(),e.createElementBlock("span",Ze,e.toDisplayString(t.text),1))]))}}),Ye={class:"v-empty-widget"},et=e.defineComponent({name:"EmptyWidget",__name:"index",setup(i){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Ye,"EmptyWidget"))}});function Ee(){const i=O(),t=e.computed(()=>i.project.value?.dependencies??[]);return{engine:i,dependencies:t}}function Y(i,t){const n=e.computed(()=>he.getWidgets(e.unref(i),e.unref(t)).filter(r=>!r.invisible)),o=e.ref();return{widgets:n,widgetsRef:o}}function Se(){const i=O();return{span:e.computed(()=>{const r=i.skeleton?.skeletonRef.leftWidth||400,l=Math.min(Math.floor((r-50)/120),24);return Math.floor(24/l)}),engine:i}}function tt(){const i=O(),t=e.computed(()=>i.project.value?.blocks??[]);return{engine:i,blocks:t}}const nt=(i=[])=>i.map(t=>t.name);function ot(){const i=O(),{components:t,groups:n,componentMap:o}=i.assets,r=e.reactive({}),l=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})):[]),a=e.ref(s.value[0]?.name),c=e.ref(""),d=e.computed(()=>l.value[a.value]);e.watchEffect(()=>{const p=s.value.reduce((v,f)=>(v[f.name]=nt(l.value[f.name].children),v),{});Object.assign(r,p)});const m=e.computed(()=>{const p=c.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:l,tabs:s,model:r,currentTab:a,currentGroup:d,searchKey:c,searchResult:m}}function z(){const i=O(),t=e.computed(()=>i.current.value),n=e.computed(()=>i.context.value),o=e.computed(()=>i.isEmptyCurrent.value);return{engine:i,current:t,isEmpty:o,context:n}}function rt(i,t){const n=O();n.simulator.init(i,t);const o=e.computed(()=>n.simulator.designer.value),r=e.computed(()=>ce("hover",o.value?.hover.value)),l=e.computed(()=>ce("dropping",o.value?.dropping.value)),s=e.computed(()=>ce("selected",o.value?.selected.value));return{designer:o,dropping:l,hover:r,selected:s}}function lt(i,t=!0){const{top:n,height:o,width:r,left:l}=i||{};if(o>100&&r>200)return"inner";let s,a;return a=n>30?"top":"bottom",s=t||l<300&&r<300?"left":"right",[s,a].join("-")}function at(i){const{rect:t,type:n}=i,{left:o,width:r,top:l,height:s}=t,a={left:o,width:r,top:l,height:s};switch(n){case"left":a.left=0,a.width=0;break;case"right":a.left=a.left+a.width-4,a.width=0;break;case"bottom":a.top=a.top+a.height-4,a.height=0;break;case"top":a.height=0;break}return a}function ce(i,t){if(!t)return null;const{left:n,top:o,width:r,height:l}=i==="dropping"?at(t):t.rect,s={left:`${n}px`,top:`${o}px`,width:`${r}px`,height:`${l}px`,visibility:r||l?"visible":"hidden"};return{...t,style:s,position:lt(t.rect,i!=="selected")}}function K(){const i=O(),t=e.computed(()=>i.simulator.designer.value),n=e.computed(()=>t.value?.selected.value),o=e.computed(()=>w.isBlock(n.value?.model));return{engine:i,designer:t,selected:n,isSelectBlock:o}}function st(i,t){const n=e.ref(""),{selected:o,isSelectBlock:r}=K(),l=e.computed(()=>o.value?.model.id),s=e.computed(()=>{const c=e.toValue(i),d=e.toValue(t),m=[];if(!c)return m;const p=d?.__contextRefs[l.value||""],f=d===p||r.value?[]:Object.keys(p?.context||{}).filter(C=>!["context","ref"].includes(C)).map(C=>`this.context.${C}`);f.length&&m.push({title:"上下文",items:f});const u=c.inject.map(C=>`this.${C.name}`);u.length&&m.push({title:"注入",items:u});const h=c.props.map(C=>typeof C=="string"?`this.$props.${C}`:`this.$props.${C.name}`);h.length&&m.push({title:"属性",items:h});const g=Object.keys(c.state).map(C=>`this.state.${C}`);g.length&&m.push({title:"状态",items:g});const _=Object.keys(c.computed).map(C=>`this.${C}.value`);_.length&&m.push({title:"计算属性",items:_});const y=Object.keys(c.methods).map(C=>`this.${C}`);y.length&&m.push({title:"方法",items:y});const V=Object.keys(c.dataSources).map(C=>`this.${C}`);V.length&&m.push({title:"数据源",items:V});const D=Object.keys(d?.$refs||{}).map(C=>`this.$refs.${C}`);return D.length&&m.push({title:"refs",items:D}),m}),a=e.computed(()=>{if(!n.value)return s.value;const c=n.value.toLowerCase(),d=[];return s.value.forEach(m=>{const p=m.items.filter(v=>v.toLowerCase().includes(c));p.length&&d.push({title:m.title,items:p})}),d});return{keyword:n,options:s,searchResult:a}}const le=[{name:"StringSetter",label:"文本"},{name:"ExpressionSetter",label:"表达式"}];function it(i){const t=O(),n=e.computed(()=>{const p=i.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 r=e.computed(()=>n.value?[{name:"key",setters:le,value:n.value.getPropValue("key")},{name:"ref",setters:le,value:n.value.getPropValue("ref")},{name:"class",label:"class",setters:le,value:n.value.getPropValue("class")},{name:"children",label:"文本",title:"如设置组件文本,将清空子组件",setters:le,value:Array.isArray(n.value.children)?"":n.value.children}]:[]),l=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=>r.value.some(v=>v.name===p)||l.value.some(v=>v.name===p)||p==="style",a=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:r,componentProps:l,customProps:a,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 T(i,t="提示"){return b.ElNotification.warning({title:t,message:i})}async function ee(i){return await b.ElMessageBox.confirm(i,"提示",{type:"warning"}).catch(()=>!1)}function W(i,t="success"){return b.ElMessage({message:i,type:t})}function M(i,t,n=!1){let o=!0;try{i.type==="JSExpression"?E.parseExpression(i,t,n,!0):E.parseFunction(i,t,n,!0)}catch(r){o=!1,b.ElNotification.error({title:"代码错误",message:r.message})}return o}function Ne(){const i=O(),t=e.computed(()=>i.simulator.designer.value),n=e.computed(()=>i.current.value?i.history.value:null),o=e.computed(()=>n.value?.items.length||0),r=()=>{t.value?.cleanHelper(),n.value?.forward()},l=()=>{n.value?.backward(),t.value?.cleanHelper()},s=d=>{t.value?.cleanHelper(),n.value?.load(d),W("已载入历史记录","success")},a=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)<=0),c=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)>=o.value-1);return{engine:i,history:n,total:o,forward:r,backward:l,load:s,forwardDisabled:a,backwardDisabled:c}}function se(){const i=O(),t=e.computed(()=>i.project.value);return{engine:i,project:t}}function ct(i){const t=O(),n=e.computed(()=>{const a=i.value?.model||null;return w.isBlock(a)?null:a}),o=e.ref();e.watch(n,async a=>{a?.from?o.value=await t.assets.getBlockMaterial(a.from)||void 0:o.value=void 0});const r=e.computed(()=>{if(w.isBlock(n.value))return[];const a=n.value?.events||{};return ye.map(c=>({name:c,event:a[c]}))}),l=e.computed(()=>{if(w.isBlock(n.value))return[];const a=n.value?.events||{};return we.map(c=>({name:c,event:a[c]}))}),s=e.computed(()=>{if(!n.value||w.isBlock(n.value))return[];const a=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:a[m]}})});return{mouseEventList:r,keyboardEventList:l,componentEventList:s}}const be=(i,t)=>new w.DirectiveModel({name:i,value:void 0,iterator:t}),ut=(i="modelValue")=>new w.DirectiveModel({name:"vModel",value:void 0,arg:i});function dt(i){if(!i)return[];const{props:t=[],events:n=[]}=i;if(t.length&&n.length){const o=n.filter(r=>(typeof r=="string"?r:r.name).startsWith("update:")).map(r=>r=typeof r=="string"?r:r.name);return o.length?t.filter(r=>o.some(l=>l.includes(r.name))):[]}return[]}function mt(i){const t=O(),n=e.computed(()=>{const u=i.value?.model||null;return w.isBlock(u)?null:u}),o=u=>e.computed(()=>n.value&&(n.value.directives||[]).find(h=>h.name===u)||be(u)),r=()=>e.computed(()=>{if(!n.value)return[];const u=t.assets.componentMap.get(n.value.name||"");return(u?dt(u):[]).map(g=>(n.value?.directives||[]).find(_=>_.name==="vModel"&&_.arg==g.name)||ut(g.name))}),l=o("vIf"),s=o("vShow"),a=o("vBind"),c=o("vFor"),d=r(),m={vIf:l,vShow:s,vBind:a,vFor:c};return{engine:t,node:n,vIf:l,vShow:s,vBind:a,vFor:c,vModels:d,onValueChange:(u,h)=>{const g=m[u];n.value&&(h?(g.value.value=h,n.value.setDirective(g.value)):(g.value.value=void 0,n.value.removeDirective(g.value)))},onForChange:(u,h)=>{if(n.value){if(u==="value"){h?(c.value.value=h,n.value.setDirective(c.value)):n.value.removeDirective(c.value);return}(u==="item"||u==="index")&&(c.value.iterator={...c.value.iterator,[u]:h||void 0},n.value.setDirective(c.value))}},onModelChange:(u,h)=>{if(!n.value)return;const g=parseInt(u),_=d.value[g];_&&(h?(_.value=h,n.value.setDirective(_)):(_.value=void 0,n.value.removeDirective(_)))}}}function pt(){const{engine:i,project:t}=se(),n=e.computed(()=>t.value?.apis||[]);return{engine:i,project:t,apis:n}}const ft={class:"v-switcher-widget"},vt={key:1},gt=e.defineComponent({name:"SwitcherWidget",inheritAttrs:!1,__name:"index",emits:["click"],setup(i,{emit:t}){const n=t,{engine:o}=z(),r=e.computed(()=>o.project.value?.name),l=e.computed(()=>o.project.value?.currentFile?.title),s=()=>{n("click",o.project.value)};return(a,c)=>(e.openBlock(),e.createElementBlock("div",ft,[e.createVNode(e.unref(b.ElButton),{size:"small",round:"",onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconBack),{class:"v-switcher-widget__back"}),e.createElementVNode("span",null,e.toDisplayString(r.value),1),l.value?(e.openBlock(),e.createBlock(e.unref(b.ElDivider),{key:0,direction:"vertical"})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("span",vt,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]),_:1})]))}}),ht={class:"v-toolbar-widget"},kt=e.defineComponent({name:"ToolbarWidget",inheritAttrs:!1,__name:"index",props:{preview:{type:Boolean}},setup(i,{expose:t}){const n=i,{forward:o,backward:r,forwardDisabled:l,backwardDisabled:s}=Ne(),a=e.ref("pc");return t({mode:a}),(c,d)=>(e.openBlock(),e.createElementBlock("div",ht,[e.createVNode(e.unref(b.ElRadioGroup),{size:"small",modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=m=>a.value=m)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElRadioButton),{label:"pc"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPc))]),_:1}),e.createVNode(e.unref(b.ElRadioButton),{label:"mobile"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPhone))]),_:1}),e.createVNode(e.unref(b.ElRadioButton),{label:"pad"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPad))]),_:1})]),_:1},8,["modelValue"]),e.createCommentVNode("",!0),e.createVNode(e.unref(b.ElButtonGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElButton),{type:"default",size:"small",onClick:e.unref(r),disabled:e.unref(s)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconUndo))]),_:1},8,["onClick","disabled"]),e.createVNode(e.unref(b.ElButton),{type:"default",size:"small",onClick:e.unref(o),disabled:e.unref(l)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconRedo))]),_:1},8,["onClick","disabled"])]),_:1})]))}}),bt={class:"v-actions-widget"},_t=e.createElementVNode("span",null,"发布",-1),yt=e.defineComponent({name:"ActionsWidget",inheritAttrs:!1,__name:"index",props:{coder:{type:Boolean,default:!0}},setup(i){const{engine:t,designer:n}=K(),o=e.ref(!1),r=()=>{t.current.value?(o.value?t.skeleton?.getWidget("Previewer")?.widgetRef.refresh():(n.value?.setSelected(null),t.simulator.refresh()),W("刷新完成","success")):W("请先打开文件","warning")},l=async()=>{t.current.value?(o.value&&(t.skeleton?.closePreview(),o.value=!1,await L.delay(1e3)),n.value?.setSelected(t.current.value)):W("请先打开文件","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 W("请先打开文件","warning")},a=()=>{const d=t.project.value;d&&(d.currentFile?d.publish(d.currentFile):W("请先打开文件","warning"))},c=d=>{const m=t.project.value;m&&(d==="current"?a():m.publish())};return(d,m)=>(e.openBlock(),e.createElementBlock("div",bt,[e.createVNode(e.unref(b.ElBadge),{value:0,max:99,hidden:!0},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XAction),{mode:"icon",icon:e.unref(B.VtjIconBug),background:"hover"},null,8,["icon"])]),_:1}),e.createVNode(e.unref(b.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(b.ElButton),{onClick:s,type:o.value?"warning":"default",size:"small",title:"预览"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconPreview))]),_:1},8,["type"]),e.createVNode(e.unref(b.ElButton),{onClick:r,type:"default",size:"small",title:"刷新"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconRefresh))]),_:1}),e.createVNode(e.unref(b.ElButton),{type:"default",size:"small",title:"页面设置",onClick:l},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconSetting))]),_:1}),e.createVNode(e.unref(b.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(b.ElDropdown),{"split-button":"",type:"primary",size:"small",onClick:a,onCommand:c},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(b.ElDropdownMenu),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElDropdownItem),{command:"current"},{default:e.withCtx(()=>[e.createTextVNode("发布页面")]),_:1}),e.createVNode(e.unref(b.ElDropdownItem),{command:"project"},{default:e.withCtx(()=>[e.createTextVNode("整站发布")]),_:1})]),_:1})]),default:e.withCtx(()=>[_t]),_:1})]))}}),wt={class:"v-icon-setter"},Ct={class:"v-icon-setter__content"},Vt={class:"v-icon-setter__list"},De=e.defineComponent({name:"IconSetter",__name:"icon",props:{modelValue:{default:""},size:{default:"small"}},emits:["change","update:modelValue"],setup(i,{emit:t}){const n=i,o=t,r=e.ref(!1),l=e.ref(n.modelValue),s=e.ref(""),a=e.computed(()=>B.icons[n.modelValue]||n.modelValue),c=e.computed(()=>{const f=Object.entries(B.icons);return s.value?f.filter(u=>u[0].toLowerCase().includes(s.value)):f}),d=f=>{l.value=f},m=()=>{o("change",l.value),o("update:modelValue",l.value),r.value=!1},p=()=>{l.value="",o("change",""),o("update:modelValue",""),r.value=!1},v=()=>{r.value=!0};return(f,u)=>(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(e.unref(b.ElInput),{size:n.size,readonly:"",placeholder:"请选择图标","model-value":n.modelValue,"suffix-icon":e.unref(B.ArrowDown),onFocus:v},{prepend:e.withCtx(()=>[e.createVNode(e.unref(k.XIcon),{icon:a.value},null,8,["icon"])]),_:1},8,["size","model-value","suffix-icon"]),r.value?(e.openBlock(),e.createBlock(e.unref(k.XDialog),{key:0,title:"图标选择器",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",modelValue:r.value,"onUpdate:modelValue":u[1]||(u[1]=h=>r.value=h),onSubmit:m},{extra:e.withCtx(()=>[e.createVNode(e.unref(b.ElButton),{size:"default",type:"warning",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 清除绑定 ")]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Ct,[e.createVNode(e.unref(b.ElInput),{size:n.size,"prefix-icon":e.unref(B.Search),clearable:"",modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=h=>s.value=h),placeholder:"请输入查询关键字"},null,8,["size","prefix-icon","modelValue"]),e.createElementVNode("div",Vt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createBlock(e.unref(k.XIcon),{icon:h[1],onClick:g=>d(h[0]),class:e.normalizeClass({"is-active":l.value===h[0]})},null,8,["icon","onClick","class"]))),256)),c.value.length===0?(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0})):e.createCommentVNode("",!0)])])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]))}}),Bt=e.defineComponent({name:"PageForm",__name:"form",props:{item:{},parentId:{}},setup(i){const t=i,{project:n}=se(),o=e.computed(()=>t.item?"编辑页面":"新增页面"),r=()=>({dir:!1,name:"",title:"",icon:"",mask:!0,hidden:!1,raw:!1}),l=e.ref(t.item||r()),s=[{label:"页面",value:!1},{label:"目录",value:!0}],a=d=>{l.value&&(l.value.name=L.upperFirstCamelCase(d))},c=async d=>n.value?.existPageName(d.name,[d.id])?(T("页面名称已存在,请更换"),!1):(t.item?n.value?.updatePage(d):n.value?.createPage(d,t.parentId),!0);return(d,m)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:o.value,width:"800px",height:"500px","form-props":{tooltipMessage:!1},model:l.value,"submit-method":c},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"dir",label:"类型",editor:"radio",options:s,props:{button:!0,size:"small"},disabled:!!t.item,required:""},null,8,["disabled"]),e.createVNode(e.unref(k.XField),{name:"name",label:"名称",required:"",onChange:a,rules:{pattern:e.unref(H),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(k.XField),{name:"title",label:"标题",required:""}),e.createVNode(e.unref(k.XField),{name:"icon",label:"菜单图标",editor:"none"},{editor:e.withCtx(()=>[e.createVNode(De,{modelValue:l.value.icon,"onUpdate:modelValue":m[0]||(m[0]=p=>l.value.icon=p),size:"default"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(k.XField),{visible:{dir:!1},name:"mask",label:"包含母版",editor:"switch"}),e.createVNode(e.unref(k.XField),{name:"hidden",label:"隐藏菜单",editor:"switch"}),e.createVNode(e.unref(k.XField),{visible:{dir:!1},disabled:!!t.item,inline:"",name:"raw",label:"源码模式",editor:"switch",tip:"页面是非低代码开发,不能在线编辑"},null,8,["disabled"])]),_:1},8,["title","model"]))}}),pe=e.defineComponent({name:"VIcon",__name:"Icon",props:{icon:{},label:{},active:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:["click"],setup(i,{emit:t}){const n=i,o=t,r=e.computed(()=>({"is-active":n.active,"is-open":n.open})),l=()=>{o("click")};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(b.ElTooltip),{effect:"dark",placement:"right",content:s.label,"show-after":600},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["v-apps-region__icon",r.value]),onClick:l},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))],2)]),_:1},8,["content"]))}}),A=e.defineComponent({name:"VPanel",__name:"panel",props:{title:{},subtitle:{},plus:{type:Boolean},back:{type:Boolean},remove:{type:Boolean},save:{type:Boolean},header:{type:Boolean,default:!0}},emits:["plus","back","remove","save"],setup(i,{emit:t}){const n=i,o=t,r=()=>{o("plus")},l=()=>{o("back")},s=()=>{o("remove")},a=()=>{o("save")},c=e.computed(()=>n.header?{content:n.title,subtitle:n.subtitle,icon:n.back?B.Back:void 0,onClickBack:n.back?l:void 0}:null);return(d,m)=>(e.openBlock(),e.createBlock(e.unref(k.XPanel),{class:"v-panel",border:!1,header:c.value,fit:""},e.createSlots({actions:e.withCtx(()=>[n.plus?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:0,size:d.$attrs.size,mode:"icon",icon:e.unref(B.VtjIconPlus),background:"hover",title:"新增",onClick:r},null,8,["size","icon"])):e.createCommentVNode("",!0),n.remove?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:1,size:d.$attrs.size,mode:"icon",icon:e.unref(B.Delete),background:"hover",title:"清除",onClick:s},null,8,["size","icon"])):e.createCommentVNode("",!0),n.save?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:2,size:d.$attrs.size,mode:"icon",icon:e.unref(B.VtjIconSave),background:"hover",title:"保存",onClick:a},null,8,["size","icon"])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"actions")]),default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:2},[d.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"footer")]),key:"0"}:void 0]),1032,["header"]))}}),xt={class:"v-tabs__header"},Et={key:0,class:"v-tabs__actions"},oe=e.defineComponent({__name:"tabs",props:{items:{default:()=>[]},menus:{},modelValue:{},stretch:{type:Boolean},checkable:{type:Boolean}},emits:["update:modelValue","command","remove"],setup(i,{emit:t}){const n=i,o=t,r=e.ref((n.modelValue||n.items[0]?.name)??"");e.watch(r,()=>{o("update:modelValue",r.value)}),e.watch(()=>n.modelValue,a=>{r.value=a});const l=a=>{o("command",a)},s=a=>{o("remove",a)};return(a,c)=>(e.openBlock(),e.createBlock(e.unref(k.XPanel),{class:"v-tabs",border:!1,fit:"",radius:!1},{header:e.withCtx(()=>[e.createElementVNode("div",xt,[e.createVNode(e.unref(k.XTabs),{class:"v-tabs__tabs",items:n.items,type:"card",modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),onTabRemove:s,stretch:n.stretch},null,8,["items","modelValue","stretch"]),n.menus&&n.menus.length?(e.openBlock(),e.createElementBlock("div",Et,[n.menus&&n.menus.length?(e.openBlock(),e.createBlock(e.unref(k.XAction),{key:0,mode:"icon",size:"small",icon:e.unref(B.MoreFilled),background:"hover",dropdown:{size:"small",placement:"bottom-end"},menus:n.menus,onCommand:l},{item:e.withCtx(({item:d})=>[e.createElementVNode("span",null,[n.checkable?(e.openBlock(),e.createBlock(e.unref(B.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(a.$slots,"default")]),_:3}))}}),St={key:2,class:"v-item__index"},Nt={class:"v-item__content"},Dt={key:3,class:"v-item__subtitle"},$=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(i,{emit:t}){const n={add:{label:"创建",icon:B.VtjIconPlus},copy:{label:"复制",icon:B.VtjIconCopy},edit:{label:"编辑",icon:B.VtjIconEdit},remove:{label:"删除",icon:B.VtjIconRemove},lock:{label:"锁定",icon:B.VtjIconLock},unlock:{label:"解锁",icon:B.VtjIconUnlock},invisible:{label:"隐藏",icon:B.VtjIconInvisible},visible:{label:"显示",icon:B.VtjIconVisible},home:{label:"主页",icon:B.VtjIconHome}},o=i,r=t,l=e.ref(!!o.modelValue),s=e.computed(()=>o.actions.map(m=>{const p=n[m];return{name:m,...p}})),a=e.computed(()=>({"is-background":o.background,"is-border":o.border,"is-active":o.active,"is-hover":o.hover,"is-small":o.small})),c=()=>{r("click",o.modelValue)},d=async m=>{m==="remove"?await b.ElMessageBox.confirm("确定删除吗?","提示",{type:"warning"}).catch(()=>!1)&&r("action",{name:m,modelValue:o.modelValue}):r("action",{name:m,modelValue:o.modelValue})};return e.watch(l,m=>{r("update:modelValue",m),r("switch",m)}),e.watch(()=>o.modelValue,m=>{l.value=!!m}),(m,p)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:e.normalizeClass(["v-item",a.value]),justify:"space-between",align:"center",onClick:c},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{class:"v-item__title",align:"center"},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default",{},()=>[m.icon?(e.openBlock(),e.createBlock(e.unref(k.XIcon),{key:0,icon:m.icon},null,8,["icon"])):e.createCommentVNode("",!0),o.tag?(e.openBlock(),e.createBlock(e.unref(b.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",St," # "+e.toDisplayString(m.index),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Nt,e.toDisplayString(m.title),1),m.subtitle?(e.openBlock(),e.createElementBlock("span",Dt,e.toDisplayString(m.subtitle),1)):e.createCommentVNode("",!0)])]),_:3}),e.createVNode(e.unref(k.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(k.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(b.ElSwitch),{key:0,modelValue:l.value,"onUpdate:modelValue":p[0]||(p[0]=v=>l.value=v),class:"v-item__switch",size:"small"},null,8,["modelValue"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"status")]),_:3})]),_:3},8,["class"]))}}),jt=["draggable"],At={class:"v-box__name"},Ft={class:"v-box__label"},ae=e.defineComponent({name:"VBox",__name:"box",props:{name:{},title:{},editable:{type:Boolean},active:{type:Boolean},draggable:{type:Boolean}},emits:["edit","remove","dragstart","dragend"],setup(i,{emit:t}){const n=i,o=t,r=()=>{o("edit")},l=async()=>{await b.ElMessageBox.confirm("确认删除?","提示",{type:"warning"}).catch(()=>!1)&&o("remove")},s=e.computed(()=>({"is-active":n.active,"is-draggable":n.draggable})),a=()=>{o("dragstart",n)},c=()=>{o("dragend",n)};return(d,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-box",s.value]),draggable:d.draggable,onDragstart:a,onDragend:c},[e.createVNode(e.unref(k.XContainer),{direction:"column",justify:"center",align:"center"},{default:e.withCtx(()=>[e.createElementVNode("span",At,e.toDisplayString(n.name),1),e.createElementVNode("span",Ft,e.toDisplayString(n.title),1)]),_:1}),n.editable?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-box__footer",justify:"flex-end",align:"center"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XIcon),{icon:e.unref(B.VtjIconEdit),onClick:r},null,8,["icon"]),e.createVNode(e.unref(k.XIcon),{icon:e.unref(B.VtjIconRemove),onClick:l},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)],42,jt))}}),It={class:"v-context-viewer"},je=e.defineComponent({__name:"viewer",props:{context:{}},emits:["pick","copy"],setup(i,{emit:t}){const n=i,o=t,r=["$provider","$apis","$components","context"],l=m=>{const p=m.value,v=L.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:L.toRawType(v),path:`${p}${u}`}}):Object.entries(m).map(([v,f])=>({label:v,value:f,type:L.toRawType(f),path:`${p}.${v}`})).filter(v=>!v.label.startsWith("__")&&!r.includes(v.label)):[],a=(m,p)=>{if(m.level===0)p(s(n.context));else{const v=e.toRaw(m.data.value);p(s(v,m.data.path))}},c=m=>{o("copy",m.path)},d=m=>{o("pick",m.path)};return(m,p)=>(e.openBlock(),e.createElementBlock("div",It,[m.context?(e.openBlock(),e.createBlock(e.unref(b.ElTree),{key:0,lazy:"",load:a,"expand-on-click-node":!1,props:{isLeaf:l}},{default:e.withCtx(({data:v})=>[e.createVNode($,{title:v.label,clickable:"",onClick:f=>d(v),background:"",actions:["copy"],onAction:f=>c(v),grow:"",small:""},null,8,["title","onClick","onAction"])]),_:1},8,["props"])):e.createCommentVNode("",!0)]))}}),ie=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(i,{emit:t}){const n=i,o=t,{searchResult:r,keyword:l}=st(n.block,n.context),{copy:s}=ve.useClipboard({}),a=[{name:"normal",label:"常用"},{name:"viewer",label:"高级"}],c=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()},h=_=>{o("pick",_)},g=_=>{s(_),b.ElMessage.success({message:"已经复制到粘贴板"})};return(_,y)=>(e.openBlock(),e.createBlock(e.unref(k.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(k.XContainer),{fit:"",direction:"row",overflow:"hidden"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{width:"30%",height:"100%"},{default:e.withCtx(()=>[e.createVNode(oe,{class:"v-binder__tabs",items:a,modelValue:c.value,"onUpdate:modelValue":y[1]||(y[1]=V=>c.value=V)},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{class:"v-binder__tab-content",fit:"",padding:"",flex:!1},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[e.createVNode(e.unref(b.ElInput),{modelValue:e.unref(l),"onUpdate:modelValue":y[0]||(y[0]=V=>e.isRef(l)?l.value=V:null),size:"small",clearable:"","prefix-icon":e.unref(B.Search),placeholder:"筛选可用项"},null,8,["modelValue","prefix-icon"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r),V=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(b.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,D=>(e.openBlock(),e.createBlock($,{title:D,background:"",actions:["copy"],small:"",onClick:C=>h(D),onAction:C=>g(D)},null,8,["title","onClick","onAction"]))),256))]))),256)),e.unref(r).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0}))],512),[[e.vShow,c.value==="normal"]]),e.withDirectives(e.createVNode(je,{context:n.context,onCopy:g,onPick:h},null,8,["context"]),[[e.vShow,c.value==="viewer"]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(k.XPanel),{grow:"",header:null,border:!1},{footer:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),null,{default:e.withCtx(()=>[_.unbindEnabled?(e.openBlock(),e.createBlock(e.unref(b.ElButton),{key:0,type:"warning",size:"default",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 移除绑定 ")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(k.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElButton),{type:"default",size:"default",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(" 取消 ")]),_:1}),e.createVNode(e.unref(b.ElButton),{type:"primary",size:"default",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(k.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"]))}}),Pt={class:"v-slots-picker__sn"},Ae=e.defineComponent({__name:"slots",props:{slots:{default:()=>[]}},emits:["submit","update:modelValue"],setup(i,{emit:t}){const n=i,o=t,r=e.ref(),l=e.computed(()=>`${50*Math.ceil(n.slots.length/4)+180}px`),s=c=>{r.value=c},a=()=>{r.value?(o("submit",r.value),o("update:modelValue",!1)):T("请选择插槽")};return(c,d)=>(e.openBlock(),e.createBlock(e.unref(k.XDialog),e.mergeProps({class:"v-slots-picker",title:"选择插槽",width:"600px",height:l.value,submit:"",cancel:"",onSubmit:a},c.$attrs),{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElAlert),{title:"该组件支持多个插槽,请选择放置到其中一个",type:"warning",closable:!1}),e.createVNode(e.unref(k.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(k.XContainer),{class:e.normalizeClass(["v-slots-picker__item",{"is-active":m.name===r.value?.name}]),grow:"",flex:!1,onClick:v=>s(m)},{default:e.withCtx(()=>[e.createElementVNode("span",Pt,"#"+e.toDisplayString(p+1),1),e.createTextVNode(" "+e.toDisplayString(m.name),1)]),_:2},1032,["class","onClick"]))),256))]),_:1})]),_:1},16,["height"]))}}),ge=e.defineComponent({name:"Viewport",__name:"viewport",props:{mode:{default:"pc"},width:{},height:{}},setup(i){const t=i,n=e.computed(()=>[`is-${t.mode}`]),o=e.computed(()=>{if(t.mode==="pc")return 1;const l=t.mode==="mobile"?de:me,{width:s,height:a}=l,c=s>0?(t.width||0)/s:1,d=a>0?(t.height||0)/a:1;return Math.min(c,d)}),r=e.computed(()=>{if(t.mode==="pc")return{};const l=t.mode==="mobile"?de:me,{width:s,height:a}=l;return{width:`${s}px`,height:`${a}px`,left:"50%",top:"50%",transform:`translate(-50%, -50%) scale(${o.value})`}});return(l,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-viewport",n.value]),style:e.normalizeStyle(r.value)},[e.renderSlot(l.$slots,"default")],6))}}),Rt=e.defineComponent({name:"PagesWidget",__name:"index",setup(i){const{project:t,engine:n}=se(),o=e.computed(()=>t.value?.pages||[]),{current:r}=z(),l=e.ref(!1),s=e.ref(),a=e.ref(),c=()=>{a.value=void 0,s.value=void 0,l.value=!0},d=async f=>{const{name:u,modelValue:h}=f,{data:g,node:_}=h;if(u==="add"&&(s.value=void 0,a.value=g.id,l.value=!0),u==="edit"&&(s.value=L.cloneDeep(g),a.value=void 0,l.value=!0),u==="remove"){if(g.dir){const y=t.value?.getPage(g.id);if(y&&y.children?.length){T("请先删除子页面");return}}t.value?.removePage(g.id)}if(u==="copy"){const y=_.parent?.data.id;t.value?.clonePage(g,y)}u==="home"&&(t.value?.setHomepage(g.id),W("设置主页成功","success"))},m=async f=>{f.raw&&W("这是源码模式页面,不能低代码设计","warning"),f.dir||f.raw?n.project.value?.deactivate():n.project.value?.active(f)},p=(f,u,h)=>h==="inner"?!!u.data.dir:!0,v=()=>{t.value?.update({pages:e.toValue(o)})};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-pages-widget",title:"页面管理",plus:"",subtitle:"(共 0 条)",onPlus:c},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElTree),{data:o.value,"node-key":"id","default-expand-all":"",draggable:"","allow-drop":p,onNodeDrop:v},{default:e.withCtx(({data:h,node:g})=>[e.createVNode(e.unref($),{class:"v-pages-widget__item",icon:e.unref(B.icons)[h.icon],title:h.title,subtitle:h.name,"model-value":{data:h,node:g},actions:h.dir?["add","edit","remove"]:h.raw?["home","edit","remove"]:["home","copy","edit","remove"],onAction:d,onClick:_=>m(h),active:e.unref(r)?.id===h.id,tag:e.unref(t)?.homepage===h.id?"主页":void 0,"tag-type":"success",grow:"",small:"",background:"",hover:""},null,8,["icon","title","subtitle","model-value","actions","onClick","active","tag"])]),_:1},8,["data"]),l.value?(e.openBlock(),e.createBlock(Bt,{key:0,modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=h=>l.value=h),item:s.value,"parent-id":a.value},null,8,["modelValue","item","parent-id"])):e.createCommentVNode("",!0)]),_:1}))}}),Tt=e.defineComponent({name:"BlocksWidget",__name:"index",setup(i){const{span:t}=Se(),{blocks:n,engine:o}=tt(),r=e.ref(void 0),{current:l}=z(),s=e.ref(!1),a=e.computed(()=>r.value?.id?"编辑":"新增"),c=e.computed(()=>`(共 ${n.value.length} 个)`),d=()=>({name:"",title:"",type:"block"}),m=async y=>{const V=y,D=o.project.value;if(!D)return!1;if(y.id)if(!D.existBlockName(V.name,[V.id]))D.updateBlock(V);else return T(`名称【${V.name}】已经存在,请更换名称`),!1;else if(!D.existBlockName(V.name))D.createBlock(V);else return T(`名称【${V.name}】已经存在,请更换名称`),!1;return!0},p=()=>{r.value=d(),s.value=!0},v=y=>{r.value=L.cloneDeep(y),s.value=!0},f=y=>{o.project.value?.removeBlock(y.id)},u=y=>{r.value&&(r.value.name=L.upperFirstCamelCase(y))},h=async y=>{o.project.value?.active(y)},g=async y=>{const V={type:"Schema",id:y.id},D=await o.assets.getBlockMaterial(V),C=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;C&&D&&C.setDragging(D)},_=()=>{const y=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;y&&y.setDragging(null)};return(y,V)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-blocks-widget",title:"区块管理",subtitle:c.value,plus:"",onPlus:p},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),D=>(e.openBlock(),e.createBlock(e.unref(b.ElCol),{key:D.id,span:e.unref(t)},{default:e.withCtx(()=>[e.createVNode(e.unref(ae),{name:D.name,title:D.title,active:e.unref(l)?.id===D.id,editable:"",onEdit:C=>v(D),onRemove:C=>f(D),onClick:C=>h(D),draggable:e.unref(l)?.id!==D.id,onDragstart:C=>g(D),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(b.ElEmpty),{key:0})),e.createVNode(e.unref(k.XDialogForm),{modelValue:s.value,"onUpdate:modelValue":V[0]||(V[0]=D=>s.value=D),title:a.value,model:r.value,width:"600px",height:"250px","form-props":{tooltipMessage:!1},"submit-method":m},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"名称",required:"",tip:"名称为英文驼峰格式",rules:{message:"名称格式错误",pattern:e.unref(H)},onChange:u},null,8,["rules"]),e.createVNode(e.unref(k.XField),{name:"title",label:"标题",required:""})]),_:1},8,["modelValue","title","model"])]),_:1},8,["subtitle"]))}}),$t={class:"v-components-widget__search"},Mt={key:0,class:"v-components-widget__result"},Lt={class:"v-components-widget__list"},zt=e.defineComponent({name:"ComponentsWidget",__name:"index",setup(i){const{span:t,engine:n}=Se(),{tabs:o,currentTab:r,currentGroup:l,model:s,searchKey:a,searchResult:c}=ot(),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(A),{class:"v-components-widget",title:"组件库",body:{flex:!0,direction:"column"}},{default:e.withCtx(()=>[e.createElementVNode("div",$t,[e.createVNode(e.unref(b.ElInput),{modelValue:e.unref(a),"onUpdate:modelValue":v[0]||(v[0]=f=>e.isRef(a)?a.value=f:null),placeholder:"搜索组件",clearable:"",size:"small"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconSearch))]),_:1},8,["modelValue"])]),e.unref(a)?(e.openBlock(),e.createElementBlock("div",Mt,[e.createVNode(e.unref(b.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),f=>(e.openBlock(),e.createBlock(e.unref(b.ElCol),{span:e.unref(t),key:f.name},{default:e.withCtx(()=>[e.createVNode(e.unref(ae),{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(c).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0}))])):(e.openBlock(),e.createBlock(e.unref(k.XTabs),{key:1,items:e.unref(o),modelValue:e.unref(r),"onUpdate:modelValue":v[2]||(v[2]=f=>e.isRef(r)?r.value=f:null)},{default:e.withCtx(()=>[e.createElementVNode("div",Lt,[e.unref(l)?(e.openBlock(),e.createBlock(e.unref(b.ElCollapse),{key:0,modelValue:e.unref(s)[e.unref(r)],"onUpdate:modelValue":v[1]||(v[1]=f=>e.unref(s)[e.unref(r)]=f)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).children,f=>(e.openBlock(),e.createBlock(e.unref(b.ElCollapseItem),{key:f.name,name:f.name,title:`${f.label} (${f.count})`},{default:e.withCtx(()=>[f.components?(e.openBlock(),e.createBlock(e.unref(b.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(b.ElCol),{span:e.unref(t),key:u.name},{default:e.withCtx(()=>[e.createVNode(e.unref(ae),{name:u.name,title:u.label||u.name,draggable:"",onDragstart:h=>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}))}}),Ot=e.defineComponent({name:"OutlineWidget",__name:"index",setup(i){const{engine:t,designer:n,selected:o}=K(),{current:r}=z(),l=e.ref([]),s=C=>{if(w.isBlock(C))return C.locked?["unlock"]:["lock"];const N=C.parent;return N&&(N.locked||N.invisible)?[]:r.value?.locked?[]:C.locked?["unlock"]:C.invisible?["visible"]:["lock","invisible","copy","remove"]},a=C=>{const N=[];return C.forEach(x=>{const P={id:x.id,label:x.name,type:x.id,model:x};Array.isArray(x.children)&&(P.children=a(x.children)),N.push(P)}),N},c=()=>{if(!r.value)return[];const{id:C,name:N,nodes:x}=r.value;return[{id:C,label:N,type:C,model:r.value,children:a(x)}]},d=async()=>{l.value=c(),o.value?.model&&(await e.nextTick(),n.value?.setSelected(o.value.model))},m=e.computed(()=>o.value?.model.id),p=C=>{const N=C.data;if(w.isBlock(N.model)||N.model.locked||N.model.name==="template")return!1;const x=t.assets.componentMap.get(N.model.name);return x?(n.value?.setDragging(x),!0):!1},v=async(C,N,x)=>{const P=N.data,Q={prev:"top",next:"bottom",inner:"inner"}[x];let j=!1;if(w.isBlock(P.model))j=x==="inner",n.value?.setDropping(j?P.model:null,"inner");else{const I=P.model;j=!!await n.value?.allowDrop(I,Q),n.value?.setDropping(j?I:null,"inner")}return j},f=C=>{const N=C?.model;!N||N.invisible||(n.value?.setSelected(N),n.value?.setHover(null))},u=async(C,N,x)=>{const P=C.data,U=N.data;if(w.isBlock(U.model)){n.value?.setDropping(null),n.value?.setDragging(null);return}const Q=U.model,j={before:"left",after:"right"}[x]||"inner";if(!await n.value?.allowDrop(Q,j)){n.value?.setDropping(null),d(),b.ElMessage.warning({message:`${P.model.name}不能放置到该位置`}),n.value?.setDragging(null);return}const S=await n.value?.getDropSlot(x==="inner"?Q:Q.parent);if(S!==null){const te=P.model;te.slot=S,r.value?.move(te,Q,j)}else d();n.value?.setDropping(null),n.value?.setDragging(null),t.simulator.refresh()},h=C=>{w.isBlock(C.model)?n.value?.setHover(C.model):(n.value?.setHover(C.model),C.model.invisible&&n.value?.setHover(null),C.model.name==="slot"&&n.value?.setHover(null))},g=()=>{n.value?.setHover(null)},_=C=>{const N=C.data;N.dragging=!0;const x=t.assets.componentMap.get(N.model.name);x&&n.value?.setDragging(x)},y=async C=>{const N=C.data;N.dragging=!1},V=(C,N)=>{C&&((C.id===N.id||!w.isBlock(C)&&N.isChild(C))&&n.value?.setSelected(null),n.value?.setHover(null))},D=C=>{const{name:N,modelValue:x}=C,P=o.value?.model;switch(N){case"lock":V(P,x),x.lock();break;case"unlock":V(P,x),x.unlock();break;case"invisible":V(P,x),x.setVisible(!1);break;case"visible":x.setVisible(!0);break;case"copy":const U=r.value?.cloneNode(x);U&&n.value?.setSelected(U);break;case"remove":V(P,x),r.value?.removeNode(x);break}};return e.watch(t.changed,d,{immediate:!0}),(C,N)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-outline-widget",title:"大纲树"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(b.ElTree),{key:e.unref(t).changed.value,data:l.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:y},{default:e.withCtx(({data:x,node:P})=>[e.createVNode(e.unref($),{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&&P.isCurrent,grow:"",small:"",background:"",hover:"","model-value":x.model,icon:x.model.locked?e.unref(B.VtjIconLock):x.model.invisible?e.unref(B.VtjIconInvisible):void 0,title:x.label,subtitle:x.type,actions:s(x.model),onAction:D,onMouseenter:U=>h(x),onMouseleave:g},null,8,["class","active","model-value","icon","title","subtitle","actions","onMouseenter"])]),_:1},8,["data","current-node-key"]))]),_:1}))}}),Xt=e.defineComponent({name:"HistoryWidget",__name:"index",setup(i){const{history:t,load:n,total:o}=Ne(),r=e.computed(()=>`(共 ${o.value} 条)`),l=a=>{a.name==="remove"&&t.value?.remove(a.modelValue.id)},s=async()=>{await ee("确定要清空历史记录吗?")&&t.value?.clear()};return(a,c)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-history-widget",title:"历史记录",subtitle:r.value,remove:!!e.unref(o),onRemove:s},{default:e.withCtx(()=>[e.unref(o)===0?(e.openBlock(),e.createBlock(e.unref(b.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($),{index:m+1,title:d.label,"model-value":d,active:m==e.unref(t).index,small:"",background:"",actions:["remove"],onAction:l,onClick:p=>e.unref(n)(d.id)},null,8,["index","title","model-value","active","onClick"]))),256)):e.createCommentVNode("",!0)]),_:1},8,["subtitle","remove"]))}}),R=e.defineAsyncComponent({loader:()=>Promise.resolve().then(()=>require("./Editor-ragV9vX2.cjs")),loadingComponent:e.defineComponent({render(){return e.h("div","正在拼命加载...")}}),errorComponent:e.defineComponent({render(){return e.h("div","组件加载失败!")}})}),Wt=e.defineComponent({name:"ApisWidget",__name:"index",setup(i){const t=e.ref(!1),n=e.ref(null),o=e.ref(!1),r=e.computed(()=>o.value?"编辑API":"新增API"),l=e.computed(()=>s.value?.apis||[]),{project:s}=se(),a=()=>({method:"get",name:"",label:"",url:"",settings:{loading:!0,failMessage:!0,validSuccess:!0,originResponse:!1,injectHeaders:!1,type:"form",headers:{type:"JSExpression",value:"({})"}}}),c=()=>{t.value=!0,o.value=!1,n.value=a()},d=Ce.map(g=>({label:g,value:g.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=(g,_,y)=>{M({type:"JSExpression",value:_},window)?y():y(new Error("代码错误"))},f=g=>{g.name==="edit"&&u(g.modelValue),g.name==="remove"&&s.value?.removeApi(g.modelValue.name)},u=g=>{o.value=!0,n.value=L.cloneDeep(g),t.value=!0},h=async g=>s.value?.existApiName(g.name,o.value?[g.id]:[])?(T(`API名称 [ ${g.name} ] 已存在`),!1):(s.value?.setApi(g),!0);return(g,_)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-apis-widget",title:"API管理",plus:"",onPlus:c},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,y=>(e.openBlock(),e.createBlock(e.unref($),{key:y.id,small:"",title:y.name,subtitle:y.label,"model-value":y,tag:y.method?.toUpperCase(),"tag-type":m[y.method||"get"],background:"",actions:["edit","remove"],onClick:V=>u(y),onAction:f},null,8,["title","subtitle","model-value","tag","tag-type","onClick"]))),128)),l.value.length===0?(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.createVNode(e.unref(k.XDialogForm),{modelValue:t.value,"onUpdate:modelValue":_[1]||(_[1]=y=>t.value=y),model:n.value,title:r.value,width:"1000px",height:"600px","form-props":{labelPosition:"top",tooltipMessage:!1,size:"default"},"submit-method":h},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{gap:"",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"method",label:"请求类型",required:"",editor:"radio",options:e.unref(d),props:{button:!0}},null,8,["options"]),e.createVNode(e.unref(k.XField),{name:"name",label:"接口名称",required:"",rules:{pattern:e.unref(H),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(k.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(k.XField),{name:"url",label:"接口URL",required:""})]),_:1}),e.createVNode(e.unref(k.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[n.value.method!=="jsonp"?(e.openBlock(),e.createBlock(e.unref(A),{key:0,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{justify:"space-around"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"settings.loading",size:"small",label:"加载提示",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.failMessage",label:"失败提示",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.validSuccess",label:"校验成功",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.originResponse",label:"原始响应",editor:"switch"}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.injectHeaders",label:"注入请求头",editor:"switch"})]),_:1}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.type",label:"发送数据类型",editor:"radio",options:p,props:{button:!0}}),e.createVNode(e.unref(k.XField),{size:"small",name:"settings.headers.value",label:"请求头配置",tip:"支持 JSExpression 或 JSFunction",rules:{validator:v}},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{modelValue:n.value.settings.headers.value,"onUpdate:modelValue":_[0]||(_[0]=y=>n.value.settings.headers.value=y),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(A),{key:1,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"jsonpOptions.jsonpCallback",size:"small",label:"jsonpCallback"}),e.createVNode(e.unref(k.XField),{name:"jsonpOptions.jsonpCallbackFunction",size:"small",label:"jsonpCallbackFunction"}),e.createVNode(e.unref(k.XField),{name:"jsonpOptions.timeout",size:"small",label:"timeout",editor:"number"}),e.createVNode(e.unref(k.XField),{name:"jsonpOptions.crossorigin",size:"small",label:"crossorigin",editor:"switch"})]),_:1},8,["subtitle"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue","model","title"])]),_:1}))}}),Jt=e.defineComponent({name:"DepsWidget",__name:"index",setup(i){const{dependencies:t,engine:n}=Ee(),o=e.ref(!1),r=e.ref(!1),l=e.ref({}),s=e.computed(()=>r.value?"查看依赖":l.value?"编辑依赖":"新增依赖"),a=u=>u.required||u.official?[]:["edit","remove"],c=u=>u.official&&!u.required,d=async u=>(u.urls=u.urls.split(`
|
|
8
8
|
`),n.project.value?.setDeps(u),!0),m=u=>{n.project.value?.setDeps(u)},p=()=>{r.value=!1,o.value=!0,l.value=null},v=u=>{r.value=!0,l.value={...u,urls:u.urls.join(`
|
|
9
9
|
`)},o.value=!0},f=(u,h)=>{h.name==="edit"&&(l.value={...u,urls:u.urls.join(`
|
|
10
|
-
`)},r.value=!1,o.value=!0),h.name==="remove"&&n.project.value?.removeDeps(u)};return(u,h)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-deps-widget",title:"依赖管理",plus:"",onPlus:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t),g=>(e.openBlock(),e.createBlock(e.unref($),{key:g.package,title:g.package,subtitle:g.version,actions:a(g),background:"",switch:c(g),modelValue:g.enabled,"onUpdate:modelValue":_=>g.enabled=_,onSwitch:_=>m(g),onClick:_=>v(g),onAction:_=>f(g,_)},null,8,["title","subtitle","actions","switch","modelValue","onUpdate:modelValue","onSwitch","onClick","onAction"]))),128)),e.createVNode(e.unref(k.XDialogForm),{modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=g=>o.value=g),width:"600px",height:"500px",title:s.value,model:l.value,submitMethod:d,formProps:{disabled:r.value,tooltipMessage:!1}},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"package",label:"包名",required:"",disabled:!!l.value},null,8,["disabled"]),e.createVNode(e.unref(k.XField),{name:"version",label:"版本",required:""}),e.createVNode(e.unref(k.XField),{name:"library",label:"导出名称",required:""}),e.createVNode(e.unref(k.XField),{name:"urls",label:"资源文件",editor:"textarea",props:{rows:3},tip:"多个资源可以换行输入",required:""}),e.createVNode(e.unref(k.XField),{name:"assetsUrl",label:"物料URL"}),e.createVNode(e.unref(k.XField),{name:"assetsLibrary",label:"物料名称"})]),_:1},8,["modelValue","title","model","formProps"])]),_:1}))}}),Ut=e.defineComponent({__name:"actions",props:{position:{},model:{},path:{default:()=>[]}},emits:["action"],setup(i,{emit:t}){const n=i,o=t,r=e.computed(()=>n.model.name),l=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})}}))),a=[{name:"prev",icon:B.VtjIconArrowUp,title:"向前移动"},{name:"next",icon:B.VtjIconArrowDown,title:"向后移动"},{name:"copy",icon:B.VtjIconCopy,title:"复制"},{name:"remove",icon:B.VtjIconRemove,title:"删除"}],c=m=>{o("action",{type:"selected",model:m.command})},d=async m=>{m.name==="remove"?await ee("确定删除?")&&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(k.XAction),{mode:"icon",size:"small",icon:e.unref(B.VtjIconLayers),label:r.value,menus:s.value,background:"none",onCommand:c},null,8,["icon","label","menus"]),e.createVNode(e.unref(k.XActionBar),{disabled:!l.value,mode:"icon",size:"small",items:a,background:"none",onClick:d},null,8,["disabled"])],2))}}),Ht={key:1,class:"v-designer__placeholder"},qt=e.defineComponent({name:"VDesigner",inheritAttrs:!1,__name:"index",setup(i,{expose:t}){const n=e.ref(),o=e.ref(),{width:r,height:l}=ve.useElementSize(n),{dependencies:s,engine:a}=Ee(),{current:c,isEmpty:d}=z(),m=e.computed(()=>a.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc"),{designer:p,hover:v,dropping:f,selected:u}=rt(o,s),h=g=>{const _=g.type,y=g.model;if(c.value)switch(_){case"remove":c.value.removeNode(y),p.value?.setSelected(null);break;case"copy":const V=c.value.cloneNode(y);p.value?.setSelected(V);break;case"prev":c.value.movePrev(y),p.value?.setSelected(y);break;case"next":c.value.moveNext(y),p.value?.setSelected(y);break;case"hover":p.value?.setHover(y);break;case"selected":p.value?.setSelected(y);break}};return t({designer:p,mode:m}),(g,_)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"v-designer"},[e.createVNode(e.unref(ge),{mode:m.value,width:e.unref(r),height:e.unref(l)},{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(Ut,{position:e.unref(u).position,model:e.unref(u).model,path:e.unref(u).path,onAction:h},null,8,["position","model","path"])],4)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"]),e.unref(c)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,description:"请新建或打开文件"})),e.unref(c)&&e.unref(d)?(e.openBlock(),e.createElementBlock("div",Ht," 您可以拖拽组件放置到这里 ")):e.createCommentVNode("",!0)],512))}}),re=e.defineComponent({__name:"group",props:{context:{},current:{},title:{},nameLabel:{},valueLabel:{},createEmpty:{},list:{},remove:{},submit:{},itemTitle:{type:Function,default:i=>i.name}},setup(i){const t=i,n=e.ref(),o=e.ref(),r=e.ref(!1),l=e.ref(t.createEmpty()),s=e.ref(!1),a=e.computed(()=>s.value?`编辑${t.title}`:`新增${t.title}`),c=()=>{s.value=!1,l.value=t.createEmpty(),r.value=!0},d=(u,h)=>{switch(h.name){case"edit":p(u);break;case"remove":t.remove(u);break}},m=u=>{l.value.value=u},p=u=>{s.value=!0,l.value={...u},r.value=!0},v=async u=>t.submit(u,s.value),f=()=>{o.value?.itemRef.validate()};return(u,h)=>(e.openBlock(),e.createBlock(e.unref(A),{title:t.title,class:"v-sub-panel",size:"small",fit:!1,plus:"",onPlus:c},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,g=>(e.openBlock(),e.createBlock(e.unref($),{title:t.itemTitle(g),border:"",actions:["edit","remove"],onAction:_=>d(g,_),onClick:_=>p(g)},null,8,["title","onAction","onClick"]))),256)),u.list.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":40})),e.createVNode(e.unref(ie),{modelValue:r.value,"onUpdate:modelValue":h[1]||(h[1]=g=>r.value=g),title:a.value,"submit-method":v,model:l.value,block:u.current,context:u.context,onPick:m},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"fields",e.normalizeProps(e.guardReactiveProps({model:l.value,isEdit:s.value,nameLabel:u.nameLabel,valueLabel:u.valueLabel})),()=>[e.createVNode(e.unref(k.XField),{name:"name",label:u.nameLabel,required:"",disabled:s.value},null,8,["label","disabled"]),e.createVNode(e.unref(k.XField),{ref_key:"codeFieldRef",ref:o,name:"value",label:u.valueLabel,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,dark:"",height:"350px",modelValue:l.value.value,"onUpdate:modelValue":h[0]||(h[0]=g=>l.value.value=g),onBlur:f},null,8,["modelValue"])]),_:1},8,["label"])])]),_:3},8,["modelValue","title","model","block","context"])]),_:3},8,["title"]))}}),Gt=e.defineComponent({__name:"state",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>Object.entries(t.current?.state||{}).map(([a,c])=>({name:a,value:E.JSCodeToString(c)}))),o=()=>({name:"",value:""}),r=s=>t.current?.removeState(s.name),l=async(s,a)=>{const{name:c,value:d}=s;if(!a&&t.current?.state[c])return T(`名称 ${c} 已存在,请更换!`),!1;const m={type:"JSExpression",value:d};return M(m,t.context,!0)?(t.current?.setState(c,m),!0):!1};return(s,a)=>(e.openBlock(),e.createBlock(re,{title:"状态数据",current:t.current,context:t.context,list:n.value,nameLabel:"状态数据名称",valueLabel:"状态初始值 [ JSExpression ]",createEmpty:o,remove:r,submit:l},null,8,["current","context","list"]))}}),Kt=e.defineComponent({__name:"computed",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>Object.entries(t.current?.computed||{}).map(([a,c])=>({name:a,value:E.JSCodeToString(c)}))),o=()=>({name:"",value:"() => { }"}),r=s=>t.current?.removeFunction("computed",s.name),l=async(s,a)=>{const{name:c,value:d}=s;if(!a&&t.current?.computed[c])return T(`名称 ${c} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return M(m,t.context,!0)?(t.current?.setFunction("computed",c,m),!0):!1};return(s,a)=>(e.openBlock(),e.createBlock(re,{title:"计算属性",current:t.current,context:t.context,list:n.value,nameLabel:"计算属性名称",valueLabel:"计算函数 [ JSFunction ]",createEmpty:o,remove:r,submit:l},null,8,["current","context","list"]))}}),Zt=e.defineComponent({__name:"methods",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>Object.entries(t.current?.methods||{}).map(([a,c])=>({name:a,value:E.JSCodeToString(c)}))),o=()=>({name:"",value:"() => { }"}),r=s=>t.current?.removeFunction("methods",s.name),l=async(s,a)=>{const{name:c,value:d}=s;if(!a&&t.current?.methods[c])return T(`名称 ${c} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return M(m,t.context,!0)?(t.current?.setFunction("methods",c,m),!0):!1};return(s,a)=>(e.openBlock(),e.createBlock(re,{title:"组件方法",current:t.current,context:t.context,list:n.value,nameLabel:"方法名称",valueLabel:"方法函数 [ JSFunction ]",createEmpty:o,remove:r,submit:l},null,8,["current","context","list"]))}}),Qt=e.defineComponent({__name:"lifeCycles",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>E.LIFE_CYCLES_LIST.map(a=>({label:a,value:a}))),o=e.computed(()=>Object.entries(t.current?.lifeCycles||{}).map(([c,d])=>({name:c,value:E.JSCodeToString(d)}))),r=()=>({name:"",value:"() => { }"}),l=a=>t.current?.removeFunction("lifeCycles",a.name),s=async(a,c)=>{const{name:d,value:m}=a;if(!c&&t.current?.lifeCycles[d])return T(`名称 ${d} 已存在,请更换!`),!1;const p={type:"JSFunction",value:m};return M(p,t.context,!0)?(t.current?.setFunction("lifeCycles",d,p),!0):!1};return(a,c)=>(e.openBlock(),e.createBlock(re,{title:"生命周期",current:t.current,context:t.context,list:o.value,nameLabel:"名称",valueLabel:"函数 [ JSFunction ]",createEmpty:r,remove:l,submit:s},{fields:e.withCtx(({model:d,nameLabel:m,isEdit:p,valueLabel:v})=>[e.createVNode(e.unref(k.XField),{name:"name",label:m,editor:"select",options:n.value,required:"",disabled:p},null,8,["label","options","disabled"]),e.createVNode(e.unref(k.XField),{name:"value",label:v,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{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"]))}}),Yt=e.defineComponent({__name:"watch",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>(t.current?.watch||[]).map(a=>({...a,source:E.JSCodeToString(a.source),handler:E.JSCodeToString(a.handler)}))),o=()=>({source:"() => { }",deep:!1,immediate:!1,handler:"() => { }"}),r=a=>a.source,l=a=>t.current?.removeWatch(a),s=async(a,c)=>{const d={type:"JSFunction",value:a.source},m={type:"JSFunction",value:a.handler};if(!M(d,t.context,!0)||!M(m,t.context,!0))return!1;const p={...a,source:d,handler:m};return t.current?.setWatch(p),!0};return(a,c)=>(e.openBlock(),e.createBlock(re,{title:"侦听器",current:t.current,context:t.context,list:n.value,nameLabel:"侦听源 [ JSFunction ]",valueLabel:"处理函数 [ JSFunction ]",createEmpty:o,remove:l,submit:s,itemTitle:r,grow:""},{fields:e.withCtx(({model:d,nameLabel:m,valueLabel:p})=>[e.createVNode(e.unref(k.XField),{name:"source",label:m,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{dark:"",height:"100px",modelValue:d.source,"onUpdate:modelValue":v=>d.source=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"]),e.createVNode(e.unref(k.XField),{name:"deep",modelValue:d.deep,"onUpdate:modelValue":v=>d.deep=v,label:"深度监听",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(k.XField),{name:"immediate",modelValue:d.immediate,"onUpdate:modelValue":v=>d.immediate=v,label:"立即执行",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(k.XField),{name:"handler",label:p,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{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"]))}}),en=e.defineComponent({__name:"index",setup(i){const{current:t,context:n}=z();return(o,r)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:"v-scripts-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(Gt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Kt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Zt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Qt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Yt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"])]),_:1}))}}),ue=e.defineComponent({__name:"setters",props:{context:{},current:{},title:{},items:{},node:{},removable:{type:Boolean}},emits:["change","remove"],setup(i,{emit:t}){const n=i,o=t,r=(s,a)=>{o("change",s,a)},l=s=>{o("remove",s)};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(A),{title:n.title,class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElForm),{size:"small","label-width":"80px",onKeydown:a[0]||(a[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,c=>(e.openBlock(),e.createBlock(e.unref(G),e.mergeProps(c,{key:`${c.name}_${n.node.id}`,current:n.current,context:n.context,removable:n.removable,onChange:r,onRemove:l}),null,16,["current","context","removable"]))),128))]),_:1})]),_:1},8,["title"]))}}),tn=e.defineComponent({__name:"index",setup(i){const{current:t,context:n}=z(),{selected:o}=K(),{node:r,commonProps:l,change:s,componentProps:a,customProps:c,addCustom:d,removeCustom:m,isExist:p}=it(o),v=e.ref(!1),f=e.ref(),u=()=>{v.value=!0,f.value={name:""}},h=async _=>{const y=Object.keys(r.value?.props||{});return!p(_.name)&&!y.includes(_.name)?(d(_.name),!0):(T("已存在该属性名称"),!1)},g=async _=>{await ee("确定删除?")&&m(_)};return(_,y)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-properties-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.unref(r)?(e.openBlock(),e.createBlock(ue,{key:0,title:"通用属性",current:e.unref(t),context:e.unref(n),node:e.unref(r),items:e.unref(l),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createBlock(ue,{key:1,title:"组件属性",current:e.unref(t),context:e.unref(n),node:e.unref(r),items:e.unref(a),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createBlock(ue,{key:2,title:"自定义属性",current:e.unref(t),context:e.unref(n),node:e.unref(r),items:e.unref(c),onChange:e.unref(s),removable:"",plus:"",grow:"",onPlus:u,onRemove:g},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.createVNode(e.unref(k.XDialogForm),{modelValue:v.value,"onUpdate:modelValue":y[0]||(y[0]=V=>v.value=V),title:"新增自定义属性",width:"400px",height:"150px","submit-method":h,formProps:{tooltipMessage:!1},model:f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"属性名称",required:"",rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["rules"])]),_:1},8,["modelValue","model"])]),_:1})):e.createCommentVNode("",!0)}}),Fe=e.defineComponent({name:"VariableBinder",__name:"variable",props:{context:{},current:{},value:{}},setup(i){const t=i,n=e.ref(),o=e.reactive({type:"JSExpression",value:t.value}),r=l=>{n.value.getEditor().setValue(l),o.value=l};return(l,s)=>(e.openBlock(),e.createBlock(e.unref(ie),{title:"绑定变量","unbind-enabled":"",block:t.current,context:t.context,model:o,onPick:r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"value",label:"绑定内容 [ JSExpression ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=a=>o.value=a),dark:"",height:"450px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),Ie=e.defineComponent({name:"EventBinder",__name:"event",props:{context:{},current:{},name:{},event:{}},setup(i){const t=i,n=e.ref(),o=()=>({name:t.name,...t.event,modifiers:Object.keys(t.event?.modifiers||{}),handler:{type:"JSFunction",value:t.event?.handler?.value||"() => {}"}}),r=e.reactive(o()),l=Ve.map(a=>({label:a,value:a})),s=a=>{n.value.getEditor().setValue(a),r.handler.value=a};return(a,c)=>(e.openBlock(),e.createBlock(e.unref(ie),{title:"绑定事件","unbind-enabled":"",block:t.current,context:t.context,model:r,onPick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"modifiers",label:"事件修饰符",editor:"checkbox",options:e.unref(l)},null,8,["options"]),e.createVNode(e.unref(k.XField),{name:"handler.value",label:"事件处理函数 [ JSFunction ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,modelValue:r.handler.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.handler.value=d),dark:"",height:"350px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),nn=e.defineComponent({name:"EventsWidget",__name:"index",setup(i){const{current:t,context:n}=z(),{selected:o}=K(),{mouseEventList:r,keyboardEventList:l,componentEventList:s}=ct(o),a=e.ref({name:"",event:void 0}),c=e.ref(!1),d=u=>{a.value=L.cloneDeep(u),c.value=!0},m=async u=>{const h={...u,modifiers:u.modifiers.reduce((_,y)=>(_[y]=!0,_),{})};return M(h.handler,n.value,!0)?((o.value?.model).setEvent(h),!0):!1},p=async u=>{const h=o.value?.model;u.name&&(h.removeEvent(u.name),c.value=!1)},v=async()=>{a.value.name&&await ee("确定要删除该事件吗?")&&p(a.value)},f=u=>{const{name:h,modelValue:g}=u;h==="edit"&&d(g),h==="remove"&&p(g)};return(u,h)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:"v-events-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(A),{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(b.ElEmpty),{key:0,"image-size":50,description:"该组件无自带事件"})),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),g=>(e.openBlock(),e.createBlock(e.unref($),{title:g.name,"model-value":g,border:"",small:"",actions:g.event?["edit","remove"]:["edit"],active:!!g.event,onClick:_=>d(g),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),256))]),_:1}),e.createVNode(e.unref(A),{title:"鼠标事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r),g=>(e.openBlock(),e.createBlock(e.unref($),{title:g.name,"model-value":g,border:"",small:"",actions:g.event?["edit","remove"]:["edit"],active:!!g.event,onClick:_=>d(g),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),256))]),_:1}),e.createVNode(e.unref(A),{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(l),g=>(e.openBlock(),e.createBlock(e.unref($),{title:g.name,"model-value":g,border:"",small:"",actions:g.event?["edit","remove"]:["edit"],active:!!g.event,onClick:_=>d(g),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),256))]),_:1}),c.value?(e.openBlock(),e.createBlock(e.unref(Ie),{key:0,modelValue:c.value,"onUpdate:modelValue":h[0]||(h[0]=g=>c.value=g),context:e.unref(n),current:e.unref(t),name:a.value.name,event:a.value.event,submitMethod:m,onUnbind:v},null,8,["modelValue","context","current","name","event"])):e.createCommentVNode("",!0)]),_:1}))}}),on=e.defineComponent({name:"CssWidget",__name:"index",setup(i){const{current:t}=z(),n=e.ref(),o=e.computed(()=>t.value?.css||""),r=s=>{t.value?.setCss(s)},l=()=>{const a=(n.value?.getEditor()).getValue();r(a),W("保存成功")};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-css-widget v-sub-panel",title:"lang:css scoped",size:"small",fit:"",save:"",onSave:l},{default:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"css",dark:"",onBlur:r},null,8,["model-value"])]),_:1}))}}),rn=e.defineComponent({name:"DirectivesWidget",__name:"index",setup(i){const{current:t,context:n}=z(),{selected:o}=K(),{vIf:r,vShow:l,vBind:s,vFor:a,vModels:c,onValueChange:d,onForChange:m,onModelChange:p}=mt(o),v=f=>f.arg?typeof f.arg=="string"?f.arg:E.parseExpression(f.arg,{}):"modelValue";return(f,u)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:"v-directives-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(A),{class:"v-sub-panel",title:"内置指令",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.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(G),{name:"vIf",label:"v-if",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(G),{name:"vShow",label:"v-show",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(G),{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(A),{class:"v-sub-panel",title:"循环",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.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(G),{name:"value",label:"循环数据",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(G),{name:"item",label:"迭代变量名",setters:{name:"StringSetter",props:{placeholder:"item"}},current:e.unref(t),context:e.unref(n),value:e.unref(a).iterator?.item,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(G),{name:"index",label:"索引变量名",setters:{name:"StringSetter",props:{placeholder:"index"}},current:e.unref(t),context:e.unref(n),value:e.unref(a).iterator?.index,onChange:e.unref(m)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(A),{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(c),(h,g)=>(e.openBlock(),e.createBlock(e.unref(A),{card:"",border:"",class:"v-sub-panel",size:"small",title:`v-model: ${v(h)}`,body:{grow:!1},fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.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(G),{name:g.toString(),label:"绑定变量",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:h.value,onChange:e.unref(p)},null,8,["name","current","context","value","onChange"])]),_:2},1024)]),_:2},1032,["title"]))),256)),e.unref(c).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,description:"当前组件没有双向绑定属性","image-size":50}))]),_:1})]),_:1}))}}),ln=e.defineComponent({name:"DefinedPropsDialog",__name:"props",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑定义属性":"新增定义属性"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),r=Object.keys(E.DATA_TYPES).map(s=>({label:s,value:s})),l=async s=>{const a=s.default;return a&&!M(a,t.context,!0)?!1:(t.current.setProp(s),!0)};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(k.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(k.XField),{name:"name",label:"属性名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"]),e.createVNode(e.unref(k.XField),{name:"type",label:"数据类型",editor:"checkbox",props:{button:!0,size:"small"},options:e.unref(r),required:""},null,8,["options"]),e.createVNode(e.unref(k.XField),{name:"required",label:"必须",editor:"switch"}),e.createVNode(e.unref(k.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(R),{modelValue:o.value.default.value,"onUpdate:modelValue":a[0]||(a[0]=c=>o.value.default.value=c),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),an=e.defineComponent({name:"DefinedEventsDialog",__name:"events",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑定义事件":"新增定义事件"),o=e.ref({name:t.item}),r=async l=>(t.item&&t.current.removeEmit(t.item,!0),t.current.setEmit(l.name),!0);return(l,s)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"事件名称",required:"",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),sn=e.defineComponent({name:"DefinedSlotsDialog",__name:"slots",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑定义插槽":"新增定义插槽"),o=e.ref({name:t.item}),r=async l=>(t.item&&t.current.removeSlot(t.item,!0),t.current.setSlot(l.name),!0);return(l,s)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"插槽名称",disabled:!!t.item,required:"",rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),cn=e.defineComponent({name:"DefinedInjectsDialog",__name:"injects",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑注入":"新增注入"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),r=async l=>{const s=l.default;return s&&!M(s,t.context,!0)?!1:(t.current.setInject(l),!0)};return(l,s)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"注入名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"]),e.createVNode(e.unref(k.XField),{name:"from",label:"来源名称",tip:"默认和注入名称一致"}),e.createVNode(e.unref(k.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(R),{modelValue:o.value.default.value,"onUpdate:modelValue":s[0]||(s[0]=a=>o.value.default.value=a),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),un=e.defineComponent({name:"DefinedWidget",__name:"index",setup(i){const{current:t,context:n}=z(),o=e.computed(()=>(t.value?.props||[]).map(j=>typeof j=="string"?{name:j}:j)),r=e.computed(()=>t.value?.emits||[]),l=e.computed(()=>t.value?.slots||[]),s=e.computed(()=>t.value?.inject||[]),a=e.ref(!1),c=e.ref(),d=e.ref(!1),m=e.ref(),p=e.ref(!1),v=e.ref(),f=e.ref(!1),u=e.ref(),h=()=>{c.value=void 0,a.value=!0},g=j=>{const{name:I,modelValue:S}=j;I==="edit"&&_(S),I==="remove"&&t.value?.removeProp(S)},_=j=>{c.value=j,a.value=!0},y=()=>{m.value=void 0,d.value=!0},V=j=>{m.value=j,d.value=!0},D=j=>{const{name:I,modelValue:S}=j;I==="edit"&&V(S),I==="remove"&&t.value?.removeEmit(S)},C=()=>{v.value=void 0,p.value=!0},N=j=>{v.value=j,p.value=!0},x=j=>{const{name:I,modelValue:S}=j;I==="edit"&&N(S),I==="remove"&&t.value?.removeSlot(S)},P=()=>{u.value=void 0,f.value=!0},U=j=>{u.value=j,f.value=!0},Q=j=>{const{name:I,modelValue:S}=j;I==="edit"&&U(S),I==="remove"&&t.value?.removeInject(S)};return(j,I)=>e.unref(t)&&e.unref(n)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-defined-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(A),{class:"v-sub-panel",title:"定义属性",size:"small",plus:"",fit:!1,onPlus:h},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S.name,border:"",actions:["edit","remove"],onClick:te=>_(S),onAction:g},null,8,["model-value","title","onClick"]))),256)),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),a.value?(e.openBlock(),e.createBlock(ln,{key:1,current:e.unref(t),context:e.unref(n),modelValue:a.value,"onUpdate:modelValue":I[0]||(I[0]=S=>a.value=S),item:c.value},null,8,["current","context","modelValue","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(A),{class:"v-sub-panel",title:"定义事件",size:"small",plus:"",fit:!1,onPlus:y},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S,border:"",actions:["remove"],onClick:te=>V(S),onAction:D},null,8,["model-value","title","onClick"]))),256)),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),d.value?(e.openBlock(),e.createBlock(an,{key:1,modelValue:d.value,"onUpdate:modelValue":I[1]||(I[1]=S=>d.value=S),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(A),{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,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S,border:"",actions:["remove"],onClick:te=>N(S),onAction:x},null,8,["model-value","title","onClick"]))),256)),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),p.value?(e.openBlock(),e.createBlock(sn,{key:1,modelValue:p.value,"onUpdate:modelValue":I[2]||(I[2]=S=>p.value=S),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(A),{class:"v-sub-panel",title:"注入",size:"small",plus:"",fit:!1,grow:"",onPlus:P},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S.name,border:"",actions:["remove"],onClick:te=>U(S),onAction:Q},null,8,["model-value","title","onClick"]))),256)),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),f.value?(e.openBlock(),e.createBlock(cn,{key:1,modelValue:f.value,"onUpdate:modelValue":I[3]||(I[3]=S=>f.value=S),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)}}),dn=e.defineComponent({name:"DataSourceDialogForm",__name:"form",props:{context:{},current:{},item:{}},setup(i){const t=i,{apis:n}=pt(),o=()=>({type:"api",ref:"",name:"",label:"",transform:{type:"JSFunction",value:`(res) => {
|
|
10
|
+
`)},r.value=!1,o.value=!0),h.name==="remove"&&n.project.value?.removeDeps(u)};return(u,h)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-deps-widget",title:"依赖管理",plus:"",onPlus:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t),g=>(e.openBlock(),e.createBlock(e.unref($),{key:g.package,title:g.package,subtitle:g.version,actions:a(g),background:"",switch:c(g),modelValue:g.enabled,"onUpdate:modelValue":_=>g.enabled=_,onSwitch:_=>m(g),onClick:_=>v(g),onAction:_=>f(g,_)},null,8,["title","subtitle","actions","switch","modelValue","onUpdate:modelValue","onSwitch","onClick","onAction"]))),128)),e.createVNode(e.unref(k.XDialogForm),{modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=g=>o.value=g),width:"600px",height:"500px",title:s.value,model:l.value,submitMethod:d,formProps:{disabled:r.value,tooltipMessage:!1}},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"package",label:"包名",required:"",disabled:!!l.value},null,8,["disabled"]),e.createVNode(e.unref(k.XField),{name:"version",label:"版本",required:""}),e.createVNode(e.unref(k.XField),{name:"library",label:"导出名称",required:""}),e.createVNode(e.unref(k.XField),{name:"urls",label:"资源文件",editor:"textarea",props:{rows:3},tip:"多个资源可以换行输入",required:""}),e.createVNode(e.unref(k.XField),{name:"assetsUrl",label:"物料URL"}),e.createVNode(e.unref(k.XField),{name:"assetsLibrary",label:"物料名称"})]),_:1},8,["modelValue","title","model","formProps"])]),_:1}))}}),Ut=e.defineComponent({__name:"actions",props:{position:{},model:{},path:{default:()=>[]}},emits:["action"],setup(i,{emit:t}){const n=i,o=t,r=e.computed(()=>n.model.name),l=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})}}))),a=[{name:"prev",icon:B.VtjIconArrowUp,title:"向前移动"},{name:"next",icon:B.VtjIconArrowDown,title:"向后移动"},{name:"copy",icon:B.VtjIconCopy,title:"复制"},{name:"remove",icon:B.VtjIconRemove,title:"删除"}],c=m=>{o("action",{type:"selected",model:m.command})},d=async m=>{m.name==="remove"?await ee("确定删除?")&&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(k.XAction),{mode:"icon",size:"small",icon:e.unref(B.VtjIconLayers),label:r.value,menus:s.value,background:"none",onCommand:c},null,8,["icon","label","menus"]),e.createVNode(e.unref(k.XActionBar),{disabled:!l.value,mode:"icon",size:"small",items:a,background:"none",onClick:d},null,8,["disabled"])],2))}}),Ht={key:1,class:"v-designer__placeholder"},qt=e.defineComponent({name:"VDesigner",inheritAttrs:!1,__name:"index",setup(i,{expose:t}){const n=e.ref(),o=e.ref(),{width:r,height:l}=ve.useElementSize(n),{dependencies:s,engine:a}=Ee(),{current:c,isEmpty:d}=z(),m=e.computed(()=>a.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc"),{designer:p,hover:v,dropping:f,selected:u}=rt(o,s),h=g=>{const _=g.type,y=g.model;if(c.value)switch(_){case"remove":c.value.removeNode(y),p.value?.setSelected(null);break;case"copy":const V=c.value.cloneNode(y);p.value?.setSelected(V);break;case"prev":c.value.movePrev(y),p.value?.setSelected(y);break;case"next":c.value.moveNext(y),p.value?.setSelected(y);break;case"hover":p.value?.setHover(y);break;case"selected":p.value?.setSelected(y);break}};return t({designer:p,mode:m}),(g,_)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"v-designer"},[e.createVNode(e.unref(ge),{mode:m.value,width:e.unref(r),height:e.unref(l)},{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(Ut,{position:e.unref(u).position,model:e.unref(u).model,path:e.unref(u).path,onAction:h},null,8,["position","model","path"])],4)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"]),e.unref(c)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,description:"请新建或打开文件"})),e.unref(c)&&e.unref(d)?(e.openBlock(),e.createElementBlock("div",Ht," 您可以拖拽组件放置到这里 ")):e.createCommentVNode("",!0)],512))}}),re=e.defineComponent({__name:"group",props:{context:{},current:{},title:{},nameLabel:{},valueLabel:{},createEmpty:{},list:{},remove:{},submit:{},itemTitle:{type:Function,default:i=>i.name}},setup(i){const t=i,n=e.ref(),o=e.ref(),r=e.ref(!1),l=e.ref(t.createEmpty()),s=e.ref(!1),a=e.computed(()=>s.value?`编辑${t.title}`:`新增${t.title}`),c=()=>{s.value=!1,l.value=t.createEmpty(),r.value=!0},d=(u,h)=>{switch(h.name){case"edit":p(u);break;case"remove":t.remove(u);break}},m=u=>{l.value.value=u},p=u=>{s.value=!0,l.value={...u},r.value=!0},v=async u=>t.submit(u,s.value),f=()=>{o.value?.itemRef.validate()};return(u,h)=>(e.openBlock(),e.createBlock(e.unref(A),{title:t.title,class:"v-sub-panel",size:"small",fit:!1,plus:"",onPlus:c},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,g=>(e.openBlock(),e.createBlock(e.unref($),{title:t.itemTitle(g),border:"",actions:["edit","remove"],onAction:_=>d(g,_),onClick:_=>p(g)},null,8,["title","onAction","onClick"]))),256)),u.list.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":40})),e.createVNode(e.unref(ie),{modelValue:r.value,"onUpdate:modelValue":h[1]||(h[1]=g=>r.value=g),title:a.value,"submit-method":v,model:l.value,block:u.current,context:u.context,onPick:m},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"fields",e.normalizeProps(e.guardReactiveProps({model:l.value,isEdit:s.value,nameLabel:u.nameLabel,valueLabel:u.valueLabel})),()=>[e.createVNode(e.unref(k.XField),{name:"name",label:u.nameLabel,required:"",disabled:s.value},null,8,["label","disabled"]),e.createVNode(e.unref(k.XField),{ref_key:"codeFieldRef",ref:o,name:"value",label:u.valueLabel,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,dark:"",height:"350px",modelValue:l.value.value,"onUpdate:modelValue":h[0]||(h[0]=g=>l.value.value=g),onBlur:f},null,8,["modelValue"])]),_:1},8,["label"])])]),_:3},8,["modelValue","title","model","block","context"])]),_:3},8,["title"]))}}),Gt=e.defineComponent({__name:"state",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>Object.entries(t.current?.state||{}).map(([a,c])=>({name:a,value:E.JSCodeToString(c)}))),o=()=>({name:"",value:""}),r=s=>t.current?.removeState(s.name),l=async(s,a)=>{const{name:c,value:d}=s;if(!a&&t.current?.state[c])return T(`名称 ${c} 已存在,请更换!`),!1;const m={type:"JSExpression",value:d};return M(m,t.context,!0)?(t.current?.setState(c,m),!0):!1};return(s,a)=>(e.openBlock(),e.createBlock(re,{title:"状态数据",current:t.current,context:t.context,list:n.value,nameLabel:"状态数据名称",valueLabel:"状态初始值 [ JSExpression ]",createEmpty:o,remove:r,submit:l},null,8,["current","context","list"]))}}),Kt=e.defineComponent({__name:"computed",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>Object.entries(t.current?.computed||{}).map(([a,c])=>({name:a,value:E.JSCodeToString(c)}))),o=()=>({name:"",value:"() => { }"}),r=s=>t.current?.removeFunction("computed",s.name),l=async(s,a)=>{const{name:c,value:d}=s;if(!a&&t.current?.computed[c])return T(`名称 ${c} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return M(m,t.context,!0)?(t.current?.setFunction("computed",c,m),!0):!1};return(s,a)=>(e.openBlock(),e.createBlock(re,{title:"计算属性",current:t.current,context:t.context,list:n.value,nameLabel:"计算属性名称",valueLabel:"计算函数 [ JSFunction ]",createEmpty:o,remove:r,submit:l},null,8,["current","context","list"]))}}),Zt=e.defineComponent({__name:"methods",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>Object.entries(t.current?.methods||{}).map(([a,c])=>({name:a,value:E.JSCodeToString(c)}))),o=()=>({name:"",value:"() => { }"}),r=s=>t.current?.removeFunction("methods",s.name),l=async(s,a)=>{const{name:c,value:d}=s;if(!a&&t.current?.methods[c])return T(`名称 ${c} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return M(m,t.context,!0)?(t.current?.setFunction("methods",c,m),!0):!1};return(s,a)=>(e.openBlock(),e.createBlock(re,{title:"组件方法",current:t.current,context:t.context,list:n.value,nameLabel:"方法名称",valueLabel:"方法函数 [ JSFunction ]",createEmpty:o,remove:r,submit:l},null,8,["current","context","list"]))}}),Qt=e.defineComponent({__name:"lifeCycles",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>E.LIFE_CYCLES_LIST.map(a=>({label:a,value:a}))),o=e.computed(()=>Object.entries(t.current?.lifeCycles||{}).map(([c,d])=>({name:c,value:E.JSCodeToString(d)}))),r=()=>({name:"",value:"() => { }"}),l=a=>t.current?.removeFunction("lifeCycles",a.name),s=async(a,c)=>{const{name:d,value:m}=a;if(!c&&t.current?.lifeCycles[d])return T(`名称 ${d} 已存在,请更换!`),!1;const p={type:"JSFunction",value:m};return M(p,t.context,!0)?(t.current?.setFunction("lifeCycles",d,p),!0):!1};return(a,c)=>(e.openBlock(),e.createBlock(re,{title:"生命周期",current:t.current,context:t.context,list:o.value,nameLabel:"名称",valueLabel:"函数 [ JSFunction ]",createEmpty:r,remove:l,submit:s},{fields:e.withCtx(({model:d,nameLabel:m,isEdit:p,valueLabel:v})=>[e.createVNode(e.unref(k.XField),{name:"name",label:m,editor:"select",options:n.value,required:"",disabled:p},null,8,["label","options","disabled"]),e.createVNode(e.unref(k.XField),{name:"value",label:v,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{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"]))}}),Yt=e.defineComponent({__name:"watch",props:{context:{},current:{}},setup(i){const t=i,n=e.computed(()=>(t.current?.watch||[]).map(a=>({...a,source:E.JSCodeToString(a.source),handler:E.JSCodeToString(a.handler)}))),o=()=>({source:"() => { }",deep:!1,immediate:!1,handler:"() => { }"}),r=a=>a.source,l=a=>t.current?.removeWatch(a),s=async(a,c)=>{const d={type:"JSFunction",value:a.source},m={type:"JSFunction",value:a.handler};if(!M(d,t.context,!0)||!M(m,t.context,!0))return!1;const p={...a,source:d,handler:m};return t.current?.setWatch(p),!0};return(a,c)=>(e.openBlock(),e.createBlock(re,{title:"侦听器",current:t.current,context:t.context,list:n.value,nameLabel:"侦听源 [ JSFunction ]",valueLabel:"处理函数 [ JSFunction ]",createEmpty:o,remove:l,submit:s,itemTitle:r,grow:""},{fields:e.withCtx(({model:d,nameLabel:m,valueLabel:p})=>[e.createVNode(e.unref(k.XField),{name:"source",label:m,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{dark:"",height:"100px",modelValue:d.source,"onUpdate:modelValue":v=>d.source=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"]),e.createVNode(e.unref(k.XField),{name:"deep",modelValue:d.deep,"onUpdate:modelValue":v=>d.deep=v,label:"深度监听",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(k.XField),{name:"immediate",modelValue:d.immediate,"onUpdate:modelValue":v=>d.immediate=v,label:"立即执行",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(k.XField),{name:"handler",label:p,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{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"]))}}),en=e.defineComponent({__name:"index",setup(i){const{current:t,context:n}=z();return(o,r)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:"v-scripts-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(Gt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Kt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Zt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Qt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(Yt,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"])]),_:1}))}}),ue=e.defineComponent({__name:"setters",props:{context:{},current:{},title:{},items:{},node:{},removable:{type:Boolean}},emits:["change","remove"],setup(i,{emit:t}){const n=i,o=t,r=(s,a)=>{o("change",s,a)},l=s=>{o("remove",s)};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(A),{title:n.title,class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElForm),{class:"v-properties-widget__form",size:"small","label-width":"90px",onKeydown:a[0]||(a[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,c=>(e.openBlock(),e.createBlock(e.unref(G),e.mergeProps(c,{key:`${c.name}_${n.node.id}`,current:n.current,context:n.context,removable:n.removable,onChange:r,onRemove:l}),null,16,["current","context","removable"]))),128))]),_:1})]),_:1},8,["title"]))}}),tn=e.defineComponent({name:"PropertiesWidget",__name:"index",setup(i){const{current:t,context:n}=z(),{selected:o}=K(),{node:r,commonProps:l,change:s,componentProps:a,customProps:c,addCustom:d,removeCustom:m,isExist:p}=it(o),v=e.ref(!1),f=e.ref(),u=()=>{v.value=!0,f.value={name:""}},h=async _=>{const y=Object.keys(r.value?.props||{});return!p(_.name)&&!y.includes(_.name)?(d(_.name),!0):(T("已存在该属性名称"),!1)},g=async _=>{await ee("确定删除?")&&m(_)};return(_,y)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-properties-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.unref(r)?(e.openBlock(),e.createBlock(ue,{key:0,title:"通用属性",current:e.unref(t),context:e.unref(n),node:e.unref(r),items:e.unref(l),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createBlock(ue,{key:1,title:"组件属性",current:e.unref(t),context:e.unref(n),node:e.unref(r),items:e.unref(a),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(r)?(e.openBlock(),e.createBlock(ue,{key:2,title:"自定义属性",current:e.unref(t),context:e.unref(n),node:e.unref(r),items:e.unref(c),onChange:e.unref(s),removable:"",plus:"",grow:"",onPlus:u,onRemove:g},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.createVNode(e.unref(k.XDialogForm),{modelValue:v.value,"onUpdate:modelValue":y[0]||(y[0]=V=>v.value=V),title:"新增自定义属性",width:"400px",height:"150px","submit-method":h,formProps:{tooltipMessage:!1},model:f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"属性名称",required:"",rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["rules"])]),_:1},8,["modelValue","model"])]),_:1})):e.createCommentVNode("",!0)}}),Fe=e.defineComponent({name:"VariableBinder",__name:"variable",props:{context:{},current:{},value:{}},setup(i){const t=i,n=e.ref(),o=e.reactive({type:"JSExpression",value:t.value}),r=l=>{n.value.getEditor().setValue(l),o.value=l};return(l,s)=>(e.openBlock(),e.createBlock(e.unref(ie),{title:"绑定变量","unbind-enabled":"",block:t.current,context:t.context,model:o,onPick:r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"value",label:"绑定内容 [ JSExpression ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=a=>o.value=a),dark:"",height:"450px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),Ie=e.defineComponent({name:"EventBinder",__name:"event",props:{context:{},current:{},name:{},event:{}},setup(i){const t=i,n=e.ref(),o=()=>({name:t.name,...t.event,modifiers:Object.keys(t.event?.modifiers||{}),handler:{type:"JSFunction",value:t.event?.handler?.value||"() => {}"}}),r=e.reactive(o()),l=Ve.map(a=>({label:a,value:a})),s=a=>{n.value.getEditor().setValue(a),r.handler.value=a};return(a,c)=>(e.openBlock(),e.createBlock(e.unref(ie),{title:"绑定事件","unbind-enabled":"",block:t.current,context:t.context,model:r,onPick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"modifiers",label:"事件修饰符",editor:"checkbox",options:e.unref(l)},null,8,["options"]),e.createVNode(e.unref(k.XField),{name:"handler.value",label:"事件处理函数 [ JSFunction ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,modelValue:r.handler.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.handler.value=d),dark:"",height:"350px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),nn=e.defineComponent({name:"EventsWidget",__name:"index",setup(i){const{current:t,context:n}=z(),{selected:o}=K(),{mouseEventList:r,keyboardEventList:l,componentEventList:s}=ct(o),a=e.ref({name:"",event:void 0}),c=e.ref(!1),d=u=>{a.value=L.cloneDeep(u),c.value=!0},m=async u=>{const h={...u,modifiers:u.modifiers.reduce((_,y)=>(_[y]=!0,_),{})};return M(h.handler,n.value,!0)?((o.value?.model).setEvent(h),!0):!1},p=async u=>{const h=o.value?.model;u.name&&(h.removeEvent(u.name),c.value=!1)},v=async()=>{a.value.name&&await ee("确定要删除该事件吗?")&&p(a.value)},f=u=>{const{name:h,modelValue:g}=u;h==="edit"&&d(g),h==="remove"&&p(g)};return(u,h)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:"v-events-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(A),{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(b.ElEmpty),{key:0,"image-size":50,description:"该组件无自带事件"})),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),g=>(e.openBlock(),e.createBlock(e.unref($),{title:g.name,"model-value":g,border:"",small:"",actions:g.event?["edit","remove"]:["edit"],active:!!g.event,onClick:_=>d(g),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),256))]),_:1}),e.createVNode(e.unref(A),{title:"鼠标事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r),g=>(e.openBlock(),e.createBlock(e.unref($),{title:g.name,"model-value":g,border:"",small:"",actions:g.event?["edit","remove"]:["edit"],active:!!g.event,onClick:_=>d(g),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),256))]),_:1}),e.createVNode(e.unref(A),{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(l),g=>(e.openBlock(),e.createBlock(e.unref($),{title:g.name,"model-value":g,border:"",small:"",actions:g.event?["edit","remove"]:["edit"],active:!!g.event,onClick:_=>d(g),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),256))]),_:1}),c.value?(e.openBlock(),e.createBlock(e.unref(Ie),{key:0,modelValue:c.value,"onUpdate:modelValue":h[0]||(h[0]=g=>c.value=g),context:e.unref(n),current:e.unref(t),name:a.value.name,event:a.value.event,submitMethod:m,onUnbind:v},null,8,["modelValue","context","current","name","event"])):e.createCommentVNode("",!0)]),_:1}))}}),on=e.defineComponent({name:"CssWidget",__name:"index",setup(i){const{current:t}=z(),n=e.ref(),o=e.computed(()=>t.value?.css||""),r=s=>{t.value?.setCss(s)},l=()=>{const a=(n.value?.getEditor()).getValue();r(a),W("保存成功")};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(A),{class:"v-css-widget v-sub-panel",title:"lang:css scoped",size:"small",fit:"",save:"",onSave:l},{default:e.withCtx(()=>[e.createVNode(e.unref(R),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"css",dark:"",onBlur:r},null,8,["model-value"])]),_:1}))}}),rn=e.defineComponent({name:"DirectivesWidget",__name:"index",setup(i){const{current:t,context:n}=z(),{selected:o}=K(),{vIf:r,vShow:l,vBind:s,vFor:a,vModels:c,onValueChange:d,onForChange:m,onModelChange:p}=mt(o),v=f=>f.arg?typeof f.arg=="string"?f.arg:E.parseExpression(f.arg,{}):"modelValue";return(f,u)=>(e.openBlock(),e.createBlock(e.unref(k.XContainer),{class:"v-directives-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(A),{class:"v-sub-panel",title:"内置指令",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.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(G),{name:"vIf",label:"v-if",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(G),{name:"vShow",label:"v-show",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(G),{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(A),{class:"v-sub-panel",title:"循环",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.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(G),{name:"value",label:"循环数据",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(G),{name:"item",label:"迭代变量名",setters:{name:"StringSetter",props:{placeholder:"item"}},current:e.unref(t),context:e.unref(n),value:e.unref(a).iterator?.item,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(G),{name:"index",label:"索引变量名",setters:{name:"StringSetter",props:{placeholder:"index"}},current:e.unref(t),context:e.unref(n),value:e.unref(a).iterator?.index,onChange:e.unref(m)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(A),{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(c),(h,g)=>(e.openBlock(),e.createBlock(e.unref(A),{card:"",border:"",class:"v-sub-panel",size:"small",title:`v-model: ${v(h)}`,body:{grow:!1},fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.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(G),{name:g.toString(),label:"绑定变量",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:h.value,onChange:e.unref(p)},null,8,["name","current","context","value","onChange"])]),_:2},1024)]),_:2},1032,["title"]))),256)),e.unref(c).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,description:"当前组件没有双向绑定属性","image-size":50}))]),_:1})]),_:1}))}}),ln=e.defineComponent({name:"DefinedPropsDialog",__name:"props",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑定义属性":"新增定义属性"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),r=Object.keys(E.DATA_TYPES).map(s=>({label:s,value:s})),l=async s=>{const a=s.default;return a&&!M(a,t.context,!0)?!1:(t.current.setProp(s),!0)};return(s,a)=>(e.openBlock(),e.createBlock(e.unref(k.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(k.XField),{name:"name",label:"属性名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"]),e.createVNode(e.unref(k.XField),{name:"type",label:"数据类型",editor:"checkbox",props:{button:!0,size:"small"},options:e.unref(r),required:""},null,8,["options"]),e.createVNode(e.unref(k.XField),{name:"required",label:"必须",editor:"switch"}),e.createVNode(e.unref(k.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(R),{modelValue:o.value.default.value,"onUpdate:modelValue":a[0]||(a[0]=c=>o.value.default.value=c),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),an=e.defineComponent({name:"DefinedEventsDialog",__name:"events",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑定义事件":"新增定义事件"),o=e.ref({name:t.item}),r=async l=>(t.item&&t.current.removeEmit(t.item,!0),t.current.setEmit(l.name),!0);return(l,s)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"事件名称",required:"",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),sn=e.defineComponent({name:"DefinedSlotsDialog",__name:"slots",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑定义插槽":"新增定义插槽"),o=e.ref({name:t.item}),r=async l=>(t.item&&t.current.removeSlot(t.item,!0),t.current.setSlot(l.name),!0);return(l,s)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"插槽名称",disabled:!!t.item,required:"",rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),cn=e.defineComponent({name:"DefinedInjectsDialog",__name:"injects",props:{item:{},current:{},context:{}},setup(i){const t=i,n=e.computed(()=>t.item?"编辑注入":"新增注入"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),r=async l=>{const s=l.default;return s&&!M(s,t.context,!0)?!1:(t.current.setInject(l),!0)};return(l,s)=>(e.openBlock(),e.createBlock(e.unref(k.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":r},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XField),{name:"name",label:"注入名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(H)}},null,8,["disabled","rules"]),e.createVNode(e.unref(k.XField),{name:"from",label:"来源名称",tip:"默认和注入名称一致"}),e.createVNode(e.unref(k.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(R),{modelValue:o.value.default.value,"onUpdate:modelValue":s[0]||(s[0]=a=>o.value.default.value=a),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),un=e.defineComponent({name:"DefinedWidget",__name:"index",setup(i){const{current:t,context:n}=z(),o=e.computed(()=>(t.value?.props||[]).map(j=>typeof j=="string"?{name:j}:j)),r=e.computed(()=>t.value?.emits||[]),l=e.computed(()=>t.value?.slots||[]),s=e.computed(()=>t.value?.inject||[]),a=e.ref(!1),c=e.ref(),d=e.ref(!1),m=e.ref(),p=e.ref(!1),v=e.ref(),f=e.ref(!1),u=e.ref(),h=()=>{c.value=void 0,a.value=!0},g=j=>{const{name:I,modelValue:S}=j;I==="edit"&&_(S),I==="remove"&&t.value?.removeProp(S)},_=j=>{c.value=j,a.value=!0},y=()=>{m.value=void 0,d.value=!0},V=j=>{m.value=j,d.value=!0},D=j=>{const{name:I,modelValue:S}=j;I==="edit"&&V(S),I==="remove"&&t.value?.removeEmit(S)},C=()=>{v.value=void 0,p.value=!0},N=j=>{v.value=j,p.value=!0},x=j=>{const{name:I,modelValue:S}=j;I==="edit"&&N(S),I==="remove"&&t.value?.removeSlot(S)},P=()=>{u.value=void 0,f.value=!0},U=j=>{u.value=j,f.value=!0},Q=j=>{const{name:I,modelValue:S}=j;I==="edit"&&U(S),I==="remove"&&t.value?.removeInject(S)};return(j,I)=>e.unref(t)&&e.unref(n)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-defined-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(A),{class:"v-sub-panel",title:"定义属性",size:"small",plus:"",fit:!1,onPlus:h},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S.name,border:"",actions:["edit","remove"],onClick:te=>_(S),onAction:g},null,8,["model-value","title","onClick"]))),256)),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),a.value?(e.openBlock(),e.createBlock(ln,{key:1,current:e.unref(t),context:e.unref(n),modelValue:a.value,"onUpdate:modelValue":I[0]||(I[0]=S=>a.value=S),item:c.value},null,8,["current","context","modelValue","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(A),{class:"v-sub-panel",title:"定义事件",size:"small",plus:"",fit:!1,onPlus:y},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S,border:"",actions:["remove"],onClick:te=>V(S),onAction:D},null,8,["model-value","title","onClick"]))),256)),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),d.value?(e.openBlock(),e.createBlock(an,{key:1,modelValue:d.value,"onUpdate:modelValue":I[1]||(I[1]=S=>d.value=S),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(A),{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,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S,border:"",actions:["remove"],onClick:te=>N(S),onAction:x},null,8,["model-value","title","onClick"]))),256)),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),p.value?(e.openBlock(),e.createBlock(sn,{key:1,modelValue:p.value,"onUpdate:modelValue":I[2]||(I[2]=S=>p.value=S),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(A),{class:"v-sub-panel",title:"注入",size:"small",plus:"",fit:!1,grow:"",onPlus:P},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>(e.openBlock(),e.createBlock(e.unref($),{"model-value":S,title:S.name,border:"",actions:["remove"],onClick:te=>U(S),onAction:Q},null,8,["model-value","title","onClick"]))),256)),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:0,"image-size":50})),f.value?(e.openBlock(),e.createBlock(cn,{key:1,modelValue:f.value,"onUpdate:modelValue":I[3]||(I[3]=S=>f.value=S),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)}}),dn=e.defineComponent({name:"DataSourceDialogForm",__name:"form",props:{context:{},current:{},item:{}},setup(i){const t=i,{apis:n}=pt(),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({
|
|
@@ -41,4 +41,4 @@
|
|
|
41
41
|
${JSON.stringify(m)});
|
|
42
42
|
<\/script>
|
|
43
43
|
</html>
|
|
44
|
-
`),r.close()}async emitReady(t=[],n=[],o={}){this.renderer?.dispose(),this.renderer=null;const r=this.contentWindow,{assets:l,service:s,current:a,provider:c}=this.engine,d=c.materials||{},m=[];for(const v of n){const f=d[v]?(await d[v]()).default:r[v];m.push(f)}l.load(m);const p=this.createEnv(t,o,m);this.renderer=new Xe(p,s,this.designer.value),a.value&&this.renderer.render(a.value),this.triggerReady()}createEnv(t=[],n={},o=[]){const r=this.contentWindow,{engine:l}=this,{project:s,assets:a,provider:c}=l,d=t.reduce((g,_)=>(g[_]=r[_],g),{}),m={},{groups:p,componentMap:v}=a;for(const g of p.value){const _=g.names||[],y=d[n[g.library||""]];y&&_.forEach(V=>{const D=v.get(V);D?m[V]=E.getRawComponent(D,y):m[V]=y[V]})}const{adapter:f,globals:u}=c,h=E.createSchemaApis(s.value?.apis,f);return{window:r,Vue:r.Vue,library:d,materials:o,components:m,container:r.document.body,apis:h,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 Je{constructor(t){this.service=t}components=[];componentMap=new Map;groups=e.ref([]);getCateoryComponents(t,n){const o=n.filter(r=>r.categoryId===t.id&&r.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:r,components:l,label:s,name:a,library:c}=o;if(!r||!l)continue;const d=l.map(f=>f.name),m=r.map(f=>this.getCateoryComponents(f,l)),p=m.reduce((f,u)=>u.count+f,0),v={name:o.name,label:s||a,count:p,names:d,library:c,children:m};n.push(v)}return n}load(t){const n=[...Te,...t].filter(o=>!!o);n.sort((o,r)=>o.order-r.order);for(let o of n)o.components&&(this.components=this.components.concat(o.components));this.groups.value=this.parseGroups(n),this.componentMap=L.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:r,name:l,slots:s,props:a,emits:c}=o,d=p=>{const v=Array.isArray(p)?p:[p];let f=[];for(const u of v)f=f.concat(ne.getByType(u));return f};return{id:r,name:l,childIncludes:s?.length?void 0:!1,props:(a||[]).map(p=>typeof p=="string"?{name:p}:{name:p.name,type:p.type,setters:d(p.type)}),events:c,slots:s,from:t}}}const ke=Symbol("VtjEngine");class Xn 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;constructor(t){super();const{container:n,service:o,project:r={},globals:l={},dependencies:s,materials:a,materialPath:c="./"}=t;this.container=n,this.service=o,this.provider=new E.Provider({mode:E.ContextMode.Design,globals:l,project:r,service:o,dependencies:s,materials:a,materialPath:c}),this.assets=new Je(this.service),this.simulator=new We({engine:this,materialPath:c}),this.bindEvents(),this.init(r),e.onMounted(this.render.bind(this)),e.onUnmounted(this.dispose.bind(this))}async init(t){const n=await this.service.init(t).catch(o=>(E.logger.warn("VTJEngine service init fail.",o),null));n&&(n.dependencies=Le.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(Ue);n.provide(ke,e.shallowReactive(this)),n.mount(t),this.app=n}else E.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 r=await this.service.getFile(o.id);r&&(o.dsl=r)}if(o?.dsl){const r=new w.BlockModel(o.dsl);this.updateCurrent(r),this.initHistory(r)}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,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 r=t.data;o.isPageFile(r)&&r.raw?(await this.service.createRawPage(r),W(`源码文件已经生成:/.vtj/vue/${r.id}.vue`,"success")):r.dsl&&await this.service.saveFile(r.dsl)}if(n==="update"){const r=t.data;if(o.isPageFile(r)&&(r.dir||r.raw))return;const l=await this.service.getFile(r.id);l&&(l.name=r.name,await this.service.saveFile(l))}if(n==="delete"){const r=t.data;r&&o.isPageFile(r)&&r.raw?await this.service.removeRawPage(r.id):r.dir||(await this.service.removeFile(r.id),await this.service.removeHistory(r.id))}if(n==="clone"){const{page:r,newPage:l}=t.data,s=await this.service.getFile(r.id);s&&(s.id=l.id,s.name=l.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 r=o.toDsl();await this.service.saveHistory(r),e.triggerRef(this.history)}async loadHistory(t){const n=t.model,o=t.data,r=await this.service.getHistoryItem(n.id,o.id);if(r&&r.dsl){const l=new w.BlockModel(r.dsl);await this.updateCurrent(l),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)&&W("整站发布成功","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)&&W("发布成功","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"),r=t||n?.homepage;if(!n||!o||!r)return;const l=n.getPage(r);l&&!l.raw&&(o.regionRef?.setActive("Pages"),this.simulator.ready(()=>{n.active(l)}));const s=n.getBlock(r);s&&(o.regionRef?.setActive("Blocks"),this.simulator?.ready(()=>{n.active(s)}))}}function O(){const i=e.inject(ke,null);return i||E.logger.error("VTJEngine is not exist"),i}const q=e.defineComponent({name:"RegionWrapper",props:{region:{type:String,required:!0}},setup(){return{regionRef:e.ref()}},render(){const i=fe[this.region]||fe.EmptyRegion;return e.h(i,{...this.$props,...this.$attrs,ref:"regionRef"})}}),Z=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"})}}),Ue=e.defineComponent({name:"SkeletonWrapper",setup(){const i=e.ref(),t=O(),n=e.ref({});return{skeletonRef:i,engine:t,widgets:n}},mounted(){this.engine.skeleton=this},render(){return e.h(He,{...this.$props,...this.$attrs,ref:"skeletonRef"})},methods:{getRegion(i){return this.skeletonRef[i.toLowerCase()]},toggleCollapse(i){if(this.skeletonRef){const t=this.skeletonRef.collapsed;this.skeletonRef.collapsed=i??!t}},settable(i){this.skeletonRef&&(this.skeletonRef.settable=i)},getWidgets(i){const t=this.getRegion(i);return t?L.toArray(t.regionRef?.widgetsRef||[]):[]},getWidget(i){const t=he.get(i);if(!t){E.logger.warn(`widget [ ${i} ] is not exsit`);return}return this.getWidgets(t.region).find(o=>o.widget.name===i)},openPreview(i){this.skeletonRef&&(this.skeletonRef.isPreview=!0)},closePreview(){this.skeletonRef&&(this.skeletonRef.isPreview=!1)}}}),G=e.defineComponent({name:"SetterWrapper",props:{context:{type:Object},current:{type:Object},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:i,computedSetters:t}=this;let n=typeof i;n==="Object"&&(Array.isArray(i)?n="Array":E.isJSExpression(i)?n="Object":E.isJSFunction(i)&&(n="Function"));const o=ne.getByType(n)||[];return o.length?(t.find(r=>o.includes(r.name))||t[0])?.name:t[0]?.name}},render(){const{context:i,current:t,name:n,label:o,title:r,value:l,computedSetters:s,computedOptions:a,variable:c,changeValue:d,defaultSetter:m,removable:p,onRemove:v}=this;return e.h(qe,{context:i,current:t,name:n,label:o,title:r,setters:s,defaultSetter:m,variable:c,value:l,removable:p,options:a,onChange:d,onRemove:v})},emits:["change","remove"],methods:{getSetter(i){return typeof i=="string"?ne.get(i)||ne.defaultSetter:i},changeValue(i){this.$emit("change",this.name,i)},onRemove(i){this.$emit("remove",i)}}}),He=e.defineComponent({name:"Skeletion",__name:"skeleton",props:{headerHeight:{default:"36px"},leftWidth:{default:"400px"},rightWidth:{default:"350px"},footerHeight:{default:"20px"}},setup(i,{expose:t}){const n=i,o=e.ref(!1),r=e.ref(parseInt(n.leftWidth)),l=e.ref(parseInt(n.rightWidth)),s={dirs:["e"],maxWidth:600,minWidth:49,onResizing(y,V){r.value=V.elementWidth.value},onEnd(y,V){r.value=V.elementWidth.value}},a={dirs:["w"],maxWidth:600,minWidth:2,onResizing(y,V){l.value=V.elementWidth.value},onEnd(y,V){l.value=V.elementWidth.value}},c=e.ref(),d=e.ref(),m=e.ref(),p=e.ref(),v=e.ref(),f=e.ref(),u=e.ref(),h=e.ref(),g=e.ref(!1),_=e.ref(!1);return t({brand:c,toolbar:d,actions:m,apps:p,workspace:v,settings:f,status:u,collapsed:g,settable:_,leftWidth:r,rightWidth:l,preview:h,isPreview:o}),(y,V)=>(e.openBlock(),e.createBlock(e.unref(b.ElConfigProvider),{locale:e.unref(Ge)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElContainer),{class:"v-skeleton"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElHeader),{class:"v-skeleton__header",height:y.headerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"brand",ref:c,region:"Brand"},null,512),e.createVNode(e.unref(q),{ref_key:"toolbar",ref:d,region:"Toolbar",preview:o.value},null,8,["preview"]),e.createVNode(e.unref(q),{ref_key:"actions",ref:m,region:"Actions"},null,512)]),_:1},8,["height"]),e.createVNode(e.unref(b.ElContainer),{class:"v-skeleton__wrapper"},{default:e.withCtx(()=>[o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.ElAside),{key:0,width:n.leftWidth,class:e.normalizeClass(["v-skeleton__left",{"is-collapsed":g.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"apps",ref:p,region:"Apps"},null,512)]),_:1},8,["width","class"])),[[e.unref(k.vResizable),s]]),e.createVNode(e.unref(b.ElMain),{class:"v-skeleton__main"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createBlock(e.unref(q),{key:0,ref_key:"preview",ref:h,region:"Preview",preview:o.value},null,8,["preview"])):e.createCommentVNode("",!0),e.withDirectives(e.createVNode(e.unref(q),{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(b.ElAside),{key:1,width:n.rightWidth,class:"v-skeleton__right"},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"settings",ref:f,region:"Settings"},null,512)]),_:1},8,["width"])),[[e.vShow,_.value],[e.unref(k.vResizable),a]])]),_:1}),o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElFooter),{key:0,class:"v-skeleton__footer",height:y.footerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"status",ref:u,region:"Status"},null,512)]),_:1},8,["height"]))]),_:1})]),_:1},8,["locale"]))}}),Wn={key:1},Jn={class:"v-setter__content"},Un={key:0,class:"v-setter__input"},Hn={class:"v-setter__action"},qn="{{",Gn="}}",qe=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(i,{emit:t}){const n=i,o=t,r=e.ref(!1),l=e.ref(""),s=e.ref(n.setters.find(_=>_.name===n.defaultSetter)||n.setters[0]),a=e.ref(n.value),c=e.computed(()=>!!E.isJSExpression(a.value)),d={[s.value.name]:a.value},m=_=>{d[s.value.name]=a.value,s.value=_,a.value=d[_.name]??void 0,p(a.value)};e.watch(()=>n.value,()=>{a.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=()=>{r.value=!0,l.value=E.isJSExpression(a.value)?a.value.value:""},u=()=>{r.value=!1,l.value=""},h=async _=>M(_,n.context,!0)?(d[s.value.name]=a.value,a.value=_,o("change",_),!0):!1,g=async()=>{await ee("确定要解除绑定吗?")&&(u(),a.value=void 0,o("change",""))};return(_,y)=>(e.openBlock(),e.createBlock(e.unref(b.ElFormItem),{class:"v-setter",size:"small","label-positon":"left"},{label:e.withCtx(()=>[n.title?(e.openBlock(),e.createBlock(e.unref(b.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",Wn,e.toDisplayString(n.label||n.name),1))]),default:e.withCtx(()=>[e.createElementVNode("div",Jn,[s.value?(e.openBlock(),e.createElementBlock("div",Un,[c.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:a.value,"onUpdate:modelValue":y[0]||(y[0]=V=>a.value=V),onChange:p,disabled:c.value}),null,16,["current","context","options","modelValue","disabled"])),c.value?(e.openBlock(),e.createBlock(e.unref(b.ElInput),{key:1,class:"v-expression-setter",disabled:"","model-value":"JSExpression"},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(qn))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Gn))]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Hn,[n.variable?(e.openBlock(),e.createBlock(e.unref(B.VtjIconVars),{key:0,onClick:f,class:e.normalizeClass(["v-icon-vars",{"is-active":c.value}]),title:"绑定变量"},null,8,["class"])):e.createCommentVNode("",!0),n.setters.length>1?(e.openBlock(),e.createBlock(e.unref(b.ElDropdown),{key:1,disabled:c.value,size:"small","popper-class":"v-setter-switch",onCommand:m},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(b.ElDropdownMenu),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.setters,V=>(e.openBlock(),e.createBlock(e.unref(b.ElDropdownItem),{command:V,key:V.name},{default:e.withCtx(()=>[e.createVNode(e.unref(B.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(B.VtjIconSwitch),{title:"切换设置器"})]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.removable?(e.openBlock(),e.createBlock(e.unref(B.VtjIconRemove),{key:2,onClick:v,title:"删除"})):e.createCommentVNode("",!0)])]),r.value?(e.openBlock(),e.createBlock(e.unref(Fe),{key:0,current:n.current,context:n.context,value:l.value,modelValue:r.value,"onUpdate:modelValue":y[1]||(y[1]=V=>r.value=V),submitMethod:h,onUnbind:g},null,8,["current","context","value","modelValue"])):e.createCommentVNode("",!0)]),_:1}))}}),Kn={class:"v-empty-region"},Zn=e.defineComponent({name:"EmptyRegion",__name:"empty",props:{region:{}},setup(i){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Kn,"找不到符合【"+e.toDisplayString(t.region)+"】名称的区域组件",1))}}),Qn={class:"v-brand-region"},Yn=e.defineComponent({name:"BrandRegion",inheritAttrs:!1,__name:"brand",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",Qn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a},null,8,["region","widget"]))),256))]))}}),eo={class:"v-toolbar-region"},to=e.defineComponent({name:"ToolbarRegion",__name:"toolbar",props:{region:{},preview:{type:Boolean}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",eo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a,preview:l.preview},null,8,["region","widget","preview"]))),256))]))}}),no={class:"v-actions-region"},oo=e.defineComponent({name:"ActionsRegion",inheritAttrs:!1,__name:"actions",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",no,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a},null,8,["region","widget"]))),256))]))}}),ro={class:"v-apps-region"},lo={class:"v-apps-region__header"},ao={class:"v-apps-region__top"},so={class:"v-apps-region__bottom"},io={class:"v-apps-region__panels"},co=e.defineComponent({name:"AppsRegion",inheritAttrs:!1,__name:"apps",props:{region:{},index:{default:0}},setup(i,{expose:t}){const n=i,o=O(),{widgets:r,widgetsRef:l}=Y(n.region),s=e.computed(()=>r.value.filter(u=>u.openType==="panel")),a=e.computed(()=>r.value.filter(u=>u.openType!=="panel")),c=s.value[n.index],d=e.ref(c),m=e.ref(c),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"&&k.createDialog({title:u.label,icon:u.icon,...u.props,content:u.component})};return e.watch(m,u=>{o.skeleton?.toggleCollapse(!u)}),t({widgets:r,widgetsRef:l,setActive:u=>{const h=s.value.find(g=>g.name===u);d.value=h,m.value=h}}),(u,h)=>(e.openBlock(),e.createElementBlock("div",ro,[e.createElementVNode("div",lo,[e.createElementVNode("div",ao,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,g=>(e.openBlock(),e.createBlock(e.unref(pe),{key:`icon-${g.name}`,icon:g.icon,label:g.label,active:d.value?.name===g.name,open:m.value?.name===g.name,onClick:_=>p(g)},null,8,["icon","label","active","open","onClick"]))),128))]),e.createElementVNode("div",so,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,g=>(e.openBlock(),e.createBlock(e.unref(pe),{key:`icon-${g.name}`,icon:g.icon,label:g.label,onClick:_=>v(g)},null,8,["icon","label","onClick"]))),128))])]),e.createElementVNode("div",io,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,g=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:g.name},[d.value?.name===g.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:u.region,widget:g},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))])]))}}),uo=e.defineComponent({name:"WorkspaceRegion",__name:"workspace",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region),l=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(()=>l.filter(f=>!f.closable||f.checked)),a=e.computed(()=>l.map(f=>({...f,disabled:!f.closable}))),c=e.ref(s.value[0]?.name),d=e.computed(()=>l.find(u=>u.name===c.value)?.props||{}),m=f=>{const u=l.find(h=>h.name===f);u&&(u.checked=!1),c.value===f&&(c.value=s.value[0]?.name)},p=f=>{const u=l.find(h=>h.name===f.name);u&&u.closable&&(u.checked=!u.checked,u.checked&&(c.value=u.name),!u.checked&&c.value===u.name&&(c.value=s.value[0]?.name))};return t({currentTab:c,widgets:o,widgetsRef:r,openTab:(f,u={})=>{const h=l.find(g=>g.name===f);h&&(h.props=Object.assign({},h.props,u),h.checked=!0,c.value=h.name)}}),(f,u)=>(e.openBlock(),e.createBlock(e.unref(oe),{class:"v-workspace-region",items:s.value,menus:a.value,modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=h=>c.value=h),checkable:"",onRemove:m,onCommand:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),h=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:h.name},[c.value===h.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:r,region:f.region,widget:{...h,props:d.value}},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","menus","modelValue"]))}}),mo=e.defineComponent({name:"SettingsRegion",__name:"settings",props:{region:{}},setup(i,{expose:t}){const n=i,o=O(),{current:r}=z(),{selected:l,isSelectBlock:s}=K(),a=e.computed(()=>s.value?J.Block:J.Node),{widgets:c,widgetsRef:d}=Y(n.region,a),m=e.computed(()=>c.value.map(u=>({name:u.name,label:u.label}))),p=e.ref(""),v=e.computed(()=>{const u=l.value?.model;return u?o.assets.componentMap.get(u.name)?.doc:null});e.watch(r,u=>{o.skeleton?.settable(!!u)}),e.watch(a,()=>{p.value=m.value[0]?.name},{immediate:!0});const f=()=>{if(v.value){const u=o.skeleton?.getRegion("Workspace");u&&u.regionRef.openTab("Docs",{url:v.value})}};return t({widgets:c,widgetsRef:d}),(u,h)=>e.unref(r)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-settings-region",fit:"",direction:"column"},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,flex:"",justify:"space-between",align:"center",class:"v-settings-region__header"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{class:"v-settings-region__title"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconLayers)),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(l)?.model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(l)?.model.id),1)])]),_:1}),v.value?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XAction),{onClick:f,icon:e.unref(B.VtjIconHelp),mode:"text",label:"帮助"},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),e.unref(l)&&!e.unref(l).model.locked?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:1,grow:"",padding:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(oe),{items:m.value,modelValue:p.value,"onUpdate:modelValue":h[0]||(h[0]=g=>p.value=g),stretch:"",body:{padding:!1}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.name},[p.value===g.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:d,region:u.region,widget:g},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(l)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:2,description:"请在左侧画布选中节点"})),e.unref(l)&&e.unref(l).model.locked?(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:3,"image-size":1,description:"节点已被锁定, 禁止编辑"})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),po={class:"v-status-region"},fo=e.defineComponent({name:"StatusRegion",inheritAttrs:!1,__name:"status",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a},null,8,["region","widget"]))),256))]))}}),vo=e.defineComponent({name:"PreviewRegion",__name:"preview",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region),l=e.reactive(o.value.map(c=>({name:c.name,command:c.name,label:c.label,closable:!!c.closable,checked:!1}))),s=e.computed(()=>l.filter(c=>!c.closable||c.checked)),a=e.ref(s.value[0]?.name);return t({currentTab:a,widgets:o,widgetsRef:r}),(c,d)=>(e.openBlock(),e.createBlock(e.unref(oe),{class:"v-workspace-region",items:s.value,modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=m=>a.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},[a.value===m.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:r,region:c.region,widget:m},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))]),_:1},8,["items","modelValue"]))}}),fe={EmptyRegion:Zn,Brand:Yn,Toolbar:to,Actions:oo,Apps:co,Workspace:uo,Settings:mo,Status:fo,Preview:vo};exports.API_METHOD_TYPES=Ce;exports.Assets=Je;exports.Binder=ie;exports.Box=ae;exports.Designer=Oe;exports.EVENT_MODIFIERS=Ve;exports.Editor=R;exports.Engine=Xn;exports.EventBinder=Ie;exports.Icon=pe;exports.Item=$;exports.KEYBOARD_EVENT_LIST=we;exports.MOBILE_SIZE=de;exports.MOUSE_EVENT_LIST=ye;exports.NAME_REGEX=H;exports.PAD_SIZE=me;exports.Panel=A;exports.RegionType=Be;exports.RegionWrapper=q;exports.Renderer=Xe;exports.SetterView=qe;exports.SetterWrapper=G;exports.Simulator=We;exports.Skeleton=He;exports.SkeletonWrapper=Ue;exports.SlotsPicker=Ae;exports.Tabs=oe;exports.VTJ_DESIGNER_VERSION=_e;exports.VariableBinder=Fe;exports.Viewer=je;exports.Viewport=ge;exports.WidgetGroup=J;exports.WidgetWrapper=Z;exports.builtInDeps=Re;exports.builtInMaterials=Te;exports.builtInSetters=Me;exports.builtInWidgets=Pe;exports.confirm=ee;exports.createSlotsPicker=ze;exports.defaultSetter=$e;exports.depsManager=Le;exports.engineKey=ke;exports.expressionValidate=M;exports.message=W;exports.notify=T;exports.regions=fe;exports.setterManager=ne;exports.setters=X;exports.useEngine=O;exports.widgetManager=he;exports.widgets=F;
|
|
44
|
+
`),r.close()}async emitReady(t=[],n=[],o={}){this.renderer?.dispose(),this.renderer=null;const r=this.contentWindow,{assets:l,service:s,current:a,provider:c}=this.engine,d=c.materials||{},m=[];for(const v of n){const f=d[v]?(await d[v]()).default:r[v];m.push(f)}l.load(m);const p=this.createEnv(t,o,m);this.renderer=new Xe(p,s,this.designer.value),a.value&&this.renderer.render(a.value),this.triggerReady()}createEnv(t=[],n={},o=[]){const r=this.contentWindow,{engine:l}=this,{project:s,assets:a,provider:c}=l,d=t.reduce((g,_)=>(g[_]=r[_],g),{}),m={},{groups:p,componentMap:v}=a;for(const g of p.value){const _=g.names||[],y=d[n[g.library||""]];y&&_.forEach(V=>{const D=v.get(V);D?m[V]=E.getRawComponent(D,y):m[V]=y[V]})}const{adapter:f,globals:u}=c,h=E.createSchemaApis(s.value?.apis,f);return{window:r,Vue:r.Vue,library:d,materials:o,components:m,container:r.document.body,apis:h,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 Je{constructor(t){this.service=t}components=[];componentMap=new Map;groups=e.ref([]);getCateoryComponents(t,n){const o=n.filter(r=>r.categoryId===t.id&&r.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:r,components:l,label:s,name:a,library:c}=o;if(!r||!l)continue;const d=l.map(f=>f.name),m=r.map(f=>this.getCateoryComponents(f,l)),p=m.reduce((f,u)=>u.count+f,0),v={name:o.name,label:s||a,count:p,names:d,library:c,children:m};n.push(v)}return n}load(t){const n=[...Te,...t].filter(o=>!!o);n.sort((o,r)=>o.order-r.order);for(let o of n)o.components&&(this.components=this.components.concat(o.components));this.groups.value=this.parseGroups(n),this.componentMap=L.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:r,name:l,slots:s,props:a,emits:c}=o,d=p=>{const v=Array.isArray(p)?p:[p];let f=[];for(const u of v)f=f.concat(ne.getByType(u));return f};return{id:r,name:l,childIncludes:s?.length?void 0:!1,props:(a||[]).map(p=>typeof p=="string"?{name:p}:{name:p.name,type:p.type,setters:d(p.type)}),events:c,slots:s,from:t}}}const ke=Symbol("VtjEngine");class Xn 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:r={},globals:l={},dependencies:s,materials:a,materialPath:c="./"}=t;this.container=n,this.service=o,this.provider=new E.Provider({mode:E.ContextMode.Design,globals:l,project:r,service:o,dependencies:s,materials:a,materialPath:c}),this.assets=new Je(this.service),this.simulator=new We({engine:this,materialPath:c}),this.bindEvents(),this.init(r),e.onMounted(this.render.bind(this)),e.onUnmounted(this.dispose.bind(this))}async init(t){const n=await this.service.init(t).catch(o=>(E.logger.warn("VTJEngine service init fail.",o),null));n&&(n.dependencies=Le.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(Ue);n.provide(ke,e.shallowReactive(this)),n.mount(t),this.app=n}else E.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 r=await this.service.getFile(o.id);r&&(o.dsl=r)}if(o?.dsl){const r=new w.BlockModel(o.dsl);this.updateCurrent(r),this.initHistory(r)}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 r=t.data;o.isPageFile(r)&&r.raw?(await this.service.createRawPage(r),W(`源码文件已经生成:/.vtj/vue/${r.id}.vue`,"success")):r.dsl&&await this.service.saveFile(r.dsl)}if(n==="update"){const r=t.data;if(o.isPageFile(r)&&(r.dir||r.raw))return;const l=await this.service.getFile(r.id);l&&(l.name=r.name,await this.service.saveFile(l))}if(n==="delete"){const r=t.data;r&&o.isPageFile(r)&&r.raw?await this.service.removeRawPage(r.id):r.dir||(await this.service.removeFile(r.id),await this.service.removeHistory(r.id))}if(n==="clone"){const{page:r,newPage:l}=t.data,s=await this.service.getFile(r.id);s&&(s.id=l.id,s.name=l.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 r=o.toDsl();await this.service.saveHistory(r),e.triggerRef(this.history)}async loadHistory(t){const n=t.model,o=t.data,r=await this.service.getHistoryItem(n.id,o.id);if(r&&r.dsl){const l=new w.BlockModel(r.dsl);await this.updateCurrent(l),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)&&W("整站发布成功","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)&&W("发布成功","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"),r=t||n?.homepage;if(!n||!o||!r)return;const l=n.getPage(r);l&&!l.raw&&(o.regionRef?.setActive("Pages"),this.simulator.ready(()=>{n.active(l)}));const s=n.getBlock(r);s&&(o.regionRef?.setActive("Blocks"),this.simulator?.ready(()=>{n.active(s)}))}}function O(){const i=e.inject(ke,null);return i||E.logger.error("VTJEngine is not exist"),i}const q=e.defineComponent({name:"RegionWrapper",props:{region:{type:String,required:!0}},setup(){return{regionRef:e.ref()}},render(){const i=fe[this.region]||fe.EmptyRegion;return e.h(i,{...this.$props,...this.$attrs,ref:"regionRef"})}}),Z=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"})}}),Ue=e.defineComponent({name:"SkeletonWrapper",setup(){const i=e.ref(),t=O(),n=e.ref({});return{skeletonRef:i,engine:t,widgets:n}},mounted(){this.engine.skeleton=this},render(){return e.h(He,{...this.$props,...this.$attrs,ref:"skeletonRef"})},methods:{getRegion(i){return this.skeletonRef[i.toLowerCase()]},toggleCollapse(i){if(this.skeletonRef){const t=this.skeletonRef.collapsed;this.skeletonRef.collapsed=i??!t}},settable(i){this.skeletonRef&&(this.skeletonRef.settable=i)},getWidgets(i){const t=this.getRegion(i);return t?L.toArray(t.regionRef?.widgetsRef||[]):[]},getWidget(i){const t=he.get(i);if(!t){E.logger.warn(`widget [ ${i} ] is not exsit`);return}return this.getWidgets(t.region).find(o=>o.widget.name===i)},openPreview(i){this.skeletonRef&&(this.skeletonRef.isPreview=!0)},closePreview(){this.skeletonRef&&(this.skeletonRef.isPreview=!1)}}}),G=e.defineComponent({name:"SetterWrapper",props:{context:{type:Object},current:{type:Object},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:i,computedSetters:t}=this;let n=typeof i;n==="Object"&&(Array.isArray(i)?n="Array":E.isJSExpression(i)?n="Object":E.isJSFunction(i)&&(n="Function"));const o=ne.getByType(n)||[];return o.length?(t.find(r=>o.includes(r.name))||t[0])?.name:t[0]?.name}},render(){const{context:i,current:t,name:n,label:o,title:r,value:l,computedSetters:s,computedOptions:a,variable:c,changeValue:d,defaultSetter:m,removable:p,onRemove:v}=this;return e.h(qe,{context:i,current:t,name:n,label:o,title:r,setters:s,defaultSetter:m,variable:c,value:l,removable:p,options:a,onChange:d,onRemove:v})},emits:["change","remove"],methods:{getSetter(i){return typeof i=="string"?ne.get(i)||ne.defaultSetter:i},changeValue(i){this.$emit("change",this.name,i)},onRemove(i){this.$emit("remove",i)}}}),He=e.defineComponent({name:"Skeletion",__name:"skeleton",props:{headerHeight:{default:"36px"},leftWidth:{default:"400px"},rightWidth:{default:"350px"},footerHeight:{default:"20px"}},setup(i,{expose:t}){const n=i,o=e.ref(!1),r=e.ref(parseInt(n.leftWidth)),l=e.ref(parseInt(n.rightWidth)),s={dirs:["e"],maxWidth:600,minWidth:49,onResizing(y,V){r.value=V.elementWidth.value},onEnd(y,V){r.value=V.elementWidth.value}},a={dirs:["w"],maxWidth:600,minWidth:2,onResizing(y,V){l.value=V.elementWidth.value},onEnd(y,V){l.value=V.elementWidth.value}},c=e.ref(),d=e.ref(),m=e.ref(),p=e.ref(),v=e.ref(),f=e.ref(),u=e.ref(),h=e.ref(),g=e.ref(!1),_=e.ref(!1);return t({brand:c,toolbar:d,actions:m,apps:p,workspace:v,settings:f,status:u,collapsed:g,settable:_,leftWidth:r,rightWidth:l,preview:h,isPreview:o}),(y,V)=>(e.openBlock(),e.createBlock(e.unref(b.ElConfigProvider),{locale:e.unref(Ge)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElContainer),{class:"v-skeleton"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ElHeader),{class:"v-skeleton__header",height:y.headerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"brand",ref:c,region:"Brand"},null,512),e.createVNode(e.unref(q),{ref_key:"toolbar",ref:d,region:"Toolbar",preview:o.value},null,8,["preview"]),e.createVNode(e.unref(q),{ref_key:"actions",ref:m,region:"Actions"},null,512)]),_:1},8,["height"]),e.createVNode(e.unref(b.ElContainer),{class:"v-skeleton__wrapper"},{default:e.withCtx(()=>[o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.ElAside),{key:0,width:n.leftWidth,class:e.normalizeClass(["v-skeleton__left",{"is-collapsed":g.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"apps",ref:p,region:"Apps"},null,512)]),_:1},8,["width","class"])),[[e.unref(k.vResizable),s]]),e.createVNode(e.unref(b.ElMain),{class:"v-skeleton__main"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createBlock(e.unref(q),{key:0,ref_key:"preview",ref:h,region:"Preview",preview:o.value},null,8,["preview"])):e.createCommentVNode("",!0),e.withDirectives(e.createVNode(e.unref(q),{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(b.ElAside),{key:1,width:n.rightWidth,class:"v-skeleton__right"},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"settings",ref:f,region:"Settings"},null,512)]),_:1},8,["width"])),[[e.vShow,_.value],[e.unref(k.vResizable),a]])]),_:1}),o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElFooter),{key:0,class:"v-skeleton__footer",height:y.footerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(q),{ref_key:"status",ref:u,region:"Status"},null,512)]),_:1},8,["height"]))]),_:1})]),_:1},8,["locale"]))}}),Wn={key:1},Jn={class:"v-setter__content"},Un={key:0,class:"v-setter__input"},Hn={class:"v-setter__action"},qn="{{",Gn="}}",qe=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(i,{emit:t}){const n=i,o=t,r=e.ref(!1),l=e.ref(""),s=e.ref(n.setters.find(_=>_.name===n.defaultSetter)||n.setters[0]),a=e.ref(n.value),c=e.computed(()=>!!E.isJSExpression(a.value)),d={[s.value.name]:a.value},m=_=>{d[s.value.name]=a.value,s.value=_,a.value=d[_.name]??void 0,p(a.value)};e.watch(()=>n.value,()=>{a.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=()=>{r.value=!0,l.value=E.isJSExpression(a.value)?a.value.value:""},u=()=>{r.value=!1,l.value=""},h=async _=>M(_,n.context,!0)?(d[s.value.name]=a.value,a.value=_,o("change",_),!0):!1,g=async()=>{await ee("确定要解除绑定吗?")&&(u(),a.value=void 0,o("change",""))};return(_,y)=>(e.openBlock(),e.createBlock(e.unref(b.ElFormItem),{class:"v-setter",size:"small","label-positon":"left"},{label:e.withCtx(()=>[n.title?(e.openBlock(),e.createBlock(e.unref(b.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",Wn,e.toDisplayString(n.label||n.name),1))]),default:e.withCtx(()=>[e.createElementVNode("div",Jn,[s.value?(e.openBlock(),e.createElementBlock("div",Un,[c.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:a.value,"onUpdate:modelValue":y[0]||(y[0]=V=>a.value=V),onChange:p,disabled:c.value}),null,16,["current","context","options","modelValue","disabled"])),c.value?(e.openBlock(),e.createBlock(e.unref(b.ElInput),{key:1,class:"v-expression-setter",disabled:"","model-value":"JSExpression"},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(qn))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Gn))]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Hn,[n.variable?(e.openBlock(),e.createBlock(e.unref(B.VtjIconVars),{key:0,onClick:f,class:e.normalizeClass(["v-icon-vars",{"is-active":c.value}]),title:"绑定变量"},null,8,["class"])):e.createCommentVNode("",!0),n.setters.length>1?(e.openBlock(),e.createBlock(e.unref(b.ElDropdown),{key:1,disabled:c.value,size:"small","popper-class":"v-setter-switch",onCommand:m},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(b.ElDropdownMenu),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.setters,V=>(e.openBlock(),e.createBlock(e.unref(b.ElDropdownItem),{command:V,key:V.name},{default:e.withCtx(()=>[e.createVNode(e.unref(B.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(B.VtjIconSwitch),{title:"切换设置器"})]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.removable?(e.openBlock(),e.createBlock(e.unref(B.VtjIconRemove),{key:2,onClick:v,title:"删除"})):e.createCommentVNode("",!0)])]),r.value?(e.openBlock(),e.createBlock(e.unref(Fe),{key:0,current:n.current,context:n.context,value:l.value,modelValue:r.value,"onUpdate:modelValue":y[1]||(y[1]=V=>r.value=V),submitMethod:h,onUnbind:g},null,8,["current","context","value","modelValue"])):e.createCommentVNode("",!0)]),_:1}))}}),Kn={class:"v-empty-region"},Zn=e.defineComponent({name:"EmptyRegion",__name:"empty",props:{region:{}},setup(i){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Kn,"找不到符合【"+e.toDisplayString(t.region)+"】名称的区域组件",1))}}),Qn={class:"v-brand-region"},Yn=e.defineComponent({name:"BrandRegion",inheritAttrs:!1,__name:"brand",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",Qn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a},null,8,["region","widget"]))),256))]))}}),eo={class:"v-toolbar-region"},to=e.defineComponent({name:"ToolbarRegion",__name:"toolbar",props:{region:{},preview:{type:Boolean}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",eo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a,preview:l.preview},null,8,["region","widget","preview"]))),256))]))}}),no={class:"v-actions-region"},oo=e.defineComponent({name:"ActionsRegion",inheritAttrs:!1,__name:"actions",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",no,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a},null,8,["region","widget"]))),256))]))}}),ro={class:"v-apps-region"},lo={class:"v-apps-region__header"},ao={class:"v-apps-region__top"},so={class:"v-apps-region__bottom"},io={class:"v-apps-region__panels"},co=e.defineComponent({name:"AppsRegion",inheritAttrs:!1,__name:"apps",props:{region:{},index:{default:0}},setup(i,{expose:t}){const n=i,o=O(),{widgets:r,widgetsRef:l}=Y(n.region),s=e.computed(()=>r.value.filter(u=>u.openType==="panel")),a=e.computed(()=>r.value.filter(u=>u.openType!=="panel")),c=s.value[n.index],d=e.ref(c),m=e.ref(c),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"&&k.createDialog({title:u.label,icon:u.icon,...u.props,content:u.component})};return e.watch(m,u=>{o.skeleton?.toggleCollapse(!u)}),t({widgets:r,widgetsRef:l,setActive:u=>{const h=s.value.find(g=>g.name===u);d.value=h,m.value=h}}),(u,h)=>(e.openBlock(),e.createElementBlock("div",ro,[e.createElementVNode("div",lo,[e.createElementVNode("div",ao,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,g=>(e.openBlock(),e.createBlock(e.unref(pe),{key:`icon-${g.name}`,icon:g.icon,label:g.label,active:d.value?.name===g.name,open:m.value?.name===g.name,onClick:_=>p(g)},null,8,["icon","label","active","open","onClick"]))),128))]),e.createElementVNode("div",so,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,g=>(e.openBlock(),e.createBlock(e.unref(pe),{key:`icon-${g.name}`,icon:g.icon,label:g.label,onClick:_=>v(g)},null,8,["icon","label","onClick"]))),128))])]),e.createElementVNode("div",io,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,g=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:g.name},[d.value?.name===g.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:u.region,widget:g},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))])]))}}),uo=e.defineComponent({name:"WorkspaceRegion",__name:"workspace",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region),l=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(()=>l.filter(f=>!f.closable||f.checked)),a=e.computed(()=>l.map(f=>({...f,disabled:!f.closable}))),c=e.ref(s.value[0]?.name),d=e.computed(()=>l.find(u=>u.name===c.value)?.props||{}),m=f=>{const u=l.find(h=>h.name===f);u&&(u.checked=!1),c.value===f&&(c.value=s.value[0]?.name)},p=f=>{const u=l.find(h=>h.name===f.name);u&&u.closable&&(u.checked=!u.checked,u.checked&&(c.value=u.name),!u.checked&&c.value===u.name&&(c.value=s.value[0]?.name))};return t({currentTab:c,widgets:o,widgetsRef:r,openTab:(f,u={})=>{const h=l.find(g=>g.name===f);h&&(h.props=Object.assign({},h.props,u),h.checked=!0,c.value=h.name)}}),(f,u)=>(e.openBlock(),e.createBlock(e.unref(oe),{class:"v-workspace-region",items:s.value,menus:a.value,modelValue:c.value,"onUpdate:modelValue":u[0]||(u[0]=h=>c.value=h),checkable:"",onRemove:m,onCommand:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),h=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:h.name},[c.value===h.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:r,region:f.region,widget:{...h,props:d.value}},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","menus","modelValue"]))}}),mo=e.defineComponent({name:"SettingsRegion",__name:"settings",props:{region:{}},setup(i,{expose:t}){const n=i,o=O(),{current:r}=z(),{selected:l,isSelectBlock:s}=K(),a=e.computed(()=>s.value?J.Block:J.Node),{widgets:c,widgetsRef:d}=Y(n.region,a),m=e.computed(()=>c.value.map(u=>({name:u.name,label:u.label}))),p=e.ref(""),v=e.computed(()=>{const u=l.value?.model;return u?o.assets.componentMap.get(u.name)?.doc:null});e.watch(r,u=>{o.skeleton?.settable(!!u)}),e.watch(a,()=>{p.value=m.value[0]?.name},{immediate:!0});const f=()=>{if(v.value){const u=o.skeleton?.getRegion("Workspace");u&&u.regionRef.openTab("Docs",{url:v.value})}};return t({widgets:c,widgetsRef:d}),(u,h)=>e.unref(r)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,class:"v-settings-region",fit:"",direction:"column"},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0,flex:"",justify:"space-between",align:"center",class:"v-settings-region__header"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XContainer),{class:"v-settings-region__title"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.VtjIconLayers)),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(l)?.model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(l)?.model.id),1)])]),_:1}),v.value?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(k.XAction),{onClick:f,icon:e.unref(B.VtjIconHelp),mode:"text",label:"帮助"},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),e.unref(l)&&!e.unref(l).model.locked?(e.openBlock(),e.createBlock(e.unref(k.XContainer),{key:1,grow:"",padding:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(oe),{items:m.value,modelValue:p.value,"onUpdate:modelValue":h[0]||(h[0]=g=>p.value=g),stretch:"",body:{padding:!1}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.name},[p.value===g.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:d,region:u.region,widget:g},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(l)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:2,description:"请在左侧画布选中节点"})),e.unref(l)&&e.unref(l).model.locked?(e.openBlock(),e.createBlock(e.unref(b.ElEmpty),{key:3,"image-size":1,description:"节点已被锁定, 禁止编辑"})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),po={class:"v-status-region"},fo=e.defineComponent({name:"StatusRegion",inheritAttrs:!1,__name:"status",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region);return t({widgets:o,widgetsRef:r}),(l,s)=>(e.openBlock(),e.createElementBlock("div",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),a=>(e.openBlock(),e.createBlock(e.unref(Z),{ref_for:!0,ref_key:"widgetsRef",ref:r,region:l.region,widget:a},null,8,["region","widget"]))),256))]))}}),vo=e.defineComponent({name:"PreviewRegion",__name:"preview",props:{region:{}},setup(i,{expose:t}){const n=i,{widgets:o,widgetsRef:r}=Y(n.region),l=e.reactive(o.value.map(c=>({name:c.name,command:c.name,label:c.label,closable:!!c.closable,checked:!1}))),s=e.computed(()=>l.filter(c=>!c.closable||c.checked)),a=e.ref(s.value[0]?.name);return t({currentTab:a,widgets:o,widgetsRef:r}),(c,d)=>(e.openBlock(),e.createBlock(e.unref(oe),{class:"v-workspace-region",items:s.value,modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=m=>a.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},[a.value===m.name?(e.openBlock(),e.createBlock(e.unref(Z),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:r,region:c.region,widget:m},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))]),_:1},8,["items","modelValue"]))}}),fe={EmptyRegion:Zn,Brand:Yn,Toolbar:to,Actions:oo,Apps:co,Workspace:uo,Settings:mo,Status:fo,Preview:vo};exports.API_METHOD_TYPES=Ce;exports.Assets=Je;exports.Binder=ie;exports.Box=ae;exports.Designer=Oe;exports.EVENT_MODIFIERS=Ve;exports.Editor=R;exports.Engine=Xn;exports.EventBinder=Ie;exports.Icon=pe;exports.Item=$;exports.KEYBOARD_EVENT_LIST=we;exports.MOBILE_SIZE=de;exports.MOUSE_EVENT_LIST=ye;exports.NAME_REGEX=H;exports.PAD_SIZE=me;exports.Panel=A;exports.RegionType=Be;exports.RegionWrapper=q;exports.Renderer=Xe;exports.SetterView=qe;exports.SetterWrapper=G;exports.Simulator=We;exports.Skeleton=He;exports.SkeletonWrapper=Ue;exports.SlotsPicker=Ae;exports.Tabs=oe;exports.VTJ_DESIGNER_VERSION=_e;exports.VariableBinder=Fe;exports.Viewer=je;exports.Viewport=ge;exports.WidgetGroup=J;exports.WidgetWrapper=Z;exports.builtInDeps=Re;exports.builtInMaterials=Te;exports.builtInSetters=Me;exports.builtInWidgets=Pe;exports.confirm=ee;exports.createSlotsPicker=ze;exports.defaultSetter=$e;exports.depsManager=Le;exports.engineKey=ke;exports.expressionValidate=M;exports.message=W;exports.notify=T;exports.regions=fe;exports.setterManager=ne;exports.setters=X;exports.useEngine=O;exports.widgetManager=he;exports.widgets=F;
|