@vtj/designer 0.7.29 → 0.7.31

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.
Files changed (140) hide show
  1. package/dist/index.cjs +53 -48
  2. package/dist/index.mjs +3372 -3083
  3. package/dist/style.css +1 -1
  4. package/package.json +10 -8
  5. package/types/components/binders/event.d.ts +4 -3
  6. package/types/components/binders/index.d.ts +3 -2
  7. package/types/components/binders/variable.d.ts +3 -2
  8. package/types/components/editor/Editor.d.ts +2 -1
  9. package/types/components/editor/index.d.ts +5 -6
  10. package/types/components/hooks/useAssets.d.ts +3 -2
  11. package/types/components/hooks/useBinder.d.ts +3 -2
  12. package/types/components/hooks/useBlocks.d.ts +1 -1
  13. package/types/components/hooks/useCurrent.d.ts +2 -2
  14. package/types/components/hooks/useDataSources.d.ts +2 -2
  15. package/types/components/hooks/useDeps.d.ts +2 -2
  16. package/types/components/hooks/useDesigner.d.ts +8 -7
  17. package/types/components/hooks/useDirectives.d.ts +5 -4
  18. package/types/components/hooks/useHistory.d.ts +1 -1
  19. package/types/components/hooks/useNodeEvents.d.ts +4 -3
  20. package/types/components/hooks/useNodeProps.d.ts +5 -4
  21. package/types/components/hooks/useProject.d.ts +1 -1
  22. package/types/components/hooks/useRegion.d.ts +4 -3
  23. package/types/components/hooks/useSelected.d.ts +3 -2
  24. package/types/components/index.d.ts +6 -5
  25. package/types/components/regions/actions.d.ts +4 -3
  26. package/types/components/regions/apps.d.ts +4 -3
  27. package/types/components/regions/brand.d.ts +4 -3
  28. package/types/components/regions/empty.d.ts +1 -1
  29. package/types/components/regions/index.d.ts +17 -17
  30. package/types/components/regions/preview.d.ts +4 -3
  31. package/types/components/regions/settings.d.ts +4 -3
  32. package/types/components/regions/status.d.ts +4 -3
  33. package/types/components/regions/toolbar.d.ts +4 -3
  34. package/types/components/regions/workspace.d.ts +4 -3
  35. package/types/components/setter.d.ts +4 -4
  36. package/types/components/setters/boolean.d.ts +1 -1
  37. package/types/components/setters/color.d.ts +1 -1
  38. package/types/components/setters/expression.d.ts +4 -3
  39. package/types/components/setters/function.d.ts +3 -2
  40. package/types/components/setters/icon.d.ts +1 -1
  41. package/types/components/setters/image.d.ts +3 -1
  42. package/types/components/setters/index.d.ts +17 -15
  43. package/types/components/setters/json.d.ts +1 -1
  44. package/types/components/setters/number.d.ts +1 -1
  45. package/types/components/setters/radio.d.ts +1 -1
  46. package/types/components/setters/section.d.ts +1 -1
  47. package/types/components/setters/select.d.ts +1 -1
  48. package/types/components/setters/size.d.ts +1 -1
  49. package/types/components/setters/slider.d.ts +1 -1
  50. package/types/components/setters/string.d.ts +1 -1
  51. package/types/components/setters/tag.d.ts +1 -1
  52. package/types/components/shared/Icon.d.ts +3 -2
  53. package/types/components/shared/binder.d.ts +4 -3
  54. package/types/components/shared/box.d.ts +1 -1
  55. package/types/components/shared/index.d.ts +10 -9
  56. package/types/components/shared/item.d.ts +11 -11
  57. package/types/components/shared/panel.d.ts +2 -2
  58. package/types/components/shared/slots.d.ts +3 -2
  59. package/types/components/shared/tabs.d.ts +4 -3
  60. package/types/components/shared/viewer.d.ts +3 -2
  61. package/types/components/shared/viewport.d.ts +2 -2
  62. package/types/components/skeleton.d.ts +1 -1
  63. package/types/components/widgets/about/index.d.ts +1 -1
  64. package/types/components/widgets/actions/index.d.ts +1 -1
  65. package/types/components/widgets/apis/base-info.d.ts +3 -0
  66. package/types/components/widgets/apis/form.d.ts +18 -0
  67. package/types/components/widgets/apis/index.d.ts +1 -1
  68. package/types/components/widgets/apis/jsonp-options.d.ts +3 -0
  69. package/types/components/widgets/apis/mock-template.d.ts +3 -0
  70. package/types/components/widgets/apis/request-settings.d.ts +3 -0
  71. package/types/components/widgets/blocks/index.d.ts +1 -1
  72. package/types/components/widgets/components/index.d.ts +1 -1
  73. package/types/components/widgets/css/index.d.ts +1 -1
  74. package/types/components/widgets/data-sources/form.d.ts +4 -3
  75. package/types/components/widgets/data-sources/index.d.ts +1 -1
  76. package/types/components/widgets/defined/events.d.ts +4 -3
  77. package/types/components/widgets/defined/index.d.ts +1 -1
  78. package/types/components/widgets/defined/injects.d.ts +4 -3
  79. package/types/components/widgets/defined/props.d.ts +4 -3
  80. package/types/components/widgets/defined/slots.d.ts +4 -3
  81. package/types/components/widgets/deps/index.d.ts +1 -1
  82. package/types/components/widgets/designer/actions.d.ts +2 -1
  83. package/types/components/widgets/designer/index.d.ts +2 -2
  84. package/types/components/widgets/directives/index.d.ts +1 -1
  85. package/types/components/widgets/docs/index.d.ts +1 -1
  86. package/types/components/widgets/empty/index.d.ts +1 -1
  87. package/types/components/widgets/events/index.d.ts +3 -2
  88. package/types/components/widgets/history/index.d.ts +1 -1
  89. package/types/components/widgets/index.d.ts +29 -31
  90. package/types/components/widgets/logo/index.d.ts +1 -4
  91. package/types/components/widgets/node-path/index.d.ts +1 -1
  92. package/types/components/widgets/outline/index.d.ts +4 -2
  93. package/types/components/widgets/pages/form.d.ts +3 -2
  94. package/types/components/widgets/pages/index.d.ts +1 -1
  95. package/types/components/widgets/previewer/index.d.ts +3 -2
  96. package/types/components/widgets/project-config/index.d.ts +3 -0
  97. package/types/components/widgets/properties/index.d.ts +1 -1
  98. package/types/components/widgets/properties/setters.d.ts +4 -3
  99. package/types/components/widgets/raw/index.d.ts +1 -1
  100. package/types/components/widgets/schema/index.d.ts +1 -1
  101. package/types/components/widgets/scripts/computed.d.ts +3 -2
  102. package/types/components/widgets/scripts/group.d.ts +4 -3
  103. package/types/components/widgets/scripts/index.d.ts +1 -1
  104. package/types/components/widgets/scripts/lifeCycles.d.ts +3 -2
  105. package/types/components/widgets/scripts/methods.d.ts +3 -2
  106. package/types/components/widgets/scripts/state.d.ts +3 -2
  107. package/types/components/widgets/scripts/watch.d.ts +3 -2
  108. package/types/components/widgets/style/JsonMode.d.ts +1 -1
  109. package/types/components/widgets/style/backgound.d.ts +1 -1
  110. package/types/components/widgets/style/border.d.ts +1 -1
  111. package/types/components/widgets/style/effect.d.ts +1 -1
  112. package/types/components/widgets/style/index.d.ts +1 -1
  113. package/types/components/widgets/style/layout.d.ts +1 -1
  114. package/types/components/widgets/style/positioning.d.ts +1 -1
  115. package/types/components/widgets/style/sizing.d.ts +1 -1
  116. package/types/components/widgets/style/spacing-input.d.ts +1 -1
  117. package/types/components/widgets/style/spacing.d.ts +1 -1
  118. package/types/components/widgets/style/texting.d.ts +1 -1
  119. package/types/components/widgets/switcher/index.d.ts +1 -1
  120. package/types/components/widgets/toolbar/index.d.ts +1 -1
  121. package/types/framework/assets.d.ts +3 -2
  122. package/types/framework/designer.d.ts +5 -4
  123. package/types/framework/engine.d.ts +6 -5
  124. package/types/framework/renderer.d.ts +5 -4
  125. package/types/framework/simulator.d.ts +6 -5
  126. package/types/framework/types.d.ts +3 -2
  127. package/types/index.d.ts +1 -0
  128. package/types/managers/built-in/deps.d.ts +2 -1
  129. package/types/managers/built-in/materials.d.ts +2 -1
  130. package/types/managers/built-in/setters.d.ts +2 -1
  131. package/types/managers/built-in/widgets.d.ts +2 -1
  132. package/types/managers/deps.d.ts +2 -1
  133. package/types/managers/setter.d.ts +3 -2
  134. package/types/managers/widget.d.ts +2 -1
  135. package/types/utils.d.ts +2 -1
  136. package/types/version.d.ts +2 -2
  137. package/types/wrappers/region.d.ts +3 -2
  138. package/types/wrappers/setter.d.ts +6 -6
  139. package/types/wrappers/skeleton.d.ts +8 -7
  140. package/types/wrappers/widget.d.ts +4 -3
package/dist/index.cjs CHANGED
@@ -1,78 +1,83 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),y=require("element-plus"),tt=require("element-plus/es/locale/lang/zh-cn"),b=require("@vtj/ui"),F=require("@vtj/utils"),w=require("@vtj/core"),D=require("@vtj/renderer"),k=require("@vtj/icons"),le=require("@vueuse/core");/**!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),k=require("element-plus"),ot=require("element-plus/es/locale/lang/zh-cn"),b=require("@vtj/ui"),R=require("@vtj/utils"),V=require("@vtj/core"),P=require("@vtj/renderer"),y=require("@vtj/icons"),le=require("@vueuse/core"),lt=require("mockjs");/**!
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.29
5
+ * @version 0.7.31
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const Be="0.7.29",ge={width:390,height:844},he={width:1180,height:820},Q=/^[A-Za-z_$][\w_-]*$/,xe=["click","dblclick","mouseenter","mouseleave","mousedown","mouseup","mouseover","contextmenu"],Se=["keydown","keyup","keypress"],Ee=["GET","POST","PUT","PATCH","DELETE","JSONP"],Ne=["stop","prevent","capture","self","once","passive"];var K=(c=>(c.Block="block",c.Node="node",c))(K||{}),$e=(c=>(c.Brand="Brand",c.Toolbar="Toolbar",c.Actions="Actions",c.Apps="Apps",c.Workspace="Workspace",c.Settings="Settings",c.Status="Status",c.Preview="Preview",c))($e||{});const ye="data:image/png;base64,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",nt=["title","src"],ot={key:1},lt=e.defineComponent({name:"LogoWidget",inheritAttrs:!1,__name:"index",props:{icon:{default:ye},text:{default:"VTJ"},link:{}},setup(c){const t=c,n=()=>{t.link&&(location.href=t.link)};return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:"v-logo-widget",onClick:n},[t.icon?(e.openBlock(),e.createElementBlock("img",{key:0,title:t.text,class:"v-logo-widget__icon",src:t.icon},null,8,nt)):(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(t.text),1))]))}}),rt={class:"v-empty-widget"},at=e.defineComponent({name:"EmptyWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",rt,"EmptyWidget"))}});function Ie(){const c=U(),t=e.computed(()=>c.project.value?.dependencies??[]),n=e.computed(()=>c.project.value?.apis??[]);return{engine:c,dependencies:t,apis:n}}function oe(c,t){const n=e.computed(()=>_e.getWidgets(e.unref(c),e.unref(t)).filter(l=>!l.invisible)),o=e.ref();return{widgets:n,widgetsRef:o}}function De(){const c=U();return{span:e.computed(()=>{const l=c.skeleton?.skeletonRef.leftWidth||400,a=Math.min(Math.floor((l-50)/120),24);return Math.floor(24/a)}),engine:c}}function st(){const c=U(),t=e.computed(()=>c.project.value?.blocks??[]);return{engine:c,blocks:t}}const it=(c=[])=>c.map(t=>t.name);function ct(){const c=U(),{components:t,groups:n,componentMap:o}=c.assets,l=e.reactive({}),a=e.computed(()=>{const p={};return n.value&&n.value.forEach(v=>{p[v.name]=v}),p}),s=e.computed(()=>n.value?n.value.map(p=>({label:`${p.label} (${p.count})`,name:p.name,disabled:!p.children?.length})):[]),r=e.ref(s.value[0]?.name),i=e.ref(""),d=e.computed(()=>a.value[r.value]);e.watchEffect(()=>{const p=s.value.reduce((v,f)=>(v[f.name]=it(a.value[f.name].children),v),{});Object.assign(l,p)});const m=e.computed(()=>{const p=i.value.toLowerCase();return!p||!t?[]:t.filter(v=>v.name.toLowerCase().includes(p)||v.label?.toLowerCase().includes(p))});return{components:t,groups:n,componentMap:o,groupMap:a,tabs:s,model:l,currentTab:r,currentGroup:d,searchKey:i,searchResult:m}}function W(){const c=U(),t=e.computed(()=>c.current.value),n=e.computed(()=>c.simulator.renderer?.context??null),o=e.computed(()=>c.isEmptyCurrent.value);return{engine:c,current:t,isEmpty:o,context:n}}function ut(c,t,n){const o=U();o.simulator.init(c,t,n);const l=e.computed(()=>o.simulator.designer.value),a=e.computed(()=>fe("hover",l.value?.hover.value)),s=e.computed(()=>fe("dropping",l.value?.dropping.value)),r=e.computed(()=>fe("selected",l.value?.selected.value));return e.watch(o.changed,()=>{l.value?.updateRect()}),{designer:l,dropping:s,hover:a,selected:r}}function dt(c,t=!0){const{top:n,height:o,width:l,left:a}=c||{};if(o>100&&l>200)return"inner";let s,r;return r=n>30?"top":"bottom",s=t||a<300&&l<300?"left":"right",[s,r].join("-")}function mt(c){const{rect:t,type:n}=c,{left:o,width:l,top:a,height:s}=t,r={left:o,width:l,top:a,height:s};switch(n){case"left":r.left=0,r.width=0;break;case"right":r.left=r.left+r.width-4,r.width=0;break;case"bottom":r.top=r.top+r.height-4,r.height=0;break;case"top":r.height=0;break}return r}function fe(c,t){if(!t)return null;const{left:n,top:o,width:l,height:a}=c==="dropping"?mt(t):t.rect,s={left:`${n}px`,top:`${o}px`,width:`${l}px`,height:`${a}px`,visibility:l||a?"visible":"hidden"};return{...t,style:s,position:dt(t.rect,c!=="selected")}}function Y(){const c=U(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>t.value?.selected.value),o=e.computed(()=>w.isBlock(n.value?.model));return{engine:c,designer:t,selected:n,isSelectBlock:o}}function pt(c,t){const n=e.ref(""),{selected:o,isSelectBlock:l}=Y(),a=e.computed(()=>o.value?.model.id),s=e.computed(()=>{const i=e.toValue(c),d=e.toValue(t),m=[];if(!i)return m;const p=d?.__contextRefs[a.value||""],f=d===p||l.value?[]:Object.keys(p?.context||{}).filter(B=>!["context","ref"].includes(B)).map(B=>`this.context.${B}`);f.length&&m.push({title:"上下文",items:f});const u=i.inject.map(B=>`this.${B.name}`);u.length&&m.push({title:"注入",items:u});const g=i.props.map(B=>typeof B=="string"?`this.$props.${B}`:`this.$props.${B.name}`);g.length&&m.push({title:"属性",items:g});const h=Object.keys(i.state).map(B=>`this.state.${B}`);h.length&&m.push({title:"状态",items:h});const C=Object.keys(i.computed).map(B=>`this.${B}.value`);C.length&&m.push({title:"计算属性",items:C});const _=Object.keys(i.methods).map(B=>`this.${B}`);_.length&&m.push({title:"方法",items:_});const V=Object.keys(i.dataSources).map(B=>`this.${B}`);V.length&&m.push({title:"数据源",items:V});const S=Object.keys(d?.$refs||{}).map(B=>`this.$refs.${B}`);return S.length&&m.push({title:"refs",items:S}),m}),r=e.computed(()=>{if(!n.value)return s.value;const i=n.value.toLowerCase(),d=[];return s.value.forEach(m=>{const p=m.items.filter(v=>v.toLowerCase().includes(i));p.length&&d.push({title:m.title,items:p})}),d});return{keyword:n,options:s,searchResult:r}}const ue=[{name:"StringSetter",label:"文本"},{name:"ExpressionSetter",label:"表达式"}];function ft(c){const t=U(),n=e.computed(()=>{const p=c.value?.model||null;return w.isBlock(p)?null:p}),o=e.ref();e.watch(n,async p=>{p?.from?o.value=await t.assets.getBlockMaterial(p.from)||void 0:o.value=void 0},{immediate:!0});const l=e.computed(()=>n.value?[{name:"key",setters:ue,value:n.value.getPropValue("key")},{name:"ref",setters:ue,value:n.value.getPropValue("ref")},{name:"class",label:"class",setters:ue,value:n.value.getPropValue("class")},{name:"children",label:"文本",title:"如设置组件文本,将清空子组件",setters:ue,value:Array.isArray(n.value.children)?"":n.value.children}]:[]),a=e.computed(()=>{if(!n.value)return[];const p=o.value||t.assets.componentMap.get(n.value.name);return p?(p.props||[]).map(f=>({...f,value:n.value?.getPropValue(f.name)??f.defaultValue})):[]}),s=p=>l.value.some(v=>v.name===p)||a.value.some(v=>v.name===p)||p==="style",r=e.computed(()=>n.value?Object.keys(n.value.props).filter(p=>!s(p)).map(p=>({name:p,setters:"InputSetter",value:n.value?.getPropValue(p)})):[]);return{commonProps:l,componentProps:a,customProps:r,node:n,change:(p,v)=>{n.value&&(p==="children"?n.value.setChildren(v):n.value.setProp(p,v))},addCustom:p=>{p&&n.value?.setProp(p,"")},removeCustom:p=>{n.value?.removeProp(p)},isExist:s}}function L(c,t="提示"){return y.ElNotification.warning({title:t,message:c})}async function re(c){return await y.ElMessageBox.confirm(c,"提示",{type:"warning"}).catch(()=>!1)}function H(c,t="success"){return y.ElMessage({message:c,type:t})}function X(c,t,n=!1){let o=!0;try{c.type==="JSExpression"?D.parseExpression(c,t,n,!0):D.parseFunction(c,t,n,!0)}catch(l){o=!1,y.ElNotification.error({title:"代码错误",message:l.message})}return o}function je(){const c=U(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>c.current.value?c.history.value:null),o=e.computed(()=>n.value?.items.length||0),l=()=>{t.value?.cleanHelper(),n.value?.forward()},a=()=>{n.value?.backward(),t.value?.cleanHelper()},s=d=>{t.value?.cleanHelper(),n.value?.load(d),H("已载入历史记录","success")},r=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)<=0),i=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)>=o.value-1);return{engine:c,history:n,total:o,forward:l,backward:a,load:s,forwardDisabled:r,backwardDisabled:i}}function me(){const c=U(),t=e.computed(()=>c.project.value);return{engine:c,project:t}}function vt(c){const t=U(),n=e.computed(()=>{const r=c.value?.model||null;return!r||w.isBlock(r)?null:r}),o=e.ref();e.watch(n,async r=>{r?.from?o.value=await t.assets.getBlockMaterial(r.from)||void 0:o.value=void 0},{immediate:!0});const l=e.computed(()=>{if(w.isBlock(n.value))return[];const r=n.value?.events||{};return xe.map(i=>({name:i,event:r[i]}))}),a=e.computed(()=>{if(w.isBlock(n.value))return[];const r=n.value?.events||{};return Se.map(i=>({name:i,event:r[i]}))}),s=e.computed(()=>{if(!n.value||w.isBlock(n.value))return[];const r=n.value.events||{};return(o.value?.events||t.assets.componentMap.get(n.value.name)?.events||[]).map(d=>{const m=typeof d=="string"?d:d.name;return{name:m,event:r[m]}})});return{mouseEventList:l,keyboardEventList:a,componentEventList:s}}const Ve=(c,t)=>new w.DirectiveModel({name:c,value:void 0,iterator:t}),gt=(c="modelValue")=>new w.DirectiveModel({name:"vModel",value:void 0,arg:c});function ht(c){if(!c)return[];const{props:t=[],events:n=[]}=c;if(t.length&&n.length){const o=n.filter(l=>(typeof l=="string"?l:l.name).startsWith("update:")).map(l=>l=typeof l=="string"?l:l.name);return o.length?t.filter(l=>o.some(a=>a.includes(l.name))):[]}return[]}function bt(c){const t=U(),n=e.computed(()=>{const u=c.value?.model||null;return w.isBlock(u)?null:u}),o=u=>e.computed(()=>n.value&&(n.value.directives||[]).find(g=>g.name===u)||Ve(u)),l=()=>e.computed(()=>{if(!n.value)return[];const u=t.assets.componentMap.get(n.value.name||"");return(u?ht(u):[]).map(h=>(n.value?.directives||[]).find(C=>C.name==="vModel"&&C.arg==h.name)||gt(h.name))}),a=o("vIf"),s=o("vShow"),r=o("vBind"),i=o("vFor"),d=l(),m={vIf:a,vShow:s,vBind:r,vFor:i};return{engine:t,node:n,vIf:a,vShow:s,vBind:r,vFor:i,vModels:d,onValueChange:(u,g)=>{const h=m[u];n.value&&(g?(h.value.value=g,n.value.setDirective(h.value)):(h.value.value=void 0,n.value.removeDirective(h.value)))},onForChange:(u,g)=>{if(n.value){if(u==="value"){g?(i.value.value=g,n.value.setDirective(i.value)):n.value.removeDirective(i.value);return}(u==="item"||u==="index")&&(i.value.iterator={...i.value.iterator,[u]:g||void 0},n.value.setDirective(i.value))}},onModelChange:(u,g)=>{if(!n.value)return;const h=parseInt(u),C=d.value[h];C&&(g?(C.value=g,n.value.setDirective(C)):(C.value=void 0,n.value.removeDirective(C)))}}}function kt(){const{engine:c,project:t}=me(),n=e.computed(()=>t.value?.apis||[]);return{engine:c,project:t,apis:n}}const yt={class:"v-switcher-widget"},Ct={key:1},_t=e.defineComponent({name:"SwitcherWidget",inheritAttrs:!1,__name:"index",emits:["click"],setup(c,{emit:t}){const n=t,{engine:o}=W(),l=e.computed(()=>o.project.value?.name),a=e.computed(()=>o.project.value?.currentFile?.title),s=()=>{n("click",o.project.value)};return(r,i)=>(e.openBlock(),e.createElementBlock("div",yt,[e.createVNode(e.unref(y.ElButton),{size:"small",round:"",onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconBack),{class:"v-switcher-widget__back"}),e.createElementVNode("span",null,e.toDisplayString(l.value),1),a.value?(e.openBlock(),e.createBlock(e.unref(y.ElDivider),{key:0,direction:"vertical"})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("span",Ct,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)]),_:1})]))}}),wt={class:"v-toolbar-widget"},Vt=e.defineComponent({name:"ToolbarWidget",inheritAttrs:!1,__name:"index",props:{preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{forward:o,backward:l,forwardDisabled:a,backwardDisabled:s}=je(),r=e.ref("pc");return t({mode:r}),(i,d)=>(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(e.unref(y.ElRadioGroup),{size:"small",modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=m=>r.value=m)},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElRadioButton),{label:"pc",value:"pc"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPc))]),_:1}),e.createVNode(e.unref(y.ElRadioButton),{label:"mobile",value:"mobile"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPhone))]),_:1}),e.createVNode(e.unref(y.ElRadioButton),{label:"pad",value:"pad"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPad))]),_:1})]),_:1},8,["modelValue"]),e.createCommentVNode("",!0),e.createVNode(e.unref(y.ElButtonGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",onClick:e.unref(l),disabled:e.unref(s)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconUndo))]),_:1},8,["onClick","disabled"]),e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",onClick:e.unref(o),disabled:e.unref(a)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconRedo))]),_:1},8,["onClick","disabled"])]),_:1})]))}}),Bt={class:"v-actions-widget"},xt=e.createElementVNode("span",null,"发布",-1),St=e.defineComponent({name:"ActionsWidget",inheritAttrs:!1,__name:"index",props:{coder:{type:Boolean,default:!0}},setup(c){const{engine:t,designer:n}=Y(),o=e.ref(!1),l=()=>{t.current.value?(o.value?t.skeleton?.getWidget("Previewer")?.widgetRef.refresh():(n.value?.setSelected(null),t.simulator.refresh()),H("刷新完成","success")):H("请先打开文件","warning")},a=async()=>{t.current.value?(o.value&&(t.skeleton?.closePreview(),o.value=!1,await F.delay(1e3)),n.value?.setSelected(t.current.value)):H("请先打开文件","warning")},s=()=>{if(t.project.value)if(t.current.value){if(o.value){t.skeleton?.closePreview(),o.value=!1;return}t.skeleton?.openPreview(""),o.value=!0}else H("请先打开文件","warning")},r=()=>{const d=t.project.value;d&&(d.currentFile?d.publish(d.currentFile):H("请先打开文件","warning"))},i=d=>{const m=t.project.value;m&&(d==="current"?r():m.publish())};return(d,m)=>(e.openBlock(),e.createElementBlock("div",Bt,[e.createCommentVNode("",!0),e.createCommentVNode("",!0),e.createVNode(e.unref(y.ElButton),{onClick:s,type:o.value?"warning":"default",size:"small",title:"预览"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconPreview))]),_:1},8,["type"]),e.createVNode(e.unref(y.ElButton),{onClick:l,type:"default",size:"small",title:"刷新"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconRefresh))]),_:1}),e.createVNode(e.unref(y.ElButton),{type:"default",size:"small",title:"页面设置",onClick:a},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSetting))]),_:1}),e.createVNode(e.unref(y.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(y.ElDropdown),{"split-button":"",type:"primary",size:"small",onClick:r,onCommand:i},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownMenu),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownItem),{command:"current"},{default:e.withCtx(()=>[e.createTextVNode("发布页面")]),_:1}),e.createVNode(e.unref(y.ElDropdownItem),{command:"project"},{default:e.withCtx(()=>[e.createTextVNode("整站发布")]),_:1})]),_:1})]),default:e.withCtx(()=>[xt]),_:1})]))}}),Et={class:"v-icon-setter"},Nt={class:"v-icon-setter__content"},$t={class:"v-icon-setter__list"},Ae=e.defineComponent({name:"IconSetter",__name:"icon",props:{modelValue:{default:""},size:{default:"small"}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(n.modelValue),s=e.ref(""),r=e.computed(()=>k.icons[n.modelValue]||n.modelValue),i=e.computed(()=>{const f=Object.entries(k.icons);return s.value?f.filter(u=>u[0].toLowerCase().includes(s.value)):f}),d=f=>{a.value=f},m=()=>{o("change",a.value),o("update:modelValue",a.value),l.value=!1},p=()=>{a.value="",o("change",""),o("update:modelValue",""),l.value=!1},v=()=>{l.value=!0};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Et,[e.createVNode(e.unref(y.ElInput),{size:n.size,readonly:"",placeholder:"请选择图标","model-value":n.modelValue,"suffix-icon":e.unref(k.ArrowDown),onFocus:v},{prepend:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:r.value},null,8,["icon"])]),_:1},8,["size","model-value","suffix-icon"]),l.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,title:"图标选择器",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value=g),onSubmit:m},{extra:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{size:"default",type:"warning",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 清除绑定 ")]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Nt,[e.createVNode(e.unref(y.ElInput),{size:n.size,"prefix-icon":e.unref(k.Search),clearable:"",modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=g=>s.value=g),placeholder:"请输入查询关键字"},null,8,["size","prefix-icon","modelValue"]),e.createElementVNode("div",$t,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,g=>(e.openBlock(),e.createBlock(e.unref(b.XIcon),{icon:g[1],onClick:h=>d(g[0]),class:e.normalizeClass({"is-active":a.value===g[0]})},null,8,["icon","onClick","class"]))),256)),i.value.length===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0})):e.createCommentVNode("",!0)])])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]))}}),It=e.defineComponent({name:"PageForm",__name:"form",props:{item:{},parentId:{}},setup(c){const t=c,{project:n}=me(),o=e.computed(()=>t.item?"编辑页面":"新增页面"),l=()=>({dir:!1,name:"",title:"",icon:"",mask:!0,hidden:!1,raw:!1}),a=e.ref(t.item||l()),s=[{label:"页面",value:!1},{label:"目录",value:!0}],r=d=>{a.value&&(a.value.name=F.upperFirstCamelCase(d))},i=async d=>n.value?.existPageName(d.name,[d.id])?(L("页面名称已存在,请更换"),!1):(t.item?n.value?.updatePage(d):n.value?.createPage(d,t.parentId),!0);return(d,m)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:o.value,width:"800px",height:"500px","form-props":{tooltipMessage:!1},model:a.value,"submit-method":i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"dir",label:"类型",editor:"radio",options:s,props:{button:!0,size:"small"},disabled:!!t.item,required:""},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",onChange:r,rules:{pattern:e.unref(Q),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""}),e.createVNode(e.unref(b.XField),{name:"icon",label:"菜单图标",editor:"none"},{editor:e.withCtx(()=>[e.createVNode(Ae,{modelValue:a.value.icon,"onUpdate:modelValue":m[0]||(m[0]=p=>a.value.icon=p),size:"default"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},name:"mask",label:"包含母版",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"hidden",label:"隐藏菜单",editor:"switch"}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},disabled:!!t.item,inline:"",name:"raw",label:"源码模式",editor:"switch",tip:"页面是非低代码开发,不能在线编辑"},null,8,["disabled"])]),_:1},8,["title","model"]))}}),be=e.defineComponent({name:"VIcon",__name:"Icon",props:{icon:{},label:{},active:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:["click"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>({"is-active":n.active,"is-open":n.open})),a=()=>{o("click")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(y.ElTooltip),{effect:"dark",placement:"right",content:s.label,"show-after":600},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["v-apps-region__icon",l.value]),onClick:a},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))],2)]),_:1},8,["content"]))}}),I=e.defineComponent({name:"VPanel",__name:"panel",props:{title:{},subtitle:{},plus:{type:Boolean},back:{type:Boolean},edit:{type:Boolean},remove:{type:Boolean},save:{type:Boolean},header:{type:Boolean,default:!0},collapsable:{type:Boolean}},emits:["plus","back","remove","save","edit"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.computed(()=>({"is-collapsed":!!l.value})),s=()=>{o("plus")},r=()=>{o("edit")},i=()=>{o("back")},d=()=>{o("remove")},m=()=>{o("save")},p=e.computed(()=>n.header?{content:n.title,subtitle:n.subtitle,icon:n.back?k.Back:void 0,onClickBack:n.back?i:void 0,onClick:n.collapsable?()=>{l.value=!l.value}:void 0}:null),v=f=>{l.value=f};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:e.normalizeClass(["v-panel",a.value]),border:!1,header:p.value,fit:""},e.createSlots({actions:e.withCtx(()=>[n.plus?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,size:f.$attrs.size,mode:"icon",icon:e.unref(k.VtjIconPlus),background:"hover",title:"新增",onClick:s},null,8,["size","icon"])):e.createCommentVNode("",!0),n.edit?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:1,size:f.$attrs.size,mode:"icon",icon:e.unref(k.EditPen),background:"hover",title:"编辑",onClick:r},null,8,["size","icon"])):e.createCommentVNode("",!0),n.remove?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:2,size:f.$attrs.size,mode:"icon",icon:e.unref(k.Delete),background:"hover",title:"清除",onClick:d},null,8,["size","icon"])):e.createCommentVNode("",!0),n.save?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:3,size:f.$attrs.size,mode:"icon",icon:e.unref(k.VtjIconSave),background:"hover",title:"保存",onClick:m},null,8,["size","icon"])):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:4,size:f.$attrs.size,mode:"icon",icon:e.unref(k.ArrowDown),background:"hover",title:"展开",onClick:u[0]||(u[0]=g=>v(!1))},null,8,["size","icon"])),[[e.vShow,l.value]]):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:5,size:f.$attrs.size,mode:"icon",icon:e.unref(k.ArrowUp),background:"hover",title:"收起",onClick:u[1]||(u[1]=g=>v(!0))},null,8,["size","icon"])),[[e.vShow,!l.value]]):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"actions")]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:2},[f.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(f.$slots,"footer")]),key:"0"}:void 0]),1032,["class","header"]))}}),Dt={class:"v-tabs__header"},jt={key:0,class:"v-tabs__actions"},ie=e.defineComponent({__name:"tabs",props:{items:{default:()=>[]},menus:{},modelValue:{},stretch:{type:Boolean},checkable:{type:Boolean}},emits:["update:modelValue","command","remove","action-click"],setup(c,{emit:t}){const n=c,o=t,l=e.ref((n.modelValue||n.items[0]?.name)??"");e.watch(l,()=>{o("update:modelValue",l.value)}),e.watch(()=>n.modelValue,i=>{l.value=i});const a=i=>{o("command",i)},s=i=>{o("remove",i)},r=i=>{o("action-click",i)};return(i,d)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:"v-tabs",border:!1,fit:"",radius:!1},{header:e.withCtx(()=>[e.createElementVNode("div",Dt,[e.createVNode(e.unref(b.XTabs),{class:"v-tabs__tabs",items:n.items,type:"card",modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=m=>l.value=m),onTabRemove:s,onActionClick:r,stretch:n.stretch},null,8,["items","modelValue","stretch"]),n.menus&&n.menus.length?(e.openBlock(),e.createElementBlock("div",jt,[n.menus&&n.menus.length?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,mode:"icon",size:"small",icon:e.unref(k.MoreFilled),background:"hover",dropdown:{size:"small",placement:"bottom-end"},menus:n.menus,onCommand:a},{item:e.withCtx(({item:m})=>[e.createElementVNode("span",null,[n.checkable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconCheck),{key:0,class:e.normalizeClass({"v-tabs__checked":!0,"is-checked":m.checked})},null,8,["class"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(m.label),1)])]),_:1},8,["icon","menus"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3}))}}),At={key:2,class:"v-item__index"},Ft={class:"v-item__content"},Pt={key:3,class:"v-item__subtitle"},O=e.defineComponent({name:"VItem",__name:"item",props:{icon:{},index:{},tag:{},tagType:{},title:{},subtitle:{},actions:{default:()=>[]},background:{type:Boolean},border:{type:Boolean},switch:{type:Boolean},modelValue:{},active:{type:Boolean},hover:{type:Boolean},small:{type:Boolean}},emits:["click","action","update:modelValue","switch"],setup(c,{emit:t}){const n={add:{label:"创建",icon:k.VtjIconPlus},copy:{label:"复制",icon:k.VtjIconCopy},edit:{label:"编辑",icon:k.VtjIconEdit},remove:{label:"删除",icon:k.VtjIconRemove},lock:{label:"锁定",icon:k.VtjIconLock},unlock:{label:"解锁",icon:k.VtjIconUnlock},invisible:{label:"隐藏",icon:k.VtjIconInvisible},visible:{label:"显示",icon:k.VtjIconVisible},home:{label:"主页",icon:k.VtjIconHome}},o=c,l=t,a=e.ref(!!o.modelValue),s=e.computed(()=>o.actions.map(m=>{const p=n[m];return{name:m,...p}})),r=e.computed(()=>({"is-background":o.background,"is-border":o.border,"is-active":o.active,"is-hover":o.hover,"is-small":o.small})),i=()=>{l("click",o.modelValue)},d=async m=>{m==="remove"?await y.ElMessageBox.confirm("确定删除吗?","提示",{type:"warning"}).catch(()=>!1)&&l("action",{name:m,modelValue:o.modelValue}):l("action",{name:m,modelValue:o.modelValue})};return e.watch(a,m=>{l("update:modelValue",m),l("switch",m)}),e.watch(()=>o.modelValue,m=>{a.value=!!m}),(m,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-item",r.value]),justify:"space-between",align:"center",onClick:i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-item__title",align:"center"},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default",{},()=>[m.icon?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,icon:m.icon},null,8,["icon"])):e.createCommentVNode("",!0),o.tag?(e.openBlock(),e.createBlock(e.unref(y.ElTag),{key:1,class:"v-item__tag",size:"small",type:o.tagType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.tag),1)]),_:1},8,["type"])):e.createCommentVNode("",!0),m.index!==void 0?(e.openBlock(),e.createElementBlock("span",At," # "+e.toDisplayString(m.index),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Ft,e.toDisplayString(m.title),1),m.subtitle?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(m.subtitle),1)):e.createCommentVNode("",!0)])]),_:3}),e.createVNode(e.unref(b.XContainer),{class:"v-item__actions",onClick:p[1]||(p[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,v=>(e.openBlock(),e.createBlock(e.unref(b.XAction),{name:v.name,title:v.label,mode:"icon",size:"small",background:"none",type:"info",icon:v.icon,onClick:f=>d(v.name)},null,8,["name","title","icon","onClick"]))),256)),o.switch?(e.openBlock(),e.createBlock(e.unref(y.ElSwitch),{key:0,modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=v=>a.value=v),class:"v-item__switch",size:"small"},null,8,["modelValue"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"status")]),_:3})]),_:3},8,["class"]))}}),Tt=["draggable"],Rt={class:"v-box__name"},zt={class:"v-box__label"},de=e.defineComponent({name:"VBox",__name:"box",props:{name:{},title:{},editable:{type:Boolean},active:{type:Boolean},draggable:{type:Boolean}},emits:["edit","remove","dragstart","dragend"],setup(c,{emit:t}){const n=c,o=t,l=()=>{o("edit")},a=async()=>{await y.ElMessageBox.confirm("确认删除?","提示",{type:"warning"}).catch(()=>!1)&&o("remove")},s=e.computed(()=>({"is-active":n.active,"is-draggable":n.draggable})),r=()=>{o("dragstart",n)},i=()=>{o("dragend",n)};return(d,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-box",s.value]),draggable:d.draggable,onDragstart:r,onDragend:i},[e.createVNode(e.unref(b.XContainer),{direction:"column",justify:"center",align:"center"},{default:e.withCtx(()=>[e.createElementVNode("span",Rt,e.toDisplayString(n.name),1),e.createElementVNode("span",zt,e.toDisplayString(n.title),1)]),_:1}),n.editable?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-box__footer",justify:"flex-end",align:"center"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.VtjIconEdit),onClick:l},null,8,["icon"]),e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.VtjIconRemove),onClick:a},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)],42,Tt))}}),Jt={class:"v-context-viewer"},Fe=e.defineComponent({__name:"viewer",props:{context:{}},emits:["pick","copy"],setup(c,{emit:t}){const n=c,o=t,l=["$provider","$apis","$components","context"],a=m=>{const p=m.value,v=F.toRawType(p);return v==="Object"||v==="Module"?Object.keys(p||{}).length===0:v==="Array"?p.length===0:!0},s=(m,p="this")=>typeof m=="object"?Array.isArray(m)?m.map((v,f)=>{const u=`[${f}]`;return{label:u,value:v,type:F.toRawType(v),path:`${p}${u}`}}):Object.entries(m).map(([v,f])=>({label:v,value:f,type:F.toRawType(f),path:`${p}.${v}`})).filter(v=>!v.label.startsWith("__")&&!l.includes(v.label)):[],r=(m,p)=>{if(m.level===0)p(s(n.context));else{const v=e.toRaw(m.data.value);p(s(v,m.data.path))}},i=m=>{o("copy",m.path)},d=m=>{o("pick",m.path)};return(m,p)=>(e.openBlock(),e.createElementBlock("div",Jt,[m.context?(e.openBlock(),e.createBlock(e.unref(y.ElTree),{key:0,lazy:"",load:r,"expand-on-click-node":!1,props:{isLeaf:a}},{default:e.withCtx(({data:v})=>[e.createVNode(O,{title:v.label,clickable:"",onClick:f=>d(v),background:"",actions:["copy"],onAction:f=>i(v),grow:"",small:""},null,8,["title","onClick","onAction"])]),_:1},8,["props"])):e.createCommentVNode("",!0)]))}}),pe=e.defineComponent({__name:"binder",props:{title:{},context:{},block:{},model:{},rules:{},modelValue:{type:Boolean},submitMethod:{type:Function},unbindEnabled:{type:Boolean}},emits:["unbind","submit","cancel","pick","update:modelValue","close"],setup(c,{emit:t}){const n=c,o=t,{searchResult:l,keyword:a}=pt(n.block,n.context),{copy:s}=le.useClipboard({}),r=[{name:"normal",label:"常用"},{name:"viewer",label:"高级"}],i=e.ref("normal"),d=e.ref(),m=async C=>{o("submit",C),n.submitMethod?await n.submitMethod(C)&&p():p()},p=()=>{o("update:modelValue",!1),o("close")},v=()=>{o("unbind")},f=()=>{p()},u=async()=>{d.value?.submit()},g=C=>{o("pick",C)},h=C=>{s(C),y.ElMessage.success({message:"已经复制到粘贴板"})};return(C,_)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),{"model-value":n.modelValue,class:"v-binder",title:C.title,width:"1000px",height:"600px","body-padding":!1,maximizable:!1,minimizable:!1,onClose:p},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{fit:"",direction:"row",overflow:"hidden"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{width:"30%",height:"100%"},{default:e.withCtx(()=>[e.createVNode(ie,{class:"v-binder__tabs",items:r,modelValue:i.value,"onUpdate:modelValue":_[1]||(_[1]=V=>i.value=V)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-binder__tab-content",fit:"",padding:"",flex:!1},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[e.createVNode(e.unref(y.ElInput),{modelValue:e.unref(a),"onUpdate:modelValue":_[0]||(_[0]=V=>e.isRef(a)?a.value=V:null),size:"small",clearable:"","prefix-icon":e.unref(k.Search),placeholder:"筛选可用项"},null,8,["modelValue","prefix-icon"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),V=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(y.ElDivider),{"border-style":"dotted"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.title),1)]),_:2},1024),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.items,S=>(e.openBlock(),e.createBlock(O,{title:S,background:"",actions:["copy"],small:"",onClick:B=>g(S),onAction:B=>h(S)},null,8,["title","onClick","onAction"]))),256))]))),256)),e.unref(l).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0}))],512),[[e.vShow,i.value==="normal"]]),e.withDirectives(e.createVNode(Fe,{context:n.context,onCopy:h,onPick:g},null,8,["context"]),[[e.vShow,i.value==="viewer"]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XPanel),{grow:"",header:null,border:!1},{footer:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[C.unbindEnabled?(e.openBlock(),e.createBlock(e.unref(y.ElButton),{key:0,type:"warning",size:"default",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 移除绑定 ")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{type:"default",size:"default",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(" 取消 ")]),_:1}),e.createVNode(e.unref(y.ElButton),{type:"primary",size:"default",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XForm),{ref_key:"formRef",ref:d,class:"v-binder__form",footer:!1,"label-position":"top","tooltip-message":!1,model:n.model,rules:n.rules,"submit-method":m},{default:e.withCtx(()=>[e.renderSlot(C.$slots,"default")]),_:3},8,["model","rules"])]),_:3})]),_:3})]),_:3},8,["model-value","title"]))}}),Lt={class:"v-slots-picker__sn"},Pe=e.defineComponent({__name:"slots",props:{slots:{default:()=>[]}},emits:["submit","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(),a=e.computed(()=>`${50*Math.ceil(n.slots.length/4)+180}px`),s=i=>{l.value=i},r=()=>{l.value?(o("submit",l.value),o("update:modelValue",!1)):L("请选择插槽")};return(i,d)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),e.mergeProps({class:"v-slots-picker",title:"选择插槽",width:"600px",height:a.value,submit:"",cancel:"",onSubmit:r},i.$attrs),{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElAlert),{title:"该组件支持多个插槽,请选择放置到其中一个",type:"warning",closable:!1}),e.createVNode(e.unref(b.XContainer),{class:"v-slots-picker__content",justify:"space-around",alignContent:"flex-start",gap:"",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.slots,(m,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-slots-picker__item",{"is-active":m.name===l.value?.name}]),grow:"",flex:!1,onClick:v=>s(m)},{default:e.withCtx(()=>[e.createElementVNode("span",Lt,"#"+e.toDisplayString(p+1),1),e.createTextVNode(" "+e.toDisplayString(m.name),1)]),_:2},1032,["class","onClick"]))),256))]),_:1})]),_:1},16,["height"]))}}),Ce=e.defineComponent({name:"Viewport",__name:"viewport",props:{mode:{default:"pc"},width:{},height:{}},setup(c){const t=c,n=e.computed(()=>[`is-${t.mode}`]),o=e.computed(()=>{if(t.mode==="pc")return 1;const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a,i=s>0?(t.width||0)/s:1,d=r>0?(t.height||0)/r:1;return Math.min(i,d)}),l=e.computed(()=>{if(t.mode==="pc")return{};const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a;return{width:`${s}px`,height:`${r}px`,left:"50%",top:"50%",transform:`translate(-50%, -50%) scale(${o.value})`}});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-viewport",n.value]),style:e.normalizeStyle(l.value)},[e.renderSlot(a.$slots,"default")],6))}}),Mt=e.defineComponent({name:"PagesWidget",__name:"index",setup(c){const{project:t,engine:n}=me(),o=e.computed(()=>t.value?.pages||[]),{current:l}=W(),a=e.ref(!1),s=e.ref(),r=e.ref(),i=()=>{r.value=void 0,s.value=void 0,a.value=!0},d=async f=>{const{name:u,modelValue:g}=f,{data:h,node:C}=g;if(u==="add"&&(s.value=void 0,r.value=h.id,a.value=!0),u==="edit"&&(s.value=F.cloneDeep(h),r.value=void 0,a.value=!0),u==="remove"){if(h.dir){const _=t.value?.getPage(h.id);if(_&&_.children?.length){L("请先删除子页面");return}}t.value?.removePage(h.id)}if(u==="copy"){const _=C.parent?.data.id;t.value?.clonePage(h,_)}u==="home"&&(t.value?.setHomepage(h.id),H("设置主页成功","success"))},m=async f=>{f.raw&&H("这是源码模式页面,不能低代码设计","warning"),f.dir||f.raw?n.project.value?.deactivate():n.project.value?.active(f)},p=(f,u,g)=>g==="inner"?!!u.data.dir:!0,v=()=>{t.value?.update({pages:e.toValue(o)})};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-pages-widget",title:"页面管理",plus:"",subtitle:"(共 0 条)",onPlus:i},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElTree),{data:o.value,"node-key":"id","default-expand-all":"",draggable:"","allow-drop":p,onNodeDrop:v},{default:e.withCtx(({data:g,node:h})=>[e.createVNode(e.unref(O),{class:"v-pages-widget__item",icon:e.unref(k.icons)[g.icon],title:g.title,subtitle:g.name,"model-value":{data:g,node:h},actions:g.dir?["add","edit","remove"]:g.raw?["home","edit","remove"]:["home","copy","edit","remove"],onAction:d,onClick:C=>m(g),active:e.unref(l)?.id===g.id,tag:e.unref(t)?.homepage===g.id?"主页":void 0,"tag-type":"success",grow:"",small:"",background:"",hover:""},null,8,["icon","title","subtitle","model-value","actions","onClick","active","tag"])]),_:1},8,["data"]),a.value?(e.openBlock(),e.createBlock(It,{key:0,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=g=>a.value=g),item:s.value,"parent-id":r.value},null,8,["modelValue","item","parent-id"])):e.createCommentVNode("",!0)]),_:1}))}}),Ot=e.defineComponent({name:"BlocksWidget",__name:"index",setup(c){const{span:t}=De(),{blocks:n,engine:o}=st(),l=e.ref(void 0),{current:a}=W(),s=e.ref(!1),r=e.computed(()=>l.value?.id?"编辑":"新增"),i=e.computed(()=>`(共 ${n.value.length} 个)`),d=()=>({name:"",title:"",type:"block"}),m=async _=>{const V=_,S=o.project.value;if(!S)return!1;if(_.id)if(!S.existBlockName(V.name,[V.id]))S.updateBlock(V);else return L(`名称【${V.name}】已经存在,请更换名称`),!1;else if(!S.existBlockName(V.name))S.createBlock(V);else return L(`名称【${V.name}】已经存在,请更换名称`),!1;return!0},p=()=>{l.value=d(),s.value=!0},v=_=>{l.value=F.cloneDeep(_),s.value=!0},f=_=>{o.project.value?.removeBlock(_.id)},u=_=>{l.value&&(l.value.name=F.upperFirstCamelCase(_))},g=async _=>{o.project.value?.active(_)},h=async _=>{const V={type:"Schema",id:_.id},S=await o.assets.getBlockMaterial(V),B=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;B&&S&&B.setDragging(S)},C=()=>{const _=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;_&&_.setDragging(null)};return(_,V)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-blocks-widget",title:"区块管理",subtitle:i.value,plus:"",onPlus:p},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),S=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{key:S.id,span:e.unref(t)},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:S.name,title:S.title,active:e.unref(a)?.id===S.id,editable:"",onEdit:B=>v(S),onRemove:B=>f(S),onClick:B=>g(S),draggable:e.unref(a)?.id!==S.id,onDragstart:B=>h(S),onDragend:C},null,8,["name","title","active","onEdit","onRemove","onClick","draggable","onDragstart"])]),_:2},1032,["span"]))),128))]),_:1}),e.unref(n).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0})),e.createVNode(e.unref(b.XDialogForm),{modelValue:s.value,"onUpdate:modelValue":V[0]||(V[0]=S=>s.value=S),title:r.value,model:l.value,width:"600px",height:"250px","form-props":{tooltipMessage:!1},"submit-method":m},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",tip:"名称为英文驼峰格式",rules:{message:"名称格式错误",pattern:e.unref(Q)},onChange:u},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""})]),_:1},8,["modelValue","title","model"])]),_:1},8,["subtitle"]))}}),Xt={class:"v-components-widget__search"},Wt={key:0,class:"v-components-widget__result"},Ut={class:"v-components-widget__list"},Ht=e.defineComponent({name:"ComponentsWidget",__name:"index",setup(c){const{span:t,engine:n}=De(),{tabs:o,currentTab:l,currentGroup:a,model:s,searchKey:r,searchResult:i}=ct(),d=p=>{const v=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;v&&v.setDragging(p)},m=()=>{const p=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;p&&p.setDragging(null)};return(p,v)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-components-widget",title:"组件库",body:{flex:!0,direction:"column"}},{default:e.withCtx(()=>[e.createElementVNode("div",Xt,[e.createVNode(e.unref(y.ElInput),{modelValue:e.unref(r),"onUpdate:modelValue":v[0]||(v[0]=f=>e.isRef(r)?r.value=f:null),placeholder:"搜索组件",clearable:"",size:"small"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSearch))]),_:1},8,["modelValue"])]),e.unref(r)?(e.openBlock(),e.createElementBlock("div",Wt,[e.createVNode(e.unref(y.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),f=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{span:e.unref(t),key:f.name},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:f.name,title:f.label||f.name,draggable:"",onDragstart:u=>d(f),onDragend:m},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:1}),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0}))])):(e.openBlock(),e.createBlock(e.unref(b.XTabs),{key:1,items:e.unref(o),modelValue:e.unref(l),"onUpdate:modelValue":v[2]||(v[2]=f=>e.isRef(l)?l.value=f:null)},{default:e.withCtx(()=>[e.createElementVNode("div",Ut,[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(y.ElCollapse),{key:0,modelValue:e.unref(s)[e.unref(l)],"onUpdate:modelValue":v[1]||(v[1]=f=>e.unref(s)[e.unref(l)]=f)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).children,f=>(e.openBlock(),e.createBlock(e.unref(y.ElCollapseItem),{key:f.name,name:f.name,title:`${f.label} (${f.count})`},{default:e.withCtx(()=>[f.components?(e.openBlock(),e.createBlock(e.unref(y.ElRow),{key:0,wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.components,u=>(e.openBlock(),e.createBlock(e.unref(y.ElCol),{span:e.unref(t),key:u.name},{default:e.withCtx(()=>[e.createVNode(e.unref(de),{name:u.name,title:u.label||u.name,draggable:"",onDragstart:g=>d(u),onDragend:m},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1032,["name","title"]))),128))]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)])]),_:1},8,["items","modelValue"]))]),_:1}))}}),qt=e.defineComponent({name:"OutlineWidget",__name:"index",setup(c){const{engine:t,designer:n,selected:o}=Y(),{current:l}=W(),a=e.ref([]),s=B=>{if(w.isBlock(B))return B.locked?["unlock"]:["lock"];const E=B.parent;return E&&(E.locked||E.invisible)?[]:l.value?.locked?[]:B.locked?["unlock"]:B.invisible?["visible"]:["lock","invisible","copy","remove"]},r=B=>{const E=[];return B.forEach(x=>{const J={id:x.id,label:x.name,type:x.id,model:x};Array.isArray(x.children)&&(J.children=r(x.children)),E.push(J)}),E},i=()=>{if(!l.value)return[];const{id:B,name:E,nodes:x}=l.value;return[{id:B,label:E,type:B,model:l.value,children:r(x)}]},d=async()=>{a.value=i(),o.value?.model&&(await e.nextTick(),n.value?.setSelected(o.value.model))},m=e.computed(()=>o.value?.model.id),p=B=>{const E=B.data;if(w.isBlock(E.model)||E.model.locked||E.model.name==="template")return!1;const x=t.assets.componentMap.get(E.model.name);return x?(n.value?.setDragging(x),!0):!1},v=async(B,E,x)=>{const J=E.data,ne={prev:"top",next:"bottom",inner:"inner"}[x];let j=!1;if(w.isBlock(J.model))j=x==="inner",n.value?.setDropping(j?J.model:null,"inner");else{const P=J.model;j=!!await n.value?.allowDrop(P,ne),n.value?.setDropping(j?P:null,"inner")}return j},f=B=>{const E=B?.model;!E||E.invisible||(n.value?.setSelected(E),n.value?.setHover(null))},u=async(B,E,x)=>{const J=B.data,Z=E.data;if(w.isBlock(Z.model)){n.value?.setDropping(null),n.value?.setDragging(null);return}const ne=Z.model,j={before:"left",after:"right"}[x]||"inner";if(!await n.value?.allowDrop(ne,j)){n.value?.setDropping(null),d(),y.ElMessage.warning({message:`${J.model.name}不能放置到该位置`}),n.value?.setDragging(null);return}const N=await n.value?.getDropSlot(x==="inner"?ne:ne.parent);if(N!==null){const ae=J.model;ae.slot=N,l.value?.move(ae,ne,j)}else d();n.value?.setDropping(null),n.value?.setDragging(null),t.simulator.refresh()},g=B=>{w.isBlock(B.model)?n.value?.setHover(B.model):(n.value?.setHover(B.model),B.model.invisible&&n.value?.setHover(null),B.model.name==="slot"&&n.value?.setHover(null))},h=()=>{n.value?.setHover(null)},C=B=>{const E=B.data;E.dragging=!0;const x=t.assets.componentMap.get(E.model.name);x&&n.value?.setDragging(x)},_=async B=>{const E=B.data;E.dragging=!1},V=(B,E)=>{B&&((B.id===E.id||!w.isBlock(B)&&E.isChild(B))&&n.value?.setSelected(null),n.value?.setHover(null))},S=B=>{const{name:E,modelValue:x}=B,J=o.value?.model;switch(E){case"lock":V(J,x),x.lock();break;case"unlock":V(J,x),x.unlock();break;case"invisible":V(J,x),x.setVisible(!1);break;case"visible":x.setVisible(!0);break;case"copy":const Z=l.value?.cloneNode(x);Z&&n.value?.setSelected(Z);break;case"remove":V(J,x),l.value?.removeNode(x);break}};return e.watch(t.changed,d,{immediate:!0}),(B,E)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-outline-widget",title:"大纲树"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(y.ElTree),{key:e.unref(t).changed.value,data:a.value,"node-key":"id","default-expand-all":"",draggable:"","empty-text":"请新建或打开文件","current-node-key":m.value,"highlight-current":!0,"expand-on-click-node":!1,"allow-drop":v,"allow-drag":p,onCurrentChange:f,onNodeDrop:u,onNodeDragStart:C,onNodeDragEnd:_},{default:e.withCtx(({data:x,node:J})=>[e.createVNode(e.unref(O),{class:e.normalizeClass(["v-outline-widget__item",{"is-locked":x.model.locked,"is-invisible":x.model.invisible,"is-dragging":x.dragging}]),active:!x.model.invisible&&J.isCurrent,grow:"",small:"",background:"",hover:"","model-value":x.model,icon:x.model.locked?e.unref(k.VtjIconLock):x.model.invisible?e.unref(k.VtjIconInvisible):void 0,title:x.label,subtitle:x.type,actions:s(x.model),onAction:S,onMouseenter:Z=>g(x),onMouseleave:h},null,8,["class","active","model-value","icon","title","subtitle","actions","onMouseenter"])]),_:1},8,["data","current-node-key"]))]),_:1}))}}),Gt=e.defineComponent({name:"HistoryWidget",__name:"index",setup(c){const{history:t,load:n,total:o}=je(),l=e.computed(()=>`(共 ${o.value} 条)`),a=r=>{r.name==="remove"&&t.value?.remove(r.modelValue.id)},s=async()=>{await re("确定要清空历史记录吗?")&&t.value?.clear()};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-history-widget",title:"历史记录",subtitle:l.value,remove:!!e.unref(o),onRemove:s},{default:e.withCtx(()=>[e.unref(o)===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.unref(t)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(t).items,(d,m)=>(e.openBlock(),e.createBlock(e.unref(O),{index:m+1,title:d.label,"model-value":d,active:m==e.unref(t).index,small:"",background:"",actions:["remove"],onAction:a,onClick:p=>e.unref(n)(d.id)},null,8,["index","title","model-value","active","onClick"]))),256)):e.createCommentVNode("",!0)]),_:1},8,["subtitle","remove"]))}}),M=e.defineAsyncComponent({loader:()=>Promise.resolve().then(()=>require("./Editor-YiL8B0KR.cjs")),loadingComponent:e.defineComponent({render(){return e.h("div","正在拼命加载...")}}),errorComponent:e.defineComponent({render(){return e.h("div","组件加载失败!")}})}),Kt=e.defineComponent({name:"ApisWidget",__name:"index",setup(c){const t=e.ref(!1),n=e.ref(null),o=e.ref(!1),l=e.computed(()=>o.value?"编辑API":"新增API"),a=e.computed(()=>s.value?.apis||[]),{project:s}=me(),r=()=>({method:"get",name:"",label:"",url:"",settings:{loading:!0,failMessage:!0,validSuccess:!0,originResponse:!1,injectHeaders:!1,type:"form",headers:{type:"JSExpression",value:"({})"}}}),i=()=>{t.value=!0,o.value=!1,n.value=r()},d=Ee.map(h=>({label:h,value:h.toLowerCase()})),m={get:"success",post:"primary",put:"warning",delete:"danger",patch:"warning",jsonp:"info"},p=[{label:"表单",value:"form"},{label:"JSON",value:"json"},{label:"文件",value:"data"}],v=(h,C,_)=>{X({type:"JSExpression",value:C},window)?_():_(new Error("代码错误"))},f=h=>{h.name==="edit"&&u(h.modelValue),h.name==="remove"&&s.value?.removeApi(h.modelValue.name)},u=h=>{o.value=!0,n.value=F.cloneDeep(h),t.value=!0},g=async h=>s.value?.existApiName(h.name,o.value?[h.id]:[])?(L(`API名称 [ ${h.name} ] 已存在`),!1):(s.value?.setApi(h),!0);return(h,C)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-apis-widget",title:"API管理",plus:"",onPlus:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,_=>(e.openBlock(),e.createBlock(e.unref(O),{key:_.id,small:"",title:_.name,subtitle:_.label,"model-value":_,tag:_.method?.toUpperCase(),"tag-type":m[_.method||"get"],background:"",actions:["edit","remove"],onClick:V=>u(_),onAction:f},null,8,["title","subtitle","model-value","tag","tag-type","onClick"]))),128)),a.value.length===0?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XDialogForm),{modelValue:t.value,"onUpdate:modelValue":C[1]||(C[1]=_=>t.value=_),model:n.value,title:l.value,width:"1000px",height:"600px","form-props":{labelPosition:"top",tooltipMessage:!1,size:"default"},"submit-method":g},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{gap:"",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"method",label:"请求类型",required:"",editor:"radio",options:e.unref(d),props:{button:!0}},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"接口名称",required:"",rules:{pattern:e.unref(Q),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"url",label:"接口URL",required:""})]),_:1}),e.createVNode(e.unref(b.XContainer),{direction:"column",grow:"",width:"50%",shrink:""},{default:e.withCtx(()=>[n.value.method!=="jsonp"?(e.openBlock(),e.createBlock(e.unref(I),{key:0,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-around"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"settings.loading",size:"small",label:"加载提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.failMessage",label:"失败提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.validSuccess",label:"校验成功",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.originResponse",label:"原始响应",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.injectHeaders",label:"注入请求头",editor:"switch"})]),_:1}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.type",label:"发送数据类型",editor:"radio",options:p,props:{button:!0}}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.headers.value",label:"请求头配置",tip:"支持 JSExpression 或 JSFunction",rules:{validator:v}},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:n.value.settings.headers.value,"onUpdate:modelValue":C[0]||(C[0]=_=>n.value.settings.headers.value=_),dark:"",height:"200px"},null,8,["modelValue"])]),_:1},8,["rules"])]),_:1},8,["subtitle"])):e.createCommentVNode("",!0),n.value.method==="jsonp"?(e.openBlock(),e.createBlock(e.unref(I),{key:1,title:"请求配置",subtitle:n.value.method,border:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallback",size:"small",label:"jsonpCallback"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallbackFunction",size:"small",label:"jsonpCallbackFunction"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.timeout",size:"small",label:"timeout",editor:"number"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.crossorigin",size:"small",label:"crossorigin",editor:"switch"})]),_:1},8,["subtitle"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue","model","title"])]),_:1}))}}),Zt=e.defineComponent({name:"DepsWidget",__name:"index",setup(c){const{dependencies:t,engine:n}=Ie(),o=e.ref(!1),l=e.ref(!1),a=e.ref({}),s=e.computed(()=>l.value?"查看依赖":a.value?"编辑依赖":"新增依赖"),r=u=>u.required||u.official?[]:["edit","remove"],i=u=>u.official&&!u.required,d=async u=>(u.urls=u.urls.split(`
8
- `),n.project.value?.setDeps(u),!0),m=u=>{n.project.value?.setDeps(u)},p=()=>{l.value=!1,o.value=!0,a.value=null},v=u=>{l.value=!0,a.value={...u,urls:u.urls.join(`
7
+ */const Be="0.7.31",ge={width:390,height:844},he={width:1180,height:820},Z=/^[A-Za-z_$][\w_-]*$/,xe=["click","dblclick","mouseenter","mouseleave","mousedown","mouseup","mouseover","contextmenu"],Se=["keydown","keyup","keypress"],Ne=["GET","POST","PUT","PATCH","DELETE","JSONP"],Ee=["stop","prevent","capture","self","once","passive"];var Y=(c=>(c.Block="block",c.Node="node",c))(Y||{}),Ae=(c=>(c.Brand="Brand",c.Toolbar="Toolbar",c.Actions="Actions",c.Apps="Apps",c.Workspace="Workspace",c.Settings="Settings",c.Status="Status",c.Preview="Preview",c))(Ae||{});function je(){const c=q(),t=e.computed(()=>c.project.value?.dependencies??[]),n=e.computed(()=>c.project.value?.apis??[]);return{engine:c,dependencies:t,apis:n}}function oe(c,t){const n=e.computed(()=>we.getWidgets(e.unref(c),e.unref(t)).filter(l=>!l.invisible)),o=e.ref();return{widgets:n,widgetsRef:o}}function De(){const c=q();return{span:e.computed(()=>{const l=c.skeleton?.skeletonRef.leftWidth||400,a=Math.min(Math.floor((l-50)/120),24);return Math.floor(24/a)}),engine:c}}function rt(){const c=q(),t=e.computed(()=>c.project.value?.blocks??[]);return{engine:c,blocks:t}}const at=(c=[])=>c.map(t=>t.name);function st(){const c=q(),{components:t,groups:n,componentMap:o}=c.assets,l=e.reactive({}),a=e.computed(()=>{const p={};return n.value&&n.value.forEach(v=>{p[v.name]=v}),p}),s=e.computed(()=>n.value?n.value.map(p=>({label:`${p.label} (${p.count})`,name:p.name,disabled:!p.children?.length})):[]),r=e.ref(s.value[0]?.name),i=e.ref(""),m=e.computed(()=>a.value[r.value]);e.watchEffect(()=>{const p=s.value.reduce((v,f)=>(v[f.name]=at(a.value[f.name].children),v),{});Object.assign(l,p)}),e.watch(s,p=>{p.length&&!r.value&&(r.value=p[0].name)},{immediate:!0});const d=e.computed(()=>{const p=i.value.toLowerCase();return!p||!t?[]:t.filter(v=>v.name.toLowerCase().includes(p)||v.label?.toLowerCase().includes(p))});return{components:t,groups:n,componentMap:o,groupMap:a,tabs:s,model:l,currentTab:r,currentGroup:m,searchKey:i,searchResult:d}}function U(){const c=q(),t=e.computed(()=>c.current.value),n=e.computed(()=>c.simulator.renderer?.context??null),o=e.computed(()=>c.isEmptyCurrent.value);return{engine:c,current:t,isEmpty:o,context:n}}function it(c,t,n,o){const l=q();l.simulator.init(c,t,n,o);const a=e.computed(()=>l.simulator.designer.value),s=e.computed(()=>fe("hover",a.value?.hover.value)),r=e.computed(()=>fe("dropping",a.value?.dropping.value)),i=e.computed(()=>fe("selected",a.value?.selected.value));return e.watch(l.changed,()=>{a.value?.updateRect()}),{designer:a,dropping:r,hover:s,selected:i}}function ct(c,t=!0){const{top:n,height:o,width:l,left:a}=c||{};if(o>100&&l>200)return"inner";let s,r;return r=n>30?"top":"bottom",s=t||a<300&&l<300?"left":"right",[s,r].join("-")}function ut(c){const{rect:t,type:n}=c,{left:o,width:l,top:a,height:s}=t,r={left:o,width:l,top:a,height:s};switch(n){case"left":r.left=0,r.width=0;break;case"right":r.left=r.left+r.width-4,r.width=0;break;case"bottom":r.top=r.top+r.height-4,r.height=0;break;case"top":r.height=0;break}return r}function fe(c,t){if(!t)return null;const{left:n,top:o,width:l,height:a}=c==="dropping"?ut(t):t.rect,s={left:`${n}px`,top:`${o}px`,width:`${l}px`,height:`${a}px`,visibility:l||a?"visible":"hidden"};return{...t,style:s,position:ct(t.rect,c!=="selected")}}function ee(){const c=q(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>t.value?.selected.value),o=e.computed(()=>V.isBlock(n.value?.model));return{engine:c,designer:t,selected:n,isSelectBlock:o}}function dt(c,t){const n=e.ref(""),{selected:o,isSelectBlock:l}=ee(),a=e.computed(()=>o.value?.model.id),s=e.computed(()=>{const i=e.toValue(c),m=e.toValue(t),d=[];if(!i)return d;const p=m?.__contextRefs[a.value||""],f=m===p||l.value?[]:Object.keys(p?.context||{}).filter(A=>!["context","ref"].includes(A)).map(A=>`this.context.${A}`);f.length&&d.push({title:"上下文",items:f});const u=i.inject.map(A=>`this.${A.name}`);u.length&&d.push({title:"注入",items:u});const g=i.props.map(A=>typeof A=="string"?`this.$props.${A}`:`this.$props.${A.name}`);g.length&&d.push({title:"属性",items:g});const h=Object.keys(i.state).map(A=>`this.state.${A}`);h.length&&d.push({title:"状态",items:h});const w=Object.keys(i.computed).map(A=>`this.${A}.value`);w.length&&d.push({title:"计算属性",items:w});const C=Object.keys(i.methods).map(A=>`this.${A}`);C.length&&d.push({title:"方法",items:C});const _=Object.keys(i.dataSources).map(A=>`this.${A}`);_.length&&d.push({title:"数据源",items:_});const x=Object.keys(m?.$refs||{}).map(A=>`this.$refs.${A}`);return x.length&&d.push({title:"refs",items:x}),d}),r=e.computed(()=>{if(!n.value)return s.value;const i=n.value.toLowerCase(),m=[];return s.value.forEach(d=>{const p=d.items.filter(v=>v.toLowerCase().includes(i));p.length&&m.push({title:d.title,items:p})}),m});return{keyword:n,options:s,searchResult:r}}const de=[{name:"StringSetter",label:"文本"},{name:"ExpressionSetter",label:"表达式"}];function mt(c){const t=q(),n=e.computed(()=>{const p=c.value?.model||null;return V.isBlock(p)?null:p}),o=e.ref();e.watch(n,async p=>{p?.from?o.value=await t.assets.getBlockMaterial(p.from)||void 0:o.value=void 0},{immediate:!0});const l=e.computed(()=>n.value?[{name:"key",setters:de,value:n.value.getPropValue("key")},{name:"ref",setters:de,value:n.value.getPropValue("ref")},{name:"class",label:"class",setters:de,value:n.value.getPropValue("class")},{name:"children",label:"文本",title:"如设置组件文本,将清空子组件",setters:de,value:Array.isArray(n.value.children)?"":n.value.children}]:[]),a=e.computed(()=>{if(!n.value)return[];const p=o.value||t.assets.componentMap.get(n.value.name);return p?(p.props||[]).map(f=>({...f,value:n.value?.getPropValue(f.name)??f.defaultValue})):[]}),s=p=>l.value.some(v=>v.name===p)||a.value.some(v=>v.name===p)||p==="style",r=e.computed(()=>n.value?Object.keys(n.value.props).filter(p=>!s(p)).map(p=>({name:p,setters:"InputSetter",value:n.value?.getPropValue(p)})):[]);return{commonProps:l,componentProps:a,customProps:r,node:n,change:(p,v)=>{n.value&&(p==="children"?n.value.setChildren(v):n.value.setProp(p,v))},addCustom:p=>{p&&n.value?.setProp(p,"")},removeCustom:p=>{n.value?.removeProp(p)},isExist:s}}function M(c,t="提示"){return k.ElNotification.warning({title:t,message:c})}async function re(c){return await k.ElMessageBox.confirm(c,"提示",{type:"warning"}).catch(()=>!1)}function H(c,t="success"){return k.ElMessage({message:c,type:t})}function J(c,t,n=!1){let o=!0;try{c.type==="JSExpression"?P.parseExpression(c,t,n,!0):P.parseFunction(c,t,n,!0)}catch(l){o=!1,k.ElNotification.error({title:"代码错误",message:l.message})}return o}function Ie(){const c=q(),t=e.computed(()=>c.simulator.designer.value),n=e.computed(()=>c.current.value?c.history.value:null),o=e.computed(()=>n.value?.items.length||0),l=()=>{t.value?.cleanHelper(),n.value?.forward()},a=()=>{n.value?.backward(),t.value?.cleanHelper()},s=m=>{t.value?.cleanHelper(),n.value?.load(m),H("已载入历史记录","success")},r=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)<=0),i=e.computed(()=>o.value<=1?!0:(n.value?.index||-1)>=o.value-1);return{engine:c,history:n,total:o,forward:l,backward:a,load:s,forwardDisabled:r,backwardDisabled:i}}function se(){const c=q(),t=e.computed(()=>c.project.value);return{engine:c,project:t}}function pt(c){const t=q(),n=e.computed(()=>{const r=c.value?.model||null;return!r||V.isBlock(r)?null:r}),o=e.ref();e.watch(n,async r=>{r?.from?o.value=await t.assets.getBlockMaterial(r.from)||void 0:o.value=void 0},{immediate:!0});const l=e.computed(()=>{if(V.isBlock(n.value))return[];const r=n.value?.events||{};return xe.map(i=>({name:i,event:r[i]}))}),a=e.computed(()=>{if(V.isBlock(n.value))return[];const r=n.value?.events||{};return Se.map(i=>({name:i,event:r[i]}))}),s=e.computed(()=>{if(!n.value||V.isBlock(n.value))return[];const r=n.value.events||{};return(o.value?.events||t.assets.componentMap.get(n.value.name)?.events||[]).map(m=>{const d=typeof m=="string"?m:m.name;return{name:d,event:r[d]}})});return{mouseEventList:l,keyboardEventList:a,componentEventList:s}}const _e=(c,t)=>new V.DirectiveModel({name:c,value:void 0,iterator:t}),ft=(c="modelValue")=>new V.DirectiveModel({name:"vModel",value:void 0,arg:c});function vt(c){if(!c)return[];const{props:t=[],events:n=[]}=c;if(t.length&&n.length){const o=n.filter(l=>(typeof l=="string"?l:l.name).startsWith("update:")).map(l=>l=typeof l=="string"?l:l.name);return o.length?t.filter(l=>o.some(a=>a.includes(l.name))):[]}return[]}function gt(c){const t=q(),n=e.computed(()=>{const u=c.value?.model||null;return V.isBlock(u)?null:u}),o=u=>e.computed(()=>n.value&&(n.value.directives||[]).find(g=>g.name===u)||_e(u)),l=()=>e.computed(()=>{if(!n.value)return[];const u=t.assets.componentMap.get(n.value.name||"");return(u?vt(u):[]).map(h=>(n.value?.directives||[]).find(w=>w.name==="vModel"&&w.arg==h.name)||ft(h.name))}),a=o("vIf"),s=o("vShow"),r=o("vBind"),i=o("vFor"),m=l(),d={vIf:a,vShow:s,vBind:r,vFor:i};return{engine:t,node:n,vIf:a,vShow:s,vBind:r,vFor:i,vModels:m,onValueChange:(u,g)=>{const h=d[u];n.value&&(g?(h.value.value=g,n.value.setDirective(h.value)):(h.value.value=void 0,n.value.removeDirective(h.value)))},onForChange:(u,g)=>{if(n.value){if(u==="value"){g?(i.value.value=g,n.value.setDirective(i.value)):n.value.removeDirective(i.value);return}(u==="item"||u==="index")&&(i.value.iterator={...i.value.iterator,[u]:g||void 0},n.value.setDirective(i.value))}},onModelChange:(u,g)=>{if(!n.value)return;const h=parseInt(u),w=m.value[h];w&&(g?(w.value=g,n.value.setDirective(w)):(w.value=void 0,n.value.removeDirective(w)))}}}function ht(){const{engine:c,project:t}=se(),n=e.computed(()=>t.value?.apis||[]);return{engine:c,project:t,apis:n}}const bt="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1711803009570'%20class='icon'%20viewBox='0%200%201280%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1500'%20width='320'%20height='256'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath%20d='M557.85%201023l-122-35.4c-12.8-3.6-20-17-16.4-29.8L692.45%2017.4c3.6-12.8%2017-20%2029.8-16.4l122%2035.4c12.8%203.6%2020%2017%2016.4%2029.8L587.65%201006.6c-3.8%2012.8-17%2020.2-29.8%2016.4z%20m-228-224.4l87-92.8c9.2-9.8%208.6-25.4-1.6-34.4L234.05%20512l181.2-159.4c10.2-9%2011-24.6%201.6-34.4l-87-92.8c-9-9.6-24.2-10.2-34-1L7.65%20494.4c-10.2%209.4-10.2%2025.6%200%2035l288.2%20270.2c9.8%209.2%2025%208.8%2034-1z%20m654.4%201.2l288.2-270.2c10.2-9.4%2010.2-25.6%200-35L984.25%20224.2c-9.6-9-24.8-8.6-34%201L863.25%20318c-9.2%209.8-8.6%2025.4%201.6%2034.4L1046.05%20512l-181.2%20159.4c-10.2%209-11%2024.6-1.6%2034.4l87%2092.8c9%209.8%2024.2%2010.2%2034%201.2z'%20fill='%230157fe'%20p-id='1501'%3e%3c/path%3e%3c/svg%3e",kt=["title","src"],yt={key:1},wt=e.defineComponent({name:"LogoWidget",inheritAttrs:!1,__name:"index",props:{icon:{},text:{default:"VTJ"},link:{}},setup(c){const{engine:t}=U(),n=c,o=e.computed(()=>n.icon||t.project.value?.config?.logo||bt),l=()=>{n.link&&(location.href=n.link)};return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:"v-logo-widget",onClick:l},[o.value?(e.openBlock(),e.createElementBlock("img",{key:0,title:n.text,class:"v-logo-widget__icon",src:o.value},null,8,kt)):(e.openBlock(),e.createElementBlock("span",yt,e.toDisplayString(n.text),1))]))}}),Ct={class:"v-empty-widget"},Vt=e.defineComponent({name:"EmptyWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Ct,"EmptyWidget"))}}),_t={class:"v-switcher-widget"},Bt={key:1},xt=e.defineComponent({name:"SwitcherWidget",inheritAttrs:!1,__name:"index",emits:["click"],setup(c,{emit:t}){const n=t,{engine:o}=U(),l=e.computed(()=>o.project.value?.config?.title||o.project.value?.name),a=e.computed(()=>o.project.value?.currentFile?.title),s=()=>{n("click",o.project.value)};return(r,i)=>(e.openBlock(),e.createElementBlock("div",_t,[e.createVNode(e.unref(k.ElButton),{size:"small",round:"",onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconBack),{class:"v-switcher-widget__back"}),e.createElementVNode("span",null,e.toDisplayString(l.value),1),a.value?(e.openBlock(),e.createBlock(e.unref(k.ElDivider),{key:0,direction:"vertical"})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("span",Bt,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)]),_:1})]))}}),St={class:"v-toolbar-widget"},Nt=e.defineComponent({name:"ToolbarWidget",inheritAttrs:!1,__name:"index",props:{preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{forward:o,backward:l,forwardDisabled:a,backwardDisabled:s}=Ie(),r=e.ref("pc");return t({mode:r}),(i,m)=>(e.openBlock(),e.createElementBlock("div",St,[e.createVNode(e.unref(k.ElRadioGroup),{size:"small",modelValue:r.value,"onUpdate:modelValue":m[0]||(m[0]=d=>r.value=d)},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElRadioButton),{label:"pc",value:"pc"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconPc))]),_:1}),e.createVNode(e.unref(k.ElRadioButton),{label:"mobile",value:"mobile"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconPhone))]),_:1}),e.createVNode(e.unref(k.ElRadioButton),{label:"pad",value:"pad"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconPad))]),_:1})]),_:1},8,["modelValue"]),e.createCommentVNode("",!0),e.createVNode(e.unref(k.ElButtonGroup),null,{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElButton),{type:"default",size:"small",onClick:e.unref(l),disabled:e.unref(s)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconUndo))]),_:1},8,["onClick","disabled"]),e.createVNode(e.unref(k.ElButton),{type:"default",size:"small",onClick:e.unref(o),disabled:e.unref(a)||!!n.preview},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconRedo))]),_:1},8,["onClick","disabled"])]),_:1})]))}}),Et={class:"v-actions-widget"},At=e.createElementVNode("span",null,"发布",-1),jt=e.defineComponent({name:"ActionsWidget",inheritAttrs:!1,__name:"index",props:{coder:{type:Boolean,default:!0}},setup(c){const{engine:t,designer:n}=ee(),o=e.ref(!1),l=()=>{t.current.value?(o.value?t.skeleton?.getWidget("Previewer")?.widgetRef.refresh():(n.value?.setSelected(null),t.simulator.refresh()),H("刷新完成","success")):H("请先打开文件","warning")},a=async()=>{t.current.value?(o.value&&(t.skeleton?.closePreview(),o.value=!1,await R.delay(1e3)),n.value?.setSelected(t.current.value)):H("请先打开文件","warning")},s=()=>{if(t.project.value)if(t.current.value){if(o.value){t.skeleton?.closePreview(),o.value=!1;return}t.skeleton?.openPreview(""),o.value=!0}else H("请先打开文件","warning")},r=()=>{const m=t.project.value;m&&(m.currentFile?m.publish(m.currentFile):H("请先打开文件","warning"))},i=m=>{const d=t.project.value;d&&(m==="current"?r():d.publish())};return(m,d)=>(e.openBlock(),e.createElementBlock("div",Et,[e.createCommentVNode("",!0),e.createCommentVNode("",!0),e.createVNode(e.unref(k.ElButton),{onClick:s,type:o.value?"warning":"default",size:"small",title:"预览"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconPreview))]),_:1},8,["type"]),e.createVNode(e.unref(k.ElButton),{onClick:l,type:"default",size:"small",title:"刷新"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconRefresh))]),_:1}),e.createVNode(e.unref(k.ElButton),{type:"default",size:"small",title:"页面设置",onClick:a},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconSetting))]),_:1}),e.createVNode(e.unref(k.ElDivider),{direction:"vertical"}),e.createVNode(e.unref(k.ElDropdown),{"split-button":"",type:"primary",size:"small",onClick:r,onCommand:i},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(k.ElDropdownMenu),null,{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElDropdownItem),{command:"current"},{default:e.withCtx(()=>[e.createTextVNode("发布页面")]),_:1}),e.createVNode(e.unref(k.ElDropdownItem),{command:"project"},{default:e.withCtx(()=>[e.createTextVNode("整站发布")]),_:1})]),_:1})]),default:e.withCtx(()=>[At]),_:1})]))}}),Dt={class:"v-icon-setter"},It={class:"v-icon-setter__content"},Ft={class:"v-icon-setter__list"},Fe=e.defineComponent({name:"IconSetter",__name:"icon",props:{modelValue:{default:""},size:{default:"small"}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(n.modelValue),s=e.ref(""),r=e.computed(()=>y.icons[n.modelValue]||n.modelValue),i=e.computed(()=>{const f=Object.entries(y.icons);return s.value?f.filter(u=>u[0].toLowerCase().includes(s.value)):f}),m=f=>{a.value=f},d=()=>{o("change",a.value),o("update:modelValue",a.value),l.value=!1},p=()=>{a.value="",o("change",""),o("update:modelValue",""),l.value=!1},v=()=>{l.value=!0};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Dt,[e.createVNode(e.unref(k.ElInput),{size:n.size,readonly:"",placeholder:"请选择图标","model-value":n.modelValue,"suffix-icon":e.unref(y.ArrowDown),onFocus:v},{prepend:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:r.value},null,8,["icon"])]),_:1},8,["size","model-value","suffix-icon"]),l.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,title:"图标选择器",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value=g),onSubmit:d},{extra:e.withCtx(()=>[e.createVNode(e.unref(k.ElButton),{size:"default",type:"warning",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 清除绑定 ")]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",It,[e.createVNode(e.unref(k.ElInput),{size:n.size,"prefix-icon":e.unref(y.Search),clearable:"",modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=g=>s.value=g),placeholder:"请输入查询关键字"},null,8,["size","prefix-icon","modelValue"]),e.createElementVNode("div",Ft,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,g=>(e.openBlock(),e.createBlock(e.unref(b.XIcon),{icon:g[1],onClick:h=>m(g[0]),class:e.normalizeClass({"is-active":a.value===g[0]})},null,8,["icon","onClick","class"]))),256)),i.value.length===0?(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0})):e.createCommentVNode("",!0)])])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]))}}),Pt=e.defineComponent({name:"PageForm",__name:"form",props:{item:{},parentId:{}},setup(c){const t=c,{project:n}=se(),o=e.computed(()=>t.item?"编辑页面":"新增页面"),l=()=>({dir:!1,name:"",title:"",icon:"",mask:!0,hidden:!1,raw:!1}),a=e.ref(t.item||l()),s=[{label:"页面",value:!1},{label:"目录",value:!0}],r=m=>{a.value&&(a.value.name=R.upperFirstCamelCase(m))},i=async m=>n.value?.existPageName(m.name,[m.id])?(M("页面名称已存在,请更换"),!1):(t.item?n.value?.updatePage(m):n.value?.createPage(m,t.parentId),!0);return(m,d)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:o.value,width:"800px",height:"500px","form-props":{tooltipMessage:!1},model:a.value,"submit-method":i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"dir",label:"类型",editor:"radio",options:s,props:{button:!0,size:"small"},disabled:!!t.item,required:""},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",onChange:r,rules:{pattern:e.unref(Z),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""}),e.createVNode(e.unref(b.XField),{name:"icon",label:"菜单图标",editor:"none"},{editor:e.withCtx(()=>[e.createVNode(Fe,{modelValue:a.value.icon,"onUpdate:modelValue":d[0]||(d[0]=p=>a.value.icon=p),size:"default"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},name:"mask",label:"包含母版",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"hidden",label:"隐藏菜单",editor:"switch"}),e.createVNode(e.unref(b.XField),{visible:{dir:!1},disabled:!!t.item,inline:"",name:"raw",label:"源码模式",editor:"switch",tip:"页面是非低代码开发,不能在线编辑"},null,8,["disabled"])]),_:1},8,["title","model"]))}}),be=e.defineComponent({name:"VIcon",__name:"Icon",props:{icon:{},label:{},active:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:["click"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>({"is-active":n.active,"is-open":n.open})),a=()=>{o("click")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(k.ElTooltip),{effect:"dark",placement:"right",content:s.label,"show-after":600},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["v-apps-region__icon",l.value]),onClick:a},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))],2)]),_:1},8,["content"]))}}),I=e.defineComponent({name:"VPanel",__name:"panel",props:{title:{},subtitle:{},plus:{type:Boolean},back:{type:Boolean},edit:{type:Boolean},remove:{type:Boolean},save:{type:Boolean},header:{type:Boolean,default:!0},collapsable:{type:Boolean}},emits:["plus","back","remove","save","edit"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.computed(()=>({"is-collapsed":!!l.value})),s=()=>{o("plus")},r=()=>{o("edit")},i=()=>{o("back")},m=()=>{o("remove")},d=()=>{o("save")},p=e.computed(()=>n.header?{content:n.title,subtitle:n.subtitle,icon:n.back?y.Back:void 0,onClickBack:n.back?i:void 0,onClick:n.collapsable?()=>{l.value=!l.value}:void 0}:null),v=f=>{l.value=f};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:e.normalizeClass(["v-panel",a.value]),border:!1,header:p.value,fit:""},e.createSlots({actions:e.withCtx(()=>[n.plus?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,size:f.$attrs.size,mode:"icon",icon:e.unref(y.VtjIconPlus),background:"hover",title:"新增",onClick:s},null,8,["size","icon"])):e.createCommentVNode("",!0),n.edit?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:1,size:f.$attrs.size,mode:"icon",icon:e.unref(y.EditPen),background:"hover",title:"编辑",onClick:r},null,8,["size","icon"])):e.createCommentVNode("",!0),n.remove?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:2,size:f.$attrs.size,mode:"icon",icon:e.unref(y.Delete),background:"hover",title:"清除",onClick:m},null,8,["size","icon"])):e.createCommentVNode("",!0),n.save?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:3,size:f.$attrs.size,mode:"icon",icon:e.unref(y.VtjIconSave),background:"hover",title:"保存",onClick:d},null,8,["size","icon"])):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:4,size:f.$attrs.size,mode:"icon",icon:e.unref(y.ArrowDown),background:"hover",title:"展开",onClick:u[0]||(u[0]=g=>v(!1))},null,8,["size","icon"])),[[e.vShow,l.value]]):e.createCommentVNode("",!0),n.collapsable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(b.XAction),{key:5,size:f.$attrs.size,mode:"icon",icon:e.unref(y.ArrowUp),background:"hover",title:"收起",onClick:u[1]||(u[1]=g=>v(!0))},null,8,["size","icon"])),[[e.vShow,!l.value]]):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"actions")]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:2},[f.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(f.$slots,"footer")]),key:"0"}:void 0]),1032,["class","header"]))}}),Tt={class:"v-tabs__header"},Rt={key:0,class:"v-tabs__actions"},ce=e.defineComponent({__name:"tabs",props:{items:{default:()=>[]},menus:{},modelValue:{},stretch:{type:Boolean},checkable:{type:Boolean}},emits:["update:modelValue","command","remove","action-click"],setup(c,{emit:t}){const n=c,o=t,l=e.ref((n.modelValue||n.items[0]?.name)??"");e.watch(l,()=>{o("update:modelValue",l.value)}),e.watch(()=>n.modelValue,i=>{l.value=i});const a=i=>{o("command",i)},s=i=>{o("remove",i)},r=i=>{o("action-click",i)};return(i,m)=>(e.openBlock(),e.createBlock(e.unref(b.XPanel),{class:"v-tabs",border:!1,fit:"",radius:!1},{header:e.withCtx(()=>[e.createElementVNode("div",Tt,[e.createVNode(e.unref(b.XTabs),{class:"v-tabs__tabs",items:n.items,type:"card",modelValue:l.value,"onUpdate:modelValue":m[0]||(m[0]=d=>l.value=d),onTabRemove:s,onActionClick:r,stretch:n.stretch},null,8,["items","modelValue","stretch"]),n.menus&&n.menus.length?(e.openBlock(),e.createElementBlock("div",Rt,[n.menus&&n.menus.length?(e.openBlock(),e.createBlock(e.unref(b.XAction),{key:0,mode:"icon",size:"small",icon:e.unref(y.MoreFilled),background:"hover",dropdown:{size:"small",placement:"bottom-end"},menus:n.menus,onCommand:a},{item:e.withCtx(({item:d})=>[e.createElementVNode("span",null,[n.checkable?(e.openBlock(),e.createBlock(e.unref(y.VtjIconCheck),{key:0,class:e.normalizeClass({"v-tabs__checked":!0,"is-checked":d.checked})},null,8,["class"])):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(d.label),1)])]),_:1},8,["icon","menus"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3}))}}),zt={key:2,class:"v-item__index"},$t={class:"v-item__content"},Lt={key:3,class:"v-item__subtitle"},W=e.defineComponent({name:"VItem",__name:"item",props:{icon:{},index:{},tag:{},tagType:{},title:{},subtitle:{},actions:{default:()=>[]},background:{type:Boolean},border:{type:Boolean},switch:{type:Boolean},modelValue:{},active:{type:Boolean},hover:{type:Boolean},small:{type:Boolean}},emits:["click","action","update:modelValue","switch"],setup(c,{emit:t}){const n={add:{label:"创建",icon:y.VtjIconPlus},copy:{label:"复制",icon:y.VtjIconCopy},edit:{label:"编辑",icon:y.VtjIconEdit},remove:{label:"删除",icon:y.VtjIconRemove},lock:{label:"锁定",icon:y.VtjIconLock},unlock:{label:"解锁",icon:y.VtjIconUnlock},invisible:{label:"隐藏",icon:y.VtjIconInvisible},visible:{label:"显示",icon:y.VtjIconVisible},home:{label:"主页",icon:y.VtjIconHome}},o=c,l=t,a=e.ref(!!o.modelValue),s=e.computed(()=>o.actions.map(d=>{const p=n[d];return{name:d,...p}})),r=e.computed(()=>({"is-background":o.background,"is-border":o.border,"is-active":o.active,"is-hover":o.hover,"is-small":o.small})),i=()=>{l("click",o.modelValue)},m=async d=>{d==="remove"?await k.ElMessageBox.confirm("确定删除吗?","提示",{type:"warning"}).catch(()=>!1)&&l("action",{name:d,modelValue:o.modelValue}):l("action",{name:d,modelValue:o.modelValue})};return e.watch(a,d=>{l("update:modelValue",d),l("switch",d)}),e.watch(()=>o.modelValue,d=>{a.value=!!d}),(d,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-item",r.value]),justify:"space-between",align:"center",onClick:i},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-item__title",align:"center"},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default",{},()=>[d.icon?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,icon:d.icon},null,8,["icon"])):e.createCommentVNode("",!0),o.tag?(e.openBlock(),e.createBlock(e.unref(k.ElTag),{key:1,class:"v-item__tag",size:"small",type:o.tagType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.tag),1)]),_:1},8,["type"])):e.createCommentVNode("",!0),d.index!==void 0?(e.openBlock(),e.createElementBlock("span",zt," # "+e.toDisplayString(d.index),1)):e.createCommentVNode("",!0),e.createElementVNode("span",$t,e.toDisplayString(d.title),1),d.subtitle?(e.openBlock(),e.createElementBlock("span",Lt,e.toDisplayString(d.subtitle),1)):e.createCommentVNode("",!0)])]),_:3}),e.createVNode(e.unref(b.XContainer),{class:"v-item__actions",onClick:p[1]||(p[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,v=>(e.openBlock(),e.createBlock(e.unref(b.XAction),{name:v.name,title:v.label,mode:"icon",size:"small",background:"none",type:"info",icon:v.icon,onClick:f=>m(v.name)},null,8,["name","title","icon","onClick"]))),256)),o.switch?(e.openBlock(),e.createBlock(e.unref(k.ElSwitch),{key:0,modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=v=>a.value=v),class:"v-item__switch",size:"small"},null,8,["modelValue"])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"status")]),_:3})]),_:3},8,["class"]))}}),Ot=["draggable"],Xt={class:"v-box__name"},Mt={class:"v-box__label"},me=e.defineComponent({name:"VBox",__name:"box",props:{name:{},title:{},editable:{type:Boolean},active:{type:Boolean},draggable:{type:Boolean}},emits:["edit","remove","dragstart","dragend"],setup(c,{emit:t}){const n=c,o=t,l=()=>{o("edit")},a=async()=>{await k.ElMessageBox.confirm("确认删除?","提示",{type:"warning"}).catch(()=>!1)&&o("remove")},s=e.computed(()=>({"is-active":n.active,"is-draggable":n.draggable})),r=()=>{o("dragstart",n)},i=()=>{o("dragend",n)};return(m,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-box",s.value]),draggable:m.draggable,onDragstart:r,onDragend:i},[e.createVNode(e.unref(b.XContainer),{direction:"column",justify:"center",align:"center"},{default:e.withCtx(()=>[e.createElementVNode("span",Xt,e.toDisplayString(n.name),1),e.createElementVNode("span",Mt,e.toDisplayString(n.title),1)]),_:1}),n.editable?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-box__footer",justify:"flex-end",align:"center"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XIcon),{icon:e.unref(y.VtjIconEdit),onClick:l},null,8,["icon"]),e.createVNode(e.unref(b.XIcon),{icon:e.unref(y.VtjIconRemove),onClick:a},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)],42,Ot))}}),Jt={class:"v-context-viewer"},Pe=e.defineComponent({__name:"viewer",props:{context:{}},emits:["pick","copy"],setup(c,{emit:t}){const n=c,o=t,l=["$provider","$apis","$components","context"],a=d=>{const p=d.value,v=R.toRawType(p);return v==="Object"||v==="Module"?Object.keys(p||{}).length===0:v==="Array"?p.length===0:!0},s=(d,p="this")=>typeof d=="object"?Array.isArray(d)?d.map((v,f)=>{const u=`[${f}]`;return{label:u,value:v,type:R.toRawType(v),path:`${p}${u}`}}):Object.entries(d).map(([v,f])=>({label:v,value:f,type:R.toRawType(f),path:`${p}.${v}`})).filter(v=>!v.label.startsWith("__")&&!l.includes(v.label)):[],r=(d,p)=>{if(d.level===0)p(s(n.context));else{const v=e.toRaw(d.data.value);p(s(v,d.data.path))}},i=d=>{o("copy",d.path)},m=d=>{o("pick",d.path)};return(d,p)=>(e.openBlock(),e.createElementBlock("div",Jt,[d.context?(e.openBlock(),e.createBlock(e.unref(k.ElTree),{key:0,lazy:"",load:r,"expand-on-click-node":!1,props:{isLeaf:a}},{default:e.withCtx(({data:v})=>[e.createVNode(W,{title:v.label,clickable:"",onClick:f=>m(v),background:"",actions:["copy"],onAction:f=>i(v),grow:"",small:""},null,8,["title","onClick","onAction"])]),_:1},8,["props"])):e.createCommentVNode("",!0)]))}}),pe=e.defineComponent({__name:"binder",props:{title:{},context:{},block:{},model:{},rules:{},modelValue:{type:Boolean},submitMethod:{type:Function},unbindEnabled:{type:Boolean}},emits:["unbind","submit","cancel","pick","update:modelValue","close"],setup(c,{emit:t}){const n=c,o=t,{searchResult:l,keyword:a}=dt(n.block,n.context),{copy:s}=le.useClipboard({}),r=[{name:"normal",label:"常用"},{name:"viewer",label:"高级"}],i=e.ref("normal"),m=e.ref(),d=async w=>{o("submit",w),n.submitMethod?await n.submitMethod(w)&&p():p()},p=()=>{o("update:modelValue",!1),o("close")},v=()=>{o("unbind")},f=()=>{p()},u=async()=>{m.value?.submit()},g=w=>{o("pick",w)},h=w=>{s(w),k.ElMessage.success({message:"已经复制到粘贴板"})};return(w,C)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),{"model-value":n.modelValue,class:"v-binder",title:w.title,width:"1000px",height:"600px","body-padding":!1,maximizable:!1,minimizable:!1,onClose:p},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{fit:"",direction:"row",overflow:"hidden"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{width:"30%",height:"100%"},{default:e.withCtx(()=>[e.createVNode(ce,{class:"v-binder__tabs",items:r,modelValue:i.value,"onUpdate:modelValue":C[1]||(C[1]=_=>i.value=_)},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-binder__tab-content",fit:"",padding:"",flex:!1},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",null,[e.createVNode(e.unref(k.ElInput),{modelValue:e.unref(a),"onUpdate:modelValue":C[0]||(C[0]=_=>e.isRef(a)?a.value=_:null),size:"small",clearable:"","prefix-icon":e.unref(y.Search),placeholder:"筛选可用项"},null,8,["modelValue","prefix-icon"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),_=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(k.ElDivider),{"border-style":"dotted"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.title),1)]),_:2},1024),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.items,x=>(e.openBlock(),e.createBlock(W,{title:x,background:"",actions:["copy"],small:"",onClick:A=>g(x),onAction:A=>h(x)},null,8,["title","onClick","onAction"]))),256))]))),256)),e.unref(l).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0}))],512),[[e.vShow,i.value==="normal"]]),e.withDirectives(e.createVNode(Pe,{context:n.context,onCopy:h,onPick:g},null,8,["context"]),[[e.vShow,i.value==="viewer"]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XPanel),{grow:"",header:null,border:!1},{footer:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[w.unbindEnabled?(e.openBlock(),e.createBlock(e.unref(k.ElButton),{key:0,type:"warning",size:"default",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 移除绑定 ")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElButton),{type:"default",size:"default",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(" 取消 ")]),_:1}),e.createVNode(e.unref(k.ElButton),{type:"primary",size:"default",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1})]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XForm),{ref_key:"formRef",ref:m,class:"v-binder__form",footer:!1,"label-position":"top","tooltip-message":!1,model:n.model,rules:n.rules,"submit-method":d},{default:e.withCtx(()=>[e.renderSlot(w.$slots,"default")]),_:3},8,["model","rules"])]),_:3})]),_:3})]),_:3},8,["model-value","title"]))}}),Wt={class:"v-slots-picker__sn"},Te=e.defineComponent({__name:"slots",props:{slots:{default:()=>[]}},emits:["submit","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(),a=e.computed(()=>`${50*Math.ceil(n.slots.length/4)+180}px`),s=i=>{l.value=i},r=()=>{l.value?(o("submit",l.value),o("update:modelValue",!1)):M("请选择插槽")};return(i,m)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),e.mergeProps({class:"v-slots-picker",title:"选择插槽",width:"600px",height:a.value,submit:"",cancel:"",onSubmit:r},i.$attrs),{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElAlert),{title:"该组件支持多个插槽,请选择放置到其中一个",type:"warning",closable:!1}),e.createVNode(e.unref(b.XContainer),{class:"v-slots-picker__content",justify:"space-around",alignContent:"flex-start",gap:"",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.slots,(d,p)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:e.normalizeClass(["v-slots-picker__item",{"is-active":d.name===l.value?.name}]),grow:"",flex:!1,onClick:v=>s(d)},{default:e.withCtx(()=>[e.createElementVNode("span",Wt,"#"+e.toDisplayString(p+1),1),e.createTextVNode(" "+e.toDisplayString(d.name),1)]),_:2},1032,["class","onClick"]))),256))]),_:1})]),_:1},16,["height"]))}}),ye=e.defineComponent({name:"Viewport",__name:"viewport",props:{mode:{default:"pc"},width:{},height:{}},setup(c){const t=c,n=e.computed(()=>[`is-${t.mode}`]),o=e.computed(()=>{if(t.mode==="pc")return 1;const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a,i=s>0?(t.width||0)/s:1,m=r>0?(t.height||0)/r:1;return Math.min(i,m)}),l=e.computed(()=>{if(t.mode==="pc")return{};const a=t.mode==="mobile"?ge:he,{width:s,height:r}=a;return{width:`${s}px`,height:`${r}px`,left:"50%",top:"50%",transform:`translate(-50%, -50%) scale(${o.value})`}});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-viewport",n.value]),style:e.normalizeStyle(l.value)},[e.renderSlot(a.$slots,"default")],6))}}),Ut=e.defineComponent({name:"PagesWidget",__name:"index",setup(c){const{project:t,engine:n}=se(),o=e.computed(()=>t.value?.pages||[]),{current:l}=U(),a=e.ref(!1),s=e.ref(),r=e.ref(),i=()=>{r.value=void 0,s.value=void 0,a.value=!0},m=async f=>{const{name:u,modelValue:g}=f,{data:h,node:w}=g;if(u==="add"&&(s.value=void 0,r.value=h.id,a.value=!0),u==="edit"&&(s.value=R.cloneDeep(h),r.value=void 0,a.value=!0),u==="remove"){if(h.dir){const C=t.value?.getPage(h.id);if(C&&C.children?.length){M("请先删除子页面");return}}t.value?.removePage(h.id)}if(u==="copy"){const C=w.parent?.data.id;t.value?.clonePage(h,C)}u==="home"&&(t.value?.setHomepage(h.id),H("设置主页成功","success"))},d=async f=>{f.raw&&H("这是源码模式页面,不能低代码设计","warning"),f.dir||f.raw?n.project.value?.deactivate():n.project.value?.active(f)},p=(f,u,g)=>g==="inner"?!!u.data.dir:!0,v=()=>{t.value?.update({pages:e.toValue(o)})};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-pages-widget",title:"页面管理",plus:"",subtitle:"(共 0 条)",onPlus:i},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElTree),{data:o.value,"node-key":"id","default-expand-all":"",draggable:"","allow-drop":p,onNodeDrop:v},{default:e.withCtx(({data:g,node:h})=>[e.createVNode(e.unref(W),{class:"v-pages-widget__item",icon:e.unref(y.icons)[g.icon],title:g.title,subtitle:g.name,"model-value":{data:g,node:h},actions:g.dir?["add","edit","remove"]:g.raw?["home","edit","remove"]:["home","copy","edit","remove"],onAction:m,onClick:w=>d(g),active:e.unref(l)?.id===g.id,tag:e.unref(t)?.homepage===g.id?"主页":void 0,"tag-type":"success",grow:"",small:"",background:"",hover:""},null,8,["icon","title","subtitle","model-value","actions","onClick","active","tag"])]),_:1},8,["data"]),a.value?(e.openBlock(),e.createBlock(Pt,{key:0,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=g=>a.value=g),item:s.value,"parent-id":r.value},null,8,["modelValue","item","parent-id"])):e.createCommentVNode("",!0)]),_:1}))}}),qt=e.defineComponent({name:"BlocksWidget",__name:"index",setup(c){const{span:t}=De(),{blocks:n,engine:o}=rt(),l=e.ref(void 0),{current:a}=U(),s=e.ref(!1),r=e.computed(()=>l.value?.id?"编辑":"新增"),i=e.computed(()=>`(共 ${n.value.length} 个)`),m=()=>({name:"",title:"",type:"block"}),d=async C=>{const _=C,x=o.project.value;if(!x)return!1;if(C.id)if(!x.existBlockName(_.name,[_.id]))x.updateBlock(_);else return M(`名称【${_.name}】已经存在,请更换名称`),!1;else if(!x.existBlockName(_.name))x.createBlock(_);else return M(`名称【${_.name}】已经存在,请更换名称`),!1;return!0},p=()=>{l.value=m(),s.value=!0},v=C=>{l.value=R.cloneDeep(C),s.value=!0},f=C=>{o.project.value?.removeBlock(C.id)},u=C=>{l.value&&(l.value.name=R.upperFirstCamelCase(C))},g=async C=>{o.project.value?.active(C)},h=async C=>{const _={type:"Schema",id:C.id},x=await o.assets.getBlockMaterial(_),A=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;A&&x&&A.setDragging(x)},w=()=>{const C=o.skeleton?.getWidget("Designer")?.widgetRef?.designer;C&&C.setDragging(null)};return(C,_)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-blocks-widget",title:"区块管理",subtitle:i.value,plus:"",onPlus:p},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),x=>(e.openBlock(),e.createBlock(e.unref(k.ElCol),{key:x.id,span:e.unref(t)},{default:e.withCtx(()=>[e.createVNode(e.unref(me),{name:x.name,title:x.title,active:e.unref(a)?.id===x.id,editable:"",onEdit:A=>v(x),onRemove:A=>f(x),onClick:A=>g(x),draggable:e.unref(a)?.id!==x.id,onDragstart:A=>h(x),onDragend:w},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(k.ElEmpty),{key:0})),e.createVNode(e.unref(b.XDialogForm),{modelValue:s.value,"onUpdate:modelValue":_[0]||(_[0]=x=>s.value=x),title:r.value,model:l.value,width:"600px",height:"250px","form-props":{tooltipMessage:!1},"submit-method":d},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"名称",required:"",tip:"名称为英文驼峰格式",rules:{message:"名称格式错误",pattern:e.unref(Z)},onChange:u},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"title",label:"标题",required:""})]),_:1},8,["modelValue","title","model"])]),_:1},8,["subtitle"]))}}),Ht={class:"v-components-widget__search"},Gt={key:0,class:"v-components-widget__result"},Kt={class:"v-components-widget__list"},Qt=e.defineComponent({name:"ComponentsWidget",__name:"index",setup(c){const{span:t,engine:n}=De(),{tabs:o,currentTab:l,currentGroup:a,model:s,searchKey:r,searchResult:i}=st(),m=p=>{const v=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;v&&v.setDragging(p)},d=()=>{const p=n.skeleton?.getWidget("Designer")?.widgetRef?.designer;p&&p.setDragging(null)};return(p,v)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-components-widget",title:"组件库",body:{flex:!0,direction:"column"}},{default:e.withCtx(()=>[e.createElementVNode("div",Ht,[e.createVNode(e.unref(k.ElInput),{modelValue:e.unref(r),"onUpdate:modelValue":v[0]||(v[0]=f=>e.isRef(r)?r.value=f:null),placeholder:"搜索组件",clearable:"",size:"small"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconSearch))]),_:1},8,["modelValue"])]),e.unref(r)?(e.openBlock(),e.createElementBlock("div",Gt,[e.createVNode(e.unref(k.ElRow),{wrap:"wrap",gutter:5},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),f=>(e.openBlock(),e.createBlock(e.unref(k.ElCol),{span:e.unref(t),key:f.name},{default:e.withCtx(()=>[e.createVNode(e.unref(me),{name:f.name,title:f.label||f.name,draggable:"",onDragstart:u=>m(f),onDragend:d},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:1}),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0}))])):(e.openBlock(),e.createBlock(e.unref(b.XTabs),{key:1,items:e.unref(o),modelValue:e.unref(l),"onUpdate:modelValue":v[2]||(v[2]=f=>e.isRef(l)?l.value=f:null)},{default:e.withCtx(()=>[e.createElementVNode("div",Kt,[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(k.ElCollapse),{key:0,modelValue:e.unref(s)[e.unref(l)],"onUpdate:modelValue":v[1]||(v[1]=f=>e.unref(s)[e.unref(l)]=f)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).children,f=>(e.openBlock(),e.createBlock(e.unref(k.ElCollapseItem),{key:f.name,name:f.name,title:`${f.label} (${f.count})`},{default:e.withCtx(()=>[f.components?(e.openBlock(),e.createBlock(e.unref(k.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(k.ElCol),{span:e.unref(t),key:u.name},{default:e.withCtx(()=>[e.createVNode(e.unref(me),{name:u.name,title:u.label||u.name,draggable:"",onDragstart:g=>m(u),onDragend:d},null,8,["name","title","onDragstart"])]),_:2},1032,["span"]))),128))]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1032,["name","title"]))),128))]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)])]),_:1},8,["items","modelValue"]))]),_:1}))}}),Yt=e.defineComponent({name:"OutlineWidget",__name:"index",setup(c){const{engine:t,designer:n,selected:o}=ee(),{current:l}=U(),a=e.ref([]),s=(S,j)=>{if(j==="slot")return[];if(V.isBlock(S))return S.locked?["unlock"]:["lock"];const B=S.parent;return B&&(B.locked||B.invisible)?[]:l.value?.locked?[]:S.locked?["unlock"]:S.invisible?["visible"]:["lock","invisible","copy","remove"]},r=(S,j)=>{const B={};if(!S.some(D=>D.slot))return i(S);for(const D of S)if(D.slot){const F=D.slot.name;B[F]||(B[F]=[]),B[F].push(D)}const G=[];for(const[D,F]of Object.entries(B))G.push({id:`${j.id}-${D}`,label:`#${D}`,type:"slot",model:j,disabled:!0,children:i(F)});return G},i=S=>{const j=[];return S.forEach(B=>{const O={id:B.id,label:B.name,type:B.id,model:B};Array.isArray(B.children)&&(O.children=r(B.children,B)),j.push(O)}),j},m=()=>{if(!l.value)return[];const{id:S,name:j,nodes:B}=l.value;return[{id:S,label:j,type:S,model:l.value,children:i(B)}]},d=async()=>{a.value=m(),o.value?.model&&(await e.nextTick(),n.value?.setSelected(o.value.model))},p=e.computed(()=>o.value?.model.id),v=S=>{const j=S.data;if(j.type==="slot"||V.isBlock(j.model)||j.model.locked||j.model.name==="template")return!1;const B=t.assets.componentMap.get(j.model.name);return B?(n.value?.setDragging(B),!0):!1},f=async(S,j,B)=>{const O=j.data,D={prev:"top",next:"bottom",inner:"inner"}[B];let F=!1;if(V.isBlock(O.model))F=B==="inner",n.value?.setDropping(F?O.model:null,"inner");else{const N=O.model;F=!!await n.value?.allowDrop(N,D),n.value?.setDropping(F?N:null,"inner")}return F},u=S=>{const j=S?.model;if(!j||j.invisible||S.type==="slot"){n.value?.setSelected(null),n.value?.setHover(null);return}n.value?.setSelected(j),n.value?.setHover(null)},g=async(S,j,B)=>{const O=S.data,G=j.data;if(V.isBlock(G.model)){n.value?.setDropping(null),n.value?.setDragging(null);return}const D=G.model,F={before:"left",after:"right"}[B]||"inner";if(!await n.value?.allowDrop(D,F)){n.value?.setDropping(null),d(),k.ElMessage.warning({message:`${O.model.name}不能放置到该位置`}),n.value?.setDragging(null);return}const ae=await n.value?.getDropSlot(B==="inner"?D:D.parent);if(ae!==null){const Ve=O.model;Ve.slot=ae,l.value?.move(Ve,D,F)}else d();n.value?.setDropping(null),n.value?.setDragging(null),t.simulator.refresh()},h=S=>{if(S.type==="slot"){n.value?.setHover(null);return}V.isBlock(S.model)?n.value?.setHover(S.model):(n.value?.setHover(S.model),S.model.invisible&&n.value?.setHover(null),S.model.name==="slot"&&n.value?.setHover(null))},w=()=>{n.value?.setHover(null)},C=S=>{const j=S.data;j.dragging=!0;const B=t.assets.componentMap.get(j.model.name);B&&n.value?.setDragging(B)},_=async S=>{const j=S.data;j.dragging=!1},x=(S,j)=>{S&&((S.id===j.id||!V.isBlock(S)&&j.isChild(S))&&n.value?.setSelected(null),n.value?.setHover(null))},A=S=>{const{name:j,modelValue:B}=S,O=o.value?.model;switch(j){case"lock":x(O,B),B.lock();break;case"unlock":x(O,B),B.unlock();break;case"invisible":x(O,B),B.setVisible(!1);break;case"visible":B.setVisible(!0);break;case"copy":const G=l.value?.cloneNode(B);G&&n.value?.setSelected(G);break;case"remove":x(O,B),l.value?.removeNode(B);break}};return e.watch(t.changed,d,{immediate:!0}),(S,j)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-outline-widget",title:"大纲树"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(k.ElTree),{key:e.unref(t).changed.value,data:a.value,"node-key":"id","default-expand-all":"",draggable:"","empty-text":"请新建或打开文件","current-node-key":p.value,"highlight-current":!0,"expand-on-click-node":!1,"allow-drop":f,"allow-drag":v,onCurrentChange:u,onNodeDrop:g,onNodeDragStart:C,onNodeDragEnd:_},{default:e.withCtx(({data:B,node:O})=>[e.createVNode(e.unref(W),{class:e.normalizeClass(["v-outline-widget__item",{"is-locked":B.model.locked,"is-invisible":B.model.invisible,"is-dragging":B.dragging,"is-slot":B.type==="slot"}]),active:!B.model.invisible&&O.isCurrent&&B.type!=="slot",grow:"",small:"",background:"",hover:"","model-value":B.model,icon:B.model.locked?e.unref(y.VtjIconLock):B.model.invisible?e.unref(y.VtjIconInvisible):void 0,title:B.label,subtitle:B.type,actions:s(B.model,B.type),onAction:A,onMouseenter:G=>h(B),onMouseleave:w},null,8,["class","active","model-value","icon","title","subtitle","actions","onMouseenter"])]),_:1},8,["data","current-node-key"]))]),_:1}))}}),Zt=e.defineComponent({name:"HistoryWidget",__name:"index",setup(c){const{history:t,load:n,total:o}=Ie(),l=e.computed(()=>`(共 ${o.value} 条)`),a=r=>{r.name==="remove"&&t.value?.remove(r.modelValue.id)},s=async()=>{await re("确定要清空历史记录吗?")&&t.value?.clear()};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-history-widget",title:"历史记录",subtitle:l.value,remove:!!e.unref(o),onRemove:s},{default:e.withCtx(()=>[e.unref(o)===0?(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.unref(t)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(t).items,(m,d)=>(e.openBlock(),e.createBlock(e.unref(W),{index:d+1,title:m.label,"model-value":m,active:d==e.unref(t).index,small:"",background:"",actions:["remove"],onAction:a,onClick:p=>e.unref(n)(m.id)},null,8,["index","title","model-value","active","onClick"]))),256)):e.createCommentVNode("",!0)]),_:1},8,["subtitle","remove"]))}}),en=e.defineComponent({__name:"base-info",setup(c){const t=Ne.map(n=>({label:n,value:n.toLowerCase()}));return(n,o)=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(b.XField),{name:"method",label:"请求类型",required:"",editor:"radio",options:e.unref(t)},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"接口名称",required:"",rules:{pattern:e.unref(Z),message:"名称格式不正确"}},null,8,["rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"url",label:"接口URL",required:""})]))}}),X=e.defineAsyncComponent({loader:()=>Promise.resolve().then(()=>require("./Editor-YiL8B0KR.cjs")),loadingComponent:e.defineComponent({render(){return e.h("div","正在拼命加载...")}}),errorComponent:e.defineComponent({render(){return e.h("div","组件加载失败!")}})}),tn=e.defineComponent({__name:"request-settings",setup(c){const t=[{label:"表单",value:"form"},{label:"JSON",value:"json"},{label:"文件",value:"data"}],n=e.inject("currentModel",null);return(o,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(b.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"settings.loading",size:"small",label:"加载提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.failMessage",label:"失败提示",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.validSuccess",label:"校验成功",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.originResponse",label:"原始响应",editor:"switch"}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.injectHeaders",label:"注入请求头",editor:"switch"})]),_:1}),e.createVNode(e.unref(b.XField),{size:"small",name:"settings.type",label:"发送数据类型",editor:"radio",options:t,props:{button:!0}}),e.createVNode(e.unref(b.XField),{size:"small",name:"headers.value",label:"请求头配置",tip:"支持 JSExpression 或 JSFunction"},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{dark:"",height:"260px",modelValue:e.unref(n).headers.value,"onUpdate:modelValue":l[0]||(l[0]=a=>e.unref(n).headers.value=a)},null,8,["modelValue"])]),_:1})]))}}),nn=e.defineComponent({__name:"jsonp-options",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallback",size:"small",label:"jsonpCallback"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.jsonpCallbackFunction",size:"small",label:"jsonpCallbackFunction"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.timeout",size:"small",label:"timeout",editor:"number"}),e.createVNode(e.unref(b.XField),{name:"jsonpOptions.crossorigin",size:"small",label:"crossorigin",editor:"switch"})]))}}),on=e.createElementVNode("span",null,"模拟数据模板",-1),ln=e.defineComponent({__name:"mock-template",setup(c){const t=e.inject("currentModel",null),{project:n}=se(),o=e.computed(()=>n.value?.config||{}),l=()=>{window.open("https://vtj.pro/help/mock.html")};return(a,s)=>(e.openBlock(),e.createElementBlock("div",null,[o.value.mock?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElAlert),{key:0,type:"warning",title:"需要在项目配置中开启模拟数据",closable:!1,style:{"margin-bottom":"20px"}})),e.createVNode(e.unref(b.XField),{size:"small",name:"mock",label:"开启模拟数据",disabled:!o.value.mock,editor:"switch"},null,8,["disabled"]),e.createVNode(e.unref(b.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[on,e.createVNode(e.unref(b.XAction),{icon:e.unref(y.VtjIconHelp),mode:"text",label:"帮助",onClick:l},null,8,["icon"])]),_:1}),e.createVNode(e.unref(b.XField),{size:"small",name:"mockTemplate.value",label:" "},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{dark:"",height:o.value.mock?"330px":"280px",lang:"typescript",disabled:!o.value.mock,readonly:!o.value.mock,modelValue:e.unref(t).mockTemplate.value,"onUpdate:modelValue":s[0]||(s[0]=r=>e.unref(t).mockTemplate.value=r)},null,8,["height","disabled","readonly","modelValue"])]),_:1})]))}}),rn={key:0},an=e.defineComponent({__name:"form",props:{model:{},project:{}},setup(c){const t=c,n=e.computed(()=>t.model?"编辑API":"新增API"),o=e.ref("base"),l=e.ref(),a=e.ref(),s=e.ref(t.model||{}),r=e.ref(!1),i=e.ref(""),m=[{label:"基础信息",value:"base"},{label:"请求配置",value:"settings"},{label:"模拟数据",value:"mock"}];e.provide("currentModel",s);const d=e.computed(()=>s.value?.method==="jsonp");e.watch(()=>t.model,g=>{s.value=Object.assign({},g||{}),o.value="base"},{immediate:!0}),e.watch(o,async()=>{a.value?.formRef.validate(async g=>{g||(await e.nextTick(),o.value="base")})});const p=()=>{l.value?.cancel()},v=()=>{a.value?.submit()},f=async g=>t.project?.existApiName(s.value.name,t.model?[s.value.id]:[])?(M(`API名称 [ ${s.value.name} ] 已存在`),!1):s.value.headers&&!J(s.value.headers,window)||s.value.mockTemplate&&!J(s.value.mockTemplate,window)?!1:(t.project?.setApi(s.value),l.value?.close(),!0),u=()=>{if(s.value.mockTemplate){const g=P.parseExpression(s.value.mockTemplate,{},!0),{url:h,method:w}=s.value,C=lt.mock(g({url:h,type:w}));i.value=JSON.stringify(C,null,2),r.value=!0}};return(g,h)=>(e.openBlock(),e.createBlock(e.unref(b.XDialog),{ref_key:"dialogRef",ref:l,title:n.value,width:"1000px",height:"600px"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{width:"100px",shrink:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XTabs),{modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=w=>o.value=w),items:m,"tab-position":"left",border:"",fit:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XPanel),{header:null,border:!1,overflow:"auto",grow:"",shrink:!0,fit:""},{footer:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{justify:"space-between"},{default:e.withCtx(()=>[e.createElementVNode("div",null,[o.value==="mock"?(e.openBlock(),e.createBlock(e.unref(k.ElButton),{key:0,disabled:!t.project?.config?.mock,type:"warning",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(" 预览 ")]),_:1},8,["disabled"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[e.createVNode(e.unref(k.ElButton),{onClick:p},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(e.unref(k.ElButton),{type:"primary",onClick:v},{default:e.withCtx(()=>[e.createTextVNode("保存")]),_:1})])]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XForm),{ref_key:"formRef",ref:a,footer:!1,labelPosition:"top",tooltipMessage:!1,model:s.value,submitMethod:f},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(en,null,null,512),[[e.vShow,o.value==="base"]]),o.value==="settings"?(e.openBlock(),e.createElementBlock("div",rn,[d.value?(e.openBlock(),e.createBlock(nn,{key:0})):(e.openBlock(),e.createBlock(tn,{key:1}))])):e.createCommentVNode("",!0),o.value==="mock"?(e.openBlock(),e.createBlock(ln,{key:1})):e.createCommentVNode("",!0)]),_:1},8,["model"])]),_:1})]),_:1}),r.value?(e.openBlock(),e.createBlock(e.unref(k.ElDrawer),{key:0,class:"v-drawer",modelValue:r.value,"onUpdate:modelValue":h[1]||(h[1]=w=>r.value=w),title:"模拟数据结果",direction:"btt","append-to-body":"",size:"80%"},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{"model-value":i.value,border:"",dark:"",height:"100%",lang:"json"},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]),_:1},8,["title"]))}}),sn=e.defineComponent({name:"ApisWidget",__name:"index",setup(c){const t=e.ref(!1),n=e.ref(null),o=e.ref(!1),l=e.computed(()=>a.value?.apis||[]),{project:a}=se(),s=()=>({id:"",method:"get",name:"",label:"",url:"",settings:{loading:!0,failMessage:!0,validSuccess:!0,originResponse:!1,injectHeaders:!1,type:"form"},headers:{type:"JSExpression",value:"({})"},jsonpOptions:{},mock:!1,mockTemplate:{type:"JSFunction",value:`(req) => {
8
+ return {
9
+ code: 0,
10
+ data: null
11
+ }
12
+ }`}}),r=()=>{t.value=!0,o.value=!1,n.value=s()},i={get:"success",post:"primary",put:"warning",delete:"danger",patch:"warning",jsonp:"info"},m=p=>{p.name==="edit"&&d(p.modelValue),p.name==="remove"&&a.value?.removeApi(p.modelValue.name)},d=p=>{o.value=!0,n.value=R.cloneDeep(p),t.value=!0};return(p,v)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-apis-widget",title:"API管理",plus:"",onPlus:r},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,f=>(e.openBlock(),e.createBlock(e.unref(W),{key:f.id,small:"",title:f.name,subtitle:f.label,"model-value":f,tag:f.method?.toUpperCase(),"tag-type":i[f.method||"get"],background:"",actions:["edit","remove"],onClick:u=>d(f),onAction:m},null,8,["title","subtitle","model-value","tag","tag-type","onClick"]))),128)),l.value.length===0?(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50})):e.createCommentVNode("",!0),e.createVNode(an,{modelValue:t.value,"onUpdate:modelValue":v[0]||(v[0]=f=>t.value=f),model:n.value,project:e.unref(a)},null,8,["modelValue","model","project"])]),_:1}))}}),cn=e.defineComponent({name:"DepsWidget",__name:"index",setup(c){const{dependencies:t,engine:n}=je(),o=e.ref(!1),l=e.ref(!1),a=e.ref({}),s=e.computed(()=>l.value?"查看依赖":a.value?"编辑依赖":"新增依赖"),r=u=>u.required||u.official?[]:["edit","remove"],i=u=>u.official&&!u.required,m=async u=>(u.urls=u.urls.split(`
13
+ `),n.project.value?.setDeps(u),!0),d=u=>{n.project.value?.setDeps(u)},p=()=>{l.value=!1,o.value=!0,a.value=null},v=u=>{l.value=!0,a.value={...u,urls:u.urls.join(`
9
14
  `)},o.value=!0},f=(u,g)=>{g.name==="edit"&&(a.value={...u,urls:u.urls.join(`
10
- `)},l.value=!1,o.value=!0),g.name==="remove"&&n.project.value?.removeDeps(u)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-deps-widget",title:"依赖管理",plus:"",onPlus:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:h.package,title:h.package,subtitle:h.version,actions:r(h),background:"",switch:i(h),modelValue:h.enabled,"onUpdate:modelValue":C=>h.enabled=C,onSwitch:C=>m(h),onClick:C=>v(h),onAction:C=>f(h,C)},null,8,["title","subtitle","actions","switch","modelValue","onUpdate:modelValue","onSwitch","onClick","onAction"]))),128)),e.createVNode(e.unref(b.XDialogForm),{modelValue:o.value,"onUpdate:modelValue":g[0]||(g[0]=h=>o.value=h),width:"600px",height:"500px",title:s.value,model:a.value,submitMethod:d,formProps:{disabled:l.value,tooltipMessage:!1}},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"package",label:"包名",required:"",disabled:!!a.value},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"version",label:"版本",required:""}),e.createVNode(e.unref(b.XField),{name:"library",label:"导出名称",required:""}),e.createVNode(e.unref(b.XField),{name:"urls",label:"资源文件",editor:"textarea",props:{rows:3},tip:"多个资源可以换行输入",required:""}),e.createVNode(e.unref(b.XField),{name:"assetsUrl",label:"物料URL"}),e.createVNode(e.unref(b.XField),{name:"assetsLibrary",label:"物料名称"})]),_:1},8,["modelValue","title","model","formProps"])]),_:1}))}}),Qt=e.defineComponent({__name:"actions",props:{position:{},model:{},path:{default:()=>[]}},emits:["action"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>n.model.name),a=e.computed(()=>!w.isBlock(n.model)&&!n.model.locked),s=e.computed(()=>n.path.map(m=>({command:m,label:m.name,onMouseenter:()=>{o("action",{type:"hover",model:m})}}))),r=[{name:"prev",icon:k.VtjIconArrowUp,title:"向前移动"},{name:"next",icon:k.VtjIconArrowDown,title:"向后移动"},{name:"copy",icon:k.VtjIconCopy,title:"复制"},{name:"remove",icon:k.VtjIconRemove,title:"删除"}],i=m=>{o("action",{type:"selected",model:m.command})},d=async m=>{m.name==="remove"?await re("确定删除?")&&o("action",{type:m.name,model:n.model}):o("action",{type:m.name,model:n.model})};return(m,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-actions",[`is-${n.position}`]])},[e.createVNode(e.unref(b.XAction),{mode:"icon",size:"small",icon:e.unref(k.VtjIconLayers),label:l.value,menus:s.value,background:"none",onCommand:i},null,8,["icon","label","menus"]),e.createVNode(e.unref(b.XActionBar),{disabled:!a.value,mode:"icon",size:"small",items:r,background:"none",onClick:d},null,8,["disabled"])],2))}}),Yt={key:1,class:"v-designer__placeholder"},en=e.defineComponent({name:"VDesigner",inheritAttrs:!1,__name:"index",setup(c,{expose:t}){const n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{dependencies:s,engine:r,apis:i}=Ie(),{current:d,isEmpty:m}=W(),p=e.computed(()=>r.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc"),{designer:v,hover:f,dropping:u,selected:g}=ut(o,s,i),h=C=>{const _=C.type,V=C.model;if(d.value)switch(_){case"remove":d.value.removeNode(V),v.value?.setSelected(null);break;case"copy":const S=d.value.cloneNode(V);v.value?.setSelected(S);break;case"prev":d.value.movePrev(V),v.value?.setSelected(V);break;case"next":d.value.moveNext(V),v.value?.setSelected(V);break;case"hover":v.value?.setHover(V);break;case"selected":v.value?.setSelected(V);break}};return t({designer:v,mode:p}),(C,_)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"v-designer"},[e.createVNode(e.unref(Ce),{mode:p.value,width:e.unref(l),height:e.unref(a)},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref_key:"iframe",ref:o,frameborder:"0"},null,512),e.unref(u)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["v-designer__dropping","is-inner"]),style:e.normalizeStyle(e.unref(u).style)},null,4)):e.createCommentVNode("",!0),e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"v-designer__hover",style:e.normalizeStyle(e.unref(f).style)},[e.createElementVNode("span",{class:e.normalizeClass(`is-${e.unref(f).position}`)},[e.createTextVNode(e.toDisplayString(e.unref(f).model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(f).model.id),1)],2)],4)):e.createCommentVNode("",!0),e.unref(g)?(e.openBlock(),e.createElementBlock("div",{key:2,class:"v-designer__selected",style:e.normalizeStyle(e.unref(g).style)},[e.createVNode(Qt,{position:e.unref(g).position,model:e.unref(g).model,path:e.unref(g).path,onAction:h},null,8,["position","model","path"])],4)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"]),e.unref(d)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,description:"请新建或打开文件"})),e.unref(d)&&e.unref(m)?(e.openBlock(),e.createElementBlock("div",Yt," 您可以拖拽组件放置到这里 ")):e.createCommentVNode("",!0)],512))}}),ce=e.defineComponent({__name:"group",props:{context:{},current:{},title:{},nameLabel:{},valueLabel:{},createEmpty:{},list:{},remove:{},submit:{},itemTitle:{type:Function,default:c=>c.name}},setup(c){const t=c,n=e.ref(),o=e.ref(),l=e.ref(!1),a=e.ref(t.createEmpty()),s=e.ref(!1),r=e.computed(()=>s.value?`编辑${t.title}`:`新增${t.title}`),i=()=>{s.value=!1,a.value=t.createEmpty(),l.value=!0},d=(u,g)=>{switch(g.name){case"edit":p(u);break;case"remove":t.remove(u);break}},m=u=>{a.value.value=u},p=u=>{s.value=!0,a.value={...u},l.value=!0},v=async u=>t.submit(u,s.value),f=()=>{o.value?.itemRef.validate()};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(I),{title:t.title,class:"v-sub-panel",size:"small",fit:!1,plus:"",onPlus:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,h=>(e.openBlock(),e.createBlock(e.unref(O),{title:t.itemTitle(h),border:"",actions:["edit","remove"],onAction:C=>d(h,C),onClick:C=>p(h)},null,8,["title","onAction","onClick"]))),256)),u.list.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":40})),e.createVNode(e.unref(pe),{modelValue:l.value,"onUpdate:modelValue":g[1]||(g[1]=h=>l.value=h),title:r.value,"submit-method":v,model:a.value,block:u.current,context:u.context,onPick:m},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"fields",e.normalizeProps(e.guardReactiveProps({model:a.value,isEdit:s.value,nameLabel:u.nameLabel,valueLabel:u.valueLabel})),()=>[e.createVNode(e.unref(b.XField),{name:"name",label:u.nameLabel,required:"",disabled:s.value},null,8,["label","disabled"]),e.createVNode(e.unref(b.XField),{ref_key:"codeFieldRef",ref:o,name:"value",label:u.valueLabel,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,dark:"",height:"350px",modelValue:a.value.value,"onUpdate:modelValue":g[0]||(g[0]=h=>a.value.value=h),onBlur:f},null,8,["modelValue"])]),_:1},8,["label"])])]),_:3},8,["modelValue","title","model","block","context"])]),_:3},8,["title"]))}}),tn=e.defineComponent({__name:"state",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.state||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:""}),l=s=>t.current?.removeState(s.name),a=async(s,r)=>{const{name:i,value:d}=s;if(!r&&t.current?.state[i])return L(`名称 ${i} 已存在,请更换!`),!1;const m={type:"JSExpression",value:d};return X(m,t.context,!0)?(t.current?.setState(i,m),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"状态数据",current:t.current,context:t.context,list:n.value,nameLabel:"状态数据名称",valueLabel:"状态初始值 [ JSExpression ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),nn=e.defineComponent({__name:"computed",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.computed||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("computed",s.name),a=async(s,r)=>{const{name:i,value:d}=s;if(!r&&t.current?.computed[i])return L(`名称 ${i} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return X(m,t.context,!0)?(t.current?.setFunction("computed",i,m),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"计算属性",current:t.current,context:t.context,list:n.value,nameLabel:"计算属性名称",valueLabel:"计算函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),on=e.defineComponent({__name:"methods",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.methods||{}).map(([r,i])=>({name:r,value:D.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("methods",s.name),a=async(s,r)=>{const{name:i,value:d}=s;if(!r&&t.current?.methods[i])return L(`名称 ${i} 已存在,请更换!`),!1;const m={type:"JSFunction",value:d};return X(m,t.context,!0)?(t.current?.setFunction("methods",i,m),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ce,{title:"组件方法",current:t.current,context:t.context,list:n.value,nameLabel:"方法名称",valueLabel:"方法函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),ln=e.defineComponent({__name:"lifeCycles",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>D.LIFE_CYCLES_LIST.map(r=>({label:r,value:r}))),o=e.computed(()=>Object.entries(t.current?.lifeCycles||{}).map(([i,d])=>({name:i,value:D.JSCodeToString(d)}))),l=()=>({name:"",value:"() => { }"}),a=r=>t.current?.removeFunction("lifeCycles",r.name),s=async(r,i)=>{const{name:d,value:m}=r;if(!i&&t.current?.lifeCycles[d])return L(`名称 ${d} 已存在,请更换!`),!1;const p={type:"JSFunction",value:m};return X(p,t.context,!0)?(t.current?.setFunction("lifeCycles",d,p),!0):!1};return(r,i)=>(e.openBlock(),e.createBlock(ce,{title:"生命周期",current:t.current,context:t.context,list:o.value,nameLabel:"名称",valueLabel:"函数 [ JSFunction ]",createEmpty:l,remove:a,submit:s},{fields:e.withCtx(({model:d,nameLabel:m,isEdit:p,valueLabel:v})=>[e.createVNode(e.unref(b.XField),{name:"name",label:m,editor:"select",options:n.value,required:"",disabled:p},null,8,["label","options","disabled"]),e.createVNode(e.unref(b.XField),{name:"value",label:v,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref:"editorRef",dark:"",height:"350px",modelValue:d.value,"onUpdate:modelValue":f=>d.value=f},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),rn=e.defineComponent({__name:"watch",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>(t.current?.watch||[]).map(r=>({...r,source:D.JSCodeToString(r.source),handler:D.JSCodeToString(r.handler)}))),o=()=>({source:"() => { }",deep:!1,immediate:!1,handler:"() => { }"}),l=r=>r.source,a=r=>t.current?.removeWatch(r),s=async(r,i)=>{const d={type:"JSFunction",value:r.source},m={type:"JSFunction",value:r.handler};if(!X(d,t.context,!0)||!X(m,t.context,!0))return!1;const p={...r,source:d,handler:m};return t.current?.setWatch(p),!0};return(r,i)=>(e.openBlock(),e.createBlock(ce,{title:"侦听器",current:t.current,context:t.context,list:n.value,nameLabel:"侦听源 [ JSFunction ]",valueLabel:"处理函数 [ JSFunction ]",createEmpty:o,remove:a,submit:s,itemTitle:l,grow:""},{fields:e.withCtx(({model:d,nameLabel:m,valueLabel:p})=>[e.createVNode(e.unref(b.XField),{name:"source",label:m,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{dark:"",height:"100px",modelValue:d.source,"onUpdate:modelValue":v=>d.source=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"]),e.createVNode(e.unref(b.XField),{name:"deep",modelValue:d.deep,"onUpdate:modelValue":v=>d.deep=v,label:"深度监听",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"immediate",modelValue:d.immediate,"onUpdate:modelValue":v=>d.immediate=v,label:"立即执行",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"handler",label:p,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{dark:"",height:"130px",modelValue:d.handler,"onUpdate:modelValue":v=>d.handler=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),an=e.defineComponent({__name:"index",setup(c){const{current:t,context:n}=W();return(o,l)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-scripts-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(tn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(nn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(on,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(ln,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(rn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"])]),_:1}))}}),ve=e.defineComponent({__name:"setters",props:{context:{},current:{},title:{},items:{},node:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=(s,r)=>{o("change",s,r)},a=s=>{o("remove",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:n.title,class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-properties-widget__form",size:"small","label-width":"90px",onKeydown:r[0]||(r[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>(e.openBlock(),e.createBlock(e.unref($),e.mergeProps(i,{key:`${i.name}_${n.node.id}`,current:n.current,context:n.context,removable:n.removable,onChange:l,onRemove:a}),null,16,["current","context","removable"]))),128))]),_:1})]),_:1},8,["title"]))}}),sn=e.defineComponent({name:"PropertiesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{node:l,commonProps:a,change:s,componentProps:r,customProps:i,addCustom:d,removeCustom:m,isExist:p}=ft(o),v=e.ref(!1),f=e.ref(),u=()=>{v.value=!0,f.value={name:""}},g=async C=>{const _=Object.keys(l.value?.props||{});return!p(C.name)&&!_.includes(C.name)?(d(C.name),!0):(L("已存在该属性名称"),!1)},h=async C=>{await re("确定删除?")&&m(C)};return(C,_)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-properties-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:0,title:"通用属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(a),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)&&e.unref(r).length?(e.openBlock(),e.createBlock(ve,{key:1,title:"组件属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(r),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:2,title:"自定义属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(i),onChange:e.unref(s),removable:"",plus:"",grow:"",onPlus:u,onRemove:h},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XDialogForm),{modelValue:v.value,"onUpdate:modelValue":_[0]||(_[0]=V=>v.value=V),title:"新增自定义属性",width:"400px",height:"150px","submit-method":g,formProps:{tooltipMessage:!1},model:f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["rules"])]),_:1},8,["modelValue","model"])]),_:1})):e.createCommentVNode("",!0)}}),Te=e.defineComponent({name:"VariableBinder",__name:"variable",props:{context:{},current:{},value:{}},setup(c){const t=c,n=e.ref(),o=e.reactive({type:"JSExpression",value:t.value}),l=a=>{n.value.getEditor().setValue(a),o.value=a};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定变量","unbind-enabled":"",block:t.current,context:t.context,model:o,onPick:l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"value",label:"绑定内容 [ JSExpression ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value=r),dark:"",height:"450px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),Re=e.defineComponent({name:"EventBinder",__name:"event",props:{context:{},current:{},name:{},event:{}},setup(c){const t=c,n=e.ref(),o=()=>({name:t.name,...t.event,modifiers:Object.keys(t.event?.modifiers||{}),handler:{type:"JSFunction",value:t.event?.handler?.value||"() => {}"}}),l=e.reactive(o()),a=Ne.map(r=>({label:r,value:r})),s=r=>{n.value.getEditor().setValue(r),l.handler.value=r};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定事件","unbind-enabled":"",block:t.current,context:t.context,model:l,onPick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"modifiers",label:"事件修饰符",editor:"checkbox",options:e.unref(a)},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"handler.value",label:"事件处理函数 [ JSFunction ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,modelValue:l.handler.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.handler.value=d),dark:"",height:"350px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),cn=e.defineComponent({name:"EventsWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{mouseEventList:l,keyboardEventList:a,componentEventList:s}=vt(o),r=e.ref({name:"",event:void 0}),i=e.ref(!1),d=u=>{r.value=F.cloneDeep(u),i.value=!0},m=async u=>{const g={...u,modifiers:u.modifiers.reduce((C,_)=>(C[_]=!0,C),{})};return X(g.handler,n.value,!0)?((o.value?.model).setEvent(g),!0):!1},p=async u=>{const g=o.value?.model;u.name&&(g.removeEvent(u.name),i.value=!1)},v=async()=>{r.value.name&&await re("确定要删除该事件吗?")&&p(r.value)},f=u=>{const{name:g,modelValue:h}=u;g==="edit"&&d(h),g==="remove"&&p(h)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-events-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{title:"组件事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.unref(s).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50,description:"该组件无自带事件"})),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`component_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:C=>d(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref(I),{title:"鼠标事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`mouse_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:C=>d(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref(I),{title:"键盘事件",class:"v-sub-panel",size:"small",grow:"",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),h=>(e.openBlock(),e.createBlock(e.unref(O),{key:`keyboard_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:C=>d(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),i.value?(e.openBlock(),e.createBlock(e.unref(Re),{key:0,modelValue:i.value,"onUpdate:modelValue":g[0]||(g[0]=h=>i.value=h),context:e.unref(n),current:e.unref(t),name:r.value.name,event:r.value.event,submitMethod:m,onUnbind:v},null,8,["modelValue","context","current","name","event"])):e.createCommentVNode("",!0)]),_:1}))}}),un=e.defineComponent({name:"CssWidget",__name:"index",setup(c){const{current:t}=W(),n=e.ref(),o=e.computed(()=>t.value?.css||""),l=s=>{t.value?.setCss(s)},a=()=>{const r=(n.value?.getEditor()).getValue();l(r),H("保存成功")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-css-widget v-sub-panel",title:"lang:css scoped",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"css",dark:"",onBlur:l},null,8,["model-value"])]),_:1}))}}),dn=e.defineComponent({name:"DirectivesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),{selected:o}=Y(),{vIf:l,vShow:a,vBind:s,vFor:r,vModels:i,onValueChange:d,onForChange:m,onModelChange:p}=bt(o),v=f=>f.arg?typeof f.arg=="string"?f.arg:D.parseExpression(f.arg,{}):"modelValue";return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-directives-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{class:"v-sub-panel",title:"内置指令",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px",onKeydown:u[0]||(u[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"vIf",label:"v-if",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(l).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"vShow",label:"v-show",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(a).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"vBind",label:"v-bind",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(s).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"循环",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px",onKeydown:u[1]||(u[1]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"value",label:"循环数据",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(r).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"item",label:"迭代变量名",setters:{name:"StringSetter",props:{placeholder:"item"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.item,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref($),{name:"index",label:"索引变量名",setters:{name:"StringSetter",props:{placeholder:"index"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.index,onChange:e.unref(m)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"双向绑定",size:"small",fit:!1,grow:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),(g,h)=>(e.openBlock(),e.createBlock(e.unref(I),{card:"",border:"",class:"v-sub-panel",size:"small",title:`v-model: ${v(g)}`,body:{grow:!1},fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"60px",onKeydown:u[2]||(u[2]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:h.toString(),label:"绑定变量",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:g.value,onChange:e.unref(p)},null,8,["name","current","context","value","onChange"])]),_:2},1024)]),_:2},1032,["title"]))),256)),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,description:"当前组件没有双向绑定属性","image-size":50}))]),_:1})]),_:1}))}}),mn=e.defineComponent({name:"DefinedPropsDialog",__name:"props",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义属性":"新增定义属性"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=Object.keys(D.DATA_TYPES).map(s=>({label:s,value:s})),a=async s=>{const r=s.default;return r&&!X(r,t.context,!0)?!1:(t.current.setProp(s),!0)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":a},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"type",label:"数据类型",editor:"checkbox",props:{button:!0,size:"small"},options:e.unref(l),required:""},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"required",label:"必须",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:o.value.default.value,"onUpdate:modelValue":r[0]||(r[0]=i=>o.value.default.value=i),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),pn=e.defineComponent({name:"DefinedEventsDialog",__name:"events",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义事件":"新增定义事件"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeEmit(t.item,!0),t.current.setEmit(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"事件名称",required:"",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),fn=e.defineComponent({name:"DefinedSlotsDialog",__name:"slots",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义插槽":"新增定义插槽"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeSlot(t.item,!0),t.current.setSlot(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"插槽名称",disabled:!!t.item,required:"",rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),vn=e.defineComponent({name:"DefinedInjectsDialog",__name:"injects",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑注入":"新增注入"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=async a=>{const s=a.default;return s&&!X(s,t.context,!0)?!1:(t.current.setInject(a),!0)};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"注入名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"from",label:"来源名称",tip:"默认和注入名称一致"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:o.value.default.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value.default.value=r),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),gn=e.defineComponent({name:"DefinedWidget",__name:"index",setup(c){const{current:t,context:n}=W(),o=e.computed(()=>(t.value?.props||[]).map(j=>typeof j=="string"?{name:j}:j)),l=e.computed(()=>t.value?.emits||[]),a=e.computed(()=>t.value?.slots||[]),s=e.computed(()=>t.value?.inject||[]),r=e.ref(!1),i=e.ref(),d=e.ref(!1),m=e.ref(),p=e.ref(!1),v=e.ref(),f=e.ref(!1),u=e.ref(),g=()=>{i.value=void 0,r.value=!0},h=j=>{const{name:P,modelValue:N}=j;P==="edit"&&C(N),P==="remove"&&t.value?.removeProp(N)},C=j=>{i.value=j,r.value=!0},_=()=>{m.value=void 0,d.value=!0},V=j=>{m.value=j,d.value=!0},S=j=>{const{name:P,modelValue:N}=j;P==="edit"&&V(N),P==="remove"&&t.value?.removeEmit(N)},B=()=>{v.value=void 0,p.value=!0},E=j=>{v.value=j,p.value=!0},x=j=>{const{name:P,modelValue:N}=j;P==="edit"&&E(N),P==="remove"&&t.value?.removeSlot(N)},J=()=>{u.value=void 0,f.value=!0},Z=j=>{u.value=j,f.value=!0},ne=j=>{const{name:P,modelValue:N}=j;P==="edit"&&Z(N),P==="remove"&&t.value?.removeInject(N)};return(j,P)=>e.unref(t)&&e.unref(n)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-defined-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义属性",size:"small",plus:"",fit:!1,onPlus:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N.name,border:"",actions:["edit","remove"],onClick:ae=>C(N),onAction:h},null,8,["model-value","title","onClick"]))),256)),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),r.value?(e.openBlock(),e.createBlock(mn,{key:1,current:e.unref(t),context:e.unref(n),modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=N=>r.value=N),item:i.value},null,8,["current","context","modelValue","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义事件",size:"small",plus:"",fit:!1,onPlus:_},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N,border:"",actions:["remove"],onClick:ae=>V(N),onAction:S},null,8,["model-value","title","onClick"]))),256)),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),d.value?(e.openBlock(),e.createBlock(pn,{key:1,modelValue:d.value,"onUpdate:modelValue":P[1]||(P[1]=N=>d.value=N),current:e.unref(t),context:e.unref(n),item:m.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义插槽",size:"small",plus:"",fit:!1,onPlus:B},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N,border:"",actions:["remove"],onClick:ae=>E(N),onAction:x},null,8,["model-value","title","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),p.value?(e.openBlock(),e.createBlock(fn,{key:1,modelValue:p.value,"onUpdate:modelValue":P[2]||(P[2]=N=>p.value=N),current:e.unref(t),context:e.unref(n),item:v.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"注入",size:"small",plus:"",fit:!1,grow:"",onPlus:J},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,N=>(e.openBlock(),e.createBlock(e.unref(O),{"model-value":N,title:N.name,border:"",actions:["remove"],onClick:ae=>Z(N),onAction:ne},null,8,["model-value","title","onClick"]))),256)),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50})),f.value?(e.openBlock(),e.createBlock(vn,{key:1,modelValue:f.value,"onUpdate:modelValue":P[3]||(P[3]=N=>f.value=N),current:e.unref(t),context:e.unref(n),item:u.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)}}),hn=e.defineComponent({name:"DataSourceDialogForm",__name:"form",props:{context:{},current:{},item:{}},setup(c){const t=c,{apis:n}=kt(),o=()=>({type:"api",ref:"",name:"",label:"",transform:{type:"JSFunction",value:`(res) => {
15
+ `)},l.value=!1,o.value=!0),g.name==="remove"&&n.project.value?.removeDeps(u)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-deps-widget",title:"依赖管理",plus:"",onPlus:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t),h=>(e.openBlock(),e.createBlock(e.unref(W),{key:h.package,title:h.package,subtitle:h.version,actions:r(h),background:"",switch:i(h),modelValue:h.enabled,"onUpdate:modelValue":w=>h.enabled=w,onSwitch:w=>d(h),onClick:w=>v(h),onAction:w=>f(h,w)},null,8,["title","subtitle","actions","switch","modelValue","onUpdate:modelValue","onSwitch","onClick","onAction"]))),128)),e.createVNode(e.unref(b.XDialogForm),{modelValue:o.value,"onUpdate:modelValue":g[0]||(g[0]=h=>o.value=h),width:"600px",height:"500px",title:s.value,model:a.value,submitMethod:m,formProps:{disabled:l.value,tooltipMessage:!1}},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"package",label:"包名",required:"",disabled:!!a.value},null,8,["disabled"]),e.createVNode(e.unref(b.XField),{name:"version",label:"版本",required:""}),e.createVNode(e.unref(b.XField),{name:"library",label:"导出名称",required:""}),e.createVNode(e.unref(b.XField),{name:"urls",label:"资源文件",editor:"textarea",props:{rows:3},tip:"多个资源可以换行输入",required:""}),e.createVNode(e.unref(b.XField),{name:"assetsUrl",label:"物料URL"}),e.createVNode(e.unref(b.XField),{name:"assetsLibrary",label:"物料名称"})]),_:1},8,["modelValue","title","model","formProps"])]),_:1}))}}),un=e.defineComponent({__name:"actions",props:{position:{},model:{},path:{default:()=>[]}},emits:["action"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>n.model.name),a=e.computed(()=>!V.isBlock(n.model)&&!n.model.locked),s=e.computed(()=>n.path.map(d=>({command:d,label:d.name,onMouseenter:()=>{o("action",{type:"hover",model:d})}}))),r=[{name:"prev",icon:y.VtjIconArrowUp,title:"向前移动"},{name:"next",icon:y.VtjIconArrowDown,title:"向后移动"},{name:"copy",icon:y.VtjIconCopy,title:"复制"},{name:"remove",icon:y.VtjIconRemove,title:"删除"}],i=d=>{o("action",{type:"selected",model:d.command})},m=async d=>{d.name==="remove"?await re("确定删除?")&&o("action",{type:d.name,model:n.model}):o("action",{type:d.name,model:n.model})};return(d,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-actions",[`is-${n.position}`]])},[e.createVNode(e.unref(b.XAction),{mode:"icon",size:"small",icon:e.unref(y.VtjIconLayers),label:l.value,menus:s.value,background:"none",onCommand:i},null,8,["icon","label","menus"]),e.createVNode(e.unref(b.XActionBar),{disabled:!a.value,mode:"icon",size:"small",items:r,background:"none",onClick:m},null,8,["disabled"])],2))}}),dn={key:1,class:"v-designer__placeholder"},mn=e.defineComponent({name:"VDesigner",inheritAttrs:!1,__name:"index",setup(c,{expose:t}){const n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{dependencies:s,engine:r,apis:i}=je(),{current:m,isEmpty:d}=U(),p=e.computed(()=>r.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc"),v=e.computed(()=>r.project.value?.config||{}),{designer:f,hover:u,dropping:g,selected:h}=it(o,s,i,v),w=C=>{const _=C.type,x=C.model;if(m.value)switch(_){case"remove":m.value.removeNode(x),f.value?.setSelected(null);break;case"copy":const A=m.value.cloneNode(x);f.value?.setSelected(A);break;case"prev":m.value.movePrev(x),f.value?.setSelected(x);break;case"next":m.value.moveNext(x),f.value?.setSelected(x);break;case"hover":f.value?.setHover(x);break;case"selected":f.value?.setSelected(x);break}};return t({designer:f,mode:p}),(C,_)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"v-designer"},[e.createVNode(e.unref(ye),{mode:p.value,width:e.unref(l),height:e.unref(a)},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref_key:"iframe",ref:o,frameborder:"0"},null,512),e.unref(g)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["v-designer__dropping","is-inner"]),style:e.normalizeStyle(e.unref(g).style)},null,4)):e.createCommentVNode("",!0),e.unref(u)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"v-designer__hover",style:e.normalizeStyle(e.unref(u).style)},[e.createElementVNode("span",{class:e.normalizeClass(`is-${e.unref(u).position}`)},[e.createTextVNode(e.toDisplayString(e.unref(u).model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(u).model.id),1)],2)],4)):e.createCommentVNode("",!0),e.unref(h)?(e.openBlock(),e.createElementBlock("div",{key:2,class:"v-designer__selected",style:e.normalizeStyle(e.unref(h).style)},[e.createVNode(un,{position:e.unref(h).position,model:e.unref(h).model,path:e.unref(h).path,onAction:w},null,8,["position","model","path"])],4)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"]),e.unref(m)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,description:"请新建或打开文件"})),e.unref(m)&&e.unref(d)?(e.openBlock(),e.createElementBlock("div",dn," 您可以拖拽组件放置到这里 ")):e.createCommentVNode("",!0)],512))}}),ue=e.defineComponent({__name:"group",props:{context:{},current:{},title:{},nameLabel:{},valueLabel:{},createEmpty:{},list:{},remove:{},submit:{},itemTitle:{type:Function,default:c=>c.name}},setup(c){const t=c,n=e.ref(),o=e.ref(),l=e.ref(!1),a=e.ref(t.createEmpty()),s=e.ref(!1),r=e.computed(()=>s.value?`编辑${t.title}`:`新增${t.title}`),i=()=>{s.value=!1,a.value=t.createEmpty(),l.value=!0},m=(u,g)=>{switch(g.name){case"edit":p(u);break;case"remove":t.remove(u);break}},d=u=>{a.value.value=u},p=u=>{s.value=!0,a.value={...u},l.value=!0},v=async u=>t.submit(u,s.value),f=()=>{o.value?.itemRef.validate()};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(I),{title:t.title,class:"v-sub-panel",size:"small",fit:!1,plus:"",onPlus:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.list,h=>(e.openBlock(),e.createBlock(e.unref(W),{title:t.itemTitle(h),border:"",actions:["edit","remove"],onAction:w=>m(h,w),onClick:w=>p(h)},null,8,["title","onAction","onClick"]))),256)),u.list.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":40})),e.createVNode(e.unref(pe),{modelValue:l.value,"onUpdate:modelValue":g[1]||(g[1]=h=>l.value=h),title:r.value,"submit-method":v,model:a.value,block:u.current,context:u.context,onPick:d},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"fields",e.normalizeProps(e.guardReactiveProps({model:a.value,isEdit:s.value,nameLabel:u.nameLabel,valueLabel:u.valueLabel})),()=>[e.createVNode(e.unref(b.XField),{name:"name",label:u.nameLabel,required:"",disabled:s.value},null,8,["label","disabled"]),e.createVNode(e.unref(b.XField),{ref_key:"codeFieldRef",ref:o,name:"value",label:u.valueLabel,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"editorRef",ref:n,dark:"",height:"350px",modelValue:a.value.value,"onUpdate:modelValue":g[0]||(g[0]=h=>a.value.value=h),onBlur:f},null,8,["modelValue"])]),_:1},8,["label"])])]),_:3},8,["modelValue","title","model","block","context"])]),_:3},8,["title"]))}}),pn=e.defineComponent({__name:"state",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.state||{}).map(([r,i])=>({name:r,value:P.JSCodeToString(i)}))),o=()=>({name:"",value:""}),l=s=>t.current?.removeState(s.name),a=async(s,r)=>{const{name:i,value:m}=s;if(!r&&t.current?.state[i])return M(`名称 ${i} 已存在,请更换!`),!1;const d={type:"JSExpression",value:m};return J(d,t.context,!0)?(t.current?.setState(i,d),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ue,{title:"状态数据",current:t.current,context:t.context,list:n.value,nameLabel:"状态数据名称",valueLabel:"状态初始值 [ JSExpression ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),fn=e.defineComponent({__name:"computed",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.computed||{}).map(([r,i])=>({name:r,value:P.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("computed",s.name),a=async(s,r)=>{const{name:i,value:m}=s;if(!r&&t.current?.computed[i])return M(`名称 ${i} 已存在,请更换!`),!1;const d={type:"JSFunction",value:m};return J(d,t.context,!0)?(t.current?.setFunction("computed",i,d),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ue,{title:"计算属性",current:t.current,context:t.context,list:n.value,nameLabel:"计算属性名称",valueLabel:"计算函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),vn=e.defineComponent({__name:"methods",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>Object.entries(t.current?.methods||{}).map(([r,i])=>({name:r,value:P.JSCodeToString(i)}))),o=()=>({name:"",value:"() => { }"}),l=s=>t.current?.removeFunction("methods",s.name),a=async(s,r)=>{const{name:i,value:m}=s;if(!r&&t.current?.methods[i])return M(`名称 ${i} 已存在,请更换!`),!1;const d={type:"JSFunction",value:m};return J(d,t.context,!0)?(t.current?.setFunction("methods",i,d),!0):!1};return(s,r)=>(e.openBlock(),e.createBlock(ue,{title:"组件方法",current:t.current,context:t.context,list:n.value,nameLabel:"方法名称",valueLabel:"方法函数 [ JSFunction ]",createEmpty:o,remove:l,submit:a},null,8,["current","context","list"]))}}),gn=e.defineComponent({__name:"lifeCycles",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>P.LIFE_CYCLES_LIST.map(r=>({label:r,value:r}))),o=e.computed(()=>Object.entries(t.current?.lifeCycles||{}).map(([i,m])=>({name:i,value:P.JSCodeToString(m)}))),l=()=>({name:"",value:"() => { }"}),a=r=>t.current?.removeFunction("lifeCycles",r.name),s=async(r,i)=>{const{name:m,value:d}=r;if(!i&&t.current?.lifeCycles[m])return M(`名称 ${m} 已存在,请更换!`),!1;const p={type:"JSFunction",value:d};return J(p,t.context,!0)?(t.current?.setFunction("lifeCycles",m,p),!0):!1};return(r,i)=>(e.openBlock(),e.createBlock(ue,{title:"生命周期",current:t.current,context:t.context,list:o.value,nameLabel:"名称",valueLabel:"函数 [ JSFunction ]",createEmpty:l,remove:a,submit:s},{fields:e.withCtx(({model:m,nameLabel:d,isEdit:p,valueLabel:v})=>[e.createVNode(e.unref(b.XField),{name:"name",label:d,editor:"select",options:n.value,required:"",disabled:p},null,8,["label","options","disabled"]),e.createVNode(e.unref(b.XField),{name:"value",label:v,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{ref:"editorRef",dark:"",height:"350px",modelValue:m.value,"onUpdate:modelValue":f=>m.value=f},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),hn=e.defineComponent({__name:"watch",props:{context:{},current:{}},setup(c){const t=c,n=e.computed(()=>(t.current?.watch||[]).map(r=>({...r,source:P.JSCodeToString(r.source),handler:P.JSCodeToString(r.handler)}))),o=()=>({source:"() => { }",deep:!1,immediate:!1,handler:"() => { }"}),l=r=>r.source,a=r=>t.current?.removeWatch(r),s=async(r,i)=>{const m={type:"JSFunction",value:r.source},d={type:"JSFunction",value:r.handler};if(!J(m,t.context,!0)||!J(d,t.context,!0))return!1;const p={...r,source:m,handler:d};return t.current?.setWatch(p),!0};return(r,i)=>(e.openBlock(),e.createBlock(ue,{title:"侦听器",current:t.current,context:t.context,list:n.value,nameLabel:"侦听源 [ JSFunction ]",valueLabel:"处理函数 [ JSFunction ]",createEmpty:o,remove:a,submit:s,itemTitle:l,grow:""},{fields:e.withCtx(({model:m,nameLabel:d,valueLabel:p})=>[e.createVNode(e.unref(b.XField),{name:"source",label:d,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{dark:"",height:"100px",modelValue:m.source,"onUpdate:modelValue":v=>m.source=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"]),e.createVNode(e.unref(b.XField),{name:"deep",modelValue:m.deep,"onUpdate:modelValue":v=>m.deep=v,label:"深度监听",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"immediate",modelValue:m.immediate,"onUpdate:modelValue":v=>m.immediate=v,label:"立即执行",editor:"switch"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(e.unref(b.XField),{name:"handler",label:p,required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{dark:"",height:"130px",modelValue:m.handler,"onUpdate:modelValue":v=>m.handler=v},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label"])]),_:1},8,["current","context","list"]))}}),bn=e.defineComponent({__name:"index",setup(c){const{current:t,context:n}=U();return(o,l)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-scripts-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(pn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(fn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(vn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(gn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"]),e.createVNode(hn,{current:e.unref(t),context:e.unref(n)},null,8,["current","context"])]),_:1}))}}),ve=e.defineComponent({__name:"setters",props:{context:{},current:{},title:{},items:{},node:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=(s,r)=>{o("change",s,r)},a=s=>{o("remove",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:n.title,class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElForm),{class:"v-properties-widget__form",size:"small","label-width":"90px",onKeydown:r[0]||(r[0]=e.withKeys(e.withModifiers(()=>{},["prevent","stop"]),["enter"]))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>(e.openBlock(),e.createBlock(e.unref(E),e.mergeProps(i,{key:`${i.name}_${n.node.id}`,current:n.current,context:n.context,removable:n.removable,onChange:l,onRemove:a}),null,16,["current","context","removable"]))),128))]),_:1})]),_:1},8,["title"]))}}),kn=e.defineComponent({name:"PropertiesWidget",__name:"index",setup(c){const{current:t,context:n}=U(),{selected:o}=ee(),{node:l,commonProps:a,change:s,componentProps:r,customProps:i,addCustom:m,removeCustom:d,isExist:p}=mt(o),v=e.ref(!1),f=e.ref(),u=()=>{v.value=!0,f.value={name:""}},g=async w=>{const C=Object.keys(l.value?.props||{});return!p(w.name)&&!C.includes(w.name)?(m(w.name),!0):(M("已存在该属性名称"),!1)},h=async w=>{await re("确定删除?")&&d(w)};return(w,C)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-properties-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:0,title:"通用属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(a),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)&&e.unref(r).length?(e.openBlock(),e.createBlock(ve,{key:1,title:"组件属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(r),onChange:e.unref(s)},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.unref(l)?(e.openBlock(),e.createBlock(ve,{key:2,title:"自定义属性",current:e.unref(t),context:e.unref(n),node:e.unref(l),items:e.unref(i),onChange:e.unref(s),removable:"",plus:"",grow:"",onPlus:u,onRemove:h},null,8,["current","context","node","items","onChange"])):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XDialogForm),{modelValue:v.value,"onUpdate:modelValue":C[0]||(C[0]=_=>v.value=_),title:"新增自定义属性",width:"400px",height:"150px","submit-method":g,formProps:{tooltipMessage:!1},model:f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",rules:{message:"名称格式错误",pattern:e.unref(Z)}},null,8,["rules"])]),_:1},8,["modelValue","model"])]),_:1})):e.createCommentVNode("",!0)}}),Re=e.defineComponent({name:"VariableBinder",__name:"variable",props:{context:{},current:{},value:{}},setup(c){const t=c,n=e.ref(),o=e.reactive({type:"JSExpression",value:t.value}),l=a=>{n.value.getEditor().setValue(a),o.value=a};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定变量","unbind-enabled":"",block:t.current,context:t.context,model:o,onPick:l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"value",label:"绑定内容 [ JSExpression ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"editorRef",ref:n,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value=r),dark:"",height:"450px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),ze=e.defineComponent({name:"EventBinder",__name:"event",props:{context:{},current:{},name:{},event:{}},setup(c){const t=c,n=e.ref(),o=()=>({name:t.name,...t.event,modifiers:Object.keys(t.event?.modifiers||{}),handler:{type:"JSFunction",value:t.event?.handler?.value||"() => {}"}}),l=e.reactive(o()),a=Ee.map(r=>({label:r,value:r})),s=r=>{n.value.getEditor().setValue(r),l.handler.value=r};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(pe),{title:"绑定事件","unbind-enabled":"",block:t.current,context:t.context,model:l,onPick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"modifiers",label:"事件修饰符",editor:"checkbox",options:e.unref(a)},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"handler.value",label:"事件处理函数 [ JSFunction ]",required:""},{editor:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"editorRef",ref:n,modelValue:l.handler.value,"onUpdate:modelValue":i[0]||(i[0]=m=>l.handler.value=m),dark:"",height:"350px"},null,8,["modelValue"])]),_:1})]),_:1},8,["block","context","model"]))}}),yn=e.defineComponent({name:"EventsWidget",__name:"index",setup(c){const{current:t,context:n}=U(),{selected:o}=ee(),{mouseEventList:l,keyboardEventList:a,componentEventList:s}=pt(o),r=e.ref({name:"",event:void 0}),i=e.ref(!1),m=u=>{r.value=R.cloneDeep(u),i.value=!0},d=async u=>{const g={...u,modifiers:u.modifiers.reduce((w,C)=>(w[C]=!0,w),{})};return J(g.handler,n.value,!0)?((o.value?.model).setEvent(g),!0):!1},p=async u=>{const g=o.value?.model;u.name&&(g.removeEvent(u.name),i.value=!1)},v=async()=>{r.value.name&&await re("确定要删除该事件吗?")&&p(r.value)},f=u=>{const{name:g,modelValue:h}=u;g==="edit"&&m(h),g==="remove"&&p(h)};return(u,g)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-events-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{title:"组件事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[e.unref(s).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50,description:"该组件无自带事件"})),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),h=>(e.openBlock(),e.createBlock(e.unref(W),{key:`component_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:w=>m(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref(I),{title:"鼠标事件",class:"v-sub-panel",size:"small",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),h=>(e.openBlock(),e.createBlock(e.unref(W),{key:`mouse_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:w=>m(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),e.createVNode(e.unref(I),{title:"键盘事件",class:"v-sub-panel",size:"small",grow:"",fit:!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),h=>(e.openBlock(),e.createBlock(e.unref(W),{key:`keyboard_${h.name}`,title:h.name,"model-value":h,border:"",small:"",actions:h.event?["edit","remove"]:["edit"],active:!!h.event,onClick:w=>m(h),onAction:f},null,8,["title","model-value","actions","active","onClick"]))),128))]),_:1}),i.value?(e.openBlock(),e.createBlock(e.unref(ze),{key:0,modelValue:i.value,"onUpdate:modelValue":g[0]||(g[0]=h=>i.value=h),context:e.unref(n),current:e.unref(t),name:r.value.name,event:r.value.event,submitMethod:d,onUnbind:v},null,8,["modelValue","context","current","name","event"])):e.createCommentVNode("",!0)]),_:1}))}}),wn=e.defineComponent({name:"CssWidget",__name:"index",setup(c){const{current:t}=U(),n=e.ref(),o=e.computed(()=>t.value?.css||""),l=s=>{t.value?.setCss(s)},a=()=>{const r=(n.value?.getEditor()).getValue();l(r),H("保存成功")};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-css-widget v-sub-panel",title:"lang:css scoped",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"css",dark:"",onBlur:l},null,8,["model-value"])]),_:1}))}}),Cn=e.defineComponent({name:"DirectivesWidget",__name:"index",setup(c){const{current:t,context:n}=U(),{selected:o}=ee(),{vIf:l,vShow:a,vBind:s,vFor:r,vModels:i,onValueChange:m,onForChange:d,onModelChange:p}=gt(o),v=f=>f.arg?typeof f.arg=="string"?f.arg:P.parseExpression(f.arg,{}):"modelValue";return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-directives-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{class:"v-sub-panel",title:"内置指令",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(k.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(E),{name:"vIf",label:"v-if",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(l).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(E),{name:"vShow",label:"v-show",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(a).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(E),{name:"vBind",label:"v-bind",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(s).value,onChange:e.unref(m)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"循环",size:"small",fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(k.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(E),{name:"value",label:"循环数据",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:e.unref(r).value,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(E),{name:"item",label:"迭代变量名",setters:{name:"StringSetter",props:{placeholder:"item"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.item,onChange:e.unref(d)},null,8,["current","context","value","onChange"]),e.createVNode(e.unref(E),{name:"index",label:"索引变量名",setters:{name:"StringSetter",props:{placeholder:"index"}},current:e.unref(t),context:e.unref(n),value:e.unref(r).iterator?.index,onChange:e.unref(d)},null,8,["current","context","value","onChange"])]),_:1})]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"双向绑定",size:"small",fit:!1,grow:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),(g,h)=>(e.openBlock(),e.createBlock(e.unref(I),{card:"",border:"",class:"v-sub-panel",size:"small",title:`v-model: ${v(g)}`,body:{grow:!1},fit:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(k.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(E),{name:h.toString(),label:"绑定变量",setters:"ExpressionSetter",current:e.unref(t),context:e.unref(n),value:g.value,onChange:e.unref(p)},null,8,["name","current","context","value","onChange"])]),_:2},1024)]),_:2},1032,["title"]))),256)),e.unref(i).length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,description:"当前组件没有双向绑定属性","image-size":50}))]),_:1})]),_:1}))}}),Vn=e.defineComponent({name:"DefinedPropsDialog",__name:"props",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义属性":"新增定义属性"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=Object.keys(P.DATA_TYPES).map(s=>({label:s,value:s})),a=async s=>{const r=s.default;return r&&!J(r,t.context,!0)?!1:(t.current.setProp(s),!0)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":a},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"属性名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Z)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"type",label:"数据类型",editor:"checkbox",props:{button:!0,size:"small"},options:e.unref(l),required:""},null,8,["options"]),e.createVNode(e.unref(b.XField),{name:"required",label:"必须",editor:"switch"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{modelValue:o.value.default.value,"onUpdate:modelValue":r[0]||(r[0]=i=>o.value.default.value=i),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),_n=e.defineComponent({name:"DefinedEventsDialog",__name:"events",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义事件":"新增定义事件"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeEmit(t.item,!0),t.current.setEmit(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"事件名称",required:"",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Z)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),Bn=e.defineComponent({name:"DefinedSlotsDialog",__name:"slots",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑定义插槽":"新增定义插槽"),o=e.ref({name:t.item}),l=async a=>(t.item&&t.current.removeSlot(t.item,!0),t.current.setSlot(a.name),!0);return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"600px",height:"200px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"插槽名称",disabled:!!t.item,required:"",rules:{message:"名称格式错误",pattern:e.unref(Z)}},null,8,["disabled","rules"])]),_:1},8,["title","model"]))}}),xn=e.defineComponent({name:"DefinedInjectsDialog",__name:"injects",props:{item:{},current:{},context:{}},setup(c){const t=c,n=e.computed(()=>t.item?"编辑注入":"新增注入"),o=e.ref(Object.assign({default:{type:"JSExpression",value:""}},t.item)),l=async a=>{const s=a.default;return s&&!J(s,t.context,!0)?!1:(t.current.setInject(a),!0)};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{title:n.value,width:"800px",height:"500px",model:o.value,"form-props":{tooltipMessage:!1},"submit-method":l},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"name",label:"注入名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Z)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"from",label:"来源名称",tip:"默认和注入名称一致"}),e.createVNode(e.unref(b.XField),{name:"default.value",label:"默认值",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{modelValue:o.value.default.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value.default.value=r),height:"200px",dark:""},null,8,["modelValue"])]),_:1})]),_:1},8,["title","model"]))}}),Sn=e.defineComponent({name:"DefinedWidget",__name:"index",setup(c){const{current:t,context:n}=U(),o=e.computed(()=>(t.value?.props||[]).map(D=>typeof D=="string"?{name:D}:D)),l=e.computed(()=>t.value?.emits||[]),a=e.computed(()=>t.value?.slots||[]),s=e.computed(()=>t.value?.inject||[]),r=e.ref(!1),i=e.ref(),m=e.ref(!1),d=e.ref(),p=e.ref(!1),v=e.ref(),f=e.ref(!1),u=e.ref(),g=()=>{i.value=void 0,r.value=!0},h=D=>{const{name:F,modelValue:N}=D;F==="edit"&&w(N),F==="remove"&&t.value?.removeProp(N)},w=D=>{i.value=D,r.value=!0},C=()=>{d.value=void 0,m.value=!0},_=D=>{d.value=D,m.value=!0},x=D=>{const{name:F,modelValue:N}=D;F==="edit"&&_(N),F==="remove"&&t.value?.removeEmit(N)},A=()=>{v.value=void 0,p.value=!0},S=D=>{v.value=D,p.value=!0},j=D=>{const{name:F,modelValue:N}=D;F==="edit"&&S(N),F==="remove"&&t.value?.removeSlot(N)},B=()=>{u.value=void 0,f.value=!0},O=D=>{u.value=D,f.value=!0},G=D=>{const{name:F,modelValue:N}=D;F==="edit"&&O(N),F==="remove"&&t.value?.removeInject(N)};return(D,F)=>e.unref(t)&&e.unref(n)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-defined-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义属性",size:"small",plus:"",fit:!1,onPlus:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,N=>(e.openBlock(),e.createBlock(e.unref(W),{"model-value":N,title:N.name,border:"",actions:["edit","remove"],onClick:ae=>w(N),onAction:h},null,8,["model-value","title","onClick"]))),256)),o.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50})),r.value?(e.openBlock(),e.createBlock(Vn,{key:1,current:e.unref(t),context:e.unref(n),modelValue:r.value,"onUpdate:modelValue":F[0]||(F[0]=N=>r.value=N),item:i.value},null,8,["current","context","modelValue","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义事件",size:"small",plus:"",fit:!1,onPlus:C},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,N=>(e.openBlock(),e.createBlock(e.unref(W),{"model-value":N,title:N,border:"",actions:["remove"],onClick:ae=>_(N),onAction:x},null,8,["model-value","title","onClick"]))),256)),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50})),m.value?(e.openBlock(),e.createBlock(_n,{key:1,modelValue:m.value,"onUpdate:modelValue":F[1]||(F[1]=N=>m.value=N),current:e.unref(t),context:e.unref(n),item:d.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"定义插槽",size:"small",plus:"",fit:!1,onPlus:A},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,N=>(e.openBlock(),e.createBlock(e.unref(W),{"model-value":N,title:N,border:"",actions:["remove"],onClick:ae=>S(N),onAction:j},null,8,["model-value","title","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50})),p.value?(e.openBlock(),e.createBlock(Bn,{key:1,modelValue:p.value,"onUpdate:modelValue":F[2]||(F[2]=N=>p.value=N),current:e.unref(t),context:e.unref(n),item:v.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(I),{class:"v-sub-panel",title:"注入",size:"small",plus:"",fit:!1,grow:"",onPlus:B},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,N=>(e.openBlock(),e.createBlock(e.unref(W),{"model-value":N,title:N.name,border:"",actions:["remove"],onClick:ae=>O(N),onAction:G},null,8,["model-value","title","onClick"]))),256)),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50})),f.value?(e.openBlock(),e.createBlock(xn,{key:1,modelValue:f.value,"onUpdate:modelValue":F[3]||(F[3]=N=>f.value=N),current:e.unref(t),context:e.unref(n),item:u.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1})]),_:1})):e.createCommentVNode("",!0)}}),Nn=e.defineComponent({name:"DataSourceDialogForm",__name:"form",props:{context:{},current:{},item:{}},setup(c){const t=c,{apis:n}=ht(),o=()=>({type:"api",ref:"",name:"",label:"",transform:{type:"JSFunction",value:`(res) => {
11
16
  /* 在这里可对接口返回数据进行转换 */
12
17
  return res;
13
18
  }`},test:{type:"JSFunction",value:`() => this.runApi({
14
19
  /* 在这里可输入接口参数 */
15
- })`}}),l=e.ref(Object.assign(o(),t.item)),a=e.ref(!1),s=e.ref(""),r=e.ref(!1),i=e.computed(()=>n.value.map(f=>({label:f.label||"",value:f.id,data:f}))),d=e.computed(()=>t.item?"编辑数据源":"新增数据源"),m=f=>{const u=n.value.find(g=>g.id===f);u&&(l.value.name=u.name,l.value.label=u.label||"")},p=async f=>{const{transform:u,test:g,name:h}=f;if(!t.current)return!1;if(!t.item&&t.current.dataSources[h])return L(`名称【${h}】已经存在,请更换名称`),!1;if(u?.value){if(!X(u,t.context,!0))return!1}else f.transform=void 0;if(g?.value){if(!X(g,t.context,!0))return!1}else f.test=void 0;return t.current?.setDataSource(f),!0},v=async()=>{if(!t.context)return;if(!l.value.ref){L("请先选择API");return}if(!l.value.test?.value){L("请先填写测试用例");return}if(!X(l.value.test,t.context,!0))return;const u=async(...C)=>{const _=t.context?.$apis[l.value.ref];if(_)return await _.apply(_,C);F.logger.warn(`API【${l.value.ref}】不存在`)},g=D.parseExpression(l.value.test,{runApi:u}),h=l.value.transform?.value?D.parseExpression(l.value.transform,{},!0):C=>C;a.value=!0;try{const C=await g();s.value=JSON.stringify(await h(C),null,2)}catch(C){F.logger.error(C)}a.value=!1,r.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{width:"1000px",height:"600px",title:d.value,model:l.value,"form-props":{tooltipMessage:!1},"submit-method":p},{extra:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{loading:a.value,type:"warning",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 运行测试用例 ")]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"ref",label:"引用API",editor:"select",required:"",disabled:!!t.item,options:i.value,props:{filterable:!0},onChange:m},{option:e.withCtx(({option:g})=>[e.createTextVNode(e.toDisplayString(g.data.label)+" ",1),e.createElementVNode("i",null,"[ "+e.toDisplayString(g.data.name)+" ]",1)]),_:1},8,["disabled","options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"调用名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Q)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"transform.value",label:"转换函数",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:l.value.transform.value,"onUpdate:modelValue":u[0]||(u[0]=g=>l.value.transform.value=g),height:"200px",dark:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{name:"test.value",label:"测试用例",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{modelValue:l.value.test.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value.test.value=g),height:"100px",dark:""},null,8,["modelValue"])]),_:1}),r.value?(e.openBlock(),e.createBlock(e.unref(y.ElDrawer),{key:0,class:"v-drawer",modelValue:r.value,"onUpdate:modelValue":u[2]||(u[2]=g=>r.value=g),title:"测试用例运行结果",direction:"btt","append-to-body":"",size:"80%"},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{"model-value":s.value,border:"",dark:"",height:"100%",lang:"json"},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]),_:1},8,["title","model"]))}}),bn=e.defineComponent({name:"DataSourcesWidget",__name:"index",setup(c){const{current:t,context:n}=W(),o=e.ref(!1),l=e.ref(),a=e.computed(()=>Object.values(t.value?.dataSources||{}).filter(d=>d.type==="api")),s=()=>{l.value=void 0,o.value=!0},r=d=>{l.value=d,o.value=!0},i=d=>{const{name:m,modelValue:p}=d;m==="edit"&&r(p),m==="remove"&&t.value?.removeDataSource(p.name)};return(d,m)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-data-sources-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{title:"API",class:"v-sub-panel",size:"small",plus:"",onPlus:s},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,p=>(e.openBlock(),e.createBlock(e.unref(O),{border:"",title:p.name,subtitle:p.label,"model-value":p,actions:["edit","remove"],onAction:i,onClick:v=>r(p)},null,8,["title","subtitle","model-value","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:0,"image-size":50}))]),_:1}),o.value?(e.openBlock(),e.createBlock(hn,{key:0,modelValue:o.value,"onUpdate:modelValue":m[0]||(m[0]=p=>o.value=p),current:e.unref(t),context:e.unref(n),item:l.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}))}}),kn=e.defineComponent({__name:"layout",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref();e.watch(()=>t.styleJson.display,d=>{n.value=d==="flex"},{immediate:!0});const o=[{label:"block-块级布局",value:"block",svg:k.IconDisplayBlock},{label:"flex-弹性布局",value:"flex",svg:k.IconDisplayFlex},{label:"inline-block-行内块级布局",value:"inline-block",svg:k.IconDisplayInlineBlock},{label:"inline-行内布局",value:"inline",svg:k.IconDisplayInline},{label:"invisible-不可见",value:"none",svg:k.IconEyeInvisible}],l=[{label:"row-水平",value:"row",svg:k.IconFlexDirectionrow},{label:"row-reverse-水平",value:"row-reverse",svg:k.IconFlexDirectionrowReverse},{label:"column-垂直",value:"column",svg:k.IconFlexDirectioncolumn},{label:"column-reverse-垂直",value:"column-reverse",svg:k.IconFlexDirectioncolumnReverse}],a=[{label:"flex-start",value:"flex-start",svg:k.IconFlexJustifyflexStartrow},{label:"flex-end",value:"flex-end",svg:k.IconFlexJustifyflexEndrow},{label:"center",value:"center",svg:k.IconFlexJustifycenterrow},{label:"space-between",value:"space-between",svg:k.IconFlexJustifyspaceBetweenrow},{label:"space-around",value:"space-around",svg:k.IconFlexJustifyspaceAroundrow}],s=[{label:"不换行",value:"nowrap"},{label:"正换行",value:"wrap"},{label:"逆换行",value:"wrap-reverse"}],r=[{label:"flex-start",value:"flex-start",svg:k.IconFlexAlignflexStartrow},{label:"flex-end",value:"flex-end",svg:k.IconFlexAlignflexEndrow},{label:"center",value:"center",svg:k.IconFlexAligncenterrow},{label:"baseline",value:"baseline",svg:k.IconFlexAlignbaselinerow},{label:"stretch",value:"stretch",svg:k.IconFlexAlignstretchrow}],i=(d,m)=>{n.value=m==="flex",t.setStyle("display",m),n.value||(t.setStyle("flex-direction",void 0),t.setStyle("justify-content",void 0),t.setStyle("align-items",void 0),t.setStyle("flex-wrap",void 0))};return(d,m)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"布局",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"display",label:"排布",setters:{name:"TagSetter"},options:o,variable:!1,value:t.styleJson.display,onChange:i},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref($),{name:"flex-direction",label:"主轴方向",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson["flex-direction"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"justify-content",label:"主轴对齐",setters:{name:"TagSetter"},options:a,variable:!1,value:t.styleJson["justify-content"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"align-items",label:"辅轴对齐",setters:{name:"TagSetter"},options:r,variable:!1,value:t.styleJson["align-items"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"flex-wrap",label:"换行模式",setters:{name:"TagSetter"},options:s,variable:!1,value:t.styleJson["flex-wrap"],onChange:t.setStyle},null,8,["value","onChange"])],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),yn=e.defineComponent({name:"StyleWidget",__name:"JsonMode",setup(c){const{selected:t}=Y(),n=e.ref(),o=e.computed(()=>{const r=t.value?.model||null;return w.isBlock(r)?null:r}),l=e.computed(()=>JSON.stringify(o.value?.getPropValue("style")||{},null,2)),a=r=>{try{const i=JSON.parse(r);o.value?.setProp("style",i)}catch{L("JSON格式错误")}},s=()=>{const i=(n.value?.getEditor()).getValue();a(i),H("保存成功")};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-css-widget v-sub-panel",title:"JSON",size:"small",fit:"",save:"",onSave:s},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":l.value,height:"100%",lang:"json",dark:"",onBlur:a},null,8,["model-value"])]),_:1}))}}),Cn={class:"v-spacing-input"},_n=e.createElementVNode("div",{class:"v-spacing-input__modal"},null,-1),wn={class:"v-spacing-input__content"},Vn=["onClick"],ze=e.defineComponent({__name:"spacing-input",props:{name:{},modelValue:{},auto:{type:Boolean}},emits:["close","update:modelValue","submit"],setup(c,{emit:t}){const n=[0,10,20,40,60,100,140,220],o=c,l=t,a=e.computed(()=>o.auto||o.name.includes("margin")),s=e.ref(),r=e.ref(o.modelValue),i=e.ref("px");le.onClickOutside(s,()=>{l("close")});const d=f=>{r.value=typeof f=="number"?`${f}px`:"auto",m(r.value)},m=f=>{i.value=f==="auto"?void 0:"px"},p=()=>{r.value?(l("update:modelValue",r.value),l("submit",o.name,r.value),l("close")):L("请输入有效值","提示")},v=()=>{r.value=void 0,l("update:modelValue",r.value),l("submit",o.name,void 0),l("close")};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Cn,[_n,e.createElementVNode("div",wn,[e.createVNode(e.unref(b.XContainer),{class:"v-spacing-input__body",ref_key:"bodyRef",ref:s,direction:"column"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.XInputUnit),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=g=>r.value=g),size:"small","with-unit":!!i.value,unit:i.value,format:i.value?"0":void 0,onChange:m},null,8,["modelValue","with-unit","unit","format"])]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-spacing-input__auto",width:"20%"},{default:e.withCtx(()=>[e.createElementVNode("span",{onClick:u[1]||(u[1]=g=>d("auto"))},"auto")]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XContainer),{grow:"",class:"v-spacing-input__values",align:"center",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,g=>e.createElementVNode("span",{onClick:h=>d(g)},e.toDisplayString(g),9,Vn)),64))]),_:1})]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElButton),{size:"small",type:"primary",round:"",style:{width:"100%"},onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1}),e.createVNode(e.unref(y.ElButton),{size:"small",round:"",style:{width:"100%"},onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 重置 ")]),_:1})]),_:1})]),_:1},512)])]))}}),Bn={class:"spacing-wrap"},xn={class:"spacing-max-icon"},Sn=["width","height"],En=["d"],Nn=["d"],$n=["d"],In=["d"],Dn={id:"margin-outer"},jn=["width","height"],An=["width","height"],Fn={id:"margin-inner"},Pn=["width","height"],Tn=["width","height"],Rn=["width","height"],zn=["d"],Jn=["d"],Ln=["d"],Mn=["d"],On={id:"padding-outer"},Xn=["width","height"],Wn=["width","height"],Un={id:"padding-inner"},Hn=["width","height"],qn=["width","height"],Gn={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"3 / 3 / span 3 / span 3","pointer-events":"none"}},Kn=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," padding ",-1),Zn=[Kn],Qn={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"1 / 1 / -1 / -1","pointer-events":"none"}},Yn=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," margin ",-1),eo=[Yn],T=36,R=24,to=e.defineComponent({__name:"spacing",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{width:s,height:r}=le.useElementSize(o),i=e.ref(!1),d=e.ref(),m=e.ref(),p=()=>{i.value=!1,d.value=void 0,m.value=void 0},v=f=>{d.value=f,m.value=t.styleJson[f],i.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"间距",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"v-style-widget__spacing",ref_key:"container",ref:n},[e.createElementVNode("div",Bn,[e.createElementVNode("div",xn,[e.unref(l)&&e.unref(a)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(l),height:e.unref(a),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
20
+ })`}}),l=e.ref(Object.assign(o(),t.item)),a=e.ref(!1),s=e.ref(""),r=e.ref(!1),i=e.computed(()=>n.value.map(f=>({label:f.label||"",value:f.id,data:f}))),m=e.computed(()=>t.item?"编辑数据源":"新增数据源"),d=f=>{const u=n.value.find(g=>g.id===f);u&&(l.value.name=u.name,l.value.label=u.label||"")},p=async f=>{const{transform:u,test:g,name:h}=f;if(!t.current)return!1;if(!t.item&&t.current.dataSources[h])return M(`名称【${h}】已经存在,请更换名称`),!1;if(u?.value){if(!J(u,t.context,!0))return!1}else f.transform=void 0;if(g?.value){if(!J(g,t.context,!0))return!1}else f.test=void 0;return t.current?.setDataSource(f),!0},v=async()=>{if(!t.context)return;if(!l.value.ref){M("请先选择API");return}if(!l.value.test?.value){M("请先填写测试用例");return}if(!J(l.value.test,t.context,!0))return;const u=async(...w)=>{const C=t.context?.$apis[l.value.ref];if(C)return await C.apply(C,w);R.logger.warn(`API【${l.value.ref}】不存在`)},g=P.parseExpression(l.value.test,{runApi:u}),h=l.value.transform?.value?P.parseExpression(l.value.transform,{},!0):w=>w;a.value=!0;try{const w=await g();s.value=JSON.stringify(await h(w),null,2)}catch(w){R.logger.error(w)}a.value=!1,r.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(b.XDialogForm),{width:"1000px",height:"600px",title:m.value,model:l.value,"form-props":{tooltipMessage:!1},"submit-method":p},{extra:e.withCtx(()=>[e.createVNode(e.unref(k.ElButton),{loading:a.value,type:"warning",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 运行测试用例 ")]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{name:"ref",label:"引用API",editor:"select",required:"",disabled:!!t.item,options:i.value,props:{filterable:!0},onChange:d},{option:e.withCtx(({option:g})=>[e.createTextVNode(e.toDisplayString(g.data.label)+" ",1),e.createElementVNode("i",null,"[ "+e.toDisplayString(g.data.name)+" ]",1)]),_:1},8,["disabled","options"]),e.createVNode(e.unref(b.XField),{name:"name",label:"调用名称",required:"",tip:"名称为英文驼峰格式",disabled:!!t.item,rules:{message:"名称格式错误",pattern:e.unref(Z)}},null,8,["disabled","rules"]),e.createVNode(e.unref(b.XField),{name:"label",label:"备注说明",required:""}),e.createVNode(e.unref(b.XField),{name:"transform.value",label:"转换函数",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{modelValue:l.value.transform.value,"onUpdate:modelValue":u[0]||(u[0]=g=>l.value.transform.value=g),height:"200px",dark:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(b.XField),{name:"test.value",label:"测试用例",editor:"none"},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{modelValue:l.value.test.value,"onUpdate:modelValue":u[1]||(u[1]=g=>l.value.test.value=g),height:"100px",dark:""},null,8,["modelValue"])]),_:1}),r.value?(e.openBlock(),e.createBlock(e.unref(k.ElDrawer),{key:0,class:"v-drawer",modelValue:r.value,"onUpdate:modelValue":u[2]||(u[2]=g=>r.value=g),title:"测试用例运行结果",direction:"btt","append-to-body":"",size:"80%"},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{"model-value":s.value,border:"",dark:"",height:"100%",lang:"json"},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)]),_:1},8,["title","model"]))}}),En=e.defineComponent({name:"DataSourcesWidget",__name:"index",setup(c){const{current:t,context:n}=U(),o=e.ref(!1),l=e.ref(),a=e.computed(()=>Object.values(t.value?.dataSources||{}).filter(m=>m.type==="api")),s=()=>{l.value=void 0,o.value=!0},r=m=>{l.value=m,o.value=!0},i=m=>{const{name:d,modelValue:p}=m;d==="edit"&&r(p),d==="remove"&&t.value?.removeDataSource(p.name)};return(m,d)=>(e.openBlock(),e.createBlock(e.unref(b.XContainer),{class:"v-data-sources-widget",direction:"column",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(I),{title:"API",class:"v-sub-panel",size:"small",plus:"",onPlus:s},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,p=>(e.openBlock(),e.createBlock(e.unref(W),{border:"",title:p.name,subtitle:p.label,"model-value":p,actions:["edit","remove"],onAction:i,onClick:v=>r(p)},null,8,["title","subtitle","model-value","onClick"]))),256)),a.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:0,"image-size":50}))]),_:1}),o.value?(e.openBlock(),e.createBlock(Nn,{key:0,modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=p=>o.value=p),current:e.unref(t),context:e.unref(n),item:l.value},null,8,["modelValue","current","context","item"])):e.createCommentVNode("",!0)]),_:1}))}}),An=e.defineComponent({__name:"layout",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref();e.watch(()=>t.styleJson.display,m=>{n.value=m==="flex"},{immediate:!0});const o=[{label:"block-块级布局",value:"block",svg:y.IconDisplayBlock},{label:"flex-弹性布局",value:"flex",svg:y.IconDisplayFlex},{label:"inline-block-行内块级布局",value:"inline-block",svg:y.IconDisplayInlineBlock},{label:"inline-行内布局",value:"inline",svg:y.IconDisplayInline},{label:"invisible-不可见",value:"none",svg:y.IconEyeInvisible}],l=[{label:"row-水平",value:"row",svg:y.IconFlexDirectionrow},{label:"row-reverse-水平",value:"row-reverse",svg:y.IconFlexDirectionrowReverse},{label:"column-垂直",value:"column",svg:y.IconFlexDirectioncolumn},{label:"column-reverse-垂直",value:"column-reverse",svg:y.IconFlexDirectioncolumnReverse}],a=[{label:"flex-start",value:"flex-start",svg:y.IconFlexJustifyflexStartrow},{label:"flex-end",value:"flex-end",svg:y.IconFlexJustifyflexEndrow},{label:"center",value:"center",svg:y.IconFlexJustifycenterrow},{label:"space-between",value:"space-between",svg:y.IconFlexJustifyspaceBetweenrow},{label:"space-around",value:"space-around",svg:y.IconFlexJustifyspaceAroundrow}],s=[{label:"不换行",value:"nowrap"},{label:"正换行",value:"wrap"},{label:"逆换行",value:"wrap-reverse"}],r=[{label:"flex-start",value:"flex-start",svg:y.IconFlexAlignflexStartrow},{label:"flex-end",value:"flex-end",svg:y.IconFlexAlignflexEndrow},{label:"center",value:"center",svg:y.IconFlexAligncenterrow},{label:"baseline",value:"baseline",svg:y.IconFlexAlignbaselinerow},{label:"stretch",value:"stretch",svg:y.IconFlexAlignstretchrow}],i=(m,d)=>{n.value=d==="flex",t.setStyle("display",d),n.value||(t.setStyle("flex-direction",void 0),t.setStyle("justify-content",void 0),t.setStyle("align-items",void 0),t.setStyle("flex-wrap",void 0))};return(m,d)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"布局",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElForm),{size:"small","label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(E),{name:"display",label:"排布",setters:{name:"TagSetter"},options:o,variable:!1,value:t.styleJson.display,onChange:i},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref(E),{name:"flex-direction",label:"主轴方向",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson["flex-direction"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"justify-content",label:"主轴对齐",setters:{name:"TagSetter"},options:a,variable:!1,value:t.styleJson["justify-content"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"align-items",label:"辅轴对齐",setters:{name:"TagSetter"},options:r,variable:!1,value:t.styleJson["align-items"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"flex-wrap",label:"换行模式",setters:{name:"TagSetter"},options:s,variable:!1,value:t.styleJson["flex-wrap"],onChange:t.setStyle},null,8,["value","onChange"])],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),jn=e.defineComponent({name:"StyleWidget",__name:"JsonMode",setup(c){const{selected:t}=ee(),n=e.ref(),o=e.computed(()=>{const r=t.value?.model||null;return V.isBlock(r)?null:r}),l=e.computed(()=>JSON.stringify(o.value?.getPropValue("style")||{},null,2)),a=r=>{try{const i=JSON.parse(r);o.value?.setProp("style",i)}catch{M("JSON格式错误")}},s=()=>{const i=(n.value?.getEditor()).getValue();a(i),H("保存成功")};return(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-css-widget v-sub-panel",title:"JSON",size:"small",fit:"",save:"",onSave:s},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"editorRef",ref:n,"model-value":l.value,height:"100%",lang:"json",dark:"",onBlur:a},null,8,["model-value"])]),_:1}))}}),Dn={class:"v-spacing-input"},In=e.createElementVNode("div",{class:"v-spacing-input__modal"},null,-1),Fn={class:"v-spacing-input__content"},Pn=["onClick"],$e=e.defineComponent({__name:"spacing-input",props:{name:{},modelValue:{},auto:{type:Boolean}},emits:["close","update:modelValue","submit"],setup(c,{emit:t}){const n=[0,10,20,40,60,100,140,220],o=c,l=t,a=e.computed(()=>o.auto||o.name.includes("margin")),s=e.ref(),r=e.ref(o.modelValue),i=e.ref("px");le.onClickOutside(s,()=>{l("close")});const m=f=>{r.value=typeof f=="number"?`${f}px`:"auto",d(r.value)},d=f=>{i.value=f==="auto"?void 0:"px"},p=()=>{r.value?(l("update:modelValue",r.value),l("submit",o.name,r.value),l("close")):M("请输入有效值","提示")},v=()=>{r.value=void 0,l("update:modelValue",r.value),l("submit",o.name,void 0),l("close")};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Dn,[In,e.createElementVNode("div",Fn,[e.createVNode(e.unref(b.XContainer),{class:"v-spacing-input__body",ref_key:"bodyRef",ref:s,direction:"column"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.XInputUnit),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=g=>r.value=g),size:"small","with-unit":!!i.value,unit:i.value,format:i.value?"0":void 0,onChange:d},null,8,["modelValue","with-unit","unit","format"])]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-spacing-input__auto",width:"20%"},{default:e.withCtx(()=>[e.createElementVNode("span",{onClick:u[1]||(u[1]=g=>m("auto"))},"auto")]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(b.XContainer),{grow:"",class:"v-spacing-input__values",align:"center",wrap:"wrap"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,g=>e.createElementVNode("span",{onClick:h=>m(g)},e.toDisplayString(g),9,Pn)),64))]),_:1})]),_:1}),e.createVNode(e.unref(b.XContainer),null,{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElButton),{size:"small",type:"primary",round:"",style:{width:"100%"},onClick:p},{default:e.withCtx(()=>[e.createTextVNode(" 确定 ")]),_:1}),e.createVNode(e.unref(k.ElButton),{size:"small",round:"",style:{width:"100%"},onClick:v},{default:e.withCtx(()=>[e.createTextVNode(" 重置 ")]),_:1})]),_:1})]),_:1},512)])]))}}),Tn={class:"spacing-wrap"},Rn={class:"spacing-max-icon"},zn=["width","height"],$n=["d"],Ln=["d"],On=["d"],Xn=["d"],Mn={id:"margin-outer"},Jn=["width","height"],Wn=["width","height"],Un={id:"margin-inner"},qn=["width","height"],Hn=["width","height"],Gn=["width","height"],Kn=["d"],Qn=["d"],Yn=["d"],Zn=["d"],eo={id:"padding-outer"},to=["width","height"],no=["width","height"],oo={id:"padding-inner"},lo=["width","height"],ro=["width","height"],ao={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"3 / 3 / span 3 / span 3","pointer-events":"none"}},so=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," padding ",-1),io=[so],co={xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",style:{"grid-area":"1 / 1 / -1 / -1","pointer-events":"none"}},uo=e.createElementVNode("text",{x:"6",y:"4",fill:"#a6a6a6","font-style":"italic","font-weight":"bold","font-size":"8","dominant-baseline":"hanging"}," margin ",-1),mo=[uo],z=36,$=24,po=e.defineComponent({__name:"spacing",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref(),o=e.ref(),{width:l,height:a}=le.useElementSize(n),{width:s,height:r}=le.useElementSize(o),i=e.ref(!1),m=e.ref(),d=e.ref(),p=()=>{i.value=!1,m.value=void 0,d.value=void 0},v=f=>{m.value=f,d.value=t.styleJson[f],i.value=!0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"间距",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"v-style-widget__spacing",ref_key:"container",ref:n},[e.createElementVNode("div",Tn,[e.createElementVNode("div",Rn,[e.unref(l)&&e.unref(a)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(l),height:e.unref(a),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
16
21
  m1,1
17
22
  h${e.unref(l)-1}
18
- l-${T},${R}
19
- h-${e.unref(l)-2*T}
20
- l-${T},-${R}z`,"data-automation-id":"margin-top-button","aria-label":"Margin top button",class:"tb-path-color",onClick:u[0]||(u[0]=g=>v("margin-top"))},null,8,En)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
23
+ l-${z},${$}
24
+ h-${e.unref(l)-2*z}
25
+ l-${z},-${$}z`,"data-automation-id":"margin-top-button","aria-label":"Margin top button",class:"tb-path-color",onClick:u[0]||(u[0]=g=>v("margin-top"))},null,8,$n)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
21
26
  m${e.unref(l)-1},1
22
27
  v${e.unref(a)-1}
23
- l-${T},-${R}
24
- v-${e.unref(a)-2*R}
25
- l${T},-${R}z`,"data-automation-id":"margin-right-button","aria-label":"Margin right button",class:"lr-path-color",onClick:u[1]||(u[1]=g=>v("margin-right"))},null,8,Nn)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
28
+ l-${z},-${$}
29
+ v-${e.unref(a)-2*$}
30
+ l${z},-${$}z`,"data-automation-id":"margin-right-button","aria-label":"Margin right button",class:"lr-path-color",onClick:u[1]||(u[1]=g=>v("margin-right"))},null,8,Ln)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
26
31
  m1,${e.unref(a)-1}
27
32
  h${e.unref(l)-1}
28
- l-${T},-${R}
29
- h-${e.unref(l)-2*T}
30
- l-${T},${R}z`,"data-automation-id":"margin-bottom-button","aria-label":"Margin bottom button",class:"tb-path-color",onClick:u[2]||(u[2]=g=>v("margin-bottom"))},null,8,$n)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
33
+ l-${z},-${$}
34
+ h-${e.unref(l)-2*z}
35
+ l-${z},${$}z`,"data-automation-id":"margin-bottom-button","aria-label":"Margin bottom button",class:"tb-path-color",onClick:u[2]||(u[2]=g=>v("margin-bottom"))},null,8,On)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
31
36
  m1,1
32
37
  v${e.unref(a)-1}
33
- l${T},-${R}
34
- v-${e.unref(a)-2*R}
35
- l-${T},-${R}z`,"data-automation-id":"margin-left-button","aria-label":"Margin left button",class:"lr-path-color",onClick:u[3]||(u[3]=g=>v("margin-left"))},null,8,In)])]),e.createElementVNode("clipPath",Dn,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(l),height:e.unref(a),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,jn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-outer)",x:"0",y:"0",width:e.unref(l),height:e.unref(a),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,An),e.createElementVNode("clipPath",Fn,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(l)-2*T+1,height:e.unref(a)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Pn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-inner)",x:"36",y:"24",width:e.unref(l)-2*T+1,height:e.unref(a)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,Tn)],8,Sn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-top",{"is-setting":t.styleJson["margin-top"]}]),onClick:u[4]||(u[4]=g=>v("margin-top"))},e.toDisplayString(t.styleJson["margin-top"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-right",{"is-setting":t.styleJson["margin-right"]}]),onClick:u[5]||(u[5]=g=>v("margin-right"))},e.toDisplayString(t.styleJson["margin-right"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-bottom",{"is-setting":t.styleJson["margin-bottom"]}]),onClick:u[6]||(u[6]=g=>v("margin-bottom"))},e.toDisplayString(t.styleJson["margin-bottom"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-left",{"is-setting":t.styleJson["margin-left"]}]),onClick:u[7]||(u[7]=g=>v("margin-left"))},e.toDisplayString(t.styleJson["margin-left"]||"-"),3)]),e.createElementVNode("div",{ref_key:"inner",ref:o,class:"spacing-min-icon"},[e.unref(l)&&e.unref(a)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(s),height:e.unref(r),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
38
+ l${z},-${$}
39
+ v-${e.unref(a)-2*$}
40
+ l-${z},-${$}z`,"data-automation-id":"margin-left-button","aria-label":"Margin left button",class:"lr-path-color",onClick:u[3]||(u[3]=g=>v("margin-left"))},null,8,Xn)])]),e.createElementVNode("clipPath",Mn,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(l),height:e.unref(a),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Jn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-outer)",x:"0",y:"0",width:e.unref(l),height:e.unref(a),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,Wn),e.createElementVNode("clipPath",Un,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(l)-2*z+1,height:e.unref(a)-2*$+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,qn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-inner)",x:"36",y:"24",width:e.unref(l)-2*z+1,height:e.unref(a)-2*$+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,Hn)],8,zn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-top",{"is-setting":t.styleJson["margin-top"]}]),onClick:u[4]||(u[4]=g=>v("margin-top"))},e.toDisplayString(t.styleJson["margin-top"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-right",{"is-setting":t.styleJson["margin-right"]}]),onClick:u[5]||(u[5]=g=>v("margin-right"))},e.toDisplayString(t.styleJson["margin-right"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-bottom",{"is-setting":t.styleJson["margin-bottom"]}]),onClick:u[6]||(u[6]=g=>v("margin-bottom"))},e.toDisplayString(t.styleJson["margin-bottom"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit margin-left",{"is-setting":t.styleJson["margin-left"]}]),onClick:u[7]||(u[7]=g=>v("margin-left"))},e.toDisplayString(t.styleJson["margin-left"]||"-"),3)]),e.createElementVNode("div",{ref_key:"inner",ref:o,class:"spacing-min-icon"},[e.unref(l)&&e.unref(a)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(s),height:e.unref(r),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
36
41
  m1,1
37
42
  h${e.unref(s)-1}
38
- l-${T},${R}
39
- h-${e.unref(s)-2*T}
40
- l-${T},-${R}z`,"data-automation-id":"padding-top-button","aria-label":"Padding top button",class:"tb-path-color",onClick:u[8]||(u[8]=g=>v("padding-top"))},null,8,zn)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
43
+ l-${z},${$}
44
+ h-${e.unref(s)-2*z}
45
+ l-${z},-${$}z`,"data-automation-id":"padding-top-button","aria-label":"Padding top button",class:"tb-path-color",onClick:u[8]||(u[8]=g=>v("padding-top"))},null,8,Kn)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
41
46
  m${e.unref(s)-1},1
42
47
  v${e.unref(r)-1}
43
- l-${T},-${R}
44
- v-${e.unref(r)-2*R}
45
- l${T},-${R}z`,"data-automation-id":"padding-right-button","aria-label":"Padding right button",class:"lr-path-color",onClick:u[9]||(u[9]=g=>v("padding-right"))},null,8,Jn)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
48
+ l-${z},-${$}
49
+ v-${e.unref(r)-2*$}
50
+ l${z},-${$}z`,"data-automation-id":"padding-right-button","aria-label":"Padding right button",class:"lr-path-color",onClick:u[9]||(u[9]=g=>v("padding-right"))},null,8,Qn)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
46
51
  m1,${e.unref(r)-1}
47
52
  h${e.unref(s)-1}
48
- l-${T},-${R}
49
- h-${e.unref(s)-2*T}
50
- l-${T},${R}z`,"data-automation-id":"padding-bottom-button","aria-label":"Padding bottom button",class:"tb-path-color",onClick:u[10]||(u[10]=g=>v("padding-bottom"))},null,8,Ln)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
53
+ l-${z},-${$}
54
+ h-${e.unref(s)-2*z}
55
+ l-${z},${$}z`,"data-automation-id":"padding-bottom-button","aria-label":"Padding bottom button",class:"tb-path-color",onClick:u[10]||(u[10]=g=>v("padding-bottom"))},null,8,Yn)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
51
56
  m1,1
52
57
  v${e.unref(r)-1}
53
- l${T},-${R}
54
- v-${e.unref(r)-2*R}
55
- l-${T},-${R}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[11]||(u[11]=g=>v("padding-left"))},null,8,Mn)])]),e.createElementVNode("clipPath",On,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Xn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-outer)",x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,Wn),e.createElementVNode("clipPath",Un,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(s)-2*T+1,height:e.unref(r)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Hn)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-inner)",x:"36",y:"24",width:e.unref(s)-2*T+1,height:e.unref(r)-2*R+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,qn)],8,Rn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson["padding-top"]}]),onClick:u[12]||(u[12]=g=>v("padding-top"))},e.toDisplayString(t.styleJson["padding-top"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson["padding-right"]}]),onClick:u[13]||(u[13]=g=>v("padding-right"))},e.toDisplayString(t.styleJson["padding-right"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson["padding-bottom"]}]),onClick:u[14]||(u[14]=g=>v("padding-bottom"))},e.toDisplayString(t.styleJson["padding-bottom"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson["padding-left"]}]),onClick:u[15]||(u[15]=g=>v("padding-left"))},e.toDisplayString(t.styleJson["padding-left"]||"-"),3)],512),(e.openBlock(),e.createElementBlock("svg",Gn,Zn)),(e.openBlock(),e.createElementBlock("svg",Qn,eo))]),i.value?(e.openBlock(),e.createBlock(ze,{key:0,name:d.value,modelValue:m.value,"onUpdate:modelValue":u[16]||(u[16]=g=>m.value=g),onClose:p,onSubmit:t.setStyle},null,8,["name","modelValue","onSubmit"])):e.createCommentVNode("",!0)],512)]),_:1}))}}),no=e.defineComponent({__name:"sizing",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,l=[{name:"width",label:"宽(W)",setter:"SizeSetter"},{name:"height",label:"高(H)",setter:"SizeSetter"},{name:"min-width",label:"最小宽",setter:"SizeSetter"},{name:"min-height",label:"最小高",setter:"SizeSetter"},{name:"max-width",label:"最大宽",setter:"SizeSetter"},{name:"max-height",label:"最大高",setter:"SizeSetter"},{name:"overflow",label:"溢出",setter:"SelectSetter",options:[{label:"自动",value:"auto"},{label:"隐藏",value:"hidden"},{label:"滚动",value:"scroll"},{label:"显示",value:"visible"}]},{name:"object-fit",label:"适应",setter:"SelectSetter",options:[{label:"填充",value:"fill"},{label:"适应",value:"contain"},{label:"覆盖",value:"cover"},{label:"拉伸",value:"scale-down"},{label:"原始",value:"none"}]}];return(a,s)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"尺寸",class:"v-sub-panel v-",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-style-widget__sizing",size:"small","label-width":"60px",inline:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,r=>e.createVNode(e.unref($),{name:r.name,label:r.label,setters:{name:r.setter},options:r.options,variable:!1,value:t.styleJson[r.name],onChange:a.setStyle},null,8,["name","label","setters","options","value","onChange"])),64))]),_:1})]),_:1}))}}),oo={class:"v-style-widget__positioning"},lo={class:"spacing-wrap"},ro=["width","height"],ao=["d"],so=["d"],io=["d"],co=["d"],uo={id:"margin-outer"},mo=["width","height"],po=["width","height"],fo={id:"margin-inner"},vo=["width","height"],go=["width","height"],q=36,G=24,ho=e.defineComponent({__name:"positioning",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref(),{width:o,height:l}=le.useElementSize(n),a=e.ref(!1),s=e.ref(),r=e.ref(),i=[{label:"静态",value:"static"},{label:"相对",value:"relative"},{label:"绝对",value:"absolute"},{label:"固定",value:"fixed"},{label:"粘性",value:"sticky"}],d=[{label:"左上",svg:k.IconPositionTopLeft,value:"0% auto auto 0%"},{label:"右上",svg:k.IconPositionTopRight,value:"0% 0% auto auto"},{label:"左下",svg:k.IconPositionBottomLeft,value:"auto auto 0% 0%"},{label:"右下",svg:k.IconPositionBottomRight,value:"auto 0% 0% auto"},{label:"左",svg:k.IconPositionLeft,value:"0% auto 0% 0%"},{label:"右",svg:k.IconPositionRight,value:"0% 0% 0% auto"},{label:"上",svg:k.IconPositionTop,value:"auto 0% 0% 0%"},{label:"下",svg:k.IconPositionBottom,value:"0% 0% auto 0%"},{label:"填充",svg:k.IconPositionAll,value:"0% 0% 0% 0%"}],m=e.computed(()=>(t.styleJson.inset||"").split(" ")),p=f=>{s.value=f,r.value=t.styleJson[f],a.value=!0},v=()=>{a.value=!1,s.value=void 0,r.value=void 0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"定位",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createElementVNode("div",oo,[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"position",label:"定位",setters:{name:"SelectSetter"},options:i,variable:!1,value:t.styleJson.position,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"inset",label:" ",setters:{name:"TagSetter"},options:d,variable:!1,value:t.styleJson.inset,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(y.ElFormItem),{label:" "},{default:e.withCtx(()=>[e.createElementVNode("div",lo,[e.createElementVNode("div",{ref_key:"inner",ref:n,class:"spacing-min-icon"},[e.unref(o)&&e.unref(o)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(o),height:e.unref(l),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
58
+ l${z},-${$}
59
+ v-${e.unref(r)-2*$}
60
+ l-${z},-${$}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[11]||(u[11]=g=>v("padding-left"))},null,8,Zn)])]),e.createElementVNode("clipPath",eo,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,to)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-outer)",x:"0",y:"0",width:e.unref(s),height:e.unref(r),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,no),e.createElementVNode("clipPath",oo,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(s)-2*z+1,height:e.unref(r)-2*$+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,lo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#padding-inner)",x:"36",y:"24",width:e.unref(s)-2*z+1,height:e.unref(r)-2*$+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,ro)],8,Gn)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson["padding-top"]}]),onClick:u[12]||(u[12]=g=>v("padding-top"))},e.toDisplayString(t.styleJson["padding-top"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson["padding-right"]}]),onClick:u[13]||(u[13]=g=>v("padding-right"))},e.toDisplayString(t.styleJson["padding-right"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson["padding-bottom"]}]),onClick:u[14]||(u[14]=g=>v("padding-bottom"))},e.toDisplayString(t.styleJson["padding-bottom"]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson["padding-left"]}]),onClick:u[15]||(u[15]=g=>v("padding-left"))},e.toDisplayString(t.styleJson["padding-left"]||"-"),3)],512),(e.openBlock(),e.createElementBlock("svg",ao,io)),(e.openBlock(),e.createElementBlock("svg",co,mo))]),i.value?(e.openBlock(),e.createBlock($e,{key:0,name:m.value,modelValue:d.value,"onUpdate:modelValue":u[16]||(u[16]=g=>d.value=g),onClose:p,onSubmit:t.setStyle},null,8,["name","modelValue","onSubmit"])):e.createCommentVNode("",!0)],512)]),_:1}))}}),fo=e.defineComponent({__name:"sizing",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,l=[{name:"width",label:"宽(W)",setter:"SizeSetter"},{name:"height",label:"高(H)",setter:"SizeSetter"},{name:"min-width",label:"最小宽",setter:"SizeSetter"},{name:"min-height",label:"最小高",setter:"SizeSetter"},{name:"max-width",label:"最大宽",setter:"SizeSetter"},{name:"max-height",label:"最大高",setter:"SizeSetter"},{name:"overflow",label:"溢出",setter:"SelectSetter",options:[{label:"自动",value:"auto"},{label:"隐藏",value:"hidden"},{label:"滚动",value:"scroll"},{label:"显示",value:"visible"}]},{name:"object-fit",label:"适应",setter:"SelectSetter",options:[{label:"填充",value:"fill"},{label:"适应",value:"contain"},{label:"覆盖",value:"cover"},{label:"拉伸",value:"scale-down"},{label:"原始",value:"none"}]}];return(a,s)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"尺寸",class:"v-sub-panel v-",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElForm),{class:"v-style-widget__sizing",size:"small","label-width":"60px",inline:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,r=>e.createVNode(e.unref(E),{name:r.name,label:r.label,setters:{name:r.setter},options:r.options,variable:!1,value:t.styleJson[r.name],onChange:a.setStyle},null,8,["name","label","setters","options","value","onChange"])),64))]),_:1})]),_:1}))}}),vo={class:"v-style-widget__positioning"},go={class:"spacing-wrap"},ho=["width","height"],bo=["d"],ko=["d"],yo=["d"],wo=["d"],Co={id:"margin-outer"},Vo=["width","height"],_o=["width","height"],Bo={id:"margin-inner"},xo=["width","height"],So=["width","height"],K=36,Q=24,No=e.defineComponent({__name:"positioning",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref(),{width:o,height:l}=le.useElementSize(n),a=e.ref(!1),s=e.ref(),r=e.ref(),i=[{label:"静态",value:"static"},{label:"相对",value:"relative"},{label:"绝对",value:"absolute"},{label:"固定",value:"fixed"},{label:"粘性",value:"sticky"}],m=[{label:"左上",svg:y.IconPositionTopLeft,value:"0% auto auto 0%"},{label:"右上",svg:y.IconPositionTopRight,value:"0% 0% auto auto"},{label:"左下",svg:y.IconPositionBottomLeft,value:"auto auto 0% 0%"},{label:"右下",svg:y.IconPositionBottomRight,value:"auto 0% 0% auto"},{label:"左",svg:y.IconPositionLeft,value:"0% auto 0% 0%"},{label:"右",svg:y.IconPositionRight,value:"0% 0% 0% auto"},{label:"上",svg:y.IconPositionTop,value:"auto 0% 0% 0%"},{label:"下",svg:y.IconPositionBottom,value:"0% 0% auto 0%"},{label:"填充",svg:y.IconPositionAll,value:"0% 0% 0% 0%"}],d=e.computed(()=>(t.styleJson.inset||"").split(" ")),p=f=>{s.value=f,r.value=t.styleJson[f],a.value=!0},v=()=>{a.value=!1,s.value=void 0,r.value=void 0};return(f,u)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"定位",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createElementVNode("div",vo,[e.createVNode(e.unref(k.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(E),{name:"position",label:"定位",setters:{name:"SelectSetter"},options:i,variable:!1,value:t.styleJson.position,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"inset",label:" ",setters:{name:"TagSetter"},options:m,variable:!1,value:t.styleJson.inset,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(k.ElFormItem),{label:" "},{default:e.withCtx(()=>[e.createElementVNode("div",go,[e.createElementVNode("div",{ref_key:"inner",ref:n,class:"spacing-min-icon"},[e.unref(o)&&e.unref(o)?(e.openBlock(),e.createElementBlock("svg",{key:0,xmlns:"http://www.w3.org/2000/svg",width:e.unref(o),height:e.unref(l),style:{"grid-area":"1 / 1 / -1 / -1"}},[e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
56
61
  m1,1
57
62
  h${e.unref(o)-1}
58
- l-${q},${G}
59
- h-${e.unref(o)-2*q}
60
- l-${q},-${G}z`,"data-automation-id":"padding-top-button","aria-label":"Padding top button",class:"tb-path-color",onClick:u[0]||(u[0]=g=>p("top"))},null,8,ao)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
63
+ l-${K},${Q}
64
+ h-${e.unref(o)-2*K}
65
+ l-${K},-${Q}z`,"data-automation-id":"padding-top-button","aria-label":"Padding top button",class:"tb-path-color",onClick:u[0]||(u[0]=g=>p("top"))},null,8,bo)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
61
66
  m${e.unref(o)-1},1
62
67
  v${e.unref(l)-1}
63
- l-${q},-${G}
64
- v-${e.unref(l)-2*G}
65
- l${q},-${G}z`,"data-automation-id":"padding-right-button","aria-label":"Padding right button",class:"lr-path-color",onClick:u[1]||(u[1]=g=>p("right"))},null,8,so)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
68
+ l-${K},-${Q}
69
+ v-${e.unref(l)-2*Q}
70
+ l${K},-${Q}z`,"data-automation-id":"padding-right-button","aria-label":"Padding right button",class:"lr-path-color",onClick:u[1]||(u[1]=g=>p("right"))},null,8,ko)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
66
71
  m1,${e.unref(l)-1}
67
72
  h${e.unref(o)-1}
68
- l-${q},-${G}
69
- h-${e.unref(o)-2*q}
70
- l-${q},${G}z`,"data-automation-id":"padding-bottom-button","aria-label":"Padding bottom button",class:"tb-path-color",onClick:u[2]||(u[2]=g=>p("bottom"))},null,8,io)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
73
+ l-${K},-${Q}
74
+ h-${e.unref(o)-2*K}
75
+ l-${K},${Q}z`,"data-automation-id":"padding-bottom-button","aria-label":"Padding bottom button",class:"tb-path-color",onClick:u[2]||(u[2]=g=>p("bottom"))},null,8,yo)])]),e.createElementVNode("g",null,[e.createElementVNode("g",null,[e.createElementVNode("path",{mode:"delta",fill:"currentColor",d:`
71
76
  m1,1
72
77
  v${e.unref(l)-1}
73
- l${q},-${G}
74
- v-${e.unref(l)-2*G}
75
- l-${q},-${G}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[3]||(u[3]=g=>p("left"))},null,8,co)])]),e.createElementVNode("clipPath",uo,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,mo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-outer)",x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,po),e.createElementVNode("clipPath",fo,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(o)-2*q+1,height:e.unref(l)-2*G+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,vo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-inner)",x:"36",y:"24",width:e.unref(o)-2*q+1,height:e.unref(l)-2*G+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,go)],8,ro)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson.top}]),onClick:u[4]||(u[4]=g=>p("top"))},e.toDisplayString(t.styleJson.top||m.value[0]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson.right}]),onClick:u[5]||(u[5]=g=>p("right"))},e.toDisplayString(t.styleJson.right||m.value[1]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson.bottom}]),onClick:u[6]||(u[6]=g=>p("bottom"))},e.toDisplayString(t.styleJson.bottom||m.value[2]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson.left}]),onClick:u[7]||(u[7]=g=>p("left"))},e.toDisplayString(t.styleJson.left||m.value[3]||"-"),3)],512),a.value?(e.openBlock(),e.createBlock(ze,{key:0,auto:"",name:s.value,modelValue:r.value,"onUpdate:modelValue":u[8]||(u[8]=g=>r.value=g),onClose:v,onSubmit:t.setStyle},null,8,["name","modelValue","onSubmit"])):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(e.unref($),{name:"z-index",label:"层级",setters:{name:"NumberSetter"},variable:!1,value:t.styleJson["z-index"],onChange:t.setStyle},null,8,["value","onChange"])]),_:1})])]),_:1}))}}),bo=e.defineComponent({__name:"texting",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{name:"font-size",label:"字号",setter:"SizeSetter"},{name:"font-family",label:"字体",setter:"SelectSetter",options:["Arial","Verdana","Georgia",'"Times New Roman"','"Microsoft YaHei"',"SimSun","SimHei","KaiTi","FangSong","STSong","STKaiti","STFangsong","STCaiyun","STHupo","STLiti","STXingkai","STXinwei","STXinwei","STZhongsong"]},{name:"line-height",label:"行高",setter:"SizeSetter"},{name:"font-weight",label:"字重",setter:"SelectSetter",options:[{label:"正常",value:"normal"},{label:"粗体",value:"bold"},{label:"更粗",value:"bolder"},{label:"更细",value:"lighter"}]}],o=[{label:"左",value:"left",svg:k.IconTextAlignLeft},{label:"中",value:"center",svg:k.IconTextAlignCenter},{label:"右",value:"right",svg:k.IconTextAlignRight},{label:"两端",value:"justify",svg:k.IconTextAlignJustify}],l=[{label:"正常",value:"normal",svg:k.IconFontStyleNone},{label:"斜体",value:"italic",svg:k.IconFontStyleItalic}],a=[{label:"无",value:"none",svg:k.IconCross},{label:"下划线",value:"underline",svg:k.IconTextDecorationUnderline},{label:"删除线",value:"line-through",svg:k.IconTextDecorationStrike},{label:"上划线",value:"overline",svg:k.IconTextDecorationOverline}];return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"文本",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{class:"v-style-widget__texting",size:"small","label-width":"60px",inline:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,i=>e.createVNode(e.unref($),{name:i.name,label:i.label,setters:{name:i.setter},options:i.options,variable:!1,value:t.styleJson[i.name],onChange:s.setStyle},null,8,["name","label","setters","options","value","onChange"])),64))]),_:1}),e.createVNode(e.unref(y.ElForm),{size:"small","label-width":"60px"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson.color,onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"text-align",label:"对齐",setters:{name:"TagSetter"},variable:!1,options:o,value:t.styleJson["text-align"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"font-style",label:"风格",setters:{name:"TagSetter"},variable:!1,options:l,value:t.styleJson["font-style"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"text-decoration",label:"修饰",setters:{name:"TagSetter"},variable:!1,options:a,value:t.styleJson["text-decoration"],onChange:s.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),ko=e.defineComponent({__name:"backgound",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=(i,d)=>{d?t.setStyle("background-image",`url(${d})`):t.setStyle("background-image",void 0)},o=i=>{const d=/^url\(([\w\W]+)\)$/;return i?.match(d)?.[1]},l=[{label:"重复",value:"repeat",svg:k.IconTileXy},{label:"水平重复",value:"repeat-x",svg:k.IconTileX},{label:"垂直重复",value:"repeat-y",svg:k.IconTileY},{label:"不重复",value:"no-repeat",svg:k.IconClose}],a=[{label:"固定",value:"fixed"},{label:"滚动",value:"scroll"}],s=[{label:"裁剪到填充",value:"padding-box"},{label:"裁剪到内容",value:"content-box"},{label:"裁剪到文字",value:"text"}],r=[{label:"自动",value:"auto"},{label:"长度",value:"length"},{label:"百分比",value:"percentage"},{label:"覆盖",value:"cover"},{label:"填充",value:"contain"}];return(i,d)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"背景",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"background-image",label:"图片",setters:{name:"ImageSetter"},variable:!1,value:o(t.styleJson["background-image"]),onChange:n},null,8,["value"]),e.createVNode(e.unref($),{name:"background-color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson["background-color"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-repeat",label:"重复",setters:{name:"TagSetter"},variable:!1,value:t.styleJson["background-repeat"],options:l,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-attachment",label:"固定",setters:{name:"RadioSetter"},variable:!1,value:t.styleJson["background-attachment"],options:a,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-position",label:"位置",setters:{name:"SectionSetter",props:{sections:2}},variable:!1,value:t.styleJson["background-position"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-size",label:"大小",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-size"],options:r,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"background-clip",label:"裁剪",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-clip"],options:s,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),yo=e.defineComponent({__name:"border",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref("border"),o=[{label:"全边框",svg:k.IconBorderAll,value:"border"},{label:"左边框",svg:k.IconBorderLeft,value:"border-left"},{label:"上边框",svg:k.IconBorderTop,value:"border-top"},{label:"下边框",svg:k.IconBorderBottom,value:"border-bottom"},{label:"右边框",svg:k.IconBorderRight,value:"border-right"}],l=[{label:"无",value:"none",svg:k.IconCross},{label:"实线",value:"solid",svg:k.IconBorderStyleSolid},{label:"虚线",value:"dashed",svg:k.IconBorderStyleDashed},{label:"点线",value:"dotted",svg:k.IconBorderStyleDotted}],a=(s,r)=>{n.value=r};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"边框",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"border-radius",label:"圆角",setters:{name:"SectionSetter",props:{sections:4}},variable:!1,value:t.styleJson["border-radius"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"borders",label:"边框",setters:{name:"TagSetter"},variable:!1,options:o,value:n.value,onChange:a},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(),e.createBlock(e.unref($),{name:`${n.value}-width`,key:`${n.value}-width`,label:"宽度",setters:{name:"SizeSetter"},variable:!1,value:t.styleJson[`${n.value}-width`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref($),{name:`${n.value}-style`,key:`${n.value}-style`,label:"样式",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson[`${n.value}-style`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref($),{name:`${n.value}-color`,key:`${n.value}-color`,label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson[`${n.value}-color`],onChange:t.setStyle},null,8,["name","value","onChange"]))],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),Co=e.defineComponent({__name:"effect",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{label:"自动",value:"auto",svg:k.IconCursorAuto},{label:"Pointer",value:"pointer",svg:k.IconCursorPointer},{label:"NotAllowed",value:"not-allowed",svg:k.IconCursorNotAllowed},{label:"无",value:"none",svg:k.IconCursorNone}],o=[{label:"Basic",value:"var(--el-box-shadow)"},{label:"Light",value:"var(--el-box-shadow-light)"},{label:"Lighter",value:"var(--el-box-shadow-lighter)"},{label:"Dark",value:"var(--el-box-shadow-dark)"}],l=(s,r)=>{t.setStyle("opacity",r!==void 0?(Number(r)||0)/100:void 0)},a=()=>Number(t.styleJson.opactiy||0)*100;return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"效果",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref($),{name:"opacity",label:"透明度",setters:{name:"SliderSetter"},variable:!1,value:a(),onChange:l},null,8,["value"]),e.createVNode(e.unref($),{name:"box-shadow",label:"阴影",setters:{name:"SelectSetter"},variable:!1,options:o,value:t.styleJson["box-shadow"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref($),{name:"cursor",label:"光标",setters:{name:"TagSetter"},variable:!1,options:n,value:t.styleJson.cursor,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),_o=e.defineComponent({name:"StyleWidget",__name:"index",props:{isStyleCodeMode:{type:Boolean}},setup(c){const t=c,{selected:n}=Y(),o=e.computed(()=>{const s=n.value?.model||null;return w.isBlock(s)?null:s}),l=e.computed(()=>o.value?.getPropValue("style")||{}),a=(s,r)=>{const i=o.value?.getPropValue("style")||{};r!==void 0?i[s]=r:delete i[s],o.value?.setProp("style",i)};return(s,r)=>t.isStyleCodeMode?(e.openBlock(),e.createBlock(yn,{key:0})):(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:`widget-style-${o.value?.id}`,class:"v-style-widget",direction:"column",fit:""},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(kn,{key:`Layout${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(to,{key:`Spacing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(no,{key:`Sizing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(ho,{key:`Positioning${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(bo,{key:`Texting${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(ko,{key:`Backgound${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(yo,{key:`Border${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(Co,{key:`Effect${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"]))]),_:1}))}}),wo=["src"],Vo=e.defineComponent({name:"PreviewerWidget",__name:"index",props:{path:{type:Function}},setup(c,{expose:t}){const n=c,o=e.ref(),l=e.ref(Symbol()),{current:a,engine:s}=W(),{width:r,height:i}=le.useElementSize(o),d=e.computed(()=>a.value&&n.path?n.path(a.value):null),m=e.computed(()=>s.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc");return t({refresh:()=>{l.value=Symbol()}}),(v,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:o,class:"v-previewer",key:l.value},[e.createVNode(e.unref(Ce),{mode:m.value,width:e.unref(r),height:e.unref(i)},{default:e.withCtx(()=>[d.value?(e.openBlock(),e.createElementBlock("iframe",{key:0,ref:"iframe",frameborder:"0",src:d.value},null,8,wo)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"])]))}}),Bo=e.defineComponent({name:"NodePathWidget",inheritAttrs:!1,__name:"index",setup(c){const{selected:t,designer:n}=Y(),o=e.computed(()=>(t.value?.path||[]).slice(0).reverse()),l=s=>{n.value?.setSelected(s)},a=s=>{n.value?.setHover(s)};return(s,r)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(y.ElBreadcrumb),{key:0,class:"v-nodepath-widget","separator-icon":e.unref(k.ArrowRight)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,i=>(e.openBlock(),e.createBlock(e.unref(y.ElBreadcrumbItem),{onClick:d=>l(i),onMouseover:d=>a(i)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.name),1)]),_:2},1032,["onClick","onMouseover"]))),256))]),_:1},8,["separator-icon"])):e.createCommentVNode("",!0)}}),xo=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t}=W(),n=e.ref(),o=e.computed(()=>JSON.stringify(t.value?.toDsl()||{},null,2)),l=e.computed(()=>t.value?t.value.name:""),a=async()=>{const r=(n.value?.getEditor()).getValue();if(r&&await re("手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。"))try{const d=JSON.parse(r);t.value?.update(d),H("保存成功")}catch(d){L(d?.message)}};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-schema-widget",title:l.value,subtitle:"手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"json",dark:""},null,8,["model-value"])]),_:1},8,["title"]))}}),So=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t,engine:n}=W(),o=e.ref(),l=e.ref(""),a=e.computed(()=>t.value?`$vtj/vue/${t.value.id}.vue`:""),s=e.computed(()=>t.value?t.value.name:"");return e.watch(t,async r=>{const i=n.project.value;i&&r?l.value=await n.service.genVueContent(i.toDsl(),r.toDsl()):l.value=""},{immediate:!0,deep:!0}),(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-raw-widget",title:s.value,subtitle:a.value,size:"small",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"editorRef",ref:o,"model-value":l.value,height:"100%",lang:"html",dark:"",readonly:""},null,8,["model-value"])]),_:1},8,["title","subtitle"]))}}),Eo=["src"],No=e.defineComponent({name:"DocsWidget",__name:"index",props:{url:{default:"https://newgateway.gitee.io/vtj/help/index.html"}},setup(c){const t=c,n=e.ref();let o=null;e.onMounted(()=>{o||(o=y.ElLoading.service({target:n.value?.$el}))}),e.onUnmounted(()=>{l(),o=null});const l=()=>{o?.close()};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-docs-widget",size:"small",fit:"",body:{padding:!1},header:!1,ref_key:"panel",ref:n},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref:"frame",src:t.url,onLoad:l},null,40,Eo)]),_:1},512))}}),$o={class:"v-about-widget"},Io={class:"v-about-widget__logo"},Do=["src"],jo=e.createElementVNode("div",{class:"v-about-widget__name"},"VTJ.PRO",-1),Ao={class:"v-about-widget__version"},Fo=e.defineComponent({name:"AboutWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",$o,[e.createElementVNode("div",Io,[e.createElementVNode("img",{src:e.unref(ye)},null,8,Do)]),jo,e.createElementVNode("div",Ao,"版本:"+e.toDisplayString(e.unref(Be)),1)]))}}),A={Logo:lt,EmptyWidget:at,Switcher:_t,Toolbar:Vt,Actions:St,Pages:Mt,Blocks:Ot,Components:Ht,Outline:qt,History:Gt,Apis:Kt,Deps:Zt,Designer:en,Scripts:an,Properties:sn,Events:cn,Css:un,Directives:dn,Defined:gn,DataSources:bn,Style:_o,Previewer:Vo,NodePath:Bo,Schema:xo,Raw:So,Docs:No,About:Fo},Je=[{name:"Logo",region:"Brand",component:A.Logo},{name:"Switcher",region:"Brand",component:A.Switcher},{name:"Toolbar",region:"Toolbar",component:A.Toolbar},{name:"Actions",region:"Actions",component:A.Actions},{name:"Pages",region:"Apps",component:A.Pages,type:"app",openType:"panel",icon:k.VtjIconDocument,label:"页面管理"},{name:"Blocks",region:"Apps",component:A.Blocks,type:"app",openType:"panel",icon:k.VtjIconComponents,label:"区块管理"},{name:"Components",region:"Apps",component:A.Components,type:"app",openType:"panel",icon:k.VtjIconBlock,label:"组件库"},{name:"Outline",region:"Apps",component:A.Outline,type:"app",openType:"panel",icon:k.VtjIconOutline,label:"大纲树"},{name:"History",region:"Apps",component:A.History,type:"app",openType:"panel",icon:k.VtjIconHistory,label:"历史记录"},{name:"Apis",region:"Apps",component:A.Apis,type:"app",openType:"panel",icon:k.VtjIconApi,label:"API管理"},{name:"Deps",region:"Apps",component:A.Deps,type:"app",openType:"panel",icon:k.VtjIconCategory,label:"依赖管理"},{name:"About",region:"Apps",component:A.About,type:"app",openType:"dialog",icon:k.VtjIconInfo,label:"关于",props:{width:500,height:300}},{name:"Designer",region:"Workspace",component:A.Designer,type:"tab",closable:!1,label:"设计视图"},{name:"Previewer",region:"Preview",component:A.Previewer,type:"tab",closable:!1,label:"预览视图"},{name:"Schema",region:"Workspace",component:A.Schema,type:"tab",closable:!0,label:"DSL视图"},{name:"Raw",region:"Workspace",component:A.Raw,type:"tab",closable:!0,label:"源码视图"},{name:"Docs",region:"Workspace",component:A.Docs,type:"tab",closable:!0,label:"帮助中心"},{name:"Scripts",region:"Settings",component:A.Scripts,type:"tab",group:K.Block,label:"设置"},{name:"Css",region:"Settings",component:A.Css,type:"tab",group:K.Block,label:"CSS"},{name:"DataSources",region:"Settings",component:A.DataSources,type:"tab",group:K.Block,label:"数据源"},{name:"Defined",region:"Settings",component:A.Defined,type:"tab",group:K.Block,label:"定义"},{name:"Properties",region:"Settings",component:A.Properties,type:"tab",group:K.Node,label:"属性"},{name:"Style",region:"Settings",component:A.Style,type:"tab",group:K.Node,label:"样式"},{name:"Events",region:"Settings",component:A.Events,type:"tab",group:K.Node,label:"事件"},{name:"Directives",region:"Settings",component:A.Directives,type:"tab",group:K.Node,label:"指令"},{name:"NodePath",region:"Status",component:A.NodePath}],Le=[{package:"vue",version:"latest",library:"Vue",urls:["@vtj/materials/deps/vue/vue.global.prod.js"],assetsLibrary:w.BUILT_IN_VUE,required:!0,official:!0,enabled:!0},{package:"vue-router",version:"latest",library:"VueRouter",urls:["@vtj/materials/deps/vue-router/vue-router.global.prod.js"],assetsLibrary:w.BUILT_IN_VUE_ROUTER,required:!0,official:!0,enabled:!0},{package:"@vtj/utils",version:"latest",library:"VtjUtils",urls:["@vtj/materials/deps/@vtj/utils/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"@vtj/icons",version:"latest",library:"VtjIcons",urls:["@vtj/materials/deps/@vtj/icons/style.css","@vtj/materials/deps/@vtj/icons/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"element-plus",version:"latest",library:"ElementPlus",urls:["@vtj/materials/deps/element-plus/dark/css-vars.css","@vtj/materials/deps/element-plus/index.css","@vtj/materials/deps/element-plus/index.full.min.js"],assetsUrl:"@vtj/materials/assets/element/index.umd.js",assetsLibrary:"ElementPlusMaterial",required:!1,official:!0,enabled:!0},{package:"echarts",version:"latest",library:"echarts",urls:["@vtj/materials/deps/echarts/echarts.min.js"],required:!1,official:!0,enabled:!0},{package:"@vtj/ui",version:"latest",library:"VtjUI",urls:["@vtj/materials/deps/@vtj/ui/style.css","@vtj/materials/deps/@vtj/ui/index.umd.js"],assetsUrl:"@vtj/materials/assets/ui/index.umd.js",assetsLibrary:"VtjUIMaterial",required:!1,official:!0,enabled:!0},{package:"ant-design-vue",version:"latest",library:"antd",urls:["@vtj/materials/deps/ant-design-vue/rest.css","@vtj/materials/deps/ant-design-vue/dayjs/dayjs.min.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/customParseFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekday.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/localeData.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekOfYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/advancedFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/quarterOfYear.js","@vtj/materials/deps/ant-design-vue/antd.min.js"],assetsUrl:"@vtj/materials/assets/antdv/index.umd.js",assetsLibrary:"AntdvMaterial",required:!1,official:!0,enabled:!1}],Po=[{id:"html",category:"HTML"},{id:"elements",category:"特殊元素"},{id:"components",category:"内置组件"}],To=[{name:"div",label:"容器",categoryId:"html",snippet:{children:"容器文本内容示例"}},{name:"span",label:"内联",categoryId:"html",snippet:{children:"内联容器文本内容示例"}},{name:"a",label:"链接",categoryId:"html",props:[{name:"href",label:"href",setters:"InputSetter"}],snippet:{children:"链接文本内容示例",props:{href:"#"}}},{name:"img",label:"图片",categoryId:"html",childIncludes:!1,props:[{name:"src",label:"src",setters:"InputSetter"},{name:"width",label:"width",setters:"InputSetter"},{name:"height",label:"height",setters:"InputSetter"}],snippet:{props:{src:ye,width:"200",height:"200"}}},{name:"h1",label:"大标题",categoryId:"html",snippet:{children:"标题"}},{name:"h2",label:"中标题",categoryId:"html",snippet:{children:"标题"}},{name:"h3",label:"小标题",categoryId:"html",snippet:{children:"标题"}},{name:"p",label:"段落",categoryId:"html",snippet:{children:"段落文本"}},{name:"component",label:"动态组件",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#component",props:[{name:"is",label:"组件名",setters:"InputSetter"}],snippet:{children:"组件文本内容示例",props:{is:"div"}}},{name:"slot",label:"插槽",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#slot",props:[{name:"name",label:"名称",defaultValue:"default",setters:"InputSetter"}],snippet:{children:"默认插槽内容"}}],Ro=[...To,{name:"Transition",label:"过渡效果",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transition",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"mode",label:"时序",defaultValue:"default",title:"控制离开/进入过渡的时序。",setters:"SelectSetter",options:["in-out","out-in","default"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"Transition"}},{name:"TransitionGroup",label:"过渡效果组",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transitiongroup",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"tag",label:"标签名",defaultValue:void 0,title:"如果未定义,则渲染为片段 (fragment)",setters:"InputSetter"},{name:"moveClass",label:"moveClass",defaultValue:void 0,title:"用于自定义过渡期间被应用的 CSS class。",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"TransitionGroup"}},{name:"KeepAlive",label:"缓存切换组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#keepalive",package:"vue",props:[{name:"include",label:"匹配包含",title:"如果指定,则只有与 `include` 名称, 匹配的组件才会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"exclude",label:"匹配排除",title:"任何名称与 `exclude` 匹配的组件都不会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"max",label:"最大缓存数",title:"最多可以缓存多少组件实例。",setters:["InputSetter"]}]},{name:"Teleport",label:"传送组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#teleport",package:"vue",props:[{name:"to",label:"目标容器",title:"指定目标容器,可以是选择器或实际元素",setters:["InputSetter"]},{name:"disabled",label:"禁用",title:"当值为 `true` 时,内容将保留在其原始位置, 而不是移动到目标容器中, 可以动态更改",setters:["BooleanSetter"]}]},{name:"Suspense",label:"异步依赖",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#suspense",package:"vue",props:[{name:"timeout",label:"timeout",setters:["InputSetter"]}]},{name:"RouterLink",label:"路由链接",categoryId:"components",doc:"https://router.vuejs.org/zh/api/interfaces/RouterLinkProps.html",package:"vue-router",props:[{name:"to",label:"to",setters:["InputSetter"]},{name:"replace",label:"replace",setters:["BooleanSetter"]}],snippet:{children:"RouterLink",props:{to:"/"}}}],Me=[{name:w.BUILT_IN_NAME,version:"latest",label:"内置",library:w.BUILT_IN_NAME,order:0,categories:Po,components:Ro}],zo=e.defineComponent({name:"StringSetter",__name:"string",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElInput),e.mergeProps({clearable:""},t.$attrs),null,16))}}),Jo=e.defineComponent({name:"BooleanSetter",__name:"boolean",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElSwitch),e.mergeProps(t.$attrs,{"model-value":!!t.$attrs.modelValue}),null,16,["model-value"]))}}),Lo="{{",Mo="}}",Oo=e.defineComponent({name:"ExpressionSetter",__name:"expression",props:{modelValue:{},context:{}},emits:["change"],setup(c,{emit:t}){const n=(i="")=>({type:"JSExpression",value:D.isJSExpression(i)?i.value:i}),o=c,l=t,a=i=>X(i,o.context,!0),s=e.ref(n(o.modelValue).value);e.watch(()=>o.modelValue,i=>{s.value=n(i).value},{immediate:!0});const r=i=>{const d={type:"JSExpression",value:i};a(d)&&l("change",d)};return(i,d)=>(e.openBlock(),e.createBlock(e.unref(y.ElInput),{class:"v-expression-setter",modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=m=>s.value=m),onChange:r},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Lo))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Mo))]),_:1},8,["modelValue"]))}}),Xo=e.defineComponent({name:"SelectSetter",__name:"select",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(y.ElSelect),e.mergeProps({clearable:""},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(y.ElOption),e.mergeProps({key:l.label},l),null,16))),128))]),_:1},16))}}),Wo=e.defineComponent({name:"NumberSetter",__name:"number",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>D.isJSExpression(n.modelValue)?void 0:Number(n.modelValue||0)),a=s=>{o("change",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(y.ElInputNumber),e.mergeProps({class:"v-number-setter","controls-position":"right","model-value":l.value},s.$attrs,{onChange:a}),null,16,["model-value"]))}}),Uo=e.defineComponent({name:"ColorSetter",__name:"color",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(y.ElColorPicker),e.normalizeProps(e.guardReactiveProps(t.$attrs)),null,16))}}),Ho=e.defineComponent({name:"JsonSetter",__name:"json",props:{modelValue:{default:void 0},type:{default:"JSON"}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(typeof n.modelValue=="object"?JSON.stringify(n.modelValue,null,2):void 0),a=e.computed(()=>!!l.value),s=e.ref(!1),r=t,i=v=>{let f=!0;try{const u=JSON.parse(v);if(n.type==="Array"&&!Array.isArray(u))throw new Error(`"${v}" is not a Array`);if(n.type==="Object"&&!F.isPlainObject(u))throw new Error(`"${v}" is not a PlainObject`);if(typeof u!="object")throw new Error(`"${v}" is not a ${n.type}`)}catch(u){f=!1,y.ElNotification.error({title:"代码错误",message:u?.message||u})}return f},d=()=>{const v=o.value?.getEditor();if(v){const f=v.getValue();i(f)&&(l.value=f,r("change",JSON.parse(f)),s.value=!1)}},m=()=>{l.value="",r("change",void 0),s.value=!1},p=()=>{s.value=!0};return(v,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-json-setter",{"is-active":a.value}])},[e.createVNode(e.unref(y.ElInput),e.mergeProps({readonly:"",onFocus:p,"model-value":n.type,"suffix-icon":e.unref(k.MoreFilled)},v.$attrs),null,16,["model-value","suffix-icon"]),s.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:s.value,"onUpdate:modelValue":f[0]||(f[0]=u=>s.value=u),title:n.type,width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:d,onClear:m},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"codeEditor",ref:o,height:"100%",lang:"json",dark:"","model-value":l.value},null,8,["model-value"])]),_:1},8,["modelValue","title"])):e.createCommentVNode("",!0)],2))}}),qo=e.defineComponent({name:"FunctionSetter",__name:"function",props:{modelValue:{default:()=>({type:"JSFunction",value:""})}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(n.modelValue.value),a=e.ref(!1),s=e.computed(()=>!!l.value),r=t,i=()=>{const p=o.value?.getEditor();if(p){const v=p.getValue(),f={type:"JSFunction",value:v};X(f,{})&&(l.value=v,r("change",f),a.value=!1)}},d=()=>{l.value="",r("change",void 0),a.value=!1},m=()=>{a.value=!0};return(p,v)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-function-setter",{"is-active":s.value}])},[e.createVNode(e.unref(y.ElInput),e.mergeProps({readonly:"",onFocus:m,"model-value":"JSFunction","suffix-icon":e.unref(k.MoreFilled)},p.$attrs),null,16,["suffix-icon"]),a.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:a.value,"onUpdate:modelValue":v[0]||(v[0]=f=>a.value=f),title:"JSFunction",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:i,onClear:d},{default:e.withCtx(()=>[e.createVNode(e.unref(M),{ref_key:"codeEditor",ref:o,height:"100%","model-value":l.value,dark:""},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)],2))}}),Go=e.defineComponent({name:"RadioSetter",__name:"radio",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(y.ElRadioGroup),e.mergeProps({class:"v-radio-setter",size:"small"},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(y.ElRadioButton),{label:l.label,value:l.value,title:l.label},{default:e.withCtx(()=>[l.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:l.svg},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.label),1)],64))]),_:2},1032,["label","value","title"]))),256))]),_:1},16))}}),Ko=["label","title","onClick"],Zo=e.defineComponent({name:"TagSetter",__name:"tag",props:{options:{default:()=>[]},modelValue:{}},emits:["update:modelValue","change"],setup(c,{emit:t}){const n=c,o=t,l=a=>{a.value===n.modelValue?(o("update:modelValue",void 0),o("change",void 0)):(o("update:modelValue",a.value),o("change",a.value))};return(a,s)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"v-tag-setter",size:"small"},a.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.options,r=>(e.openBlock(),e.createElementBlock("span",{label:r.value,title:r.label,class:e.normalizeClass({"is-active":n.modelValue===r.value}),onClick:i=>l(r)},[r.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:r.svg,size:16},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.label),1)],64))],10,Ko))),256))],16))}}),Oe=e.defineComponent({name:"SizeSetter",__name:"size",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!0),a=e.computed(()=>l.value?"px":void 0),s=e.ref(n.modelValue),r=i=>{l.value=!!Number(i)};return e.watch(s,i=>{o("change",i)}),e.watch(()=>n.modelValue,i=>{i&&(l.value=i.endsWith("px"),s.value=i)},{immediate:!0}),(i,d)=>(e.openBlock(),e.createBlock(e.unref(b.XInputUnit),e.mergeProps({clearable:"",unit:a.value,"with-unit":!!a.value,modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=m=>s.value=m),onChange:r},i.$attrs),null,16,["unit","with-unit","modelValue"]))}}),Qo={class:"v-image-setter__plus"},Yo=e.defineComponent({name:"ImageSetter",__name:"image",props:{modelValue:{},limit:{default:1}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref([]),a=e.computed(()=>l.value.length<n.limit),s=i=>i.type.includes("image")?(F.fileToBase64(i).then(d=>{l.value=[{name:i.name,url:d}]}),!1):(y.ElMessage.error("只能上传图片"),!1),r=()=>{l.value=[]};return e.watch(()=>n.modelValue,i=>{l.value=i?[{name:"",url:i}]:[]},{immediate:!0}),e.watch(l,()=>{o("change",l.value[0]?.url)}),(i,d)=>(e.openBlock(),e.createBlock(e.unref(y.ElUpload),e.mergeProps({class:["v-image-setter",{"v-image-setter--addable":a.value}],"list-type":"picture-card",limit:1,action:"#","file-list":l.value,"onUpdate:fileList":d[0]||(d[0]=m=>l.value=m),"before-upload":s,"auto-upload":!0,"on-remove":r},i.$attrs),{default:e.withCtx(()=>[e.createElementVNode("span",Qo,[e.createVNode(e.unref(b.XIcon),{icon:e.unref(k.Plus)},null,8,["icon"])])]),_:1},16,["class","file-list"]))}}),el={class:"v-section-setter"},tl=e.defineComponent({name:"SectionSetter",__name:"section",props:{modelValue:{},sections:{default:4}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(new Array(n.sections).fill(""));e.watch(()=>n.modelValue,s=>{l.value=s?s.split(" "):new Array(n.sections).fill("")},{immediate:!0});const a=()=>{o("change",l.value.join(" ").trim())};return(s,r)=>(e.openBlock(),e.createElementBlock("div",el,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.sections,i=>(e.openBlock(),e.createBlock(Oe,{name:i-1,modelValue:l.value[i-1],"onUpdate:modelValue":d=>l.value[i-1]=d,onChange:a,class:"v-section-setter__item"},null,8,["name","modelValue","onUpdate:modelValue"]))),256))]))}}),nl={class:"v-slider-setter"},ol=e.defineComponent({name:"SliderSetter",__name:"slider",props:{modelValue:{default:void 0}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref();e.watch(()=>n.modelValue,s=>{l.value=s},{immediate:!0}),e.watch(l,s=>{o("change",s),o("update:modelValue",s)});const a=()=>{l.value=void 0,o("change",void 0),o("update:modelValue",void 0)};return(s,r)=>(e.openBlock(),e.createElementBlock("div",nl,[e.createVNode(e.unref(y.ElSlider),e.mergeProps({size:"small"},s.$attrs,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=i=>l.value=i)}),null,16,["modelValue"]),e.createVNode(e.unref(b.XIcon),{onClick:a,class:"v-slider-setter__close",size:16,icon:e.unref(k.Close)},null,8,["icon"])]))}}),z={StringSetter:zo,BooleanSetter:Jo,ExpressionSetter:Oo,SelectSetter:Xo,NumberSetter:Wo,ColorSetter:Uo,IconSetter:Ae,JsonSetter:Ho,FunctionSetter:qo,RadioSetter:Go,TagSetter:Zo,SizeSetter:Oe,ImageSetter:Yo,SectionSetter:tl,SliderSetter:ol},Xe={name:"StringSetter",component:z.StringSetter,type:"String"},We=[{name:"InputSetter",component:z.StringSetter,type:"String"},{name:"StringSetter",component:z.StringSetter,type:"String"},{name:"BooleanSetter",component:z.BooleanSetter,type:"Boolean"},{name:"ExpressionSetter",component:z.ExpressionSetter,type:"Object"},{name:"SelectSetter",component:z.SelectSetter,type:"String"},{name:"NumberSetter",component:z.NumberSetter,type:"Number"},{name:"ColorSetter",component:z.ColorSetter,type:"String"},{name:"IconSetter",component:z.IconSetter,type:"String"},{name:"ObjectSetter",component:z.JsonSetter,type:"Object",props:{type:"Object"}},{name:"ArraySetter",component:z.JsonSetter,type:"Array",props:{type:"Array"}},{name:"JsonSetter",component:z.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"JSONSetter",component:z.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"FunctionSetter",component:z.FunctionSetter,type:"Function"},{name:"RadioSetter",component:z.RadioSetter,type:"String"},{name:"TagSetter",component:z.TagSetter,type:"String"},{name:"SizeSetter",component:z.SizeSetter,type:"String"},{name:"ImageSetter",component:z.ImageSetter,type:"String"},{name:"SectionSetter",component:z.SectionSetter,type:"String"},{name:"SliderSetter",component:z.SliderSetter,type:"Number"},{name:"RangeSetter",component:z.SliderSetter,type:"Array",props:{range:!0}}];class ll{widgets={};constructor(){this.widgets=this.createWidgets()}createWidgets(){const t={};for(const n of Je)t[n.name]=n;return t}register(t){this.widgets[t.name]=t}get(t){return this.widgets[t]}set(t,n){const o=this.widgets[t];if(!o){F.logger.warn(`widget '${t}' is not found`);return}F.merge(o,n),n.component&&(o.component=n.component)}getWidgets(t,n){const o=Object.values(this.widgets);return t?o.filter(l=>l.region===t&&(!n||n&&n===l.group)):o}}const _e=new ll;class rl{constructor(t=Le){this.deps=t}get(){return this.deps}set(t){this.deps=t}add(t){const n=this.deps.find(o=>o.package===t.package);n?Object.assign(n,t):this.deps.push(t)}merge(t){const n=[];for(const o of this.deps){const l=t.find(a=>a.package===o.package);n.push({...o,...l})}for(const o of t)this.deps.find(a=>a.package===o.package)||n.push(o);return n}remove(t){const n=this.deps.findIndex(o=>o.package===t);n>-1&&this.deps.splice(n,1)}}const Ue=new rl;class al{setters={};defaultSetter=Xe;constructor(){this.setters=this.createSetters()}createSetters(){const t={};for(const n of We)t[n.name]=n;return t}register(t){this.setters[t.name]=t}get(t){return this.setters[t]}set(t,n){const o=this.setters[t];if(!o){F.logger.warn(`setter '${t}' is not found`);return}F.merge(o,n),n.component&&(o.component=n.component)}getByType(t){return Object.values(this.setters).filter(o=>o.type===t).map(o=>o.name)}}const se=new al;function He(c){return new Promise((t,n)=>{const o=e.createApp(Pe,{slots:c,onClose:()=>{o.unmount(),n(null)},onSubmit:l=>{o.unmount(),t(l)}});o.mount(document.createElement("div"))})}class qe{constructor(t,n,o){this.engine=t,this.contentWindow=n,this.dependencies=o,this.document=this.contentWindow.document,this.bindEvents(n,this.document)}proxied={};document=null;hover=e.shallowRef(null);dropping=e.shallowRef(null);selected=e.ref(null);dragging=null;bind(t,n){let o=this.proxied[n];return o||(o=t.bind(this),this.proxied[n]=o),o}bindEvents(t,n){n.addEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.addEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.addEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.addEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.addEventListener("drop",this.bind(this.onDrop,"onDrop")),n.addEventListener("click",this.bind(this.onSelected,"onSelected")),w.emitter.on(w.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),w.emitter.on(w.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}unbindEvents(t,n){n.removeEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.removeEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.removeEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.removeEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.removeEventListener("drop",this.bind(this.onDrop,"onDrop")),n.removeEventListener("click",this.bind(this.onSelected,"onSelected")),w.emitter.off(w.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),w.emitter.off(w.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}onMouseOver(t){const n=this.getHelper(t);n?.model.id!==this.selected.value?.model.id&&(this.hover.value=n)}onViewChange(){this.updateRect()}onLeave(t){this.hover.value=null,this.dropping.value=null}onActiveChange(){this.hover.value=null,this.dropping.value=null,this.selected.value=null}async getDropSlot(t){if(!t)return;const{engine:n}=this,o=n.assets,l=o.componentMap,a=await o.getBlockMaterial(t.from)||l.get(t.name);if(!a?.slots)return;const s=(a?.slots||["default"]).map(i=>typeof i=="string"?{name:i,params:[]}:{name:i.name,params:i.params||[]});if(s.length===0)return;if(s.length===1)return s[0];const r=await He(s).catch(()=>null);if(!(r&&r.name==="default"&&(!r.params||r.params?.length===0)))return r}async onDrop(t){t.preventDefault();const{engine:n,dragging:o,dropping:l}=this,a=n.current.value,s=this.getHelper(t);if(!a||!o||!l.value||!s)return;const r=s.model,i=l.value.type;if(!await this.allowDrop(r,i))return;const d=this.createNodeDsl(o),m=new w.NodeModel(d);if(w.isBlock(r))a.addNode(m,void 0,i);else{const p=await this.getDropSlot(i==="inner"?r:r.parent);if(p===null){this.dropping.value=null;return}m.slot=p,a.addNode(m,r,i)}this.dropping.value=null,n.assets.clearCaches()}onSelected(t){this.setHover(null),this.selected.value=this.getHelper(t)}async onDragOver(t){const n=this.getHelper(t);if(!n)return;const{model:o,type:l}=n;o&&await this.allowDrop(o,l)?(t.preventDefault(),this.dropping.value=n):this.dropping.value=null}isVtjElement(t){return!!t.__vtj__&&!!t.__context__}findVtjElement(t){return t.find(n=>this.isVtjElement(n))}getNodeByElement(t){const n=t.__vtj__??"";return w.NodeModel.nodes[n]||null}getDropType(t,n,o){const{left:l,top:a,width:s,height:r}=t;return n>=l&&n<=l+s*.2?"left":n>=l+s*.8&&n<=l+s?"right":o>=a&&o<=a+r*.2?"top":o>=a+r*.8&&o<=a+r?"bottom":"inner"}getNodePath(t=[]){const n=t.filter(a=>this.isVtjElement(a)),o=this.engine.current.value;return[...n.map(a=>this.getNodeByElement(a)).filter(a=>!!a),o]}setDslFrom(t){const n=this.engine.assets.componentMap.get(t.name);if(t.from=t.from||n?.package,Array.isArray(t.children))for(const o of t.children)this.setDslFrom(o)}createNodeDsl(t){const{name:n,snippet:o={},from:l}=t,a={...o,name:n,from:l||t.package};return this.setDslFrom(a),a}getElmenetByModel(t){return!this.document||!t?null:w.isBlock(t)?this.document.body:Array.from(this.document.querySelectorAll("*")).find(o=>o.__vtj__===t.id)}findPathByNode(t){const n=[t];let o=t;for(;o.parent&&o.parent!==o;)o=o.parent,o!==t&&n.unshift(o);const l=this.engine.current.value;return n.unshift(l),n.reverse()}getHelper(t){const n=t.composedPath()||[],o=this.findVtjElement(n)||this.document?.body;if(!o)return null;const l=this.getNodeByElement(o)||this.engine.current.value;if(!l)return null;const a=o.getBoundingClientRect(),s=this.getDropType(a,t.clientX,t.clientY),r=this.getNodePath(n);return{el:o,model:l,rect:a,type:s,path:r}}cleanHelper(){this.setSelected(null),this.setHover(null),this.setDragging(null),this.setDropping(null)}async updateRect(){await F.delay(100);const t=e.unref(this.selected),n=e.unref(this.hover);if(t){const o=t.el.getBoundingClientRect();this.selected.value={...t,rect:o}}if(n){const o=n.el.getBoundingClientRect();this.hover.value={...n,rect:o}}}setDragging(t){this.dragging=t}async setHover(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t);if(!n)return;const o=n.getBoundingClientRect(),l=w.isBlock(t)?[]:this.findPathByNode(t);this.hover.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.hover.value=null}async setSelected(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t)||this.document?.createElement("span");if(!n)return;const o=n.getBoundingClientRect(),l=w.isBlock(t)?[]:this.findPathByNode(t);this.selected.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.selected.value=null}async setDropping(t,n="inner"){if(await e.nextTick(),t){const o=this.getElmenetByModel(t);if(!o)return;const l=o.getBoundingClientRect(),a=w.isBlock(t)?[]:this.findPathByNode(t);this.dropping.value={el:o,model:t,rect:l,type:n,path:a}}else this.dropping.value=null}async allowDrop(t,n="inner"){const{dragging:o,engine:l}=this,a=l.current.value;if(!o||!a)return!1;if(w.isBlock(t))return!0;const s=l.assets.componentMap,r=n!=="inner"&&t.parent||t,i=await l.assets.getBlockMaterial(r.from)||s.get(r.name);if(!i)return!1;const{parentIncludes:d=!0,name:m}=o,{childIncludes:p=!0}=i,v=d===!0||Array.isArray(d)&&d.includes(r.name),f=p===!0||Array.isArray(p)&&p.includes(m);return v&&f}dispose(){const{contentWindow:t,document:n}=this;this.setSelected(null),this.setHover(null),this.setDragging(null),t&&n&&this.unbindEvents(t,n),this.document=null}}class Ge{constructor(t,n,o=null){this.env=t,this.service=n,this.designer=o,this.nodeChange=this.__onNodeChange.bind(this),this.blockChange=this.__onBlockChange.bind(this)}app=null;dsl=null;nodeChange;blockChange;context=null;install(t){const{library:n,globals:o,VueRouter:l}=this.env;if(l){const s=l.createRouter({history:l.createWebHashHistory(),routes:[]});t.use(s)}const a=Object.values(n);Object.assign(t.config.globalProperties,o),t.config.errorHandler=(s,r,i)=>{const d=r?.$options.name,m=s?.message||s?.msg||"未知错误",p=`[ ${d} ] ${m}`;console.error({err:s,instance:r,info:i}),y.ElNotification.error({title:"运行错误",message:p})},a.forEach(s=>{(typeof s=="function"||typeof s.install=="function")&&t?.use(s)})}render(t){const{window:n,container:o,Vue:l,components:a,library:s,apis:r}=this.env,i=n.document.createElement("div");i.id="app",o.appendChild(i),this.dsl=l.reactive(t.toDsl());const d=D.createLoader({getDsl:async v=>await this.service.getFile(v)||null,options:{mode:D.ContextMode.Design,Vue:l,components:a,libs:s,apis:r,window:n}}),{renderer:m,context:p}=D.createRenderer({Vue:l,mode:D.ContextMode.Design,dsl:this.dsl,components:a,libs:s,apis:r,loader:d,window:n});this.app=l.createApp(m),this.install(this.app);try{this.app.mount(i)}catch(v){L(v.message||"未知错误","运行时错误"),console.error(v)}this.context=p,w.emitter.on(w.EVENT_NODE_CHANGE,this.nodeChange),w.emitter.on(w.EVENT_BLOCK_CHANGE,this.blockChange)}dispose(){if(this.app){this.app.unmount();const t=this.app._container;t&&t.parentNode&&(t.parentNode.removeChild(t),this.app._container=null),this.app=null}this.dsl=null,this.context=null,w.emitter.off(w.EVENT_NODE_CHANGE,this.nodeChange),w.emitter.off(w.EVENT_BLOCK_CHANGE,this.blockChange)}updateChild(t,n){const o=n.children||n.nodes||[];if(Array.isArray(o))for(let l=0;l<o.length;l++){const a=o[l];if(a.id===t.id){o.splice(l,1,t);return}else this.updateChild(t,a)}}__onNodeChange(t){this.dsl&&this.updateChild(t.toDsl(),this.dsl)}__onBlockChange(t){this.dispose(),this.render(t),this.designer?.selected.value&&this.designer.setSelected(t)}}class Ke extends w.Base{contentWindow=null;renderer=null;designer=e.shallowRef(null);engine;materialPath;constructor(t){super();const{engine:n,materialPath:o}=t;this.engine=n,this.materialPath=o,e.watch(this.engine.current,()=>{this.refresh()})}init(t,n,o){e.watch([t,n,o],()=>{t.value&&n.value.length&&(this.resetReady(),this.setup(t.value,n.value),this.contentWindow&&(this.designer.value?.dispose(),this.designer.value=new qe(this.engine,this.contentWindow,n)))},{immediate:!0,deep:!0})}setup(t,n){const o=t.contentWindow;if(!o){F.logger.warn("Simulator contentWindow is null");return}o.__simulator__=this;const l=o.document;this.contentWindow=o;const{scripts:a,css:s,materials:r,libraryExports:i,materialExports:d,materialMapLibrary:m}=D.parseDeps(n,this.materialPath);l.open(),l.write(`
78
+ l${K},-${Q}
79
+ v-${e.unref(l)-2*Q}
80
+ l-${K},-${Q}z`,"data-automation-id":"padding-left-button","aria-label":"Padding left button",class:"lr-path-color",onClick:u[3]||(u[3]=g=>p("left"))},null,8,wo)])]),e.createElementVNode("clipPath",Co,[e.createElementVNode("rect",{x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,Vo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-outer)",x:"0",y:"0",width:e.unref(o),height:e.unref(l),fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,_o),e.createElementVNode("clipPath",Bo,[e.createElementVNode("rect",{x:"36",y:"24",width:e.unref(o)-2*K+1,height:e.unref(l)-2*Q+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none"}},null,8,xo)]),e.createElementVNode("rect",{class:"stroke","clip-path":"url(#margin-inner)",x:"36",y:"24",width:e.unref(o)-2*K+1,height:e.unref(l)-2*Q+1,fill:"transparent",rx:"2",ry:"2",style:{"pointer-events":"none","stroke-width":"2px"}},null,8,So)],8,ho)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-top",{"is-setting":t.styleJson.top}]),onClick:u[4]||(u[4]=g=>p("top"))},e.toDisplayString(t.styleJson.top||d.value[0]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-right",{"is-setting":t.styleJson.right}]),onClick:u[5]||(u[5]=g=>p("right"))},e.toDisplayString(t.styleJson.right||d.value[1]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-bottom",{"is-setting":t.styleJson.bottom}]),onClick:u[6]||(u[6]=g=>p("bottom"))},e.toDisplayString(t.styleJson.bottom||d.value[2]||"-"),3),e.createElementVNode("div",{class:e.normalizeClass(["spacing-edit padding-left",{"is-setting":t.styleJson.left}]),onClick:u[7]||(u[7]=g=>p("left"))},e.toDisplayString(t.styleJson.left||d.value[3]||"-"),3)],512),a.value?(e.openBlock(),e.createBlock($e,{key:0,auto:"",name:s.value,modelValue:r.value,"onUpdate:modelValue":u[8]||(u[8]=g=>r.value=g),onClose:v,onSubmit:t.setStyle},null,8,["name","modelValue","onSubmit"])):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(e.unref(E),{name:"z-index",label:"层级",setters:{name:"NumberSetter"},variable:!1,value:t.styleJson["z-index"],onChange:t.setStyle},null,8,["value","onChange"])]),_:1})])]),_:1}))}}),Eo=e.defineComponent({__name:"texting",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{name:"font-size",label:"字号",setter:"SizeSetter"},{name:"font-family",label:"字体",setter:"SelectSetter",options:["Arial","Verdana","Georgia",'"Times New Roman"','"Microsoft YaHei"',"SimSun","SimHei","KaiTi","FangSong","STSong","STKaiti","STFangsong","STCaiyun","STHupo","STLiti","STXingkai","STXinwei","STXinwei","STZhongsong"]},{name:"line-height",label:"行高",setter:"SizeSetter"},{name:"font-weight",label:"字重",setter:"SelectSetter",options:[{label:"正常",value:"normal"},{label:"粗体",value:"bold"},{label:"更粗",value:"bolder"},{label:"更细",value:"lighter"}]}],o=[{label:"左",value:"left",svg:y.IconTextAlignLeft},{label:"中",value:"center",svg:y.IconTextAlignCenter},{label:"右",value:"right",svg:y.IconTextAlignRight},{label:"两端",value:"justify",svg:y.IconTextAlignJustify}],l=[{label:"正常",value:"normal",svg:y.IconFontStyleNone},{label:"斜体",value:"italic",svg:y.IconFontStyleItalic}],a=[{label:"无",value:"none",svg:y.IconCross},{label:"下划线",value:"underline",svg:y.IconTextDecorationUnderline},{label:"删除线",value:"line-through",svg:y.IconTextDecorationStrike},{label:"上划线",value:"overline",svg:y.IconTextDecorationOverline}];return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"文本",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElForm),{class:"v-style-widget__texting",size:"small","label-width":"60px",inline:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,i=>e.createVNode(e.unref(E),{name:i.name,label:i.label,setters:{name:i.setter},options:i.options,variable:!1,value:t.styleJson[i.name],onChange:s.setStyle},null,8,["name","label","setters","options","value","onChange"])),64))]),_:1}),e.createVNode(e.unref(k.ElForm),{size:"small","label-width":"60px"},{default:e.withCtx(()=>[e.createVNode(e.unref(E),{name:"color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson.color,onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"text-align",label:"对齐",setters:{name:"TagSetter"},variable:!1,options:o,value:t.styleJson["text-align"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"font-style",label:"风格",setters:{name:"TagSetter"},variable:!1,options:l,value:t.styleJson["font-style"],onChange:s.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"text-decoration",label:"修饰",setters:{name:"TagSetter"},variable:!1,options:a,value:t.styleJson["text-decoration"],onChange:s.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),Ao=e.defineComponent({__name:"backgound",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=(i,m)=>{m?t.setStyle("background-image",`url(${m})`):t.setStyle("background-image",void 0)},o=i=>{const m=/^url\(([\w\W]+)\)$/;return i?.match(m)?.[1]},l=[{label:"重复",value:"repeat",svg:y.IconTileXy},{label:"水平重复",value:"repeat-x",svg:y.IconTileX},{label:"垂直重复",value:"repeat-y",svg:y.IconTileY},{label:"不重复",value:"no-repeat",svg:y.IconClose}],a=[{label:"固定",value:"fixed"},{label:"滚动",value:"scroll"}],s=[{label:"裁剪到填充",value:"padding-box"},{label:"裁剪到内容",value:"content-box"},{label:"裁剪到文字",value:"text"}],r=[{label:"自动",value:"auto"},{label:"长度",value:"length"},{label:"百分比",value:"percentage"},{label:"覆盖",value:"cover"},{label:"填充",value:"contain"}];return(i,m)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"背景",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(E),{name:"background-image",label:"图片",setters:{name:"ImageSetter"},variable:!1,value:o(t.styleJson["background-image"]),onChange:n},null,8,["value"]),e.createVNode(e.unref(E),{name:"background-color",label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson["background-color"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"background-repeat",label:"重复",setters:{name:"TagSetter"},variable:!1,value:t.styleJson["background-repeat"],options:l,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"background-attachment",label:"固定",setters:{name:"RadioSetter"},variable:!1,value:t.styleJson["background-attachment"],options:a,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"background-position",label:"位置",setters:{name:"SectionSetter",props:{sections:2}},variable:!1,value:t.styleJson["background-position"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"background-size",label:"大小",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-size"],options:r,onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"background-clip",label:"裁剪",setters:{name:"SelectSetter"},variable:!1,value:t.styleJson["background-clip"],options:s,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),jo=e.defineComponent({__name:"border",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=e.ref("border"),o=[{label:"全边框",svg:y.IconBorderAll,value:"border"},{label:"左边框",svg:y.IconBorderLeft,value:"border-left"},{label:"上边框",svg:y.IconBorderTop,value:"border-top"},{label:"下边框",svg:y.IconBorderBottom,value:"border-bottom"},{label:"右边框",svg:y.IconBorderRight,value:"border-right"}],l=[{label:"无",value:"none",svg:y.IconCross},{label:"实线",value:"solid",svg:y.IconBorderStyleSolid},{label:"虚线",value:"dashed",svg:y.IconBorderStyleDashed},{label:"点线",value:"dotted",svg:y.IconBorderStyleDotted}],a=(s,r)=>{n.value=r};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"边框",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(E),{name:"border-radius",label:"圆角",setters:{name:"SectionSetter",props:{sections:4}},variable:!1,value:t.styleJson["border-radius"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"borders",label:"边框",setters:{name:"TagSetter"},variable:!1,options:o,value:n.value,onChange:a},null,8,["value"]),n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(),e.createBlock(e.unref(E),{name:`${n.value}-width`,key:`${n.value}-width`,label:"宽度",setters:{name:"SizeSetter"},variable:!1,value:t.styleJson[`${n.value}-width`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref(E),{name:`${n.value}-style`,key:`${n.value}-style`,label:"样式",setters:{name:"TagSetter"},options:l,variable:!1,value:t.styleJson[`${n.value}-style`],onChange:t.setStyle},null,8,["name","value","onChange"])),(e.openBlock(),e.createBlock(e.unref(E),{name:`${n.value}-color`,key:`${n.value}-color`,label:"颜色",setters:{name:"ColorSetter"},variable:!1,value:t.styleJson[`${n.value}-color`],onChange:t.setStyle},null,8,["name","value","onChange"]))],64)):e.createCommentVNode("",!0)]),_:1})]),_:1}))}}),Do=e.defineComponent({__name:"effect",props:{styleJson:{},setStyle:{type:Function}},setup(c){const t=c,n=[{label:"自动",value:"auto",svg:y.IconCursorAuto},{label:"Pointer",value:"pointer",svg:y.IconCursorPointer},{label:"NotAllowed",value:"not-allowed",svg:y.IconCursorNotAllowed},{label:"无",value:"none",svg:y.IconCursorNone}],o=[{label:"Basic",value:"var(--el-box-shadow)"},{label:"Light",value:"var(--el-box-shadow-light)"},{label:"Lighter",value:"var(--el-box-shadow-lighter)"},{label:"Dark",value:"var(--el-box-shadow-dark)"}],l=(s,r)=>{t.setStyle("opacity",r!==void 0?(Number(r)||0)/100:void 0)},a=()=>Number(t.styleJson.opactiy||0)*100;return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{title:"效果",class:"v-sub-panel",size:"small",fit:!1,collapsable:""},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElForm),{"label-width":"60px",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(E),{name:"opacity",label:"透明度",setters:{name:"SliderSetter"},variable:!1,value:a(),onChange:l},null,8,["value"]),e.createVNode(e.unref(E),{name:"box-shadow",label:"阴影",setters:{name:"SelectSetter"},variable:!1,options:o,value:t.styleJson["box-shadow"],onChange:t.setStyle},null,8,["value","onChange"]),e.createVNode(e.unref(E),{name:"cursor",label:"光标",setters:{name:"TagSetter"},variable:!1,options:n,value:t.styleJson.cursor,onChange:t.setStyle},null,8,["value","onChange"])]),_:1})]),_:1}))}}),Io=e.defineComponent({name:"StyleWidget",__name:"index",props:{isStyleCodeMode:{type:Boolean}},setup(c){const t=c,{selected:n}=ee(),o=e.computed(()=>{const s=n.value?.model||null;return V.isBlock(s)?null:s}),l=e.computed(()=>o.value?.getPropValue("style")||{}),a=(s,r)=>{const i=o.value?.getPropValue("style")||{};r!==void 0?i[s]=r:delete i[s],o.value?.setProp("style",i)};return(s,r)=>t.isStyleCodeMode?(e.openBlock(),e.createBlock(jn,{key:0})):(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:`widget-style-${o.value?.id}`,class:"v-style-widget",direction:"column",fit:""},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(An,{key:`Layout${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(po,{key:`Spacing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(fo,{key:`Sizing${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(No,{key:`Positioning${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(Eo,{key:`Texting${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(Ao,{key:`Backgound${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(jo,{key:`Border${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"])),(e.openBlock(),e.createBlock(Do,{key:`Effect${o.value?.id}`,"style-json":l.value,setStyle:a},null,8,["style-json"]))]),_:1}))}}),Fo=["src"],Po=e.defineComponent({name:"PreviewerWidget",__name:"index",props:{path:{type:Function}},setup(c,{expose:t}){const n=c,o=e.ref(),l=e.ref(Symbol()),{current:a,engine:s}=U(),{width:r,height:i}=le.useElementSize(o),m=e.computed(()=>a.value&&n.path?n.path(a.value):null),d=e.computed(()=>s.skeleton?.getWidget("Toolbar")?.widgetRef.mode??"pc");return t({refresh:()=>{l.value=Symbol()}}),(v,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:o,class:"v-previewer",key:l.value},[e.createVNode(e.unref(ye),{mode:d.value,width:e.unref(r),height:e.unref(i)},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("iframe",{key:0,ref:"iframe",frameborder:"0",src:m.value},null,8,Fo)):e.createCommentVNode("",!0)]),_:1},8,["mode","width","height"])]))}}),To=e.defineComponent({name:"NodePathWidget",inheritAttrs:!1,__name:"index",setup(c){const{selected:t,designer:n}=ee(),o=e.computed(()=>(t.value?.path||[]).slice(0).reverse()),l=s=>{n.value?.setSelected(s)},a=s=>{n.value?.setHover(s)};return(s,r)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(k.ElBreadcrumb),{key:0,class:"v-nodepath-widget","separator-icon":e.unref(y.ArrowRight)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,i=>(e.openBlock(),e.createBlock(e.unref(k.ElBreadcrumbItem),{onClick:m=>l(i),onMouseover:m=>a(i)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.name),1)]),_:2},1032,["onClick","onMouseover"]))),256))]),_:1},8,["separator-icon"])):e.createCommentVNode("",!0)}}),Ro=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t}=U(),n=e.ref(),o=e.computed(()=>JSON.stringify(t.value?.toDsl()||{},null,2)),l=e.computed(()=>t.value?t.value.name:""),a=async()=>{const r=(n.value?.getEditor()).getValue();if(r&&await re("手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。"))try{const m=JSON.parse(r);t.value?.update(m),H("保存成功")}catch(m){M(m?.message)}};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-schema-widget",title:l.value,subtitle:"手动修改DSL有风险,可能导致页面无法加载,请确认您的操作无误。",size:"small",fit:"",save:"",onSave:a},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"editorRef",ref:n,"model-value":o.value,height:"100%",lang:"json",dark:""},null,8,["model-value"])]),_:1},8,["title"]))}}),zo=e.defineComponent({name:"SchemaWidget",__name:"index",setup(c){const{current:t,engine:n}=U(),o=e.ref(),l=e.ref(""),a=e.computed(()=>t.value?`$vtj/vue/${t.value.id}.vue`:""),s=e.computed(()=>t.value?t.value.name:"");return e.watch(t,async r=>{const i=n.project.value;i&&r?l.value=await n.service.genVueContent(i.toDsl(),r.toDsl()):l.value=""},{immediate:!0,deep:!0}),(r,i)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-raw-widget",title:s.value,subtitle:a.value,size:"small",fit:""},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"editorRef",ref:o,"model-value":l.value,height:"100%",lang:"html",dark:"",readonly:""},null,8,["model-value"])]),_:1},8,["title","subtitle"]))}}),$o=["src"],Lo=e.defineComponent({name:"DocsWidget",__name:"index",props:{url:{default:"https://newgateway.gitee.io/vtj/help/index.html"}},setup(c){const t=c,n=e.ref();let o=null;e.onMounted(()=>{o||(o=k.ElLoading.service({target:n.value?.$el}))}),e.onUnmounted(()=>{l(),o=null});const l=()=>{o?.close()};return(a,s)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-docs-widget",size:"small",fit:"",body:{padding:!1},header:!1,ref_key:"panel",ref:n},{default:e.withCtx(()=>[e.createElementVNode("iframe",{ref:"frame",src:t.url,onLoad:l},null,40,$o)]),_:1},512))}}),Le="data:image/png;base64,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",Oo={class:"v-about-widget"},Xo={class:"v-about-widget__logo"},Mo=["src"],Jo=e.createElementVNode("div",{class:"v-about-widget__name"},"VTJ.PRO",-1),Wo={class:"v-about-widget__version"},Uo=e.defineComponent({name:"AboutWidget",__name:"index",setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Oo,[e.createElementVNode("div",Xo,[e.createElementVNode("img",{src:e.unref(Le)},null,8,Mo)]),Jo,e.createElementVNode("div",Wo,"版本:"+e.toDisplayString(e.unref(Be)),1)]))}}),qo={class:"v-image-setter__plus"},Oe=e.defineComponent({name:"ImageSetter",__name:"image",props:{modelValue:{},limit:{default:1}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref([]),a=e.computed(()=>l.value.length<n.limit),s=i=>i.type.includes("image")?(R.fileToBase64(i).then(m=>{l.value=[{name:i.name,url:m}]}),!1):(k.ElMessage.error("只能上传图片"),!1),r=()=>{l.value=[]};return e.watch(()=>n.modelValue,i=>{l.value=i?[{name:"",url:i}]:[]},{immediate:!0}),e.watch(l,()=>{const i=l.value[0]?.url;o("change",i),o("update:modelValue",i)}),(i,m)=>(e.openBlock(),e.createBlock(e.unref(k.ElUpload),e.mergeProps({class:["v-image-setter",{"v-image-setter--addable":a.value}],"list-type":"picture-card",limit:1,action:"#","file-list":l.value,"onUpdate:fileList":m[0]||(m[0]=d=>l.value=d),"before-upload":s,"auto-upload":!0,"on-remove":r},i.$attrs),{default:e.withCtx(()=>[e.createElementVNode("span",qo,[e.createVNode(e.unref(b.XIcon),{icon:e.unref(y.Plus)},null,8,["icon"])])]),_:1},16,["class","file-list"]))}}),Ho=e.defineComponent({name:"ProjectConfigWidget",__name:"index",setup(c){const{project:t}=se(),n=o=>{t.value?.setConfig(o)};return(o,l)=>(e.openBlock(),e.createBlock(e.unref(I),{class:"v-project-config-widget",title:"项目配置"},{default:e.withCtx(()=>[e.unref(t)?(e.openBlock(),e.createBlock(e.unref(b.XForm),{key:0,footer:!1,size:"small","label-position":"top",model:e.unref(t).config,onChange:n},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XField),{label:"站点名称",name:"title"}),e.createVNode(e.unref(b.XField),{label:"Logo",name:"logo",editor:Oe}),e.createVNode(e.unref(b.XField),{label:"主题切换",name:"themeSwitchable",editor:"switch"}),e.createVNode(e.unref(b.XField),{label:"模拟数据",name:"mock",editor:"switch"})]),_:1},8,["model"])):e.createCommentVNode("",!0)]),_:1}))}}),T={Logo:wt,EmptyWidget:Vt,Switcher:xt,Toolbar:Nt,Actions:jt,Pages:Ut,Blocks:qt,Components:Qt,Outline:Yt,History:Zt,Apis:sn,Deps:cn,Designer:mn,Scripts:bn,Properties:kn,Events:yn,Css:wn,Directives:Cn,Defined:Sn,DataSources:En,Style:Io,Previewer:Po,NodePath:To,Schema:Ro,Raw:zo,Docs:Lo,About:Uo,ProjectConfig:Ho},Xe=[{name:"Logo",region:"Brand",component:T.Logo},{name:"Switcher",region:"Brand",component:T.Switcher},{name:"Toolbar",region:"Toolbar",component:T.Toolbar},{name:"Actions",region:"Actions",component:T.Actions},{name:"Pages",region:"Apps",component:T.Pages,type:"app",openType:"panel",icon:y.VtjIconDocument,label:"页面管理"},{name:"Blocks",region:"Apps",component:T.Blocks,type:"app",openType:"panel",icon:y.VtjIconComponents,label:"区块管理"},{name:"Components",region:"Apps",component:T.Components,type:"app",openType:"panel",icon:y.VtjIconBlock,label:"组件库"},{name:"Outline",region:"Apps",component:T.Outline,type:"app",openType:"panel",icon:y.VtjIconOutline,label:"大纲树"},{name:"History",region:"Apps",component:T.History,type:"app",openType:"panel",icon:y.VtjIconHistory,label:"历史记录"},{name:"Apis",region:"Apps",component:T.Apis,type:"app",openType:"panel",icon:y.VtjIconApi,label:"API管理"},{name:"Deps",region:"Apps",component:T.Deps,type:"app",openType:"panel",icon:y.VtjIconCategory,label:"依赖管理"},{name:"ProjectConfig",region:"Apps",component:T.ProjectConfig,type:"app",openType:"panel",icon:y.VtjIconSetting,label:"项目配置"},{name:"About",region:"Apps",component:T.About,type:"app",openType:"dialog",icon:y.VtjIconInfo,label:"关于",props:{width:500,height:300}},{name:"Designer",region:"Workspace",component:T.Designer,type:"tab",closable:!1,label:"设计视图"},{name:"Previewer",region:"Preview",component:T.Previewer,type:"tab",closable:!1,label:"预览视图"},{name:"Schema",region:"Workspace",component:T.Schema,type:"tab",closable:!0,label:"DSL视图"},{name:"Raw",region:"Workspace",component:T.Raw,type:"tab",closable:!0,label:"源码视图"},{name:"Docs",region:"Workspace",component:T.Docs,type:"tab",closable:!0,label:"帮助中心"},{name:"Scripts",region:"Settings",component:T.Scripts,type:"tab",group:Y.Block,label:"设置"},{name:"Css",region:"Settings",component:T.Css,type:"tab",group:Y.Block,label:"CSS"},{name:"DataSources",region:"Settings",component:T.DataSources,type:"tab",group:Y.Block,label:"数据源"},{name:"Defined",region:"Settings",component:T.Defined,type:"tab",group:Y.Block,label:"定义"},{name:"Properties",region:"Settings",component:T.Properties,type:"tab",group:Y.Node,label:"属性"},{name:"Style",region:"Settings",component:T.Style,type:"tab",group:Y.Node,label:"样式"},{name:"Events",region:"Settings",component:T.Events,type:"tab",group:Y.Node,label:"事件"},{name:"Directives",region:"Settings",component:T.Directives,type:"tab",group:Y.Node,label:"指令"},{name:"NodePath",region:"Status",component:T.NodePath}],Me=[{package:"vue",version:"latest",library:"Vue",urls:["@vtj/materials/deps/vue/vue.global.prod.js"],assetsLibrary:V.BUILT_IN_VUE,required:!0,official:!0,enabled:!0},{package:"vue-router",version:"latest",library:"VueRouter",urls:["@vtj/materials/deps/vue-router/vue-router.global.prod.js"],assetsLibrary:V.BUILT_IN_VUE_ROUTER,required:!0,official:!0,enabled:!0},{package:"@vtj/utils",version:"latest",library:"VtjUtils",urls:["@vtj/materials/deps/@vtj/utils/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"@vtj/icons",version:"latest",library:"VtjIcons",urls:["@vtj/materials/deps/@vtj/icons/style.css","@vtj/materials/deps/@vtj/icons/index.umd.js"],required:!0,official:!0,enabled:!0},{package:"element-plus",version:"latest",library:"ElementPlus",urls:["@vtj/materials/deps/element-plus/dark/css-vars.css","@vtj/materials/deps/element-plus/index.css","@vtj/materials/deps/element-plus/index.full.min.js"],assetsUrl:"@vtj/materials/assets/element/index.umd.js",assetsLibrary:"ElementPlusMaterial",required:!1,official:!0,enabled:!0},{package:"echarts",version:"latest",library:"echarts",urls:["@vtj/materials/deps/echarts/echarts.min.js"],required:!1,official:!0,enabled:!0},{package:"@vtj/ui",version:"latest",library:"VtjUI",urls:["@vtj/materials/deps/@vtj/ui/style.css","@vtj/materials/deps/@vtj/ui/index.umd.js"],assetsUrl:"@vtj/materials/assets/ui/index.umd.js",assetsLibrary:"VtjUIMaterial",required:!1,official:!0,enabled:!0},{package:"ant-design-vue",version:"latest",library:"antd",urls:["@vtj/materials/deps/ant-design-vue/rest.css","@vtj/materials/deps/ant-design-vue/dayjs/dayjs.min.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/customParseFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekday.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/localeData.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekOfYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekYear.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/advancedFormat.js","@vtj/materials/deps/ant-design-vue/dayjs/plugin/quarterOfYear.js","@vtj/materials/deps/ant-design-vue/antd.min.js"],assetsUrl:"@vtj/materials/assets/antdv/index.umd.js",assetsLibrary:"AntdvMaterial",required:!1,official:!0,enabled:!1}],Go=[{id:"html",category:"HTML"},{id:"elements",category:"特殊元素"},{id:"components",category:"内置组件"}],Ko=[{name:"div",label:"容器",categoryId:"html",snippet:{children:"容器文本内容示例"}},{name:"span",label:"内联",categoryId:"html",snippet:{children:"内联容器文本内容示例"}},{name:"a",label:"链接",categoryId:"html",props:[{name:"href",label:"href",setters:"InputSetter"}],snippet:{children:"链接文本内容示例",props:{href:"#"}}},{name:"img",label:"图片",categoryId:"html",childIncludes:!1,props:[{name:"src",label:"src",setters:"InputSetter"},{name:"width",label:"width",setters:"InputSetter"},{name:"height",label:"height",setters:"InputSetter"}],snippet:{props:{src:Le,width:"200",height:"200"}}},{name:"h1",label:"大标题",categoryId:"html",snippet:{children:"标题"}},{name:"h2",label:"中标题",categoryId:"html",snippet:{children:"标题"}},{name:"h3",label:"小标题",categoryId:"html",snippet:{children:"标题"}},{name:"p",label:"段落",categoryId:"html",snippet:{children:"段落文本"}},{name:"component",label:"动态组件",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#component",props:[{name:"is",label:"组件名",setters:"InputSetter"}],snippet:{children:"组件文本内容示例",props:{is:"div"}}},{name:"slot",label:"插槽",categoryId:"elements",doc:"https://cn.vuejs.org/api/built-in-special-elements.html#slot",props:[{name:"name",label:"名称",defaultValue:"default",setters:"InputSetter"}],snippet:{children:"默认插槽内容"}}],Qo=[...Ko,{name:"Transition",label:"过渡效果",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transition",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"mode",label:"时序",defaultValue:"default",title:"控制离开/进入过渡的时序。",setters:"SelectSetter",options:["in-out","out-in","default"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"Transition"}},{name:"TransitionGroup",label:"过渡效果组",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#transitiongroup",package:"vue",props:[{name:"name",label:"名称",defaultValue:"",title:"用于自动生成过渡 CSS class 名",setters:"InputSetter"},{name:"tag",label:"标签名",defaultValue:void 0,title:"如果未定义,则渲染为片段 (fragment)",setters:"InputSetter"},{name:"moveClass",label:"moveClass",defaultValue:void 0,title:"用于自定义过渡期间被应用的 CSS class。",setters:"InputSetter"},{name:"css",label:"应用CSS",defaultValue:!0,title:"是否应用 CSS 过渡 class",setters:"BooleanSetter"},{name:"type",label:"事件类型",defaultValue:void 0,title:"指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型",setters:"SelectSetter",options:["transition","animation"]},{name:"duration",label:"持续时间",defaultValue:void 0,title:"显式指定过渡的持续时间",setters:["NumberSetter","JSONSetter"]},{name:"appear",label:"使用过渡",defaultValue:!1,title:"是否对初始渲染使用过渡",setters:"BooleanSetter"},{name:"enterFromClass",label:"enterFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterActiveClass",label:"enterActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"enterToClass",label:"enterToClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearFromClass",label:"appearFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearActiveClass",label:"appearActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"appearToClass",label:"appearToClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveFromClass",label:"leaveFromClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveActiveClass",label:"leaveActiveClass",defaultValue:void 0,setters:"InputSetter"},{name:"leaveToClass",label:"leaveToClass",defaultValue:void 0,setters:"InputSetter"}],events:["before-enter","before-leave","enter","leave","appear","after-enter","after-leave","after-appear","enter-cancelled","leave-cancelled","ppear-cancelled"],snippet:{children:"TransitionGroup"}},{name:"KeepAlive",label:"缓存切换组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#keepalive",package:"vue",props:[{name:"include",label:"匹配包含",title:"如果指定,则只有与 `include` 名称, 匹配的组件才会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"exclude",label:"匹配排除",title:"任何名称与 `exclude` 匹配的组件都不会被缓存。",setters:["InputSetter","JSONSetter"]},{name:"max",label:"最大缓存数",title:"最多可以缓存多少组件实例。",setters:["InputSetter"]}]},{name:"Teleport",label:"传送组件",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#teleport",package:"vue",props:[{name:"to",label:"目标容器",title:"指定目标容器,可以是选择器或实际元素",setters:["InputSetter"]},{name:"disabled",label:"禁用",title:"当值为 `true` 时,内容将保留在其原始位置, 而不是移动到目标容器中, 可以动态更改",setters:["BooleanSetter"]}]},{name:"Suspense",label:"异步依赖",categoryId:"components",doc:"https://cn.vuejs.org/api/built-in-components.html#suspense",package:"vue",props:[{name:"timeout",label:"timeout",setters:["InputSetter"]}]},{name:"RouterLink",label:"路由链接",categoryId:"components",doc:"https://router.vuejs.org/zh/api/interfaces/RouterLinkProps.html",package:"vue-router",props:[{name:"to",label:"to",setters:["InputSetter"]},{name:"replace",label:"replace",setters:["BooleanSetter"]}],snippet:{children:"RouterLink",props:{to:"/"}}}],Je=[{name:V.BUILT_IN_NAME,version:"latest",label:"内置",library:V.BUILT_IN_NAME,order:0,categories:Go,components:Qo}],Yo=e.defineComponent({name:"StringSetter",__name:"string",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(k.ElInput),e.mergeProps({clearable:""},t.$attrs),null,16))}}),Zo=e.defineComponent({name:"BooleanSetter",__name:"boolean",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(k.ElSwitch),e.mergeProps(t.$attrs,{"model-value":!!t.$attrs.modelValue}),null,16,["model-value"]))}}),el="{{",tl="}}",nl=e.defineComponent({name:"ExpressionSetter",__name:"expression",props:{modelValue:{},context:{}},emits:["change"],setup(c,{emit:t}){const n=(i="")=>({type:"JSExpression",value:P.isJSExpression(i)?i.value:i}),o=c,l=t,a=i=>J(i,o.context,!0),s=e.ref(n(o.modelValue).value);e.watch(()=>o.modelValue,i=>{s.value=n(i).value},{immediate:!0});const r=i=>{const m={type:"JSExpression",value:i};a(m)&&l("change",m)};return(i,m)=>(e.openBlock(),e.createBlock(e.unref(k.ElInput),{class:"v-expression-setter",modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=d=>s.value=d),onChange:r},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(el))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(tl))]),_:1},8,["modelValue"]))}}),ol=e.defineComponent({name:"SelectSetter",__name:"select",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(k.ElSelect),e.mergeProps({clearable:""},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(k.ElOption),e.mergeProps({key:l.label},l),null,16))),128))]),_:1},16))}}),ll=e.defineComponent({name:"NumberSetter",__name:"number",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.computed(()=>P.isJSExpression(n.modelValue)?void 0:Number(n.modelValue||0)),a=s=>{o("change",s)};return(s,r)=>(e.openBlock(),e.createBlock(e.unref(k.ElInputNumber),e.mergeProps({class:"v-number-setter","controls-position":"right","model-value":l.value},s.$attrs,{onChange:a}),null,16,["model-value"]))}}),rl=e.defineComponent({name:"ColorSetter",__name:"color",setup(c){return(t,n)=>(e.openBlock(),e.createBlock(e.unref(k.ElColorPicker),e.normalizeProps(e.guardReactiveProps(t.$attrs)),null,16))}}),al=e.defineComponent({name:"JsonSetter",__name:"json",props:{modelValue:{default:void 0},type:{default:"JSON"}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(typeof n.modelValue=="object"?JSON.stringify(n.modelValue,null,2):void 0),a=e.computed(()=>!!l.value),s=e.ref(!1),r=t,i=v=>{let f=!0;try{const u=JSON.parse(v);if(n.type==="Array"&&!Array.isArray(u))throw new Error(`"${v}" is not a Array`);if(n.type==="Object"&&!R.isPlainObject(u))throw new Error(`"${v}" is not a PlainObject`);if(typeof u!="object")throw new Error(`"${v}" is not a ${n.type}`)}catch(u){f=!1,k.ElNotification.error({title:"代码错误",message:u?.message||u})}return f},m=()=>{const v=o.value?.getEditor();if(v){const f=v.getValue();i(f)&&(l.value=f,r("change",JSON.parse(f)),s.value=!1)}},d=()=>{l.value="",r("change",void 0),s.value=!1},p=()=>{s.value=!0};return(v,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-json-setter",{"is-active":a.value}])},[e.createVNode(e.unref(k.ElInput),e.mergeProps({readonly:"",onFocus:p,"model-value":n.type,"suffix-icon":e.unref(y.MoreFilled)},v.$attrs),null,16,["model-value","suffix-icon"]),s.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:s.value,"onUpdate:modelValue":f[0]||(f[0]=u=>s.value=u),title:n.type,width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:m,onClear:d},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"codeEditor",ref:o,height:"100%",lang:"json",dark:"","model-value":l.value},null,8,["model-value"])]),_:1},8,["modelValue","title"])):e.createCommentVNode("",!0)],2))}}),sl=e.defineComponent({name:"FunctionSetter",__name:"function",props:{modelValue:{default:()=>({type:"JSFunction",value:""})}},emits:["change"],setup(c,{emit:t}){const n=c,o=e.ref(),l=e.ref(n.modelValue.value),a=e.ref(!1),s=e.computed(()=>!!l.value),r=t,i=()=>{const p=o.value?.getEditor();if(p){const v=p.getValue(),f={type:"JSFunction",value:v};J(f,{})&&(l.value=v,r("change",f),a.value=!1)}},m=()=>{l.value="",r("change",void 0),a.value=!1},d=()=>{a.value=!0};return(p,v)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v-function-setter",{"is-active":s.value}])},[e.createVNode(e.unref(k.ElInput),e.mergeProps({readonly:"",onFocus:d,"model-value":"JSFunction","suffix-icon":e.unref(y.MoreFilled)},p.$attrs),null,16,["suffix-icon"]),a.value?(e.openBlock(),e.createBlock(e.unref(b.XDialog),{key:0,modelValue:a.value,"onUpdate:modelValue":v[0]||(v[0]=f=>a.value=f),title:"JSFunction",width:"1000px",height:"600px",cancel:"",submit:"",clear:"",onSubmit:i,onClear:m},{default:e.withCtx(()=>[e.createVNode(e.unref(X),{ref_key:"codeEditor",ref:o,height:"100%","model-value":l.value,dark:""},null,8,["model-value"])]),_:1},8,["modelValue"])):e.createCommentVNode("",!0)],2))}}),il=e.defineComponent({name:"RadioSetter",__name:"radio",props:{options:{default:()=>[]}},setup(c){const t=c;return(n,o)=>(e.openBlock(),e.createBlock(e.unref(k.ElRadioGroup),e.mergeProps({class:"v-radio-setter",size:"small"},n.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,l=>(e.openBlock(),e.createBlock(e.unref(k.ElRadioButton),{label:l.label,value:l.value,title:l.label},{default:e.withCtx(()=>[l.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:l.svg},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.label),1)],64))]),_:2},1032,["label","value","title"]))),256))]),_:1},16))}}),cl=["label","title","onClick"],ul=e.defineComponent({name:"TagSetter",__name:"tag",props:{options:{default:()=>[]},modelValue:{}},emits:["update:modelValue","change"],setup(c,{emit:t}){const n=c,o=t,l=a=>{a.value===n.modelValue?(o("update:modelValue",void 0),o("change",void 0)):(o("update:modelValue",a.value),o("change",a.value))};return(a,s)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"v-tag-setter",size:"small"},a.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.options,r=>(e.openBlock(),e.createElementBlock("span",{label:r.value,title:r.label,class:e.normalizeClass({"is-active":n.modelValue===r.value}),onClick:i=>l(r)},[r.svg?(e.openBlock(),e.createBlock(e.unref(b.XIcon),{key:0,src:r.svg,size:16},null,8,["src"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.label),1)],64))],10,cl))),256))],16))}}),We=e.defineComponent({name:"SizeSetter",__name:"size",props:{modelValue:{}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!0),a=e.computed(()=>l.value?"px":void 0),s=e.ref(n.modelValue),r=i=>{l.value=!!Number(i)};return e.watch(s,i=>{o("change",i)}),e.watch(()=>n.modelValue,i=>{i&&(l.value=i.endsWith("px"),s.value=i)},{immediate:!0}),(i,m)=>(e.openBlock(),e.createBlock(e.unref(b.XInputUnit),e.mergeProps({clearable:"",unit:a.value,"with-unit":!!a.value,modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=d=>s.value=d),onChange:r},i.$attrs),null,16,["unit","with-unit","modelValue"]))}}),dl={class:"v-section-setter"},ml=e.defineComponent({name:"SectionSetter",__name:"section",props:{modelValue:{},sections:{default:4}},emits:["change"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(new Array(n.sections).fill(""));e.watch(()=>n.modelValue,s=>{l.value=s?s.split(" "):new Array(n.sections).fill("")},{immediate:!0});const a=()=>{o("change",l.value.join(" ").trim())};return(s,r)=>(e.openBlock(),e.createElementBlock("div",dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.sections,i=>(e.openBlock(),e.createBlock(We,{name:i-1,modelValue:l.value[i-1],"onUpdate:modelValue":m=>l.value[i-1]=m,onChange:a,class:"v-section-setter__item"},null,8,["name","modelValue","onUpdate:modelValue"]))),256))]))}}),pl={class:"v-slider-setter"},fl=e.defineComponent({name:"SliderSetter",__name:"slider",props:{modelValue:{default:void 0}},emits:["change","update:modelValue"],setup(c,{emit:t}){const n=c,o=t,l=e.ref();e.watch(()=>n.modelValue,s=>{l.value=s},{immediate:!0}),e.watch(l,s=>{o("change",s),o("update:modelValue",s)});const a=()=>{l.value=void 0,o("change",void 0),o("update:modelValue",void 0)};return(s,r)=>(e.openBlock(),e.createElementBlock("div",pl,[e.createVNode(e.unref(k.ElSlider),e.mergeProps({size:"small"},s.$attrs,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=i=>l.value=i)}),null,16,["modelValue"]),e.createVNode(e.unref(b.XIcon),{onClick:a,class:"v-slider-setter__close",size:16,icon:e.unref(y.Close)},null,8,["icon"])]))}}),L={StringSetter:Yo,BooleanSetter:Zo,ExpressionSetter:nl,SelectSetter:ol,NumberSetter:ll,ColorSetter:rl,IconSetter:Fe,JsonSetter:al,FunctionSetter:sl,RadioSetter:il,TagSetter:ul,SizeSetter:We,ImageSetter:Oe,SectionSetter:ml,SliderSetter:fl},Ue={name:"StringSetter",component:L.StringSetter,type:"String"},qe=[{name:"InputSetter",component:L.StringSetter,type:"String"},{name:"StringSetter",component:L.StringSetter,type:"String"},{name:"BooleanSetter",component:L.BooleanSetter,type:"Boolean"},{name:"ExpressionSetter",component:L.ExpressionSetter,type:"Object"},{name:"SelectSetter",component:L.SelectSetter,type:"String"},{name:"NumberSetter",component:L.NumberSetter,type:"Number"},{name:"ColorSetter",component:L.ColorSetter,type:"String"},{name:"IconSetter",component:L.IconSetter,type:"String"},{name:"ObjectSetter",component:L.JsonSetter,type:"Object",props:{type:"Object"}},{name:"ArraySetter",component:L.JsonSetter,type:"Array",props:{type:"Array"}},{name:"JsonSetter",component:L.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"JSONSetter",component:L.JsonSetter,type:"Object",props:{type:"JSON"}},{name:"FunctionSetter",component:L.FunctionSetter,type:"Function"},{name:"RadioSetter",component:L.RadioSetter,type:"String"},{name:"TagSetter",component:L.TagSetter,type:"String"},{name:"SizeSetter",component:L.SizeSetter,type:"String"},{name:"ImageSetter",component:L.ImageSetter,type:"String"},{name:"SectionSetter",component:L.SectionSetter,type:"String"},{name:"SliderSetter",component:L.SliderSetter,type:"Number"},{name:"RangeSetter",component:L.SliderSetter,type:"Array",props:{range:!0}}];class vl{widgets={};constructor(){this.widgets=this.createWidgets()}createWidgets(){const t={};for(const n of Xe)t[n.name]=n;return t}register(t){this.widgets[t.name]=t}get(t){return this.widgets[t]}set(t,n){const o=this.widgets[t];if(!o){R.logger.warn(`widget '${t}' is not found`);return}R.merge(o,n),n.component&&(o.component=n.component)}getWidgets(t,n){const o=Object.values(this.widgets);return t?o.filter(l=>l.region===t&&(!n||n&&n===l.group)):o}}const we=new vl;class gl{constructor(t=Me){this.deps=t}get(){return this.deps}set(t){this.deps=t}add(t){const n=this.deps.find(o=>o.package===t.package);n?Object.assign(n,t):this.deps.push(t)}merge(t){const n=[];for(const o of this.deps){const l=t.find(a=>a.package===o.package);n.push({...o,...l})}for(const o of t)this.deps.find(a=>a.package===o.package)||n.push(o);return n}remove(t){const n=this.deps.findIndex(o=>o.package===t);n>-1&&this.deps.splice(n,1)}}const He=new gl;class hl{setters={};defaultSetter=Ue;constructor(){this.setters=this.createSetters()}createSetters(){const t={};for(const n of qe)t[n.name]=n;return t}register(t){this.setters[t.name]=t}get(t){return this.setters[t]}set(t,n){const o=this.setters[t];if(!o){R.logger.warn(`setter '${t}' is not found`);return}R.merge(o,n),n.component&&(o.component=n.component)}getByType(t){return Object.values(this.setters).filter(o=>o.type===t).map(o=>o.name)}}const ie=new hl;function Ge(c){return new Promise((t,n)=>{const o=e.createApp(Te,{slots:c,onClose:()=>{o.unmount(),n(null)},onSubmit:l=>{o.unmount(),t(l)}});o.mount(document.createElement("div"))})}class Ke{constructor(t,n,o){this.engine=t,this.contentWindow=n,this.dependencies=o,this.document=this.contentWindow.document,this.bindEvents(n,this.document)}proxied={};document=null;hover=e.shallowRef(null);dropping=e.shallowRef(null);selected=e.ref(null);dragging=null;bind(t,n){let o=this.proxied[n];return o||(o=t.bind(this),this.proxied[n]=o),o}bindEvents(t,n){n.addEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.addEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.addEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.addEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.addEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.addEventListener("drop",this.bind(this.onDrop,"onDrop")),n.addEventListener("click",this.bind(this.onSelected,"onSelected")),V.emitter.on(V.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),V.emitter.on(V.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}unbindEvents(t,n){n.removeEventListener("mouseover",this.bind(this.onMouseOver,"onMouseOver")),n.removeEventListener("scroll",this.bind(this.onViewChange,"onViewChange")),t.removeEventListener("resize",this.bind(this.onViewChange,"onViewChange")),n.removeEventListener("mouseleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragleave",this.bind(this.onLeave,"onLeave")),n.removeEventListener("dragover",this.bind(this.onDragOver,"onDragOver")),n.removeEventListener("drop",this.bind(this.onDrop,"onDrop")),n.removeEventListener("click",this.bind(this.onSelected,"onSelected")),V.emitter.off(V.EVENT_PROJECT_ACTIVED,this.bind(this.onActiveChange,"onActiveChange")),V.emitter.off(V.EVENT_NODE_CHANGE,this.bind(this.onViewChange,"onViewChange"))}onMouseOver(t){const n=this.getHelper(t);n?.model.id!==this.selected.value?.model.id&&(this.hover.value=n)}onViewChange(){this.updateRect()}onLeave(t){this.hover.value=null,this.dropping.value=null}onActiveChange(){this.hover.value=null,this.dropping.value=null,this.selected.value=null}async getDropSlot(t){if(!t)return;const{engine:n}=this,o=n.assets,l=o.componentMap,a=await o.getBlockMaterial(t.from)||l.get(t.name);if(!a?.slots)return;const s=(a?.slots||["default"]).map(i=>typeof i=="string"?{name:i,params:[]}:{name:i.name,params:i.params||[]});if(s.length===0)return;if(s.length===1)return s[0];const r=await Ge(s).catch(()=>null);if(!(r&&r.name==="default"&&(!r.params||r.params?.length===0)))return r}async onDrop(t){t.preventDefault();const{engine:n,dragging:o,dropping:l}=this,a=n.current.value,s=this.getHelper(t);if(!a||!o||!l.value||!s)return;const r=s.model,i=l.value.type;if(!await this.allowDrop(r,i))return;const m=this.createNodeDsl(o),d=new V.NodeModel(m);if(V.isBlock(r))a.addNode(d,void 0,i);else{const p=await this.getDropSlot(i==="inner"?r:r.parent);if(p===null){this.dropping.value=null;return}d.slot=p,a.addNode(d,r,i)}this.dropping.value=null,n.assets.clearCaches()}onSelected(t){this.setHover(null),this.selected.value=this.getHelper(t)}async onDragOver(t){const n=this.getHelper(t);if(!n)return;const{model:o,type:l}=n;o&&await this.allowDrop(o,l)?(t.preventDefault(),this.dropping.value=n):this.dropping.value=null}isVtjElement(t){return!!t.__vtj__&&!!t.__context__}findVtjElement(t){return t.find(n=>this.isVtjElement(n))}getNodeByElement(t){const n=t.__vtj__??"";return V.NodeModel.nodes[n]||null}getDropType(t,n,o){const{left:l,top:a,width:s,height:r}=t;return n>=l&&n<=l+s*.2?"left":n>=l+s*.8&&n<=l+s?"right":o>=a&&o<=a+r*.2?"top":o>=a+r*.8&&o<=a+r?"bottom":"inner"}getNodePath(t=[]){const n=t.filter(a=>this.isVtjElement(a)),o=this.engine.current.value;return[...n.map(a=>this.getNodeByElement(a)).filter(a=>!!a),o]}setDslFrom(t){const n=this.engine.assets.componentMap.get(t.name);if(t.from=t.from||n?.package,Array.isArray(t.children))for(const o of t.children)this.setDslFrom(o)}createNodeDsl(t){const{name:n,snippet:o={},from:l}=t,a={...o,name:n,from:l||t.package};return this.setDslFrom(a),a}getElmenetByModel(t){return!this.document||!t?null:V.isBlock(t)?this.document.body:Array.from(this.document.querySelectorAll("*")).find(o=>o.__vtj__===t.id)}findPathByNode(t){const n=[t];let o=t;for(;o.parent&&o.parent!==o;)o=o.parent,o!==t&&n.unshift(o);const l=this.engine.current.value;return n.unshift(l),n.reverse()}getHelper(t){const n=t.composedPath()||[],o=this.findVtjElement(n)||this.document?.body;if(!o)return null;const l=this.getNodeByElement(o)||this.engine.current.value;if(!l)return null;const a=o.getBoundingClientRect(),s=this.getDropType(a,t.clientX,t.clientY),r=this.getNodePath(n);return{el:o,model:l,rect:a,type:s,path:r}}cleanHelper(){this.setSelected(null),this.setHover(null),this.setDragging(null),this.setDropping(null)}async updateRect(){await R.delay(100);const t=e.unref(this.selected),n=e.unref(this.hover);if(t){const o=t.el.getBoundingClientRect();this.selected.value={...t,rect:o}}if(n){const o=n.el.getBoundingClientRect();this.hover.value={...n,rect:o}}}setDragging(t){this.dragging=t}async setHover(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t);if(!n)return;const o=n.getBoundingClientRect(),l=V.isBlock(t)?[]:this.findPathByNode(t);this.hover.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.hover.value=null}async setSelected(t){if(await e.nextTick(),t){const n=this.getElmenetByModel(t)||this.document?.createElement("span");if(!n)return;const o=n.getBoundingClientRect(),l=V.isBlock(t)?[]:this.findPathByNode(t);this.selected.value={el:n,model:t,rect:o,type:"inner",path:l}}else this.selected.value=null}async setDropping(t,n="inner"){if(await e.nextTick(),t){const o=this.getElmenetByModel(t);if(!o)return;const l=o.getBoundingClientRect(),a=V.isBlock(t)?[]:this.findPathByNode(t);this.dropping.value={el:o,model:t,rect:l,type:n,path:a}}else this.dropping.value=null}async allowDrop(t,n="inner"){const{dragging:o,engine:l}=this,a=l.current.value;if(!o||!a)return!1;if(V.isBlock(t))return!0;const s=l.assets.componentMap,r=n!=="inner"&&t.parent||t,i=await l.assets.getBlockMaterial(r.from)||s.get(r.name);if(!i)return!1;const{parentIncludes:m=!0,name:d}=o,{childIncludes:p=!0}=i,v=m===!0||Array.isArray(m)&&m.includes(r.name),f=p===!0||Array.isArray(p)&&p.includes(d);return v&&f}dispose(){const{contentWindow:t,document:n}=this;this.setSelected(null),this.setHover(null),this.setDragging(null),t&&n&&this.unbindEvents(t,n),this.document=null}}class Qe{constructor(t,n,o=null){this.env=t,this.service=n,this.designer=o,this.nodeChange=this.__onNodeChange.bind(this),this.blockChange=this.__onBlockChange.bind(this)}app=null;dsl=null;nodeChange;blockChange;context=null;install(t){const{library:n,globals:o,VueRouter:l}=this.env;if(l){const s=l.createRouter({history:l.createWebHashHistory(),routes:[]});t.use(s)}const a=Object.values(n);Object.assign(t.config.globalProperties,o),t.config.errorHandler=(s,r,i)=>{const m=r?.$options.name,d=s?.message||s?.msg||"未知错误",p=`[ ${m} ] ${d}`;console.error({err:s,instance:r,info:i}),k.ElNotification.error({title:"运行错误",message:p})},a.forEach(s=>{(typeof s=="function"||typeof s.install=="function")&&t?.use(s)})}render(t){const{window:n,container:o,Vue:l,components:a,library:s,apis:r}=this.env,i=n.document.createElement("div");i.id="app",o.appendChild(i),this.dsl=l.reactive(t.toDsl());const m=P.createLoader({getDsl:async v=>await this.service.getFile(v)||null,options:{mode:P.ContextMode.Design,Vue:l,components:a,libs:s,apis:r,window:n}}),{renderer:d,context:p}=P.createRenderer({Vue:l,mode:P.ContextMode.Design,dsl:this.dsl,components:a,libs:s,apis:r,loader:m,window:n});this.app=l.createApp(d),this.install(this.app);try{this.app.mount(i)}catch(v){M(v.message||"未知错误","运行时错误"),console.error(v)}this.context=p,V.emitter.on(V.EVENT_NODE_CHANGE,this.nodeChange),V.emitter.on(V.EVENT_BLOCK_CHANGE,this.blockChange)}dispose(){if(this.app){this.app.unmount();const t=this.app._container;t&&t.parentNode&&(t.parentNode.removeChild(t),this.app._container=null),this.app=null}this.dsl=null,this.context=null,V.emitter.off(V.EVENT_NODE_CHANGE,this.nodeChange),V.emitter.off(V.EVENT_BLOCK_CHANGE,this.blockChange)}updateChild(t,n){const o=n.children||n.nodes||[];if(Array.isArray(o))for(let l=0;l<o.length;l++){const a=o[l];if(a.id===t.id){o.splice(l,1,t);return}else this.updateChild(t,a)}}__onNodeChange(t){this.dsl&&this.updateChild(t.toDsl(),this.dsl)}__onBlockChange(t){this.dispose(),this.render(t),this.designer?.selected.value&&this.designer.setSelected(t)}}class Ye extends V.Base{contentWindow=null;renderer=null;designer=e.shallowRef(null);engine;materialPath;constructor(t){super();const{engine:n,materialPath:o}=t;this.engine=n,this.materialPath=o,e.watch(this.engine.current,()=>{this.refresh()})}init(t,n,o,l){e.watch([t,n,o,l],()=>{t.value&&n.value.length&&(this.resetReady(),this.setup(t.value,n.value),this.contentWindow&&(this.designer.value?.dispose(),this.designer.value=new Ke(this.engine,this.contentWindow,n)))},{immediate:!0,deep:!0})}setup(t,n){const o=t.contentWindow;if(!o){R.logger.warn("Simulator contentWindow is null");return}o.__simulator__=this;const l=o.document;this.contentWindow=o;const{scripts:a,css:s,materials:r,libraryExports:i,materialExports:m,materialMapLibrary:d}=P.parseDeps(n,this.materialPath);l.open(),l.write(`
76
81
  <!DOCTYPE html>
77
82
  <html lang="zh-CN">
78
83
  <head>
@@ -89,16 +94,16 @@
89
94
  background: #fff;
90
95
  }
91
96
  </style>
92
- ${D.createAssetsCss(s)}
93
- ${D.createAssetScripts(a)}
94
- ${D.createAssetScripts(r)}
97
+ ${P.createAssetsCss(s)}
98
+ ${P.createAssetScripts(a)}
99
+ ${P.createAssetScripts(r)}
95
100
  </head>
96
101
  <body>
97
102
  </body>
98
103
  <script>
99
104
  __simulator__.emitReady(${JSON.stringify(i)},
100
- ${JSON.stringify(d)},
101
- ${JSON.stringify(m)});
105
+ ${JSON.stringify(m)},
106
+ ${JSON.stringify(d)});
102
107
  <\/script>
103
108
  </html>
104
- `),l.close()}async emitReady(t=[],n=[],o={}){this.renderer?.dispose(),this.renderer=null;const l=this.contentWindow,{assets:a,service:s,current:r,provider:i}=this.engine,d=i.materials||{},m=[];for(const v of n){const f=d[v]?(await d[v]()).default:l[v];m.push(f)}a.load(m);const p=this.createEnv(t,o,m);this.renderer=new Ge(p,s,this.designer.value),r.value&&this.renderer.render(r.value),this.triggerReady()}createEnv(t=[],n={},o=[]){const l=this.contentWindow,{engine:a}=this,{project:s,assets:r,provider:i}=a,d=t.reduce((h,C)=>(h[C]=l[C],h),{}),m={},{groups:p,componentMap:v}=r;for(const h of p.value){const C=h.names||[];if(h.name===w.BUILT_IN_NAME)C.forEach(_=>{const V=v.get(_),S=V?.package||"",B=w.BUILT_IN_LIBRARAY_MAP[S],E=d[B];E&&V&&(m[_]=D.getRawComponent(V,E))});else{const _=d[n[h.library||""]];_&&C.forEach(V=>{const S=v.get(V);S?m[V]=D.getRawComponent(S,_):m[V]=_[V]})}}const{adapter:f,globals:u}=i,g=D.createSchemaApis(s.value?.apis,f);return{window:l,Vue:l.Vue,VueRouter:l.VueRouter,library:d,materials:o,components:m,container:l.document.body,apis:g,globals:u}}refresh(){this.renderer?.dispose();const t=this.engine.current.value;t&&this.renderer?.render(t)}dispose(){this.renderer?.dispose(),this.designer.value?.dispose(),this.contentWindow=null,this.renderer=null,this.designer.value=null,this.resetReady()}}class Ze{constructor(t){this.service=t}components=[];componentMap=new Map;groups=e.ref([]);caches={};getCateoryComponents(t,n){const o=n.filter(l=>l.categoryId===t.id&&l.hidden!==!0);return{name:t.id,label:t.category,count:o.length,components:o}}parseGroups(t){const n=[];for(let o of t){const{categories:l,components:a,label:s,name:r,library:i}=o;if(!l||!a)continue;const d=a.filter(f=>!!f.package).map(f=>f.name),m=l.map(f=>this.getCateoryComponents(f,a)),p=m.reduce((f,u)=>u.count+f,0),v={name:o.name,label:s||r,count:p,names:d,library:i,children:m};n.push(v)}return n}load(t){const n=[...Me,...t].filter(o=>!!o);n.sort((o,l)=>o.order-l.order);for(let o of n)o.components&&(this.components=this.components.concat(o.components));this.groups.value=this.parseGroups(n),this.componentMap=F.arrayToMap(this.components,"name")}async getBlockMaterial(t){if(!t||typeof t=="string")return null;const n=t.type==="Schema"?t.id:null;if(!n)return null;const o=this.caches[n]||await this.service.getFile(n);if(!o)return null;this.caches[n]=o;const{id:l,name:a,slots:s,props:r,emits:i}=o,d=p=>{const v=Array.isArray(p)?p:[p];let f=[];for(const u of v)f=f.concat(se.getByType(u));return f};return{id:l,name:a,childIncludes:s?.length?void 0:!1,props:(r||[]).map(p=>typeof p=="string"?{name:p}:{name:p.name,type:p.type,setters:d(p.type)}),events:i,slots:s,from:t}}clearCaches(){this.caches={}}}const we=Symbol("VtjEngine");class sl extends w.Base{app;skeleton;container;service;assets;simulator;emitter=w.emitter;project=e.ref(null);current=e.ref(null);context=e.ref(null);isEmptyCurrent=e.ref(!1);history=e.ref(null);provider;changed=e.ref(Symbol());constructor(t){super();const{container:n,service:o,project:l={},globals:a={},dependencies:s,materials:r,materialPath:i="./"}=t;this.container=n,this.service=o,this.provider=new D.Provider({mode:D.ContextMode.Design,globals:a,project:l,service:o,dependencies:s,materials:r,materialPath:i}),this.assets=new Ze(this.service),this.simulator=new Ke({engine:this,materialPath:i}),this.bindEvents(),this.init(l),e.onMounted(this.render.bind(this)),e.onUnmounted(this.dispose.bind(this))}async init(t){const n=await this.service.init(t).catch(o=>(F.logger.warn("VTJEngine service init fail.",o),null));n&&(n.dependencies=Ue.merge(n.dependencies||[]),this.project.value=new w.ProjectModel(n),this.saveMaterials(),this.triggerReady())}render(){const t=e.unref(this.container);if(t){const n=e.createApp(Qe);n.provide(we,e.shallowReactive(this)),n.mount(t),this.app=n}else F.logger.warn("VTJEngine constructor param [ container ] is undefined")}bindEvents(){w.emitter.on(w.EVENT_PROJECT_CHANGE,t=>this.saveProject(t)),w.emitter.on(w.EVENT_PROJECT_BLOCKS_CHANGE,t=>this.saveBlockFile(t)),w.emitter.on(w.EVENT_PROJECT_PAGES_CHANGE,t=>this.saveBlockFile(t)),w.emitter.on(w.EVENT_PROJECT_DEPS_CHANGE,()=>this.saveMaterials()),w.emitter.on(w.EVENT_PROJECT_ACTIVED,t=>this.activeFile(t)),w.emitter.on(w.EVENT_PROJECT_PUBLISH,()=>this.publish()),w.emitter.on(w.EVENT_PROJECT_FILE_PUBLISH,()=>this.publishCurrent()),w.emitter.on(w.EVENT_BLOCK_CHANGE,t=>this.changeFile(t)),w.emitter.on(w.EVENT_NODE_CHANGE,()=>this.changeCurrentFile()),w.emitter.on(w.EVENT_HISTORY_CHANGE,t=>this.saveHistory(t)),w.emitter.on(w.EVENT_HISTORY_LOAD,t=>this.loadHistory(t))}async activeFile(t){await e.nextTick();const n=t.model,o=t.model.currentFile;if(o){if(n.isPageFile(o)&&o.raw)return;const l=await this.service.getFile(o.id);l&&(o.dsl=l)}if(o?.dsl){const l=new w.BlockModel(o.dsl);this.updateCurrent(l),this.initHistory(l)}else this.updateCurrent(null);e.triggerRef(this.project)}async changeFile(t){await e.nextTick();const n=t.toDsl();this.service.saveFile(n),this.updateCurrent(t),this.history.value?.add(n),e.triggerRef(this.history)}changeCurrentFile(){this.saveCurrentFile(),this.current.value&&(this.history.value?.add(this.current.value.toDsl()),e.triggerRef(this.history))}async updateCurrent(t,n=!0){this.current.value=t,await e.nextTick(),this.context.value=this.simulator.renderer?.context||null,this.isEmptyCurrent.value=this.current.value?.nodes.length===0,this.changed.value=Symbol(),n&&e.triggerRef(this.context)}async saveProject(t){const o=t.model.toDsl();await this.service.saveProject(o),e.triggerRef(this.project)}async saveBlockFile(t){const n=t.type,o=t.model;if(n==="create"){const l=t.data;o.isPageFile(l)&&l.raw?(await this.service.createRawPage(l),H(`源码文件已经生成:/.vtj/vue/${l.id}.vue`,"success")):l.dsl&&await this.service.saveFile(l.dsl)}if(n==="update"){const l=t.data;if(o.isPageFile(l)&&(l.dir||l.raw))return;const a=await this.service.getFile(l.id);a&&(a.name=l.name,await this.service.saveFile(a))}if(n==="delete"){const l=t.data;l&&o.isPageFile(l)&&l.raw?await this.service.removeRawPage(l.id):l.dir||(await this.service.removeFile(l.id),await this.service.removeHistory(l.id))}if(n==="clone"){const{page:l,newPage:a}=t.data,s=await this.service.getFile(l.id);s&&(s.id=a.id,s.name=a.name,await this.service.saveFile(s))}e.triggerRef(this.project)}async saveMaterials(){await e.nextTick(),this.simulator.ready(()=>{const t=this.project.value;if(t){const n=this.assets.componentMap;this.service.saveMaterials(t.toDsl(),n)}})}saveCurrentFile(){const t=this.current.value;t&&(this.updateCurrent(t),this.service.saveFile(t.toDsl()))}async initHistory(t){if(t){const n=await this.service.getHistory(t.id).catch(()=>null);this.history.value=new w.HistoryModel(Object.assign(n||{},{id:t.id}))}else this.history.value=null}async saveHistory(t){const n=t.type,o=t.model;n==="create"&&await this.service.saveHistoryItem(o.id,t.data),n==="delete"&&await this.service.removeHistoryItem(o.id,t.data),n==="clear"&&await this.service.removeHistoryItem(o.id,t.data);const l=o.toDsl();await this.service.saveHistory(l),e.triggerRef(this.history)}async loadHistory(t){const n=t.model,o=t.data,l=await this.service.getHistoryItem(n.id,o.id);if(l&&l.dsl){const a=new w.BlockModel(l.dsl);await this.updateCurrent(a),e.triggerRef(this.history)}}async publish(){const t=this.project.value;if(t){const n={...t.toDsl(),pages:t.getPages()};await this.service.publish(n)&&H("整站发布成功","success")}}async publishCurrent(){const t=this.project.value,n=t?.currentFile;if(t&&n){const o={...t.toDsl(),pages:t.getPages()};await this.service.publishFile(o,n)&&H("发布成功","success")}}dispose(){this.emitter.all.clear(),this.simulator.dispose(),this.app&&(this.app.unmount(),this.container=void 0)}async openFile(t){const n=this.project.value,o=this.skeleton?.getRegion("Apps"),l=t||n?.homepage;if(!n||!o||!l)return;const a=n.getPage(l);a&&!a.raw&&(o.regionRef?.setActive("Pages"),this.simulator.ready(()=>{n.active(a)}));const s=n.getBlock(l);s&&(o.regionRef?.setActive("Blocks"),this.simulator?.ready(()=>{n.active(s)}))}}function U(){const c=e.inject(we,null);return c||F.logger.error("VTJEngine is not exist"),c}const ee=e.defineComponent({name:"RegionWrapper",props:{region:{type:String,required:!0}},setup(){return{regionRef:e.ref()}},render(){const c=ke[this.region]||ke.EmptyRegion;return e.h(c,{...this.$props,...this.$attrs,ref:"regionRef"})}}),te=e.defineComponent({name:"WidgetWrapper",props:{region:{type:String,required:!0},widget:{type:Object,required:!0}},setup(){return{widgetRef:e.ref()}},render(){return e.h(this.widget.component,{...this.widget.props,...this.$props,...this.$attrs,ref:"widgetRef"})}}),Qe=e.defineComponent({name:"SkeletonWrapper",setup(){const c=e.ref(),t=U(),n=e.ref({});return{skeletonRef:c,engine:t,widgets:n}},mounted(){this.engine.skeleton=this},render(){return e.h(Ye,{...this.$props,...this.$attrs,ref:"skeletonRef"})},methods:{getRegion(c){return this.skeletonRef[c.toLowerCase()]},toggleCollapse(c){if(this.skeletonRef){const t=this.skeletonRef.collapsed;this.skeletonRef.collapsed=c??!t}},settable(c){this.skeletonRef&&(this.skeletonRef.settable=c)},getWidgets(c){const t=this.getRegion(c);return t?F.toArray(t.regionRef?.widgetsRef||[]):[]},getWidget(c){const t=_e.get(c);if(!t){F.logger.warn(`widget [ ${c} ] is not exsit`);return}return this.getWidgets(t.region).find(o=>o.widget.name===c)},openPreview(c){this.skeletonRef&&(this.skeletonRef.isPreview=!0)},closePreview(){this.skeletonRef&&(this.skeletonRef.isPreview=!1)}}}),$=e.defineComponent({name:"SetterWrapper",props:{context:{type:Object,default:null},current:{type:Object,default:null},name:String,label:String,title:String,value:{type:[String,Object,Array,Number,Boolean],default:void 0},setters:{type:[String,Object,Array],required:!0,default(){return[]}},options:{type:Array,default(){return[]}},variable:{type:Boolean,default:!0},removable:{type:Boolean,default:!1}},computed:{computedSetters(){return(Array.isArray(this.setters)?this.setters:[this.setters]).map(t=>{let n;if(typeof t=="string")return n=this.getSetter(t),{component:e.markRaw(n.component),name:n.name,label:t,props:n.props||{}};{const o=t;return n=this.getSetter(o.name),{component:e.markRaw(o.component||n.component),name:o.name,label:o.label||o.name,props:Object.assign(n.props||{},o.props)}}})},computedOptions(){return(this.options||[]).map(t=>typeof t=="string"?{label:t,value:t}:t)},defaultSetter(){const{value:c,computedSetters:t}=this;let n=typeof c;n==="Object"&&(Array.isArray(c)?n="Array":D.isJSExpression(c)?n="Object":D.isJSFunction(c)&&(n="Function"));const o=se.getByType(n)||[];return o.length?(t.find(l=>o.includes(l.name))||t[0])?.name:t[0]?.name}},render(){const{context:c,current:t,name:n,label:o,title:l,value:a,computedSetters:s,computedOptions:r,variable:i,changeValue:d,defaultSetter:m,removable:p,onRemove:v}=this;return e.h(et,{context:c,current:t,name:n,label:o,title:l,setters:s,defaultSetter:m,variable:i,value:a,removable:p,options:r,onChange:d,onRemove:v})},emits:["change","remove"],methods:{getSetter(c){return typeof c=="string"?se.get(c)||se.defaultSetter:c},changeValue(c){this.$emit("change",this.name,c)},onRemove(c){this.$emit("remove",c)}}}),Ye=e.defineComponent({name:"Skeletion",__name:"skeleton",props:{headerHeight:{default:"36px"},leftWidth:{default:"400px"},rightWidth:{default:"350px"},footerHeight:{default:"20px"}},setup(c,{expose:t}){const n=c,o=e.ref(!1),l=e.ref(parseInt(n.leftWidth)),a=e.ref(parseInt(n.rightWidth)),s={dirs:["e"],maxWidth:600,minWidth:49,onResizing(_,V){l.value=V.elementWidth.value},onEnd(_,V){l.value=V.elementWidth.value}},r={dirs:["w"],maxWidth:600,minWidth:2,onResizing(_,V){a.value=V.elementWidth.value},onEnd(_,V){a.value=V.elementWidth.value}},i=e.ref(),d=e.ref(),m=e.ref(),p=e.ref(),v=e.ref(),f=e.ref(),u=e.ref(),g=e.ref(),h=e.ref(!1),C=e.ref(!1);return t({brand:i,toolbar:d,actions:m,apps:p,workspace:v,settings:f,status:u,collapsed:h,settable:C,leftWidth:l,rightWidth:a,preview:g,isPreview:o}),(_,V)=>(e.openBlock(),e.createBlock(e.unref(y.ElConfigProvider),{locale:e.unref(tt)},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElContainer),{class:"v-skeleton"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.ElHeader),{class:"v-skeleton__header",height:_.headerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"brand",ref:i,region:"Brand"},null,512),e.createVNode(e.unref(ee),{ref_key:"toolbar",ref:d,region:"Toolbar",preview:o.value},null,8,["preview"]),e.createVNode(e.unref(ee),{ref_key:"actions",ref:m,region:"Actions"},null,512)]),_:1},8,["height"]),e.createVNode(e.unref(y.ElContainer),{class:"v-skeleton__wrapper"},{default:e.withCtx(()=>[o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.ElAside),{key:0,width:n.leftWidth,class:e.normalizeClass(["v-skeleton__left",{"is-collapsed":h.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"apps",ref:p,region:"Apps"},null,512)]),_:1},8,["width","class"])),[[e.unref(b.vResizable),s]]),e.createVNode(e.unref(y.ElMain),{class:"v-skeleton__main"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createBlock(e.unref(ee),{key:0,ref_key:"preview",ref:g,region:"Preview",preview:o.value},null,8,["preview"])):e.createCommentVNode("",!0),e.withDirectives(e.createVNode(e.unref(ee),{ref_key:"workspace",ref:v,region:"Workspace"},null,512),[[e.vShow,!o.value]])]),_:1}),o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.ElAside),{key:1,width:n.rightWidth,class:"v-skeleton__right"},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"settings",ref:f,region:"Settings"},null,512)]),_:1},8,["width"])),[[e.vShow,C.value],[e.unref(b.vResizable),r]])]),_:1}),o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElFooter),{key:0,class:"v-skeleton__footer",height:_.footerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(ee),{ref_key:"status",ref:u,region:"Status"},null,512)]),_:1},8,["height"]))]),_:1})]),_:1},8,["locale"]))}}),il={key:1},cl={class:"v-setter__content"},ul={key:0,class:"v-setter__input"},dl={class:"v-setter__action"},ml="{{",pl="}}",et=e.defineComponent({__name:"setter",props:{context:{},current:{},name:{},label:{default:""},title:{},setters:{},variable:{type:Boolean,default:!0},value:{},options:{default:()=>[]},defaultSetter:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(""),s=e.ref(n.setters.find(C=>C.name===n.defaultSetter)||n.setters[0]),r=e.ref(n.value),i=e.computed(()=>!!D.isJSExpression(r.value)),d={[s.value.name]:r.value},m=C=>{d[s.value.name]=r.value,s.value=C,r.value=d[C.name]??void 0,p(r.value)};e.watch(()=>n.value,()=>{r.value=n.value}),e.watch(()=>n.defaultSetter,()=>{s.value=n.setters.find(C=>C.name===n.defaultSetter)||n.setters[0]});const p=C=>{o("change",C)},v=()=>{o("remove",n.name)},f=()=>{l.value=!0,a.value=D.isJSExpression(r.value)?r.value.value:""},u=()=>{l.value=!1,a.value=""},g=async C=>X(C,n.context,!0)?(d[s.value.name]=r.value,r.value=C,o("change",C),!0):!1,h=async()=>{await re("确定要解除绑定吗?")&&(u(),r.value=void 0,o("change",""))};return(C,_)=>(e.openBlock(),e.createBlock(e.unref(y.ElFormItem),{class:"v-setter",size:"small","label-positon":"left"},{label:e.withCtx(()=>[n.title?(e.openBlock(),e.createBlock(e.unref(y.ElTooltip),{key:0,placement:"top-start",content:n.title},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label||n.name),1)]),_:1},8,["content"])):(e.openBlock(),e.createElementBlock("span",il,e.toDisplayString(n.label||n.name),1))]),default:e.withCtx(()=>[e.createElementVNode("div",cl,[s.value?(e.openBlock(),e.createElementBlock("div",ul,[i.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value.component),e.mergeProps({key:0,current:n.current,context:n.context},s.value.props,{options:n.options,modelValue:r.value,"onUpdate:modelValue":_[0]||(_[0]=V=>r.value=V),onChange:p,disabled:i.value}),null,16,["current","context","options","modelValue","disabled"])),i.value?(e.openBlock(),e.createBlock(e.unref(y.ElInput),{key:1,class:"v-expression-setter",disabled:"","model-value":"JSExpression"},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ml))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(pl))]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",dl,[n.variable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconVars),{key:0,onClick:f,class:e.normalizeClass(["v-icon-vars",{"is-active":i.value}]),title:"绑定变量"},null,8,["class"])):e.createCommentVNode("",!0),n.setters.length>1?(e.openBlock(),e.createBlock(e.unref(y.ElDropdown),{key:1,disabled:i.value,size:"small","popper-class":"v-setter-switch",onCommand:m},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(y.ElDropdownMenu),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.setters,V=>(e.openBlock(),e.createBlock(e.unref(y.ElDropdownItem),{command:V,key:V.name},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconCheck),{class:e.normalizeClass({"is-placeholder":V.name!==s.value.name})},null,8,["class"]),e.createTextVNode(" "+e.toDisplayString(V.label),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconSwitch),{title:"切换设置器"})]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.removable?(e.openBlock(),e.createBlock(e.unref(k.VtjIconRemove),{key:2,onClick:v,title:"删除"})):e.createCommentVNode("",!0)])]),l.value?(e.openBlock(),e.createBlock(e.unref(Te),{key:0,current:n.current,context:n.context,value:a.value,modelValue:l.value,"onUpdate:modelValue":_[1]||(_[1]=V=>l.value=V),submitMethod:g,onUnbind:h},null,8,["current","context","value","modelValue"])):e.createCommentVNode("",!0)]),_:1}))}}),fl={class:"v-empty-region"},vl=e.defineComponent({name:"EmptyRegion",__name:"empty",props:{region:{}},setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",fl,"找不到符合【"+e.toDisplayString(t.region)+"】名称的区域组件",1))}}),gl={class:"v-brand-region"},hl=e.defineComponent({name:"BrandRegion",inheritAttrs:!1,__name:"brand",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",gl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),bl={class:"v-toolbar-region"},kl=e.defineComponent({name:"ToolbarRegion",__name:"toolbar",props:{region:{},preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r,preview:a.preview},null,8,["region","widget","preview"]))),256))]))}}),yl={class:"v-actions-region"},Cl=e.defineComponent({name:"ActionsRegion",inheritAttrs:!1,__name:"actions",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",yl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),_l={class:"v-apps-region"},wl={class:"v-apps-region__header"},Vl={class:"v-apps-region__top"},Bl={class:"v-apps-region__bottom"},xl={class:"v-apps-region__panels"},Sl=e.defineComponent({name:"AppsRegion",inheritAttrs:!1,__name:"apps",props:{region:{},index:{default:0}},setup(c,{expose:t}){const n=c,o=U(),{widgets:l,widgetsRef:a}=oe(n.region),s=e.computed(()=>l.value.filter(u=>u.openType==="panel")),r=e.computed(()=>l.value.filter(u=>u.openType!=="panel")),i=s.value[n.index],d=e.ref(i),m=e.ref(i),p=u=>{d.value=u,m.value=m.value?.name===u.name?null:u},v=u=>{u.openType==="link"&&u.url&&window.open(u.url),u.openType==="dialog"&&b.createDialog({title:u.label,icon:u.icon,...u.props,content:u.component})};return e.watch(m,u=>{o.skeleton?.toggleCollapse(!u)}),t({widgets:l,widgetsRef:a,setActive:u=>{const g=s.value.find(h=>h.name===u);d.value=g,m.value=g}}),(u,g)=>(e.openBlock(),e.createElementBlock("div",_l,[e.createElementVNode("div",wl,[e.createElementVNode("div",Vl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,active:d.value?.name===h.name,open:m.value?.name===h.name,onClick:C=>p(h)},null,8,["icon","label","active","open","onClick"]))),128))]),e.createElementVNode("div",Bl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,onClick:C=>v(h)},null,8,["icon","label","onClick"]))),128))])]),e.createElementVNode("div",xl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:h.name},[d.value?.name===h.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:a,region:u.region,widget:h},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))])]))}}),El=e.defineComponent({name:"WorkspaceRegion",__name:"workspace",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(f=>({name:f.name,command:f.name,label:f.label,closable:!!f.closable,props:f.props||{},checked:!f.closable}))),s=e.computed(()=>a.filter(f=>!f.closable||f.checked)),r=e.computed(()=>a.map(f=>({...f,disabled:!f.closable}))),i=e.ref(s.value[0]?.name),d=e.computed(()=>a.find(u=>u.name===i.value)?.props||{}),m=f=>{const u=a.find(g=>g.name===f);u&&(u.checked=!1),i.value===f&&(i.value=s.value[0]?.name)},p=f=>{const u=a.find(g=>g.name===f.name);u&&u.closable&&(u.checked=!u.checked,u.checked&&(i.value=u.name),!u.checked&&i.value===u.name&&(i.value=s.value[0]?.name))};return t({currentTab:i,widgets:o,widgetsRef:l,openTab:(f,u={})=>{const g=a.find(h=>h.name===f);g&&(g.props=Object.assign({},g.props,u),g.checked=!0,i.value=g.name)}}),(f,u)=>(e.openBlock(),e.createBlock(e.unref(ie),{class:"v-workspace-region",items:s.value,menus:r.value,modelValue:i.value,"onUpdate:modelValue":u[0]||(u[0]=g=>i.value=g),checkable:"",onRemove:m,onCommand:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.name},[i.value===g.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:f.region,widget:{...g,props:d.value}},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","menus","modelValue"]))}}),Nl=e.defineComponent({name:"SettingsRegion",__name:"settings",props:{region:{}},setup(c,{expose:t}){const n=c,o=U(),{current:l}=W(),{selected:a,isSelectBlock:s}=Y(),r=e.computed(()=>s.value?K.Block:K.Node),{widgets:i,widgetsRef:d}=oe(n.region,r),m=e.ref(),p=e.ref(!1),v=e.computed(()=>i.value.map(h=>({name:h.name,label:h.label,actions:h.name==="Style"?[{name:"switch",icon:k.Switch,background:"hover"}]:void 0}))),f=e.computed(()=>{const h=a.value?.model;return h?o.assets.componentMap.get(h.name)?.doc:null});e.watch(l,h=>{o.skeleton?.settable(!!h)}),e.watch(r,()=>{m.value=v.value[0]?.name},{immediate:!0}),e.watch(m,()=>{p.value=!1});const u=()=>{if(f.value){const h=o.skeleton?.getRegion("Workspace");h&&h.regionRef.openTab("Docs",{url:f.value})}},g=h=>{h.name==="switch"&&(p.value=!p.value)};return t({widgets:i,widgetsRef:d}),(h,C)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-settings-region",fit:"",direction:"column"},{default:e.withCtx(()=>[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,flex:"",justify:"space-between",align:"center",class:"v-settings-region__header"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-settings-region__title"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.VtjIconLayers)),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(a)?.model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(a)?.model.id),1)])]),_:1}),f.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XAction),{onClick:u,icon:e.unref(k.VtjIconHelp),mode:"text",label:"帮助"},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),e.unref(a)&&!e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:1,grow:"",padding:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(ie),{items:v.value,modelValue:m.value,"onUpdate:modelValue":C[0]||(C[0]=_=>m.value=_),stretch:"",body:{padding:!1},onActionClick:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),_=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_.name},[m.value===_.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:d,region:h.region,widget:e.unref(F.merge)({props:{isStyleCodeMode:p.value}},_)},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:2,description:"请在左侧画布选中节点"})),e.unref(a)&&e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(y.ElEmpty),{key:3,"image-size":1,description:"节点已被锁定, 禁止编辑"})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),$l={class:"v-status-region"},Il=e.defineComponent({name:"StatusRegion",inheritAttrs:!1,__name:"status",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(te),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),Dl=e.defineComponent({name:"PreviewRegion",__name:"preview",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(i=>({name:i.name,command:i.name,label:i.label,closable:!!i.closable,checked:!1}))),s=e.computed(()=>a.filter(i=>!i.closable||i.checked)),r=e.ref(s.value[0]?.name);return t({currentTab:r,widgets:o,widgetsRef:l}),(i,d)=>(e.openBlock(),e.createBlock(e.unref(ie),{class:"v-workspace-region",items:s.value,modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=m=>r.value=m)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),m=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:m.name},[r.value===m.name?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:i.region,widget:m},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))]),_:1},8,["items","modelValue"]))}}),ke={EmptyRegion:vl,Brand:hl,Toolbar:kl,Actions:Cl,Apps:Sl,Workspace:El,Settings:Nl,Status:Il,Preview:Dl};exports.API_METHOD_TYPES=Ee;exports.Assets=Ze;exports.Binder=pe;exports.Box=de;exports.Designer=qe;exports.EVENT_MODIFIERS=Ne;exports.Editor=M;exports.Engine=sl;exports.EventBinder=Re;exports.Icon=be;exports.Item=O;exports.KEYBOARD_EVENT_LIST=Se;exports.MOBILE_SIZE=ge;exports.MOUSE_EVENT_LIST=xe;exports.NAME_REGEX=Q;exports.PAD_SIZE=he;exports.Panel=I;exports.RegionType=$e;exports.RegionWrapper=ee;exports.Renderer=Ge;exports.SetterView=et;exports.SetterWrapper=$;exports.Simulator=Ke;exports.Skeleton=Ye;exports.SkeletonWrapper=Qe;exports.SlotsPicker=Pe;exports.Tabs=ie;exports.VTJ_DESIGNER_VERSION=Be;exports.VariableBinder=Te;exports.Viewer=Fe;exports.Viewport=Ce;exports.WidgetGroup=K;exports.WidgetWrapper=te;exports.builtInDeps=Le;exports.builtInMaterials=Me;exports.builtInSetters=We;exports.builtInWidgets=Je;exports.confirm=re;exports.createSlotsPicker=He;exports.defaultSetter=Xe;exports.depsManager=Ue;exports.engineKey=we;exports.expressionValidate=X;exports.message=H;exports.notify=L;exports.regions=ke;exports.setterManager=se;exports.setters=z;exports.useEngine=U;exports.widgetManager=_e;exports.widgets=A;
109
+ `),l.close()}async emitReady(t=[],n=[],o={}){this.renderer?.dispose(),this.renderer=null;const l=this.contentWindow,{assets:a,service:s,current:r,provider:i}=this.engine,m=i.materials||{},d=[];for(const v of n){const f=m[v]?(await m[v]()).default:l[v];d.push(f)}a.load(d);const p=this.createEnv(t,o,d);this.renderer=new Qe(p,s,this.designer.value),r.value&&this.renderer.render(r.value),this.triggerReady()}createEnv(t=[],n={},o=[]){const l=this.contentWindow,{engine:a}=this,{project:s,assets:r,provider:i}=a,m=t.reduce((h,w)=>(h[w]=l[w],h),{}),d={},{groups:p,componentMap:v}=r;for(const h of p.value){const w=h.names||[];if(h.name===V.BUILT_IN_NAME)w.forEach(C=>{const _=v.get(C),x=_?.package||"",A=V.BUILT_IN_LIBRARAY_MAP[x],S=m[A];S&&_&&(d[C]=P.getRawComponent(_,S))});else{const C=m[n[h.library||""]];C&&w.forEach(_=>{const x=v.get(_);x?d[_]=P.getRawComponent(x,C):d[_]=C[_]})}}const{adapter:f,globals:u}=i,g=P.createSchemaApis(s.value?.apis,f);return P.mockCleanup(),s.value?.config?.mock&&P.mockApis(s.value?.apis),{window:l,Vue:l.Vue,VueRouter:l.VueRouter,library:m,materials:o,components:d,container:l.document.body,apis:g,globals:u}}refresh(){this.renderer?.dispose();const t=this.engine.current.value;t&&this.renderer?.render(t)}dispose(){this.renderer?.dispose(),this.designer.value?.dispose(),this.contentWindow=null,this.renderer=null,this.designer.value=null,this.resetReady()}}class Ze{constructor(t){this.service=t}components=[];componentMap=new Map;groups=e.ref([]);caches={};getCateoryComponents(t,n){const o=n.filter(l=>l.categoryId===t.id&&l.hidden!==!0);return{name:t.id,label:t.category,count:o.length,components:o}}parseGroups(t){const n=[];for(let o of t){const{categories:l,components:a,label:s,name:r,library:i}=o;if(!l||!a)continue;const m=a.filter(f=>!!f.package).map(f=>f.name),d=l.map(f=>this.getCateoryComponents(f,a)),p=d.reduce((f,u)=>u.count+f,0),v={name:o.name,label:s||r,count:p,names:m,library:i,children:d};n.push(v)}return n}load(t){const n=[...Je,...t].filter(o=>!!o);n.sort((o,l)=>o.order-l.order);for(let o of n)o.components&&(this.components=this.components.concat(o.components));this.groups.value=this.parseGroups(n),this.componentMap=R.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=this.caches[n]||await this.service.getFile(n);if(!o)return null;this.caches[n]=o;const{id:l,name:a,slots:s,props:r,emits:i}=o,m=p=>{const v=Array.isArray(p)?p:[p];let f=[];for(const u of v)f=f.concat(ie.getByType(u));return f};return{id:l,name:a,childIncludes:s?.length?void 0:!1,props:(r||[]).map(p=>typeof p=="string"?{name:p}:{name:p.name,type:p.type,setters:m(p.type)}),events:i,slots:s,from:t}}clearCaches(){this.caches={}}}const Ce=Symbol("VtjEngine");class bl extends V.Base{app;skeleton;container;service;assets;simulator;emitter=V.emitter;project=e.ref(null);current=e.ref(null);context=e.ref(null);isEmptyCurrent=e.ref(!1);history=e.ref(null);provider;changed=e.ref(Symbol());constructor(t){super();const{container:n,service:o,project:l={},globals:a={},dependencies:s,materials:r,materialPath:i="./"}=t;this.container=n,this.service=o,this.provider=new P.Provider({mode:P.ContextMode.Design,globals:a,project:l,service:o,dependencies:s,materials:r,materialPath:i}),this.assets=new Ze(this.service),this.simulator=new Ye({engine:this,materialPath:i}),this.bindEvents(),this.init(l),e.onMounted(this.render.bind(this)),e.onUnmounted(this.dispose.bind(this))}async init(t){const n=await this.service.init(t).catch(o=>(R.logger.warn("VTJEngine service init fail.",o),null));n&&(n.dependencies=He.merge(n.dependencies||[]),this.project.value=new V.ProjectModel(n),this.saveMaterials(),this.triggerReady())}render(){const t=e.unref(this.container);if(t){const n=e.createApp(et);n.provide(Ce,e.shallowReactive(this)),n.mount(t),this.app=n}else R.logger.warn("VTJEngine constructor param [ container ] is undefined")}bindEvents(){V.emitter.on(V.EVENT_PROJECT_CHANGE,t=>this.saveProject(t)),V.emitter.on(V.EVENT_PROJECT_BLOCKS_CHANGE,t=>this.saveBlockFile(t)),V.emitter.on(V.EVENT_PROJECT_PAGES_CHANGE,t=>this.saveBlockFile(t)),V.emitter.on(V.EVENT_PROJECT_DEPS_CHANGE,()=>this.saveMaterials()),V.emitter.on(V.EVENT_PROJECT_ACTIVED,t=>this.activeFile(t)),V.emitter.on(V.EVENT_PROJECT_PUBLISH,()=>this.publish()),V.emitter.on(V.EVENT_PROJECT_FILE_PUBLISH,()=>this.publishCurrent()),V.emitter.on(V.EVENT_BLOCK_CHANGE,t=>this.changeFile(t)),V.emitter.on(V.EVENT_NODE_CHANGE,()=>this.changeCurrentFile()),V.emitter.on(V.EVENT_HISTORY_CHANGE,t=>this.saveHistory(t)),V.emitter.on(V.EVENT_HISTORY_LOAD,t=>this.loadHistory(t))}async activeFile(t){await e.nextTick();const n=t.model,o=t.model.currentFile;if(o){if(n.isPageFile(o)&&o.raw)return;const l=await this.service.getFile(o.id);l&&(o.dsl=l)}if(o?.dsl){const l=new V.BlockModel(o.dsl);this.updateCurrent(l),this.initHistory(l)}else this.updateCurrent(null);e.triggerRef(this.project)}async changeFile(t){await e.nextTick();const n=t.toDsl();this.service.saveFile(n),this.updateCurrent(t),this.history.value?.add(n),e.triggerRef(this.history)}changeCurrentFile(){this.saveCurrentFile(),this.current.value&&(this.history.value?.add(this.current.value.toDsl()),e.triggerRef(this.history))}async updateCurrent(t,n=!0){this.current.value=t,await e.nextTick(),this.context.value=this.simulator.renderer?.context||null,this.isEmptyCurrent.value=this.current.value?.nodes.length===0,this.changed.value=Symbol(),n&&e.triggerRef(this.context)}async saveProject(t){const o=t.model.toDsl();await this.service.saveProject(o),e.triggerRef(this.project)}async saveBlockFile(t){const n=t.type,o=t.model;if(n==="create"){const l=t.data;o.isPageFile(l)&&l.raw?(await this.service.createRawPage(l),H(`源码文件已经生成:/.vtj/vue/${l.id}.vue`,"success")):l.dsl&&await this.service.saveFile(l.dsl)}if(n==="update"){const l=t.data;if(o.isPageFile(l)&&(l.dir||l.raw))return;const a=await this.service.getFile(l.id);a&&(a.name=l.name,await this.service.saveFile(a))}if(n==="delete"){const l=t.data;l&&o.isPageFile(l)&&l.raw?await this.service.removeRawPage(l.id):l.dir||(await this.service.removeFile(l.id),await this.service.removeHistory(l.id))}if(n==="clone"){const{page:l,newPage:a}=t.data,s=await this.service.getFile(l.id);s&&(s.id=a.id,s.name=a.name,await this.service.saveFile(s))}e.triggerRef(this.project)}async saveMaterials(){await e.nextTick(),this.simulator.ready(()=>{const t=this.project.value;if(t){const n=this.assets.componentMap;this.service.saveMaterials(t.toDsl(),n)}})}saveCurrentFile(){const t=this.current.value;t&&(this.updateCurrent(t),this.service.saveFile(t.toDsl()))}async initHistory(t){if(t){const n=await this.service.getHistory(t.id).catch(()=>null);this.history.value=new V.HistoryModel(Object.assign(n||{},{id:t.id}))}else this.history.value=null}async saveHistory(t){const n=t.type,o=t.model;n==="create"&&await this.service.saveHistoryItem(o.id,t.data),n==="delete"&&await this.service.removeHistoryItem(o.id,t.data),n==="clear"&&await this.service.removeHistoryItem(o.id,t.data);const l=o.toDsl();await this.service.saveHistory(l),e.triggerRef(this.history)}async loadHistory(t){const n=t.model,o=t.data,l=await this.service.getHistoryItem(n.id,o.id);if(l&&l.dsl){const a=new V.BlockModel(l.dsl);await this.updateCurrent(a),e.triggerRef(this.history)}}async publish(){const t=this.project.value;if(t){const n={...t.toDsl(),pages:t.getPages()};await this.service.publish(n)&&H("整站发布成功","success")}}async publishCurrent(){const t=this.project.value,n=t?.currentFile;if(t&&n){const o={...t.toDsl(),pages:t.getPages()};await this.service.publishFile(o,n)&&H("发布成功","success")}}dispose(){this.emitter.all.clear(),this.simulator.dispose(),this.app&&(this.app.unmount(),this.container=void 0)}async openFile(t){const n=this.project.value,o=this.skeleton?.getRegion("Apps"),l=t||n?.homepage;if(!n||!o||!l)return;const a=n.getPage(l);a&&!a.raw&&(o.regionRef?.setActive("Pages"),this.simulator.ready(()=>{n.active(a)}));const s=n.getBlock(l);s&&(o.regionRef?.setActive("Blocks"),this.simulator?.ready(()=>{n.active(s)}))}}function q(){const c=e.inject(Ce,null);return c||R.logger.error("VTJEngine is not exist"),c}const te=e.defineComponent({name:"RegionWrapper",props:{region:{type:String,required:!0}},setup(){return{regionRef:e.ref()}},render(){const c=ke[this.region]||ke.EmptyRegion;return e.h(c,{...this.$props,...this.$attrs,ref:"regionRef"})}}),ne=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"})}}),et=e.defineComponent({name:"SkeletonWrapper",setup(){const c=e.ref(),t=q(),n=e.ref({});return{skeletonRef:c,engine:t,widgets:n}},mounted(){this.engine.skeleton=this},render(){return e.h(tt,{...this.$props,...this.$attrs,ref:"skeletonRef"})},methods:{getRegion(c){return this.skeletonRef[c.toLowerCase()]},toggleCollapse(c){if(this.skeletonRef){const t=this.skeletonRef.collapsed;this.skeletonRef.collapsed=c??!t}},settable(c){this.skeletonRef&&(this.skeletonRef.settable=c)},getWidgets(c){const t=this.getRegion(c);return t?R.toArray(t.regionRef?.widgetsRef||[]):[]},getWidget(c){const t=we.get(c);if(!t){R.logger.warn(`widget [ ${c} ] is not exsit`);return}return this.getWidgets(t.region).find(o=>o.widget.name===c)},openPreview(c){this.skeletonRef&&(this.skeletonRef.isPreview=!0)},closePreview(){this.skeletonRef&&(this.skeletonRef.isPreview=!1)}}}),E=e.defineComponent({name:"SetterWrapper",props:{context:{type:Object,default:null},current:{type:Object,default:null},name:String,label:String,title:String,value:{type:[String,Object,Array,Number,Boolean],default:void 0},setters:{type:[String,Object,Array],required:!0,default(){return[]}},options:{type:Array,default(){return[]}},variable:{type:Boolean,default:!0},removable:{type:Boolean,default:!1}},computed:{computedSetters(){return(Array.isArray(this.setters)?this.setters:[this.setters]).map(t=>{let n;if(typeof t=="string")return n=this.getSetter(t),{component:e.markRaw(n.component),name:n.name,label:t,props:n.props||{}};{const o=t;return n=this.getSetter(o.name),{component:e.markRaw(o.component||n.component),name:o.name,label:o.label||o.name,props:Object.assign(n.props||{},o.props)}}})},computedOptions(){return(this.options||[]).map(t=>typeof t=="string"?{label:t,value:t}:t)},defaultSetter(){const{value:c,computedSetters:t}=this;let n=typeof c;n==="Object"&&(Array.isArray(c)?n="Array":P.isJSExpression(c)?n="Object":P.isJSFunction(c)&&(n="Function"));const o=ie.getByType(n)||[];return o.length?(t.find(l=>o.includes(l.name))||t[0])?.name:t[0]?.name}},render(){const{context:c,current:t,name:n,label:o,title:l,value:a,computedSetters:s,computedOptions:r,variable:i,changeValue:m,defaultSetter:d,removable:p,onRemove:v}=this;return e.h(nt,{context:c,current:t,name:n,label:o,title:l,setters:s,defaultSetter:d,variable:i,value:a,removable:p,options:r,onChange:m,onRemove:v})},emits:["change","remove"],methods:{getSetter(c){return typeof c=="string"?ie.get(c)||ie.defaultSetter:c},changeValue(c){this.$emit("change",this.name,c)},onRemove(c){this.$emit("remove",c)}}}),tt=e.defineComponent({name:"Skeletion",__name:"skeleton",props:{headerHeight:{default:"36px"},leftWidth:{default:"400px"},rightWidth:{default:"350px"},footerHeight:{default:"20px"}},setup(c,{expose:t}){const n=c,o=e.ref(!1),l=e.ref(parseInt(n.leftWidth)),a=e.ref(parseInt(n.rightWidth)),s={dirs:["e"],maxWidth:600,minWidth:49,onResizing(C,_){l.value=_.elementWidth.value},onEnd(C,_){l.value=_.elementWidth.value}},r={dirs:["w"],maxWidth:600,minWidth:2,onResizing(C,_){a.value=_.elementWidth.value},onEnd(C,_){a.value=_.elementWidth.value}},i=e.ref(),m=e.ref(),d=e.ref(),p=e.ref(),v=e.ref(),f=e.ref(),u=e.ref(),g=e.ref(),h=e.ref(!1),w=e.ref(!1);return t({brand:i,toolbar:m,actions:d,apps:p,workspace:v,settings:f,status:u,collapsed:h,settable:w,leftWidth:l,rightWidth:a,preview:g,isPreview:o}),(C,_)=>(e.openBlock(),e.createBlock(e.unref(k.ElConfigProvider),{locale:e.unref(ot)},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElContainer),{class:"v-skeleton"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.ElHeader),{class:"v-skeleton__header",height:C.headerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(te),{ref_key:"brand",ref:i,region:"Brand"},null,512),e.createVNode(e.unref(te),{ref_key:"toolbar",ref:m,region:"Toolbar",preview:o.value},null,8,["preview"]),e.createVNode(e.unref(te),{ref_key:"actions",ref:d,region:"Actions"},null,512)]),_:1},8,["height"]),e.createVNode(e.unref(k.ElContainer),{class:"v-skeleton__wrapper"},{default:e.withCtx(()=>[o.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createBlock(e.unref(k.ElAside),{key:0,width:n.leftWidth,class:e.normalizeClass(["v-skeleton__left",{"is-collapsed":h.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(te),{ref_key:"apps",ref:p,region:"Apps"},null,512)]),_:1},8,["width","class"])),[[e.unref(b.vResizable),s]]),e.createVNode(e.unref(k.ElMain),{class:"v-skeleton__main"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createBlock(e.unref(te),{key:0,ref_key:"preview",ref:g,region:"Preview",preview:o.value},null,8,["preview"])):e.createCommentVNode("",!0),e.withDirectives(e.createVNode(e.unref(te),{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(k.ElAside),{key:1,width:n.rightWidth,class:"v-skeleton__right"},{default:e.withCtx(()=>[e.createVNode(e.unref(te),{ref_key:"settings",ref:f,region:"Settings"},null,512)]),_:1},8,["width"])),[[e.vShow,w.value],[e.unref(b.vResizable),r]])]),_:1}),o.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElFooter),{key:0,class:"v-skeleton__footer",height:C.footerHeight},{default:e.withCtx(()=>[e.createVNode(e.unref(te),{ref_key:"status",ref:u,region:"Status"},null,512)]),_:1},8,["height"]))]),_:1})]),_:1},8,["locale"]))}}),kl={key:1},yl={class:"v-setter__content"},wl={key:0,class:"v-setter__input"},Cl={class:"v-setter__action"},Vl="{{",_l="}}",nt=e.defineComponent({__name:"setter",props:{context:{},current:{},name:{},label:{default:""},title:{},setters:{},variable:{type:Boolean,default:!0},value:{},options:{default:()=>[]},defaultSetter:{},removable:{type:Boolean}},emits:["change","remove"],setup(c,{emit:t}){const n=c,o=t,l=e.ref(!1),a=e.ref(""),s=e.ref(n.setters.find(w=>w.name===n.defaultSetter)||n.setters[0]),r=e.ref(n.value),i=e.computed(()=>!!P.isJSExpression(r.value)),m={[s.value.name]:r.value},d=w=>{m[s.value.name]=r.value,s.value=w,r.value=m[w.name]??void 0,p(r.value)};e.watch(()=>n.value,()=>{r.value=n.value}),e.watch(()=>n.defaultSetter,()=>{s.value=n.setters.find(w=>w.name===n.defaultSetter)||n.setters[0]});const p=w=>{o("change",w)},v=()=>{o("remove",n.name)},f=()=>{l.value=!0,a.value=P.isJSExpression(r.value)?r.value.value:""},u=()=>{l.value=!1,a.value=""},g=async w=>J(w,n.context,!0)?(m[s.value.name]=r.value,r.value=w,o("change",w),!0):!1,h=async()=>{await re("确定要解除绑定吗?")&&(u(),r.value=void 0,o("change",""))};return(w,C)=>(e.openBlock(),e.createBlock(e.unref(k.ElFormItem),{class:"v-setter",size:"small","label-positon":"left"},{label:e.withCtx(()=>[n.title?(e.openBlock(),e.createBlock(e.unref(k.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",kl,e.toDisplayString(n.label||n.name),1))]),default:e.withCtx(()=>[e.createElementVNode("div",yl,[s.value?(e.openBlock(),e.createElementBlock("div",wl,[i.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value.component),e.mergeProps({key:0,current:n.current,context:n.context},s.value.props,{options:n.options,modelValue:r.value,"onUpdate:modelValue":C[0]||(C[0]=_=>r.value=_),onChange:p,disabled:i.value}),null,16,["current","context","options","modelValue","disabled"])),i.value?(e.openBlock(),e.createBlock(e.unref(k.ElInput),{key:1,class:"v-expression-setter",disabled:"","model-value":"JSExpression"},{prefix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Vl))]),suffix:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_l))]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Cl,[n.variable?(e.openBlock(),e.createBlock(e.unref(y.VtjIconVars),{key:0,onClick:f,class:e.normalizeClass(["v-icon-vars",{"is-active":i.value}]),title:"绑定变量"},null,8,["class"])):e.createCommentVNode("",!0),n.setters.length>1?(e.openBlock(),e.createBlock(e.unref(k.ElDropdown),{key:1,disabled:i.value,size:"small","popper-class":"v-setter-switch",onCommand:d},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(k.ElDropdownMenu),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.setters,_=>(e.openBlock(),e.createBlock(e.unref(k.ElDropdownItem),{command:_,key:_.name},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconCheck),{class:e.normalizeClass({"is-placeholder":_.name!==s.value.name})},null,8,["class"]),e.createTextVNode(" "+e.toDisplayString(_.label),1)]),_:2},1032,["command"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconSwitch),{title:"切换设置器"})]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.removable?(e.openBlock(),e.createBlock(e.unref(y.VtjIconRemove),{key:2,onClick:v,title:"删除"})):e.createCommentVNode("",!0)])]),l.value?(e.openBlock(),e.createBlock(e.unref(Re),{key:0,current:n.current,context:n.context,value:a.value,modelValue:l.value,"onUpdate:modelValue":C[1]||(C[1]=_=>l.value=_),submitMethod:g,onUnbind:h},null,8,["current","context","value","modelValue"])):e.createCommentVNode("",!0)]),_:1}))}}),Bl={class:"v-empty-region"},xl=e.defineComponent({name:"EmptyRegion",__name:"empty",props:{region:{}},setup(c){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Bl,"找不到符合【"+e.toDisplayString(t.region)+"】名称的区域组件",1))}}),Sl={class:"v-brand-region"},Nl=e.defineComponent({name:"BrandRegion",inheritAttrs:!1,__name:"brand",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",Sl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(ne),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),El={class:"v-toolbar-region"},Al=e.defineComponent({name:"ToolbarRegion",__name:"toolbar",props:{region:{},preview:{type:Boolean}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",El,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(ne),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r,preview:a.preview},null,8,["region","widget","preview"]))),256))]))}}),jl={class:"v-actions-region"},Dl=e.defineComponent({name:"ActionsRegion",inheritAttrs:!1,__name:"actions",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",jl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(ne),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),Il={class:"v-apps-region"},Fl={class:"v-apps-region__header"},Pl={class:"v-apps-region__top"},Tl={class:"v-apps-region__bottom"},Rl={class:"v-apps-region__panels"},zl=e.defineComponent({name:"AppsRegion",inheritAttrs:!1,__name:"apps",props:{region:{},index:{default:0}},setup(c,{expose:t}){const n=c,o=q(),{widgets:l,widgetsRef:a}=oe(n.region),s=e.computed(()=>l.value.filter(u=>u.openType==="panel")),r=e.computed(()=>l.value.filter(u=>u.openType!=="panel")),i=s.value[n.index],m=e.ref(i),d=e.ref(i),p=u=>{m.value=u,d.value=d.value?.name===u.name?null:u},v=u=>{u.openType==="link"&&u.url&&window.open(u.url),u.openType==="dialog"&&b.createDialog({title:u.label,icon:u.icon,...u.props,content:u.component})};return e.watch(d,u=>{o.skeleton?.toggleCollapse(!u)}),t({widgets:l,widgetsRef:a,setActive:u=>{const g=s.value.find(h=>h.name===u);m.value=g,d.value=g}}),(u,g)=>(e.openBlock(),e.createElementBlock("div",Il,[e.createElementVNode("div",Fl,[e.createElementVNode("div",Pl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,active:m.value?.name===h.name,open:d.value?.name===h.name,onClick:w=>p(h)},null,8,["icon","label","active","open","onClick"]))),128))]),e.createElementVNode("div",Tl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createBlock(e.unref(be),{key:`icon-${h.name}`,icon:h.icon,label:h.label,onClick:w=>v(h)},null,8,["icon","label","onClick"]))),128))])]),e.createElementVNode("div",Rl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,h=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:h.name},[m.value?.name===h.name?(e.openBlock(),e.createBlock(e.unref(ne),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:a,region:u.region,widget:h},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))])]))}}),$l=e.defineComponent({name:"WorkspaceRegion",__name:"workspace",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(f=>({name:f.name,command:f.name,label:f.label,closable:!!f.closable,props:f.props||{},checked:!f.closable}))),s=e.computed(()=>a.filter(f=>!f.closable||f.checked)),r=e.computed(()=>a.map(f=>({...f,disabled:!f.closable}))),i=e.ref(s.value[0]?.name),m=e.computed(()=>a.find(u=>u.name===i.value)?.props||{}),d=f=>{const u=a.find(g=>g.name===f);u&&(u.checked=!1),i.value===f&&(i.value=s.value[0]?.name)},p=f=>{const u=a.find(g=>g.name===f.name);u&&u.closable&&(u.checked=!u.checked,u.checked&&(i.value=u.name),!u.checked&&i.value===u.name&&(i.value=s.value[0]?.name))};return t({currentTab:i,widgets:o,widgetsRef:l,openTab:(f,u={})=>{const g=a.find(h=>h.name===f);g&&(g.props=Object.assign({},g.props,u),g.checked=!0,i.value=g.name)}}),(f,u)=>(e.openBlock(),e.createBlock(e.unref(ce),{class:"v-workspace-region",items:s.value,menus:r.value,modelValue:i.value,"onUpdate:modelValue":u[0]||(u[0]=g=>i.value=g),checkable:"",onRemove:d,onCommand:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),g=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g.name},[i.value===g.name?(e.openBlock(),e.createBlock(e.unref(ne),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:f.region,widget:{...g,props:m.value}},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","menus","modelValue"]))}}),Ll=e.defineComponent({name:"SettingsRegion",__name:"settings",props:{region:{}},setup(c,{expose:t}){const n=c,o=q(),{current:l}=U(),{selected:a,isSelectBlock:s}=ee(),r=e.computed(()=>s.value?Y.Block:Y.Node),{widgets:i,widgetsRef:m}=oe(n.region,r),d=e.ref(),p=e.ref(!1),v=e.computed(()=>i.value.map(h=>({name:h.name,label:h.label,actions:h.name==="Style"?[{name:"switch",icon:y.Switch,background:"hover"}]:void 0}))),f=e.computed(()=>{const h=a.value?.model;return h?o.assets.componentMap.get(h.name)?.doc:null});e.watch(l,h=>{o.skeleton?.settable(!!h)}),e.watch(r,()=>{d.value=v.value[0]?.name},{immediate:!0}),e.watch(d,()=>{p.value=!1});const u=()=>{if(f.value){const h=o.skeleton?.getRegion("Workspace");h&&h.regionRef.openTab("Docs",{url:f.value})}},g=h=>{h.name==="switch"&&(p.value=!p.value)};return t({widgets:i,widgetsRef:m}),(h,w)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,class:"v-settings-region",fit:"",direction:"column"},{default:e.withCtx(()=>[e.unref(a)?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0,flex:"",justify:"space-between",align:"center",class:"v-settings-region__header"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XContainer),{class:"v-settings-region__title"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.VtjIconLayers)),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(a)?.model.name)+": ",1),e.createElementVNode("i",null,e.toDisplayString(e.unref(a)?.model.id),1)])]),_:1}),f.value?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(b.XAction),{onClick:u,icon:e.unref(y.VtjIconHelp),mode:"text",label:"帮助"},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),e.unref(a)&&!e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(b.XContainer),{key:1,grow:"",padding:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(ce),{items:v.value,modelValue:d.value,"onUpdate:modelValue":w[0]||(w[0]=C=>d.value=C),stretch:"",body:{padding:!1},onActionClick:g},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),C=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:C.name},[d.value===C.name?(e.openBlock(),e.createBlock(e.unref(ne),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:m,region:h.region,widget:e.unref(R.merge)({props:{isStyleCodeMode:p.value}},C)},null,8,["region","widget"])):e.createCommentVNode("",!0)],64))),128))]),_:1},8,["items","modelValue"])]),_:1})):e.createCommentVNode("",!0),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:2,description:"请在左侧画布选中节点"})),e.unref(a)&&e.unref(a).model.locked?(e.openBlock(),e.createBlock(e.unref(k.ElEmpty),{key:3,"image-size":1,description:"节点已被锁定, 禁止编辑"})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),Ol={class:"v-status-region"},Xl=e.defineComponent({name:"StatusRegion",inheritAttrs:!1,__name:"status",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region);return t({widgets:o,widgetsRef:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",Ol,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),r=>(e.openBlock(),e.createBlock(e.unref(ne),{ref_for:!0,ref_key:"widgetsRef",ref:l,region:a.region,widget:r},null,8,["region","widget"]))),256))]))}}),Ml=e.defineComponent({name:"PreviewRegion",__name:"preview",props:{region:{}},setup(c,{expose:t}){const n=c,{widgets:o,widgetsRef:l}=oe(n.region),a=e.reactive(o.value.map(i=>({name:i.name,command:i.name,label:i.label,closable:!!i.closable,checked:!1}))),s=e.computed(()=>a.filter(i=>!i.closable||i.checked)),r=e.ref(s.value[0]?.name);return t({currentTab:r,widgets:o,widgetsRef:l}),(i,m)=>(e.openBlock(),e.createBlock(e.unref(ce),{class:"v-workspace-region",items:s.value,modelValue:r.value,"onUpdate:modelValue":m[0]||(m[0]=d=>r.value=d)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),d=>(e.openBlock(),e.createBlock(e.KeepAlive,{key:d.name},[r.value===d.name?(e.openBlock(),e.createBlock(e.unref(ne),{key:0,ref_for:!0,ref_key:"widgetsRef",ref:l,region:i.region,widget:d},null,8,["region","widget"])):e.createCommentVNode("",!0)],1024))),128))]),_:1},8,["items","modelValue"]))}}),ke={EmptyRegion:xl,Brand:Nl,Toolbar:Al,Actions:Dl,Apps:zl,Workspace:$l,Settings:Ll,Status:Xl,Preview:Ml};exports.API_METHOD_TYPES=Ne;exports.Assets=Ze;exports.Binder=pe;exports.Box=me;exports.Designer=Ke;exports.EVENT_MODIFIERS=Ee;exports.Editor=X;exports.Engine=bl;exports.EventBinder=ze;exports.Icon=be;exports.Item=W;exports.KEYBOARD_EVENT_LIST=Se;exports.MOBILE_SIZE=ge;exports.MOUSE_EVENT_LIST=xe;exports.NAME_REGEX=Z;exports.PAD_SIZE=he;exports.Panel=I;exports.RegionType=Ae;exports.RegionWrapper=te;exports.Renderer=Qe;exports.SetterView=nt;exports.SetterWrapper=E;exports.Simulator=Ye;exports.Skeleton=tt;exports.SkeletonWrapper=et;exports.SlotsPicker=Te;exports.Tabs=ce;exports.VTJ_DESIGNER_VERSION=Be;exports.VariableBinder=Re;exports.Viewer=Pe;exports.Viewport=ye;exports.WidgetGroup=Y;exports.WidgetWrapper=ne;exports.builtInDeps=Me;exports.builtInMaterials=Je;exports.builtInSetters=qe;exports.builtInWidgets=Xe;exports.confirm=re;exports.createSlotsPicker=Ge;exports.defaultSetter=Ue;exports.depsManager=He;exports.engineKey=Ce;exports.expressionValidate=J;exports.message=H;exports.notify=M;exports.regions=ke;exports.setterManager=ie;exports.setters=L;exports.useEngine=q;exports.widgetManager=we;exports.widgets=T;