@robot-admin/naive-ui-components 0.6.3 → 0.6.5

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 (232) hide show
  1. package/CHANGELOG.md +48 -57
  2. package/README.md +18 -14
  3. package/dist/C_ActionBar-DYG0Yf3A.css.map +1 -0
  4. package/dist/C_ActionBar-MAjRhqcI.css.map +1 -0
  5. package/dist/C_ActionBar.css +47 -47
  6. package/dist/C_ActionBar.js.map +1 -1
  7. package/dist/C_ActionBar2.js +1 -1
  8. package/dist/C_ActionBar2.js.map +1 -1
  9. package/dist/{C_AntV-A3NXx_sF.css.map → C_AntV-BY8jqqmi.css.map} +1 -1
  10. package/dist/{C_AntV-D2Zp2qQF.css.map → C_AntV-BbkHc-_a.css.map} +1 -1
  11. package/dist/C_AntV.css +78 -78
  12. package/dist/C_AntV.js.map +1 -1
  13. package/dist/C_AntV2.js +2 -2
  14. package/dist/C_AntV2.js.map +1 -1
  15. package/dist/{C_Barcode-DjTmDkbQ.css.map → C_Barcode-DYDRDe2O.css.map} +1 -1
  16. package/dist/{C_Barcode-Do1Ozsmh.css.map → C_Barcode-muJdc_O4.css.map} +1 -1
  17. package/dist/C_Barcode.css +7 -7
  18. package/dist/C_Barcode.js.map +1 -1
  19. package/dist/C_Barcode2.js +1 -1
  20. package/dist/C_Barcode2.js.map +1 -1
  21. package/dist/C_Breadcrumb-D55Jd2CK.css.map +1 -0
  22. package/dist/C_Breadcrumb-mBL4CWps.css.map +1 -0
  23. package/dist/C_Breadcrumb.css +7 -0
  24. package/dist/C_Breadcrumb.js.map +1 -1
  25. package/dist/C_Breadcrumb2.js +1 -1
  26. package/dist/C_Breadcrumb2.js.map +1 -1
  27. package/dist/{C_Captcha-CZmAETly.css.map → C_Captcha-9_hk6VmY.css.map} +1 -1
  28. package/dist/{C_Captcha-Ccq3DMrR.css.map → C_Captcha-MtASlJ0f.css.map} +1 -1
  29. package/dist/C_Captcha.css +19 -19
  30. package/dist/C_Captcha.js.map +1 -1
  31. package/dist/C_Captcha2.js +1 -1
  32. package/dist/C_Captcha2.js.map +1 -1
  33. package/dist/{C_City-Cv5BESaN.css.map → C_City-Bam08Qv3.css.map} +1 -1
  34. package/dist/{C_City-DNKv4MpH.css.map → C_City-Bb3W-KaN.css.map} +1 -1
  35. package/dist/C_City.css +29 -29
  36. package/dist/C_City.js.map +1 -1
  37. package/dist/C_City2.js +1 -1
  38. package/dist/C_City2.js.map +1 -1
  39. package/dist/C_Code-BFi5xxnM.css.map +1 -0
  40. package/dist/C_Code-CZ7yfnri.css.map +1 -0
  41. package/dist/C_Code.css +3 -3
  42. package/dist/C_Code.js.map +1 -1
  43. package/dist/C_Code2.js +1 -1
  44. package/dist/C_Code2.js.map +1 -1
  45. package/dist/{C_CollapsePanel-BpofCDyl.css.map → C_CollapsePanel-BCmTFuDz.css.map} +1 -1
  46. package/dist/{C_CollapsePanel-Fap-lv_5.css.map → C_CollapsePanel-Bxnh4Zy-.css.map} +1 -1
  47. package/dist/C_CollapsePanel.css +35 -35
  48. package/dist/C_CollapsePanel.js.map +1 -1
  49. package/dist/C_CollapsePanel2.js +1 -1
  50. package/dist/C_CollapsePanel2.js.map +1 -1
  51. package/dist/{C_Cron-C0-8b5af.css.map → C_Cron-Civir5-I.css.map} +1 -1
  52. package/dist/{C_Cron-DqHQ92LN.css.map → C_Cron-iw3qpMsy.css.map} +1 -1
  53. package/dist/C_Cron.css +37 -37
  54. package/dist/C_Cron.js.map +1 -1
  55. package/dist/C_Cron2.js +1 -1
  56. package/dist/C_Cron2.js.map +1 -1
  57. package/dist/{C_Draggable-Bq6o0qXn.css.map → C_Draggable-BCjIvIwT.css.map} +1 -1
  58. package/dist/{C_Draggable-r6nhx3yM.css.map → C_Draggable-DwkSlCOS.css.map} +1 -1
  59. package/dist/C_Draggable.css +46 -46
  60. package/dist/C_Draggable.js.map +1 -1
  61. package/dist/C_Draggable2.js +1 -1
  62. package/dist/C_Draggable2.js.map +1 -1
  63. package/dist/{C_FilePreview-BVarVvnD.css.map → C_FilePreview-BhcbiXsV.css.map} +1 -1
  64. package/dist/{C_FilePreview-DHGlV4OR.css.map → C_FilePreview-DJudcIbW.css.map} +1 -1
  65. package/dist/C_FilePreview.css +91 -91
  66. package/dist/C_FilePreview.js.map +1 -1
  67. package/dist/C_FilePreview2.js +1 -1
  68. package/dist/C_FilePreview2.js.map +1 -1
  69. package/dist/{C_Form-BciQUPpS.css.map → C_Form-BtcAPIRi.css.map} +1 -1
  70. package/dist/{C_Form-CKHvXL3O.css.map → C_Form-D_gwQ7hC.css.map} +1 -1
  71. package/dist/C_Form.css +222 -222
  72. package/dist/C_Form.js.map +1 -1
  73. package/dist/C_Form2.js +1 -1
  74. package/dist/C_Form2.js.map +1 -1
  75. package/dist/{C_FormSearch-Bmd2CmG6.css.map → C_FormSearch-Bi4XYjjk.css.map} +1 -1
  76. package/dist/{C_FormSearch-DBNtnjaL.css.map → C_FormSearch-DUGOoX0u.css.map} +1 -1
  77. package/dist/C_FormSearch.css +45 -45
  78. package/dist/C_FormSearch.js.map +1 -1
  79. package/dist/C_FormSearch2.js +1 -1
  80. package/dist/C_FormSearch2.js.map +1 -1
  81. package/dist/{C_FormulaEditor-3WG2vtQl.css.map → C_FormulaEditor-CJk3SSUJ.css.map} +1 -1
  82. package/dist/{C_FormulaEditor-Cm0CokN5.css.map → C_FormulaEditor-Cy7mjfVO.css.map} +1 -1
  83. package/dist/C_FormulaEditor.css +78 -78
  84. package/dist/C_FormulaEditor.js.map +1 -1
  85. package/dist/C_FormulaEditor2.js +1 -1
  86. package/dist/C_FormulaEditor2.js.map +1 -1
  87. package/dist/C_FullCalendar-BQA0OjGB.css.map +1 -0
  88. package/dist/C_FullCalendar-ChJUosAi.css.map +1 -0
  89. package/dist/C_FullCalendar.css +3 -3
  90. package/dist/C_FullCalendar.js.map +1 -1
  91. package/dist/C_FullCalendar2.js +1 -1
  92. package/dist/C_FullCalendar2.js.map +1 -1
  93. package/dist/C_Icon.js.map +1 -1
  94. package/dist/C_Icon2.js.map +1 -1
  95. package/dist/{C_ImageCropper-D3L2-J_J.css.map → C_ImageCropper-BqZpkZfU.css.map} +1 -1
  96. package/dist/{C_ImageCropper-DrmUlaLi.css.map → C_ImageCropper-CylwGuzS.css.map} +1 -1
  97. package/dist/C_ImageCropper.css +10 -10
  98. package/dist/C_ImageCropper.js.map +1 -1
  99. package/dist/C_ImageCropper2.js +1 -1
  100. package/dist/C_ImageCropper2.js.map +1 -1
  101. package/dist/{C_Map-BCJmDnJT.css.map → C_Map-DNnBcY70.css.map} +1 -1
  102. package/dist/{C_Map-WUMXSAfy.css.map → C_Map-LEXIx6zM.css.map} +1 -1
  103. package/dist/C_Map.css +4 -4
  104. package/dist/C_Map.js.map +1 -1
  105. package/dist/C_Map2.js +1 -1
  106. package/dist/C_Map2.js.map +1 -1
  107. package/dist/{C_Markdown-7iBnLDtL.css.map → C_Markdown-Kujzx1qG.css.map} +1 -1
  108. package/dist/{C_Markdown-BbTvdFCl.css.map → C_Markdown-YCAmBbNF.css.map} +1 -1
  109. package/dist/C_Markdown.css +33 -33
  110. package/dist/C_Markdown.js.map +1 -1
  111. package/dist/C_Markdown2.js +1 -1
  112. package/dist/C_Markdown2.js.map +1 -1
  113. package/dist/C_Menu.cjs +1 -1
  114. package/dist/C_Menu.js +1 -1
  115. package/dist/{C_QRCode-DMxSyogU.css.map → C_QRCode-CFNTda_1.css.map} +1 -1
  116. package/dist/{C_QRCode-G7fiAkm4.css.map → C_QRCode-CmWr9lK-.css.map} +1 -1
  117. package/dist/C_QRCode.css +9 -9
  118. package/dist/C_QRCode.js.map +1 -1
  119. package/dist/C_QRCode2.js +1 -1
  120. package/dist/C_QRCode2.js.map +1 -1
  121. package/dist/{C_Signature-B5fFz6RD.css.map → C_Signature-PN4GOLRX.css.map} +1 -1
  122. package/dist/{C_Signature-es-ZNPzr.css.map → C_Signature-fWQqGIZ-.css.map} +1 -1
  123. package/dist/C_Signature.css +14 -14
  124. package/dist/C_Signature.js.map +1 -1
  125. package/dist/C_Signature2.js +1 -1
  126. package/dist/C_Signature2.js.map +1 -1
  127. package/dist/{C_SplitPane-Br2eK8IG.css.map → C_SplitPane-BOwr1C7K.css.map} +1 -1
  128. package/dist/{C_SplitPane-DuyzUhKB.css.map → C_SplitPane-N-a_D-7F.css.map} +1 -1
  129. package/dist/C_SplitPane.css +31 -31
  130. package/dist/C_SplitPane.js.map +1 -1
  131. package/dist/C_SplitPane2.js +1 -1
  132. package/dist/C_SplitPane2.js.map +1 -1
  133. package/dist/{C_Steps-DGwXxS2Y.css.map → C_Steps-DLW2vbqC.css.map} +1 -1
  134. package/dist/{C_Steps-P9Qj9iDd.css.map → C_Steps-DwMRHbG2.css.map} +1 -1
  135. package/dist/C_Steps.css +37 -37
  136. package/dist/C_Steps.js.map +1 -1
  137. package/dist/C_Steps2.js +1 -1
  138. package/dist/C_Steps2.js.map +1 -1
  139. package/dist/{C_Table-vZlcgH6x.css.map → C_Table-BV1wUw6f.css.map} +1 -1
  140. package/dist/{C_Table-wzAO43l0.css.map → C_Table-LlJ-JEdm.css.map} +1 -1
  141. package/dist/C_Table.css +93 -93
  142. package/dist/C_Table.js.map +1 -1
  143. package/dist/C_Table2.js +1 -1
  144. package/dist/C_Table2.js.map +1 -1
  145. package/dist/{C_TagsView-BsutyC3U.css.map → C_TagsView-DX3LecK1.css.map} +1 -1
  146. package/dist/{C_TagsView-Crm7yWg9.css.map → C_TagsView-DqOTa8bL.css.map} +1 -1
  147. package/dist/C_TagsView.css +36 -36
  148. package/dist/C_TagsView.js.map +1 -1
  149. package/dist/C_TagsView2.js +1 -1
  150. package/dist/C_TagsView2.js.map +1 -1
  151. package/dist/C_Time-BzyQVvTS.css.map +1 -0
  152. package/dist/C_Time-DmpKLQHc.css.map +1 -0
  153. package/dist/C_Time.css +5 -5
  154. package/dist/C_Time.js.map +1 -1
  155. package/dist/C_Time2.js +1 -1
  156. package/dist/C_Time2.js.map +1 -1
  157. package/dist/{C_Tree-B-Le4hjQ.css.map → C_Tree-D98nX9qT.css.map} +1 -1
  158. package/dist/{C_Tree-DnGc_MPb.css.map → C_Tree-ulfm7b-P.css.map} +1 -1
  159. package/dist/C_Tree.css +33 -33
  160. package/dist/C_Tree.js.map +1 -1
  161. package/dist/C_Tree2.js +1 -1
  162. package/dist/C_Tree2.js.map +1 -1
  163. package/dist/{C_VideoPlayer-Cdgv4Zq0.css.map → C_VideoPlayer-4J96tKfK.css.map} +1 -1
  164. package/dist/{C_VideoPlayer-rm0MODUv.css.map → C_VideoPlayer-D35seHkm.css.map} +1 -1
  165. package/dist/C_VideoPlayer.css +13 -13
  166. package/dist/C_VideoPlayer.js.map +1 -1
  167. package/dist/C_VideoPlayer2.js +1 -1
  168. package/dist/C_VideoPlayer2.js.map +1 -1
  169. package/dist/{C_VtableGantt-BpY-Rng3.css.map → C_VtableGantt-C2lxFmWg.css.map} +1 -1
  170. package/dist/{C_VtableGantt-DB87-jdS.css.map → C_VtableGantt-Dwnkw_WL.css.map} +1 -1
  171. package/dist/C_VtableGantt.css +15 -15
  172. package/dist/C_VtableGantt.js.map +1 -1
  173. package/dist/C_VtableGantt2.js +1 -1
  174. package/dist/C_VtableGantt2.js.map +1 -1
  175. package/dist/{C_WorkFlow-7F6op6qN.css.map → C_WorkFlow-2hJfvvTK.css.map} +1 -1
  176. package/dist/{C_WorkFlow-Cy3HWA6A.css.map → C_WorkFlow-DHoNjl8-.css.map} +1 -1
  177. package/dist/C_WorkFlow.css +108 -108
  178. package/dist/C_WorkFlow.js.map +1 -1
  179. package/dist/C_WorkFlow2.js +1 -1
  180. package/dist/C_WorkFlow2.js.map +1 -1
  181. package/dist/_shared.cjs +1 -1
  182. package/dist/_shared.js +1 -1
  183. package/dist/constants.d.ts +5 -5
  184. package/dist/constants2.d.ts +4 -4
  185. package/dist/constants3.d.ts +3 -3
  186. package/dist/constants4.d.ts +6 -6
  187. package/dist/constants5.d.ts +2 -2
  188. package/dist/data.d.ts +2 -2
  189. package/dist/index.cjs.map +1 -1
  190. package/dist/index.js.map +1 -1
  191. package/dist/index.vue.d.ts +1 -1
  192. package/dist/index11.vue.d.ts +6 -6
  193. package/dist/index12.vue.d.ts +2 -2
  194. package/dist/index13.vue.d.ts +4 -4
  195. package/dist/index15.vue.d.ts +2 -2
  196. package/dist/index16.vue.d.ts +1 -1
  197. package/dist/index17.vue.d.ts +1 -1
  198. package/dist/index19.vue.d.ts +2 -2
  199. package/dist/index2.vue.d.ts +5 -5
  200. package/dist/index4.vue.d.ts +6 -6
  201. package/dist/index5.vue.d.ts +2 -2
  202. package/dist/index6.vue.d.ts +2 -2
  203. package/dist/index8.vue.d.ts +1 -1
  204. package/dist/index9.vue.d.ts +2 -2
  205. package/dist/menuAdapter.js +1 -1
  206. package/dist/menuAdapter.js.map +1 -1
  207. package/dist/resolver.cjs.map +1 -1
  208. package/dist/resolver.js.map +1 -1
  209. package/dist/style.css +1218 -1209
  210. package/dist/useCalendarEvents.d.ts +1 -1
  211. package/dist/useCollapsePanel.d.ts +6 -6
  212. package/dist/useCropperCore.d.ts +4 -4
  213. package/dist/useDraggableLayout.d.ts +3 -3
  214. package/dist/useDynamicFormState.d.ts +8 -8
  215. package/dist/useEdgeInteraction.d.ts +3 -3
  216. package/dist/useInfiniteScroll.d.ts +3 -3
  217. package/dist/useModalEdit.d.ts +2 -2
  218. package/dist/useQRCode.d.ts +4 -4
  219. package/dist/useSignatureHistory.d.ts +2 -2
  220. package/dist/useSplitResize.d.ts +6 -6
  221. package/dist/useTimeSelection.d.ts +2 -2
  222. package/dist/useTreeOperations.d.ts +5 -5
  223. package/dist/useWorkflowValidation.d.ts +7 -7
  224. package/package.json +1 -1
  225. package/dist/C_ActionBar-jZPsiXtT.css.map +0 -1
  226. package/dist/C_ActionBar-nnfbZCea.css.map +0 -1
  227. package/dist/C_Code-DPZlNSxL.css.map +0 -1
  228. package/dist/C_Code-avZjAnHD.css.map +0 -1
  229. package/dist/C_FullCalendar-1U4VlG7X.css.map +0 -1
  230. package/dist/C_FullCalendar-DLUdCtqf.css.map +0 -1
  231. package/dist/C_Time-Bd_e1YDN.css.map +0 -1
  232. package/dist/C_Time-CKb_fwdm.css.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"C_ActionBar2.js","names":["$slots"],"sources":["../src/components/C_ActionBar/index.vue","../src/components/C_ActionBar/index.vue","../src/components/C_ActionBar/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2026-02-14\r\n * @Description: 通用操作按钮组件 - 配置化管理任何场景的按钮组\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2026 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n class=\"c-action-bar\"\r\n :class=\"{\r\n 'is-compact': finalConfig.compact,\r\n 'is-inline': finalConfig.inline,\r\n 'is-wrap': finalConfig.wrap,\r\n [`is-align-${finalConfig.align}`]: true,\r\n 'has-only-left':\r\n leftButtonList.length > 0 &&\r\n rightButtonList.length === 0 &&\r\n !$slots.center,\r\n 'has-only-right':\r\n rightButtonList.length > 0 &&\r\n leftButtonList.length === 0 &&\r\n !$slots.center,\r\n }\"\r\n >\r\n <div\r\n v-if=\"leftButtonList.length > 0\"\r\n class=\"actions-group actions-left\"\r\n :style=\"{ gap: `${finalConfig.gap}px` }\"\r\n >\r\n <template\r\n v-for=\"(action, index) in leftButtonList\"\r\n :key=\"action.key || `left-${index}`\"\r\n >\r\n <ActionButton\r\n :action=\"action\"\r\n @click=\"handleActionClick(action)\"\r\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\r\n />\r\n <NDivider\r\n v-if=\"\r\n finalConfig.showDivider &&\r\n index < leftButtonList.length - 1 &&\r\n finalConfig.dividerType === 'vertical'\r\n \"\r\n vertical\r\n class=\"action-divider\"\r\n />\r\n </template>\r\n </div>\r\n\r\n <div v-if=\"$slots.center\" class=\"actions-center\">\r\n <slot name=\"center\" />\r\n </div>\r\n\r\n <div\r\n v-if=\"rightButtonList.length > 0\"\r\n class=\"actions-group actions-right\"\r\n :style=\"{ gap: `${finalConfig.gap}px` }\"\r\n >\r\n <template\r\n v-for=\"(action, index) in rightButtonList\"\r\n :key=\"action.key || `right-${index}`\"\r\n >\r\n <ActionButton\r\n :action=\"action\"\r\n @click=\"handleActionClick(action)\"\r\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\r\n />\r\n <NDivider\r\n v-if=\"\r\n finalConfig.showDivider &&\r\n index < rightButtonList.length - 1 &&\r\n finalConfig.dividerType === 'vertical'\r\n \"\r\n vertical\r\n class=\"action-divider\"\r\n />\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, unref, h, withDirectives, defineComponent } from \"vue\";\r\nimport type { PropType } from \"vue\";\r\nimport { NButton, NTooltip, NDropdown, NDivider } from \"naive-ui\";\r\nimport C_Icon from \"../C_Icon/index.vue\";\r\nimport type {\r\n ActionItem,\r\n ActionDropdownItem,\r\n ActionBarConfig,\r\n TableActionsProps,\r\n TableActionsEmits,\r\n} from \"./types\";\r\n\r\ndefineOptions({ name: \"C_ActionBar\" });\r\n\r\nconst props = withDefaults(defineProps<TableActionsProps>(), {\r\n actions: () => [],\r\n leftActions: () => [],\r\n rightActions: () => [],\r\n config: () => ({}),\r\n});\r\n\r\nconst emit = defineEmits<TableActionsEmits>();\r\n\r\nconst defaultConfig: Required<ActionBarConfig> = {\r\n align: \"left\",\r\n size: \"medium\",\r\n gap: 8,\r\n wrap: false,\r\n showDivider: false,\r\n dividerType: \"vertical\",\r\n compact: false,\r\n inline: true,\r\n};\r\n\r\nconst finalConfig = computed<Required<ActionBarConfig>>(() => ({\r\n ...defaultConfig,\r\n ...props.config,\r\n}));\r\n\r\nconst leftButtonList = computed<ActionItem[]>(() => {\r\n if (props.leftActions && props.leftActions.length > 0) {\r\n return props.leftActions.filter((action) => shouldShowAction(action));\r\n }\r\n if (props.actions.length > 0) {\r\n const hasRightActions = props.rightActions && props.rightActions.length > 0;\r\n const hasRightGroup = props.actions.some(\r\n (action) => action.group === \"right\",\r\n );\r\n if (!hasRightActions && !hasRightGroup) {\r\n return props.actions.filter((action) => shouldShowAction(action));\r\n }\r\n return props.actions.filter(\r\n (action) => action.group === \"left\" && shouldShowAction(action),\r\n );\r\n }\r\n return [];\r\n});\r\n\r\nconst rightButtonList = computed<ActionItem[]>(() => {\r\n if (props.rightActions && props.rightActions.length > 0) {\r\n return props.rightActions.filter((action) => shouldShowAction(action));\r\n }\r\n return props.actions.filter(\r\n (action) => action.group === \"right\" && shouldShowAction(action),\r\n );\r\n});\r\n\r\nconst shouldShowAction = (action: ActionItem): boolean => {\r\n if (action.show === undefined) return true;\r\n return unref(action.show);\r\n};\r\n\r\nconst isActionDisabled = (action: ActionItem): boolean => {\r\n return unref(action.disabled) || false;\r\n};\r\n\r\nconst isActionLoading = (action: ActionItem): boolean => {\r\n return unref(action.loading) || false;\r\n};\r\n\r\nconst handleActionClick = async (action: ActionItem) => {\r\n if (action.dropdown && action.dropdown.length > 0) return;\r\n emit(\"action-click\", action);\r\n if (action.onClick) {\r\n await action.onClick();\r\n }\r\n};\r\n\r\nconst handleDropdownClick = async (\r\n item: ActionDropdownItem,\r\n action: ActionItem,\r\n) => {\r\n emit(\"dropdown-click\", item, action);\r\n if (item.onClick) {\r\n await item.onClick();\r\n }\r\n};\r\n\r\nconst ActionButton = defineComponent({\r\n name: \"ActionButton\",\r\n props: {\r\n action: {\r\n type: Object as PropType<ActionItem>,\r\n required: true,\r\n },\r\n },\r\n emits: [\"click\", \"dropdown-select\"],\r\n setup(props, { emit }) {\r\n const action = computed(() => props.action);\r\n\r\n const dropdownOptions = computed(() => {\r\n if (!action.value.dropdown) return [];\r\n return action.value.dropdown\r\n .filter((item) => {\r\n if (item.show === undefined) return true;\r\n return unref(item.show);\r\n })\r\n .map((item) => ({\r\n key: item.key,\r\n label: item.label,\r\n icon: item.icon\r\n ? () => h(C_Icon, { name: item.icon, size: 14 })\r\n : undefined,\r\n disabled: unref(item.disabled),\r\n }));\r\n });\r\n\r\n const handleDropdownSelect = (key: string) => {\r\n const item = action.value.dropdown?.find((d) => d.key === key);\r\n if (item) {\r\n emit(\"dropdown-select\", item);\r\n }\r\n };\r\n\r\n const createButtonVNode = (extraProps?: Record<string, any>) => {\r\n const button = h(\r\n NButton,\r\n {\r\n type: action.value.type || \"default\",\r\n size: action.value.size || finalConfig.value.size,\r\n loading: isActionLoading(action.value),\r\n disabled: isActionDisabled(action.value),\r\n ...extraProps,\r\n ...action.value.buttonProps,\r\n },\r\n {\r\n default: () => action.value.label,\r\n icon: action.value.icon\r\n ? () => h(C_Icon, { name: action.value.icon, size: 16 })\r\n : undefined,\r\n },\r\n );\r\n\r\n return action.value.directives && action.value.directives.length > 0\r\n ? withDirectives(button, action.value.directives as any)\r\n : button;\r\n };\r\n\r\n const renderButton = () => {\r\n const vnode = createButtonVNode({ onClick: () => emit(\"click\") });\r\n if (action.value.tooltip) {\r\n return h(\r\n NTooltip,\r\n { placement: \"top\" },\r\n {\r\n trigger: () => vnode,\r\n default: () => action.value.tooltip,\r\n },\r\n );\r\n }\r\n return vnode;\r\n };\r\n\r\n const renderDropdownButton = () => {\r\n const vnode = createButtonVNode();\r\n return h(\r\n NDropdown,\r\n {\r\n options: dropdownOptions.value,\r\n onSelect: handleDropdownSelect,\r\n },\r\n {\r\n default: () => vnode,\r\n },\r\n );\r\n };\r\n\r\n return () => {\r\n if (action.value.dropdown && action.value.dropdown.length > 0) {\r\n return renderDropdownButton();\r\n }\r\n return renderButton();\r\n };\r\n },\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@use \"./index.scss\";\r\n</style>\r\n","/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2026-02-14\r\n * @Description: 通用操作按钮组件 - 配置化管理任何场景的按钮组\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2026 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n class=\"c-action-bar\"\r\n :class=\"{\r\n 'is-compact': finalConfig.compact,\r\n 'is-inline': finalConfig.inline,\r\n 'is-wrap': finalConfig.wrap,\r\n [`is-align-${finalConfig.align}`]: true,\r\n 'has-only-left':\r\n leftButtonList.length > 0 &&\r\n rightButtonList.length === 0 &&\r\n !$slots.center,\r\n 'has-only-right':\r\n rightButtonList.length > 0 &&\r\n leftButtonList.length === 0 &&\r\n !$slots.center,\r\n }\"\r\n >\r\n <div\r\n v-if=\"leftButtonList.length > 0\"\r\n class=\"actions-group actions-left\"\r\n :style=\"{ gap: `${finalConfig.gap}px` }\"\r\n >\r\n <template\r\n v-for=\"(action, index) in leftButtonList\"\r\n :key=\"action.key || `left-${index}`\"\r\n >\r\n <ActionButton\r\n :action=\"action\"\r\n @click=\"handleActionClick(action)\"\r\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\r\n />\r\n <NDivider\r\n v-if=\"\r\n finalConfig.showDivider &&\r\n index < leftButtonList.length - 1 &&\r\n finalConfig.dividerType === 'vertical'\r\n \"\r\n vertical\r\n class=\"action-divider\"\r\n />\r\n </template>\r\n </div>\r\n\r\n <div v-if=\"$slots.center\" class=\"actions-center\">\r\n <slot name=\"center\" />\r\n </div>\r\n\r\n <div\r\n v-if=\"rightButtonList.length > 0\"\r\n class=\"actions-group actions-right\"\r\n :style=\"{ gap: `${finalConfig.gap}px` }\"\r\n >\r\n <template\r\n v-for=\"(action, index) in rightButtonList\"\r\n :key=\"action.key || `right-${index}`\"\r\n >\r\n <ActionButton\r\n :action=\"action\"\r\n @click=\"handleActionClick(action)\"\r\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\r\n />\r\n <NDivider\r\n v-if=\"\r\n finalConfig.showDivider &&\r\n index < rightButtonList.length - 1 &&\r\n finalConfig.dividerType === 'vertical'\r\n \"\r\n vertical\r\n class=\"action-divider\"\r\n />\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, unref, h, withDirectives, defineComponent } from \"vue\";\r\nimport type { PropType } from \"vue\";\r\nimport { NButton, NTooltip, NDropdown, NDivider } from \"naive-ui\";\r\nimport C_Icon from \"../C_Icon/index.vue\";\r\nimport type {\r\n ActionItem,\r\n ActionDropdownItem,\r\n ActionBarConfig,\r\n TableActionsProps,\r\n TableActionsEmits,\r\n} from \"./types\";\r\n\r\ndefineOptions({ name: \"C_ActionBar\" });\r\n\r\nconst props = withDefaults(defineProps<TableActionsProps>(), {\r\n actions: () => [],\r\n leftActions: () => [],\r\n rightActions: () => [],\r\n config: () => ({}),\r\n});\r\n\r\nconst emit = defineEmits<TableActionsEmits>();\r\n\r\nconst defaultConfig: Required<ActionBarConfig> = {\r\n align: \"left\",\r\n size: \"medium\",\r\n gap: 8,\r\n wrap: false,\r\n showDivider: false,\r\n dividerType: \"vertical\",\r\n compact: false,\r\n inline: true,\r\n};\r\n\r\nconst finalConfig = computed<Required<ActionBarConfig>>(() => ({\r\n ...defaultConfig,\r\n ...props.config,\r\n}));\r\n\r\nconst leftButtonList = computed<ActionItem[]>(() => {\r\n if (props.leftActions && props.leftActions.length > 0) {\r\n return props.leftActions.filter((action) => shouldShowAction(action));\r\n }\r\n if (props.actions.length > 0) {\r\n const hasRightActions = props.rightActions && props.rightActions.length > 0;\r\n const hasRightGroup = props.actions.some(\r\n (action) => action.group === \"right\",\r\n );\r\n if (!hasRightActions && !hasRightGroup) {\r\n return props.actions.filter((action) => shouldShowAction(action));\r\n }\r\n return props.actions.filter(\r\n (action) => action.group === \"left\" && shouldShowAction(action),\r\n );\r\n }\r\n return [];\r\n});\r\n\r\nconst rightButtonList = computed<ActionItem[]>(() => {\r\n if (props.rightActions && props.rightActions.length > 0) {\r\n return props.rightActions.filter((action) => shouldShowAction(action));\r\n }\r\n return props.actions.filter(\r\n (action) => action.group === \"right\" && shouldShowAction(action),\r\n );\r\n});\r\n\r\nconst shouldShowAction = (action: ActionItem): boolean => {\r\n if (action.show === undefined) return true;\r\n return unref(action.show);\r\n};\r\n\r\nconst isActionDisabled = (action: ActionItem): boolean => {\r\n return unref(action.disabled) || false;\r\n};\r\n\r\nconst isActionLoading = (action: ActionItem): boolean => {\r\n return unref(action.loading) || false;\r\n};\r\n\r\nconst handleActionClick = async (action: ActionItem) => {\r\n if (action.dropdown && action.dropdown.length > 0) return;\r\n emit(\"action-click\", action);\r\n if (action.onClick) {\r\n await action.onClick();\r\n }\r\n};\r\n\r\nconst handleDropdownClick = async (\r\n item: ActionDropdownItem,\r\n action: ActionItem,\r\n) => {\r\n emit(\"dropdown-click\", item, action);\r\n if (item.onClick) {\r\n await item.onClick();\r\n }\r\n};\r\n\r\nconst ActionButton = defineComponent({\r\n name: \"ActionButton\",\r\n props: {\r\n action: {\r\n type: Object as PropType<ActionItem>,\r\n required: true,\r\n },\r\n },\r\n emits: [\"click\", \"dropdown-select\"],\r\n setup(props, { emit }) {\r\n const action = computed(() => props.action);\r\n\r\n const dropdownOptions = computed(() => {\r\n if (!action.value.dropdown) return [];\r\n return action.value.dropdown\r\n .filter((item) => {\r\n if (item.show === undefined) return true;\r\n return unref(item.show);\r\n })\r\n .map((item) => ({\r\n key: item.key,\r\n label: item.label,\r\n icon: item.icon\r\n ? () => h(C_Icon, { name: item.icon, size: 14 })\r\n : undefined,\r\n disabled: unref(item.disabled),\r\n }));\r\n });\r\n\r\n const handleDropdownSelect = (key: string) => {\r\n const item = action.value.dropdown?.find((d) => d.key === key);\r\n if (item) {\r\n emit(\"dropdown-select\", item);\r\n }\r\n };\r\n\r\n const createButtonVNode = (extraProps?: Record<string, any>) => {\r\n const button = h(\r\n NButton,\r\n {\r\n type: action.value.type || \"default\",\r\n size: action.value.size || finalConfig.value.size,\r\n loading: isActionLoading(action.value),\r\n disabled: isActionDisabled(action.value),\r\n ...extraProps,\r\n ...action.value.buttonProps,\r\n },\r\n {\r\n default: () => action.value.label,\r\n icon: action.value.icon\r\n ? () => h(C_Icon, { name: action.value.icon, size: 16 })\r\n : undefined,\r\n },\r\n );\r\n\r\n return action.value.directives && action.value.directives.length > 0\r\n ? withDirectives(button, action.value.directives as any)\r\n : button;\r\n };\r\n\r\n const renderButton = () => {\r\n const vnode = createButtonVNode({ onClick: () => emit(\"click\") });\r\n if (action.value.tooltip) {\r\n return h(\r\n NTooltip,\r\n { placement: \"top\" },\r\n {\r\n trigger: () => vnode,\r\n default: () => action.value.tooltip,\r\n },\r\n );\r\n }\r\n return vnode;\r\n };\r\n\r\n const renderDropdownButton = () => {\r\n const vnode = createButtonVNode();\r\n return h(\r\n NDropdown,\r\n {\r\n options: dropdownOptions.value,\r\n onSelect: handleDropdownSelect,\r\n },\r\n {\r\n default: () => vnode,\r\n },\r\n );\r\n };\r\n\r\n return () => {\r\n if (action.value.dropdown && action.value.dropdown.length > 0) {\r\n return renderDropdownButton();\r\n }\r\n return renderButton();\r\n };\r\n },\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@use \"./index.scss\";\r\n</style>\r\n","<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2026-02-14\r\n * @Description: 通用操作按钮组件 - 配置化管理任何场景的按钮组\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2026 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div\r\n class=\"c-action-bar\"\r\n :class=\"{\r\n 'is-compact': finalConfig.compact,\r\n 'is-inline': finalConfig.inline,\r\n 'is-wrap': finalConfig.wrap,\r\n [`is-align-${finalConfig.align}`]: true,\r\n 'has-only-left':\r\n leftButtonList.length > 0 &&\r\n rightButtonList.length === 0 &&\r\n !$slots.center,\r\n 'has-only-right':\r\n rightButtonList.length > 0 &&\r\n leftButtonList.length === 0 &&\r\n !$slots.center,\r\n }\"\r\n >\r\n <div\r\n v-if=\"leftButtonList.length > 0\"\r\n class=\"actions-group actions-left\"\r\n :style=\"{ gap: `${finalConfig.gap}px` }\"\r\n >\r\n <template\r\n v-for=\"(action, index) in leftButtonList\"\r\n :key=\"action.key || `left-${index}`\"\r\n >\r\n <ActionButton\r\n :action=\"action\"\r\n @click=\"handleActionClick(action)\"\r\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\r\n />\r\n <NDivider\r\n v-if=\"\r\n finalConfig.showDivider &&\r\n index < leftButtonList.length - 1 &&\r\n finalConfig.dividerType === 'vertical'\r\n \"\r\n vertical\r\n class=\"action-divider\"\r\n />\r\n </template>\r\n </div>\r\n\r\n <div v-if=\"$slots.center\" class=\"actions-center\">\r\n <slot name=\"center\" />\r\n </div>\r\n\r\n <div\r\n v-if=\"rightButtonList.length > 0\"\r\n class=\"actions-group actions-right\"\r\n :style=\"{ gap: `${finalConfig.gap}px` }\"\r\n >\r\n <template\r\n v-for=\"(action, index) in rightButtonList\"\r\n :key=\"action.key || `right-${index}`\"\r\n >\r\n <ActionButton\r\n :action=\"action\"\r\n @click=\"handleActionClick(action)\"\r\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\r\n />\r\n <NDivider\r\n v-if=\"\r\n finalConfig.showDivider &&\r\n index < rightButtonList.length - 1 &&\r\n finalConfig.dividerType === 'vertical'\r\n \"\r\n vertical\r\n class=\"action-divider\"\r\n />\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, unref, h, withDirectives, defineComponent } from \"vue\";\r\nimport type { PropType } from \"vue\";\r\nimport { NButton, NTooltip, NDropdown, NDivider } from \"naive-ui\";\r\nimport C_Icon from \"../C_Icon/index.vue\";\r\nimport type {\r\n ActionItem,\r\n ActionDropdownItem,\r\n ActionBarConfig,\r\n TableActionsProps,\r\n TableActionsEmits,\r\n} from \"./types\";\r\n\r\ndefineOptions({ name: \"C_ActionBar\" });\r\n\r\nconst props = withDefaults(defineProps<TableActionsProps>(), {\r\n actions: () => [],\r\n leftActions: () => [],\r\n rightActions: () => [],\r\n config: () => ({}),\r\n});\r\n\r\nconst emit = defineEmits<TableActionsEmits>();\r\n\r\nconst defaultConfig: Required<ActionBarConfig> = {\r\n align: \"left\",\r\n size: \"medium\",\r\n gap: 8,\r\n wrap: false,\r\n showDivider: false,\r\n dividerType: \"vertical\",\r\n compact: false,\r\n inline: true,\r\n};\r\n\r\nconst finalConfig = computed<Required<ActionBarConfig>>(() => ({\r\n ...defaultConfig,\r\n ...props.config,\r\n}));\r\n\r\nconst leftButtonList = computed<ActionItem[]>(() => {\r\n if (props.leftActions && props.leftActions.length > 0) {\r\n return props.leftActions.filter((action) => shouldShowAction(action));\r\n }\r\n if (props.actions.length > 0) {\r\n const hasRightActions = props.rightActions && props.rightActions.length > 0;\r\n const hasRightGroup = props.actions.some(\r\n (action) => action.group === \"right\",\r\n );\r\n if (!hasRightActions && !hasRightGroup) {\r\n return props.actions.filter((action) => shouldShowAction(action));\r\n }\r\n return props.actions.filter(\r\n (action) => action.group === \"left\" && shouldShowAction(action),\r\n );\r\n }\r\n return [];\r\n});\r\n\r\nconst rightButtonList = computed<ActionItem[]>(() => {\r\n if (props.rightActions && props.rightActions.length > 0) {\r\n return props.rightActions.filter((action) => shouldShowAction(action));\r\n }\r\n return props.actions.filter(\r\n (action) => action.group === \"right\" && shouldShowAction(action),\r\n );\r\n});\r\n\r\nconst shouldShowAction = (action: ActionItem): boolean => {\r\n if (action.show === undefined) return true;\r\n return unref(action.show);\r\n};\r\n\r\nconst isActionDisabled = (action: ActionItem): boolean => {\r\n return unref(action.disabled) || false;\r\n};\r\n\r\nconst isActionLoading = (action: ActionItem): boolean => {\r\n return unref(action.loading) || false;\r\n};\r\n\r\nconst handleActionClick = async (action: ActionItem) => {\r\n if (action.dropdown && action.dropdown.length > 0) return;\r\n emit(\"action-click\", action);\r\n if (action.onClick) {\r\n await action.onClick();\r\n }\r\n};\r\n\r\nconst handleDropdownClick = async (\r\n item: ActionDropdownItem,\r\n action: ActionItem,\r\n) => {\r\n emit(\"dropdown-click\", item, action);\r\n if (item.onClick) {\r\n await item.onClick();\r\n }\r\n};\r\n\r\nconst ActionButton = defineComponent({\r\n name: \"ActionButton\",\r\n props: {\r\n action: {\r\n type: Object as PropType<ActionItem>,\r\n required: true,\r\n },\r\n },\r\n emits: [\"click\", \"dropdown-select\"],\r\n setup(props, { emit }) {\r\n const action = computed(() => props.action);\r\n\r\n const dropdownOptions = computed(() => {\r\n if (!action.value.dropdown) return [];\r\n return action.value.dropdown\r\n .filter((item) => {\r\n if (item.show === undefined) return true;\r\n return unref(item.show);\r\n })\r\n .map((item) => ({\r\n key: item.key,\r\n label: item.label,\r\n icon: item.icon\r\n ? () => h(C_Icon, { name: item.icon, size: 14 })\r\n : undefined,\r\n disabled: unref(item.disabled),\r\n }));\r\n });\r\n\r\n const handleDropdownSelect = (key: string) => {\r\n const item = action.value.dropdown?.find((d) => d.key === key);\r\n if (item) {\r\n emit(\"dropdown-select\", item);\r\n }\r\n };\r\n\r\n const createButtonVNode = (extraProps?: Record<string, any>) => {\r\n const button = h(\r\n NButton,\r\n {\r\n type: action.value.type || \"default\",\r\n size: action.value.size || finalConfig.value.size,\r\n loading: isActionLoading(action.value),\r\n disabled: isActionDisabled(action.value),\r\n ...extraProps,\r\n ...action.value.buttonProps,\r\n },\r\n {\r\n default: () => action.value.label,\r\n icon: action.value.icon\r\n ? () => h(C_Icon, { name: action.value.icon, size: 16 })\r\n : undefined,\r\n },\r\n );\r\n\r\n return action.value.directives && action.value.directives.length > 0\r\n ? withDirectives(button, action.value.directives as any)\r\n : button;\r\n };\r\n\r\n const renderButton = () => {\r\n const vnode = createButtonVNode({ onClick: () => emit(\"click\") });\r\n if (action.value.tooltip) {\r\n return h(\r\n NTooltip,\r\n { placement: \"top\" },\r\n {\r\n trigger: () => vnode,\r\n default: () => action.value.tooltip,\r\n },\r\n );\r\n }\r\n return vnode;\r\n };\r\n\r\n const renderDropdownButton = () => {\r\n const vnode = createButtonVNode();\r\n return h(\r\n NDropdown,\r\n {\r\n options: dropdownOptions.value,\r\n onSelect: handleDropdownSelect,\r\n },\r\n {\r\n default: () => vnode,\r\n },\r\n );\r\n };\r\n\r\n return () => {\r\n if (action.value.dropdown && action.value.dropdown.length > 0) {\r\n return renderDropdownButton();\r\n }\r\n return renderButton();\r\n };\r\n },\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@use \"./index.scss\";\r\n</style>\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"C_ActionBar2.js","names":["$slots"],"sources":["../src/components/C_ActionBar/index.vue","../src/components/C_ActionBar/index.vue","../src/components/C_ActionBar/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2026-02-14\n * @Description: 通用操作按钮组件 - 配置化管理任何场景的按钮组\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2026 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-action-bar\"\n :class=\"{\n 'is-compact': finalConfig.compact,\n 'is-inline': finalConfig.inline,\n 'is-wrap': finalConfig.wrap,\n [`is-align-${finalConfig.align}`]: true,\n 'has-only-left':\n leftButtonList.length > 0 &&\n rightButtonList.length === 0 &&\n !$slots.center,\n 'has-only-right':\n rightButtonList.length > 0 &&\n leftButtonList.length === 0 &&\n !$slots.center,\n }\"\n >\n <div\n v-if=\"leftButtonList.length > 0\"\n class=\"actions-group actions-left\"\n :style=\"{ gap: `${finalConfig.gap}px` }\"\n >\n <template\n v-for=\"(action, index) in leftButtonList\"\n :key=\"action.key || `left-${index}`\"\n >\n <ActionButton\n :action=\"action\"\n @click=\"handleActionClick(action)\"\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\n />\n <NDivider\n v-if=\"\n finalConfig.showDivider &&\n index < leftButtonList.length - 1 &&\n finalConfig.dividerType === 'vertical'\n \"\n vertical\n class=\"action-divider\"\n />\n </template>\n </div>\n\n <div v-if=\"$slots.center\" class=\"actions-center\">\n <slot name=\"center\" />\n </div>\n\n <div\n v-if=\"rightButtonList.length > 0\"\n class=\"actions-group actions-right\"\n :style=\"{ gap: `${finalConfig.gap}px` }\"\n >\n <template\n v-for=\"(action, index) in rightButtonList\"\n :key=\"action.key || `right-${index}`\"\n >\n <ActionButton\n :action=\"action\"\n @click=\"handleActionClick(action)\"\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\n />\n <NDivider\n v-if=\"\n finalConfig.showDivider &&\n index < rightButtonList.length - 1 &&\n finalConfig.dividerType === 'vertical'\n \"\n vertical\n class=\"action-divider\"\n />\n </template>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, unref, h, withDirectives, defineComponent } from \"vue\";\nimport type { PropType } from \"vue\";\nimport { NButton, NTooltip, NDropdown, NDivider } from \"naive-ui\";\nimport C_Icon from \"../C_Icon/index.vue\";\nimport type {\n ActionItem,\n ActionDropdownItem,\n ActionBarConfig,\n TableActionsProps,\n TableActionsEmits,\n} from \"./types\";\n\ndefineOptions({ name: \"C_ActionBar\" });\n\nconst props = withDefaults(defineProps<TableActionsProps>(), {\n actions: () => [],\n leftActions: () => [],\n rightActions: () => [],\n config: () => ({}),\n});\n\nconst emit = defineEmits<TableActionsEmits>();\n\nconst defaultConfig: Required<ActionBarConfig> = {\n align: \"left\",\n size: \"medium\",\n gap: 8,\n wrap: false,\n showDivider: false,\n dividerType: \"vertical\",\n compact: false,\n inline: true,\n};\n\nconst finalConfig = computed<Required<ActionBarConfig>>(() => ({\n ...defaultConfig,\n ...props.config,\n}));\n\nconst leftButtonList = computed<ActionItem[]>(() => {\n if (props.leftActions && props.leftActions.length > 0) {\n return props.leftActions.filter((action) => shouldShowAction(action));\n }\n if (props.actions.length > 0) {\n const hasRightActions = props.rightActions && props.rightActions.length > 0;\n const hasRightGroup = props.actions.some(\n (action) => action.group === \"right\",\n );\n if (!hasRightActions && !hasRightGroup) {\n return props.actions.filter((action) => shouldShowAction(action));\n }\n return props.actions.filter(\n (action) => action.group === \"left\" && shouldShowAction(action),\n );\n }\n return [];\n});\n\nconst rightButtonList = computed<ActionItem[]>(() => {\n if (props.rightActions && props.rightActions.length > 0) {\n return props.rightActions.filter((action) => shouldShowAction(action));\n }\n return props.actions.filter(\n (action) => action.group === \"right\" && shouldShowAction(action),\n );\n});\n\nconst shouldShowAction = (action: ActionItem): boolean => {\n if (action.show === undefined) return true;\n return unref(action.show);\n};\n\nconst isActionDisabled = (action: ActionItem): boolean => {\n return unref(action.disabled) || false;\n};\n\nconst isActionLoading = (action: ActionItem): boolean => {\n return unref(action.loading) || false;\n};\n\nconst handleActionClick = async (action: ActionItem) => {\n if (action.dropdown && action.dropdown.length > 0) return;\n emit(\"action-click\", action);\n if (action.onClick) {\n await action.onClick();\n }\n};\n\nconst handleDropdownClick = async (\n item: ActionDropdownItem,\n action: ActionItem,\n) => {\n emit(\"dropdown-click\", item, action);\n if (item.onClick) {\n await item.onClick();\n }\n};\n\nconst ActionButton = defineComponent({\n name: \"ActionButton\",\n props: {\n action: {\n type: Object as PropType<ActionItem>,\n required: true,\n },\n },\n emits: [\"click\", \"dropdown-select\"],\n setup(props, { emit }) {\n const action = computed(() => props.action);\n\n const dropdownOptions = computed(() => {\n if (!action.value.dropdown) return [];\n return action.value.dropdown\n .filter((item) => {\n if (item.show === undefined) return true;\n return unref(item.show);\n })\n .map((item) => ({\n key: item.key,\n label: item.label,\n icon: item.icon\n ? () => h(C_Icon, { name: item.icon, size: 14 })\n : undefined,\n disabled: unref(item.disabled),\n }));\n });\n\n const handleDropdownSelect = (key: string) => {\n const item = action.value.dropdown?.find((d) => d.key === key);\n if (item) {\n emit(\"dropdown-select\", item);\n }\n };\n\n const createButtonVNode = (extraProps?: Record<string, any>) => {\n const button = h(\n NButton,\n {\n type: action.value.type || \"default\",\n size: action.value.size || finalConfig.value.size,\n loading: isActionLoading(action.value),\n disabled: isActionDisabled(action.value),\n ...extraProps,\n ...action.value.buttonProps,\n },\n {\n default: () => action.value.label,\n icon: action.value.icon\n ? () => h(C_Icon, { name: action.value.icon, size: 16 })\n : undefined,\n },\n );\n\n return action.value.directives && action.value.directives.length > 0\n ? withDirectives(button, action.value.directives as any)\n : button;\n };\n\n const renderButton = () => {\n const vnode = createButtonVNode({ onClick: () => emit(\"click\") });\n if (action.value.tooltip) {\n return h(\n NTooltip,\n { placement: \"top\" },\n {\n trigger: () => vnode,\n default: () => action.value.tooltip,\n },\n );\n }\n return vnode;\n };\n\n const renderDropdownButton = () => {\n const vnode = createButtonVNode();\n return h(\n NDropdown,\n {\n options: dropdownOptions.value,\n onSelect: handleDropdownSelect,\n },\n {\n default: () => vnode,\n },\n );\n };\n\n return () => {\n if (action.value.dropdown && action.value.dropdown.length > 0) {\n return renderDropdownButton();\n }\n return renderButton();\n };\n },\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"./index.scss\";\n</style>\n","/* unplugin-vue-components disabled */<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2026-02-14\n * @Description: 通用操作按钮组件 - 配置化管理任何场景的按钮组\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2026 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-action-bar\"\n :class=\"{\n 'is-compact': finalConfig.compact,\n 'is-inline': finalConfig.inline,\n 'is-wrap': finalConfig.wrap,\n [`is-align-${finalConfig.align}`]: true,\n 'has-only-left':\n leftButtonList.length > 0 &&\n rightButtonList.length === 0 &&\n !$slots.center,\n 'has-only-right':\n rightButtonList.length > 0 &&\n leftButtonList.length === 0 &&\n !$slots.center,\n }\"\n >\n <div\n v-if=\"leftButtonList.length > 0\"\n class=\"actions-group actions-left\"\n :style=\"{ gap: `${finalConfig.gap}px` }\"\n >\n <template\n v-for=\"(action, index) in leftButtonList\"\n :key=\"action.key || `left-${index}`\"\n >\n <ActionButton\n :action=\"action\"\n @click=\"handleActionClick(action)\"\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\n />\n <NDivider\n v-if=\"\n finalConfig.showDivider &&\n index < leftButtonList.length - 1 &&\n finalConfig.dividerType === 'vertical'\n \"\n vertical\n class=\"action-divider\"\n />\n </template>\n </div>\n\n <div v-if=\"$slots.center\" class=\"actions-center\">\n <slot name=\"center\" />\n </div>\n\n <div\n v-if=\"rightButtonList.length > 0\"\n class=\"actions-group actions-right\"\n :style=\"{ gap: `${finalConfig.gap}px` }\"\n >\n <template\n v-for=\"(action, index) in rightButtonList\"\n :key=\"action.key || `right-${index}`\"\n >\n <ActionButton\n :action=\"action\"\n @click=\"handleActionClick(action)\"\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\n />\n <NDivider\n v-if=\"\n finalConfig.showDivider &&\n index < rightButtonList.length - 1 &&\n finalConfig.dividerType === 'vertical'\n \"\n vertical\n class=\"action-divider\"\n />\n </template>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, unref, h, withDirectives, defineComponent } from \"vue\";\nimport type { PropType } from \"vue\";\nimport { NButton, NTooltip, NDropdown, NDivider } from \"naive-ui\";\nimport C_Icon from \"../C_Icon/index.vue\";\nimport type {\n ActionItem,\n ActionDropdownItem,\n ActionBarConfig,\n TableActionsProps,\n TableActionsEmits,\n} from \"./types\";\n\ndefineOptions({ name: \"C_ActionBar\" });\n\nconst props = withDefaults(defineProps<TableActionsProps>(), {\n actions: () => [],\n leftActions: () => [],\n rightActions: () => [],\n config: () => ({}),\n});\n\nconst emit = defineEmits<TableActionsEmits>();\n\nconst defaultConfig: Required<ActionBarConfig> = {\n align: \"left\",\n size: \"medium\",\n gap: 8,\n wrap: false,\n showDivider: false,\n dividerType: \"vertical\",\n compact: false,\n inline: true,\n};\n\nconst finalConfig = computed<Required<ActionBarConfig>>(() => ({\n ...defaultConfig,\n ...props.config,\n}));\n\nconst leftButtonList = computed<ActionItem[]>(() => {\n if (props.leftActions && props.leftActions.length > 0) {\n return props.leftActions.filter((action) => shouldShowAction(action));\n }\n if (props.actions.length > 0) {\n const hasRightActions = props.rightActions && props.rightActions.length > 0;\n const hasRightGroup = props.actions.some(\n (action) => action.group === \"right\",\n );\n if (!hasRightActions && !hasRightGroup) {\n return props.actions.filter((action) => shouldShowAction(action));\n }\n return props.actions.filter(\n (action) => action.group === \"left\" && shouldShowAction(action),\n );\n }\n return [];\n});\n\nconst rightButtonList = computed<ActionItem[]>(() => {\n if (props.rightActions && props.rightActions.length > 0) {\n return props.rightActions.filter((action) => shouldShowAction(action));\n }\n return props.actions.filter(\n (action) => action.group === \"right\" && shouldShowAction(action),\n );\n});\n\nconst shouldShowAction = (action: ActionItem): boolean => {\n if (action.show === undefined) return true;\n return unref(action.show);\n};\n\nconst isActionDisabled = (action: ActionItem): boolean => {\n return unref(action.disabled) || false;\n};\n\nconst isActionLoading = (action: ActionItem): boolean => {\n return unref(action.loading) || false;\n};\n\nconst handleActionClick = async (action: ActionItem) => {\n if (action.dropdown && action.dropdown.length > 0) return;\n emit(\"action-click\", action);\n if (action.onClick) {\n await action.onClick();\n }\n};\n\nconst handleDropdownClick = async (\n item: ActionDropdownItem,\n action: ActionItem,\n) => {\n emit(\"dropdown-click\", item, action);\n if (item.onClick) {\n await item.onClick();\n }\n};\n\nconst ActionButton = defineComponent({\n name: \"ActionButton\",\n props: {\n action: {\n type: Object as PropType<ActionItem>,\n required: true,\n },\n },\n emits: [\"click\", \"dropdown-select\"],\n setup(props, { emit }) {\n const action = computed(() => props.action);\n\n const dropdownOptions = computed(() => {\n if (!action.value.dropdown) return [];\n return action.value.dropdown\n .filter((item) => {\n if (item.show === undefined) return true;\n return unref(item.show);\n })\n .map((item) => ({\n key: item.key,\n label: item.label,\n icon: item.icon\n ? () => h(C_Icon, { name: item.icon, size: 14 })\n : undefined,\n disabled: unref(item.disabled),\n }));\n });\n\n const handleDropdownSelect = (key: string) => {\n const item = action.value.dropdown?.find((d) => d.key === key);\n if (item) {\n emit(\"dropdown-select\", item);\n }\n };\n\n const createButtonVNode = (extraProps?: Record<string, any>) => {\n const button = h(\n NButton,\n {\n type: action.value.type || \"default\",\n size: action.value.size || finalConfig.value.size,\n loading: isActionLoading(action.value),\n disabled: isActionDisabled(action.value),\n ...extraProps,\n ...action.value.buttonProps,\n },\n {\n default: () => action.value.label,\n icon: action.value.icon\n ? () => h(C_Icon, { name: action.value.icon, size: 16 })\n : undefined,\n },\n );\n\n return action.value.directives && action.value.directives.length > 0\n ? withDirectives(button, action.value.directives as any)\n : button;\n };\n\n const renderButton = () => {\n const vnode = createButtonVNode({ onClick: () => emit(\"click\") });\n if (action.value.tooltip) {\n return h(\n NTooltip,\n { placement: \"top\" },\n {\n trigger: () => vnode,\n default: () => action.value.tooltip,\n },\n );\n }\n return vnode;\n };\n\n const renderDropdownButton = () => {\n const vnode = createButtonVNode();\n return h(\n NDropdown,\n {\n options: dropdownOptions.value,\n onSelect: handleDropdownSelect,\n },\n {\n default: () => vnode,\n },\n );\n };\n\n return () => {\n if (action.value.dropdown && action.value.dropdown.length > 0) {\n return renderDropdownButton();\n }\n return renderButton();\n };\n },\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"./index.scss\";\n</style>\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2026-02-14\n * @Description: 通用操作按钮组件 - 配置化管理任何场景的按钮组\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2026 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-action-bar\"\n :class=\"{\n 'is-compact': finalConfig.compact,\n 'is-inline': finalConfig.inline,\n 'is-wrap': finalConfig.wrap,\n [`is-align-${finalConfig.align}`]: true,\n 'has-only-left':\n leftButtonList.length > 0 &&\n rightButtonList.length === 0 &&\n !$slots.center,\n 'has-only-right':\n rightButtonList.length > 0 &&\n leftButtonList.length === 0 &&\n !$slots.center,\n }\"\n >\n <div\n v-if=\"leftButtonList.length > 0\"\n class=\"actions-group actions-left\"\n :style=\"{ gap: `${finalConfig.gap}px` }\"\n >\n <template\n v-for=\"(action, index) in leftButtonList\"\n :key=\"action.key || `left-${index}`\"\n >\n <ActionButton\n :action=\"action\"\n @click=\"handleActionClick(action)\"\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\n />\n <NDivider\n v-if=\"\n finalConfig.showDivider &&\n index < leftButtonList.length - 1 &&\n finalConfig.dividerType === 'vertical'\n \"\n vertical\n class=\"action-divider\"\n />\n </template>\n </div>\n\n <div v-if=\"$slots.center\" class=\"actions-center\">\n <slot name=\"center\" />\n </div>\n\n <div\n v-if=\"rightButtonList.length > 0\"\n class=\"actions-group actions-right\"\n :style=\"{ gap: `${finalConfig.gap}px` }\"\n >\n <template\n v-for=\"(action, index) in rightButtonList\"\n :key=\"action.key || `right-${index}`\"\n >\n <ActionButton\n :action=\"action\"\n @click=\"handleActionClick(action)\"\n @dropdown-select=\"(item) => handleDropdownClick(item, action)\"\n />\n <NDivider\n v-if=\"\n finalConfig.showDivider &&\n index < rightButtonList.length - 1 &&\n finalConfig.dividerType === 'vertical'\n \"\n vertical\n class=\"action-divider\"\n />\n </template>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, unref, h, withDirectives, defineComponent } from \"vue\";\nimport type { PropType } from \"vue\";\nimport { NButton, NTooltip, NDropdown, NDivider } from \"naive-ui\";\nimport C_Icon from \"../C_Icon/index.vue\";\nimport type {\n ActionItem,\n ActionDropdownItem,\n ActionBarConfig,\n TableActionsProps,\n TableActionsEmits,\n} from \"./types\";\n\ndefineOptions({ name: \"C_ActionBar\" });\n\nconst props = withDefaults(defineProps<TableActionsProps>(), {\n actions: () => [],\n leftActions: () => [],\n rightActions: () => [],\n config: () => ({}),\n});\n\nconst emit = defineEmits<TableActionsEmits>();\n\nconst defaultConfig: Required<ActionBarConfig> = {\n align: \"left\",\n size: \"medium\",\n gap: 8,\n wrap: false,\n showDivider: false,\n dividerType: \"vertical\",\n compact: false,\n inline: true,\n};\n\nconst finalConfig = computed<Required<ActionBarConfig>>(() => ({\n ...defaultConfig,\n ...props.config,\n}));\n\nconst leftButtonList = computed<ActionItem[]>(() => {\n if (props.leftActions && props.leftActions.length > 0) {\n return props.leftActions.filter((action) => shouldShowAction(action));\n }\n if (props.actions.length > 0) {\n const hasRightActions = props.rightActions && props.rightActions.length > 0;\n const hasRightGroup = props.actions.some(\n (action) => action.group === \"right\",\n );\n if (!hasRightActions && !hasRightGroup) {\n return props.actions.filter((action) => shouldShowAction(action));\n }\n return props.actions.filter(\n (action) => action.group === \"left\" && shouldShowAction(action),\n );\n }\n return [];\n});\n\nconst rightButtonList = computed<ActionItem[]>(() => {\n if (props.rightActions && props.rightActions.length > 0) {\n return props.rightActions.filter((action) => shouldShowAction(action));\n }\n return props.actions.filter(\n (action) => action.group === \"right\" && shouldShowAction(action),\n );\n});\n\nconst shouldShowAction = (action: ActionItem): boolean => {\n if (action.show === undefined) return true;\n return unref(action.show);\n};\n\nconst isActionDisabled = (action: ActionItem): boolean => {\n return unref(action.disabled) || false;\n};\n\nconst isActionLoading = (action: ActionItem): boolean => {\n return unref(action.loading) || false;\n};\n\nconst handleActionClick = async (action: ActionItem) => {\n if (action.dropdown && action.dropdown.length > 0) return;\n emit(\"action-click\", action);\n if (action.onClick) {\n await action.onClick();\n }\n};\n\nconst handleDropdownClick = async (\n item: ActionDropdownItem,\n action: ActionItem,\n) => {\n emit(\"dropdown-click\", item, action);\n if (item.onClick) {\n await item.onClick();\n }\n};\n\nconst ActionButton = defineComponent({\n name: \"ActionButton\",\n props: {\n action: {\n type: Object as PropType<ActionItem>,\n required: true,\n },\n },\n emits: [\"click\", \"dropdown-select\"],\n setup(props, { emit }) {\n const action = computed(() => props.action);\n\n const dropdownOptions = computed(() => {\n if (!action.value.dropdown) return [];\n return action.value.dropdown\n .filter((item) => {\n if (item.show === undefined) return true;\n return unref(item.show);\n })\n .map((item) => ({\n key: item.key,\n label: item.label,\n icon: item.icon\n ? () => h(C_Icon, { name: item.icon, size: 14 })\n : undefined,\n disabled: unref(item.disabled),\n }));\n });\n\n const handleDropdownSelect = (key: string) => {\n const item = action.value.dropdown?.find((d) => d.key === key);\n if (item) {\n emit(\"dropdown-select\", item);\n }\n };\n\n const createButtonVNode = (extraProps?: Record<string, any>) => {\n const button = h(\n NButton,\n {\n type: action.value.type || \"default\",\n size: action.value.size || finalConfig.value.size,\n loading: isActionLoading(action.value),\n disabled: isActionDisabled(action.value),\n ...extraProps,\n ...action.value.buttonProps,\n },\n {\n default: () => action.value.label,\n icon: action.value.icon\n ? () => h(C_Icon, { name: action.value.icon, size: 16 })\n : undefined,\n },\n );\n\n return action.value.directives && action.value.directives.length > 0\n ? withDirectives(button, action.value.directives as any)\n : button;\n };\n\n const renderButton = () => {\n const vnode = createButtonVNode({ onClick: () => emit(\"click\") });\n if (action.value.tooltip) {\n return h(\n NTooltip,\n { placement: \"top\" },\n {\n trigger: () => vnode,\n default: () => action.value.tooltip,\n },\n );\n }\n return vnode;\n };\n\n const renderDropdownButton = () => {\n const vnode = createButtonVNode();\n return h(\n NDropdown,\n {\n options: dropdownOptions.value,\n onSelect: handleDropdownSelect,\n },\n {\n default: () => vnode,\n },\n );\n };\n\n return () => {\n if (action.value.dropdown && action.value.dropdown.length > 0) {\n return renderDropdownButton();\n }\n return renderButton();\n };\n },\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"./index.scss\";\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_AntV-A3NXx_sF.css","names":[],"sources":["../src/components/C_AntV/layout/ER/index.vue?vue&type=style&index=0&scoped=beb83641&lang.scss","../src/components/C_AntV/layout/BPMN/index.vue?vue&type=style&index=0&scoped=c27dede7&lang.scss","../src/components/C_AntV/layout/UML/components/UMLClassEditor.vue?vue&type=style&index=0&scoped=e47033f6&lang.scss","../src/components/C_AntV/layout/UML/index.vue?vue&type=style&index=0&scoped=1092fbdb&lang.scss","../src/components/C_AntV/index.vue?vue&type=style&index=0&scoped=f1ab77ea&lang.css"],"sourcesContent":["/* unplugin-vue-components disabled *//* ER 图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.er-layout[data-v-beb83641] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.er-layout .toolbar[data-v-beb83641] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.er-layout .graph-container[data-v-beb83641] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.er-layout .graph-container[data-v-beb83641] .x6-graph,\n.er-layout .graph-container[data-v-beb83641] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.er-layout .graph-container[data-v-beb83641] .x6-graph-svg-stage {\n outline: none;\n}\n.er-layout .table-editor[data-v-beb83641] {\n height: 100%;\n overflow-y: auto;\n padding: 0 4px;\n}\n.er-layout .table-editor[data-v-beb83641]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor[data-v-beb83641]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] {\n max-height: calc(100vh - 400px);\n overflow-y: auto;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-beb83641] {\n margin-bottom: 16px;\n}\n.er-layout .table-editor .fields-container .field-card .field-header[data-v-beb83641] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 13px;\n font-weight: 500;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-beb83641] .n-card-header {\n padding: 10px 16px 8px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-beb83641] .n-card__content {\n padding: 12px 16px 16px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] .n-select {\n min-width: 140px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] .n-select .n-select-menu {\n max-height: 200px;\n z-index: 9999;\n}\n.er-layout .table-editor .fields-container .n-form-item[data-v-beb83641] {\n margin-bottom: 8px;\n}\n.er-layout .table-editor .fields-container .n-form-item .n-form-item-label[data-v-beb83641] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] .n-input {\n min-width: 100px;\n}","/* unplugin-vue-components disabled *//* BPMN 布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.bpmn-layout[data-v-c27dede7] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n background: var(--n-color-embedded);\n border-radius: 6px;\n overflow: hidden;\n}\n.bpmn-layout .top-toolbar[data-v-c27dede7] {\n background: var(--c-bg-card);\n border-bottom: 1px solid var(--c-border);\n padding: 10px 16px;\n flex-shrink: 0;\n}\n.bpmn-layout .top-toolbar .toolbar-section[data-v-c27dede7] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n.bpmn-layout .top-toolbar .toolbar-section .toolbar-group[data-v-c27dede7] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.bpmn-layout .main-content[data-v-c27dede7] {\n display: flex;\n flex: 1;\n height: 0;\n}\n.bpmn-layout .main-content .left-panel[data-v-c27dede7] {\n width: 180px;\n background: var(--c-bg-card);\n border-right: 1px solid var(--c-border);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n}\n.bpmn-layout .main-content .left-panel .panel-title[data-v-c27dede7] {\n padding: 16px;\n font-weight: 600;\n font-size: 14px;\n color: var(--c-text-1);\n border-bottom: 1px solid var(--c-border);\n}\n.bpmn-layout .main-content .left-panel .element-grid[data-v-c27dede7] {\n padding: 16px 12px;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-c27dede7] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 16px 8px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--c-text-2);\n transition: all 0.2s ease;\n border: 1px solid transparent;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-c27dede7]:hover {\n background: rgba(24, 144, 255, 0.1);\n border-color: rgba(24, 144, 255, 0.4);\n color: var(--c-primary);\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon[data-v-c27dede7] {\n flex-shrink: 0;\n border: 2px solid var(--c-border);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.circle[data-v-c27dede7] {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.rect[data-v-c27dede7] {\n width: 32px;\n height: 20px;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.diamond[data-v-c27dede7] {\n width: 24px;\n height: 24px;\n transform: rotate(45deg);\n border-radius: 3px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.start-event[data-v-c27dede7] {\n border-color: #52c41a;\n background: #f6ffed;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.end-event[data-v-c27dede7] {\n border-color: #ff4d4f;\n background: #fff2f0;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.activity[data-v-c27dede7] {\n border-color: #1890ff;\n background: #e6f7ff;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.gateway[data-v-c27dede7] {\n border-color: #722ed1;\n background: #f9f0ff;\n}\n.bpmn-layout .main-content .graph-wrapper[data-v-c27dede7] {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] .x6-graph,\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] .x6-graph-svg-stage {\n outline: none;\n}\n.n-drawer .property-panel[data-v-c27dede7] {\n padding: 16px;\n}\n.n-drawer .property-panel .property-item[data-v-c27dede7] {\n margin-bottom: 16px;\n}\n.n-drawer .property-panel .property-item .property-label[data-v-c27dede7] {\n font-size: 14px;\n font-weight: 500;\n color: var(--c-text-1);\n margin-bottom: 8px;\n}\n.n-drawer .property-panel .form-actions[data-v-c27dede7] {\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--c-border);\n}","/* unplugin-vue-components disabled */.class-editor[data-v-e47033f6] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.section[data-v-e47033f6] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.section[data-v-e47033f6]::-webkit-scrollbar {\n width: 6px;\n}\n.section[data-v-e47033f6]::-webkit-scrollbar-thumb {\n background: #d4d4d4;\n border-radius: 3px;\n}\n.section-header[data-v-e47033f6] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.item[data-v-e47033f6] {\n margin-bottom: 8px;\n}\n.section .n-card[data-v-e47033f6] {\n border: 1px solid #e8e8e8;\n}\n.section .n-card-header[data-v-e47033f6] {\n padding: 8px 12px;\n background: #fafafa;\n border-bottom: 1px solid #e8e8e8;\n}\n.section .n-card__content[data-v-e47033f6] {\n padding: 12px;\n}\n.section .n-form-item[data-v-e47033f6] {\n margin-bottom: 0;\n}\n.section .n-form-item-label[data-v-e47033f6] {\n font-size: 12px;\n margin-bottom: 4px;\n color: #666;\n}","/* unplugin-vue-components disabled *//* UML 类图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.uml-layout[data-v-1092fbdb] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.uml-layout .toolbar[data-v-1092fbdb] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.uml-layout .graph-container[data-v-1092fbdb] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.uml-layout .graph-container[data-v-1092fbdb] .x6-graph,\n.uml-layout .graph-container[data-v-1092fbdb] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.uml-layout .graph-container[data-v-1092fbdb] .x6-graph-svg-stage {\n outline: none;\n}\n\n/* 抽屉编辑器样式 - 使用单独的样式块避免 scoped 问题 */\n.class-editor[data-v-1092fbdb] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.class-editor[data-v-1092fbdb]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor[data-v-1092fbdb]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section[data-v-1092fbdb] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.class-editor .section[data-v-1092fbdb]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor .section[data-v-1092fbdb]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section .item[data-v-1092fbdb] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-card[data-v-1092fbdb] {\n border: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card-header[data-v-1092fbdb] {\n padding: 8px 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card__content[data-v-1092fbdb] {\n padding: 12px;\n}\n.class-editor .section .n-form-item[data-v-1092fbdb] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-form-item .n-form-item-label[data-v-1092fbdb] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}","/* unplugin-vue-components disabled */\n.c-antv-container[data-v-f1ab77ea] {\r\n width: 100%;\r\n height: 100%;\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxFA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_AntV-BY8jqqmi.css","names":[],"sources":["../src/components/C_AntV/layout/ER/index.vue?vue&type=style&index=0&scoped=b168f2c7&lang.scss","../src/components/C_AntV/layout/BPMN/index.vue?vue&type=style&index=0&scoped=1fa85b2c&lang.scss","../src/components/C_AntV/layout/UML/components/UMLClassEditor.vue?vue&type=style&index=0&scoped=ea96ef84&lang.scss","../src/components/C_AntV/layout/UML/index.vue?vue&type=style&index=0&scoped=fcc8adc9&lang.scss","../src/components/C_AntV/index.vue?vue&type=style&index=0&scoped=f1ab77ea&lang.css"],"sourcesContent":["/* unplugin-vue-components disabled *//* ER 图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.er-layout[data-v-b168f2c7] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.er-layout .toolbar[data-v-b168f2c7] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.er-layout .graph-container[data-v-b168f2c7] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.er-layout .graph-container[data-v-b168f2c7] .x6-graph,\n.er-layout .graph-container[data-v-b168f2c7] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.er-layout .graph-container[data-v-b168f2c7] .x6-graph-svg-stage {\n outline: none;\n}\n.er-layout .table-editor[data-v-b168f2c7] {\n height: 100%;\n overflow-y: auto;\n padding: 0 4px;\n}\n.er-layout .table-editor[data-v-b168f2c7]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor[data-v-b168f2c7]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] {\n max-height: calc(100vh - 400px);\n overflow-y: auto;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-b168f2c7] {\n margin-bottom: 16px;\n}\n.er-layout .table-editor .fields-container .field-card .field-header[data-v-b168f2c7] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 13px;\n font-weight: 500;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-b168f2c7] .n-card-header {\n padding: 10px 16px 8px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-b168f2c7] .n-card__content {\n padding: 12px 16px 16px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] .n-select {\n min-width: 140px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] .n-select .n-select-menu {\n max-height: 200px;\n z-index: 9999;\n}\n.er-layout .table-editor .fields-container .n-form-item[data-v-b168f2c7] {\n margin-bottom: 8px;\n}\n.er-layout .table-editor .fields-container .n-form-item .n-form-item-label[data-v-b168f2c7] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] .n-input {\n min-width: 100px;\n}","/* unplugin-vue-components disabled *//* BPMN 布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.bpmn-layout[data-v-1fa85b2c] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n background: var(--n-color-embedded);\n border-radius: 6px;\n overflow: hidden;\n}\n.bpmn-layout .top-toolbar[data-v-1fa85b2c] {\n background: var(--c-bg-card);\n border-bottom: 1px solid var(--c-border);\n padding: 10px 16px;\n flex-shrink: 0;\n}\n.bpmn-layout .top-toolbar .toolbar-section[data-v-1fa85b2c] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n.bpmn-layout .top-toolbar .toolbar-section .toolbar-group[data-v-1fa85b2c] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.bpmn-layout .main-content[data-v-1fa85b2c] {\n display: flex;\n flex: 1;\n height: 0;\n}\n.bpmn-layout .main-content .left-panel[data-v-1fa85b2c] {\n width: 180px;\n background: var(--c-bg-card);\n border-right: 1px solid var(--c-border);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n}\n.bpmn-layout .main-content .left-panel .panel-title[data-v-1fa85b2c] {\n padding: 16px;\n font-weight: 600;\n font-size: 14px;\n color: var(--c-text-1);\n border-bottom: 1px solid var(--c-border);\n}\n.bpmn-layout .main-content .left-panel .element-grid[data-v-1fa85b2c] {\n padding: 16px 12px;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-1fa85b2c] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 16px 8px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--c-text-2);\n transition: all 0.2s ease;\n border: 1px solid transparent;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-1fa85b2c]:hover {\n background: rgba(24, 144, 255, 0.1);\n border-color: rgba(24, 144, 255, 0.4);\n color: var(--c-primary);\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon[data-v-1fa85b2c] {\n flex-shrink: 0;\n border: 2px solid var(--c-border);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.circle[data-v-1fa85b2c] {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.rect[data-v-1fa85b2c] {\n width: 32px;\n height: 20px;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.diamond[data-v-1fa85b2c] {\n width: 24px;\n height: 24px;\n transform: rotate(45deg);\n border-radius: 3px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.start-event[data-v-1fa85b2c] {\n border-color: #52c41a;\n background: #f6ffed;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.end-event[data-v-1fa85b2c] {\n border-color: #ff4d4f;\n background: #fff2f0;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.activity[data-v-1fa85b2c] {\n border-color: #1890ff;\n background: #e6f7ff;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.gateway[data-v-1fa85b2c] {\n border-color: #722ed1;\n background: #f9f0ff;\n}\n.bpmn-layout .main-content .graph-wrapper[data-v-1fa85b2c] {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] .x6-graph,\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] .x6-graph-svg-stage {\n outline: none;\n}\n.n-drawer .property-panel[data-v-1fa85b2c] {\n padding: 16px;\n}\n.n-drawer .property-panel .property-item[data-v-1fa85b2c] {\n margin-bottom: 16px;\n}\n.n-drawer .property-panel .property-item .property-label[data-v-1fa85b2c] {\n font-size: 14px;\n font-weight: 500;\n color: var(--c-text-1);\n margin-bottom: 8px;\n}\n.n-drawer .property-panel .form-actions[data-v-1fa85b2c] {\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--c-border);\n}","/* unplugin-vue-components disabled */.class-editor[data-v-ea96ef84] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.section[data-v-ea96ef84] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.section[data-v-ea96ef84]::-webkit-scrollbar {\n width: 6px;\n}\n.section[data-v-ea96ef84]::-webkit-scrollbar-thumb {\n background: #d4d4d4;\n border-radius: 3px;\n}\n.section-header[data-v-ea96ef84] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.item[data-v-ea96ef84] {\n margin-bottom: 8px;\n}\n.section .n-card[data-v-ea96ef84] {\n border: 1px solid #e8e8e8;\n}\n.section .n-card-header[data-v-ea96ef84] {\n padding: 8px 12px;\n background: #fafafa;\n border-bottom: 1px solid #e8e8e8;\n}\n.section .n-card__content[data-v-ea96ef84] {\n padding: 12px;\n}\n.section .n-form-item[data-v-ea96ef84] {\n margin-bottom: 0;\n}\n.section .n-form-item-label[data-v-ea96ef84] {\n font-size: 12px;\n margin-bottom: 4px;\n color: #666;\n}","/* unplugin-vue-components disabled *//* UML 类图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.uml-layout[data-v-fcc8adc9] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.uml-layout .toolbar[data-v-fcc8adc9] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.uml-layout .graph-container[data-v-fcc8adc9] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.uml-layout .graph-container[data-v-fcc8adc9] .x6-graph,\n.uml-layout .graph-container[data-v-fcc8adc9] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.uml-layout .graph-container[data-v-fcc8adc9] .x6-graph-svg-stage {\n outline: none;\n}\n\n/* 抽屉编辑器样式 - 使用单独的样式块避免 scoped 问题 */\n.class-editor[data-v-fcc8adc9] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.class-editor[data-v-fcc8adc9]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor[data-v-fcc8adc9]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section[data-v-fcc8adc9] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.class-editor .section[data-v-fcc8adc9]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor .section[data-v-fcc8adc9]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section .item[data-v-fcc8adc9] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-card[data-v-fcc8adc9] {\n border: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card-header[data-v-fcc8adc9] {\n padding: 8px 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card__content[data-v-fcc8adc9] {\n padding: 12px;\n}\n.class-editor .section .n-form-item[data-v-fcc8adc9] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-form-item .n-form-item-label[data-v-fcc8adc9] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}","/* unplugin-vue-components disabled */\n.c-antv-container[data-v-f1ab77ea] {\r\n width: 100%;\r\n height: 100%;\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxFA;AACA;AACA;AACA;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_AntV-D2Zp2qQF.css","names":[],"sources":["../src/components/C_AntV/layout/ER/index.vue?vue&type=style&index=0&scoped=beb83641&lang.scss","../src/components/C_AntV/layout/BPMN/index.vue?vue&type=style&index=0&scoped=c27dede7&lang.scss","../src/components/C_AntV/layout/UML/components/UMLClassEditor.vue?vue&type=style&index=0&scoped=e47033f6&lang.scss","../src/components/C_AntV/layout/UML/index.vue?vue&type=style&index=0&scoped=1092fbdb&lang.scss","../src/components/C_AntV/index.vue?vue&type=style&index=0&scoped=f1ab77ea&lang.css"],"sourcesContent":["/* unplugin-vue-components disabled *//* ER 图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.er-layout[data-v-beb83641] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.er-layout .toolbar[data-v-beb83641] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.er-layout .graph-container[data-v-beb83641] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.er-layout .graph-container[data-v-beb83641] .x6-graph,\n.er-layout .graph-container[data-v-beb83641] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.er-layout .graph-container[data-v-beb83641] .x6-graph-svg-stage {\n outline: none;\n}\n.er-layout .table-editor[data-v-beb83641] {\n height: 100%;\n overflow-y: auto;\n padding: 0 4px;\n}\n.er-layout .table-editor[data-v-beb83641]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor[data-v-beb83641]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] {\n max-height: calc(100vh - 400px);\n overflow-y: auto;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-beb83641] {\n margin-bottom: 16px;\n}\n.er-layout .table-editor .fields-container .field-card .field-header[data-v-beb83641] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 13px;\n font-weight: 500;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-beb83641] .n-card-header {\n padding: 10px 16px 8px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-beb83641] .n-card__content {\n padding: 12px 16px 16px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] .n-select {\n min-width: 140px;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] .n-select .n-select-menu {\n max-height: 200px;\n z-index: 9999;\n}\n.er-layout .table-editor .fields-container .n-form-item[data-v-beb83641] {\n margin-bottom: 8px;\n}\n.er-layout .table-editor .fields-container .n-form-item .n-form-item-label[data-v-beb83641] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}\n.er-layout .table-editor .fields-container[data-v-beb83641] .n-input {\n min-width: 100px;\n}","/* unplugin-vue-components disabled *//* BPMN 布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.bpmn-layout[data-v-c27dede7] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n background: var(--n-color-embedded);\n border-radius: 6px;\n overflow: hidden;\n}\n.bpmn-layout .top-toolbar[data-v-c27dede7] {\n background: var(--c-bg-card);\n border-bottom: 1px solid var(--c-border);\n padding: 10px 16px;\n flex-shrink: 0;\n}\n.bpmn-layout .top-toolbar .toolbar-section[data-v-c27dede7] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n.bpmn-layout .top-toolbar .toolbar-section .toolbar-group[data-v-c27dede7] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.bpmn-layout .main-content[data-v-c27dede7] {\n display: flex;\n flex: 1;\n height: 0;\n}\n.bpmn-layout .main-content .left-panel[data-v-c27dede7] {\n width: 180px;\n background: var(--c-bg-card);\n border-right: 1px solid var(--c-border);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n}\n.bpmn-layout .main-content .left-panel .panel-title[data-v-c27dede7] {\n padding: 16px;\n font-weight: 600;\n font-size: 14px;\n color: var(--c-text-1);\n border-bottom: 1px solid var(--c-border);\n}\n.bpmn-layout .main-content .left-panel .element-grid[data-v-c27dede7] {\n padding: 16px 12px;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-c27dede7] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 16px 8px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--c-text-2);\n transition: all 0.2s ease;\n border: 1px solid transparent;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-c27dede7]:hover {\n background: rgba(24, 144, 255, 0.1);\n border-color: rgba(24, 144, 255, 0.4);\n color: var(--c-primary);\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon[data-v-c27dede7] {\n flex-shrink: 0;\n border: 2px solid var(--c-border);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.circle[data-v-c27dede7] {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.rect[data-v-c27dede7] {\n width: 32px;\n height: 20px;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.diamond[data-v-c27dede7] {\n width: 24px;\n height: 24px;\n transform: rotate(45deg);\n border-radius: 3px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.start-event[data-v-c27dede7] {\n border-color: #52c41a;\n background: #f6ffed;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.end-event[data-v-c27dede7] {\n border-color: #ff4d4f;\n background: #fff2f0;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.activity[data-v-c27dede7] {\n border-color: #1890ff;\n background: #e6f7ff;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.gateway[data-v-c27dede7] {\n border-color: #722ed1;\n background: #f9f0ff;\n}\n.bpmn-layout .main-content .graph-wrapper[data-v-c27dede7] {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] .x6-graph,\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-c27dede7] .x6-graph-svg-stage {\n outline: none;\n}\n.n-drawer .property-panel[data-v-c27dede7] {\n padding: 16px;\n}\n.n-drawer .property-panel .property-item[data-v-c27dede7] {\n margin-bottom: 16px;\n}\n.n-drawer .property-panel .property-item .property-label[data-v-c27dede7] {\n font-size: 14px;\n font-weight: 500;\n color: var(--c-text-1);\n margin-bottom: 8px;\n}\n.n-drawer .property-panel .form-actions[data-v-c27dede7] {\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--c-border);\n}","/* unplugin-vue-components disabled */.class-editor[data-v-e47033f6] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.section[data-v-e47033f6] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.section[data-v-e47033f6]::-webkit-scrollbar {\n width: 6px;\n}\n.section[data-v-e47033f6]::-webkit-scrollbar-thumb {\n background: #d4d4d4;\n border-radius: 3px;\n}\n.section-header[data-v-e47033f6] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.item[data-v-e47033f6] {\n margin-bottom: 8px;\n}\n.section .n-card[data-v-e47033f6] {\n border: 1px solid #e8e8e8;\n}\n.section .n-card-header[data-v-e47033f6] {\n padding: 8px 12px;\n background: #fafafa;\n border-bottom: 1px solid #e8e8e8;\n}\n.section .n-card__content[data-v-e47033f6] {\n padding: 12px;\n}\n.section .n-form-item[data-v-e47033f6] {\n margin-bottom: 0;\n}\n.section .n-form-item-label[data-v-e47033f6] {\n font-size: 12px;\n margin-bottom: 4px;\n color: #666;\n}","/* unplugin-vue-components disabled *//* UML 类图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.uml-layout[data-v-1092fbdb] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.uml-layout .toolbar[data-v-1092fbdb] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.uml-layout .graph-container[data-v-1092fbdb] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.uml-layout .graph-container[data-v-1092fbdb] .x6-graph,\n.uml-layout .graph-container[data-v-1092fbdb] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.uml-layout .graph-container[data-v-1092fbdb] .x6-graph-svg-stage {\n outline: none;\n}\n\n/* 抽屉编辑器样式 - 使用单独的样式块避免 scoped 问题 */\n.class-editor[data-v-1092fbdb] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.class-editor[data-v-1092fbdb]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor[data-v-1092fbdb]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section[data-v-1092fbdb] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.class-editor .section[data-v-1092fbdb]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor .section[data-v-1092fbdb]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section .item[data-v-1092fbdb] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-card[data-v-1092fbdb] {\n border: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card-header[data-v-1092fbdb] {\n padding: 8px 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card__content[data-v-1092fbdb] {\n padding: 12px;\n}\n.class-editor .section .n-form-item[data-v-1092fbdb] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-form-item .n-form-item-label[data-v-1092fbdb] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}","/* unplugin-vue-components disabled */\n.c-antv-container[data-v-f1ab77ea] {\r\n width: 100%;\r\n height: 100%;\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxFA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_AntV-BbkHc-_a.css","names":[],"sources":["../src/components/C_AntV/layout/ER/index.vue?vue&type=style&index=0&scoped=b168f2c7&lang.scss","../src/components/C_AntV/layout/BPMN/index.vue?vue&type=style&index=0&scoped=1fa85b2c&lang.scss","../src/components/C_AntV/layout/UML/components/UMLClassEditor.vue?vue&type=style&index=0&scoped=ea96ef84&lang.scss","../src/components/C_AntV/layout/UML/index.vue?vue&type=style&index=0&scoped=fcc8adc9&lang.scss","../src/components/C_AntV/index.vue?vue&type=style&index=0&scoped=f1ab77ea&lang.css"],"sourcesContent":["/* unplugin-vue-components disabled *//* ER 图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.er-layout[data-v-b168f2c7] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.er-layout .toolbar[data-v-b168f2c7] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.er-layout .graph-container[data-v-b168f2c7] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.er-layout .graph-container[data-v-b168f2c7] .x6-graph,\n.er-layout .graph-container[data-v-b168f2c7] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.er-layout .graph-container[data-v-b168f2c7] .x6-graph-svg-stage {\n outline: none;\n}\n.er-layout .table-editor[data-v-b168f2c7] {\n height: 100%;\n overflow-y: auto;\n padding: 0 4px;\n}\n.er-layout .table-editor[data-v-b168f2c7]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor[data-v-b168f2c7]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] {\n max-height: calc(100vh - 400px);\n overflow-y: auto;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7]::-webkit-scrollbar {\n width: 6px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-b168f2c7] {\n margin-bottom: 16px;\n}\n.er-layout .table-editor .fields-container .field-card .field-header[data-v-b168f2c7] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 13px;\n font-weight: 500;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-b168f2c7] .n-card-header {\n padding: 10px 16px 8px;\n}\n.er-layout .table-editor .fields-container .field-card[data-v-b168f2c7] .n-card__content {\n padding: 12px 16px 16px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] .n-select {\n min-width: 140px;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] .n-select .n-select-menu {\n max-height: 200px;\n z-index: 9999;\n}\n.er-layout .table-editor .fields-container .n-form-item[data-v-b168f2c7] {\n margin-bottom: 8px;\n}\n.er-layout .table-editor .fields-container .n-form-item .n-form-item-label[data-v-b168f2c7] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}\n.er-layout .table-editor .fields-container[data-v-b168f2c7] .n-input {\n min-width: 100px;\n}","/* unplugin-vue-components disabled *//* BPMN 布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.bpmn-layout[data-v-1fa85b2c] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n background: var(--n-color-embedded);\n border-radius: 6px;\n overflow: hidden;\n}\n.bpmn-layout .top-toolbar[data-v-1fa85b2c] {\n background: var(--c-bg-card);\n border-bottom: 1px solid var(--c-border);\n padding: 10px 16px;\n flex-shrink: 0;\n}\n.bpmn-layout .top-toolbar .toolbar-section[data-v-1fa85b2c] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n.bpmn-layout .top-toolbar .toolbar-section .toolbar-group[data-v-1fa85b2c] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.bpmn-layout .main-content[data-v-1fa85b2c] {\n display: flex;\n flex: 1;\n height: 0;\n}\n.bpmn-layout .main-content .left-panel[data-v-1fa85b2c] {\n width: 180px;\n background: var(--c-bg-card);\n border-right: 1px solid var(--c-border);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n}\n.bpmn-layout .main-content .left-panel .panel-title[data-v-1fa85b2c] {\n padding: 16px;\n font-weight: 600;\n font-size: 14px;\n color: var(--c-text-1);\n border-bottom: 1px solid var(--c-border);\n}\n.bpmn-layout .main-content .left-panel .element-grid[data-v-1fa85b2c] {\n padding: 16px 12px;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-1fa85b2c] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 16px 8px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--c-text-2);\n transition: all 0.2s ease;\n border: 1px solid transparent;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-1fa85b2c]:hover {\n background: rgba(24, 144, 255, 0.1);\n border-color: rgba(24, 144, 255, 0.4);\n color: var(--c-primary);\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon[data-v-1fa85b2c] {\n flex-shrink: 0;\n border: 2px solid var(--c-border);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.circle[data-v-1fa85b2c] {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.rect[data-v-1fa85b2c] {\n width: 32px;\n height: 20px;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.diamond[data-v-1fa85b2c] {\n width: 24px;\n height: 24px;\n transform: rotate(45deg);\n border-radius: 3px;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.start-event[data-v-1fa85b2c] {\n border-color: #52c41a;\n background: #f6ffed;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.end-event[data-v-1fa85b2c] {\n border-color: #ff4d4f;\n background: #fff2f0;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.activity[data-v-1fa85b2c] {\n border-color: #1890ff;\n background: #e6f7ff;\n}\n.bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.gateway[data-v-1fa85b2c] {\n border-color: #722ed1;\n background: #f9f0ff;\n}\n.bpmn-layout .main-content .graph-wrapper[data-v-1fa85b2c] {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n border-radius: 4px;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] .x6-graph,\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.bpmn-layout .main-content .graph-wrapper .graph-container[data-v-1fa85b2c] .x6-graph-svg-stage {\n outline: none;\n}\n.n-drawer .property-panel[data-v-1fa85b2c] {\n padding: 16px;\n}\n.n-drawer .property-panel .property-item[data-v-1fa85b2c] {\n margin-bottom: 16px;\n}\n.n-drawer .property-panel .property-item .property-label[data-v-1fa85b2c] {\n font-size: 14px;\n font-weight: 500;\n color: var(--c-text-1);\n margin-bottom: 8px;\n}\n.n-drawer .property-panel .form-actions[data-v-1fa85b2c] {\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--c-border);\n}","/* unplugin-vue-components disabled */.class-editor[data-v-ea96ef84] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.section[data-v-ea96ef84] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.section[data-v-ea96ef84]::-webkit-scrollbar {\n width: 6px;\n}\n.section[data-v-ea96ef84]::-webkit-scrollbar-thumb {\n background: #d4d4d4;\n border-radius: 3px;\n}\n.section-header[data-v-ea96ef84] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.item[data-v-ea96ef84] {\n margin-bottom: 8px;\n}\n.section .n-card[data-v-ea96ef84] {\n border: 1px solid #e8e8e8;\n}\n.section .n-card-header[data-v-ea96ef84] {\n padding: 8px 12px;\n background: #fafafa;\n border-bottom: 1px solid #e8e8e8;\n}\n.section .n-card__content[data-v-ea96ef84] {\n padding: 12px;\n}\n.section .n-form-item[data-v-ea96ef84] {\n margin-bottom: 0;\n}\n.section .n-form-item-label[data-v-ea96ef84] {\n font-size: 12px;\n margin-bottom: 4px;\n color: #666;\n}","/* unplugin-vue-components disabled *//* UML 类图布局样式 */\n/* AntV X6 图形编辑器公共样式 */\n/* 用于 ER、UML、BPMN 等布局的共享样式 */\n/* 通用布局容器 */\n/* 工具栏样式 */\n/* 图形容器样式 */\n/* 表单项样式 */\n/* 卡片样式 */\n/* 滚动条样式 */\n/* 编辑器容器样式 */\n.uml-layout[data-v-fcc8adc9] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 400px;\n}\n.uml-layout .toolbar[data-v-fcc8adc9] {\n padding: 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n flex-shrink: 0;\n}\n.uml-layout .graph-container[data-v-fcc8adc9] {\n flex: 1;\n position: relative;\n min-height: 300px;\n width: 100%;\n border: 1px solid var(--c-border);\n overflow: hidden;\n}\n.uml-layout .graph-container[data-v-fcc8adc9] .x6-graph,\n.uml-layout .graph-container[data-v-fcc8adc9] .x6-graph-svg {\n width: 100% !important;\n height: 100% !important;\n display: block;\n}\n.uml-layout .graph-container[data-v-fcc8adc9] .x6-graph-svg-stage {\n outline: none;\n}\n\n/* 抽屉编辑器样式 - 使用单独的样式块避免 scoped 问题 */\n.class-editor[data-v-fcc8adc9] {\n padding: 20px;\n height: calc(100vh - 60px);\n overflow-y: auto;\n}\n.class-editor[data-v-fcc8adc9]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor[data-v-fcc8adc9]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section[data-v-fcc8adc9] {\n max-height: 300px;\n overflow-y: auto;\n padding-right: 4px;\n}\n.class-editor .section[data-v-fcc8adc9]::-webkit-scrollbar {\n width: 6px;\n}\n.class-editor .section[data-v-fcc8adc9]::-webkit-scrollbar-thumb {\n background: var(--n-scrollbar-color);\n border-radius: 3px;\n}\n.class-editor .section .item[data-v-fcc8adc9] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-card[data-v-fcc8adc9] {\n border: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card-header[data-v-fcc8adc9] {\n padding: 8px 12px;\n background: var(--n-color-embedded);\n border-bottom: 1px solid var(--c-border);\n}\n.class-editor .section .n-card .n-card__content[data-v-fcc8adc9] {\n padding: 12px;\n}\n.class-editor .section .n-form-item[data-v-fcc8adc9] {\n margin-bottom: 8px;\n}\n.class-editor .section .n-form-item .n-form-item-label[data-v-fcc8adc9] {\n font-size: 12px;\n color: #666;\n margin-bottom: 4px;\n white-space: nowrap;\n}","/* unplugin-vue-components disabled */\n.c-antv-container[data-v-f1ab77ea] {\r\n width: 100%;\r\n height: 100%;\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxFA;AACA;AACA;AACA;AACA"}