@robot-admin/naive-ui-components 0.14.2 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +130 -721
- package/README_EN.md +137 -658
- package/dist/C_ActionBar.css +57 -58
- package/dist/C_ActionBar2.cjs +1 -1
- package/dist/C_ActionBar2.js +1 -1
- package/dist/C_AntV.css +215 -222
- package/dist/C_AntV2.cjs +2 -2
- package/dist/C_AntV2.js +2 -2
- package/dist/C_AudioPlayer.css +11 -12
- package/dist/C_AvatarGroup.css +5 -6
- package/dist/C_Barcode.css +1 -1
- package/dist/C_Breadcrumb.css +15 -17
- package/dist/C_Breadcrumb2.cjs +1 -1
- package/dist/C_Breadcrumb2.js +1 -1
- package/dist/C_Captcha.css +45 -47
- package/dist/C_Captcha2.cjs +1 -1
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Cascade.css +2 -2
- package/dist/C_Chat.css +8 -8
- package/dist/C_City.css +6 -7
- package/dist/C_Code.css +14 -15
- package/dist/C_CollapsePanel.css +12 -13
- package/dist/C_ContextMenu.css +31 -31
- package/dist/C_Cron.css +272 -275
- package/dist/C_Date.css +1 -1
- package/dist/C_Draggable.css +10 -11
- package/dist/C_Editor.css +2 -2
- package/dist/C_FilePreview.css +193 -193
- package/dist/C_Form.base.css +607 -601
- package/dist/C_Form.cjs +1 -1
- package/dist/C_Form.css +609 -603
- package/dist/C_Form.d.cts +2 -2
- package/dist/C_Form.d.ts +2 -2
- package/dist/C_Form.js +1 -1
- package/dist/C_FormModal.cjs +1 -1
- package/dist/C_FormModal.css +14 -20
- package/dist/C_FormModal.js +1 -1
- package/dist/C_FormModal2.cjs +1 -1
- package/dist/C_FormModal2.js +1 -1
- package/dist/C_FormSearch.css +53 -55
- package/dist/C_FormSearch2.cjs +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_FormulaEditor.css +314 -315
- package/dist/C_FullCalendar.css +14 -16
- package/dist/C_FullCalendar2.cjs +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_GlobalSearch.css +2 -2
- package/dist/C_Guide.css +14 -15
- package/dist/C_Icon.css +7 -8
- package/dist/C_ImageCropper.css +69 -69
- package/dist/C_Language.css +8 -8
- package/dist/C_Loading.css +20 -22
- package/dist/C_Loading2.cjs +1 -1
- package/dist/C_Loading2.js +1 -1
- package/dist/C_Login.css +130 -135
- package/dist/C_Login2.cjs +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Map.css +22 -23
- package/dist/C_Markdown.css +2 -2
- package/dist/C_Menu.css +2 -5
- package/dist/C_Menu2.cjs +1 -1
- package/dist/C_Menu2.js +1 -1
- package/dist/C_NotificationCenter.css +300 -301
- package/dist/C_OrgChart.css +3 -3
- package/dist/C_PageLoading.css +35 -39
- package/dist/C_QRCode.css +5 -6
- package/dist/C_Signature.css +5 -6
- package/dist/C_Skeleton.css +6 -7
- package/dist/C_SplitPane.css +2 -2
- package/dist/C_Steps.css +2 -2
- package/dist/C_Table.base.css +1097 -870
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +1101 -874
- package/dist/C_Table.d.cts +1 -1
- package/dist/C_Table.d.ts +1 -1
- package/dist/C_Table.js +1 -1
- package/dist/C_Tabs.css +2 -2
- package/dist/C_TagsView.css +72 -76
- package/dist/C_TagsView2.cjs +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_Theme.css +7 -8
- package/dist/C_Time.css +1 -1
- package/dist/C_Timeline.css +8 -8
- package/dist/C_Transfer.css +10 -11
- package/dist/C_Tree.css +16 -17
- package/dist/C_Upload.css +147 -148
- package/dist/C_VideoPlayer.css +280 -281
- package/dist/C_VtableGantt.css +2 -2
- package/dist/C_WaterFall.css +17 -18
- package/dist/C_WorkFlow.css +453 -457
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/Card.cjs +1 -0
- package/dist/Card.js +1 -0
- package/dist/Custom.cjs +1 -0
- package/dist/Custom.js +1 -0
- package/dist/Dynamic.cjs +1 -0
- package/dist/Dynamic.js +1 -0
- package/dist/Steps.cjs +1 -0
- package/dist/Steps.js +1 -0
- package/dist/Tabs.cjs +1 -0
- package/dist/Tabs.js +1 -0
- package/dist/cascader.cjs +1 -0
- package/dist/cascader.js +1 -0
- package/dist/color-picker.cjs +1 -0
- package/dist/color-picker.js +1 -0
- package/dist/constants.d.cts +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants3.d.cts +5 -5
- package/dist/constants3.d.ts +5 -5
- package/dist/constants4.d.cts +4 -4
- package/dist/constants4.d.ts +4 -4
- package/dist/constants5.d.cts +2 -2
- package/dist/constants5.d.ts +2 -2
- package/dist/context.cjs +1 -0
- package/dist/context.js +1 -0
- package/dist/contracts.d.cts +24 -0
- package/dist/contracts.d.ts +24 -0
- package/dist/createPageLoading.cjs +1 -1
- package/dist/createPageLoading.js +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.d.cts +9 -9
- package/dist/data.d.ts +9 -9
- package/dist/data.js +1 -1
- package/dist/date-picker.cjs +1 -0
- package/dist/date-picker.js +1 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.js +1 -0
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +6 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +4 -4
- package/dist/index.vue.d.ts +4 -4
- package/dist/index10.vue.d.cts +3 -3
- package/dist/index11.vue.d.ts +2 -2
- package/dist/index12.vue.d.cts +2 -2
- package/dist/index12.vue.d.ts +1 -1
- package/dist/index13.vue.d.cts +1 -1
- package/dist/index13.vue.d.ts +3 -3
- package/dist/index14.vue.d.cts +3 -3
- package/dist/index14.vue.d.ts +7 -7
- package/dist/index15.vue.d.cts +7 -7
- package/dist/index16.vue.d.ts +1 -1
- package/dist/index17.vue.d.cts +1 -1
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.cts +1 -1
- package/dist/index18.vue.d.ts +1 -1
- package/dist/index19.vue.d.cts +1 -1
- package/dist/index19.vue.d.ts +2 -9
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +1 -1
- package/dist/index20.vue.d.ts +1 -1
- package/dist/index21.vue.d.cts +1 -1
- package/dist/index21.vue.d.ts +1 -1
- package/dist/index22.vue.d.cts +2 -2
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index23.vue.d.cts +1 -1
- package/dist/index23.vue.d.ts +1 -1
- package/dist/index25.vue.d.cts +4 -4
- package/dist/index25.vue.d.ts +4 -4
- package/dist/index26.vue.d.cts +1 -1
- package/dist/index26.vue.d.ts +1 -1
- package/dist/index27.vue.d.cts +4 -4
- package/dist/index27.vue.d.ts +4 -4
- package/dist/index28.vue.d.cts +1 -1
- package/dist/index28.vue.d.ts +1 -1
- package/dist/index3.vue.d.cts +4 -4
- package/dist/index3.vue.d.ts +4 -4
- package/dist/index4.vue.d.cts +2 -9
- package/dist/index6.vue.d.ts +3 -3
- package/dist/index7.vue.d.cts +3 -3
- package/dist/index8.vue.d.ts +2 -2
- package/dist/index9.vue.d.cts +2 -2
- package/dist/index9.vue.d.ts +3 -3
- package/dist/mapUtils.d.cts +2 -2
- package/dist/mapUtils.d.ts +2 -2
- package/dist/presets.d.cts +8 -2
- package/dist/presets.d.ts +8 -2
- package/dist/rate.cjs +1 -0
- package/dist/rate.js +1 -0
- package/dist/slider.cjs +1 -0
- package/dist/slider.js +1 -0
- package/dist/style.css +10898 -10915
- package/dist/time-picker.cjs +1 -0
- package/dist/time-picker.js +1 -0
- package/dist/upload.cjs +1 -0
- package/dist/upload.js +1 -0
- package/dist/useActionTask.cjs +1 -0
- package/dist/useActionTask.js +1 -0
- package/dist/useCalendarEvents.d.cts +1 -1
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.cts +4 -4
- package/dist/useCollapsePanel.d.ts +4 -4
- package/dist/useComponentLocale.cjs +1 -0
- package/dist/useComponentLocale.js +1 -0
- package/dist/useCropperCore.d.cts +6 -6
- package/dist/useCropperCore.d.ts +6 -6
- package/dist/useDraggableLayout.d.cts +1 -1
- package/dist/useDraggableLayout.d.ts +1 -1
- package/dist/useDynamicFormState.cjs +1 -0
- package/dist/useDynamicFormState.d.cts +64 -40
- package/dist/useDynamicFormState.d.ts +64 -40
- package/dist/useDynamicFormState.js +1 -0
- package/dist/useEdgeInteraction.d.cts +3 -3
- package/dist/useEdgeInteraction.d.ts +3 -3
- package/dist/useGlobalSearch.d.cts +1 -1
- package/dist/useGlobalSearch.d.ts +1 -1
- package/dist/useQRCode.d.cts +2 -2
- package/dist/useQRCode.d.ts +2 -2
- package/dist/useSearchState.d.cts +15 -725
- package/dist/useSearchState.d.ts +15 -834
- package/dist/useSignatureHistory.d.cts +4 -4
- package/dist/useSignatureHistory.d.ts +4 -4
- package/dist/useSplitResize.d.cts +3 -3
- package/dist/useSplitResize.d.ts +3 -3
- package/dist/useTableQuery.cjs +3 -3
- package/dist/useTableQuery.d.cts +73 -34
- package/dist/useTableQuery.d.ts +73 -34
- package/dist/useTableQuery.js +3 -3
- package/dist/useTimeSelection.d.cts +1 -1
- package/dist/useTimeSelection.d.ts +1 -1
- package/dist/useTreeOperations.d.cts +5 -5
- package/dist/useTreeOperations.d.ts +5 -5
- package/dist/useWorkflowValidation.d.cts +3 -3
- package/dist/useWorkflowValidation.d.ts +3 -3
- package/dist/verification.d.cts +4 -4
- package/dist/verification.d.ts +4 -4
- package/docs/architecture.en.md +83 -0
- package/docs/architecture.md +83 -0
- package/docs/assets/README.md +47 -0
- package/docs/assets/naive-ui-components-banner.png +0 -0
- package/docs/assets/naive-ui-components-banner.svg +69 -0
- package/docs/assets/naive-ui-components-logo.png +0 -0
- package/docs/assets/naive-ui-components-logo.svg +22 -0
- package/docs/components.en.md +118 -0
- package/docs/components.md +118 -0
- package/docs/engineering.en.md +132 -0
- package/docs/engineering.md +133 -0
- package/docs/guides/usage.en.md +638 -0
- package/docs/guides/usage.md +699 -0
- package/docs/performance-0.15.0.md +20 -0
- package/docs/security-scan-2026-10-06.md +11 -0
- package/docs/security-scan-2026-10-18.md +16 -0
- package/package.json +35 -12
- package/dist/C_Form2.cjs +0 -1
- package/dist/C_Form2.js +0 -1
- package/dist/config.cjs +0 -1
- package/dist/config.d.cts +0 -33
- package/dist/config.d.ts +0 -33
- package/dist/config.js +0 -1
package/dist/C_AntV2.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require(`./chunk.cjs`),t=require(`./config.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./export-helper.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`@antv/x6`),s=require(`html2canvas`);s=e.t(s);function c(e){return{background:e?`#18181c`:`#f5f5f5`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`}}function l(e=!1){let t=c(e);return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:2},selecting:{enabled:!0,rubberband:!0,movable:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!0,snapline:!0,keyboard:!0,clipboard:!0}}function u(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function d(e,t){let n=0,r,a,s=!1,d=(0,i.ref)(null),f=(0,i.ref)(!1),p=i=>{if(!s){f.value=!0;try{if(!e.value)return;d.value&&=(d.value.dispose(),null);let{width:a,height:c}=u(e.value);if(a===0||c===0){n++,n<10&&(clearTimeout(r),r=setTimeout(()=>{s||m(i)},100));return}n=0;let f=l(t?.value??!1);d.value=new o.Graph({container:e.value,width:a,height:c,...f,...i})}catch{}finally{f.value=!1}}},m=async(e={})=>{clearTimeout(r),r=void 0,await(0,i.nextTick)(),p(e)};function h(e){if(!d.value)return;let t=c(e);d.value.drawBackground({color:t.background}),d.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&(0,i.watch)(t,e=>{h(e)});function g(){if(clearTimeout(r),clearTimeout(a),r=void 0,a=void 0,d.value){let e=d.value;d.value=null,e.dispose()}}function _(){d.value?.centerContent()}function v(){d.value?.zoomToFit({padding:20,maxScale:1})}function y(e=200,t=20){clearTimeout(a);let n=d.value;n&&(a=setTimeout(()=>{!s&&d.value===n&&n.zoomToFit({padding:t,maxScale:1})},e))}function b(e){d.value?.zoom(e)}function x(){if(d.value&&e.value){let{width:t,height:n}=u(e.value);d.value.resize(t,n)}}return(0,i.onUnmounted)(()=>{s=!0,g()}),{graph:d,loading:f,initGraph:m,destroyGraph:g,centerContent:_,zoomToFit:v,scheduleZoomToFit:y,zoom:b,resizeGraph:x,updateTheme:h}}function f(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function p(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);f(new Blob([n],{type:`application/json`}),t)}async function m(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;f(await g(await(0,s.default)(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function h(e,t=`diagram.svg`){let n=e.container.querySelector(`svg`);if(!n)throw Error(`SVG导出失败: 未找到图表 SVG 元素`);let r=n.cloneNode(!0);r.getAttribute(`xmlns`)||r.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),r.getAttribute(`xmlns:xlink`)||r.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`);let i=new XMLSerializer().serializeToString(r);f(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function g(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const _=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function v(e,n=`diagram`){let r=t.r();return{exportOptions:_,handleExport:async(t,i)=>{if(e.value)try{switch(t){case`png`:await m(e.value,`${n}.png`);break;case`svg`:h(e.value,`${n}.svg`);break;case`json`:i&&p(i(),`${n}.json`);break}}catch(e){r.error(`导出${t.toUpperCase()}失败,请重试`,e)}}}}const y=[{label:`BIGINT`,value:`BIGINT`},{label:`INT`,value:`INT`},{label:`SMALLINT`,value:`SMALLINT`},{label:`TINYINT`,value:`TINYINT`},{label:`VARCHAR(50)`,value:`VARCHAR(50)`},{label:`VARCHAR(100)`,value:`VARCHAR(100)`},{label:`VARCHAR(255)`,value:`VARCHAR(255)`},{label:`CHAR(10)`,value:`CHAR(10)`},{label:`TEXT`,value:`TEXT`},{label:`LONGTEXT`,value:`LONGTEXT`},{label:`DATETIME`,value:`DATETIME`},{label:`TIMESTAMP`,value:`TIMESTAMP`},{label:`DATE`,value:`DATE`},{label:`TIME`,value:`TIME`},{label:`DECIMAL(10,2)`,value:`DECIMAL(10,2)`},{label:`FLOAT`,value:`FLOAT`},{label:`DOUBLE`,value:`DOUBLE`},{label:`BOOLEAN`,value:`BOOLEAN`},{label:`JSON`,value:`JSON`}],b={key:0,class:`table-editor`},x={class:`fields-container`},S={class:`field-header`},C=(0,i.defineComponent)({__name:`ERTableEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingTable`),o=t,s=(e,t)=>o(`handle-primary-key`,e,t),c=()=>o(`add-field`),l=e=>o(`remove-field`,e);return(t,o)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":o[4]||=e=>t.$emit(`update:show`,e)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NDrawerContent),{title:`编辑表: ${r.value?.name||`新表`}`,closable:``},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`end`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[2]||=e=>t.$emit(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...o[11]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[3]||=e=>t.$emit(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...o[12]||=[(0,i.createTextVNode)(`保存`,-1)]]),_:1})]),_:1})]),default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,b,[(0,i.createVNode)((0,i.unref)(a.NForm),{model:r.value,"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":o[0]||=e=>r.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表注释`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.comment,"onUpdate:value":o[1]||=e=>r.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),null,{default:(0,i.withCtx)(()=>[...o[5]||=[(0,i.createTextVNode)(`字段列表`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,x,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.fields,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NCard),{key:t,size:`small`,class:`field-card`},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,S,[(0,i.createElementVNode)(`span`,null,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新字段`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>l(t),size:`tiny`,type:`error`,quaternary:``,disabled:r.value.fields.length<=1},{default:(0,i.withCtx)(()=>[...o[6]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGrid),{cols:2,"x-gap":12},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`字段名`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSelect),{value:e.type,"onUpdate:value":t=>e.type=t,options:(0,i.unref)(y),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NSpace),{style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>s(e,t)]},{default:(0,i.withCtx)(()=>[...o[7]||=[(0,i.createTextVNode)(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:(0,i.withCtx)(()=>[...o[8]||=[(0,i.createTextVNode)(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:(0,i.withCtx)(()=>[...o[9]||=[(0,i.createTextVNode)(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:c,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[o[10]||=(0,i.createTextVNode)(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}});var w=r.t(C,[[`__scopeId`,`data-v-4e8f219f`]]);const T={class:`er-layout`},E={key:0,class:`toolbar`},D={key:0,style:{"margin-top":`8px`}},O=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`er-diagram`),y=(0,i.ref)(!1),b=(0,i.ref)(),x=(0,i.ref)(!1),S=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,C=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,group:`list`,attrs:{portNameLabel:{text:S(n,12),title:n},portTypeLabel:{text:S(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],O=e=>({id:e.id,shape:`er-rect`,x:e.position.x,y:e.position.y,width:200,height:24+(e.fields?.length||0)*24,data:e,attrs:{label:{text:S(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:C(e)}),k=()=>{u.value&&(o.Graph.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),o.Graph.registerNode(`er-rect`,{inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`text`,selector:`label`}],attrs:{rect:{strokeWidth:1,stroke:`#5F95FF`,fill:`#5F95FF`},label:{fontWeight:`bold`,fill:`#ffffff`,fontSize:12}},ports:{groups:{list:{markup:[{tagName:`rect`,selector:`portBody`},{tagName:`text`,selector:`portNameLabel`},{tagName:`text`,selector:`portTypeLabel`}],attrs:{portBody:{width:200,height:24,strokeWidth:1,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!0},portNameLabel:{ref:`portBody`,refX:6,refY:6,fontSize:9,textAnchor:`start`,textOverflow:`ellipsis`},portTypeLabel:{ref:`portBody`,refX:120,refY:6,fontSize:9,textAnchor:`start`,fill:`#666`}},position:`erPortPosition`}}}},!0))},A=()=>{x.value=!x.value,x.value||j()},j=()=>{u.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},M=e=>{if(!u.value)return;let t=u.value.createNode(O(e));return u.value.resetCells([t,...u.value.getCells()]),t},N=()=>{let e=u.value?.getNodes()||[];for(let t=0;t<10;t++)for(let n=0;n<3;n++){let r={x:n*250+50,y:t*250+50};if(!e.some(e=>{let t=e.getPosition();return Math.abs(t.x-r.x)<250*.8&&Math.abs(t.y-r.y)<250*.8}))return r}return{x:50,y:50}},P=()=>{let e={id:`table_${Date.now()}`,name:`新表`,comment:``,fields:[{name:`id`,type:`BIGINT`,isPrimaryKey:!0,isRequired:!0,isForeignKey:!1,comment:`主键`},{name:`name`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!0,isForeignKey:!1,comment:`名称`}],position:N()};M(e),F(e),V()},F=e=>{b.value={...e,fields:e.fields?.map(e=>({...e}))||[]},y.value=!0},I=()=>{if(!u.value||!b.value)return;let e=u.value.getCellById(b.value.id);e&&(e.setData(b.value),e.prop({size:{width:200,height:24+b.value.fields.length*24},attrs:{label:{text:S(b.value.name,20),title:b.value.name}},ports:C(b.value)})),y.value=!1,V()},L=(e,t)=>{t&&(e.isRequired=!0,b.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},R=()=>{b.value?.fields.push({name:`field_${(b.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},z=e=>{b.value&&b.value.fields.length>1&&b.value.fields.splice(e,1)},B=()=>{if(!u.value)return{tables:[],relations:[]};let e=u.value.getNodes().map(e=>({...e.getData(),position:e.getPosition()})),t=[];return u.value.getEdges().forEach(e=>{let n=e.getSourceNode(),r=e.getTargetNode(),i=e.getSourcePortId(),a=e.getTargetPortId();n&&r&&i&&a&&t.push({id:e.id,type:`foreign-key`,sourceTable:n.id,sourceField:i.split(`_`).slice(1).join(`_`),targetTable:r.id,targetField:a.split(`_`).slice(1).join(`_`),name:`${n.getData()?.name||n.id} -> ${r.getData()?.name||r.id}`})}),{tables:e,relations:t}},V=()=>c(`data-change`,B()),H=null;(0,i.watch)(u,e=>{e instanceof o.Graph&&(k(),e.on(`node:dblclick`,({node:e})=>{s.readonly||F(e.getData())}),e.on(`edge:connected`,V),e.on(`edge:removed`,V),e.on(`edge:click`,({edge:e})=>{x.value?(e.remove(),V()):(j(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),H=e)}),e.on(`edge:dblclick`,({edge:e})=>{e.remove(),V()}),e.on(`blank:click`,()=>{H=null,x.value||j()}),c(`ready`,e),(0,i.nextTick)(()=>{if(s.data?.tables){let t=s.data.tables.map(t=>e.createNode(O(t)));s.data.relations?.length&&s.data.relations.forEach(n=>{t.push(e.createEdge({source:{cell:n.sourceTable,port:`${n.sourceTable}_${n.sourceField}`},target:{cell:n.targetTable,port:`${n.targetTable}_${n.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),e.resetCells(t),h(300,20)}}))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(u.value&&e?.tables){let t=e.tables.map(e=>u.value.createNode(O(e)));e.relations?.length&&e.relations.forEach(e=>{t.push(u.value.createEdge({source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),u.value.resetCells(t)}},{deep:!0});let U=e=>{let t=e.target;t?.tagName===`INPUT`||t?.tagName===`TEXTAREA`||t?.isContentEditable||(e.key===`Delete`||e.key===`Backspace`)&&H&&(H.remove(),V(),H=null)};return(0,i.onMounted)(()=>{document.addEventListener(`keydown`,U),f()}),(0,i.onUnmounted)(()=>document.removeEventListener(`keydown`,U)),t({getGraph:()=>u.value??void 0,getData:B}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,T,[(0,i.createCommentVNode)(` 工具栏 `),e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,E,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:P,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:table-plus`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加表 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:A,type:x.value?`error`:`default`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(x.value?`退出删除`:`删除连线`),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,B)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),x.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,D,[(0,i.createVNode)((0,i.unref)(a.NAlert),{type:`info`,size:`small`,"show-icon":!1},{default:(0,i.withCtx)(()=>[...r[7]||=[(0,i.createTextVNode)(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 图表容器 `),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512),(0,i.createCommentVNode)(` 表编辑器 `),(0,i.createVNode)(w,{show:y.value,"editing-table":b.value,"onUpdate:editingTable":r[1]||=e=>b.value=e,"onUpdate:show":r[2]||=e=>y.value=e,onSave:I,onAddField:R,onRemoveField:z,onHandlePrimaryKey:L},null,8,[`show`,`editing-table`])]))}});var k=r.t(O,[[`__scopeId`,`data-v-6cb58ac5`]]);const A={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{}};function j(e,t={}){let n={...A,...t},r=()=>{e.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,n.defaultColor),e.attr(`line/strokeWidth`,n.strokeWidth)})},i=e=>{r(),e.attr(`line/stroke`,n.highlightColor),e.attr(`line/strokeWidth`,n.highlightStrokeWidth)},a=(e,t)=>{n.portPositions.forEach(n=>e.attr(`port-${n}/style/opacity`,t))};return{resetEdgeStyles:r,highlightEdge:i,togglePorts:a,bindInteractions:()=>{let t=e.value;t&&(t.on(`edge:click`,({edge:e})=>i(e)),t.on(`edge:dblclick`,({edge:e})=>{e.remove(),n.onDataChange()}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,n.onDataChange),n.portPositions.length>0&&(t.on(`node:mouseenter`,({node:e})=>a(e,1)),t.on(`node:mouseleave`,({node:e})=>a(e,0))))}}}const M={"start-event":{name:`开始`,title:`开始事件`,iconClass:`circle start-event`},activity:{name:`任务`,title:`任务活动`,iconClass:`rect activity`},gateway:{name:`网关`,title:`排他网关`,iconClass:`diamond gateway`},"end-event":{name:`结束`,title:`结束事件`,iconClass:`circle end-event`}},N={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},P=[`top`,`right`,`bottom`,`left`],F=(e,t=`rect`)=>e.reduce((e,n)=>{let r=t===`circle`,i=n===`top`?r?{refCx:.5,refCy:0}:{refX:.5,refY:0}:n===`right`?r?{refCx:1,refCy:.5}:{refX:1,refY:.5}:n===`bottom`?r?{refCx:.5,refCy:1}:{refX:.5,refY:1}:r?{refCx:0,refCy:.5}:{refX:0,refY:.5};return e[`port-${n}`]={ref:`body`,...i,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),I={event:{inherit:`circle`,attrs:{body:{strokeWidth:2,stroke:`#5F95FF`,fill:`#FFF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},activity:{inherit:`rect`,attrs:{body:{rx:6,ry:6,stroke:`#5F95FF`,fill:`#EFF4FF`,strokeWidth:1,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},gateway:{inherit:`polygon`,attrs:{body:{refPoints:`0,10 10,0 20,10 10,20`,strokeWidth:2,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:20,fill:`#5F95FF`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}}},L={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function R(e=!1){let t={background:e?`#18181c`:`#ffffff`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`};return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:3},connecting:{router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},highlighting:{magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},selecting:{enabled:!0,rubberband:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!1,snapline:!0,keyboard:!0,clipboard:!0}}R();const z={"start-event":{shape:`event`,width:50,height:50,label:`开始事件`,data:{type:`start`}},"end-event":{shape:`event`,width:50,height:50,label:`结束事件`,data:{type:`end`}},activity:{shape:`activity`,width:120,height:60,label:`新活动`,data:{description:``,assignee:``}},gateway:{shape:`gateway`,width:40,height:40,label:`+`,data:{type:`exclusive`}}},B=[{id:`start-1`,shape:`event`,x:100,y:200,width:50,height:50,label:`流程开始`,data:{type:`start`}},{id:`activity-1`,shape:`activity`,x:200,y:180,width:120,height:60,label:`用户申请`,data:{description:`用户提交申请表单`,assignee:`申请人`}},{id:`activity-2`,shape:`activity`,x:380,y:180,width:120,height:60,label:`初审`,data:{description:`部门进行初步审核`,assignee:`部门主管`}},{id:`gateway-1`,shape:`gateway`,x:550,y:200,width:40,height:40,label:`+`,data:{type:`exclusive`}},{id:`activity-3`,shape:`activity`,x:650,y:120,width:120,height:60,label:`终审`,data:{description:`高级主管最终审核`,assignee:`总监`}},{id:`activity-4`,shape:`activity`,x:650,y:260,width:120,height:60,label:`驳回处理`,data:{description:`处理驳回流程`,assignee:`专员`}},{id:`end-1`,shape:`event`,x:820,y:140,width:50,height:50,label:`审批通过`,data:{type:`end`}},{id:`end-2`,shape:`event`,x:820,y:280,width:50,height:50,label:`审批驳回`,data:{type:`end`}},{id:`edge-1`,shape:`bpmn-edge`,source:`start-1`,target:`activity-1`,x:0,y:0},{id:`edge-2`,shape:`bpmn-edge`,source:`activity-1`,target:`activity-2`,x:0,y:0},{id:`edge-3`,shape:`bpmn-edge`,source:`activity-2`,target:`gateway-1`,x:0,y:0},{id:`edge-4`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-3`,label:`通过`,x:0,y:0},{id:`edge-5`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-4`,label:`驳回`,x:0,y:0},{id:`edge-6`,shape:`bpmn-edge`,source:`activity-3`,target:`end-1`,x:0,y:0},{id:`edge-7`,shape:`bpmn-edge`,source:`activity-4`,target:`end-2`,x:0,y:0}],V={key:0,class:`property-panel`},H={class:`property-item`},U={class:`property-item`},ee={key:0,class:`property-item`},te={key:1,class:`property-item`},ne={class:`form-actions`},re=(0,i.defineComponent)({__name:`BPMNPropertyEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=(0,i.useModel)(e,`editingElement`),r=t,o=(0,i.computed)(()=>N[n.value?.shape]||n.value?.shape||``);return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":s[6]||=e=>r(`update:show`,e)},{default:(0,i.withCtx)(()=>[n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,V,[(0,i.createElementVNode)(`div`,H,[s[7]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`名称`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.label,"onUpdate:value":s[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),(0,i.createElementVNode)(`div`,U,[s[8]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`类型`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:o.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ee,[s[9]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`描述`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.description,"onUpdate:value":s[1]||=e=>n.value.description=e,type:`textarea`,rows:3,placeholder:`请输入活动描述`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,te,[s[10]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`执行人`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.assignee,"onUpdate:value":s[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ne,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>r(`update:show`,!1),size:`small`},{default:(0,i.withCtx)(()=>[...s[12]||=[(0,i.createTextVNode)(` 取消 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1})]),_:1})])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var W=r.t(re,[[`__scopeId`,`data-v-fc8f213e`]]);const G={class:`bpmn-layout`},K={key:0,class:`top-toolbar`},q={class:`toolbar-section`},J={class:`toolbar-group`},Y={class:`toolbar-group`},X={class:`toolbar-group`},ie={class:`main-content`},ae={key:0,class:`left-panel`},oe={class:`element-grid`},se=[`onClick`,`title`],ce={class:`graph-wrapper`},le=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`bpmn-diagram`),{bindInteractions:y}=j(u,{portPositions:P,onDataChange:()=>V()}),b=(0,i.ref)(!1),x=(0,i.ref)(),S=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),C=e=>{if(!e)return[];if(Array.isArray(e))return e;let t=[];return Object.values(e).forEach(e=>{Array.isArray(e)&&t.push(...e)}),t},w=()=>{let e=P.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{o.Graph.registerNode(t,{...I[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...I[t].attrs,...F(P,n[t])}},!0)}),o.Graph.registerEdge(`bpmn-edge`,L,!0)},T=e=>{if(!u.value)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?u.value.createEdge(n):u.value.createNode(n);return t&&r.setData(t),r});u.value.resetCells(t),t.length&&h(200,50)},E=e=>{if(!u.value)return;let t=z[e];if(!t)return;let n=u.value.options.width/2,r=u.value.options.height/2,{data:i,...a}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},o=u.value.createNode(a);i&&o.setData(i),u.value.addCell(o),V()},D=()=>{u.value?.clearCells(),V()},O=e=>{let t=e.getData()||{};x.value={id:e.id,shape:e.shape,label:S(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},b.value=!0},k=()=>{if(!u.value||!x.value)return;let e=u.value.getCellById(x.value.id);e&&(e.setData({description:x.value.description,assignee:x.value.assignee}),e.attr(`text/text`,x.value.label||``),e.attr(`label/text`,x.value.label||``)),b.value=!1,V()},A=()=>{!u.value||!x.value||(u.value.getCellById(x.value.id)?.remove(),b.value=!1,V())},N=()=>u.value?[...u.value.getNodes().map(e=>({id:e.id,shape:e.shape,x:e.getPosition().x,y:e.getPosition().y,width:e.getSize().width,height:e.getSize().height,label:S(e),data:e.getData()||{}})),...u.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:S(e),data:e.getData()||{},x:0,y:0}))]:[],V=()=>c(`data-change`,N());return(0,i.watch)(u,e=>{e instanceof o.Graph&&(s.readonly||(y(),e.on(`node:dblclick`,({node:e})=>O(e)),e.on(`node:moved`,V)),c(`ready`,e),T(s.data===void 0?B:C(s.data)))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{u.value&&T(e===void 0?B:C(e))},{deep:!0}),(0,i.onMounted)(async()=>{w();let e=R();await f({...e,connecting:{...e.connecting,createEdge:()=>u.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),t({getGraph:()=>u.value,getData:N,loadData:T}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,G,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,K,[(0,i.createElementVNode)(`div`,q,[(0,i.createElementVNode)(`div`,J,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:D,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete-outline`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 清空 `,-1)]),_:1})]),(0,i.createElementVNode)(`div`,Y,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`])]),(0,i.createElementVNode)(`div`,X,[(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,N)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ie,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ae,[r[7]||=(0,i.createElementVNode)(`div`,{class:`panel-title`},`组件`,-1),(0,i.createElementVNode)(`div`,oe,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)((0,i.unref)(M),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`element-item`,onClick:e=>E(t),title:e.title},[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`element-icon`,e.iconClass])},null,2),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)(e.name),1)],8,se))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ce,[(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512)])]),(0,i.createVNode)(W,{show:b.value,"editing-element":x.value,"onUpdate:editingElement":r[1]||=e=>x.value=e,"onUpdate:show":r[2]||=e=>b.value=e,onSave:k,onDelete:A},null,8,[`show`,`editing-element`])]))}});var ue=r.t(le,[[`__scopeId`,`data-v-f40393d6`]]);const de={key:0,class:`class-editor`},fe={class:`section`},pe={class:`section-header`},me={style:{"font-size":`13px`}},he={class:`section`},ge={class:`section-header`},_e={style:{"font-size":`13px`}},ve=(0,i.defineComponent)({__name:`UMLClassEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingClass`),o=t;return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":s[6]||=e=>o(`update:show`,e)},{default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,de,[(0,i.createVNode)((0,i.unref)(a.NForm),{"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":s[0]||=e=>r.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[7]||=[(0,i.createTextVNode)(`属性`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,fe,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.attributes,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,pe,[(0,i.createElementVNode)(`span`,me,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新属性`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[8]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[9]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[10]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[1]||=e=>r.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[12]||=(0,i.createTextVNode)(` 添加属性 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(`方法`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,he,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.methods,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,ge,[(0,i.createElementVNode)(`span`,_e,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新方法`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[14]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[15]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[16]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[17]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[2]||=e=>r.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[18]||=(0,i.createTextVNode)(` 添加方法 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}}),(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`space-between`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>o(`delete`),type:`error`,ghost:``},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[s[19]||=(0,i.createTextVNode)(` 删除类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>o(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...s[20]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>o(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...s[21]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var ye=r.t(ve,[[`__scopeId`,`data-v-c37f7424`]]);const be={public:`+`,private:`-`,protected:`#`},xe={extends:{strokeDasharray:0,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},implement:{strokeDasharray:`8,4`,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},dependency:{strokeDasharray:`6,4`,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}},composition:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`#722ed1`,stroke:`#722ed1`}},aggregation:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},association:{strokeDasharray:0,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}}},Se=[`top`,`right`,`bottom`,`left`].reduce((e,t)=>{let n=t===`top`?{refX:.5,refY:0}:t===`right`?{refX:1,refY:.5}:t===`bottom`?{refX:.5,refY:1}:{refX:0,refY:.5};return e[`port-${t}`]={ref:`body`,...n,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),Ce={inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`rect`,selector:`name-rect`},{tagName:`rect`,selector:`attrs-rect`},{tagName:`rect`,selector:`methods-rect`},{tagName:`text`,selector:`name-text`},{tagName:`text`,selector:`attrs-text`},{tagName:`text`,selector:`methods-text`},{tagName:`circle`,selector:`port-top`},{tagName:`circle`,selector:`port-right`},{tagName:`circle`,selector:`port-bottom`},{tagName:`circle`,selector:`port-left`}],attrs:{rect:{width:160},body:{stroke:`#5f95ff`,strokeWidth:1,fill:`#fff`,magnet:!1,style:{cursor:`move`}},"name-rect":{fill:`#5f95ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"attrs-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"methods-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"name-text":{ref:`name-rect`,refY:.5,refX:.5,textAnchor:`middle`,fontWeight:`bold`,fill:`#fff`,fontSize:12,pointerEvents:`none`},"attrs-text":{ref:`attrs-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},"methods-text":{ref:`methods-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},...Se}},we={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},Te={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},Ee={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},De=[{id:`animal`,name:`<<Abstract>>
|
|
1
|
+
const e=require(`./chunk.cjs`),t=require(`./feedback.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./export-helper.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`@antv/x6`),s=require(`html2canvas`);s=e.t(s);function c(e){return{background:e?`#18181c`:`#f5f5f5`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`}}function l(e=!1){let t=c(e);return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:2},selecting:{enabled:!0,rubberband:!0,movable:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!0,snapline:!0,keyboard:!0,clipboard:!0}}function u(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function d(e,t){let n=0,r,a,s=!1,d=(0,i.ref)(null),f=(0,i.ref)(!1),p=i=>{if(!s){f.value=!0;try{if(!e.value)return;d.value&&=(d.value.dispose(),null);let{width:a,height:c}=u(e.value);if(a===0||c===0){n++,n<10&&(clearTimeout(r),r=setTimeout(()=>{s||m(i)},100));return}n=0;let f=l(t?.value??!1);d.value=new o.Graph({container:e.value,width:a,height:c,...f,...i})}catch{}finally{f.value=!1}}},m=async(e={})=>{clearTimeout(r),r=void 0,await(0,i.nextTick)(),p(e)};function h(e){if(!d.value)return;let t=c(e);d.value.drawBackground({color:t.background}),d.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&(0,i.watch)(t,e=>{h(e)});function g(){if(clearTimeout(r),clearTimeout(a),r=void 0,a=void 0,d.value){let e=d.value;d.value=null,e.dispose()}}function _(){d.value?.centerContent()}function v(){d.value?.zoomToFit({padding:20,maxScale:1})}function y(e=200,t=20){clearTimeout(a);let n=d.value;n&&(a=setTimeout(()=>{!s&&d.value===n&&n.zoomToFit({padding:t,maxScale:1})},e))}function b(e){d.value?.zoom(e)}function x(){if(d.value&&e.value){let{width:t,height:n}=u(e.value);d.value.resize(t,n)}}return(0,i.onUnmounted)(()=>{s=!0,g()}),{graph:d,loading:f,initGraph:m,destroyGraph:g,centerContent:_,zoomToFit:v,scheduleZoomToFit:y,zoom:b,resizeGraph:x,updateTheme:h}}function f(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function p(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);f(new Blob([n],{type:`application/json`}),t)}async function m(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;f(await g(await(0,s.default)(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function h(e,t=`diagram.svg`){let n=e.container.querySelector(`svg`);if(!n)throw Error(`SVG导出失败: 未找到图表 SVG 元素`);let r=n.cloneNode(!0);r.getAttribute(`xmlns`)||r.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),r.getAttribute(`xmlns:xlink`)||r.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`);let i=new XMLSerializer().serializeToString(r);f(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function g(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const _=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function v(e,n=`diagram`){let r=t.t();return{exportOptions:_,handleExport:async(t,i)=>{if(e.value)try{switch(t){case`png`:await m(e.value,`${n}.png`);break;case`svg`:h(e.value,`${n}.svg`);break;case`json`:i&&p(i(),`${n}.json`);break}}catch(e){r.error(`导出${t.toUpperCase()}失败,请重试`,e)}}}}const y=[{label:`BIGINT`,value:`BIGINT`},{label:`INT`,value:`INT`},{label:`SMALLINT`,value:`SMALLINT`},{label:`TINYINT`,value:`TINYINT`},{label:`VARCHAR(50)`,value:`VARCHAR(50)`},{label:`VARCHAR(100)`,value:`VARCHAR(100)`},{label:`VARCHAR(255)`,value:`VARCHAR(255)`},{label:`CHAR(10)`,value:`CHAR(10)`},{label:`TEXT`,value:`TEXT`},{label:`LONGTEXT`,value:`LONGTEXT`},{label:`DATETIME`,value:`DATETIME`},{label:`TIMESTAMP`,value:`TIMESTAMP`},{label:`DATE`,value:`DATE`},{label:`TIME`,value:`TIME`},{label:`DECIMAL(10,2)`,value:`DECIMAL(10,2)`},{label:`FLOAT`,value:`FLOAT`},{label:`DOUBLE`,value:`DOUBLE`},{label:`BOOLEAN`,value:`BOOLEAN`},{label:`JSON`,value:`JSON`}],b={key:0,class:`table-editor`},x={class:`fields-container`},S={class:`field-header`},C=(0,i.defineComponent)({__name:`ERTableEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingTable`),o=t,s=(e,t)=>o(`handle-primary-key`,e,t),c=()=>o(`add-field`),l=e=>o(`remove-field`,e);return(t,o)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":o[4]||=e=>t.$emit(`update:show`,e)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NDrawerContent),{title:`编辑表: ${r.value?.name||`新表`}`,closable:``},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`end`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[2]||=e=>t.$emit(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...o[11]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[3]||=e=>t.$emit(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...o[12]||=[(0,i.createTextVNode)(`保存`,-1)]]),_:1})]),_:1})]),default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,b,[(0,i.createVNode)((0,i.unref)(a.NForm),{model:r.value,"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":o[0]||=e=>r.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表注释`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.comment,"onUpdate:value":o[1]||=e=>r.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),null,{default:(0,i.withCtx)(()=>[...o[5]||=[(0,i.createTextVNode)(`字段列表`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,x,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.fields,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NCard),{key:t,size:`small`,class:`field-card`},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,S,[(0,i.createElementVNode)(`span`,null,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新字段`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>l(t),size:`tiny`,type:`error`,quaternary:``,disabled:r.value.fields.length<=1},{default:(0,i.withCtx)(()=>[...o[6]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGrid),{cols:2,"x-gap":12},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`字段名`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSelect),{value:e.type,"onUpdate:value":t=>e.type=t,options:(0,i.unref)(y),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NSpace),{style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>s(e,t)]},{default:(0,i.withCtx)(()=>[...o[7]||=[(0,i.createTextVNode)(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:(0,i.withCtx)(()=>[...o[8]||=[(0,i.createTextVNode)(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:(0,i.withCtx)(()=>[...o[9]||=[(0,i.createTextVNode)(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:c,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[o[10]||=(0,i.createTextVNode)(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}});var w=r.t(C,[[`__scopeId`,`data-v-4e8f219f`]]);const T={class:`er-layout`},E={key:0,class:`toolbar`},D={key:0,style:{"margin-top":`8px`}},O=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`er-diagram`),y=(0,i.ref)(!1),b=(0,i.ref)(),x=(0,i.ref)(!1),S=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,C=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,group:`list`,attrs:{portNameLabel:{text:S(n,12),title:n},portTypeLabel:{text:S(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],O=e=>({id:e.id,shape:`er-rect`,x:e.position.x,y:e.position.y,width:200,height:24+(e.fields?.length||0)*24,data:e,attrs:{label:{text:S(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:C(e)}),k=()=>{u.value&&(o.Graph.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),o.Graph.registerNode(`er-rect`,{inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`text`,selector:`label`}],attrs:{rect:{strokeWidth:1,stroke:`#5F95FF`,fill:`#5F95FF`},label:{fontWeight:`bold`,fill:`#ffffff`,fontSize:12}},ports:{groups:{list:{markup:[{tagName:`rect`,selector:`portBody`},{tagName:`text`,selector:`portNameLabel`},{tagName:`text`,selector:`portTypeLabel`}],attrs:{portBody:{width:200,height:24,strokeWidth:1,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!0},portNameLabel:{ref:`portBody`,refX:6,refY:6,fontSize:9,textAnchor:`start`,textOverflow:`ellipsis`},portTypeLabel:{ref:`portBody`,refX:120,refY:6,fontSize:9,textAnchor:`start`,fill:`#666`}},position:`erPortPosition`}}}},!0))},A=()=>{x.value=!x.value,x.value||j()},j=()=>{u.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},M=e=>{if(!u.value)return;let t=u.value.createNode(O(e));return u.value.resetCells([t,...u.value.getCells()]),t},N=()=>{let e=u.value?.getNodes()||[];for(let t=0;t<10;t++)for(let n=0;n<3;n++){let r={x:n*250+50,y:t*250+50};if(!e.some(e=>{let t=e.getPosition();return Math.abs(t.x-r.x)<250*.8&&Math.abs(t.y-r.y)<250*.8}))return r}return{x:50,y:50}},P=()=>{let e={id:`table_${Date.now()}`,name:`新表`,comment:``,fields:[{name:`id`,type:`BIGINT`,isPrimaryKey:!0,isRequired:!0,isForeignKey:!1,comment:`主键`},{name:`name`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!0,isForeignKey:!1,comment:`名称`}],position:N()};M(e),F(e),V()},F=e=>{b.value={...e,fields:e.fields?.map(e=>({...e}))||[]},y.value=!0},I=()=>{if(!u.value||!b.value)return;let e=u.value.getCellById(b.value.id);e&&(e.setData(b.value),e.prop({size:{width:200,height:24+b.value.fields.length*24},attrs:{label:{text:S(b.value.name,20),title:b.value.name}},ports:C(b.value)})),y.value=!1,V()},L=(e,t)=>{t&&(e.isRequired=!0,b.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},R=()=>{b.value?.fields.push({name:`field_${(b.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},z=e=>{b.value&&b.value.fields.length>1&&b.value.fields.splice(e,1)},B=()=>{if(!u.value)return{tables:[],relations:[]};let e=u.value.getNodes().map(e=>({...e.getData(),position:e.getPosition()})),t=[];return u.value.getEdges().forEach(e=>{let n=e.getSourceNode(),r=e.getTargetNode(),i=e.getSourcePortId(),a=e.getTargetPortId();n&&r&&i&&a&&t.push({id:e.id,type:`foreign-key`,sourceTable:n.id,sourceField:i.split(`_`).slice(1).join(`_`),targetTable:r.id,targetField:a.split(`_`).slice(1).join(`_`),name:`${n.getData()?.name||n.id} -> ${r.getData()?.name||r.id}`})}),{tables:e,relations:t}},V=()=>c(`data-change`,B()),H=null;(0,i.watch)(u,e=>{e instanceof o.Graph&&(k(),e.on(`node:dblclick`,({node:e})=>{s.readonly||F(e.getData())}),e.on(`edge:connected`,V),e.on(`edge:removed`,V),e.on(`edge:click`,({edge:e})=>{x.value?(e.remove(),V()):(j(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),H=e)}),e.on(`edge:dblclick`,({edge:e})=>{e.remove(),V()}),e.on(`blank:click`,()=>{H=null,x.value||j()}),c(`ready`,e),(0,i.nextTick)(()=>{if(s.data?.tables){let t=s.data.tables.map(t=>e.createNode(O(t)));s.data.relations?.length&&s.data.relations.forEach(n=>{t.push(e.createEdge({source:{cell:n.sourceTable,port:`${n.sourceTable}_${n.sourceField}`},target:{cell:n.targetTable,port:`${n.targetTable}_${n.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),e.resetCells(t),h(300,20)}}))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(u.value&&e?.tables){let t=e.tables.map(e=>u.value.createNode(O(e)));e.relations?.length&&e.relations.forEach(e=>{t.push(u.value.createEdge({source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),u.value.resetCells(t)}},{deep:!0});let U=e=>{let t=e.target;t?.tagName===`INPUT`||t?.tagName===`TEXTAREA`||t?.isContentEditable||(e.key===`Delete`||e.key===`Backspace`)&&H&&(H.remove(),V(),H=null)};return(0,i.onMounted)(()=>{document.addEventListener(`keydown`,U),f()}),(0,i.onUnmounted)(()=>document.removeEventListener(`keydown`,U)),t({getGraph:()=>u.value??void 0,getData:B}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,T,[(0,i.createCommentVNode)(` 工具栏 `),e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,E,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:P,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:table-plus`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加表 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:A,type:x.value?`error`:`default`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(x.value?`退出删除`:`删除连线`),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,B)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),x.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,D,[(0,i.createVNode)((0,i.unref)(a.NAlert),{type:`info`,size:`small`,"show-icon":!1},{default:(0,i.withCtx)(()=>[...r[7]||=[(0,i.createTextVNode)(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 图表容器 `),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512),(0,i.createCommentVNode)(` 表编辑器 `),(0,i.createVNode)(w,{show:y.value,"editing-table":b.value,"onUpdate:editingTable":r[1]||=e=>b.value=e,"onUpdate:show":r[2]||=e=>y.value=e,onSave:I,onAddField:R,onRemoveField:z,onHandlePrimaryKey:L},null,8,[`show`,`editing-table`])]))}});var k=r.t(O,[[`__scopeId`,`data-v-a0a775c0`]]);const A={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{}};function j(e,t={}){let n={...A,...t},r=()=>{e.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,n.defaultColor),e.attr(`line/strokeWidth`,n.strokeWidth)})},i=e=>{r(),e.attr(`line/stroke`,n.highlightColor),e.attr(`line/strokeWidth`,n.highlightStrokeWidth)},a=(e,t)=>{n.portPositions.forEach(n=>e.attr(`port-${n}/style/opacity`,t))};return{resetEdgeStyles:r,highlightEdge:i,togglePorts:a,bindInteractions:()=>{let t=e.value;t&&(t.on(`edge:click`,({edge:e})=>i(e)),t.on(`edge:dblclick`,({edge:e})=>{e.remove(),n.onDataChange()}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,n.onDataChange),n.portPositions.length>0&&(t.on(`node:mouseenter`,({node:e})=>a(e,1)),t.on(`node:mouseleave`,({node:e})=>a(e,0))))}}}const M={"start-event":{name:`开始`,title:`开始事件`,iconClass:`circle start-event`},activity:{name:`任务`,title:`任务活动`,iconClass:`rect activity`},gateway:{name:`网关`,title:`排他网关`,iconClass:`diamond gateway`},"end-event":{name:`结束`,title:`结束事件`,iconClass:`circle end-event`}},N={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},P=[`top`,`right`,`bottom`,`left`],F=(e,t=`rect`)=>e.reduce((e,n)=>{let r=t===`circle`,i=n===`top`?r?{refCx:.5,refCy:0}:{refX:.5,refY:0}:n===`right`?r?{refCx:1,refCy:.5}:{refX:1,refY:.5}:n===`bottom`?r?{refCx:.5,refCy:1}:{refX:.5,refY:1}:r?{refCx:0,refCy:.5}:{refX:0,refY:.5};return e[`port-${n}`]={ref:`body`,...i,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),I={event:{inherit:`circle`,attrs:{body:{strokeWidth:2,stroke:`#5F95FF`,fill:`#FFF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},activity:{inherit:`rect`,attrs:{body:{rx:6,ry:6,stroke:`#5F95FF`,fill:`#EFF4FF`,strokeWidth:1,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},gateway:{inherit:`polygon`,attrs:{body:{refPoints:`0,10 10,0 20,10 10,20`,strokeWidth:2,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:20,fill:`#5F95FF`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}}},L={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function R(e=!1){let t={background:e?`#18181c`:`#ffffff`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`};return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:3},connecting:{router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},highlighting:{magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},selecting:{enabled:!0,rubberband:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!1,snapline:!0,keyboard:!0,clipboard:!0}}R();const z={"start-event":{shape:`event`,width:50,height:50,label:`开始事件`,data:{type:`start`}},"end-event":{shape:`event`,width:50,height:50,label:`结束事件`,data:{type:`end`}},activity:{shape:`activity`,width:120,height:60,label:`新活动`,data:{description:``,assignee:``}},gateway:{shape:`gateway`,width:40,height:40,label:`+`,data:{type:`exclusive`}}},B=[{id:`start-1`,shape:`event`,x:100,y:200,width:50,height:50,label:`流程开始`,data:{type:`start`}},{id:`activity-1`,shape:`activity`,x:200,y:180,width:120,height:60,label:`用户申请`,data:{description:`用户提交申请表单`,assignee:`申请人`}},{id:`activity-2`,shape:`activity`,x:380,y:180,width:120,height:60,label:`初审`,data:{description:`部门进行初步审核`,assignee:`部门主管`}},{id:`gateway-1`,shape:`gateway`,x:550,y:200,width:40,height:40,label:`+`,data:{type:`exclusive`}},{id:`activity-3`,shape:`activity`,x:650,y:120,width:120,height:60,label:`终审`,data:{description:`高级主管最终审核`,assignee:`总监`}},{id:`activity-4`,shape:`activity`,x:650,y:260,width:120,height:60,label:`驳回处理`,data:{description:`处理驳回流程`,assignee:`专员`}},{id:`end-1`,shape:`event`,x:820,y:140,width:50,height:50,label:`审批通过`,data:{type:`end`}},{id:`end-2`,shape:`event`,x:820,y:280,width:50,height:50,label:`审批驳回`,data:{type:`end`}},{id:`edge-1`,shape:`bpmn-edge`,source:`start-1`,target:`activity-1`,x:0,y:0},{id:`edge-2`,shape:`bpmn-edge`,source:`activity-1`,target:`activity-2`,x:0,y:0},{id:`edge-3`,shape:`bpmn-edge`,source:`activity-2`,target:`gateway-1`,x:0,y:0},{id:`edge-4`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-3`,label:`通过`,x:0,y:0},{id:`edge-5`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-4`,label:`驳回`,x:0,y:0},{id:`edge-6`,shape:`bpmn-edge`,source:`activity-3`,target:`end-1`,x:0,y:0},{id:`edge-7`,shape:`bpmn-edge`,source:`activity-4`,target:`end-2`,x:0,y:0}],V={key:0,class:`property-panel`},H={class:`property-item`},U={class:`property-item`},ee={key:0,class:`property-item`},te={key:1,class:`property-item`},ne={class:`form-actions`},re=(0,i.defineComponent)({__name:`BPMNPropertyEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=(0,i.useModel)(e,`editingElement`),r=t,o=(0,i.computed)(()=>N[n.value?.shape]||n.value?.shape||``);return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":s[6]||=e=>r(`update:show`,e)},{default:(0,i.withCtx)(()=>[n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,V,[(0,i.createElementVNode)(`div`,H,[s[7]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`名称`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.label,"onUpdate:value":s[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),(0,i.createElementVNode)(`div`,U,[s[8]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`类型`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:o.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ee,[s[9]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`描述`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.description,"onUpdate:value":s[1]||=e=>n.value.description=e,type:`textarea`,rows:3,placeholder:`请输入活动描述`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,te,[s[10]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`执行人`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.assignee,"onUpdate:value":s[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ne,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>r(`update:show`,!1),size:`small`},{default:(0,i.withCtx)(()=>[...s[12]||=[(0,i.createTextVNode)(` 取消 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1})]),_:1})])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var W=r.t(re,[[`__scopeId`,`data-v-fc8f213e`]]);const G={class:`bpmn-layout`},K={key:0,class:`top-toolbar`},q={class:`toolbar-section`},J={class:`toolbar-group`},Y={class:`toolbar-group`},X={class:`toolbar-group`},ie={class:`main-content`},ae={key:0,class:`left-panel`},oe={class:`element-grid`},se=[`onClick`,`title`],ce={class:`graph-wrapper`},le=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`bpmn-diagram`),{bindInteractions:y}=j(u,{portPositions:P,onDataChange:()=>V()}),b=(0,i.ref)(!1),x=(0,i.ref)(),S=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),C=e=>{if(!e)return[];if(Array.isArray(e))return e;let t=[];return Object.values(e).forEach(e=>{Array.isArray(e)&&t.push(...e)}),t},w=()=>{let e=P.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{o.Graph.registerNode(t,{...I[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...I[t].attrs,...F(P,n[t])}},!0)}),o.Graph.registerEdge(`bpmn-edge`,L,!0)},T=e=>{if(!u.value)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?u.value.createEdge(n):u.value.createNode(n);return t&&r.setData(t),r});u.value.resetCells(t),t.length&&h(200,50)},E=e=>{if(!u.value)return;let t=z[e];if(!t)return;let n=u.value.options.width/2,r=u.value.options.height/2,{data:i,...a}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},o=u.value.createNode(a);i&&o.setData(i),u.value.addCell(o),V()},D=()=>{u.value?.clearCells(),V()},O=e=>{let t=e.getData()||{};x.value={id:e.id,shape:e.shape,label:S(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},b.value=!0},k=()=>{if(!u.value||!x.value)return;let e=u.value.getCellById(x.value.id);e&&(e.setData({description:x.value.description,assignee:x.value.assignee}),e.attr(`text/text`,x.value.label||``),e.attr(`label/text`,x.value.label||``)),b.value=!1,V()},A=()=>{!u.value||!x.value||(u.value.getCellById(x.value.id)?.remove(),b.value=!1,V())},N=()=>u.value?[...u.value.getNodes().map(e=>({id:e.id,shape:e.shape,x:e.getPosition().x,y:e.getPosition().y,width:e.getSize().width,height:e.getSize().height,label:S(e),data:e.getData()||{}})),...u.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:S(e),data:e.getData()||{},x:0,y:0}))]:[],V=()=>c(`data-change`,N());return(0,i.watch)(u,e=>{e instanceof o.Graph&&(s.readonly||(y(),e.on(`node:dblclick`,({node:e})=>O(e)),e.on(`node:moved`,V)),c(`ready`,e),T(s.data===void 0?B:C(s.data)))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{u.value&&T(e===void 0?B:C(e))},{deep:!0}),(0,i.onMounted)(async()=>{w();let e=R();await f({...e,connecting:{...e.connecting,createEdge:()=>u.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),t({getGraph:()=>u.value,getData:N,loadData:T}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,G,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,K,[(0,i.createElementVNode)(`div`,q,[(0,i.createElementVNode)(`div`,J,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:D,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete-outline`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 清空 `,-1)]),_:1})]),(0,i.createElementVNode)(`div`,Y,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`])]),(0,i.createElementVNode)(`div`,X,[(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,N)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ie,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ae,[r[7]||=(0,i.createElementVNode)(`div`,{class:`panel-title`},`组件`,-1),(0,i.createElementVNode)(`div`,oe,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)((0,i.unref)(M),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`element-item`,onClick:e=>E(t),title:e.title},[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`element-icon`,e.iconClass])},null,2),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)(e.name),1)],8,se))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ce,[(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512)])]),(0,i.createVNode)(W,{show:b.value,"editing-element":x.value,"onUpdate:editingElement":r[1]||=e=>x.value=e,"onUpdate:show":r[2]||=e=>b.value=e,onSave:k,onDelete:A},null,8,[`show`,`editing-element`])]))}});var ue=r.t(le,[[`__scopeId`,`data-v-52a50592`]]);const de={key:0,class:`class-editor`},fe={class:`section`},pe={class:`section-header`},me={style:{"font-size":`13px`}},he={class:`section`},ge={class:`section-header`},_e={style:{"font-size":`13px`}},ve=(0,i.defineComponent)({__name:`UMLClassEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingClass`),o=t;return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":s[6]||=e=>o(`update:show`,e)},{default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,de,[(0,i.createVNode)((0,i.unref)(a.NForm),{"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":s[0]||=e=>r.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[7]||=[(0,i.createTextVNode)(`属性`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,fe,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.attributes,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,pe,[(0,i.createElementVNode)(`span`,me,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新属性`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[8]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[9]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[10]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[1]||=e=>r.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[12]||=(0,i.createTextVNode)(` 添加属性 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(`方法`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,he,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.methods,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,ge,[(0,i.createElementVNode)(`span`,_e,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新方法`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[14]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[15]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[16]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[17]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[2]||=e=>r.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[18]||=(0,i.createTextVNode)(` 添加方法 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}}),(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`space-between`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>o(`delete`),type:`error`,ghost:``},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[s[19]||=(0,i.createTextVNode)(` 删除类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>o(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...s[20]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>o(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...s[21]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var ye=r.t(ve,[[`__scopeId`,`data-v-c37f7424`]]);const be={public:`+`,private:`-`,protected:`#`},xe={extends:{strokeDasharray:0,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},implement:{strokeDasharray:`8,4`,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},dependency:{strokeDasharray:`6,4`,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}},composition:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`#722ed1`,stroke:`#722ed1`}},aggregation:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},association:{strokeDasharray:0,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}}},Se=[`top`,`right`,`bottom`,`left`].reduce((e,t)=>{let n=t===`top`?{refX:.5,refY:0}:t===`right`?{refX:1,refY:.5}:t===`bottom`?{refX:.5,refY:1}:{refX:0,refY:.5};return e[`port-${t}`]={ref:`body`,...n,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),Ce={inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`rect`,selector:`name-rect`},{tagName:`rect`,selector:`attrs-rect`},{tagName:`rect`,selector:`methods-rect`},{tagName:`text`,selector:`name-text`},{tagName:`text`,selector:`attrs-text`},{tagName:`text`,selector:`methods-text`},{tagName:`circle`,selector:`port-top`},{tagName:`circle`,selector:`port-right`},{tagName:`circle`,selector:`port-bottom`},{tagName:`circle`,selector:`port-left`}],attrs:{rect:{width:160},body:{stroke:`#5f95ff`,strokeWidth:1,fill:`#fff`,magnet:!1,style:{cursor:`move`}},"name-rect":{fill:`#5f95ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"attrs-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"methods-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"name-text":{ref:`name-rect`,refY:.5,refX:.5,textAnchor:`middle`,fontWeight:`bold`,fill:`#fff`,fontSize:12,pointerEvents:`none`},"attrs-text":{ref:`attrs-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},"methods-text":{ref:`methods-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},...Se}},we={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},Te={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},Ee={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},De=[{id:`animal`,name:`<<Abstract>>
|
|
2
2
|
动物`,x:342,y:98,attributes:[{name:`名字`,type:`string`,visibility:`public`}],methods:[{name:`新陈代谢`,returnType:`void`,visibility:`public`},{name:`繁殖`,returnType:`void`,visibility:`public`}]},{id:`bird`,name:`鸟`,x:575,y:280,attributes:[{name:`羽毛`,type:`string`,visibility:`public`},{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`mammal`,name:`哺乳动物`,x:844,y:319,attributes:[{name:`翅膀`,type:`boolean`,visibility:`public`}],methods:[]},{id:`dog`,name:`狗`,x:656,y:456,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`enterprise`,name:`企鹅`,x:984,y:456,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`sparrow`,name:`麻雀`,x:531,y:608,attributes:[{name:`学飞`,type:`boolean`,visibility:`public`}],methods:[]},{id:`interface-flying`,name:`<<interface>>
|
|
3
3
|
飞翔`,x:762,y:608,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`qemu`,name:`气球`,x:981,y:608,attributes:[],methods:[]}],Oe=[{id:`edge-1`,shape:`extends`,source:`bird`,target:`animal`},{id:`edge-2`,shape:`extends`,source:`mammal`,target:`animal`},{id:`edge-3`,shape:`extends`,source:`dog`,target:`mammal`},{id:`edge-4`,shape:`extends`,source:`enterprise`,target:`mammal`},{id:`edge-5`,shape:`extends`,source:`sparrow`,target:`bird`},{id:`edge-6`,shape:`implement`,source:`sparrow`,target:`interface-flying`},{id:`edge-7`,shape:`implement`,source:`enterprise`,target:`interface-flying`},{id:`edge-8`,shape:`association`,source:`bird`,target:`mammal`,label:`1:2`}],Z=e=>be[e]||`+`,Q={name:`新类`,attributes:[{name:`attribute`,type:`string`,visibility:`private`}],methods:[{name:`method`,returnType:`void`,visibility:`public`}],position:{x:100,y:100}},ke={class:`uml-layout`},Ae={key:0,class:`toolbar`},je=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`uml-diagram`),{bindInteractions:y}=j(u,{defaultColor:`#722ed1`,portPositions:[`top`,`right`,`bottom`,`left`],onDataChange:()=>A()}),b=(0,i.ref)(!1),x=(0,i.ref)(),S=()=>{o.Graph.registerNode(`class`,{...Ce,propHooks(e){let{name:t,attributes:n,methods:r,...i}=e;if(!(t&&n&&r))return e;let a=0;return[{type:`name`,text:t},{type:`attrs`,text:n},{type:`methods`,text:r}].forEach(e=>{let t=Array.isArray(e.text)?e.text.length*12+16:32;o.ObjectExt.setByPath(i,`attrs/${e.type}-text/text`,Array.isArray(e.text)?e.text.join(`
|
|
4
|
-
`):e.text),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/height`,t),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/transform`,`translate(0,${a})`),a+=t}),i.size={width:160,height:a},i}},!0),Object.entries(xe).forEach(([e,t])=>{o.Graph.registerEdge(e,{inherit:`edge`,attrs:{line:{strokeWidth:2,stroke:`#722ed1`,...t}}},!0)})},C=e=>{if(!u.value)return;let t=[`extends`,`composition`,`implement`,`dependency`,`aggregation`,`association`],n=[];e.forEach(e=>{if(t.includes(e.shape)){let t=u.value.createEdge(e);e.data&&t.setData(e.data),n.push(t)}else{let{data:t,...r}=e,i=u.value.createNode(r);t&&i.setData(t),n.push(i)}}),u.value.resetCells(n),n.length&&h(200,10)},w=e=>({name:e.name,attributes:e.attributes.map(e=>`${Z(e.visibility)} ${e.name}: ${e.type}`),methods:e.methods.map(e=>`${Z(e.visibility)} ${e.name}(): ${e.returnType}`)}),T=()=>{if(!u.value)return;let e={id:`class_${Date.now()}`,...Q},t={id:e.id,shape:`class`,x:e.position.x,y:e.position.y,...w(e),data:e};u.value.addCell(u.value.createNode(t)),A()},E=e=>{x.value={...e,attributes:[...e.attributes||[]],methods:[...e.methods||[]]},b.value=!0},D=()=>{if(!u.value||!x.value)return;let e=u.value.getCellById(x.value.id);e&&(e.setData(x.value),e.prop(w(x.value))),b.value=!1,A()},O=()=>{!u.value||!x.value||(u.value.getCellById(x.value.id)?.remove(),b.value=!1,A())},k=()=>({classes:u.value?.getNodes().map(e=>({...e.getData(),position:e.getPosition()}))||[],relations:u.value?.getEdges().map(e=>{let t=e.getData();return{id:e.id,type:e.shape===`extends`?`inheritance`:e.shape===`implement`?`implementation`:e.shape,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,name:t?.name,multiplicity:t?.multiplicity}})||[]}),A=()=>c(`data-change`,k()),M=e=>{C([...e.classes.map(e=>({id:e.id,shape:`class`,x:e.position?.x??50,y:e.position?.y??50,...w(e),data:e})),...e.relations.map(e=>({id:e.id,shape:e.type===`inheritance`?`extends`:e.type===`implementation`?`implement`:e.type,source:e.source,target:e.target,data:{name:e.name,multiplicity:e.multiplicity}}))])};return(0,i.watch)(u,e=>{if(!(e instanceof o.Graph))return;S(),y(),e.on(`node:dblclick`,({node:e})=>{!s.readonly&&e.getData()&&E(e.getData())}),c(`ready`,e);let t=[...De.map(e=>({id:e.id,shape:`class`,x:e.x,y:e.y,...w(e),data:{id:e.id,name:e.name,attributes:e.attributes,methods:e.methods,position:{x:e.x,y:e.y}}})),...Oe];s.data?M(s.data):C(t)},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{u.value&&e&&M(e)},{deep:!0}),(0,i.onMounted)(()=>{f({interacting:!0,connecting:{...we,createEdge:()=>u.value.createEdge(Ee),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`},highlighting:Te})}),t({getGraph:()=>u.value,getData:k,addClass:T,centerContent:p,zoomToFit:m}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ke,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ae,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:T,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus-box`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,k)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`,style:(0,i.normalizeStyle)({width:s.width,height:s.height})},null,4),(0,i.createVNode)(ye,{show:b.value,"editing-class":x.value,"onUpdate:editingClass":r[1]||=e=>x.value=e,"onUpdate:show":r[2]||=e=>b.value=e,onSave:D,onDelete:O},null,8,[`show`,`editing-class`])]))}});var Me=r.t(je,[[`__scopeId`,`data-v-
|
|
4
|
+
`):e.text),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/height`,t),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/transform`,`translate(0,${a})`),a+=t}),i.size={width:160,height:a},i}},!0),Object.entries(xe).forEach(([e,t])=>{o.Graph.registerEdge(e,{inherit:`edge`,attrs:{line:{strokeWidth:2,stroke:`#722ed1`,...t}}},!0)})},C=e=>{if(!u.value)return;let t=[`extends`,`composition`,`implement`,`dependency`,`aggregation`,`association`],n=[];e.forEach(e=>{if(t.includes(e.shape)){let t=u.value.createEdge(e);e.data&&t.setData(e.data),n.push(t)}else{let{data:t,...r}=e,i=u.value.createNode(r);t&&i.setData(t),n.push(i)}}),u.value.resetCells(n),n.length&&h(200,10)},w=e=>({name:e.name,attributes:e.attributes.map(e=>`${Z(e.visibility)} ${e.name}: ${e.type}`),methods:e.methods.map(e=>`${Z(e.visibility)} ${e.name}(): ${e.returnType}`)}),T=()=>{if(!u.value)return;let e={id:`class_${Date.now()}`,...Q},t={id:e.id,shape:`class`,x:e.position.x,y:e.position.y,...w(e),data:e};u.value.addCell(u.value.createNode(t)),A()},E=e=>{x.value={...e,attributes:[...e.attributes||[]],methods:[...e.methods||[]]},b.value=!0},D=()=>{if(!u.value||!x.value)return;let e=u.value.getCellById(x.value.id);e&&(e.setData(x.value),e.prop(w(x.value))),b.value=!1,A()},O=()=>{!u.value||!x.value||(u.value.getCellById(x.value.id)?.remove(),b.value=!1,A())},k=()=>({classes:u.value?.getNodes().map(e=>({...e.getData(),position:e.getPosition()}))||[],relations:u.value?.getEdges().map(e=>{let t=e.getData();return{id:e.id,type:e.shape===`extends`?`inheritance`:e.shape===`implement`?`implementation`:e.shape,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,name:t?.name,multiplicity:t?.multiplicity}})||[]}),A=()=>c(`data-change`,k()),M=e=>{C([...e.classes.map(e=>({id:e.id,shape:`class`,x:e.position?.x??50,y:e.position?.y??50,...w(e),data:e})),...e.relations.map(e=>({id:e.id,shape:e.type===`inheritance`?`extends`:e.type===`implementation`?`implement`:e.type,source:e.source,target:e.target,data:{name:e.name,multiplicity:e.multiplicity}}))])};return(0,i.watch)(u,e=>{if(!(e instanceof o.Graph))return;S(),y(),e.on(`node:dblclick`,({node:e})=>{!s.readonly&&e.getData()&&E(e.getData())}),c(`ready`,e);let t=[...De.map(e=>({id:e.id,shape:`class`,x:e.x,y:e.y,...w(e),data:{id:e.id,name:e.name,attributes:e.attributes,methods:e.methods,position:{x:e.x,y:e.y}}})),...Oe];s.data?M(s.data):C(t)},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{u.value&&e&&M(e)},{deep:!0}),(0,i.onMounted)(()=>{f({interacting:!0,connecting:{...we,createEdge:()=>u.value.createEdge(Ee),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`},highlighting:Te})}),t({getGraph:()=>u.value,getData:k,addClass:T,centerContent:p,zoomToFit:m}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ke,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ae,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:T,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus-box`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,k)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`,style:(0,i.normalizeStyle)({width:s.width,height:s.height})},null,4),(0,i.createVNode)(ye,{show:b.value,"editing-class":x.value,"onUpdate:editingClass":r[1]||=e=>x.value=e,"onUpdate:show":r[2]||=e=>b.value=e,onSave:D,onDelete:O},null,8,[`show`,`editing-class`])]))}});var Me=r.t(je,[[`__scopeId`,`data-v-0ca526b5`]]);const Ne=e=>e===`task`?`activity`:e===`gateway`?`gateway`:`event`,Pe=e=>{let t=e.data?.type;return t===`start`||t===`end`||t===`task`||t===`gateway`||t===`event`?t:e.shape===`activity`?`task`:e.shape===`gateway`?`gateway`:`event`},Fe=e=>[...e.nodes.map(e=>{let t=Ne(e.type);return{id:e.id,shape:t,x:e.position.x,y:e.position.y,width:t===`activity`?120:t===`gateway`?40:50,height:t===`activity`?60:t===`gateway`?40:50,label:e.name,data:{...e.properties,type:e.type}}}),...e.flows.map(e=>({id:e.id,shape:`bpmn-edge`,source:e.source,target:e.target,label:e.name,x:0,y:0,data:e.condition?{condition:e.condition}:void 0}))],$=e=>({nodes:e.filter(e=>e.shape!==`bpmn-edge`).map(e=>{let t={...e.data};return delete t.type,{id:e.id,type:Pe(e),name:e.label??``,position:{x:e.x,y:e.y},properties:t}}),flows:e.filter(e=>e.shape===`bpmn-edge`).map(e=>({id:e.id,source:e.source??``,target:e.target??``,name:e.label,condition:typeof e.data?.condition==`string`?e.data.condition:void 0}))}),Ie={class:`c-antv-container`},Le=(0,i.defineComponent)({name:`C_AntV`,__name:`index`,props:{type:{},data:{},width:{default:`100%`},height:{default:`600px`},readonly:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:n}){let r=e,a=n,o=(0,i.ref)(),s={er:k,bpmn:ue,uml:Me},c=(0,i.computed)(()=>s[r.type]),l=(0,i.computed)(()=>{let e={width:r.width,height:r.height,readonly:r.readonly,showToolbar:r.showToolbar,theme:r.theme},t=r.type===`bpmn`&&r.data&&`nodes`in r.data?Fe(r.data):r.data;return{...e,data:t}}),u=e=>{a(`ready`,e)},d=e=>{a(`data-change`,r.type===`bpmn`&&Array.isArray(e)?$(e):e)};return t({getGraph:()=>o.value?.getGraph?.(),getData:()=>{let e=o.value?.getData?.();return r.type===`bpmn`&&Array.isArray(e)?$(e):e}}),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ie,[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(c.value),(0,i.mergeProps)(l.value,{onReady:u,onDataChange:d,ref_key:`layoutRef`,ref:o}),null,16))]))}});var Re=r.t(Le,[[`__scopeId`,`data-v-1a860057`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Re}});
|
package/dist/C_AntV2.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./config.js";import{t}from"./C_Icon2.js";import{t as n}from"./export-helper.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,mergeModels as f,mergeProps as p,nextTick as m,normalizeClass as h,normalizeStyle as g,onMounted as _,onUnmounted as v,openBlock as y,ref as b,renderList as x,resolveDynamicComponent as S,toDisplayString as C,unref as w,useModel as T,watch as E,withCtx as D}from"vue";import{NAlert as O,NButton as k,NCard as A,NCheckbox as j,NDivider as M,NDrawer as N,NDrawerContent as P,NDropdown as F,NForm as I,NFormItem as L,NGi as R,NGrid as z,NInput as B,NRadio as V,NRadioGroup as H,NSelect as ee,NSpace as U}from"naive-ui";import{Graph as W,ObjectExt as G}from"@antv/x6";import te from"html2canvas";function K(e){return{background:e?`#18181c`:`#f5f5f5`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`}}function ne(e=!1){let t=K(e);return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:2},selecting:{enabled:!0,rubberband:!0,movable:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!0,snapline:!0,keyboard:!0,clipboard:!0}}function re(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function q(e,t){let n=0,r,i,a=!1,o=b(null),s=b(!1),c=i=>{if(!a){s.value=!0;try{if(!e.value)return;o.value&&=(o.value.dispose(),null);let{width:s,height:c}=re(e.value);if(s===0||c===0){n++,n<10&&(clearTimeout(r),r=setTimeout(()=>{a||l(i)},100));return}n=0;let u=ne(t?.value??!1);o.value=new W({container:e.value,width:s,height:c,...u,...i})}catch{}finally{s.value=!1}}},l=async(e={})=>{clearTimeout(r),r=void 0,await m(),c(e)};function u(e){if(!o.value)return;let t=K(e);o.value.drawBackground({color:t.background}),o.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&E(t,e=>{u(e)});function d(){if(clearTimeout(r),clearTimeout(i),r=void 0,i=void 0,o.value){let e=o.value;o.value=null,e.dispose()}}function f(){o.value?.centerContent()}function p(){o.value?.zoomToFit({padding:20,maxScale:1})}function h(e=200,t=20){clearTimeout(i);let n=o.value;n&&(i=setTimeout(()=>{!a&&o.value===n&&n.zoomToFit({padding:t,maxScale:1})},e))}function g(e){o.value?.zoom(e)}function _(){if(o.value&&e.value){let{width:t,height:n}=re(e.value);o.value.resize(t,n)}}return v(()=>{a=!0,d()}),{graph:o,loading:s,initGraph:l,destroyGraph:d,centerContent:f,zoomToFit:p,scheduleZoomToFit:h,zoom:g,resizeGraph:_,updateTheme:u}}function J(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function Y(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);J(new Blob([n],{type:`application/json`}),t)}async function X(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;J(await ie(await te(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function Z(e,t=`diagram.svg`){let n=e.container.querySelector(`svg`);if(!n)throw Error(`SVG导出失败: 未找到图表 SVG 元素`);let r=n.cloneNode(!0);r.getAttribute(`xmlns`)||r.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),r.getAttribute(`xmlns:xlink`)||r.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`);let i=new XMLSerializer().serializeToString(r);J(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function ie(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const ae=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function Q(t,n=`diagram`){let r=e();return{exportOptions:ae,handleExport:async(e,i)=>{if(t.value)try{switch(e){case`png`:await X(t.value,`${n}.png`);break;case`svg`:Z(t.value,`${n}.svg`);break;case`json`:i&&Y(i(),`${n}.json`);break}}catch(t){r.error(`导出${e.toUpperCase()}失败,请重试`,t)}}}}const oe=[{label:`BIGINT`,value:`BIGINT`},{label:`INT`,value:`INT`},{label:`SMALLINT`,value:`SMALLINT`},{label:`TINYINT`,value:`TINYINT`},{label:`VARCHAR(50)`,value:`VARCHAR(50)`},{label:`VARCHAR(100)`,value:`VARCHAR(100)`},{label:`VARCHAR(255)`,value:`VARCHAR(255)`},{label:`CHAR(10)`,value:`CHAR(10)`},{label:`TEXT`,value:`TEXT`},{label:`LONGTEXT`,value:`LONGTEXT`},{label:`DATETIME`,value:`DATETIME`},{label:`TIMESTAMP`,value:`TIMESTAMP`},{label:`DATE`,value:`DATE`},{label:`TIME`,value:`TIME`},{label:`DECIMAL(10,2)`,value:`DECIMAL(10,2)`},{label:`FLOAT`,value:`FLOAT`},{label:`DOUBLE`,value:`DOUBLE`},{label:`BOOLEAN`,value:`BOOLEAN`},{label:`JSON`,value:`JSON`}],se={key:0,class:`table-editor`},ce={class:`fields-container`},le={class:`field-header`};var ue=n(d({__name:`ERTableEditor`,props:f({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:f([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:n}){let i=T(e,`editingTable`),d=n,f=(e,t)=>d(`handle-primary-key`,e,t),p=()=>d(`add-field`),m=e=>d(`remove-field`,e);return(n,d)=>(y(),a(w(N),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":d[4]||=e=>n.$emit(`update:show`,e)},{default:D(()=>[u(w(P),{title:`编辑表: ${i.value?.name||`新表`}`,closable:``},{footer:D(()=>[u(w(U),{justify:`end`},{default:D(()=>[u(w(k),{onClick:d[2]||=e=>n.$emit(`update:show`,!1)},{default:D(()=>[...d[11]||=[l(`取消`,-1)]]),_:1}),u(w(k),{onClick:d[3]||=e=>n.$emit(`save`),type:`primary`},{default:D(()=>[...d[12]||=[l(`保存`,-1)]]),_:1})]),_:1})]),default:D(()=>[i.value?(y(),s(`div`,se,[u(w(I),{model:i.value,"label-placement":`top`},{default:D(()=>[u(w(L),{label:`表名`},{default:D(()=>[u(w(B),{value:i.value.name,"onUpdate:value":d[0]||=e=>i.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),u(w(L),{label:`表注释`},{default:D(()=>[u(w(B),{value:i.value.comment,"onUpdate:value":d[1]||=e=>i.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),u(w(M),null,{default:D(()=>[...d[5]||=[l(`字段列表`,-1)]]),_:1}),c(`div`,ce,[(y(!0),s(r,null,x(i.value.fields,(e,t)=>(y(),a(w(A),{key:t,size:`small`,class:`field-card`},{header:D(()=>[c(`div`,le,[c(`span`,null,`#`+C(t+1)+` `+C(e.name||`新字段`),1),u(w(k),{onClick:e=>m(t),size:`tiny`,type:`error`,quaternary:``,disabled:i.value.fields.length<=1},{default:D(()=>[...d[6]||=[l(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:D(()=>[u(w(z),{cols:2,"x-gap":12},{default:D(()=>[u(w(R),null,{default:D(()=>[u(w(L),{label:`字段名`,size:`small`},{default:D(()=>[u(w(B),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),u(w(R),null,{default:D(()=>[u(w(L),{label:`类型`,size:`small`},{default:D(()=>[u(w(ee),{value:e.type,"onUpdate:value":t=>e.type=t,options:w(oe),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),u(w(U),{style:{"margin-top":`12px`}},{default:D(()=>[u(w(j),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>f(e,t)]},{default:D(()=>[...d[7]||=[l(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),u(w(j),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:D(()=>[...d[8]||=[l(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),u(w(j),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:D(()=>[...d[9]||=[l(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),u(w(L),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:D(()=>[u(w(B),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),u(w(k),{onClick:p,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:D(()=>[u(t,{name:`mdi:plus`,size:16})]),default:D(()=>[d[10]||=l(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):o(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-4e8f219f`]]);const de={class:`er-layout`},fe={key:0,class:`toolbar`},pe={key:0,style:{"margin-top":`8px`}};var me=n(d({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:n,emit:r}){let a=e,d=r,f=b(),{graph:p,initGraph:h,centerContent:g,zoomToFit:x,scheduleZoomToFit:S}=q(f,i(()=>a.theme===`dark`)),{exportOptions:T,handleExport:A}=Q(p,`er-diagram`),j=b(!1),M=b(),N=b(!1),P=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,I=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,group:`list`,attrs:{portNameLabel:{text:P(n,12),title:n},portTypeLabel:{text:P(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],L=e=>({id:e.id,shape:`er-rect`,x:e.position.x,y:e.position.y,width:200,height:24+(e.fields?.length||0)*24,data:e,attrs:{label:{text:P(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:I(e)}),R=()=>{p.value&&(W.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),W.registerNode(`er-rect`,{inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`text`,selector:`label`}],attrs:{rect:{strokeWidth:1,stroke:`#5F95FF`,fill:`#5F95FF`},label:{fontWeight:`bold`,fill:`#ffffff`,fontSize:12}},ports:{groups:{list:{markup:[{tagName:`rect`,selector:`portBody`},{tagName:`text`,selector:`portNameLabel`},{tagName:`text`,selector:`portTypeLabel`}],attrs:{portBody:{width:200,height:24,strokeWidth:1,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!0},portNameLabel:{ref:`portBody`,refX:6,refY:6,fontSize:9,textAnchor:`start`,textOverflow:`ellipsis`},portTypeLabel:{ref:`portBody`,refX:120,refY:6,fontSize:9,textAnchor:`start`,fill:`#666`}},position:`erPortPosition`}}}},!0))},z=()=>{N.value=!N.value,N.value||B()},B=()=>{p.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},V=e=>{if(!p.value)return;let t=p.value.createNode(L(e));return p.value.resetCells([t,...p.value.getCells()]),t},H=()=>{let e=p.value?.getNodes()||[];for(let t=0;t<10;t++)for(let n=0;n<3;n++){let r={x:n*250+50,y:t*250+50};if(!e.some(e=>{let t=e.getPosition();return Math.abs(t.x-r.x)<250*.8&&Math.abs(t.y-r.y)<250*.8}))return r}return{x:50,y:50}},ee=()=>{let e={id:`table_${Date.now()}`,name:`新表`,comment:``,fields:[{name:`id`,type:`BIGINT`,isPrimaryKey:!0,isRequired:!0,isForeignKey:!1,comment:`主键`},{name:`name`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!0,isForeignKey:!1,comment:`名称`}],position:H()};V(e),G(e),Y()},G=e=>{M.value={...e,fields:e.fields?.map(e=>({...e}))||[]},j.value=!0},te=()=>{if(!p.value||!M.value)return;let e=p.value.getCellById(M.value.id);e&&(e.setData(M.value),e.prop({size:{width:200,height:24+M.value.fields.length*24},attrs:{label:{text:P(M.value.name,20),title:M.value.name}},ports:I(M.value)})),j.value=!1,Y()},K=(e,t)=>{t&&(e.isRequired=!0,M.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},ne=()=>{M.value?.fields.push({name:`field_${(M.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},re=e=>{M.value&&M.value.fields.length>1&&M.value.fields.splice(e,1)},J=()=>{if(!p.value)return{tables:[],relations:[]};let e=p.value.getNodes().map(e=>({...e.getData(),position:e.getPosition()})),t=[];return p.value.getEdges().forEach(e=>{let n=e.getSourceNode(),r=e.getTargetNode(),i=e.getSourcePortId(),a=e.getTargetPortId();n&&r&&i&&a&&t.push({id:e.id,type:`foreign-key`,sourceTable:n.id,sourceField:i.split(`_`).slice(1).join(`_`),targetTable:r.id,targetField:a.split(`_`).slice(1).join(`_`),name:`${n.getData()?.name||n.id} -> ${r.getData()?.name||r.id}`})}),{tables:e,relations:t}},Y=()=>d(`data-change`,J()),X=null;E(p,e=>{e instanceof W&&(R(),e.on(`node:dblclick`,({node:e})=>{a.readonly||G(e.getData())}),e.on(`edge:connected`,Y),e.on(`edge:removed`,Y),e.on(`edge:click`,({edge:e})=>{N.value?(e.remove(),Y()):(B(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),X=e)}),e.on(`edge:dblclick`,({edge:e})=>{e.remove(),Y()}),e.on(`blank:click`,()=>{X=null,N.value||B()}),d(`ready`,e),m(()=>{if(a.data?.tables){let t=a.data.tables.map(t=>e.createNode(L(t)));a.data.relations?.length&&a.data.relations.forEach(n=>{t.push(e.createEdge({source:{cell:n.sourceTable,port:`${n.sourceTable}_${n.sourceField}`},target:{cell:n.targetTable,port:`${n.targetTable}_${n.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),e.resetCells(t),S(300,20)}}))},{immediate:!0}),E(()=>a.data,e=>{if(p.value&&e?.tables){let t=e.tables.map(e=>p.value.createNode(L(e)));e.relations?.length&&e.relations.forEach(e=>{t.push(p.value.createEdge({source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),p.value.resetCells(t)}},{deep:!0});let Z=e=>{let t=e.target;t?.tagName===`INPUT`||t?.tagName===`TEXTAREA`||t?.isContentEditable||(e.key===`Delete`||e.key===`Backspace`)&&X&&(X.remove(),Y(),X=null)};return _(()=>{document.addEventListener(`keydown`,Z),h()}),v(()=>document.removeEventListener(`keydown`,Z)),n({getGraph:()=>p.value??void 0,getData:J}),(n,r)=>(y(),s(`div`,de,[o(` 工具栏 `),e.showToolbar?(y(),s(`div`,fe,[u(w(U),null,{default:D(()=>[u(w(k),{onClick:ee,type:`primary`,size:`small`},{icon:D(()=>[u(t,{name:`mdi:table-plus`,size:16})]),default:D(()=>[r[3]||=l(` 添加表 `,-1)]),_:1}),u(w(k),{onClick:w(g),size:`small`},{icon:D(()=>[u(t,{name:`mdi:image-filter-center-focus`,size:16})]),default:D(()=>[r[4]||=l(` 居中 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:w(x),size:`small`},{icon:D(()=>[u(t,{name:`mdi:fit-to-screen`,size:16})]),default:D(()=>[r[5]||=l(` 适应 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:z,type:N.value?`error`:`default`,size:`small`},{icon:D(()=>[u(t,{name:`mdi:delete`,size:16})]),default:D(()=>[l(` `+C(N.value?`退出删除`:`删除连线`),1)]),_:1},8,[`type`]),u(w(F),{options:w(T),onSelect:r[0]||=e=>w(A)(e,J)},{default:D(()=>[u(w(k),{size:`small`},{icon:D(()=>[u(t,{name:`mdi:export`,size:16})]),default:D(()=>[r[6]||=l(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),N.value?(y(),s(`div`,pe,[u(w(O),{type:`info`,size:`small`,"show-icon":!1},{default:D(()=>[...r[7]||=[l(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):o(`v-if`,!0)])):o(`v-if`,!0),o(` 图表容器 `),c(`div`,{ref_key:`containerRef`,ref:f,class:`graph-container`},null,512),o(` 表编辑器 `),u(ue,{show:j.value,"editing-table":M.value,"onUpdate:editingTable":r[1]||=e=>M.value=e,"onUpdate:show":r[2]||=e=>j.value=e,onSave:te,onAddField:ne,onRemoveField:re,onHandlePrimaryKey:K},null,8,[`show`,`editing-table`])]))}}),[[`__scopeId`,`data-v-6cb58ac5`]]);const he={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{}};function ge(e,t={}){let n={...he,...t},r=()=>{e.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,n.defaultColor),e.attr(`line/strokeWidth`,n.strokeWidth)})},i=e=>{r(),e.attr(`line/stroke`,n.highlightColor),e.attr(`line/strokeWidth`,n.highlightStrokeWidth)},a=(e,t)=>{n.portPositions.forEach(n=>e.attr(`port-${n}/style/opacity`,t))};return{resetEdgeStyles:r,highlightEdge:i,togglePorts:a,bindInteractions:()=>{let t=e.value;t&&(t.on(`edge:click`,({edge:e})=>i(e)),t.on(`edge:dblclick`,({edge:e})=>{e.remove(),n.onDataChange()}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,n.onDataChange),n.portPositions.length>0&&(t.on(`node:mouseenter`,({node:e})=>a(e,1)),t.on(`node:mouseleave`,({node:e})=>a(e,0))))}}}const _e={"start-event":{name:`开始`,title:`开始事件`,iconClass:`circle start-event`},activity:{name:`任务`,title:`任务活动`,iconClass:`rect activity`},gateway:{name:`网关`,title:`排他网关`,iconClass:`diamond gateway`},"end-event":{name:`结束`,title:`结束事件`,iconClass:`circle end-event`}},ve={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},$=[`top`,`right`,`bottom`,`left`],ye=(e,t=`rect`)=>e.reduce((e,n)=>{let r=t===`circle`,i=n===`top`?r?{refCx:.5,refCy:0}:{refX:.5,refY:0}:n===`right`?r?{refCx:1,refCy:.5}:{refX:1,refY:.5}:n===`bottom`?r?{refCx:.5,refCy:1}:{refX:.5,refY:1}:r?{refCx:0,refCy:.5}:{refX:0,refY:.5};return e[`port-${n}`]={ref:`body`,...i,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),be={event:{inherit:`circle`,attrs:{body:{strokeWidth:2,stroke:`#5F95FF`,fill:`#FFF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},activity:{inherit:`rect`,attrs:{body:{rx:6,ry:6,stroke:`#5F95FF`,fill:`#EFF4FF`,strokeWidth:1,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},gateway:{inherit:`polygon`,attrs:{body:{refPoints:`0,10 10,0 20,10 10,20`,strokeWidth:2,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:20,fill:`#5F95FF`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}}},xe={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function Se(e=!1){let t={background:e?`#18181c`:`#ffffff`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`};return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:3},connecting:{router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},highlighting:{magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},selecting:{enabled:!0,rubberband:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!1,snapline:!0,keyboard:!0,clipboard:!0}}Se();const Ce={"start-event":{shape:`event`,width:50,height:50,label:`开始事件`,data:{type:`start`}},"end-event":{shape:`event`,width:50,height:50,label:`结束事件`,data:{type:`end`}},activity:{shape:`activity`,width:120,height:60,label:`新活动`,data:{description:``,assignee:``}},gateway:{shape:`gateway`,width:40,height:40,label:`+`,data:{type:`exclusive`}}},we=[{id:`start-1`,shape:`event`,x:100,y:200,width:50,height:50,label:`流程开始`,data:{type:`start`}},{id:`activity-1`,shape:`activity`,x:200,y:180,width:120,height:60,label:`用户申请`,data:{description:`用户提交申请表单`,assignee:`申请人`}},{id:`activity-2`,shape:`activity`,x:380,y:180,width:120,height:60,label:`初审`,data:{description:`部门进行初步审核`,assignee:`部门主管`}},{id:`gateway-1`,shape:`gateway`,x:550,y:200,width:40,height:40,label:`+`,data:{type:`exclusive`}},{id:`activity-3`,shape:`activity`,x:650,y:120,width:120,height:60,label:`终审`,data:{description:`高级主管最终审核`,assignee:`总监`}},{id:`activity-4`,shape:`activity`,x:650,y:260,width:120,height:60,label:`驳回处理`,data:{description:`处理驳回流程`,assignee:`专员`}},{id:`end-1`,shape:`event`,x:820,y:140,width:50,height:50,label:`审批通过`,data:{type:`end`}},{id:`end-2`,shape:`event`,x:820,y:280,width:50,height:50,label:`审批驳回`,data:{type:`end`}},{id:`edge-1`,shape:`bpmn-edge`,source:`start-1`,target:`activity-1`,x:0,y:0},{id:`edge-2`,shape:`bpmn-edge`,source:`activity-1`,target:`activity-2`,x:0,y:0},{id:`edge-3`,shape:`bpmn-edge`,source:`activity-2`,target:`gateway-1`,x:0,y:0},{id:`edge-4`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-3`,label:`通过`,x:0,y:0},{id:`edge-5`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-4`,label:`驳回`,x:0,y:0},{id:`edge-6`,shape:`bpmn-edge`,source:`activity-3`,target:`end-1`,x:0,y:0},{id:`edge-7`,shape:`bpmn-edge`,source:`activity-4`,target:`end-2`,x:0,y:0}],Te={key:0,class:`property-panel`},Ee={class:`property-item`},De={class:`property-item`},Oe={key:0,class:`property-item`},ke={key:1,class:`property-item`},Ae={class:`form-actions`};var je=n(d({__name:`BPMNPropertyEditor`,props:f({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:f([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=T(e,`editingElement`),r=t,d=i(()=>ve[n.value?.shape]||n.value?.shape||``);return(t,i)=>(y(),a(w(N),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":i[6]||=e=>r(`update:show`,e)},{default:D(()=>[n.value?(y(),s(`div`,Te,[c(`div`,Ee,[i[7]||=c(`div`,{class:`property-label`},`名称`,-1),u(w(B),{value:n.value.label,"onUpdate:value":i[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),c(`div`,De,[i[8]||=c(`div`,{class:`property-label`},`类型`,-1),u(w(B),{value:d.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?(y(),s(`div`,Oe,[i[9]||=c(`div`,{class:`property-label`},`描述`,-1),u(w(B),{value:n.value.description,"onUpdate:value":i[1]||=e=>n.value.description=e,type:`textarea`,rows:3,placeholder:`请输入活动描述`,size:`small`},null,8,[`value`])])):o(`v-if`,!0),n.value.shape===`activity`?(y(),s(`div`,ke,[i[10]||=c(`div`,{class:`property-label`},`执行人`,-1),u(w(B),{value:n.value.assignee,"onUpdate:value":i[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):o(`v-if`,!0),c(`div`,Ae,[u(w(U),null,{default:D(()=>[u(w(k),{onClick:i[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:D(()=>[...i[11]||=[l(` 保存 `,-1)]]),_:1}),u(w(k),{onClick:i[4]||=e=>r(`update:show`,!1),size:`small`},{default:D(()=>[...i[12]||=[l(` 取消 `,-1)]]),_:1}),u(w(k),{onClick:i[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:D(()=>[...i[13]||=[l(` 删除 `,-1)]]),_:1})]),_:1})])])):o(`v-if`,!0)]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-fc8f213e`]]);const Me={class:`bpmn-layout`},Ne={key:0,class:`top-toolbar`},Pe={class:`toolbar-section`},Fe={class:`toolbar-group`},Ie={class:`toolbar-group`},Le={class:`toolbar-group`},Re={class:`main-content`},ze={key:0,class:`left-panel`},Be={class:`element-grid`},Ve=[`onClick`,`title`],He={class:`graph-wrapper`};var Ue=n(d({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:n,emit:a}){let d=e,f=a,p=b(),{graph:m,initGraph:g,centerContent:v,zoomToFit:S,scheduleZoomToFit:T}=q(p,i(()=>d.theme===`dark`)),{exportOptions:O,handleExport:A}=Q(m,`bpmn-diagram`),{bindInteractions:j}=ge(m,{portPositions:$,onDataChange:()=>G()}),M=b(!1),N=b(),P=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),I=e=>{if(!e)return[];if(Array.isArray(e))return e;let t=[];return Object.values(e).forEach(e=>{Array.isArray(e)&&t.push(...e)}),t},L=()=>{let e=$.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{W.registerNode(t,{...be[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...be[t].attrs,...ye($,n[t])}},!0)}),W.registerEdge(`bpmn-edge`,xe,!0)},R=e=>{if(!m.value)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?m.value.createEdge(n):m.value.createNode(n);return t&&r.setData(t),r});m.value.resetCells(t),t.length&&T(200,50)},z=e=>{if(!m.value)return;let t=Ce[e];if(!t)return;let n=m.value.options.width/2,r=m.value.options.height/2,{data:i,...a}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},o=m.value.createNode(a);i&&o.setData(i),m.value.addCell(o),G()},B=()=>{m.value?.clearCells(),G()},V=e=>{let t=e.getData()||{};N.value={id:e.id,shape:e.shape,label:P(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},M.value=!0},H=()=>{if(!m.value||!N.value)return;let e=m.value.getCellById(N.value.id);e&&(e.setData({description:N.value.description,assignee:N.value.assignee}),e.attr(`text/text`,N.value.label||``),e.attr(`label/text`,N.value.label||``)),M.value=!1,G()},ee=()=>{!m.value||!N.value||(m.value.getCellById(N.value.id)?.remove(),M.value=!1,G())},U=()=>m.value?[...m.value.getNodes().map(e=>({id:e.id,shape:e.shape,x:e.getPosition().x,y:e.getPosition().y,width:e.getSize().width,height:e.getSize().height,label:P(e),data:e.getData()||{}})),...m.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:P(e),data:e.getData()||{},x:0,y:0}))]:[],G=()=>f(`data-change`,U());return E(m,e=>{e instanceof W&&(d.readonly||(j(),e.on(`node:dblclick`,({node:e})=>V(e)),e.on(`node:moved`,G)),f(`ready`,e),R(d.data===void 0?we:I(d.data)))},{immediate:!0}),E(()=>d.data,e=>{m.value&&R(e===void 0?we:I(e))},{deep:!0}),_(async()=>{L();let e=Se();await g({...e,connecting:{...e.connecting,createEdge:()=>m.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),n({getGraph:()=>m.value,getData:U,loadData:R}),(n,i)=>(y(),s(`div`,Me,[e.showToolbar?(y(),s(`div`,Ne,[c(`div`,Pe,[c(`div`,Fe,[u(w(k),{onClick:B,size:`small`},{icon:D(()=>[u(t,{name:`mdi:delete-outline`,size:16})]),default:D(()=>[i[3]||=l(` 清空 `,-1)]),_:1})]),c(`div`,Ie,[u(w(k),{onClick:w(v),size:`small`},{icon:D(()=>[u(t,{name:`mdi:image-filter-center-focus`,size:16})]),default:D(()=>[i[4]||=l(` 居中 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:w(S),size:`small`},{icon:D(()=>[u(t,{name:`mdi:fit-to-screen`,size:16})]),default:D(()=>[i[5]||=l(` 适应 `,-1)]),_:1},8,[`onClick`])]),c(`div`,Le,[u(w(F),{options:w(O),onSelect:i[0]||=e=>w(A)(e,U)},{default:D(()=>[u(w(k),{size:`small`},{icon:D(()=>[u(t,{name:`mdi:export`,size:16})]),default:D(()=>[i[6]||=l(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):o(`v-if`,!0),c(`div`,Re,[e.showToolbar?(y(),s(`div`,ze,[i[7]||=c(`div`,{class:`panel-title`},`组件`,-1),c(`div`,Be,[(y(!0),s(r,null,x(w(_e),(e,t)=>(y(),s(`div`,{key:t,class:`element-item`,onClick:e=>z(t),title:e.title},[c(`div`,{class:h([`element-icon`,e.iconClass])},null,2),c(`span`,null,C(e.name),1)],8,Ve))),128))])])):o(`v-if`,!0),c(`div`,He,[c(`div`,{ref_key:`containerRef`,ref:p,class:`graph-container`},null,512)])]),u(je,{show:M.value,"editing-element":N.value,"onUpdate:editingElement":i[1]||=e=>N.value=e,"onUpdate:show":i[2]||=e=>M.value=e,onSave:H,onDelete:ee},null,8,[`show`,`editing-element`])]))}}),[[`__scopeId`,`data-v-f40393d6`]]);const We={key:0,class:`class-editor`},Ge={class:`section`},Ke={class:`section-header`},qe={style:{"font-size":`13px`}},Je={class:`section`},Ye={class:`section-header`},Xe={style:{"font-size":`13px`}};var Ze=n(d({__name:`UMLClassEditor`,props:f({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:f([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:n}){let i=T(e,`editingClass`),d=n;return(n,f)=>(y(),a(w(N),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":f[6]||=e=>d(`update:show`,e)},{default:D(()=>[i.value?(y(),s(`div`,We,[u(w(I),{"label-placement":`top`},{default:D(()=>[u(w(L),{label:`类名`},{default:D(()=>[u(w(B),{value:i.value.name,"onUpdate:value":f[0]||=e=>i.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),u(w(M),{style:{margin:`20px 0`}},{default:D(()=>[...f[7]||=[l(`属性`,-1)]]),_:1}),c(`div`,Ge,[(y(!0),s(r,null,x(i.value.attributes,(e,t)=>(y(),s(`div`,{key:t,class:`item`},[u(w(A),{size:`small`,style:{"margin-bottom":`12px`}},{header:D(()=>[c(`div`,Ke,[c(`span`,qe,`#`+C(t+1)+` `+C(e.name||`新属性`),1),u(w(k),{onClick:e=>i.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:D(()=>[...f[8]||=[l(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:D(()=>[u(w(U),{vertical:``,size:`small`},{default:D(()=>[u(w(U),null,{default:D(()=>[u(w(L),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),u(w(L),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),u(w(L),{label:`可见性`,style:{margin:`0`}},{default:D(()=>[u(w(H),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:D(()=>[u(w(V),{value:`public`},{default:D(()=>[...f[9]||=[l(`+ public`,-1)]]),_:1}),u(w(V),{value:`private`},{default:D(()=>[...f[10]||=[l(`- private`,-1)]]),_:1}),u(w(V),{value:`protected`},{default:D(()=>[...f[11]||=[l(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),u(w(k),{onClick:f[1]||=e=>i.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:D(()=>[u(t,{name:`mdi:plus`,size:16})]),default:D(()=>[f[12]||=l(` 添加属性 `,-1)]),_:1})]),u(w(M),{style:{margin:`20px 0`}},{default:D(()=>[...f[13]||=[l(`方法`,-1)]]),_:1}),c(`div`,Je,[(y(!0),s(r,null,x(i.value.methods,(e,t)=>(y(),s(`div`,{key:t,class:`item`},[u(w(A),{size:`small`,style:{"margin-bottom":`12px`}},{header:D(()=>[c(`div`,Ye,[c(`span`,Xe,`#`+C(t+1)+` `+C(e.name||`新方法`),1),u(w(k),{onClick:e=>i.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:D(()=>[...f[14]||=[l(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:D(()=>[u(w(U),{vertical:``,size:`small`},{default:D(()=>[u(w(U),null,{default:D(()=>[u(w(L),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),u(w(L),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),u(w(L),{label:`可见性`,style:{margin:`0`}},{default:D(()=>[u(w(H),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:D(()=>[u(w(V),{value:`public`},{default:D(()=>[...f[15]||=[l(`+ public`,-1)]]),_:1}),u(w(V),{value:`private`},{default:D(()=>[...f[16]||=[l(`- private`,-1)]]),_:1}),u(w(V),{value:`protected`},{default:D(()=>[...f[17]||=[l(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),u(w(k),{onClick:f[2]||=e=>i.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:D(()=>[u(t,{name:`mdi:plus`,size:16})]),default:D(()=>[f[18]||=l(` 添加方法 `,-1)]),_:1})]),u(w(M),{style:{margin:`20px 0`}}),u(w(U),{justify:`space-between`},{default:D(()=>[u(w(k),{onClick:f[3]||=e=>d(`delete`),type:`error`,ghost:``},{icon:D(()=>[u(t,{name:`mdi:delete`,size:16})]),default:D(()=>[f[19]||=l(` 删除类 `,-1)]),_:1}),u(w(U),null,{default:D(()=>[u(w(k),{onClick:f[4]||=e=>d(`update:show`,!1)},{default:D(()=>[...f[20]||=[l(`取消`,-1)]]),_:1}),u(w(k),{onClick:f[5]||=e=>d(`save`),type:`primary`},{default:D(()=>[...f[21]||=[l(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):o(`v-if`,!0)]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-c37f7424`]]);const Qe={public:`+`,private:`-`,protected:`#`},$e={extends:{strokeDasharray:0,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},implement:{strokeDasharray:`8,4`,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},dependency:{strokeDasharray:`6,4`,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}},composition:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`#722ed1`,stroke:`#722ed1`}},aggregation:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},association:{strokeDasharray:0,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}}},et=[`top`,`right`,`bottom`,`left`].reduce((e,t)=>{let n=t===`top`?{refX:.5,refY:0}:t===`right`?{refX:1,refY:.5}:t===`bottom`?{refX:.5,refY:1}:{refX:0,refY:.5};return e[`port-${t}`]={ref:`body`,...n,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),tt={inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`rect`,selector:`name-rect`},{tagName:`rect`,selector:`attrs-rect`},{tagName:`rect`,selector:`methods-rect`},{tagName:`text`,selector:`name-text`},{tagName:`text`,selector:`attrs-text`},{tagName:`text`,selector:`methods-text`},{tagName:`circle`,selector:`port-top`},{tagName:`circle`,selector:`port-right`},{tagName:`circle`,selector:`port-bottom`},{tagName:`circle`,selector:`port-left`}],attrs:{rect:{width:160},body:{stroke:`#5f95ff`,strokeWidth:1,fill:`#fff`,magnet:!1,style:{cursor:`move`}},"name-rect":{fill:`#5f95ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"attrs-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"methods-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"name-text":{ref:`name-rect`,refY:.5,refX:.5,textAnchor:`middle`,fontWeight:`bold`,fill:`#fff`,fontSize:12,pointerEvents:`none`},"attrs-text":{ref:`attrs-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},"methods-text":{ref:`methods-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},...et}},nt={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},rt={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},it={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},at=[{id:`animal`,name:`<<Abstract>>
|
|
1
|
+
import{t as e}from"./feedback.js";import{t}from"./C_Icon2.js";import{t as n}from"./export-helper.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,mergeModels as f,mergeProps as p,nextTick as m,normalizeClass as h,normalizeStyle as g,onMounted as _,onUnmounted as v,openBlock as y,ref as b,renderList as x,resolveDynamicComponent as S,toDisplayString as C,unref as w,useModel as T,watch as E,withCtx as D}from"vue";import{NAlert as O,NButton as k,NCard as A,NCheckbox as j,NDivider as M,NDrawer as N,NDrawerContent as P,NDropdown as F,NForm as I,NFormItem as L,NGi as R,NGrid as z,NInput as B,NRadio as V,NRadioGroup as H,NSelect as ee,NSpace as U}from"naive-ui";import{Graph as W,ObjectExt as G}from"@antv/x6";import te from"html2canvas";function K(e){return{background:e?`#18181c`:`#f5f5f5`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`}}function ne(e=!1){let t=K(e);return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:2},selecting:{enabled:!0,rubberband:!0,movable:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!0,snapline:!0,keyboard:!0,clipboard:!0}}function re(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function q(e,t){let n=0,r,i,a=!1,o=b(null),s=b(!1),c=i=>{if(!a){s.value=!0;try{if(!e.value)return;o.value&&=(o.value.dispose(),null);let{width:s,height:c}=re(e.value);if(s===0||c===0){n++,n<10&&(clearTimeout(r),r=setTimeout(()=>{a||l(i)},100));return}n=0;let u=ne(t?.value??!1);o.value=new W({container:e.value,width:s,height:c,...u,...i})}catch{}finally{s.value=!1}}},l=async(e={})=>{clearTimeout(r),r=void 0,await m(),c(e)};function u(e){if(!o.value)return;let t=K(e);o.value.drawBackground({color:t.background}),o.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&E(t,e=>{u(e)});function d(){if(clearTimeout(r),clearTimeout(i),r=void 0,i=void 0,o.value){let e=o.value;o.value=null,e.dispose()}}function f(){o.value?.centerContent()}function p(){o.value?.zoomToFit({padding:20,maxScale:1})}function h(e=200,t=20){clearTimeout(i);let n=o.value;n&&(i=setTimeout(()=>{!a&&o.value===n&&n.zoomToFit({padding:t,maxScale:1})},e))}function g(e){o.value?.zoom(e)}function _(){if(o.value&&e.value){let{width:t,height:n}=re(e.value);o.value.resize(t,n)}}return v(()=>{a=!0,d()}),{graph:o,loading:s,initGraph:l,destroyGraph:d,centerContent:f,zoomToFit:p,scheduleZoomToFit:h,zoom:g,resizeGraph:_,updateTheme:u}}function J(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function Y(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);J(new Blob([n],{type:`application/json`}),t)}async function X(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;J(await ie(await te(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function Z(e,t=`diagram.svg`){let n=e.container.querySelector(`svg`);if(!n)throw Error(`SVG导出失败: 未找到图表 SVG 元素`);let r=n.cloneNode(!0);r.getAttribute(`xmlns`)||r.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),r.getAttribute(`xmlns:xlink`)||r.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`);let i=new XMLSerializer().serializeToString(r);J(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function ie(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const ae=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function Q(t,n=`diagram`){let r=e();return{exportOptions:ae,handleExport:async(e,i)=>{if(t.value)try{switch(e){case`png`:await X(t.value,`${n}.png`);break;case`svg`:Z(t.value,`${n}.svg`);break;case`json`:i&&Y(i(),`${n}.json`);break}}catch(t){r.error(`导出${e.toUpperCase()}失败,请重试`,t)}}}}const oe=[{label:`BIGINT`,value:`BIGINT`},{label:`INT`,value:`INT`},{label:`SMALLINT`,value:`SMALLINT`},{label:`TINYINT`,value:`TINYINT`},{label:`VARCHAR(50)`,value:`VARCHAR(50)`},{label:`VARCHAR(100)`,value:`VARCHAR(100)`},{label:`VARCHAR(255)`,value:`VARCHAR(255)`},{label:`CHAR(10)`,value:`CHAR(10)`},{label:`TEXT`,value:`TEXT`},{label:`LONGTEXT`,value:`LONGTEXT`},{label:`DATETIME`,value:`DATETIME`},{label:`TIMESTAMP`,value:`TIMESTAMP`},{label:`DATE`,value:`DATE`},{label:`TIME`,value:`TIME`},{label:`DECIMAL(10,2)`,value:`DECIMAL(10,2)`},{label:`FLOAT`,value:`FLOAT`},{label:`DOUBLE`,value:`DOUBLE`},{label:`BOOLEAN`,value:`BOOLEAN`},{label:`JSON`,value:`JSON`}],se={key:0,class:`table-editor`},ce={class:`fields-container`},le={class:`field-header`};var ue=n(d({__name:`ERTableEditor`,props:f({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:f([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:n}){let i=T(e,`editingTable`),d=n,f=(e,t)=>d(`handle-primary-key`,e,t),p=()=>d(`add-field`),m=e=>d(`remove-field`,e);return(n,d)=>(y(),a(w(N),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":d[4]||=e=>n.$emit(`update:show`,e)},{default:D(()=>[u(w(P),{title:`编辑表: ${i.value?.name||`新表`}`,closable:``},{footer:D(()=>[u(w(U),{justify:`end`},{default:D(()=>[u(w(k),{onClick:d[2]||=e=>n.$emit(`update:show`,!1)},{default:D(()=>[...d[11]||=[l(`取消`,-1)]]),_:1}),u(w(k),{onClick:d[3]||=e=>n.$emit(`save`),type:`primary`},{default:D(()=>[...d[12]||=[l(`保存`,-1)]]),_:1})]),_:1})]),default:D(()=>[i.value?(y(),s(`div`,se,[u(w(I),{model:i.value,"label-placement":`top`},{default:D(()=>[u(w(L),{label:`表名`},{default:D(()=>[u(w(B),{value:i.value.name,"onUpdate:value":d[0]||=e=>i.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),u(w(L),{label:`表注释`},{default:D(()=>[u(w(B),{value:i.value.comment,"onUpdate:value":d[1]||=e=>i.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),u(w(M),null,{default:D(()=>[...d[5]||=[l(`字段列表`,-1)]]),_:1}),c(`div`,ce,[(y(!0),s(r,null,x(i.value.fields,(e,t)=>(y(),a(w(A),{key:t,size:`small`,class:`field-card`},{header:D(()=>[c(`div`,le,[c(`span`,null,`#`+C(t+1)+` `+C(e.name||`新字段`),1),u(w(k),{onClick:e=>m(t),size:`tiny`,type:`error`,quaternary:``,disabled:i.value.fields.length<=1},{default:D(()=>[...d[6]||=[l(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:D(()=>[u(w(z),{cols:2,"x-gap":12},{default:D(()=>[u(w(R),null,{default:D(()=>[u(w(L),{label:`字段名`,size:`small`},{default:D(()=>[u(w(B),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),u(w(R),null,{default:D(()=>[u(w(L),{label:`类型`,size:`small`},{default:D(()=>[u(w(ee),{value:e.type,"onUpdate:value":t=>e.type=t,options:w(oe),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),u(w(U),{style:{"margin-top":`12px`}},{default:D(()=>[u(w(j),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>f(e,t)]},{default:D(()=>[...d[7]||=[l(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),u(w(j),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:D(()=>[...d[8]||=[l(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),u(w(j),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:D(()=>[...d[9]||=[l(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),u(w(L),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:D(()=>[u(w(B),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),u(w(k),{onClick:p,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:D(()=>[u(t,{name:`mdi:plus`,size:16})]),default:D(()=>[d[10]||=l(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):o(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-4e8f219f`]]);const de={class:`er-layout`},fe={key:0,class:`toolbar`},pe={key:0,style:{"margin-top":`8px`}};var me=n(d({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:n,emit:r}){let a=e,d=r,f=b(),{graph:p,initGraph:h,centerContent:g,zoomToFit:x,scheduleZoomToFit:S}=q(f,i(()=>a.theme===`dark`)),{exportOptions:T,handleExport:A}=Q(p,`er-diagram`),j=b(!1),M=b(),N=b(!1),P=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,I=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,group:`list`,attrs:{portNameLabel:{text:P(n,12),title:n},portTypeLabel:{text:P(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],L=e=>({id:e.id,shape:`er-rect`,x:e.position.x,y:e.position.y,width:200,height:24+(e.fields?.length||0)*24,data:e,attrs:{label:{text:P(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:I(e)}),R=()=>{p.value&&(W.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),W.registerNode(`er-rect`,{inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`text`,selector:`label`}],attrs:{rect:{strokeWidth:1,stroke:`#5F95FF`,fill:`#5F95FF`},label:{fontWeight:`bold`,fill:`#ffffff`,fontSize:12}},ports:{groups:{list:{markup:[{tagName:`rect`,selector:`portBody`},{tagName:`text`,selector:`portNameLabel`},{tagName:`text`,selector:`portTypeLabel`}],attrs:{portBody:{width:200,height:24,strokeWidth:1,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!0},portNameLabel:{ref:`portBody`,refX:6,refY:6,fontSize:9,textAnchor:`start`,textOverflow:`ellipsis`},portTypeLabel:{ref:`portBody`,refX:120,refY:6,fontSize:9,textAnchor:`start`,fill:`#666`}},position:`erPortPosition`}}}},!0))},z=()=>{N.value=!N.value,N.value||B()},B=()=>{p.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},V=e=>{if(!p.value)return;let t=p.value.createNode(L(e));return p.value.resetCells([t,...p.value.getCells()]),t},H=()=>{let e=p.value?.getNodes()||[];for(let t=0;t<10;t++)for(let n=0;n<3;n++){let r={x:n*250+50,y:t*250+50};if(!e.some(e=>{let t=e.getPosition();return Math.abs(t.x-r.x)<250*.8&&Math.abs(t.y-r.y)<250*.8}))return r}return{x:50,y:50}},ee=()=>{let e={id:`table_${Date.now()}`,name:`新表`,comment:``,fields:[{name:`id`,type:`BIGINT`,isPrimaryKey:!0,isRequired:!0,isForeignKey:!1,comment:`主键`},{name:`name`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!0,isForeignKey:!1,comment:`名称`}],position:H()};V(e),G(e),Y()},G=e=>{M.value={...e,fields:e.fields?.map(e=>({...e}))||[]},j.value=!0},te=()=>{if(!p.value||!M.value)return;let e=p.value.getCellById(M.value.id);e&&(e.setData(M.value),e.prop({size:{width:200,height:24+M.value.fields.length*24},attrs:{label:{text:P(M.value.name,20),title:M.value.name}},ports:I(M.value)})),j.value=!1,Y()},K=(e,t)=>{t&&(e.isRequired=!0,M.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},ne=()=>{M.value?.fields.push({name:`field_${(M.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},re=e=>{M.value&&M.value.fields.length>1&&M.value.fields.splice(e,1)},J=()=>{if(!p.value)return{tables:[],relations:[]};let e=p.value.getNodes().map(e=>({...e.getData(),position:e.getPosition()})),t=[];return p.value.getEdges().forEach(e=>{let n=e.getSourceNode(),r=e.getTargetNode(),i=e.getSourcePortId(),a=e.getTargetPortId();n&&r&&i&&a&&t.push({id:e.id,type:`foreign-key`,sourceTable:n.id,sourceField:i.split(`_`).slice(1).join(`_`),targetTable:r.id,targetField:a.split(`_`).slice(1).join(`_`),name:`${n.getData()?.name||n.id} -> ${r.getData()?.name||r.id}`})}),{tables:e,relations:t}},Y=()=>d(`data-change`,J()),X=null;E(p,e=>{e instanceof W&&(R(),e.on(`node:dblclick`,({node:e})=>{a.readonly||G(e.getData())}),e.on(`edge:connected`,Y),e.on(`edge:removed`,Y),e.on(`edge:click`,({edge:e})=>{N.value?(e.remove(),Y()):(B(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),X=e)}),e.on(`edge:dblclick`,({edge:e})=>{e.remove(),Y()}),e.on(`blank:click`,()=>{X=null,N.value||B()}),d(`ready`,e),m(()=>{if(a.data?.tables){let t=a.data.tables.map(t=>e.createNode(L(t)));a.data.relations?.length&&a.data.relations.forEach(n=>{t.push(e.createEdge({source:{cell:n.sourceTable,port:`${n.sourceTable}_${n.sourceField}`},target:{cell:n.targetTable,port:`${n.targetTable}_${n.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),e.resetCells(t),S(300,20)}}))},{immediate:!0}),E(()=>a.data,e=>{if(p.value&&e?.tables){let t=e.tables.map(e=>p.value.createNode(L(e)));e.relations?.length&&e.relations.forEach(e=>{t.push(p.value.createEdge({source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),p.value.resetCells(t)}},{deep:!0});let Z=e=>{let t=e.target;t?.tagName===`INPUT`||t?.tagName===`TEXTAREA`||t?.isContentEditable||(e.key===`Delete`||e.key===`Backspace`)&&X&&(X.remove(),Y(),X=null)};return _(()=>{document.addEventListener(`keydown`,Z),h()}),v(()=>document.removeEventListener(`keydown`,Z)),n({getGraph:()=>p.value??void 0,getData:J}),(n,r)=>(y(),s(`div`,de,[o(` 工具栏 `),e.showToolbar?(y(),s(`div`,fe,[u(w(U),null,{default:D(()=>[u(w(k),{onClick:ee,type:`primary`,size:`small`},{icon:D(()=>[u(t,{name:`mdi:table-plus`,size:16})]),default:D(()=>[r[3]||=l(` 添加表 `,-1)]),_:1}),u(w(k),{onClick:w(g),size:`small`},{icon:D(()=>[u(t,{name:`mdi:image-filter-center-focus`,size:16})]),default:D(()=>[r[4]||=l(` 居中 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:w(x),size:`small`},{icon:D(()=>[u(t,{name:`mdi:fit-to-screen`,size:16})]),default:D(()=>[r[5]||=l(` 适应 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:z,type:N.value?`error`:`default`,size:`small`},{icon:D(()=>[u(t,{name:`mdi:delete`,size:16})]),default:D(()=>[l(` `+C(N.value?`退出删除`:`删除连线`),1)]),_:1},8,[`type`]),u(w(F),{options:w(T),onSelect:r[0]||=e=>w(A)(e,J)},{default:D(()=>[u(w(k),{size:`small`},{icon:D(()=>[u(t,{name:`mdi:export`,size:16})]),default:D(()=>[r[6]||=l(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),N.value?(y(),s(`div`,pe,[u(w(O),{type:`info`,size:`small`,"show-icon":!1},{default:D(()=>[...r[7]||=[l(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):o(`v-if`,!0)])):o(`v-if`,!0),o(` 图表容器 `),c(`div`,{ref_key:`containerRef`,ref:f,class:`graph-container`},null,512),o(` 表编辑器 `),u(ue,{show:j.value,"editing-table":M.value,"onUpdate:editingTable":r[1]||=e=>M.value=e,"onUpdate:show":r[2]||=e=>j.value=e,onSave:te,onAddField:ne,onRemoveField:re,onHandlePrimaryKey:K},null,8,[`show`,`editing-table`])]))}}),[[`__scopeId`,`data-v-a0a775c0`]]);const he={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{}};function ge(e,t={}){let n={...he,...t},r=()=>{e.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,n.defaultColor),e.attr(`line/strokeWidth`,n.strokeWidth)})},i=e=>{r(),e.attr(`line/stroke`,n.highlightColor),e.attr(`line/strokeWidth`,n.highlightStrokeWidth)},a=(e,t)=>{n.portPositions.forEach(n=>e.attr(`port-${n}/style/opacity`,t))};return{resetEdgeStyles:r,highlightEdge:i,togglePorts:a,bindInteractions:()=>{let t=e.value;t&&(t.on(`edge:click`,({edge:e})=>i(e)),t.on(`edge:dblclick`,({edge:e})=>{e.remove(),n.onDataChange()}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,n.onDataChange),n.portPositions.length>0&&(t.on(`node:mouseenter`,({node:e})=>a(e,1)),t.on(`node:mouseleave`,({node:e})=>a(e,0))))}}}const _e={"start-event":{name:`开始`,title:`开始事件`,iconClass:`circle start-event`},activity:{name:`任务`,title:`任务活动`,iconClass:`rect activity`},gateway:{name:`网关`,title:`排他网关`,iconClass:`diamond gateway`},"end-event":{name:`结束`,title:`结束事件`,iconClass:`circle end-event`}},ve={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},$=[`top`,`right`,`bottom`,`left`],ye=(e,t=`rect`)=>e.reduce((e,n)=>{let r=t===`circle`,i=n===`top`?r?{refCx:.5,refCy:0}:{refX:.5,refY:0}:n===`right`?r?{refCx:1,refCy:.5}:{refX:1,refY:.5}:n===`bottom`?r?{refCx:.5,refCy:1}:{refX:.5,refY:1}:r?{refCx:0,refCy:.5}:{refX:0,refY:.5};return e[`port-${n}`]={ref:`body`,...i,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),be={event:{inherit:`circle`,attrs:{body:{strokeWidth:2,stroke:`#5F95FF`,fill:`#FFF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},activity:{inherit:`rect`,attrs:{body:{rx:6,ry:6,stroke:`#5F95FF`,fill:`#EFF4FF`,strokeWidth:1,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},gateway:{inherit:`polygon`,attrs:{body:{refPoints:`0,10 10,0 20,10 10,20`,strokeWidth:2,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:20,fill:`#5F95FF`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}}},xe={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function Se(e=!1){let t={background:e?`#18181c`:`#ffffff`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`};return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:3},connecting:{router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},highlighting:{magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},selecting:{enabled:!0,rubberband:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!1,snapline:!0,keyboard:!0,clipboard:!0}}Se();const Ce={"start-event":{shape:`event`,width:50,height:50,label:`开始事件`,data:{type:`start`}},"end-event":{shape:`event`,width:50,height:50,label:`结束事件`,data:{type:`end`}},activity:{shape:`activity`,width:120,height:60,label:`新活动`,data:{description:``,assignee:``}},gateway:{shape:`gateway`,width:40,height:40,label:`+`,data:{type:`exclusive`}}},we=[{id:`start-1`,shape:`event`,x:100,y:200,width:50,height:50,label:`流程开始`,data:{type:`start`}},{id:`activity-1`,shape:`activity`,x:200,y:180,width:120,height:60,label:`用户申请`,data:{description:`用户提交申请表单`,assignee:`申请人`}},{id:`activity-2`,shape:`activity`,x:380,y:180,width:120,height:60,label:`初审`,data:{description:`部门进行初步审核`,assignee:`部门主管`}},{id:`gateway-1`,shape:`gateway`,x:550,y:200,width:40,height:40,label:`+`,data:{type:`exclusive`}},{id:`activity-3`,shape:`activity`,x:650,y:120,width:120,height:60,label:`终审`,data:{description:`高级主管最终审核`,assignee:`总监`}},{id:`activity-4`,shape:`activity`,x:650,y:260,width:120,height:60,label:`驳回处理`,data:{description:`处理驳回流程`,assignee:`专员`}},{id:`end-1`,shape:`event`,x:820,y:140,width:50,height:50,label:`审批通过`,data:{type:`end`}},{id:`end-2`,shape:`event`,x:820,y:280,width:50,height:50,label:`审批驳回`,data:{type:`end`}},{id:`edge-1`,shape:`bpmn-edge`,source:`start-1`,target:`activity-1`,x:0,y:0},{id:`edge-2`,shape:`bpmn-edge`,source:`activity-1`,target:`activity-2`,x:0,y:0},{id:`edge-3`,shape:`bpmn-edge`,source:`activity-2`,target:`gateway-1`,x:0,y:0},{id:`edge-4`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-3`,label:`通过`,x:0,y:0},{id:`edge-5`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-4`,label:`驳回`,x:0,y:0},{id:`edge-6`,shape:`bpmn-edge`,source:`activity-3`,target:`end-1`,x:0,y:0},{id:`edge-7`,shape:`bpmn-edge`,source:`activity-4`,target:`end-2`,x:0,y:0}],Te={key:0,class:`property-panel`},Ee={class:`property-item`},De={class:`property-item`},Oe={key:0,class:`property-item`},ke={key:1,class:`property-item`},Ae={class:`form-actions`};var je=n(d({__name:`BPMNPropertyEditor`,props:f({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:f([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=T(e,`editingElement`),r=t,d=i(()=>ve[n.value?.shape]||n.value?.shape||``);return(t,i)=>(y(),a(w(N),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":i[6]||=e=>r(`update:show`,e)},{default:D(()=>[n.value?(y(),s(`div`,Te,[c(`div`,Ee,[i[7]||=c(`div`,{class:`property-label`},`名称`,-1),u(w(B),{value:n.value.label,"onUpdate:value":i[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),c(`div`,De,[i[8]||=c(`div`,{class:`property-label`},`类型`,-1),u(w(B),{value:d.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?(y(),s(`div`,Oe,[i[9]||=c(`div`,{class:`property-label`},`描述`,-1),u(w(B),{value:n.value.description,"onUpdate:value":i[1]||=e=>n.value.description=e,type:`textarea`,rows:3,placeholder:`请输入活动描述`,size:`small`},null,8,[`value`])])):o(`v-if`,!0),n.value.shape===`activity`?(y(),s(`div`,ke,[i[10]||=c(`div`,{class:`property-label`},`执行人`,-1),u(w(B),{value:n.value.assignee,"onUpdate:value":i[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):o(`v-if`,!0),c(`div`,Ae,[u(w(U),null,{default:D(()=>[u(w(k),{onClick:i[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:D(()=>[...i[11]||=[l(` 保存 `,-1)]]),_:1}),u(w(k),{onClick:i[4]||=e=>r(`update:show`,!1),size:`small`},{default:D(()=>[...i[12]||=[l(` 取消 `,-1)]]),_:1}),u(w(k),{onClick:i[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:D(()=>[...i[13]||=[l(` 删除 `,-1)]]),_:1})]),_:1})])])):o(`v-if`,!0)]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-fc8f213e`]]);const Me={class:`bpmn-layout`},Ne={key:0,class:`top-toolbar`},Pe={class:`toolbar-section`},Fe={class:`toolbar-group`},Ie={class:`toolbar-group`},Le={class:`toolbar-group`},Re={class:`main-content`},ze={key:0,class:`left-panel`},Be={class:`element-grid`},Ve=[`onClick`,`title`],He={class:`graph-wrapper`};var Ue=n(d({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:n,emit:a}){let d=e,f=a,p=b(),{graph:m,initGraph:g,centerContent:v,zoomToFit:S,scheduleZoomToFit:T}=q(p,i(()=>d.theme===`dark`)),{exportOptions:O,handleExport:A}=Q(m,`bpmn-diagram`),{bindInteractions:j}=ge(m,{portPositions:$,onDataChange:()=>G()}),M=b(!1),N=b(),P=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),I=e=>{if(!e)return[];if(Array.isArray(e))return e;let t=[];return Object.values(e).forEach(e=>{Array.isArray(e)&&t.push(...e)}),t},L=()=>{let e=$.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{W.registerNode(t,{...be[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...be[t].attrs,...ye($,n[t])}},!0)}),W.registerEdge(`bpmn-edge`,xe,!0)},R=e=>{if(!m.value)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?m.value.createEdge(n):m.value.createNode(n);return t&&r.setData(t),r});m.value.resetCells(t),t.length&&T(200,50)},z=e=>{if(!m.value)return;let t=Ce[e];if(!t)return;let n=m.value.options.width/2,r=m.value.options.height/2,{data:i,...a}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},o=m.value.createNode(a);i&&o.setData(i),m.value.addCell(o),G()},B=()=>{m.value?.clearCells(),G()},V=e=>{let t=e.getData()||{};N.value={id:e.id,shape:e.shape,label:P(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},M.value=!0},H=()=>{if(!m.value||!N.value)return;let e=m.value.getCellById(N.value.id);e&&(e.setData({description:N.value.description,assignee:N.value.assignee}),e.attr(`text/text`,N.value.label||``),e.attr(`label/text`,N.value.label||``)),M.value=!1,G()},ee=()=>{!m.value||!N.value||(m.value.getCellById(N.value.id)?.remove(),M.value=!1,G())},U=()=>m.value?[...m.value.getNodes().map(e=>({id:e.id,shape:e.shape,x:e.getPosition().x,y:e.getPosition().y,width:e.getSize().width,height:e.getSize().height,label:P(e),data:e.getData()||{}})),...m.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:P(e),data:e.getData()||{},x:0,y:0}))]:[],G=()=>f(`data-change`,U());return E(m,e=>{e instanceof W&&(d.readonly||(j(),e.on(`node:dblclick`,({node:e})=>V(e)),e.on(`node:moved`,G)),f(`ready`,e),R(d.data===void 0?we:I(d.data)))},{immediate:!0}),E(()=>d.data,e=>{m.value&&R(e===void 0?we:I(e))},{deep:!0}),_(async()=>{L();let e=Se();await g({...e,connecting:{...e.connecting,createEdge:()=>m.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),n({getGraph:()=>m.value,getData:U,loadData:R}),(n,i)=>(y(),s(`div`,Me,[e.showToolbar?(y(),s(`div`,Ne,[c(`div`,Pe,[c(`div`,Fe,[u(w(k),{onClick:B,size:`small`},{icon:D(()=>[u(t,{name:`mdi:delete-outline`,size:16})]),default:D(()=>[i[3]||=l(` 清空 `,-1)]),_:1})]),c(`div`,Ie,[u(w(k),{onClick:w(v),size:`small`},{icon:D(()=>[u(t,{name:`mdi:image-filter-center-focus`,size:16})]),default:D(()=>[i[4]||=l(` 居中 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:w(S),size:`small`},{icon:D(()=>[u(t,{name:`mdi:fit-to-screen`,size:16})]),default:D(()=>[i[5]||=l(` 适应 `,-1)]),_:1},8,[`onClick`])]),c(`div`,Le,[u(w(F),{options:w(O),onSelect:i[0]||=e=>w(A)(e,U)},{default:D(()=>[u(w(k),{size:`small`},{icon:D(()=>[u(t,{name:`mdi:export`,size:16})]),default:D(()=>[i[6]||=l(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):o(`v-if`,!0),c(`div`,Re,[e.showToolbar?(y(),s(`div`,ze,[i[7]||=c(`div`,{class:`panel-title`},`组件`,-1),c(`div`,Be,[(y(!0),s(r,null,x(w(_e),(e,t)=>(y(),s(`div`,{key:t,class:`element-item`,onClick:e=>z(t),title:e.title},[c(`div`,{class:h([`element-icon`,e.iconClass])},null,2),c(`span`,null,C(e.name),1)],8,Ve))),128))])])):o(`v-if`,!0),c(`div`,He,[c(`div`,{ref_key:`containerRef`,ref:p,class:`graph-container`},null,512)])]),u(je,{show:M.value,"editing-element":N.value,"onUpdate:editingElement":i[1]||=e=>N.value=e,"onUpdate:show":i[2]||=e=>M.value=e,onSave:H,onDelete:ee},null,8,[`show`,`editing-element`])]))}}),[[`__scopeId`,`data-v-52a50592`]]);const We={key:0,class:`class-editor`},Ge={class:`section`},Ke={class:`section-header`},qe={style:{"font-size":`13px`}},Je={class:`section`},Ye={class:`section-header`},Xe={style:{"font-size":`13px`}};var Ze=n(d({__name:`UMLClassEditor`,props:f({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:f([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:n}){let i=T(e,`editingClass`),d=n;return(n,f)=>(y(),a(w(N),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":f[6]||=e=>d(`update:show`,e)},{default:D(()=>[i.value?(y(),s(`div`,We,[u(w(I),{"label-placement":`top`},{default:D(()=>[u(w(L),{label:`类名`},{default:D(()=>[u(w(B),{value:i.value.name,"onUpdate:value":f[0]||=e=>i.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),u(w(M),{style:{margin:`20px 0`}},{default:D(()=>[...f[7]||=[l(`属性`,-1)]]),_:1}),c(`div`,Ge,[(y(!0),s(r,null,x(i.value.attributes,(e,t)=>(y(),s(`div`,{key:t,class:`item`},[u(w(A),{size:`small`,style:{"margin-bottom":`12px`}},{header:D(()=>[c(`div`,Ke,[c(`span`,qe,`#`+C(t+1)+` `+C(e.name||`新属性`),1),u(w(k),{onClick:e=>i.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:D(()=>[...f[8]||=[l(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:D(()=>[u(w(U),{vertical:``,size:`small`},{default:D(()=>[u(w(U),null,{default:D(()=>[u(w(L),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),u(w(L),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),u(w(L),{label:`可见性`,style:{margin:`0`}},{default:D(()=>[u(w(H),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:D(()=>[u(w(V),{value:`public`},{default:D(()=>[...f[9]||=[l(`+ public`,-1)]]),_:1}),u(w(V),{value:`private`},{default:D(()=>[...f[10]||=[l(`- private`,-1)]]),_:1}),u(w(V),{value:`protected`},{default:D(()=>[...f[11]||=[l(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),u(w(k),{onClick:f[1]||=e=>i.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:D(()=>[u(t,{name:`mdi:plus`,size:16})]),default:D(()=>[f[12]||=l(` 添加属性 `,-1)]),_:1})]),u(w(M),{style:{margin:`20px 0`}},{default:D(()=>[...f[13]||=[l(`方法`,-1)]]),_:1}),c(`div`,Je,[(y(!0),s(r,null,x(i.value.methods,(e,t)=>(y(),s(`div`,{key:t,class:`item`},[u(w(A),{size:`small`,style:{"margin-bottom":`12px`}},{header:D(()=>[c(`div`,Ye,[c(`span`,Xe,`#`+C(t+1)+` `+C(e.name||`新方法`),1),u(w(k),{onClick:e=>i.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:D(()=>[...f[14]||=[l(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:D(()=>[u(w(U),{vertical:``,size:`small`},{default:D(()=>[u(w(U),null,{default:D(()=>[u(w(L),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),u(w(L),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:D(()=>[u(w(B),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),u(w(L),{label:`可见性`,style:{margin:`0`}},{default:D(()=>[u(w(H),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:D(()=>[u(w(V),{value:`public`},{default:D(()=>[...f[15]||=[l(`+ public`,-1)]]),_:1}),u(w(V),{value:`private`},{default:D(()=>[...f[16]||=[l(`- private`,-1)]]),_:1}),u(w(V),{value:`protected`},{default:D(()=>[...f[17]||=[l(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),u(w(k),{onClick:f[2]||=e=>i.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:D(()=>[u(t,{name:`mdi:plus`,size:16})]),default:D(()=>[f[18]||=l(` 添加方法 `,-1)]),_:1})]),u(w(M),{style:{margin:`20px 0`}}),u(w(U),{justify:`space-between`},{default:D(()=>[u(w(k),{onClick:f[3]||=e=>d(`delete`),type:`error`,ghost:``},{icon:D(()=>[u(t,{name:`mdi:delete`,size:16})]),default:D(()=>[f[19]||=l(` 删除类 `,-1)]),_:1}),u(w(U),null,{default:D(()=>[u(w(k),{onClick:f[4]||=e=>d(`update:show`,!1)},{default:D(()=>[...f[20]||=[l(`取消`,-1)]]),_:1}),u(w(k),{onClick:f[5]||=e=>d(`save`),type:`primary`},{default:D(()=>[...f[21]||=[l(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):o(`v-if`,!0)]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-c37f7424`]]);const Qe={public:`+`,private:`-`,protected:`#`},$e={extends:{strokeDasharray:0,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},implement:{strokeDasharray:`8,4`,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},dependency:{strokeDasharray:`6,4`,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}},composition:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`#722ed1`,stroke:`#722ed1`}},aggregation:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},association:{strokeDasharray:0,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}}},et=[`top`,`right`,`bottom`,`left`].reduce((e,t)=>{let n=t===`top`?{refX:.5,refY:0}:t===`right`?{refX:1,refY:.5}:t===`bottom`?{refX:.5,refY:1}:{refX:0,refY:.5};return e[`port-${t}`]={ref:`body`,...n,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),tt={inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`rect`,selector:`name-rect`},{tagName:`rect`,selector:`attrs-rect`},{tagName:`rect`,selector:`methods-rect`},{tagName:`text`,selector:`name-text`},{tagName:`text`,selector:`attrs-text`},{tagName:`text`,selector:`methods-text`},{tagName:`circle`,selector:`port-top`},{tagName:`circle`,selector:`port-right`},{tagName:`circle`,selector:`port-bottom`},{tagName:`circle`,selector:`port-left`}],attrs:{rect:{width:160},body:{stroke:`#5f95ff`,strokeWidth:1,fill:`#fff`,magnet:!1,style:{cursor:`move`}},"name-rect":{fill:`#5f95ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"attrs-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"methods-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"name-text":{ref:`name-rect`,refY:.5,refX:.5,textAnchor:`middle`,fontWeight:`bold`,fill:`#fff`,fontSize:12,pointerEvents:`none`},"attrs-text":{ref:`attrs-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},"methods-text":{ref:`methods-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},...et}},nt={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},rt={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},it={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},at=[{id:`animal`,name:`<<Abstract>>
|
|
2
2
|
动物`,x:342,y:98,attributes:[{name:`名字`,type:`string`,visibility:`public`}],methods:[{name:`新陈代谢`,returnType:`void`,visibility:`public`},{name:`繁殖`,returnType:`void`,visibility:`public`}]},{id:`bird`,name:`鸟`,x:575,y:280,attributes:[{name:`羽毛`,type:`string`,visibility:`public`},{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`mammal`,name:`哺乳动物`,x:844,y:319,attributes:[{name:`翅膀`,type:`boolean`,visibility:`public`}],methods:[]},{id:`dog`,name:`狗`,x:656,y:456,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`enterprise`,name:`企鹅`,x:984,y:456,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`sparrow`,name:`麻雀`,x:531,y:608,attributes:[{name:`学飞`,type:`boolean`,visibility:`public`}],methods:[]},{id:`interface-flying`,name:`<<interface>>
|
|
3
3
|
飞翔`,x:762,y:608,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`qemu`,name:`气球`,x:981,y:608,attributes:[],methods:[]}],ot=[{id:`edge-1`,shape:`extends`,source:`bird`,target:`animal`},{id:`edge-2`,shape:`extends`,source:`mammal`,target:`animal`},{id:`edge-3`,shape:`extends`,source:`dog`,target:`mammal`},{id:`edge-4`,shape:`extends`,source:`enterprise`,target:`mammal`},{id:`edge-5`,shape:`extends`,source:`sparrow`,target:`bird`},{id:`edge-6`,shape:`implement`,source:`sparrow`,target:`interface-flying`},{id:`edge-7`,shape:`implement`,source:`enterprise`,target:`interface-flying`},{id:`edge-8`,shape:`association`,source:`bird`,target:`mammal`,label:`1:2`}],st=e=>Qe[e]||`+`,ct={name:`新类`,attributes:[{name:`attribute`,type:`string`,visibility:`private`}],methods:[{name:`method`,returnType:`void`,visibility:`public`}],position:{x:100,y:100}},lt={class:`uml-layout`},ut={key:0,class:`toolbar`};var dt=n(d({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:n,emit:r}){let a=e,d=r,f=b(),{graph:p,initGraph:m,centerContent:h,zoomToFit:v,scheduleZoomToFit:x}=q(f,i(()=>a.theme===`dark`)),{exportOptions:S,handleExport:C}=Q(p,`uml-diagram`),{bindInteractions:T}=ge(p,{defaultColor:`#722ed1`,portPositions:[`top`,`right`,`bottom`,`left`],onDataChange:()=>B()}),O=b(!1),A=b(),j=()=>{W.registerNode(`class`,{...tt,propHooks(e){let{name:t,attributes:n,methods:r,...i}=e;if(!(t&&n&&r))return e;let a=0;return[{type:`name`,text:t},{type:`attrs`,text:n},{type:`methods`,text:r}].forEach(e=>{let t=Array.isArray(e.text)?e.text.length*12+16:32;G.setByPath(i,`attrs/${e.type}-text/text`,Array.isArray(e.text)?e.text.join(`
|
|
4
|
-
`):e.text),G.setByPath(i,`attrs/${e.type}-rect/height`,t),G.setByPath(i,`attrs/${e.type}-rect/transform`,`translate(0,${a})`),a+=t}),i.size={width:160,height:a},i}},!0),Object.entries($e).forEach(([e,t])=>{W.registerEdge(e,{inherit:`edge`,attrs:{line:{strokeWidth:2,stroke:`#722ed1`,...t}}},!0)})},M=e=>{if(!p.value)return;let t=[`extends`,`composition`,`implement`,`dependency`,`aggregation`,`association`],n=[];e.forEach(e=>{if(t.includes(e.shape)){let t=p.value.createEdge(e);e.data&&t.setData(e.data),n.push(t)}else{let{data:t,...r}=e,i=p.value.createNode(r);t&&i.setData(t),n.push(i)}}),p.value.resetCells(n),n.length&&x(200,10)},N=e=>({name:e.name,attributes:e.attributes.map(e=>`${st(e.visibility)} ${e.name}: ${e.type}`),methods:e.methods.map(e=>`${st(e.visibility)} ${e.name}(): ${e.returnType}`)}),P=()=>{if(!p.value)return;let e={id:`class_${Date.now()}`,...ct},t={id:e.id,shape:`class`,x:e.position.x,y:e.position.y,...N(e),data:e};p.value.addCell(p.value.createNode(t)),B()},I=e=>{A.value={...e,attributes:[...e.attributes||[]],methods:[...e.methods||[]]},O.value=!0},L=()=>{if(!p.value||!A.value)return;let e=p.value.getCellById(A.value.id);e&&(e.setData(A.value),e.prop(N(A.value))),O.value=!1,B()},R=()=>{!p.value||!A.value||(p.value.getCellById(A.value.id)?.remove(),O.value=!1,B())},z=()=>({classes:p.value?.getNodes().map(e=>({...e.getData(),position:e.getPosition()}))||[],relations:p.value?.getEdges().map(e=>{let t=e.getData();return{id:e.id,type:e.shape===`extends`?`inheritance`:e.shape===`implement`?`implementation`:e.shape,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,name:t?.name,multiplicity:t?.multiplicity}})||[]}),B=()=>d(`data-change`,z()),V=e=>{M([...e.classes.map(e=>({id:e.id,shape:`class`,x:e.position?.x??50,y:e.position?.y??50,...N(e),data:e})),...e.relations.map(e=>({id:e.id,shape:e.type===`inheritance`?`extends`:e.type===`implementation`?`implement`:e.type,source:e.source,target:e.target,data:{name:e.name,multiplicity:e.multiplicity}}))])};return E(p,e=>{if(!(e instanceof W))return;j(),T(),e.on(`node:dblclick`,({node:e})=>{!a.readonly&&e.getData()&&I(e.getData())}),d(`ready`,e);let t=[...at.map(e=>({id:e.id,shape:`class`,x:e.x,y:e.y,...N(e),data:{id:e.id,name:e.name,attributes:e.attributes,methods:e.methods,position:{x:e.x,y:e.y}}})),...ot];a.data?V(a.data):M(t)},{immediate:!0}),E(()=>a.data,e=>{p.value&&e&&V(e)},{deep:!0}),_(()=>{m({interacting:!0,connecting:{...nt,createEdge:()=>p.value.createEdge(it),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`},highlighting:rt})}),n({getGraph:()=>p.value,getData:z,addClass:P,centerContent:h,zoomToFit:v}),(n,r)=>(y(),s(`div`,lt,[e.showToolbar?(y(),s(`div`,ut,[u(w(U),null,{default:D(()=>[u(w(k),{onClick:P,type:`primary`,size:`small`},{icon:D(()=>[u(t,{name:`mdi:plus-box`,size:16})]),default:D(()=>[r[3]||=l(` 添加类 `,-1)]),_:1}),u(w(k),{onClick:w(h),size:`small`},{icon:D(()=>[u(t,{name:`mdi:image-filter-center-focus`,size:16})]),default:D(()=>[r[4]||=l(` 居中 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:w(v),size:`small`},{icon:D(()=>[u(t,{name:`mdi:fit-to-screen`,size:16})]),default:D(()=>[r[5]||=l(` 适应 `,-1)]),_:1},8,[`onClick`]),u(w(F),{options:w(S),onSelect:r[0]||=e=>w(C)(e,z)},{default:D(()=>[u(w(k),{size:`small`},{icon:D(()=>[u(t,{name:`mdi:export`,size:16})]),default:D(()=>[r[6]||=l(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1})])):o(`v-if`,!0),c(`div`,{ref_key:`containerRef`,ref:f,class:`graph-container`,style:g({width:a.width,height:a.height})},null,4),u(Ze,{show:O.value,"editing-class":A.value,"onUpdate:editingClass":r[1]||=e=>A.value=e,"onUpdate:show":r[2]||=e=>O.value=e,onSave:L,onDelete:R},null,8,[`show`,`editing-class`])]))}}),[[`__scopeId`,`data-v-
|
|
4
|
+
`):e.text),G.setByPath(i,`attrs/${e.type}-rect/height`,t),G.setByPath(i,`attrs/${e.type}-rect/transform`,`translate(0,${a})`),a+=t}),i.size={width:160,height:a},i}},!0),Object.entries($e).forEach(([e,t])=>{W.registerEdge(e,{inherit:`edge`,attrs:{line:{strokeWidth:2,stroke:`#722ed1`,...t}}},!0)})},M=e=>{if(!p.value)return;let t=[`extends`,`composition`,`implement`,`dependency`,`aggregation`,`association`],n=[];e.forEach(e=>{if(t.includes(e.shape)){let t=p.value.createEdge(e);e.data&&t.setData(e.data),n.push(t)}else{let{data:t,...r}=e,i=p.value.createNode(r);t&&i.setData(t),n.push(i)}}),p.value.resetCells(n),n.length&&x(200,10)},N=e=>({name:e.name,attributes:e.attributes.map(e=>`${st(e.visibility)} ${e.name}: ${e.type}`),methods:e.methods.map(e=>`${st(e.visibility)} ${e.name}(): ${e.returnType}`)}),P=()=>{if(!p.value)return;let e={id:`class_${Date.now()}`,...ct},t={id:e.id,shape:`class`,x:e.position.x,y:e.position.y,...N(e),data:e};p.value.addCell(p.value.createNode(t)),B()},I=e=>{A.value={...e,attributes:[...e.attributes||[]],methods:[...e.methods||[]]},O.value=!0},L=()=>{if(!p.value||!A.value)return;let e=p.value.getCellById(A.value.id);e&&(e.setData(A.value),e.prop(N(A.value))),O.value=!1,B()},R=()=>{!p.value||!A.value||(p.value.getCellById(A.value.id)?.remove(),O.value=!1,B())},z=()=>({classes:p.value?.getNodes().map(e=>({...e.getData(),position:e.getPosition()}))||[],relations:p.value?.getEdges().map(e=>{let t=e.getData();return{id:e.id,type:e.shape===`extends`?`inheritance`:e.shape===`implement`?`implementation`:e.shape,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,name:t?.name,multiplicity:t?.multiplicity}})||[]}),B=()=>d(`data-change`,z()),V=e=>{M([...e.classes.map(e=>({id:e.id,shape:`class`,x:e.position?.x??50,y:e.position?.y??50,...N(e),data:e})),...e.relations.map(e=>({id:e.id,shape:e.type===`inheritance`?`extends`:e.type===`implementation`?`implement`:e.type,source:e.source,target:e.target,data:{name:e.name,multiplicity:e.multiplicity}}))])};return E(p,e=>{if(!(e instanceof W))return;j(),T(),e.on(`node:dblclick`,({node:e})=>{!a.readonly&&e.getData()&&I(e.getData())}),d(`ready`,e);let t=[...at.map(e=>({id:e.id,shape:`class`,x:e.x,y:e.y,...N(e),data:{id:e.id,name:e.name,attributes:e.attributes,methods:e.methods,position:{x:e.x,y:e.y}}})),...ot];a.data?V(a.data):M(t)},{immediate:!0}),E(()=>a.data,e=>{p.value&&e&&V(e)},{deep:!0}),_(()=>{m({interacting:!0,connecting:{...nt,createEdge:()=>p.value.createEdge(it),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`},highlighting:rt})}),n({getGraph:()=>p.value,getData:z,addClass:P,centerContent:h,zoomToFit:v}),(n,r)=>(y(),s(`div`,lt,[e.showToolbar?(y(),s(`div`,ut,[u(w(U),null,{default:D(()=>[u(w(k),{onClick:P,type:`primary`,size:`small`},{icon:D(()=>[u(t,{name:`mdi:plus-box`,size:16})]),default:D(()=>[r[3]||=l(` 添加类 `,-1)]),_:1}),u(w(k),{onClick:w(h),size:`small`},{icon:D(()=>[u(t,{name:`mdi:image-filter-center-focus`,size:16})]),default:D(()=>[r[4]||=l(` 居中 `,-1)]),_:1},8,[`onClick`]),u(w(k),{onClick:w(v),size:`small`},{icon:D(()=>[u(t,{name:`mdi:fit-to-screen`,size:16})]),default:D(()=>[r[5]||=l(` 适应 `,-1)]),_:1},8,[`onClick`]),u(w(F),{options:w(S),onSelect:r[0]||=e=>w(C)(e,z)},{default:D(()=>[u(w(k),{size:`small`},{icon:D(()=>[u(t,{name:`mdi:export`,size:16})]),default:D(()=>[r[6]||=l(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1})])):o(`v-if`,!0),c(`div`,{ref_key:`containerRef`,ref:f,class:`graph-container`,style:g({width:a.width,height:a.height})},null,4),u(Ze,{show:O.value,"editing-class":A.value,"onUpdate:editingClass":r[1]||=e=>A.value=e,"onUpdate:show":r[2]||=e=>O.value=e,onSave:L,onDelete:R},null,8,[`show`,`editing-class`])]))}}),[[`__scopeId`,`data-v-0ca526b5`]]);const ft=e=>e===`task`?`activity`:e===`gateway`?`gateway`:`event`,pt=e=>{let t=e.data?.type;return t===`start`||t===`end`||t===`task`||t===`gateway`||t===`event`?t:e.shape===`activity`?`task`:e.shape===`gateway`?`gateway`:`event`},mt=e=>[...e.nodes.map(e=>{let t=ft(e.type);return{id:e.id,shape:t,x:e.position.x,y:e.position.y,width:t===`activity`?120:t===`gateway`?40:50,height:t===`activity`?60:t===`gateway`?40:50,label:e.name,data:{...e.properties,type:e.type}}}),...e.flows.map(e=>({id:e.id,shape:`bpmn-edge`,source:e.source,target:e.target,label:e.name,x:0,y:0,data:e.condition?{condition:e.condition}:void 0}))],ht=e=>({nodes:e.filter(e=>e.shape!==`bpmn-edge`).map(e=>{let t={...e.data};return delete t.type,{id:e.id,type:pt(e),name:e.label??``,position:{x:e.x,y:e.y},properties:t}}),flows:e.filter(e=>e.shape===`bpmn-edge`).map(e=>({id:e.id,source:e.source??``,target:e.target??``,name:e.label,condition:typeof e.data?.condition==`string`?e.data.condition:void 0}))}),gt={class:`c-antv-container`};var _t=n(d({name:`C_AntV`,__name:`index`,props:{type:{},data:{},width:{default:`100%`},height:{default:`600px`},readonly:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:n}){let r=e,o=n,c=b(),l={er:me,bpmn:Ue,uml:dt},u=i(()=>l[r.type]),d=i(()=>{let e={width:r.width,height:r.height,readonly:r.readonly,showToolbar:r.showToolbar,theme:r.theme},t=r.type===`bpmn`&&r.data&&`nodes`in r.data?mt(r.data):r.data;return{...e,data:t}}),f=e=>{o(`ready`,e)},m=e=>{o(`data-change`,r.type===`bpmn`&&Array.isArray(e)?ht(e):e)};return t({getGraph:()=>c.value?.getGraph?.(),getData:()=>{let e=c.value?.getData?.();return r.type===`bpmn`&&Array.isArray(e)?ht(e):e}}),(e,t)=>(y(),s(`div`,gt,[(y(),a(S(u.value),p(d.value,{onReady:f,onDataChange:m,ref_key:`layoutRef`,ref:c}),null,16))]))}}),[[`__scopeId`,`data-v-1a860057`]]);export{q as i,ge as n,Q as r,_t as t};
|
package/dist/C_AudioPlayer.css
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
:root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
/* layer: default */
|
|
5
|
-
.inline-flex[data-v-075758a0]{display:inline-flex;}
|
|
6
|
-
.transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
|
|
7
|
-
.px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
|
|
8
|
-
|
|
9
|
-
/* unplugin-vue-components disabled */.c-icon[data-v-075758a0] {
|
|
3
|
+
.c-icon[data-v-075758a0] {
|
|
10
4
|
display: inline-flex;
|
|
11
5
|
align-items: center;
|
|
12
6
|
justify-content: center;
|
|
@@ -65,12 +59,13 @@
|
|
|
65
59
|
transform: rotate(360deg);
|
|
66
60
|
}
|
|
67
61
|
}
|
|
68
|
-
|
|
62
|
+
|
|
69
63
|
/* layer: default */
|
|
70
|
-
.
|
|
71
|
-
.
|
|
64
|
+
.inline-flex[data-v-075758a0]{display:inline-flex;}
|
|
65
|
+
.transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
|
|
66
|
+
.px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
|
|
72
67
|
|
|
73
|
-
|
|
68
|
+
/**
|
|
74
69
|
* C_AudioPlayer — 音频播放器样式
|
|
75
70
|
*/
|
|
76
71
|
.c-audio-player[data-v-5ba9d24f] {
|
|
@@ -375,4 +370,8 @@
|
|
|
375
370
|
width: 34px;
|
|
376
371
|
height: 34px;
|
|
377
372
|
font-size: 20px;
|
|
378
|
-
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/* layer: default */
|
|
376
|
+
.static[data-v-5ba9d24f]{position:static;}
|
|
377
|
+
.transition[data-v-5ba9d24f]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
|
package/dist/C_AvatarGroup.css
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
:root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
/* layer: default */
|
|
5
|
-
.px[data-v-df136558]{padding-left:1rem;padding-right:1rem;}
|
|
6
|
-
|
|
7
|
-
/* unplugin-vue-components disabled *//**
|
|
3
|
+
/**
|
|
8
4
|
* C_AvatarGroup — 头像组组件样式
|
|
9
5
|
*/
|
|
10
6
|
.c-avatar-group[data-v-df136558] {
|
|
@@ -133,4 +129,7 @@
|
|
|
133
129
|
z-index: 10;
|
|
134
130
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
|
|
135
131
|
background: color-mix(in srgb, var(--primary-color) 20%, var(--card-color));
|
|
136
|
-
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* layer: default */
|
|
135
|
+
.px[data-v-df136558]{padding-left:1rem;padding-right:1rem;}
|
package/dist/C_Barcode.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
.c-barcode[data-v-b15d80e8] {
|
|
4
4
|
display: inline-flex;
|
|
5
5
|
flex-direction: column;
|
|
6
6
|
align-items: center;
|
package/dist/C_Breadcrumb.css
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
:root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
/* layer: default */
|
|
5
|
-
.inline-flex[data-v-075758a0]{display:inline-flex;}
|
|
6
|
-
.transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
|
|
7
|
-
.px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
|
|
8
|
-
|
|
9
|
-
/* unplugin-vue-components disabled */.c-icon[data-v-075758a0] {
|
|
3
|
+
.c-icon[data-v-075758a0] {
|
|
10
4
|
display: inline-flex;
|
|
11
5
|
align-items: center;
|
|
12
6
|
justify-content: center;
|
|
@@ -65,7 +59,13 @@
|
|
|
65
59
|
transform: rotate(360deg);
|
|
66
60
|
}
|
|
67
61
|
}
|
|
68
|
-
|
|
62
|
+
|
|
63
|
+
/* layer: default */
|
|
64
|
+
.inline-flex[data-v-075758a0]{display:inline-flex;}
|
|
65
|
+
.transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
|
|
66
|
+
.px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
|
|
67
|
+
|
|
68
|
+
.c-breadcrumb {
|
|
69
69
|
--c-breadcrumb-icon-size: 16px;
|
|
70
70
|
--c-breadcrumb-gap: 4px;
|
|
71
71
|
--c-breadcrumb-font-size: inherit;
|
|
@@ -94,13 +94,11 @@
|
|
|
94
94
|
line-height: 1;
|
|
95
95
|
margin-top: -4px;
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
|
|
98
98
|
/* layer: default */
|
|
99
|
-
.
|
|
100
|
-
.
|
|
101
|
-
.flex[data-v-
|
|
102
|
-
.
|
|
103
|
-
.flex-
|
|
104
|
-
.
|
|
105
|
-
.px[data-v-fa9c3f66]{padding-left:1rem;padding-right:1rem;}
|
|
106
|
-
.filter[data-v-fa9c3f66]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
|
|
99
|
+
.min-w-0[data-v-a86331d5]{min-width:0;}
|
|
100
|
+
.flex[data-v-a86331d5]{display:flex;}
|
|
101
|
+
.inline-flex[data-v-a86331d5]{display:inline-flex;}
|
|
102
|
+
.flex-1[data-v-a86331d5]{flex:1 1 0%;}
|
|
103
|
+
.flex-shrink[data-v-a86331d5]{flex-shrink:1;}
|
|
104
|
+
.px[data-v-a86331d5]{padding-left:1rem;padding-right:1rem;}
|
package/dist/C_Breadcrumb2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`),i=require(`vue-router`);const a={class:`c-breadcrumb__trigger`},o=[`onClick`],s=(0,n.defineComponent)({name:`C_Breadcrumb`,__name:`index`,props:{items:{},showIcon:{type:Boolean,default:!0},iconSize:{default:16},labelFormatter:{}},emits:[`select`],setup(t,{emit:s}){let c=t,l=s,u=(0,i.useRoute)(),d=e=>c.labelFormatter?c.labelFormatter(e):e,f=(0,n.computed)(()=>u.matched.filter(e=>e.meta?.title).map(e=>({key:e.path,label:d(e.meta.title||``),icon:e.meta.icon,children:e.children?.length?e.children.map(e=>({key:e.path,label:d(e.meta?.title||``),...e.children?.length&&{children:e.children.map(e=>({key:e.path,label:d(e.meta?.title||``)}))}})):[]}))),p=(0,n.computed)(()=>c.items??f.value),m=e=>{l(`select`,e)};return(i,s)=>{let c=r.NDropdown,l=r.NBreadcrumbItem,u=r.NBreadcrumb;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`c-breadcrumb flex-1 min-w-0`,style:(0,n.normalizeStyle)({"--c-breadcrumb-icon-size":`${t.iconSize}px`,"--c-breadcrumb-gap":`${Math.max(Math.round(t.iconSize/4),2)}px`})},[(0,n.createVNode)(u,null,{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(p.value,(r,i)=>((0,n.openBlock)(),(0,n.createBlock)(l,{key:i},{default:(0,n.withCtx)(()=>[r.children?.length?((0,n.openBlock)(),(0,n.createBlock)(c,{key:0,options:r.children,onSelect:m},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,a,[t.showIcon&&r.icon?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(e.t),{key:0,name:r.icon,size:t.iconSize},null,8,[`name`,`size`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(r.label),1)])]),_:2},1032,[`options`])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:1,class:`c-breadcrumb__link`,onClick:e=>m(r.key)},[t.showIcon&&r.icon?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(e.t),{key:0,name:r.icon,size:t.iconSize},null,8,[`name`,`size`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(r.label),1)],8,o))]),_:2},1024))),128))]),_:1})],4)}}});var c=t.t(s,[[`__scopeId`,`data-v-
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`),i=require(`vue-router`);const a={class:`c-breadcrumb__trigger`},o=[`onClick`],s=(0,n.defineComponent)({name:`C_Breadcrumb`,__name:`index`,props:{items:{},showIcon:{type:Boolean,default:!0},iconSize:{default:16},labelFormatter:{}},emits:[`select`],setup(t,{emit:s}){let c=t,l=s,u=(0,i.useRoute)(),d=e=>c.labelFormatter?c.labelFormatter(e):e,f=(0,n.computed)(()=>u.matched.filter(e=>e.meta?.title).map(e=>({key:e.path,label:d(e.meta.title||``),icon:e.meta.icon,children:e.children?.length?e.children.map(e=>({key:e.path,label:d(e.meta?.title||``),...e.children?.length&&{children:e.children.map(e=>({key:e.path,label:d(e.meta?.title||``)}))}})):[]}))),p=(0,n.computed)(()=>c.items??f.value),m=e=>{l(`select`,e)};return(i,s)=>{let c=r.NDropdown,l=r.NBreadcrumbItem,u=r.NBreadcrumb;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`c-breadcrumb flex-1 min-w-0`,style:(0,n.normalizeStyle)({"--c-breadcrumb-icon-size":`${t.iconSize}px`,"--c-breadcrumb-gap":`${Math.max(Math.round(t.iconSize/4),2)}px`})},[(0,n.createVNode)(u,null,{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(p.value,(r,i)=>((0,n.openBlock)(),(0,n.createBlock)(l,{key:i},{default:(0,n.withCtx)(()=>[r.children?.length?((0,n.openBlock)(),(0,n.createBlock)(c,{key:0,options:r.children,onSelect:m},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,a,[t.showIcon&&r.icon?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(e.t),{key:0,name:r.icon,size:t.iconSize},null,8,[`name`,`size`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(r.label),1)])]),_:2},1032,[`options`])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:1,class:`c-breadcrumb__link`,onClick:e=>m(r.key)},[t.showIcon&&r.icon?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(e.t),{key:0,name:r.icon,size:t.iconSize},null,8,[`name`,`size`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(r.label),1)],8,o))]),_:2},1024))),128))]),_:1})],4)}}});var c=t.t(s,[[`__scopeId`,`data-v-a86331d5`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return c}});
|