@robot-admin/naive-ui-components 0.21.1 → 0.22.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.
Files changed (117) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +2 -0
  3. package/README_EN.md +2 -0
  4. package/SECURITY.md +10 -0
  5. package/THIRD_PARTY_NOTICES.md +10 -0
  6. package/dist/C_AntV2.cjs +1 -1
  7. package/dist/C_Barcode2.cjs +1 -1
  8. package/dist/C_Editor.css +18 -18
  9. package/dist/C_Editor2.cjs +1 -1
  10. package/dist/C_Editor2.js +1 -1
  11. package/dist/C_FilePreview2.cjs +1 -1
  12. package/dist/C_FilePreview2.js +1 -1
  13. package/dist/C_Form.css +18 -18
  14. package/dist/C_FullCalendar2.cjs +1 -1
  15. package/dist/C_Markdown.css +37 -37
  16. package/dist/C_Markdown2.cjs +1 -1
  17. package/dist/C_Markdown2.js +1 -1
  18. package/dist/C_QRCode2.cjs +1 -1
  19. package/dist/C_Table.css +18 -18
  20. package/dist/C_Upload2.cjs +1 -1
  21. package/dist/C_WaterFall.css +49 -31
  22. package/dist/C_WaterFall2.cjs +1 -1
  23. package/dist/C_WaterFall2.js +1 -1
  24. package/dist/chunk.cjs +1 -1
  25. package/dist/constants.d.cts +1 -1
  26. package/dist/constants.d.ts +1 -1
  27. package/dist/constants2.d.cts +1 -1
  28. package/dist/constants2.d.ts +1 -1
  29. package/dist/constants3.d.cts +3 -3
  30. package/dist/constants3.d.ts +3 -3
  31. package/dist/constants4.d.cts +6 -6
  32. package/dist/constants4.d.ts +6 -6
  33. package/dist/constants5.d.cts +2 -2
  34. package/dist/constants5.d.ts +2 -2
  35. package/dist/data.cjs +1 -1
  36. package/dist/data.d.cts +10 -10
  37. package/dist/data.d.ts +10 -10
  38. package/dist/data.js +1 -1
  39. package/dist/graphics.d.cts +17 -11
  40. package/dist/graphics.d.ts +17 -11
  41. package/dist/helpers.cjs +1 -1
  42. package/dist/helpers.js +1 -1
  43. package/dist/html.cjs +1 -1
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.vue.d.cts +1 -1
  46. package/dist/index.vue.d.ts +1 -1
  47. package/dist/index10.vue.d.cts +3 -3
  48. package/dist/index10.vue.d.ts +6 -6
  49. package/dist/index11.vue.d.cts +6 -6
  50. package/dist/index12.vue.d.ts +3 -3
  51. package/dist/index13.vue.d.cts +3 -3
  52. package/dist/index13.vue.d.ts +7 -7
  53. package/dist/index14.vue.d.cts +7 -7
  54. package/dist/index17.vue.d.ts +3 -3
  55. package/dist/index18.vue.d.cts +3 -3
  56. package/dist/index19.vue.d.cts +1 -1
  57. package/dist/index19.vue.d.ts +1 -1
  58. package/dist/index2.vue.d.cts +3 -3
  59. package/dist/index2.vue.d.ts +3 -3
  60. package/dist/index20.vue.d.cts +2 -2
  61. package/dist/index20.vue.d.ts +2 -2
  62. package/dist/index21.vue.d.cts +2 -2
  63. package/dist/index21.vue.d.ts +2 -2
  64. package/dist/index22.vue.d.cts +2 -2
  65. package/dist/index22.vue.d.ts +2 -2
  66. package/dist/index24.vue.d.cts +1 -1
  67. package/dist/index24.vue.d.ts +1 -1
  68. package/dist/index25.vue.d.cts +4 -4
  69. package/dist/index25.vue.d.ts +4 -4
  70. package/dist/index26.vue.d.cts +2 -2
  71. package/dist/index26.vue.d.ts +2 -2
  72. package/dist/index3.vue.d.cts +5 -5
  73. package/dist/index3.vue.d.ts +5 -5
  74. package/dist/index8.vue.d.ts +4 -4
  75. package/dist/index9.vue.d.cts +4 -4
  76. package/dist/index9.vue.d.ts +3 -3
  77. package/dist/mapUtils.d.cts +2 -2
  78. package/dist/mapUtils.d.ts +2 -2
  79. package/dist/style.css +104 -86
  80. package/dist/types.d.ts +5 -0
  81. package/dist/types2.d.cts +5 -0
  82. package/dist/useCollapsePanel.d.cts +3 -3
  83. package/dist/useCollapsePanel.d.ts +3 -3
  84. package/dist/useCropperCore.d.cts +12 -12
  85. package/dist/useCropperCore.d.ts +12 -12
  86. package/dist/useEdgeInteraction.d.cts +2 -2
  87. package/dist/useEdgeInteraction.d.ts +2 -2
  88. package/dist/useFullscreen.d.cts +3 -3
  89. package/dist/useFullscreen.d.ts +3 -3
  90. package/dist/useGlobalSearch.d.cts +1 -1
  91. package/dist/useGlobalSearch.d.ts +1 -1
  92. package/dist/useInfiniteScroll.d.cts +16 -17
  93. package/dist/useInfiniteScroll.d.ts +16 -17
  94. package/dist/useQRCode.d.cts +4 -4
  95. package/dist/useQRCode.d.ts +4 -4
  96. package/dist/useSignatureHistory.d.cts +5 -5
  97. package/dist/useSignatureHistory.d.ts +5 -5
  98. package/dist/useSplitResize.d.cts +11 -11
  99. package/dist/useSplitResize.d.ts +11 -11
  100. package/dist/useTableQuery.cjs +1 -1
  101. package/dist/useTableQuery.d.cts +16 -14
  102. package/dist/useTableQuery.d.ts +16 -14
  103. package/dist/useTableQuery.js +1 -1
  104. package/dist/useWorkflowValidation.d.cts +1 -1
  105. package/dist/useWorkflowValidation.d.ts +1 -1
  106. package/dist/verification.d.cts +3 -3
  107. package/dist/verification.d.ts +3 -3
  108. package/dist/xlsx.js +143 -0
  109. package/dist/xlsx2.cjs +143 -0
  110. package/docs/architecture.en.md +1 -0
  111. package/docs/architecture.md +1 -0
  112. package/docs/guides/api-migration.md +111 -0
  113. package/docs/guides/runtime-performance.md +16 -1
  114. package/docs/guides/waterfall.md +113 -0
  115. package/docs/runtime-review-20261019.md +2 -0
  116. package/licenses/SheetJS.txt +201 -0
  117. package/package.json +13 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @robot-admin/naive-ui-components
2
2
 
3
+ ## 0.22.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 瀑布流 100 项起自动窗口化,按列索引查询可见范围,保留原始事件与插槽索引,支持变高卡片、嵌套滚动、键盘导航及 KeepAlive 释放恢复。普通接入不增加必填配置,`virtualScroll: false` 可保留全量 DOM。
8
+
9
+ 表单脏检查按字段复用响应式比较结果,保留 Date、raw 路径和普通对象的实时检查;修复 Map 对象键与 Set 对象成员在深拷贝快照后被误判为修改的问题,基础值集合保留线性查找。
10
+
11
+ SheetJS 官方原始发布包改为经过完整性校验的本地构建依赖,运行时代码随按需产物分发并附带许可证,消费者不再为本库访问外部 SheetJS CDN。基础表单与表格首屏仍执行原体积预算,新增无独立 xlsx 依赖的双格式真实解析回归。
12
+
13
+ 补齐日期兼容事件的弃用提示、主 API 消费示例、只读 AST 迁移检查与指南,保留现有兼容入口。
14
+
15
+ Markdown 卸载时通过公开 API 销毁 CodeMirror,并忽略迟到的保存与上传回调。富文本同步持有官方 createEditor 返回实例,修复创建通知晚于卸载导致的资源残留,保持模型、禁用与工具栏接口。
16
+
3
17
  ## 0.21.1
4
18
 
5
19
  ### Patch Changes
package/README.md CHANGED
@@ -167,6 +167,8 @@ Resolver 默认解析到组件子路径;`importStyle` 默认是 `false`,需
167
167
  | [使用指南](./docs/guides/usage.md) | 导入、表单表格、Cron/公式、地图、引导、人机验证、登录与页面加载 |
168
168
  | [密度与多表工作台](./docs/guides/table-density.md) | 表单/搜索/表格统一密度、编辑模式、分屏与树能力 |
169
169
  | [大列表与异步任务](./docs/guides/runtime-performance.md) | 自动窗口化、聊天滚动、搜索索引、字幕与图片任务 |
170
+ | [瀑布流长列表](./docs/guides/waterfall.md) | 自动窗口化、嵌套滚动、变高卡片与键盘导航 |
171
+ | [兼容 API 迁移](./docs/guides/api-migration.md) | 标准模型、应用渲染器与只读迁移检查 |
170
172
  | [真实场景覆盖](./docs/wl-ui-produce-coverage.md) | wl-ui-produce 对照、可组合能力与需要适配的边界 |
171
173
  | [开发与构建](./docs/engineering.md) | 工程结构、六阶段构建、组件扩展、校验与发布流程 |
172
174
  | [品牌资源](./docs/assets/README.md) | Robot 系列 Logo、可编辑 SVG 与高清 PNG 封面 |
package/README_EN.md CHANGED
@@ -167,6 +167,8 @@ Root imports aggregate navigation components and require `vue-router` at runtime
167
167
  | [Usage guide](./docs/guides/usage.en.md) | Imports, forms/tables, Cron/formulas, maps, onboarding, captcha, login and page loading |
168
168
  | [Density and workbenches](./docs/guides/table-density.md) | Shared form/search/table density, edit modes, split panes and tree capabilities (Chinese) |
169
169
  | [Lists and async tasks](./docs/guides/runtime-performance.md) | Automatic list windows, chat scrolling, search indexes and media task ownership (Chinese) |
170
+ | [Waterfall lists](./docs/guides/waterfall.md) | Automatic windows, nested scrolling, measured cards and keyboard navigation (Chinese) |
171
+ | [Compatible API migration](./docs/guides/api-migration.md) | Standard models, application renderers and read-only migration checks (Chinese) |
170
172
  | [Production coverage review](./docs/wl-ui-produce-coverage.md) | wl-ui-produce capability mapping and adapter boundaries (Chinese) |
171
173
  | [Development and build](./docs/engineering.en.md) | Source structure, six-stage build, adding components, checks and releases |
172
174
  | [Brand assets](./docs/assets/README.md) | Robot family logo, editable SVG sources and high-resolution PNGs |
package/SECURITY.md CHANGED
@@ -25,6 +25,16 @@ The release pipeline audits direct and transitive dependencies and verifies depe
25
25
 
26
26
  Run `bun install --frozen-lockfile` and `bun run verify` before publishing. Review changes to `bun.lock`, remote tarball URLs, package exports, and `sideEffects` as release-sensitive files.
27
27
 
28
+ ### Bundled SheetJS runtime
29
+
30
+ Starting with 0.22.0, SheetJS Community Edition 0.20.3 is built from the unchanged official archive in `vendor/`. `bun run check:vendor` checks the reviewed SHA-512, actual build inputs and the license shipped with the package. See [third-party notices](./THIRD_PARTY_NOTICES.md) and [source maintenance](https://github.com/ChenyCHENYU/naive-ui-components/blob/main/vendor/README.md).
31
+
32
+ Consumers no longer install a separate SheetJS dependency for this library. Consequently, an application package-manager audit cannot inventory this bundled runtime as a standalone package, and application-level `xlsx` overrides do not replace it. Maintainers must monitor SheetJS advisories and release an updated component package when changing the bundled version. Archive integrity and passing spreadsheet regressions verify source identity and behavior; they do not establish that bundled code has no vulnerabilities.
33
+
34
+ ### 2026-10-24 development dependency update
35
+
36
+ The final audit detected newly updated advisories for Happy DOM and fast-uri. The development environment now pins `happy-dom 21.0.4`, the patched version for [GHSA-834v-8h66-3h79](https://github.com/advisories/GHSA-834v-8h66-3h79), and overrides `fast-uri` to the compatible `3.1.9` patch for [scheme decoding](https://github.com/advisories/GHSA-w74x-v6f9-j3xg), [relative paths](https://github.com/advisories/GHSA-xhq7-xmqj-769h), [host canonicalization](https://github.com/advisories/GHSA-wjr9-j795-jxcr), and [suffix references](https://github.com/advisories/GHSA-333x-w4r6-6crp). These updates do not expand the advisory exception below. Audit output is time-sensitive; rerun the gate against the actual lockfile.
37
+
28
38
  ### Development toolchain: one verified local mitigation
29
39
 
30
40
  As of 2026-10-23, the upstream [braces depth advisory GHSA-vfj7-8cjw-p6xm](https://github.com/advisories/GHSA-vfj7-8cjw-p6xm) affects `braces <=3.0.3` and has no published fixed version. In this repository it is a development dependency through micromatch and build/release tools. It is absent from the production dependency graph.
@@ -0,0 +1,10 @@
1
+ # Third-party notices
2
+
3
+ This package includes unmodified SheetJS Community Edition 0.20.3 runtime code in its spreadsheet chunks, distributed under the Apache License 2.0.
4
+
5
+ - Copyright (C) 2012-present SheetJS LLC
6
+ - Upstream: https://sheetjs.com/
7
+ - Official release: https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz
8
+ - License: [licenses/SheetJS.txt](./licenses/SheetJS.txt)
9
+
10
+ The upstream runtime is minified and bundled for distribution. No SheetJS source changes are applied. Other third-party dependencies retain their respective licenses and are installed separately.
package/dist/C_AntV2.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const e=require(`./chunk.cjs`),t=require(`./feedback.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./export-helper.cjs`),i=require(`./data.cjs`);let a=require(`vue`),o=require(`naive-ui`),s=require(`@antv/x6`),c=require(`html2canvas`);c=e.t(c);function l(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 u(e=!1){let t=l(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 d(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function f(e,t){let n=0,r,i,o=!1,c=(0,a.shallowRef)(null),f=(0,a.ref)(!1),p=i=>{if(!o){f.value=!0;try{if(!e.value)return;c.value&&=(c.value.dispose(),null);let{width:a,height:l}=d(e.value);if(a===0||l===0){n++,n<10&&(clearTimeout(r),r=setTimeout(()=>{o||m(i)},100));return}n=0;let f=u(t?.value??!1);c.value=new s.Graph({container:e.value,width:a,height:l,...f,...i})}catch{}finally{f.value=!1}}},m=async(e={})=>{clearTimeout(r),r=void 0,await(0,a.nextTick)(),p(e)};function h(e){if(!c.value)return;let t=l(e);c.value.drawBackground({color:t.background}),c.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&(0,a.watch)(t,e=>{h(e)});function g(){if(clearTimeout(r),clearTimeout(i),r=void 0,i=void 0,c.value){let e=c.value;c.value=null,e.dispose()}}function _(){c.value?.centerContent()}function v(){c.value?.zoomToFit({padding:20,maxScale:1})}function y(e=200,t=20){clearTimeout(i);let n=c.value;n&&(i=setTimeout(()=>{!o&&c.value===n&&n.zoomToFit({padding:t,maxScale:1})},e))}function b(e){c.value?.zoom(e)}function x(){if(c.value&&e.value){let{width:t,height:n}=d(e.value);c.value.resize(t,n)}}return(0,a.onUnmounted)(()=>{o=!0,g()}),{graph:c,loading:f,initGraph:m,destroyGraph:g,centerContent:_,zoomToFit:v,scheduleZoomToFit:y,zoom:b,resizeGraph:x,updateTheme:h}}function p(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 m(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);p(new Blob([n],{type:`application/json`}),t)}async function h(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;p(await _(await(0,c.default)(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function g(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);p(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function _(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const v=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function y(e,n=`diagram`){let r=t.t();return{exportOptions:v,handleExport:async(t,i)=>{if(e.value)try{switch(t){case`png`:await h(e.value,`${n}.png`);break;case`svg`:g(e.value,`${n}.svg`);break;case`json`:i&&m(i(),`${n}.json`);break}}catch(e){r.error(`导出${t.toUpperCase()}失败,请重试`,e)}}}}function b(e,t){e.on(`cell:change:*`,({cell:e,key:n,previous:r,options:i})=>{t()&&i.ui&&e.prop(n,r,{ui:!1})})}const x=[{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`}],S={key:0,class:`table-editor`},C={class:`fields-container`},w={class:`field-header`},T=(0,a.defineComponent)({__name:`ERTableEditor`,props:(0,a.mergeModels)({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:(0,a.mergeModels)([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:t}){let r=(0,a.useModel)(e,`editingTable`),i=t,s=(e,t)=>i(`handle-primary-key`,e,t),c=()=>i(`add-field`),l=e=>i(`remove-field`,e);return(t,i)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NDrawer),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":i[4]||=e=>t.$emit(`update:show`,e)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NDrawerContent),{title:`编辑表: ${r.value?.name||`新表`}`,closable:``},{footer:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),{justify:`end`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:i[2]||=e=>t.$emit(`update:show`,!1)},{default:(0,a.withCtx)(()=>[...i[11]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:i[3]||=e=>t.$emit(`save`),type:`primary`},{default:(0,a.withCtx)(()=>[...i[12]||=[(0,a.createTextVNode)(`保存`,-1)]]),_:1})]),_:1})]),default:(0,a.withCtx)(()=>[r.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,S,[(0,a.createVNode)((0,a.unref)(o.NForm),{model:r.value,"label-placement":`top`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`表名`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:r.value.name,"onUpdate:value":i[0]||=e=>r.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`表注释`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:r.value.comment,"onUpdate:value":i[1]||=e=>r.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(o.NDivider),null,{default:(0,a.withCtx)(()=>[...i[5]||=[(0,a.createTextVNode)(`字段列表`,-1)]]),_:1}),(0,a.createElementVNode)(`div`,C,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(r.value.fields,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NCard),{key:t,size:`small`,class:`field-card`},{header:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,w,[(0,a.createElementVNode)(`span`,null,`#`+(0,a.toDisplayString)(t+1)+` `+(0,a.toDisplayString)(e.name||`新字段`),1),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:e=>l(t),size:`tiny`,type:`error`,quaternary:``,disabled:r.value.fields.length<=1},{default:(0,a.withCtx)(()=>[...i[6]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NGrid),{cols:2,"x-gap":12},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NGi),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`字段名`,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NGi),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`类型`,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSelect),{value:e.type,"onUpdate:value":t=>e.type=t,options:(0,a.unref)(x),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NSpace),{style:{"margin-top":`12px`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NCheckbox),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>s(e,t)]},{default:(0,a.withCtx)(()=>[...i[7]||=[(0,a.createTextVNode)(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,a.createVNode)((0,a.unref)(o.NCheckbox),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:(0,a.withCtx)(()=>[...i[8]||=[(0,a.createTextVNode)(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,a.createVNode)((0,a.unref)(o.NCheckbox),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:(0,a.withCtx)(()=>[...i[9]||=[(0,a.createTextVNode)(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:c,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,a.withCtx)(()=>[i[10]||=(0,a.createTextVNode)(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):(0,a.createCommentVNode)(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}});var E=r.t(T,[[`__scopeId`,`data-v-4e8f219f`]]);const D={class:`er-layout`},O={key:0,class:`toolbar`},k={key:0,style:{"margin-top":`8px`}},A=(0,a.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 c=e,l=r,u=(0,a.ref)(),{graph:d,initGraph:p,centerContent:m,zoomToFit:h,scheduleZoomToFit:g}=f(u,(0,a.computed)(()=>c.theme===`dark`)),{exportOptions:_,handleExport:v}=y(d,`er-diagram`),x=(0,a.ref)(!1),S=(0,a.ref)(),C=(0,a.ref)(!1),w=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,T=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,data:{tableId:e.id,fieldName:t.name},group:`list`,attrs:{portNameLabel:{text:w(n,12),title:n},portTypeLabel:{text:w(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],A=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:i.t(e),attrs:{label:{text:w(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:T(e)}),j=()=>{d.value&&(s.Graph.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),s.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))},M=()=>{c.readonly||(C.value=!C.value,C.value||N())},N=()=>{d.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},P=e=>{if(!d.value)return;let t=d.value.createNode(A(e));return d.value.resetCells([t,...d.value.getCells()]),t},F=()=>{let e=d.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}},I=()=>{if(c.readonly)return;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:F()};P(e),L(e),K()},L=e=>{c.readonly||(S.value=i.t(e),x.value=!0)},R=()=>{if(c.readonly||!d.value||!S.value)return;let e=d.value.getCellById(S.value.id);e&&(e.setData(i.t(S.value)),e.prop({size:{width:200,height:24+S.value.fields.length*24},attrs:{label:{text:w(S.value.name,20),title:S.value.name}},ports:T(S.value)})),x.value=!1,K()},z=(e,t)=>{c.readonly||!t||(e.isRequired=!0,S.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},B=()=>{c.readonly||S.value?.fields.push({name:`field_${(S.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},V=e=>{c.readonly||S.value&&S.value.fields.length>1&&S.value.fields.splice(e,1)},H=(e,t)=>{let n=e.getPort(t)?.data;if(n?.tableId===e.id)return n.fieldName;let r=`${e.id}_`;return t.startsWith(r)?t.slice(r.length):void 0},U=e=>e.getData()?.name||e.id,W=e=>{let t=e.getSourceNode(),n=e.getTargetNode();if(!t||!n)return;let r=H(t,e.getSourcePortId()??``),a=H(n,e.getTargetPortId()??``);if(r===void 0||a===void 0)return;let o=e.getData();return{...i.t(o),id:e.id,type:o?.type??`foreign-key`,sourceTable:t.id,sourceField:r,targetTable:n.id,targetField:a,...!o&&{name:`${U(t)} -> ${U(n)}`}}},G=()=>{if(!d.value)return{tables:[],relations:[]};let e=d.value.getNodes().map(e=>({...i.t(e.getData()),position:e.getPosition()})),t=[];return d.value.getEdges().forEach(e=>{let n=W(e);n&&t.push(n)}),{tables:e,relations:t}},K=()=>{c.readonly||l(`data-change`,G())},q=e=>{let t=d.value;if(!t)return;J=null;let n=e.tables.map(e=>t.createNode(A(e)));e.relations?.forEach(e=>{n.push(t.createEdge({id:e.id,source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},data:i.t(e),attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),t.resetCells(n)},J=null;(0,a.watch)(d,e=>{e instanceof s.Graph&&(j(),b(e,()=>c.readonly),e.on(`node:dblclick`,({node:e})=>{c.readonly||L(e.getData())}),e.on(`node:moved`,K),e.on(`edge:connected`,K),e.on(`edge:removed`,({edge:e})=>{J===e&&(J=null),K()}),e.on(`edge:click`,({edge:e})=>{c.readonly||(C.value?e.remove():(N(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),J=e))}),e.on(`edge:dblclick`,({edge:e})=>{c.readonly||e.remove()}),e.on(`blank:click`,()=>{J=null,C.value||N()}),l(`ready`,e),(0,a.nextTick)(()=>{d.value===e&&c.data?.tables&&(q(c.data),g(300,20))}))},{immediate:!0}),(0,a.watch)(()=>c.data,e=>{d.value&&e?.tables&&q(e)},{deep:!0}),(0,a.watch)(()=>c.readonly,e=>{e&&(x.value=!1,S.value=void 0,C.value=!1,J=null,N())},{flush:`sync`});let Y=e=>{e.target?.closest(`input, textarea, [contenteditable]:not([contenteditable="false"])`)||u.value?.focus({preventScroll:!0})},X=e=>{c.readonly||document.activeElement!==u.value||e.target?.closest(`input, textarea, [contenteditable]:not([contenteditable="false"])`)||(e.key===`Delete`||e.key===`Backspace`)&&J&&(e.preventDefault(),J.remove(),J=null)};return(0,a.onMounted)(()=>{p({interacting:()=>!c.readonly,connecting:{allowBlank:!1,allowNode:!1,allowEdge:!1,validateMagnet:()=>!c.readonly,validateConnection:()=>!c.readonly,validateEdge:()=>!c.readonly}})}),t({getGraph:()=>d.value??void 0,getData:G}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,D,[(0,a.createCommentVNode)(` 工具栏 `),e.showToolbar?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,O,[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:I,disabled:e.readonly,type:`primary`,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:table-plus`,size:16})]),default:(0,a.withCtx)(()=>[r[3]||=(0,a.createTextVNode)(` 添加表 `,-1)]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(m),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,a.withCtx)(()=>[r[4]||=(0,a.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(h),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,a.withCtx)(()=>[r[5]||=(0,a.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:M,disabled:e.readonly,type:C.value?`error`:`default`,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` `+(0,a.toDisplayString)(C.value?`退出删除`:`删除连线`),1)]),_:1},8,[`disabled`,`type`]),(0,a.createVNode)((0,a.unref)(o.NDropdown),{options:(0,a.unref)(_),onSelect:r[0]||=e=>(0,a.unref)(v)(e,G)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,a.withCtx)(()=>[r[6]||=(0,a.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),C.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,k,[(0,a.createVNode)((0,a.unref)(o.NAlert),{type:`info`,size:`small`,"show-icon":!1},{default:(0,a.withCtx)(()=>[...r[7]||=[(0,a.createTextVNode)(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):(0,a.createCommentVNode)(`v-if`,!0)])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 图表容器 `),(0,a.createElementVNode)(`div`,{ref_key:`containerRef`,ref:u,class:`graph-container`,tabindex:`0`,role:`region`,"aria-label":`ER 图画布`,onPointerdown:Y,onKeydown:X},null,544),(0,a.createCommentVNode)(` 表编辑器 `),(0,a.createVNode)(E,{show:x.value,"editing-table":S.value,"onUpdate:editingTable":r[1]||=e=>S.value=e,"onUpdate:show":r[2]||=e=>x.value=e,onSave:R,onAddField:B,onRemoveField:V,onHandlePrimaryKey:z},null,8,[`show`,`editing-table`])]))}});var j=r.t(A,[[`__scopeId`,`data-v-7676efd4`]]);const M={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{},isReadonly:()=>!1};function N(e,t={}){let n={...M,...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})=>{n.isReadonly()||(e.remove(),n.onDataChange())}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,()=>{n.isReadonly()||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 P={"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`}},F={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},I=[`top`,`right`,`bottom`,`left`],L=(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},{}),R={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`}}}},z={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function B(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}}B();const V={"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`}}},H=[{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}],U={key:0,class:`property-panel`},W={class:`property-item`},G={class:`property-item`},K={key:0,class:`property-item`},q={key:1,class:`property-item`},J={class:`form-actions`},Y=(0,a.defineComponent)({__name:`BPMNPropertyEditor`,props:(0,a.mergeModels)({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:(0,a.mergeModels)([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=(0,a.useModel)(e,`editingElement`),r=t,i=(0,a.computed)(()=>F[n.value?.shape]||n.value?.shape||``);return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NDrawer),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":s[6]||=e=>r(`update:show`,e)},{default:(0,a.withCtx)(()=>[n.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,U,[(0,a.createElementVNode)(`div`,W,[s[7]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`名称`,-1),(0,a.createVNode)((0,a.unref)(o.NInput),{value:n.value.label,"onUpdate:value":s[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),(0,a.createElementVNode)(`div`,G,[s[8]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`类型`,-1),(0,a.createVNode)((0,a.unref)(o.NInput),{value:i.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,K,[s[9]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`描述`,-1),(0,a.createVNode)((0,a.unref)(o.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,a.createCommentVNode)(`v-if`,!0),n.value.shape===`activity`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,q,[s[10]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`执行人`,-1),(0,a.createVNode)((0,a.unref)(o.NInput),{value:n.value.assignee,"onUpdate:value":s[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createElementVNode)(`div`,J,[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:(0,a.withCtx)(()=>[...s[11]||=[(0,a.createTextVNode)(` 保存 `,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[4]||=e=>r(`update:show`,!1),size:`small`},{default:(0,a.withCtx)(()=>[...s[12]||=[(0,a.createTextVNode)(` 取消 `,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:(0,a.withCtx)(()=>[...s[13]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1})]),_:1})])])):(0,a.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var X=r.t(Y,[[`__scopeId`,`data-v-fc8f213e`]]);const ee={class:`bpmn-layout`},te={key:0,class:`top-toolbar`},ne={class:`toolbar-section`},re={class:`toolbar-group`},ie={class:`toolbar-group`},ae={class:`toolbar-group`},oe={class:`main-content`},se={key:0,class:`left-panel`},ce={class:`element-grid`},le=[`onClick`,`title`],ue={class:`graph-wrapper`},de=(0,a.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 c=e,l=r,u=(0,a.ref)(),{graph:d,initGraph:p,centerContent:m,zoomToFit:h,scheduleZoomToFit:g}=f(u,(0,a.computed)(()=>c.theme===`dark`)),{exportOptions:_,handleExport:v}=y(d,`bpmn-diagram`),{bindInteractions:x}=N(d,{portPositions:I,onDataChange:()=>U(),isReadonly:()=>c.readonly}),S=(0,a.ref)(!1),C=(0,a.ref)(),w=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),T=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},E=()=>{let e=I.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{s.Graph.registerNode(t,{...R[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...R[t].attrs,...L(I,n[t])}},!0)}),s.Graph.registerEdge(`bpmn-edge`,z,!0)},D=e=>{if(!d.value)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?d.value.createEdge(n):d.value.createNode(n);return t&&r.setData(i.t(t)),r});d.value.resetCells(t),t.length&&g(200,50)},O=e=>{if(c.readonly||!d.value)return;let t=V[e];if(!t)return;let n=d.value.options.width/2,r=d.value.options.height/2,{data:a,...o}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},s=d.value.createNode(o);a&&s.setData(i.t(a)),d.value.addCell(s),U()},k=()=>{c.readonly||(d.value?.clearCells(),U())},A=e=>{if(c.readonly)return;let t=e.getData()||{};C.value={id:e.id,shape:e.shape,label:w(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},S.value=!0},j=()=>{if(c.readonly||!d.value||!C.value)return;let e=d.value.getCellById(C.value.id);e&&(e.setData({description:C.value.description,assignee:C.value.assignee}),e.attr(`text/text`,C.value.label||``),e.attr(`label/text`,C.value.label||``)),S.value=!1,U()},M=()=>{c.readonly||!d.value||!C.value||(d.value.getCellById(C.value.id)?.remove(),S.value=!1,U())},F=()=>d.value?[...d.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:w(e),data:i.t(e.getData()||{})})),...d.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:w(e),data:i.t(e.getData()||{}),x:0,y:0}))]:[],U=()=>{c.readonly||l(`data-change`,F())};return(0,a.watch)(d,e=>{e instanceof s.Graph&&(b(e,()=>c.readonly),x(),e.on(`node:dblclick`,({node:e})=>A(e)),e.on(`node:moved`,U),l(`ready`,e),D(c.data===void 0?H:T(c.data)))},{immediate:!0}),(0,a.watch)(()=>c.data,e=>{d.value&&D(e===void 0?H:T(e))},{deep:!0}),(0,a.watch)(()=>c.readonly,e=>{e&&(S.value=!1,C.value=void 0)},{flush:`sync`}),(0,a.onMounted)(async()=>{E();let e=B();await p({...e,interacting:()=>!c.readonly,connecting:{...e.connecting,validateMagnet:()=>!c.readonly,validateEdge:()=>!c.readonly,createEdge:()=>d.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>!c.readonly&&e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),t({getGraph:()=>d.value,getData:F,loadData:D}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ee,[e.showToolbar?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,te,[(0,a.createElementVNode)(`div`,ne,[(0,a.createElementVNode)(`div`,re,[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:k,disabled:e.readonly,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:delete-outline`,size:16})]),default:(0,a.withCtx)(()=>[r[3]||=(0,a.createTextVNode)(` 清空 `,-1)]),_:1},8,[`disabled`])]),(0,a.createElementVNode)(`div`,ie,[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(m),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,a.withCtx)(()=>[r[4]||=(0,a.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(h),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,a.withCtx)(()=>[r[5]||=(0,a.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`])]),(0,a.createElementVNode)(`div`,ae,[(0,a.createVNode)((0,a.unref)(o.NDropdown),{options:(0,a.unref)(_),onSelect:r[0]||=e=>(0,a.unref)(v)(e,F)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,a.withCtx)(()=>[r[6]||=(0,a.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createElementVNode)(`div`,oe,[e.showToolbar&&!e.readonly?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,se,[r[7]||=(0,a.createElementVNode)(`div`,{class:`panel-title`},`组件`,-1),(0,a.createElementVNode)(`div`,ce,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)((0,a.unref)(P),(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:t,class:`element-item`,onClick:e=>O(t),title:e.title},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`element-icon`,e.iconClass])},null,2),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(e.name),1)],8,le))),128))])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createElementVNode)(`div`,ue,[(0,a.createElementVNode)(`div`,{ref_key:`containerRef`,ref:u,class:`graph-container`},null,512)])]),(0,a.createVNode)(X,{show:S.value,"editing-element":C.value,"onUpdate:editingElement":r[1]||=e=>C.value=e,"onUpdate:show":r[2]||=e=>S.value=e,onSave:j,onDelete:M},null,8,[`show`,`editing-element`])]))}});var fe=r.t(de,[[`__scopeId`,`data-v-a7aebb58`]]);const pe={key:0,class:`class-editor`},me={class:`section`},he={class:`section-header`},ge={style:{"font-size":`13px`}},_e={class:`section`},ve={class:`section-header`},ye={style:{"font-size":`13px`}},be=(0,a.defineComponent)({__name:`UMLClassEditor`,props:(0,a.mergeModels)({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:(0,a.mergeModels)([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:t}){let r=(0,a.useModel)(e,`editingClass`),i=t;return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NDrawer),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":s[6]||=e=>i(`update:show`,e)},{default:(0,a.withCtx)(()=>[r.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,pe,[(0,a.createVNode)((0,a.unref)(o.NForm),{"label-placement":`top`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`类名`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:r.value.name,"onUpdate:value":s[0]||=e=>r.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(o.NDivider),{style:{margin:`20px 0`}},{default:(0,a.withCtx)(()=>[...s[7]||=[(0,a.createTextVNode)(`属性`,-1)]]),_:1}),(0,a.createElementVNode)(`div`,me,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(r.value.attributes,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:t,class:`item`},[(0,a.createVNode)((0,a.unref)(o.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,he,[(0,a.createElementVNode)(`span`,ge,`#`+(0,a.toDisplayString)(t+1)+` `+(0,a.toDisplayString)(e.name||`新属性`),1),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:e=>r.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,a.withCtx)(()=>[...s[8]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),{vertical:``,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`public`},{default:(0,a.withCtx)(()=>[...s[9]||=[(0,a.createTextVNode)(`+ public`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`private`},{default:(0,a.withCtx)(()=>[...s[10]||=[(0,a.createTextVNode)(`- private`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`protected`},{default:(0,a.withCtx)(()=>[...s[11]||=[(0,a.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[1]||=e=>r.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,a.withCtx)(()=>[s[12]||=(0,a.createTextVNode)(` 添加属性 `,-1)]),_:1})]),(0,a.createVNode)((0,a.unref)(o.NDivider),{style:{margin:`20px 0`}},{default:(0,a.withCtx)(()=>[...s[13]||=[(0,a.createTextVNode)(`方法`,-1)]]),_:1}),(0,a.createElementVNode)(`div`,_e,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(r.value.methods,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:t,class:`item`},[(0,a.createVNode)((0,a.unref)(o.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,ve,[(0,a.createElementVNode)(`span`,ye,`#`+(0,a.toDisplayString)(t+1)+` `+(0,a.toDisplayString)(e.name||`新方法`),1),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:e=>r.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,a.withCtx)(()=>[...s[14]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),{vertical:``,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`public`},{default:(0,a.withCtx)(()=>[...s[15]||=[(0,a.createTextVNode)(`+ public`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`private`},{default:(0,a.withCtx)(()=>[...s[16]||=[(0,a.createTextVNode)(`- private`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`protected`},{default:(0,a.withCtx)(()=>[...s[17]||=[(0,a.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[2]||=e=>r.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,a.withCtx)(()=>[s[18]||=(0,a.createTextVNode)(` 添加方法 `,-1)]),_:1})]),(0,a.createVNode)((0,a.unref)(o.NDivider),{style:{margin:`20px 0`}}),(0,a.createVNode)((0,a.unref)(o.NSpace),{justify:`space-between`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[3]||=e=>i(`delete`),type:`error`,ghost:``},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,a.withCtx)(()=>[s[19]||=(0,a.createTextVNode)(` 删除类 `,-1)]),_:1}),(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[4]||=e=>i(`update:show`,!1)},{default:(0,a.withCtx)(()=>[...s[20]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[5]||=e=>i(`save`),type:`primary`},{default:(0,a.withCtx)(()=>[...s[21]||=[(0,a.createTextVNode)(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):(0,a.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var xe=r.t(be,[[`__scopeId`,`data-v-c37f7424`]]);const Se={public:`+`,private:`-`,protected:`#`},Ce={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`}}},we=[`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},{}),Te={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`},...we}},Ee={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},De={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},Oe={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},ke=[{id:`animal`,name:`<<Abstract>>
1
+ const e=require(`./chunk.cjs`),t=require(`./feedback.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./export-helper.cjs`),i=require(`./data.cjs`);let a=require(`vue`),o=require(`naive-ui`),s=require(`@antv/x6`),c=require(`html2canvas`);c=e.n(c);function l(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 u(e=!1){let t=l(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 d(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function f(e,t){let n=0,r,i,o=!1,c=(0,a.shallowRef)(null),f=(0,a.ref)(!1),p=i=>{if(!o){f.value=!0;try{if(!e.value)return;c.value&&=(c.value.dispose(),null);let{width:a,height:l}=d(e.value);if(a===0||l===0){n++,n<10&&(clearTimeout(r),r=setTimeout(()=>{o||m(i)},100));return}n=0;let f=u(t?.value??!1);c.value=new s.Graph({container:e.value,width:a,height:l,...f,...i})}catch{}finally{f.value=!1}}},m=async(e={})=>{clearTimeout(r),r=void 0,await(0,a.nextTick)(),p(e)};function h(e){if(!c.value)return;let t=l(e);c.value.drawBackground({color:t.background}),c.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&(0,a.watch)(t,e=>{h(e)});function g(){if(clearTimeout(r),clearTimeout(i),r=void 0,i=void 0,c.value){let e=c.value;c.value=null,e.dispose()}}function _(){c.value?.centerContent()}function v(){c.value?.zoomToFit({padding:20,maxScale:1})}function y(e=200,t=20){clearTimeout(i);let n=c.value;n&&(i=setTimeout(()=>{!o&&c.value===n&&n.zoomToFit({padding:t,maxScale:1})},e))}function b(e){c.value?.zoom(e)}function x(){if(c.value&&e.value){let{width:t,height:n}=d(e.value);c.value.resize(t,n)}}return(0,a.onUnmounted)(()=>{o=!0,g()}),{graph:c,loading:f,initGraph:m,destroyGraph:g,centerContent:_,zoomToFit:v,scheduleZoomToFit:y,zoom:b,resizeGraph:x,updateTheme:h}}function p(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 m(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);p(new Blob([n],{type:`application/json`}),t)}async function h(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;p(await _(await(0,c.default)(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function g(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);p(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function _(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const v=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function y(e,n=`diagram`){let r=t.t();return{exportOptions:v,handleExport:async(t,i)=>{if(e.value)try{switch(t){case`png`:await h(e.value,`${n}.png`);break;case`svg`:g(e.value,`${n}.svg`);break;case`json`:i&&m(i(),`${n}.json`);break}}catch(e){r.error(`导出${t.toUpperCase()}失败,请重试`,e)}}}}function b(e,t){e.on(`cell:change:*`,({cell:e,key:n,previous:r,options:i})=>{t()&&i.ui&&e.prop(n,r,{ui:!1})})}const x=[{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`}],S={key:0,class:`table-editor`},C={class:`fields-container`},w={class:`field-header`},T=(0,a.defineComponent)({__name:`ERTableEditor`,props:(0,a.mergeModels)({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:(0,a.mergeModels)([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:t}){let r=(0,a.useModel)(e,`editingTable`),i=t,s=(e,t)=>i(`handle-primary-key`,e,t),c=()=>i(`add-field`),l=e=>i(`remove-field`,e);return(t,i)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NDrawer),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":i[4]||=e=>t.$emit(`update:show`,e)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NDrawerContent),{title:`编辑表: ${r.value?.name||`新表`}`,closable:``},{footer:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),{justify:`end`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:i[2]||=e=>t.$emit(`update:show`,!1)},{default:(0,a.withCtx)(()=>[...i[11]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:i[3]||=e=>t.$emit(`save`),type:`primary`},{default:(0,a.withCtx)(()=>[...i[12]||=[(0,a.createTextVNode)(`保存`,-1)]]),_:1})]),_:1})]),default:(0,a.withCtx)(()=>[r.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,S,[(0,a.createVNode)((0,a.unref)(o.NForm),{model:r.value,"label-placement":`top`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`表名`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:r.value.name,"onUpdate:value":i[0]||=e=>r.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`表注释`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:r.value.comment,"onUpdate:value":i[1]||=e=>r.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(o.NDivider),null,{default:(0,a.withCtx)(()=>[...i[5]||=[(0,a.createTextVNode)(`字段列表`,-1)]]),_:1}),(0,a.createElementVNode)(`div`,C,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(r.value.fields,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NCard),{key:t,size:`small`,class:`field-card`},{header:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,w,[(0,a.createElementVNode)(`span`,null,`#`+(0,a.toDisplayString)(t+1)+` `+(0,a.toDisplayString)(e.name||`新字段`),1),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:e=>l(t),size:`tiny`,type:`error`,quaternary:``,disabled:r.value.fields.length<=1},{default:(0,a.withCtx)(()=>[...i[6]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NGrid),{cols:2,"x-gap":12},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NGi),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`字段名`,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NGi),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`类型`,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSelect),{value:e.type,"onUpdate:value":t=>e.type=t,options:(0,a.unref)(x),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NSpace),{style:{"margin-top":`12px`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NCheckbox),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>s(e,t)]},{default:(0,a.withCtx)(()=>[...i[7]||=[(0,a.createTextVNode)(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,a.createVNode)((0,a.unref)(o.NCheckbox),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:(0,a.withCtx)(()=>[...i[8]||=[(0,a.createTextVNode)(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,a.createVNode)((0,a.unref)(o.NCheckbox),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:(0,a.withCtx)(()=>[...i[9]||=[(0,a.createTextVNode)(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:c,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,a.withCtx)(()=>[i[10]||=(0,a.createTextVNode)(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):(0,a.createCommentVNode)(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}});var E=r.t(T,[[`__scopeId`,`data-v-4e8f219f`]]);const D={class:`er-layout`},O={key:0,class:`toolbar`},k={key:0,style:{"margin-top":`8px`}},A=(0,a.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 c=e,l=r,u=(0,a.ref)(),{graph:d,initGraph:p,centerContent:m,zoomToFit:h,scheduleZoomToFit:g}=f(u,(0,a.computed)(()=>c.theme===`dark`)),{exportOptions:_,handleExport:v}=y(d,`er-diagram`),x=(0,a.ref)(!1),S=(0,a.ref)(),C=(0,a.ref)(!1),w=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,T=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,data:{tableId:e.id,fieldName:t.name},group:`list`,attrs:{portNameLabel:{text:w(n,12),title:n},portTypeLabel:{text:w(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],A=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:i.t(e),attrs:{label:{text:w(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:T(e)}),j=()=>{d.value&&(s.Graph.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),s.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))},M=()=>{c.readonly||(C.value=!C.value,C.value||N())},N=()=>{d.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},P=e=>{if(!d.value)return;let t=d.value.createNode(A(e));return d.value.resetCells([t,...d.value.getCells()]),t},F=()=>{let e=d.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}},I=()=>{if(c.readonly)return;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:F()};P(e),L(e),K()},L=e=>{c.readonly||(S.value=i.t(e),x.value=!0)},R=()=>{if(c.readonly||!d.value||!S.value)return;let e=d.value.getCellById(S.value.id);e&&(e.setData(i.t(S.value)),e.prop({size:{width:200,height:24+S.value.fields.length*24},attrs:{label:{text:w(S.value.name,20),title:S.value.name}},ports:T(S.value)})),x.value=!1,K()},z=(e,t)=>{c.readonly||!t||(e.isRequired=!0,S.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},B=()=>{c.readonly||S.value?.fields.push({name:`field_${(S.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},V=e=>{c.readonly||S.value&&S.value.fields.length>1&&S.value.fields.splice(e,1)},H=(e,t)=>{let n=e.getPort(t)?.data;if(n?.tableId===e.id)return n.fieldName;let r=`${e.id}_`;return t.startsWith(r)?t.slice(r.length):void 0},U=e=>e.getData()?.name||e.id,W=e=>{let t=e.getSourceNode(),n=e.getTargetNode();if(!t||!n)return;let r=H(t,e.getSourcePortId()??``),a=H(n,e.getTargetPortId()??``);if(r===void 0||a===void 0)return;let o=e.getData();return{...i.t(o),id:e.id,type:o?.type??`foreign-key`,sourceTable:t.id,sourceField:r,targetTable:n.id,targetField:a,...!o&&{name:`${U(t)} -> ${U(n)}`}}},G=()=>{if(!d.value)return{tables:[],relations:[]};let e=d.value.getNodes().map(e=>({...i.t(e.getData()),position:e.getPosition()})),t=[];return d.value.getEdges().forEach(e=>{let n=W(e);n&&t.push(n)}),{tables:e,relations:t}},K=()=>{c.readonly||l(`data-change`,G())},q=e=>{let t=d.value;if(!t)return;J=null;let n=e.tables.map(e=>t.createNode(A(e)));e.relations?.forEach(e=>{n.push(t.createEdge({id:e.id,source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},data:i.t(e),attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),t.resetCells(n)},J=null;(0,a.watch)(d,e=>{e instanceof s.Graph&&(j(),b(e,()=>c.readonly),e.on(`node:dblclick`,({node:e})=>{c.readonly||L(e.getData())}),e.on(`node:moved`,K),e.on(`edge:connected`,K),e.on(`edge:removed`,({edge:e})=>{J===e&&(J=null),K()}),e.on(`edge:click`,({edge:e})=>{c.readonly||(C.value?e.remove():(N(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),J=e))}),e.on(`edge:dblclick`,({edge:e})=>{c.readonly||e.remove()}),e.on(`blank:click`,()=>{J=null,C.value||N()}),l(`ready`,e),(0,a.nextTick)(()=>{d.value===e&&c.data?.tables&&(q(c.data),g(300,20))}))},{immediate:!0}),(0,a.watch)(()=>c.data,e=>{d.value&&e?.tables&&q(e)},{deep:!0}),(0,a.watch)(()=>c.readonly,e=>{e&&(x.value=!1,S.value=void 0,C.value=!1,J=null,N())},{flush:`sync`});let Y=e=>{e.target?.closest(`input, textarea, [contenteditable]:not([contenteditable="false"])`)||u.value?.focus({preventScroll:!0})},X=e=>{c.readonly||document.activeElement!==u.value||e.target?.closest(`input, textarea, [contenteditable]:not([contenteditable="false"])`)||(e.key===`Delete`||e.key===`Backspace`)&&J&&(e.preventDefault(),J.remove(),J=null)};return(0,a.onMounted)(()=>{p({interacting:()=>!c.readonly,connecting:{allowBlank:!1,allowNode:!1,allowEdge:!1,validateMagnet:()=>!c.readonly,validateConnection:()=>!c.readonly,validateEdge:()=>!c.readonly}})}),t({getGraph:()=>d.value??void 0,getData:G}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,D,[(0,a.createCommentVNode)(` 工具栏 `),e.showToolbar?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,O,[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:I,disabled:e.readonly,type:`primary`,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:table-plus`,size:16})]),default:(0,a.withCtx)(()=>[r[3]||=(0,a.createTextVNode)(` 添加表 `,-1)]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(m),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,a.withCtx)(()=>[r[4]||=(0,a.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(h),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,a.withCtx)(()=>[r[5]||=(0,a.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:M,disabled:e.readonly,type:C.value?`error`:`default`,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` `+(0,a.toDisplayString)(C.value?`退出删除`:`删除连线`),1)]),_:1},8,[`disabled`,`type`]),(0,a.createVNode)((0,a.unref)(o.NDropdown),{options:(0,a.unref)(_),onSelect:r[0]||=e=>(0,a.unref)(v)(e,G)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,a.withCtx)(()=>[r[6]||=(0,a.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),C.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,k,[(0,a.createVNode)((0,a.unref)(o.NAlert),{type:`info`,size:`small`,"show-icon":!1},{default:(0,a.withCtx)(()=>[...r[7]||=[(0,a.createTextVNode)(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):(0,a.createCommentVNode)(`v-if`,!0)])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 图表容器 `),(0,a.createElementVNode)(`div`,{ref_key:`containerRef`,ref:u,class:`graph-container`,tabindex:`0`,role:`region`,"aria-label":`ER 图画布`,onPointerdown:Y,onKeydown:X},null,544),(0,a.createCommentVNode)(` 表编辑器 `),(0,a.createVNode)(E,{show:x.value,"editing-table":S.value,"onUpdate:editingTable":r[1]||=e=>S.value=e,"onUpdate:show":r[2]||=e=>x.value=e,onSave:R,onAddField:B,onRemoveField:V,onHandlePrimaryKey:z},null,8,[`show`,`editing-table`])]))}});var j=r.t(A,[[`__scopeId`,`data-v-7676efd4`]]);const M={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{},isReadonly:()=>!1};function N(e,t={}){let n={...M,...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})=>{n.isReadonly()||(e.remove(),n.onDataChange())}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,()=>{n.isReadonly()||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 P={"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`}},F={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},I=[`top`,`right`,`bottom`,`left`],L=(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},{}),R={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`}}}},z={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function B(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}}B();const V={"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`}}},H=[{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}],U={key:0,class:`property-panel`},W={class:`property-item`},G={class:`property-item`},K={key:0,class:`property-item`},q={key:1,class:`property-item`},J={class:`form-actions`},Y=(0,a.defineComponent)({__name:`BPMNPropertyEditor`,props:(0,a.mergeModels)({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:(0,a.mergeModels)([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=(0,a.useModel)(e,`editingElement`),r=t,i=(0,a.computed)(()=>F[n.value?.shape]||n.value?.shape||``);return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NDrawer),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":s[6]||=e=>r(`update:show`,e)},{default:(0,a.withCtx)(()=>[n.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,U,[(0,a.createElementVNode)(`div`,W,[s[7]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`名称`,-1),(0,a.createVNode)((0,a.unref)(o.NInput),{value:n.value.label,"onUpdate:value":s[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),(0,a.createElementVNode)(`div`,G,[s[8]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`类型`,-1),(0,a.createVNode)((0,a.unref)(o.NInput),{value:i.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,K,[s[9]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`描述`,-1),(0,a.createVNode)((0,a.unref)(o.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,a.createCommentVNode)(`v-if`,!0),n.value.shape===`activity`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,q,[s[10]||=(0,a.createElementVNode)(`div`,{class:`property-label`},`执行人`,-1),(0,a.createVNode)((0,a.unref)(o.NInput),{value:n.value.assignee,"onUpdate:value":s[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createElementVNode)(`div`,J,[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:(0,a.withCtx)(()=>[...s[11]||=[(0,a.createTextVNode)(` 保存 `,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[4]||=e=>r(`update:show`,!1),size:`small`},{default:(0,a.withCtx)(()=>[...s[12]||=[(0,a.createTextVNode)(` 取消 `,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:(0,a.withCtx)(()=>[...s[13]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1})]),_:1})])])):(0,a.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var X=r.t(Y,[[`__scopeId`,`data-v-fc8f213e`]]);const ee={class:`bpmn-layout`},te={key:0,class:`top-toolbar`},ne={class:`toolbar-section`},re={class:`toolbar-group`},ie={class:`toolbar-group`},ae={class:`toolbar-group`},oe={class:`main-content`},se={key:0,class:`left-panel`},ce={class:`element-grid`},le=[`onClick`,`title`],ue={class:`graph-wrapper`},de=(0,a.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 c=e,l=r,u=(0,a.ref)(),{graph:d,initGraph:p,centerContent:m,zoomToFit:h,scheduleZoomToFit:g}=f(u,(0,a.computed)(()=>c.theme===`dark`)),{exportOptions:_,handleExport:v}=y(d,`bpmn-diagram`),{bindInteractions:x}=N(d,{portPositions:I,onDataChange:()=>U(),isReadonly:()=>c.readonly}),S=(0,a.ref)(!1),C=(0,a.ref)(),w=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),T=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},E=()=>{let e=I.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{s.Graph.registerNode(t,{...R[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...R[t].attrs,...L(I,n[t])}},!0)}),s.Graph.registerEdge(`bpmn-edge`,z,!0)},D=e=>{if(!d.value)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?d.value.createEdge(n):d.value.createNode(n);return t&&r.setData(i.t(t)),r});d.value.resetCells(t),t.length&&g(200,50)},O=e=>{if(c.readonly||!d.value)return;let t=V[e];if(!t)return;let n=d.value.options.width/2,r=d.value.options.height/2,{data:a,...o}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},s=d.value.createNode(o);a&&s.setData(i.t(a)),d.value.addCell(s),U()},k=()=>{c.readonly||(d.value?.clearCells(),U())},A=e=>{if(c.readonly)return;let t=e.getData()||{};C.value={id:e.id,shape:e.shape,label:w(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},S.value=!0},j=()=>{if(c.readonly||!d.value||!C.value)return;let e=d.value.getCellById(C.value.id);e&&(e.setData({description:C.value.description,assignee:C.value.assignee}),e.attr(`text/text`,C.value.label||``),e.attr(`label/text`,C.value.label||``)),S.value=!1,U()},M=()=>{c.readonly||!d.value||!C.value||(d.value.getCellById(C.value.id)?.remove(),S.value=!1,U())},F=()=>d.value?[...d.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:w(e),data:i.t(e.getData()||{})})),...d.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:w(e),data:i.t(e.getData()||{}),x:0,y:0}))]:[],U=()=>{c.readonly||l(`data-change`,F())};return(0,a.watch)(d,e=>{e instanceof s.Graph&&(b(e,()=>c.readonly),x(),e.on(`node:dblclick`,({node:e})=>A(e)),e.on(`node:moved`,U),l(`ready`,e),D(c.data===void 0?H:T(c.data)))},{immediate:!0}),(0,a.watch)(()=>c.data,e=>{d.value&&D(e===void 0?H:T(e))},{deep:!0}),(0,a.watch)(()=>c.readonly,e=>{e&&(S.value=!1,C.value=void 0)},{flush:`sync`}),(0,a.onMounted)(async()=>{E();let e=B();await p({...e,interacting:()=>!c.readonly,connecting:{...e.connecting,validateMagnet:()=>!c.readonly,validateEdge:()=>!c.readonly,createEdge:()=>d.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>!c.readonly&&e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),t({getGraph:()=>d.value,getData:F,loadData:D}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ee,[e.showToolbar?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,te,[(0,a.createElementVNode)(`div`,ne,[(0,a.createElementVNode)(`div`,re,[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:k,disabled:e.readonly,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:delete-outline`,size:16})]),default:(0,a.withCtx)(()=>[r[3]||=(0,a.createTextVNode)(` 清空 `,-1)]),_:1},8,[`disabled`])]),(0,a.createElementVNode)(`div`,ie,[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(m),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,a.withCtx)(()=>[r[4]||=(0,a.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(h),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,a.withCtx)(()=>[r[5]||=(0,a.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`])]),(0,a.createElementVNode)(`div`,ae,[(0,a.createVNode)((0,a.unref)(o.NDropdown),{options:(0,a.unref)(_),onSelect:r[0]||=e=>(0,a.unref)(v)(e,F)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,a.withCtx)(()=>[r[6]||=(0,a.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createElementVNode)(`div`,oe,[e.showToolbar&&!e.readonly?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,se,[r[7]||=(0,a.createElementVNode)(`div`,{class:`panel-title`},`组件`,-1),(0,a.createElementVNode)(`div`,ce,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)((0,a.unref)(P),(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:t,class:`element-item`,onClick:e=>O(t),title:e.title},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`element-icon`,e.iconClass])},null,2),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(e.name),1)],8,le))),128))])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createElementVNode)(`div`,ue,[(0,a.createElementVNode)(`div`,{ref_key:`containerRef`,ref:u,class:`graph-container`},null,512)])]),(0,a.createVNode)(X,{show:S.value,"editing-element":C.value,"onUpdate:editingElement":r[1]||=e=>C.value=e,"onUpdate:show":r[2]||=e=>S.value=e,onSave:j,onDelete:M},null,8,[`show`,`editing-element`])]))}});var fe=r.t(de,[[`__scopeId`,`data-v-a7aebb58`]]);const pe={key:0,class:`class-editor`},me={class:`section`},he={class:`section-header`},ge={style:{"font-size":`13px`}},_e={class:`section`},ve={class:`section-header`},ye={style:{"font-size":`13px`}},be=(0,a.defineComponent)({__name:`UMLClassEditor`,props:(0,a.mergeModels)({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:(0,a.mergeModels)([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:t}){let r=(0,a.useModel)(e,`editingClass`),i=t;return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NDrawer),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":s[6]||=e=>i(`update:show`,e)},{default:(0,a.withCtx)(()=>[r.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,pe,[(0,a.createVNode)((0,a.unref)(o.NForm),{"label-placement":`top`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`类名`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:r.value.name,"onUpdate:value":s[0]||=e=>r.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(o.NDivider),{style:{margin:`20px 0`}},{default:(0,a.withCtx)(()=>[...s[7]||=[(0,a.createTextVNode)(`属性`,-1)]]),_:1}),(0,a.createElementVNode)(`div`,me,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(r.value.attributes,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:t,class:`item`},[(0,a.createVNode)((0,a.unref)(o.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,he,[(0,a.createElementVNode)(`span`,ge,`#`+(0,a.toDisplayString)(t+1)+` `+(0,a.toDisplayString)(e.name||`新属性`),1),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:e=>r.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,a.withCtx)(()=>[...s[8]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),{vertical:``,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`public`},{default:(0,a.withCtx)(()=>[...s[9]||=[(0,a.createTextVNode)(`+ public`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`private`},{default:(0,a.withCtx)(()=>[...s[10]||=[(0,a.createTextVNode)(`- private`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`protected`},{default:(0,a.withCtx)(()=>[...s[11]||=[(0,a.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[1]||=e=>r.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,a.withCtx)(()=>[s[12]||=(0,a.createTextVNode)(` 添加属性 `,-1)]),_:1})]),(0,a.createVNode)((0,a.unref)(o.NDivider),{style:{margin:`20px 0`}},{default:(0,a.withCtx)(()=>[...s[13]||=[(0,a.createTextVNode)(`方法`,-1)]]),_:1}),(0,a.createElementVNode)(`div`,_e,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(r.value.methods,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:t,class:`item`},[(0,a.createVNode)((0,a.unref)(o.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,ve,[(0,a.createElementVNode)(`span`,ye,`#`+(0,a.toDisplayString)(t+1)+` `+(0,a.toDisplayString)(e.name||`新方法`),1),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:e=>r.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,a.withCtx)(()=>[...s[14]||=[(0,a.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),{vertical:``,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NInput),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`public`},{default:(0,a.withCtx)(()=>[...s[15]||=[(0,a.createTextVNode)(`+ public`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`private`},{default:(0,a.withCtx)(()=>[...s[16]||=[(0,a.createTextVNode)(`- private`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NRadio),{value:`protected`},{default:(0,a.withCtx)(()=>[...s[17]||=[(0,a.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[2]||=e=>r.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,a.withCtx)(()=>[s[18]||=(0,a.createTextVNode)(` 添加方法 `,-1)]),_:1})]),(0,a.createVNode)((0,a.unref)(o.NDivider),{style:{margin:`20px 0`}}),(0,a.createVNode)((0,a.unref)(o.NSpace),{justify:`space-between`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[3]||=e=>i(`delete`),type:`error`,ghost:``},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,a.withCtx)(()=>[s[19]||=(0,a.createTextVNode)(` 删除类 `,-1)]),_:1}),(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[4]||=e=>i(`update:show`,!1)},{default:(0,a.withCtx)(()=>[...s[20]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:s[5]||=e=>i(`save`),type:`primary`},{default:(0,a.withCtx)(()=>[...s[21]||=[(0,a.createTextVNode)(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):(0,a.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var xe=r.t(be,[[`__scopeId`,`data-v-c37f7424`]]);const Se={public:`+`,private:`-`,protected:`#`},Ce={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`}}},we=[`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},{}),Te={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`},...we}},Ee={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},De={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},Oe={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},ke=[{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:[]}],Ae=[{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=>Se[e]||`+`,je={name:`新类`,attributes:[{name:`attribute`,type:`string`,visibility:`private`}],methods:[{name:`method`,returnType:`void`,visibility:`public`}],position:{x:100,y:100}},Me={class:`uml-layout`},Ne={key:0,class:`toolbar`},Pe=(0,a.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 c=e,l=r,u=(0,a.ref)(),{graph:d,initGraph:p,centerContent:m,zoomToFit:h,scheduleZoomToFit:g}=f(u,(0,a.computed)(()=>c.theme===`dark`)),{exportOptions:_,handleExport:v}=y(d,`uml-diagram`),{bindInteractions:x}=N(d,{defaultColor:`#722ed1`,portPositions:[`top`,`right`,`bottom`,`left`],onDataChange:()=>M(),isReadonly:()=>c.readonly}),S=(0,a.ref)(!1),C=(0,a.ref)(),w=()=>{s.Graph.registerNode(`class`,{...Te,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;s.ObjectExt.setByPath(i,`attrs/${e.type}-text/text`,Array.isArray(e.text)?e.text.join(`
4
4
  `):e.text),s.ObjectExt.setByPath(i,`attrs/${e.type}-rect/height`,t),s.ObjectExt.setByPath(i,`attrs/${e.type}-rect/transform`,`translate(0,${a})`),a+=t}),i.size={width:160,height:a},i}},!0),Object.entries(Ce).forEach(([e,t])=>{s.Graph.registerEdge(e,{inherit:`edge`,attrs:{line:{strokeWidth:2,stroke:`#722ed1`,...t}}},!0)})},T=e=>{if(!d.value)return;let t=[`extends`,`composition`,`implement`,`dependency`,`aggregation`,`association`],n=[];e.forEach(e=>{if(t.includes(e.shape)){let t=d.value.createEdge(e);e.data&&t.setData(i.t(e.data)),n.push(t)}else{let{data:t,...r}=e,a=d.value.createNode(r);t&&a.setData(i.t(t)),n.push(a)}}),d.value.resetCells(n),n.length&&g(200,10)},E=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}`)}),D=()=>{if(c.readonly||!d.value)return;let e={id:`class_${Date.now()}`,...i.t(je)},t={id:e.id,shape:`class`,x:e.position.x,y:e.position.y,...E(e),data:e};d.value.addCell(d.value.createNode(t)),M()},O=e=>{c.readonly||(C.value=i.t(e),S.value=!0)},k=()=>{if(c.readonly||!d.value||!C.value)return;let e=d.value.getCellById(C.value.id);e&&(e.setData(i.t(C.value)),e.prop(E(C.value))),S.value=!1,M()},A=()=>{c.readonly||!d.value||!C.value||(d.value.getCellById(C.value.id)?.remove(),S.value=!1,M())},j=()=>({classes:d.value?.getNodes().map(e=>({...i.t(e.getData()),position:e.getPosition()}))||[],relations:d.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}})||[]}),M=()=>{c.readonly||l(`data-change`,j())},P=e=>{T([...e.classes.map(e=>({id:e.id,shape:`class`,x:e.position?.x??50,y:e.position?.y??50,...E(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,a.watch)(d,e=>{if(!(e instanceof s.Graph))return;w(),b(e,()=>c.readonly),x(),e.on(`node:dblclick`,({node:e})=>{!c.readonly&&e.getData()&&O(e.getData())}),e.on(`node:moved`,M),l(`ready`,e);let t=[...ke.map(e=>({id:e.id,shape:`class`,x:e.x,y:e.y,...E(e),data:{id:e.id,name:e.name,attributes:e.attributes,methods:e.methods,position:{x:e.x,y:e.y}}})),...Ae];c.data?P(c.data):T(t)},{immediate:!0}),(0,a.watch)(()=>c.data,e=>{d.value&&e&&P(e)},{deep:!0}),(0,a.watch)(()=>c.readonly,e=>{e&&(S.value=!1,C.value=void 0)},{flush:`sync`}),(0,a.onMounted)(()=>{p({interacting:()=>!c.readonly,connecting:{...Ee,validateMagnet:()=>!c.readonly,validateEdge:()=>!c.readonly,createEdge:()=>d.value.createEdge(Oe),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>!c.readonly&&e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`},highlighting:De})}),t({getGraph:()=>d.value,getData:j,addClass:D,centerContent:m,zoomToFit:h}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Me,[e.showToolbar?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Ne,[(0,a.createVNode)((0,a.unref)(o.NSpace),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:D,disabled:e.readonly,type:`primary`,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:plus-box`,size:16})]),default:(0,a.withCtx)(()=>[r[3]||=(0,a.createTextVNode)(` 添加类 `,-1)]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(m),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,a.withCtx)(()=>[r[4]||=(0,a.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(h),size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,a.withCtx)(()=>[r[5]||=(0,a.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NDropdown),{options:(0,a.unref)(_),onSelect:r[0]||=e=>(0,a.unref)(v)(e,j)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,a.withCtx)(()=>[r[6]||=(0,a.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1})])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createElementVNode)(`div`,{ref_key:`containerRef`,ref:u,class:`graph-container`,style:(0,a.normalizeStyle)({width:c.width,height:c.height})},null,4),(0,a.createVNode)(xe,{show:S.value,"editing-class":C.value,"onUpdate:editingClass":r[1]||=e=>C.value=e,"onUpdate:show":r[2]||=e=>S.value=e,onSave:k,onDelete:A},null,8,[`show`,`editing-class`])]))}});var Fe=r.t(Pe,[[`__scopeId`,`data-v-90e76429`]]);const Ie=e=>e===`task`?`activity`:e===`gateway`?`gateway`:`event`,Q=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`},Le=e=>[...e.nodes.map(e=>{let t=Ie(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:Q(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}))}),Re={class:`c-antv-container`},ze=(0,a.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,i=n,o=(0,a.ref)(),s={er:j,bpmn:fe,uml:Fe},c=(0,a.computed)(()=>s[r.type]),l=(0,a.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?Le(r.data):r.data;return{...e,data:t}}),u=e=>{i(`ready`,e)},d=e=>{i(`data-change`,r.type===`bpmn`&&Array.isArray(e)?$(e):e)};return t({getGraph:()=>o.value?.getGraph()??void 0,getData:()=>{let e=o.value?.getData();return r.type===`bpmn`&&Array.isArray(e)?$(e):Array.isArray(e)?void 0:e}}),(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Re,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(c.value),(0,a.mergeProps)(l.value,{onReady:u,onDataChange:d,ref_key:`layoutRef`,ref:o}),null,16))]))}});var Be=r.t(ze,[[`__scopeId`,`data-v-f70bf9bd`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Be}});
@@ -1 +1 @@
1
- const e=require(`./chunk.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`@chenfengyuan/vue-barcode`);r=e.t(r);const i={class:`c-barcode`},a={key:0,class:`barcode-label`},o=(0,n.defineComponent)({name:`C_Barcode`,__name:`index`,props:{value:{},format:{default:`CODE128`},width:{default:2},height:{default:80},showText:{type:Boolean,default:!0},fontSize:{default:20},textPosition:{default:`bottom`},lineColor:{default:`#000000`},background:{default:`#FFFFFF`},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{emit:t}){let o=e,s=t,c=(0,n.ref)(!0),l,u=(0,n.computed)(()=>({value:o.value,options:{format:o.format,width:o.width,height:o.height,displayValue:o.showText,fontSize:o.fontSize,textPosition:o.textPosition,lineColor:o.lineColor,background:o.background,valid:d}}));function d(e){if(c.value=e,e){l=void 0;return}let t=`${o.format}\0${o.value}`;l!==t&&(l=t,s(`error`,Error(`条形码内容不符合 ${o.format} 格式`)))}return(t,o)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`barcode-wrapper`,{"with-border":e.showBorder}])},[(0,n.withDirectives)((0,n.createVNode)((0,n.unref)(r.default),(0,n.normalizeProps)((0,n.guardReactiveProps)(u.value)),null,16),[[n.vShow,c.value]])],2),e.showLabel&&e.label?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,(0,n.toDisplayString)(e.label),1)):(0,n.createCommentVNode)(`v-if`,!0)]))}});var s=t.t(o,[[`__scopeId`,`data-v-740aa73b`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
1
+ const e=require(`./chunk.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`@chenfengyuan/vue-barcode`);r=e.n(r);const i={class:`c-barcode`},a={key:0,class:`barcode-label`},o=(0,n.defineComponent)({name:`C_Barcode`,__name:`index`,props:{value:{},format:{default:`CODE128`},width:{default:2},height:{default:80},showText:{type:Boolean,default:!0},fontSize:{default:20},textPosition:{default:`bottom`},lineColor:{default:`#000000`},background:{default:`#FFFFFF`},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{emit:t}){let o=e,s=t,c=(0,n.ref)(!0),l,u=(0,n.computed)(()=>({value:o.value,options:{format:o.format,width:o.width,height:o.height,displayValue:o.showText,fontSize:o.fontSize,textPosition:o.textPosition,lineColor:o.lineColor,background:o.background,valid:d}}));function d(e){if(c.value=e,e){l=void 0;return}let t=`${o.format}\0${o.value}`;l!==t&&(l=t,s(`error`,Error(`条形码内容不符合 ${o.format} 格式`)))}return(t,o)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`barcode-wrapper`,{"with-border":e.showBorder}])},[(0,n.withDirectives)((0,n.createVNode)((0,n.unref)(r.default),(0,n.normalizeProps)((0,n.guardReactiveProps)(u.value)),null,16),[[n.vShow,c.value]])],2),e.showLabel&&e.label?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,(0,n.toDisplayString)(e.label),1)):(0,n.createCommentVNode)(`v-if`,!0)]))}});var s=t.t(o,[[`__scopeId`,`data-v-740aa73b`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
package/dist/C_Editor.css CHANGED
@@ -17,7 +17,7 @@
17
17
  .w-e-video{box-sizing:border-box;display:flex;margin:0;max-width:100%;width:100%}.w-e-video>iframe,.w-e-video>video{display:block;max-width:100%}.w-e-textarea-video-container{background-image:linear-gradient(45deg,#eee 25%,transparent 0,transparent 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0,#fff 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin-top:10px;overflow:auto;padding:10px 0}.w-e-video-align-left{justify-content:flex-start}.w-e-video-align-center{justify-content:center}.w-e-video-align-right{justify-content:flex-end}
18
18
 
19
19
  /* CSS 变量 — 支持外部主题覆盖 */
20
- .c-editor[data-v-b7a5de58] {
20
+ .c-editor[data-v-2625824a] {
21
21
  --c-editor-toolbar-bg: #ffffff;
22
22
  --c-editor-toolbar-border: #e5e7eb;
23
23
  --c-editor-menu-color: #333333;
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  /* 暗色主题 — 覆盖 CSS 变量 */
38
- .editor-dark[data-v-b7a5de58] {
38
+ .editor-dark[data-v-2625824a] {
39
39
  --c-editor-toolbar-bg: #1f2937;
40
40
  --c-editor-toolbar-border: #374151;
41
41
  --c-editor-menu-color: #e5e7eb;
@@ -48,57 +48,57 @@
48
48
  --c-editor-text-focus-bg: #111827;
49
49
  --c-editor-text-focus-color: #e5e7eb;
50
50
  }
51
- .editor-dark[data-v-b7a5de58] .w-e-toolbar {
51
+ .editor-dark[data-v-2625824a] .w-e-toolbar {
52
52
  background-color: var(--c-editor-toolbar-bg) !important;
53
53
  border-color: var(--c-editor-toolbar-border) !important;
54
54
  }
55
- .editor-dark[data-v-b7a5de58] .w-e-toolbar .w-e-menu .w-e-menu-item {
55
+ .editor-dark[data-v-2625824a] .w-e-toolbar .w-e-menu .w-e-menu-item {
56
56
  color: var(--c-editor-menu-color) !important;
57
57
  }
58
- .editor-dark[data-v-b7a5de58] .w-e-toolbar .w-e-menu .w-e-menu-item:hover {
58
+ .editor-dark[data-v-2625824a] .w-e-toolbar .w-e-menu .w-e-menu-item:hover {
59
59
  background-color: var(--c-editor-menu-hover-bg) !important;
60
60
  color: var(--c-editor-menu-hover-color) !important;
61
61
  }
62
- .editor-dark[data-v-b7a5de58] .w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active {
62
+ .editor-dark[data-v-2625824a] .w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active {
63
63
  background-color: var(--c-editor-menu-active-bg) !important;
64
64
  color: var(--c-editor-menu-active-color) !important;
65
65
  }
66
- .editor-dark[data-v-b7a5de58] .w-e-text-container {
66
+ .editor-dark[data-v-2625824a] .w-e-text-container {
67
67
  background-color: var(--c-editor-container-bg) !important;
68
68
  border-color: var(--c-editor-container-border) !important;
69
69
  }
70
- .editor-dark[data-v-b7a5de58] .w-e-text-container .w-e-text {
70
+ .editor-dark[data-v-2625824a] .w-e-text-container .w-e-text {
71
71
  background-color: var(--c-editor-text-bg) !important;
72
72
  color: var(--c-editor-text-color) !important;
73
73
  }
74
- .editor-dark[data-v-b7a5de58] .w-e-text-container .w-e-text:focus {
74
+ .editor-dark[data-v-2625824a] .w-e-text-container .w-e-text:focus {
75
75
  background-color: var(--c-editor-text-focus-bg) !important;
76
76
  color: var(--c-editor-text-focus-color) !important;
77
77
  }
78
- [data-v-b7a5de58] .w-e-toolbar,[data-v-b7a5de58] .w-e-text-container {
78
+ [data-v-2625824a] .w-e-toolbar,[data-v-2625824a] .w-e-text-container {
79
79
  max-width: 100% !important;
80
80
  overflow-x: auto !important;
81
81
  box-sizing: border-box !important;
82
82
  }
83
- [data-v-b7a5de58] .w-e-text {
83
+ [data-v-2625824a] .w-e-text {
84
84
  max-width: 100% !important;
85
85
  word-wrap: break-word !important;
86
86
  overflow-wrap: break-word !important;
87
87
  }
88
- [data-v-b7a5de58] .w-e-toolbar,[data-v-b7a5de58] .w-e-text-container,[data-v-b7a5de58] .w-e-text {
88
+ [data-v-2625824a] .w-e-toolbar,[data-v-2625824a] .w-e-text-container,[data-v-2625824a] .w-e-text {
89
89
  transition:
90
90
  background-color var(--c-editor-transition-duration) ease,
91
91
  border-color var(--c-editor-transition-duration) ease,
92
92
  color var(--c-editor-transition-duration) ease !important;
93
93
  }
94
- .editor-focused[data-v-b7a5de58] {
94
+ .editor-focused[data-v-2625824a] {
95
95
  max-width: 100% !important;
96
96
  }
97
97
 
98
98
 
99
99
  /* layer: default */
100
- .hidden[data-v-b7a5de58]{display:none;}
101
- .w-full[data-v-b7a5de58]{width:100%;}
102
- .px[data-v-b7a5de58]{padding-left:1rem;padding-right:1rem;}
103
- .transition[data-v-b7a5de58]{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;}
104
- .ease[data-v-b7a5de58]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
100
+ .hidden[data-v-2625824a]{display:none;}
101
+ .w-full[data-v-2625824a]{width:100%;}
102
+ .px[data-v-2625824a]{padding-left:1rem;padding-right:1rem;}
103
+ .transition[data-v-2625824a]{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;}
104
+ .ease[data-v-2625824a]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./export-helper.cjs`),t=require(`./html.cjs`);let n=require(`vue`);const r=[`id`],i=(0,n.defineComponent)({name:`C_Editor`,__name:`index`,props:{editorId:{},modelValue:{default:``},placeholder:{default:``},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},height:{default:240},theme:{default:`light`}},emits:[`update:modelValue`,`editor-mounted`,`editor-change`,`error`],setup(e,{expose:i,emit:a}){let o=e,s=a,c=(0,n.ref)(!1),l=(0,n.shallowRef)(null),u=(0,n.ref)(!1),d=(0,n.ref)(o.modelValue),f=(0,n.ref)(0),p=(0,n.computed)(()=>o.theme===`dark`),m=(0,n.computed)(()=>o.disabled||o.readonly),h=(0,n.computed)(()=>({height:`${Math.max(80,o.height-42)}px`,overflowY:`hidden`})),g={},_=(0,n.computed)(()=>({placeholder:o.placeholder,readOnly:m.value,autoFocus:!1,sanitizeHtml:t.t})),v=e=>{s(`error`,e instanceof Error?e:Error(String(e)))},y=e=>typeof window>`u`?(()=>null):(0,n.defineAsyncComponent)({loader:()=>import(`@wangeditor-next/editor-for-vue`).then(t=>t[e]),onError(e,t,n){v(e),n()}}),b=y(`Editor`),x=y(`Toolbar`),S=e=>{l.value=e,u.value=!0,m.value&&e.disable(),s(`editor-mounted`,e)},C=e=>{let t=e.getHtml();d.value=t,s(`update:modelValue`,t),s(`editor-change`,t)},w=()=>{u.value||(d.value=o.modelValue,f.value+=1)},T=()=>{let e=l.value;if(l.value=null,u.value=!1,!(!e||e.isDestroyed))try{e.destroy()}catch(e){v(e)}},E=e=>{let n=t.t(e);d.value=n;try{l.value?.getHtml()!==n&&l.value?.setHtml(n)}catch(e){v(e)}},D=()=>{try{return l.value?.getHtml()??d.value}catch(e){return v(e),d.value}};(0,n.watch)(()=>o.modelValue,e=>{e!==D()&&E(e||``)}),(0,n.watch)(m,e=>{let t=l.value;if(t)try{e?t.disable():t.enable()}catch(e){v(e)}});let O=()=>{c.value=!0},k=()=>{c.value=!1};return(0,n.onBeforeUnmount)(()=>{T()}),i({initializeEditor:w,destroyEditor:T,setContent:E,getContent:D,handleEditorFocus:O,handleEditorBlur:k,editorInstance:(0,n.readonly)(l),isInitialized:(0,n.readonly)(u)}),(t,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{id:e.editorId,class:(0,n.normalizeClass)([`c-editor w-full`,{"editor-dark":p.value,"is-disabled":m.value,"editor-focused":c.value}]),onFocusin:O,onFocusout:k},[(0,n.createVNode)((0,n.unref)(x),{editor:l.value,"default-config":g,mode:`default`,class:`c-editor__toolbar`},null,8,[`editor`]),((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(b),{key:f.value,modelValue:d.value,"onUpdate:modelValue":i[0]||=e=>d.value=e,"default-config":_.value,mode:`default`,style:(0,n.normalizeStyle)(h.value),onOnCreated:S,onOnChange:C},null,8,[`modelValue`,`default-config`,`style`]))],42,r))}});var a=e.t(i,[[`__scopeId`,`data-v-b7a5de58`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`),t=require(`./html.cjs`);let n=require(`vue`);const r=[`id`],i=(0,n.defineComponent)({name:`C_Editor`,__name:`index`,props:{editorId:{},modelValue:{default:``},placeholder:{default:``},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},height:{default:240},theme:{default:`light`}},emits:[`update:modelValue`,`editor-mounted`,`editor-change`,`error`],setup(e,{expose:i,emit:a}){let o=e,s=a,c=!1,l=0,u=new WeakSet,d=new WeakSet,f=(0,n.ref)(!1),p=(0,n.shallowRef)(null),m=(0,n.ref)(!1),h=(0,n.ref)(o.modelValue),g=(0,n.ref)(),_=(0,n.computed)(()=>o.theme===`dark`),v=(0,n.computed)(()=>o.disabled||o.readonly),y=(0,n.computed)(()=>({height:`${Math.max(80,o.height-42)}px`,overflowY:`hidden`})),b={},x=(0,n.computed)(()=>({placeholder:o.placeholder,readOnly:v.value,autoFocus:!1,sanitizeHtml:t.t})),S=e=>{c||s(`error`,e instanceof Error?e:Error(String(e)))},C=typeof window>`u`?(()=>null):(0,n.defineAsyncComponent)({loader:()=>import(`@wangeditor-next/editor-for-vue`).then(e=>e.Toolbar),onError(e,t,n){S(e),n()}}),w=e=>{if(c){O(e);return}p.value!==e&&O(p.value),p.value=e,m.value=!0,v.value&&e.disable(),s(`editor-mounted`,e)},T=e=>{if(c||e!==p.value||e.isDestroyed)return;let t=e.getHtml();h.value=t,s(`update:modelValue`,t),s(`editor-change`,t)},E=()=>{if(c||m.value)return;let e=++l;h.value=o.modelValue,import(`@wangeditor-next/editor`).then(({createEditor:t})=>{if(c||e!==l||!g.value)return;let n=t({selector:g.value,mode:`default`,html:h.value,config:{...x.value,onChange:T,onCreated:t=>{d.delete(t),c||e!==l?(p.value===t&&(p.value=null),O(t)):w(t)}}});d.add(n),p.value=n,(c||e!==l)&&(p.value=null,O(n))}).catch(t=>{e===l&&S(t)})},D=()=>{l++;let e=p.value;p.value=null,m.value=!1,O(e)};function O(e){if(!(!e||e.isDestroyed||u.has(e))){if(d.delete(e)){queueMicrotask(()=>O(e));return}u.add(e);try{e.destroy()}catch(e){S(e)}}}let k=e=>{let n=t.t(e);h.value=n;try{p.value?.getHtml()!==n&&p.value?.setHtml(n)}catch(e){S(e)}},A=()=>{try{return p.value?.getHtml()??h.value}catch(e){return S(e),h.value}};(0,n.watch)(()=>o.modelValue,e=>{e!==A()&&k(e||``)}),(0,n.watch)(v,e=>{let t=p.value;if(t)try{e?t.disable():t.enable()}catch(e){S(e)}});let j=()=>{f.value=!0},M=()=>{f.value=!1};return(0,n.onMounted)(E),(0,n.onBeforeUnmount)(()=>{c=!0,D()}),i({initializeEditor:E,destroyEditor:D,setContent:k,getContent:A,handleEditorFocus:j,handleEditorBlur:M,editorInstance:(0,n.readonly)(p),isInitialized:(0,n.readonly)(m)}),(t,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{id:e.editorId,class:(0,n.normalizeClass)([`c-editor w-full`,{"editor-dark":_.value,"is-disabled":v.value,"editor-focused":f.value}]),onFocusin:j,onFocusout:M},[(0,n.createVNode)((0,n.unref)(C),{editor:p.value,"default-config":b,mode:`default`,class:`c-editor__toolbar`},null,8,[`editor`]),(0,n.createElementVNode)(`div`,{ref_key:`editorContainer`,ref:g,style:(0,n.normalizeStyle)(y.value)},null,4)],42,r))}});var a=e.t(i,[[`__scopeId`,`data-v-2625824a`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
package/dist/C_Editor2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./export-helper.js";import{t}from"./html.js";import{computed as n,createBlock as r,createElementBlock as i,createVNode as a,defineAsyncComponent as o,defineComponent as s,normalizeClass as c,normalizeStyle as l,onBeforeUnmount as u,openBlock as d,readonly as f,ref as p,shallowRef as m,unref as h,watch as g}from"vue";const _=[`id`];var v=e(s({name:`C_Editor`,__name:`index`,props:{editorId:{},modelValue:{default:``},placeholder:{default:``},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},height:{default:240},theme:{default:`light`}},emits:[`update:modelValue`,`editor-mounted`,`editor-change`,`error`],setup(e,{expose:s,emit:v}){let y=e,b=v,x=p(!1),S=m(null),C=p(!1),w=p(y.modelValue),T=p(0),E=n(()=>y.theme===`dark`),D=n(()=>y.disabled||y.readonly),O=n(()=>({height:`${Math.max(80,y.height-42)}px`,overflowY:`hidden`})),k={},A=n(()=>({placeholder:y.placeholder,readOnly:D.value,autoFocus:!1,sanitizeHtml:t})),j=e=>{b(`error`,e instanceof Error?e:Error(String(e)))},M=e=>typeof window>`u`?(()=>null):o({loader:()=>import(`@wangeditor-next/editor-for-vue`).then(t=>t[e]),onError(e,t,n){j(e),n()}}),N=M(`Editor`),P=M(`Toolbar`),F=e=>{S.value=e,C.value=!0,D.value&&e.disable(),b(`editor-mounted`,e)},I=e=>{let t=e.getHtml();w.value=t,b(`update:modelValue`,t),b(`editor-change`,t)},L=()=>{C.value||(w.value=y.modelValue,T.value+=1)},R=()=>{let e=S.value;if(S.value=null,C.value=!1,!(!e||e.isDestroyed))try{e.destroy()}catch(e){j(e)}},z=e=>{let n=t(e);w.value=n;try{S.value?.getHtml()!==n&&S.value?.setHtml(n)}catch(e){j(e)}},B=()=>{try{return S.value?.getHtml()??w.value}catch(e){return j(e),w.value}};g(()=>y.modelValue,e=>{e!==B()&&z(e||``)}),g(D,e=>{let t=S.value;if(t)try{e?t.disable():t.enable()}catch(e){j(e)}});let V=()=>{x.value=!0},H=()=>{x.value=!1};return u(()=>{R()}),s({initializeEditor:L,destroyEditor:R,setContent:z,getContent:B,handleEditorFocus:V,handleEditorBlur:H,editorInstance:f(S),isInitialized:f(C)}),(t,n)=>(d(),i(`div`,{id:e.editorId,class:c([`c-editor w-full`,{"editor-dark":E.value,"is-disabled":D.value,"editor-focused":x.value}]),onFocusin:V,onFocusout:H},[a(h(P),{editor:S.value,"default-config":k,mode:`default`,class:`c-editor__toolbar`},null,8,[`editor`]),(d(),r(h(N),{key:T.value,modelValue:w.value,"onUpdate:modelValue":n[0]||=e=>w.value=e,"default-config":A.value,mode:`default`,style:l(O.value),onOnCreated:F,onOnChange:I},null,8,[`modelValue`,`default-config`,`style`]))],42,_))}}),[[`__scopeId`,`data-v-b7a5de58`]]);export{v as t};
1
+ import{t as e}from"./export-helper.js";import{t}from"./html.js";import{computed as n,createElementBlock as r,createElementVNode as i,createVNode as a,defineAsyncComponent as o,defineComponent as s,normalizeClass as c,normalizeStyle as l,onBeforeUnmount as u,onMounted as d,openBlock as f,readonly as p,ref as m,shallowRef as h,unref as g,watch as _}from"vue";const v=[`id`];var y=e(s({name:`C_Editor`,__name:`index`,props:{editorId:{},modelValue:{default:``},placeholder:{default:``},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},height:{default:240},theme:{default:`light`}},emits:[`update:modelValue`,`editor-mounted`,`editor-change`,`error`],setup(e,{expose:s,emit:y}){let b=e,x=y,S=!1,C=0,w=new WeakSet,T=new WeakSet,E=m(!1),D=h(null),O=m(!1),k=m(b.modelValue),A=m(),j=n(()=>b.theme===`dark`),M=n(()=>b.disabled||b.readonly),N=n(()=>({height:`${Math.max(80,b.height-42)}px`,overflowY:`hidden`})),P={},F=n(()=>({placeholder:b.placeholder,readOnly:M.value,autoFocus:!1,sanitizeHtml:t})),I=e=>{S||x(`error`,e instanceof Error?e:Error(String(e)))},L=typeof window>`u`?(()=>null):o({loader:()=>import(`@wangeditor-next/editor-for-vue`).then(e=>e.Toolbar),onError(e,t,n){I(e),n()}}),R=e=>{if(S){H(e);return}D.value!==e&&H(D.value),D.value=e,O.value=!0,M.value&&e.disable(),x(`editor-mounted`,e)},z=e=>{if(S||e!==D.value||e.isDestroyed)return;let t=e.getHtml();k.value=t,x(`update:modelValue`,t),x(`editor-change`,t)},B=()=>{if(S||O.value)return;let e=++C;k.value=b.modelValue,import(`@wangeditor-next/editor`).then(({createEditor:t})=>{if(S||e!==C||!A.value)return;let n=t({selector:A.value,mode:`default`,html:k.value,config:{...F.value,onChange:z,onCreated:t=>{T.delete(t),S||e!==C?(D.value===t&&(D.value=null),H(t)):R(t)}}});T.add(n),D.value=n,(S||e!==C)&&(D.value=null,H(n))}).catch(t=>{e===C&&I(t)})},V=()=>{C++;let e=D.value;D.value=null,O.value=!1,H(e)};function H(e){if(!(!e||e.isDestroyed||w.has(e))){if(T.delete(e)){queueMicrotask(()=>H(e));return}w.add(e);try{e.destroy()}catch(e){I(e)}}}let U=e=>{let n=t(e);k.value=n;try{D.value?.getHtml()!==n&&D.value?.setHtml(n)}catch(e){I(e)}},W=()=>{try{return D.value?.getHtml()??k.value}catch(e){return I(e),k.value}};_(()=>b.modelValue,e=>{e!==W()&&U(e||``)}),_(M,e=>{let t=D.value;if(t)try{e?t.disable():t.enable()}catch(e){I(e)}});let G=()=>{E.value=!0},K=()=>{E.value=!1};return d(B),u(()=>{S=!0,V()}),s({initializeEditor:B,destroyEditor:V,setContent:U,getContent:W,handleEditorFocus:G,handleEditorBlur:K,editorInstance:p(D),isInitialized:p(O)}),(t,n)=>(f(),r(`div`,{id:e.editorId,class:c([`c-editor w-full`,{"editor-dark":j.value,"is-disabled":M.value,"editor-focused":E.value}]),onFocusin:G,onFocusout:K},[a(g(L),{editor:D.value,"default-config":P,mode:`default`,class:`c-editor__toolbar`},null,8,[`editor`]),i(`div`,{ref_key:`editorContainer`,ref:A,style:l(N.value)},null,4)],42,v))}}),[[`__scopeId`,`data-v-2625824a`]]);export{y as t};
@@ -1 +1 @@
1
- const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./html.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`xlsx`);o=e.t(o);let s=require(`mammoth`);s=e.t(s);const c={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},l={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},u={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},d=[20,50,100,200],f=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],p=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},m=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},h=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&c[t]||`unknown`},g=e=>l[e]||l.unknown,_=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},v=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},y=e=>e==null?``:String(e),b=1e5,x=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`};function S(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<=0)throw Error(`previewLimits.${n} 必须为有限正整数`);return e}function C(e,t){let n=t?.isMain?t:{rowspan:1,colspan:1};return{value:e?.v??``,displayValue:e?e.w??o.utils.format_cell(e):``,type:e?.t,merged:!!t,hidden:!!(t&&!t.isMain),rowspan:n.rowspan,colspan:n.colspan}}function w(e,t,n){let{s:r,e:i}=e;return[r.r,r.c,i.r,i.c].every(Number.isSafeInteger)&&r.r>=0&&r.c>=0&&i.r<=t&&i.c<=n&&i.r>=r.r&&i.c>=r.c}const T=(e,t,n=b)=>{let{c:r,r:i}=o.utils.decode_range(e[`!ref`]||`A1:A1`).e,a=(r+1)*(i+1);if(!Number.isSafeInteger(a)||a<1||a>S(n,b,`maxCells`))throw Error(`工作表范围超过 ${n.toLocaleString()} 个单元格的预览上限,请下载文件查看`);let s=Array.from({length:r+1},(t,n)=>{let r=e[o.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),c=new Map,l=0;return t.forEach(e=>{if(!w(e,i,r))return;let{s:{r:t,c:n},e:{r:o,c:s}}=e;if(l+=(o-t+1)*(s-n+1),!Number.isSafeInteger(l)||l>a)throw Error(`合并单元格累计范围超过预览上限,请下载文件查看`);for(let e=t;e<=o;e++)for(let r=n;r<=s;r++)c.set(`${e}-${r}`,{isMain:e===t&&r===n,rowspan:o-t+1,colspan:s-n+1})}),{data:Array.from({length:i+1},(t,n)=>{let i={};for(let t=0;t<=r;t++){let r=e[o.utils.encode_cell({r:n,c:t})],a=c.get(`${n}-${t}`);i[`col_${t}`]=C(r,a)}return i}),columns:s}};async function E(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function D(e){let t=await e.arrayBuffer(),n=await s.default.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=r.t(n.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function O(e,t={}){let n=S(t.maxBytes,33554432,`maxBytes`),r=S(t.maxCells,b,`maxCells`);if(e.size>n)throw Error(`Excel 文件超过 ${m(n)} 的预览上限,请下载文件查看`);let i=await e.arrayBuffer(),a=o.read(i,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!a.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);let s=a.SheetNames.map(e=>{let t=a.Sheets[e],n=t[`!merges`]||[];return{name:e,data:[],merges:n,columns:[],load:()=>T(t,n,r)}});return Object.assign(s[0],s[0].load?.()),{sheets:s}}const k={class:`file-container pdf-container`},A={class:`file-toolbar`},j={class:`file-viewer`},M=[`src`],N=(0,i.defineComponent)({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,k,[(0,i.createElementVNode)(`div`,A,[n[1]||=(0,i.createElementVNode)(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NButton),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:(0,i.withCtx)(()=>[...n[0]||=[(0,i.createTextVNode)(`在新标签页打开`,-1)]]),_:1},8,[`href`])):(0,i.createCommentVNode)(`v-if`,!0)]),(0,i.createElementVNode)(`div`,j,[e.pdfUrl?((0,i.openBlock)(),(0,i.createElementBlock)(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,M)):(0,i.createCommentVNode)(`v-if`,!0)])]))}});var P=n.t(N,[[`__scopeId`,`data-v-db027bb4`]]);const F={class:`file-container word-container`},I={class:`file-toolbar`},L={class:`flex gap-2 items-center`},ee={class:`text-sm text-gray-600 min-w-12 text-center`},te={class:`word-layout`},ne={class:`word-main`},re={key:0,class:`word-outline`},ie={class:`outline-content`},ae=[`onClick`],R={class:`word-content`},z=[`innerHTML`],B=(0,i.defineComponent)({__name:`index`,props:{content:{},headings:{}},setup(e){let n=(0,i.ref)(!0),r=(0,i.ref)(100),o=_(r,u.word),s=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(c,l)=>{let u=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,F,[(0,i.createElementVNode)(`div`,I,[(0,i.createElementVNode)(`div`,L,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[0]||=e=>n.value=!n.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-list`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{vertical:``}),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value<=50,onClick:l[1]||=e=>(0,i.unref)(o)(`out`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),(0,i.createElementVNode)(`span`,ee,(0,i.toDisplayString)(r.value)+`% `,1),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value>=200,onClick:l[2]||=e=>(0,i.unref)(o)(`in`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[3]||=e=>(0,i.unref)(o)(`reset`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-fit-screen`})]),default:(0,i.withCtx)(()=>[l[4]||=(0,i.createTextVNode)(` 重置 `,-1)]),_:1})])]),(0,i.createElementVNode)(`div`,te,[(0,i.createElementVNode)(`div`,ne,[(0,i.createCommentVNode)(` 侧边栏目录 `),n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,re,[l[5]||=(0,i.createElementVNode)(`div`,{class:`outline-header`},[(0,i.createElementVNode)(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),(0,i.createElementVNode)(`div`,ie,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.headings,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:(0,i.normalizeClass)([`outline-item`,`level-${e.level}`]),onClick:t=>s(e.id)},(0,i.toDisplayString)(e.text),11,ae))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 主要内容区域 `),(0,i.createElementVNode)(`div`,R,[(0,i.createElementVNode)(`div`,{class:`word-document`,style:(0,i.normalizeStyle)({transform:`scale(${r.value/100})`,transformOrigin:`top center`}),innerHTML:e.content},null,12,z)])])])])}}});var V=n.t(B,[[`__scopeId`,`data-v-dae08a5f`]]);const H={class:`file-container excel-container`},U={class:`file-toolbar`},W={class:`flex justify-between items-center`},G={class:`flex gap-2 items-center`},K={key:1,class:`text-sm text-gray-600`},q={class:`flex gap-2 items-center`},J={class:`excel-viewer`},oe={key:0,class:`excel-info`},se={class:`excel-table-container`},ce={key:0,class:`excel-table`},le={class:`header-content`},ue={class:`column-letter`},de={class:`column-title`},fe={class:`row-number`},pe=[`rowspan`,`colspan`,`title`],me={key:1,class:`excel-empty`},he={key:0,class:`excel-pagination`},ge=(0,i.defineComponent)({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(e){let n=e,r=(0,i.ref)(``),o=(0,i.ref)(``),s=(0,i.ref)(!1),c=(0,i.ref)(1),l=(0,i.ref)(50),u=(0,i.ref)([]),f=(0,i.ref)([]),p=(0,i.computed)(()=>Math.ceil(u.value.length/l.value)),m=(0,i.computed)(()=>{let e=(c.value-1)*l.value;return u.value.slice(e,e+l.value)}),h=e=>{l.value=e,c.value=1},g=e=>{o.value=``,u.value=[],f.value=[],c.value=1;let t=n.sheets.find(t=>t.name===e);if(t)try{let e=t.data.length>0?t:t.load?.()??t;u.value=e.data,f.value=e.columns}catch(e){o.value=e instanceof Error?e.message:`工作表解析失败`}};return(0,i.watch)(r,e=>{g(e)}),(0,i.watch)(()=>n.sheets,e=>{r.value=e[0]?.name??``,g(r.value)},{immediate:!0}),(n,g)=>{let _=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,H,[(0,i.createCommentVNode)(` 工具栏 `),(0,i.createElementVNode)(`div`,U,[(0,i.createElementVNode)(`div`,W,[(0,i.createElementVNode)(`div`,G,[e.sheets.length>1?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabs),{key:0,value:r.value,"onUpdate:value":g[0]||=e=>r.value=e,type:`card`,size:`small`},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.sheets,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabPane),{key:e.name,name:e.name},{tab:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.name),1)]),_:2},1032,[`name`]))),128))]),_:1},8,[`value`])):((0,i.openBlock)(),(0,i.createElementBlock)(`span`,K,` 工作表: `+(0,i.toDisplayString)(r.value),1))]),(0,i.createElementVNode)(`div`,q,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:g[1]||=e=>s.value=!s.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(_,{name:`ic:outline-format-paint`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(s.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),(0,i.createElementVNode)(`div`,J,[(0,i.createCommentVNode)(` 信息面板 `),u.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,oe,[(0,i.createVNode)((0,i.unref)(a.NText),{depth:`3`,class:`text-sm`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 当前工作表: `+(0,i.toDisplayString)(r.value)+` | 总行数: `+(0,i.toDisplayString)(u.value.length)+` | 总列数: `+(0,i.toDisplayString)(f.value.length)+` | 当前页: `+(0,i.toDisplayString)(c.value)+`/`+(0,i.toDisplayString)(p.value),1)]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表格 `),(0,i.createElementVNode)(`div`,se,[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`excel-table-wrapper`,{"simple-mode":!s.value}])},[u.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`table`,ce,[(0,i.createElementVNode)(`thead`,null,[(0,i.createElementVNode)(`tr`,null,[g[4]||=(0,i.createElementVNode)(`th`,{class:`row-number`},`行号`,-1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(f.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`th`,{key:e.key,class:`excel-header`,style:(0,i.normalizeStyle)({minWidth:e.width+`px`})},[(0,i.createElementVNode)(`div`,le,[(0,i.createElementVNode)(`span`,ue,(0,i.toDisplayString)((0,i.unref)(v)(t)),1),(0,i.createElementVNode)(`span`,de,(0,i.toDisplayString)(e.title),1)])],4))),128))])]),(0,i.createElementVNode)(`tbody`,null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(m.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`tr`,{key:t,class:`excel-row`},[(0,i.createElementVNode)(`td`,fe,(0,i.toDisplayString)((c.value-1)*l.value+t+1),1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(f.value,t=>(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`td`,{key:t.key,class:(0,i.normalizeClass)([`excel-cell`,[(0,i.unref)(x)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,s.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.displayValue??(0,i.unref)(y)(e[t.key]?.value)},(0,i.toDisplayString)(e[t.key]?.displayValue??(0,i.unref)(y)(e[t.key]?.value)),11,pe)),[[i.vShow,!e[t.key]?.hidden]])),128))]))),128))])])):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,me,[(0,i.createVNode)((0,i.unref)(a.NEmpty),{description:o.value||`该工作表没有数据或解析失败`},{extra:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:g[2]||=e=>n.$emit(`reload`)},{default:(0,i.withCtx)(()=>[...g[5]||=[(0,i.createTextVNode)(` 重新解析 `,-1)]]),_:1})]),_:1},8,[`description`])]))],2),(0,i.createCommentVNode)(` 分页 `),p.value>1?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,he,[(0,i.createVNode)((0,i.unref)(a.NPagination),{page:c.value,"onUpdate:page":g[3]||=e=>c.value=e,"page-count":p.value,"page-size":l.value,"show-size-picker":``,"page-sizes":(0,i.unref)(d),"onUpdate:pageSize":h},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):(0,i.createCommentVNode)(`v-if`,!0)])])])}}});var Y=n.t(ge,[[`__scopeId`,`data-v-5a0226ce`]]);function X(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Z(e,t){let{file:n,url:r,fileName:a,previewLimits:o}=e,s=(0,i.ref)(!1),c=(0,i.ref)(``),l=(0,i.ref)(0),u=(0,i.ref)(!1),d=(0,i.ref)(``),f=(0,i.ref)(0),m=(0,i.ref)(``),_=(0,i.ref)([]),v=(0,i.ref)([]),y=0,b=null,x=!1,S=(e,t)=>e===y&&!x&&!t.signal.aborted,C=(0,i.computed)(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?p(r.value):`未知文件`),w=(0,i.computed)(()=>h(C.value)),T=(0,i.computed)(()=>g(w.value)),k=(0,i.computed)(()=>!!(n.value||r.value)),A=()=>{let e=d.value;d.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},j=()=>{c.value=``,s.value=!1,l.value=0,A(),f.value=0,m.value=``,_.value=[],v.value=[]},M=e=>{c.value=e,s.value=!1},N=()=>{y+=1,b?.abort(),b=null,j()},P=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=X(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],C.value,{type:r.type})}throw Error(`未提供文件或URL`)},F=async(e,t,n)=>{switch(t){case`pdf`:{let t=await E(e);if(n!==y){URL.revokeObjectURL(t.url.split(`#`)[0]);return}d.value=t.url,f.value=t.totalPages;break}case`word`:{let t=await D(e);if(n!==y)return;m.value=t.content,_.value=t.headings;break}case`excel`:{let t=await O(e,o?.value);if(n!==y)return;v.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},I=async()=>{if(x)return!1;let e=++y;b?.abort();let t=new AbortController;if(b=t,j(),!k.value)return b=null,!1;s.value=!0;try{let n=w.value,r=await P(t.signal);return e===y?(l.value=r.size,await F(r,n,e),S(e,t)):!1}catch(n){if(!S(e,t))return!1;let r=n instanceof Error?n.message:`未知错误`;return M(`${w.value.toUpperCase()}文件加载失败: ${r}`),!1}finally{e===y&&(s.value=!1,b=null)}};return(0,i.watch)([n,r],([e,t])=>{!e&&!t&&N()},{flush:`sync`}),(0,i.watch)(()=>n.value?.size,e=>{l.value=e||0},{immediate:!0}),(0,i.onUnmounted)(()=>{x=!0,N()}),{loading:s,error:c,fileSize:l,showModal:u,hasSource:k,pdfUrl:d,pdfTotalPages:f,wordContent:m,wordHeadings:_,excelSheets:v,displayFileName:C,fileType:w,fileConfig:T,loadFile:I,openPreview:async()=>{if(x)return;let e=n.value||r.value;u.value=!0,await I()&&e&&e===(n.value||r.value)&&!x&&t(`preview`,e)},downloadFile:()=>{let e=n.value||r.value;if(!(x||!e)){if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:C.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=X(r.value,window.location.href);if(!e){M(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,e)}},clearPreview:N}}function Q(e){let t=(0,i.ref)(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return(0,i.onMounted)(()=>{f.forEach(e=>document.addEventListener(e,n))}),(0,i.onUnmounted)(()=>{f.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const _e={class:`c-file-preview-wrapper`},ve={key:0,class:`file-info-card`},ye={class:`file-info`},be={class:`file-icon`},xe={class:`file-details`},Se={class:`file-name`},Ce={class:`file-meta`},we={class:`file-size`},Te={class:`file-actions`},Ee={key:1,class:`c-file-preview-inline`},De={key:1,class:`status-container`,role:`status`},$={class:`modal-header`},Oe={class:`modal-title`},ke={class:`modal-actions`},Ae={class:`modal-content`},je={class:`preview-header`},Me={class:`flex justify-between items-center`},Ne={class:`flex items-center gap-3`},Pe={class:`text-sm text-gray-500`},Fe={class:`flex gap-2`},Ie={class:`preview-content`},Le={key:1,class:`status-container`},Re=(0,i.defineComponent)({name:`C_FilePreview`,__name:`index`,props:{previewLimits:{},file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(e,{emit:n}){let r=e,{file:o,url:s,fileName:c,autoPreview:l,inline:u,previewLimits:d}=(0,i.toRefs)(r),{loading:f,error:p,fileSize:h,showModal:g,hasSource:_,pdfUrl:v,pdfTotalPages:y,wordContent:b,wordHeadings:x,excelSheets:S,displayFileName:C,fileType:w,fileConfig:T,loadFile:E,openPreview:D,downloadFile:O}=Z({file:o,url:s,fileName:c,previewLimits:d},n),k=(0,i.ref)(),{isFullscreen:A,toggleFullscreen:j,exitFullscreen:M}=Q(k);return(0,i.watch)(g,e=>{e||M()}),(0,i.watch)([o,s,l,u,c,()=>r.previewLimits?.maxBytes,()=>r.previewLimits?.maxCells],(e,t)=>{if(!(typeof window>`u`||!_.value)){if(u.value){E();return}if(g.value){[0,1,4,5,6].some(n=>e[n]!==t?.[n])&&E();return}l.value&&D()}},{immediate:!0}),(e,n)=>{let r=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,_e,[(0,i.createCommentVNode)(` 文件信息卡片模式 `),!(0,i.unref)(l)&&!(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ve,[(0,i.createElementVNode)(`div`,ye,[(0,i.createElementVNode)(`div`,be,[(0,i.createVNode)(r,{name:(0,i.unref)(T).icon,size:40,color:(0,i.unref)(T).color},null,8,[`name`,`color`])]),(0,i.createElementVNode)(`div`,xe,[(0,i.createElementVNode)(`div`,Se,[(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`250px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(C)),1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(T).tagType,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(w).toUpperCase()),1)]),_:1},8,[`type`])]),(0,i.createElementVNode)(`div`,Ce,[(0,i.createElementVNode)(`span`,we,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(h))),1)])]),(0,i.createElementVNode)(`div`,Te,[(0,i.createVNode)((0,i.unref)(a.NButton),{type:`primary`,onClick:(0,i.unref)(D)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-visibility`})]),default:(0,i.withCtx)(()=>[n[2]||=(0,i.createTextVNode)(` 预览 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{type:`tertiary`,onClick:(0,i.unref)(O)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[3]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ee,[(0,i.unref)(_)?(0,i.unref)(f)||(0,i.unref)(p)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,De,[(0,i.unref)(f)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[...n[4]||=[(0,i.createTextVNode)(`正在加载文档…`,-1)]]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(p)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:(0,i.unref)(E)},{default:(0,i.withCtx)(()=>[...n[5]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(0,i.unref)(w)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(P,{key:2,"pdf-url":(0,i.unref)(v),"total-pages":(0,i.unref)(y)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(w)===`word`?((0,i.openBlock)(),(0,i.createBlock)(V,{key:3,content:(0,i.unref)(b),headings:(0,i.unref)(x)},null,8,[`content`,`headings`])):(0,i.unref)(w)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:4,sheets:(0,i.unref)(S),onReload:(0,i.unref)(E)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:5,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 模态框预览 `),(0,i.unref)(u)?(0,i.createCommentVNode)(`v-if`,!0):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NModal),{key:2,show:(0,i.unref)(g),"onUpdate:show":n[1]||=e=>(0,i.isRef)(g)?g.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{ref_key:`modalContainer`,ref:k,class:`modal-container`},[(0,i.createCommentVNode)(` 自定义头部 `),(0,i.createElementVNode)(`div`,$,[(0,i.createElementVNode)(`div`,Oe,[(0,i.createVNode)(r,{name:(0,i.unref)(T).icon,size:20,color:(0,i.unref)(T).color},null,8,[`name`,`color`]),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)((0,i.unref)(C)),1)]),(0,i.createElementVNode)(`div`,ke,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:(0,i.unref)(O)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[6]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>g.value=!1},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-close`})]),_:1})])]),(0,i.createCommentVNode)(` 预览内容 `),(0,i.createElementVNode)(`div`,Ae,[(0,i.createCommentVNode)(` 文件信息头部 `),(0,i.createElementVNode)(`div`,je,[(0,i.createElementVNode)(`div`,Me,[(0,i.createElementVNode)(`div`,Ne,[(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(T).tagType,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(T).icon},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(w).toUpperCase()),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`300px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(C)),1)]),_:1}),(0,i.createElementVNode)(`span`,Pe,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(h))),1)]),(0,i.createElementVNode)(`div`,Fe,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,disabled:(0,i.unref)(f),onClick:(0,i.unref)(E)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-refresh`})]),default:(0,i.withCtx)(()=>[n[7]||=(0,i.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`primary`,onClick:(0,i.unref)(j)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(A)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(A)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),(0,i.createCommentVNode)(` 预览内容区域 `),(0,i.createElementVNode)(`div`,Ie,[(0,i.createCommentVNode)(` 加载和错误状态 `),(0,i.unref)(_)?(0,i.unref)(f)||(0,i.unref)(p)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Le,[(0,i.unref)(f)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 正在加载`+(0,i.toDisplayString)((0,i.unref)(w).toUpperCase())+`文件... `,1)]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(p)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(E)},{default:(0,i.withCtx)(()=>[...n[8]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:2},[(0,i.createCommentVNode)(` 文件预览 — 委托给子组件 `),(0,i.unref)(w)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(P,{key:0,"pdf-url":(0,i.unref)(v),"total-pages":(0,i.unref)(y)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(w)===`word`?((0,i.openBlock)(),(0,i.createBlock)(V,{key:1,content:(0,i.unref)(b),headings:(0,i.unref)(x)},null,8,[`content`,`headings`])):(0,i.unref)(w)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:2,sheets:(0,i.unref)(S),onReload:(0,i.unref)(E)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:3},[(0,i.createCommentVNode)(` 不支持的文件类型 `),(0,i.createVNode)((0,i.unref)(a.NResult),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${(0,i.unref)(w).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64)):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])])],512)]),_:1},8,[`show`]))])}}});var ze=n.t(Re,[[`__scopeId`,`data-v-3988cd59`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ze}});
1
+ const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./html.cjs`),i=require(`./xlsx2.cjs`);let a=require(`vue`),o=require(`naive-ui`),s=require(`mammoth`);s=e.n(s);const c={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},l={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},u={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},d=[20,50,100,200],f=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],p=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},m=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},h=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&c[t]||`unknown`},g=e=>l[e]||l.unknown,_=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},v=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},y=e=>e==null?``:String(e),b=1e5,x=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`};function S(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<=0)throw Error(`previewLimits.${n} 必须为有限正整数`);return e}function C(e,t){let n=t?.isMain?t:{rowspan:1,colspan:1};return{value:e?.v??``,displayValue:e?e.w??i.n.format_cell(e):``,type:e?.t,merged:!!t,hidden:!!(t&&!t.isMain),rowspan:n.rowspan,colspan:n.colspan}}function w(e,t,n){let{s:r,e:i}=e;return[r.r,r.c,i.r,i.c].every(Number.isSafeInteger)&&r.r>=0&&r.c>=0&&i.r<=t&&i.c<=n&&i.r>=r.r&&i.c>=r.c}const T=(e,t,n=b)=>{let{c:r,r:a}=i.n.decode_range(e[`!ref`]||`A1:A1`).e,o=(r+1)*(a+1);if(!Number.isSafeInteger(o)||o<1||o>S(n,b,`maxCells`))throw Error(`工作表范围超过 ${n.toLocaleString()} 个单元格的预览上限,请下载文件查看`);let s=Array.from({length:r+1},(t,n)=>{let r=e[i.n.encode_cell({r:0,c:n})],a=r?String(r.v??``).trim():`列${n+1}`;return{title:a||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(a.length*12,80),200)}}),c=new Map,l=0;return t.forEach(e=>{if(!w(e,a,r))return;let{s:{r:t,c:n},e:{r:i,c:s}}=e;if(l+=(i-t+1)*(s-n+1),!Number.isSafeInteger(l)||l>o)throw Error(`合并单元格累计范围超过预览上限,请下载文件查看`);for(let e=t;e<=i;e++)for(let r=n;r<=s;r++)c.set(`${e}-${r}`,{isMain:e===t&&r===n,rowspan:i-t+1,colspan:s-n+1})}),{data:Array.from({length:a+1},(t,n)=>{let a={};for(let t=0;t<=r;t++){let r=e[i.n.encode_cell({r:n,c:t})],o=c.get(`${n}-${t}`);a[`col_${t}`]=C(r,o)}return a}),columns:s}};async function E(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function D(e){let t=await e.arrayBuffer(),n=await s.default.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=r.t(n.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function O(e,t={}){let n=S(t.maxBytes,33554432,`maxBytes`),r=S(t.maxCells,b,`maxCells`);if(e.size>n)throw Error(`Excel 文件超过 ${m(n)} 的预览上限,请下载文件查看`);let a=await e.arrayBuffer(),o=i.t(a,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!o.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);let s=o.SheetNames.map(e=>{let t=o.Sheets[e],n=t[`!merges`]||[];return{name:e,data:[],merges:n,columns:[],load:()=>T(t,n,r)}});return Object.assign(s[0],s[0].load?.()),{sheets:s}}const k={class:`file-container pdf-container`},A={class:`file-toolbar`},j={class:`file-viewer`},M=[`src`],N=(0,a.defineComponent)({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,k,[(0,a.createElementVNode)(`div`,A,[n[1]||=(0,a.createElementVNode)(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NButton),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:(0,a.withCtx)(()=>[...n[0]||=[(0,a.createTextVNode)(`在新标签页打开`,-1)]]),_:1},8,[`href`])):(0,a.createCommentVNode)(`v-if`,!0)]),(0,a.createElementVNode)(`div`,j,[e.pdfUrl?((0,a.openBlock)(),(0,a.createElementBlock)(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,M)):(0,a.createCommentVNode)(`v-if`,!0)])]))}});var P=n.t(N,[[`__scopeId`,`data-v-db027bb4`]]);const F={class:`file-container word-container`},I={class:`file-toolbar`},L={class:`flex gap-2 items-center`},ee={class:`text-sm text-gray-600 min-w-12 text-center`},te={class:`word-layout`},ne={class:`word-main`},re={key:0,class:`word-outline`},ie={class:`outline-content`},ae=[`onClick`],R={class:`word-content`},z=[`innerHTML`],B=(0,a.defineComponent)({__name:`index`,props:{content:{},headings:{}},setup(e){let n=(0,a.ref)(!0),r=(0,a.ref)(100),i=_(r,u.word),s=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(c,l)=>{let u=t.t;return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,F,[(0,a.createElementVNode)(`div`,I,[(0,a.createElementVNode)(`div`,L,[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,onClick:l[0]||=e=>n.value=!n.value},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(u,{name:`ic:outline-list`})]),default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` `+(0,a.toDisplayString)(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),(0,a.createVNode)((0,a.unref)(o.NDivider),{vertical:``}),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,disabled:r.value<=50,onClick:l[1]||=e=>(0,a.unref)(i)(`out`)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(u,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),(0,a.createElementVNode)(`span`,ee,(0,a.toDisplayString)(r.value)+`% `,1),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,disabled:r.value>=200,onClick:l[2]||=e=>(0,a.unref)(i)(`in`)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(u,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,onClick:l[3]||=e=>(0,a.unref)(i)(`reset`)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(u,{name:`ic:outline-fit-screen`})]),default:(0,a.withCtx)(()=>[l[4]||=(0,a.createTextVNode)(` 重置 `,-1)]),_:1})])]),(0,a.createElementVNode)(`div`,te,[(0,a.createElementVNode)(`div`,ne,[(0,a.createCommentVNode)(` 侧边栏目录 `),n.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,re,[l[5]||=(0,a.createElementVNode)(`div`,{class:`outline-header`},[(0,a.createElementVNode)(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),(0,a.createElementVNode)(`div`,ie,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.headings,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:t,class:(0,a.normalizeClass)([`outline-item`,`level-${e.level}`]),onClick:t=>s(e.id)},(0,a.toDisplayString)(e.text),11,ae))),128))])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 主要内容区域 `),(0,a.createElementVNode)(`div`,R,[(0,a.createElementVNode)(`div`,{class:`word-document`,style:(0,a.normalizeStyle)({transform:`scale(${r.value/100})`,transformOrigin:`top center`}),innerHTML:e.content},null,12,z)])])])])}}});var V=n.t(B,[[`__scopeId`,`data-v-dae08a5f`]]);const H={class:`file-container excel-container`},U={class:`file-toolbar`},W={class:`flex justify-between items-center`},G={class:`flex gap-2 items-center`},K={key:1,class:`text-sm text-gray-600`},q={class:`flex gap-2 items-center`},J={class:`excel-viewer`},oe={key:0,class:`excel-info`},se={class:`excel-table-container`},ce={key:0,class:`excel-table`},le={class:`header-content`},ue={class:`column-letter`},de={class:`column-title`},fe={class:`row-number`},pe=[`rowspan`,`colspan`,`title`],me={key:1,class:`excel-empty`},he={key:0,class:`excel-pagination`},ge=(0,a.defineComponent)({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(e){let n=e,r=(0,a.ref)(``),i=(0,a.ref)(``),s=(0,a.ref)(!1),c=(0,a.ref)(1),l=(0,a.ref)(50),u=(0,a.ref)([]),f=(0,a.ref)([]),p=(0,a.computed)(()=>Math.ceil(u.value.length/l.value)),m=(0,a.computed)(()=>{let e=(c.value-1)*l.value;return u.value.slice(e,e+l.value)}),h=e=>{l.value=e,c.value=1},g=e=>{i.value=``,u.value=[],f.value=[],c.value=1;let t=n.sheets.find(t=>t.name===e);if(t)try{let e=t.data.length>0?t:t.load?.()??t;u.value=e.data,f.value=e.columns}catch(e){i.value=e instanceof Error?e.message:`工作表解析失败`}};return(0,a.watch)(r,e=>{g(e)}),(0,a.watch)(()=>n.sheets,e=>{r.value=e[0]?.name??``,g(r.value)},{immediate:!0}),(n,g)=>{let _=t.t;return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,H,[(0,a.createCommentVNode)(` 工具栏 `),(0,a.createElementVNode)(`div`,U,[(0,a.createElementVNode)(`div`,W,[(0,a.createElementVNode)(`div`,G,[e.sheets.length>1?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NTabs),{key:0,value:r.value,"onUpdate:value":g[0]||=e=>r.value=e,type:`card`,size:`small`},{default:(0,a.withCtx)(()=>[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.sheets,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NTabPane),{key:e.name,name:e.name},{tab:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.name),1)]),_:2},1032,[`name`]))),128))]),_:1},8,[`value`])):((0,a.openBlock)(),(0,a.createElementBlock)(`span`,K,` 工作表: `+(0,a.toDisplayString)(r.value),1))]),(0,a.createElementVNode)(`div`,q,[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,onClick:g[1]||=e=>s.value=!s.value},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(_,{name:`ic:outline-format-paint`})]),default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` `+(0,a.toDisplayString)(s.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),(0,a.createElementVNode)(`div`,J,[(0,a.createCommentVNode)(` 信息面板 `),u.value.length>0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,oe,[(0,a.createVNode)((0,a.unref)(o.NText),{depth:`3`,class:`text-sm`},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` 当前工作表: `+(0,a.toDisplayString)(r.value)+` | 总行数: `+(0,a.toDisplayString)(u.value.length)+` | 总列数: `+(0,a.toDisplayString)(f.value.length)+` | 当前页: `+(0,a.toDisplayString)(c.value)+`/`+(0,a.toDisplayString)(p.value),1)]),_:1})])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 表格 `),(0,a.createElementVNode)(`div`,se,[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`excel-table-wrapper`,{"simple-mode":!s.value}])},[u.value.length>0?((0,a.openBlock)(),(0,a.createElementBlock)(`table`,ce,[(0,a.createElementVNode)(`thead`,null,[(0,a.createElementVNode)(`tr`,null,[g[4]||=(0,a.createElementVNode)(`th`,{class:`row-number`},`行号`,-1),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(f.value,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`th`,{key:e.key,class:`excel-header`,style:(0,a.normalizeStyle)({minWidth:e.width+`px`})},[(0,a.createElementVNode)(`div`,le,[(0,a.createElementVNode)(`span`,ue,(0,a.toDisplayString)((0,a.unref)(v)(t)),1),(0,a.createElementVNode)(`span`,de,(0,a.toDisplayString)(e.title),1)])],4))),128))])]),(0,a.createElementVNode)(`tbody`,null,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(m.value,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`tr`,{key:t,class:`excel-row`},[(0,a.createElementVNode)(`td`,fe,(0,a.toDisplayString)((c.value-1)*l.value+t+1),1),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(f.value,t=>(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createElementBlock)(`td`,{key:t.key,class:(0,a.normalizeClass)([`excel-cell`,[(0,a.unref)(x)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,s.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.displayValue??(0,a.unref)(y)(e[t.key]?.value)},(0,a.toDisplayString)(e[t.key]?.displayValue??(0,a.unref)(y)(e[t.key]?.value)),11,pe)),[[a.vShow,!e[t.key]?.hidden]])),128))]))),128))])])):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,me,[(0,a.createVNode)((0,a.unref)(o.NEmpty),{description:i.value||`该工作表没有数据或解析失败`},{extra:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,onClick:g[2]||=e=>n.$emit(`reload`)},{default:(0,a.withCtx)(()=>[...g[5]||=[(0,a.createTextVNode)(` 重新解析 `,-1)]]),_:1})]),_:1},8,[`description`])]))],2),(0,a.createCommentVNode)(` 分页 `),p.value>1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,he,[(0,a.createVNode)((0,a.unref)(o.NPagination),{page:c.value,"onUpdate:page":g[3]||=e=>c.value=e,"page-count":p.value,"page-size":l.value,"show-size-picker":``,"page-sizes":(0,a.unref)(d),"onUpdate:pageSize":h},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):(0,a.createCommentVNode)(`v-if`,!0)])])])}}});var Y=n.t(ge,[[`__scopeId`,`data-v-5a0226ce`]]);function X(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Z(e,t){let{file:n,url:r,fileName:i,previewLimits:o}=e,s=(0,a.ref)(!1),c=(0,a.ref)(``),l=(0,a.ref)(0),u=(0,a.ref)(!1),d=(0,a.ref)(``),f=(0,a.ref)(0),m=(0,a.ref)(``),_=(0,a.ref)([]),v=(0,a.ref)([]),y=0,b=null,x=!1,S=(e,t)=>e===y&&!x&&!t.signal.aborted,C=(0,a.computed)(()=>i.value&&i.value!==`未知文件`?i.value:n.value?.name?n.value.name:r.value?p(r.value):`未知文件`),w=(0,a.computed)(()=>h(C.value)),T=(0,a.computed)(()=>g(w.value)),k=(0,a.computed)(()=>!!(n.value||r.value)),A=()=>{let e=d.value;d.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},j=()=>{c.value=``,s.value=!1,l.value=0,A(),f.value=0,m.value=``,_.value=[],v.value=[]},M=e=>{c.value=e,s.value=!1},N=()=>{y+=1,b?.abort(),b=null,j()},P=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=X(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],C.value,{type:r.type})}throw Error(`未提供文件或URL`)},F=async(e,t,n)=>{switch(t){case`pdf`:{let t=await E(e);if(n!==y){URL.revokeObjectURL(t.url.split(`#`)[0]);return}d.value=t.url,f.value=t.totalPages;break}case`word`:{let t=await D(e);if(n!==y)return;m.value=t.content,_.value=t.headings;break}case`excel`:{let t=await O(e,o?.value);if(n!==y)return;v.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},I=async()=>{if(x)return!1;let e=++y;b?.abort();let t=new AbortController;if(b=t,j(),!k.value)return b=null,!1;s.value=!0;try{let n=w.value,r=await P(t.signal);return e===y?(l.value=r.size,await F(r,n,e),S(e,t)):!1}catch(n){if(!S(e,t))return!1;let r=n instanceof Error?n.message:`未知错误`;return M(`${w.value.toUpperCase()}文件加载失败: ${r}`),!1}finally{e===y&&(s.value=!1,b=null)}};return(0,a.watch)([n,r],([e,t])=>{!e&&!t&&N()},{flush:`sync`}),(0,a.watch)(()=>n.value?.size,e=>{l.value=e||0},{immediate:!0}),(0,a.onUnmounted)(()=>{x=!0,N()}),{loading:s,error:c,fileSize:l,showModal:u,hasSource:k,pdfUrl:d,pdfTotalPages:f,wordContent:m,wordHeadings:_,excelSheets:v,displayFileName:C,fileType:w,fileConfig:T,loadFile:I,openPreview:async()=>{if(x)return;let e=n.value||r.value;u.value=!0,await I()&&e&&e===(n.value||r.value)&&!x&&t(`preview`,e)},downloadFile:()=>{let e=n.value||r.value;if(!(x||!e)){if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:C.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=X(r.value,window.location.href);if(!e){M(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,e)}},clearPreview:N}}function Q(e){let t=(0,a.ref)(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return(0,a.onMounted)(()=>{f.forEach(e=>document.addEventListener(e,n))}),(0,a.onUnmounted)(()=>{f.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const _e={class:`c-file-preview-wrapper`},ve={key:0,class:`file-info-card`},ye={class:`file-info`},be={class:`file-icon`},xe={class:`file-details`},Se={class:`file-name`},Ce={class:`file-meta`},we={class:`file-size`},Te={class:`file-actions`},Ee={key:1,class:`c-file-preview-inline`},De={key:1,class:`status-container`,role:`status`},$={class:`modal-header`},Oe={class:`modal-title`},ke={class:`modal-actions`},Ae={class:`modal-content`},je={class:`preview-header`},Me={class:`flex justify-between items-center`},Ne={class:`flex items-center gap-3`},Pe={class:`text-sm text-gray-500`},Fe={class:`flex gap-2`},Ie={class:`preview-content`},Le={key:1,class:`status-container`},Re=(0,a.defineComponent)({name:`C_FilePreview`,__name:`index`,props:{previewLimits:{},file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(e,{emit:n}){let r=e,{file:i,url:s,fileName:c,autoPreview:l,inline:u,previewLimits:d}=(0,a.toRefs)(r),{loading:f,error:p,fileSize:h,showModal:g,hasSource:_,pdfUrl:v,pdfTotalPages:y,wordContent:b,wordHeadings:x,excelSheets:S,displayFileName:C,fileType:w,fileConfig:T,loadFile:E,openPreview:D,downloadFile:O}=Z({file:i,url:s,fileName:c,previewLimits:d},n),k=(0,a.ref)(),{isFullscreen:A,toggleFullscreen:j,exitFullscreen:M}=Q(k);return(0,a.watch)(g,e=>{e||M()}),(0,a.watch)([i,s,l,u,c,()=>r.previewLimits?.maxBytes,()=>r.previewLimits?.maxCells],(e,t)=>{if(!(typeof window>`u`||!_.value)){if(u.value){E();return}if(g.value){[0,1,4,5,6].some(n=>e[n]!==t?.[n])&&E();return}l.value&&D()}},{immediate:!0}),(e,n)=>{let r=t.t;return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,_e,[(0,a.createCommentVNode)(` 文件信息卡片模式 `),!(0,a.unref)(l)&&!(0,a.unref)(u)?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ve,[(0,a.createElementVNode)(`div`,ye,[(0,a.createElementVNode)(`div`,be,[(0,a.createVNode)(r,{name:(0,a.unref)(T).icon,size:40,color:(0,a.unref)(T).color},null,8,[`name`,`color`])]),(0,a.createElementVNode)(`div`,xe,[(0,a.createElementVNode)(`div`,Se,[(0,a.createVNode)((0,a.unref)(o.NEllipsis),{style:{"max-width":`250px`}},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)((0,a.unref)(C)),1)]),_:1}),(0,a.createVNode)((0,a.unref)(o.NTag),{type:(0,a.unref)(T).tagType,size:`small`},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)((0,a.unref)(w).toUpperCase()),1)]),_:1},8,[`type`])]),(0,a.createElementVNode)(`div`,Ce,[(0,a.createElementVNode)(`span`,we,(0,a.toDisplayString)((0,a.unref)(m)((0,a.unref)(h))),1)])]),(0,a.createElementVNode)(`div`,Te,[(0,a.createVNode)((0,a.unref)(o.NButton),{type:`primary`,onClick:(0,a.unref)(D)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:`ic:outline-visibility`})]),default:(0,a.withCtx)(()=>[n[2]||=(0,a.createTextVNode)(` 预览 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{type:`tertiary`,onClick:(0,a.unref)(O)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:`ic:outline-download`})]),default:(0,a.withCtx)(()=>[n[3]||=(0,a.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.unref)(u)?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Ee,[(0,a.unref)(_)?(0,a.unref)(f)||(0,a.unref)(p)?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,De,[(0,a.unref)(f)?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NSpin),{key:0,size:`large`},{description:(0,a.withCtx)(()=>[...n[4]||=[(0,a.createTextVNode)(`正在加载文档…`,-1)]]),_:1})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,a.unref)(p)},{footer:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,onClick:(0,a.unref)(E)},{default:(0,a.withCtx)(()=>[...n[5]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(0,a.unref)(w)===`pdf`?((0,a.openBlock)(),(0,a.createBlock)(P,{key:2,"pdf-url":(0,a.unref)(v),"total-pages":(0,a.unref)(y)},null,8,[`pdf-url`,`total-pages`])):(0,a.unref)(w)===`word`?((0,a.openBlock)(),(0,a.createBlock)(V,{key:3,content:(0,a.unref)(b),headings:(0,a.unref)(x)},null,8,[`content`,`headings`])):(0,a.unref)(w)===`excel`?((0,a.openBlock)(),(0,a.createBlock)(Y,{key:4,sheets:(0,a.unref)(S),onReload:(0,a.unref)(E)},null,8,[`sheets`,`onReload`])):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NResult),{key:5,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 模态框预览 `),(0,a.unref)(u)?(0,a.createCommentVNode)(`v-if`,!0):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NModal),{key:2,show:(0,a.unref)(g),"onUpdate:show":n[1]||=e=>(0,a.isRef)(g)?g.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,{ref_key:`modalContainer`,ref:k,class:`modal-container`},[(0,a.createCommentVNode)(` 自定义头部 `),(0,a.createElementVNode)(`div`,$,[(0,a.createElementVNode)(`div`,Oe,[(0,a.createVNode)(r,{name:(0,a.unref)(T).icon,size:20,color:(0,a.unref)(T).color},null,8,[`name`,`color`]),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)((0,a.unref)(C)),1)]),(0,a.createElementVNode)(`div`,ke,[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,type:`tertiary`,onClick:(0,a.unref)(O)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:`ic:outline-download`})]),default:(0,a.withCtx)(()=>[n[6]||=(0,a.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>g.value=!1},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:`ic:outline-close`})]),_:1})])]),(0,a.createCommentVNode)(` 预览内容 `),(0,a.createElementVNode)(`div`,Ae,[(0,a.createCommentVNode)(` 文件信息头部 `),(0,a.createElementVNode)(`div`,je,[(0,a.createElementVNode)(`div`,Me,[(0,a.createElementVNode)(`div`,Ne,[(0,a.createVNode)((0,a.unref)(o.NTag),{type:(0,a.unref)(T).tagType,size:`small`},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:(0,a.unref)(T).icon},null,8,[`name`])]),default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` `+(0,a.toDisplayString)((0,a.unref)(w).toUpperCase()),1)]),_:1},8,[`type`]),(0,a.createVNode)((0,a.unref)(o.NEllipsis),{style:{"max-width":`300px`}},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)((0,a.unref)(C)),1)]),_:1}),(0,a.createElementVNode)(`span`,Pe,(0,a.toDisplayString)((0,a.unref)(m)((0,a.unref)(h))),1)]),(0,a.createElementVNode)(`div`,Fe,[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,type:`tertiary`,disabled:(0,a.unref)(f),onClick:(0,a.unref)(E)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:`ic:outline-refresh`})]),default:(0,a.withCtx)(()=>[n[7]||=(0,a.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,type:`primary`,onClick:(0,a.unref)(j)},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:(0,a.unref)(A)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` `+(0,a.toDisplayString)((0,a.unref)(A)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),(0,a.createCommentVNode)(` 预览内容区域 `),(0,a.createElementVNode)(`div`,Ie,[(0,a.createCommentVNode)(` 加载和错误状态 `),(0,a.unref)(_)?(0,a.unref)(f)||(0,a.unref)(p)?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Le,[(0,a.unref)(f)?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NSpin),{key:0,size:`large`},{description:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` 正在加载`+(0,a.toDisplayString)((0,a.unref)(w).toUpperCase())+`文件... `,1)]),_:1})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,a.unref)(p)},{footer:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:(0,a.unref)(E)},{default:(0,a.withCtx)(()=>[...n[8]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:2},[(0,a.createCommentVNode)(` 文件预览 — 委托给子组件 `),(0,a.unref)(w)===`pdf`?((0,a.openBlock)(),(0,a.createBlock)(P,{key:0,"pdf-url":(0,a.unref)(v),"total-pages":(0,a.unref)(y)},null,8,[`pdf-url`,`total-pages`])):(0,a.unref)(w)===`word`?((0,a.openBlock)(),(0,a.createBlock)(V,{key:1,content:(0,a.unref)(b),headings:(0,a.unref)(x)},null,8,[`content`,`headings`])):(0,a.unref)(w)===`excel`?((0,a.openBlock)(),(0,a.createBlock)(Y,{key:2,sheets:(0,a.unref)(S),onReload:(0,a.unref)(E)},null,8,[`sheets`,`onReload`])):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:3},[(0,a.createCommentVNode)(` 不支持的文件类型 `),(0,a.createVNode)((0,a.unref)(o.NResult),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${(0,a.unref)(w).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64)):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])])],512)]),_:1},8,[`show`]))])}}});var ze=n.t(Re,[[`__scopeId`,`data-v-3988cd59`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ze}});