@robot-admin/naive-ui-components 0.11.7 → 0.12.1

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 (185) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +146 -29
  3. package/README_EN.md +146 -29
  4. package/SECURITY.md +1 -0
  5. package/dist/C_ActionBar.cjs +1 -1
  6. package/dist/C_ActionBar.css +53 -53
  7. package/dist/C_ActionBar.d.cts +2 -2
  8. package/dist/C_ActionBar.d.ts +2 -2
  9. package/dist/C_ActionBar.js +1 -1
  10. package/dist/C_ActionBar2.cjs +1 -1
  11. package/dist/C_ActionBar2.js +1 -1
  12. package/dist/C_AntV.css +67 -67
  13. package/dist/C_AntV2.cjs +3 -3
  14. package/dist/C_AntV2.js +3 -3
  15. package/dist/C_AudioPlayer.d.cts +1 -1
  16. package/dist/C_AudioPlayer.d.ts +1 -1
  17. package/dist/C_AvatarGroup.d.cts +1 -1
  18. package/dist/C_AvatarGroup.d.ts +1 -1
  19. package/dist/C_Barcode.d.cts +1 -1
  20. package/dist/C_Barcode.d.ts +1 -1
  21. package/dist/C_Breadcrumb.d.cts +1 -1
  22. package/dist/C_Breadcrumb.d.ts +1 -1
  23. package/dist/C_Captcha.cjs +1 -1
  24. package/dist/C_Captcha.css +193 -51
  25. package/dist/C_Captcha.d.cts +2 -3
  26. package/dist/C_Captcha.d.ts +2 -3
  27. package/dist/C_Captcha.js +1 -1
  28. package/dist/C_Captcha2.cjs +1 -1
  29. package/dist/C_Captcha2.js +1 -1
  30. package/dist/C_Cascade.d.cts +1 -1
  31. package/dist/C_Cascade.d.ts +1 -1
  32. package/dist/C_Chat.d.cts +1 -1
  33. package/dist/C_Chat.d.ts +1 -1
  34. package/dist/C_City.d.cts +1 -1
  35. package/dist/C_City.d.ts +1 -1
  36. package/dist/C_Code.d.cts +1 -1
  37. package/dist/C_Code.d.ts +1 -1
  38. package/dist/C_ContextMenu.d.cts +1 -1
  39. package/dist/C_ContextMenu.d.ts +1 -1
  40. package/dist/C_Date.d.cts +1 -1
  41. package/dist/C_Date.d.ts +1 -1
  42. package/dist/C_Editor.d.cts +1 -1
  43. package/dist/C_Editor.d.ts +1 -1
  44. package/dist/C_FormModal.cjs +1 -0
  45. package/dist/C_FormModal.css +41 -0
  46. package/dist/C_FormModal.d.cts +2 -0
  47. package/dist/C_FormModal.d.ts +3 -0
  48. package/dist/C_FormModal.js +1 -0
  49. package/dist/C_FormModal2.cjs +1 -0
  50. package/dist/C_FormModal2.js +1 -0
  51. package/dist/C_Login.css +210 -127
  52. package/dist/C_Login2.cjs +1 -1
  53. package/dist/C_Login2.js +1 -1
  54. package/dist/C_Map.css +3 -3
  55. package/dist/C_Map2.cjs +1 -1
  56. package/dist/C_Map2.js +1 -1
  57. package/dist/C_Menu.d.cts +1 -1
  58. package/dist/C_Table.base.css +86 -86
  59. package/dist/C_Table.cjs +1 -1
  60. package/dist/C_Table.css +86 -86
  61. package/dist/C_Table.d.ts +4 -3
  62. package/dist/C_Table.js +1 -1
  63. package/dist/C_Tabs.cjs +1 -0
  64. package/dist/C_Tabs.css +1 -0
  65. package/dist/C_Tabs.d.cts +2 -0
  66. package/dist/C_Tabs.d.ts +2 -0
  67. package/dist/C_Tabs.js +1 -0
  68. package/dist/C_TagsView.css +38 -38
  69. package/dist/C_TagsView2.cjs +1 -1
  70. package/dist/C_TagsView2.js +1 -1
  71. package/dist/C_VtableGantt.css +19 -19
  72. package/dist/C_VtableGantt2.cjs +1 -1
  73. package/dist/C_VtableGantt2.js +1 -1
  74. package/dist/constants.d.cts +2 -2
  75. package/dist/constants.d.ts +2 -2
  76. package/dist/constants2.d.cts +2 -2
  77. package/dist/constants2.d.ts +2 -2
  78. package/dist/constants3.d.cts +2 -2
  79. package/dist/constants3.d.ts +2 -2
  80. package/dist/constants4.d.cts +4 -4
  81. package/dist/constants4.d.ts +4 -4
  82. package/dist/constants5.d.cts +2 -2
  83. package/dist/constants5.d.ts +2 -2
  84. package/dist/data.d.cts +108 -0
  85. package/dist/data.d.ts +108 -0
  86. package/dist/data2.cjs +1 -0
  87. package/dist/data2.js +1 -0
  88. package/dist/index.cjs +1 -1
  89. package/dist/index.d.cts +49 -48
  90. package/dist/index.d.ts +51 -49
  91. package/dist/index.js +1 -1
  92. package/dist/index.vue.d.cts +72 -69
  93. package/dist/index.vue.d.ts +72 -69
  94. package/dist/index10.vue.d.cts +80 -39
  95. package/dist/index10.vue.d.ts +68 -77
  96. package/dist/index11.vue.d.cts +68 -77
  97. package/dist/index11.vue.d.ts +53 -68
  98. package/dist/index12.vue.d.cts +53 -68
  99. package/dist/index12.vue.d.ts +52 -58
  100. package/dist/index13.vue.d.cts +52 -58
  101. package/dist/index13.vue.d.ts +3 -3
  102. package/dist/index14.vue.d.cts +3 -3
  103. package/dist/index14.vue.d.ts +5 -5
  104. package/dist/index15.vue.d.cts +5 -5
  105. package/dist/index15.vue.d.ts +2 -2
  106. package/dist/index16.vue.d.cts +2 -2
  107. package/dist/index16.vue.d.ts +14 -11
  108. package/dist/index17.vue.d.cts +14 -11
  109. package/dist/index17.vue.d.ts +4 -4
  110. package/dist/index18.vue.d.cts +4 -4
  111. package/dist/index18.vue.d.ts +3 -3
  112. package/dist/index19.vue.d.cts +2 -2
  113. package/dist/index19.vue.d.ts +2 -2
  114. package/dist/index2.vue.d.cts +70 -65
  115. package/dist/index2.vue.d.ts +70 -65
  116. package/dist/index20.vue.d.cts +1 -1
  117. package/dist/index20.vue.d.ts +1 -1
  118. package/dist/index21.vue.d.cts +2 -2
  119. package/dist/index21.vue.d.ts +2 -2
  120. package/dist/index22.vue.d.cts +1 -1
  121. package/dist/index22.vue.d.ts +1 -1
  122. package/dist/index24.vue.d.cts +2 -2
  123. package/dist/index24.vue.d.ts +2 -2
  124. package/dist/index25.vue.d.cts +1 -1
  125. package/dist/index25.vue.d.ts +1 -1
  126. package/dist/index27.vue.d.cts +2 -2
  127. package/dist/index27.vue.d.ts +2 -2
  128. package/dist/index3.vue.d.cts +30 -80
  129. package/dist/index3.vue.d.ts +30 -80
  130. package/dist/index4.vue.d.cts +130 -30
  131. package/dist/index4.vue.d.ts +22 -30
  132. package/dist/index5.vue.d.cts +18 -126
  133. package/dist/index5.vue.d.ts +22 -19
  134. package/dist/index6.vue.d.cts +22 -19
  135. package/dist/index6.vue.d.ts +117 -22
  136. package/dist/index7.vue.d.cts +117 -22
  137. package/dist/index7.vue.d.ts +17 -110
  138. package/dist/index8.vue.d.cts +17 -110
  139. package/dist/index8.vue.d.ts +37 -24
  140. package/dist/index9.vue.d.cts +37 -24
  141. package/dist/index9.vue.d.ts +80 -39
  142. package/dist/mapUtils.d.cts +4 -4
  143. package/dist/mapUtils.d.ts +4 -4
  144. package/dist/presets.d.cts +96 -0
  145. package/dist/presets.d.ts +96 -0
  146. package/dist/resolver.cjs +1 -1
  147. package/dist/resolver.d.cts +1 -1
  148. package/dist/resolver.d.ts +1 -1
  149. package/dist/resolver.js +1 -1
  150. package/dist/style.css +520 -393
  151. package/dist/useCalendarEvents.d.cts +1 -1
  152. package/dist/useCalendarEvents.d.ts +1 -1
  153. package/dist/useCollapsePanel.d.cts +8 -8
  154. package/dist/useCollapsePanel.d.ts +8 -8
  155. package/dist/useCropperCore.d.cts +9 -9
  156. package/dist/useCropperCore.d.ts +9 -9
  157. package/dist/useDraggableLayout.d.cts +2 -2
  158. package/dist/useDraggableLayout.d.ts +2 -2
  159. package/dist/useEdgeInteraction.d.cts +3 -2
  160. package/dist/useEdgeInteraction.d.ts +3 -2
  161. package/dist/useInfiniteScroll.d.cts +1 -1
  162. package/dist/useInfiniteScroll.d.ts +1 -1
  163. package/dist/useQRCode.d.cts +4 -4
  164. package/dist/useQRCode.d.ts +4 -4
  165. package/dist/useSearchState.d.cts +6 -6
  166. package/dist/useSearchState.d.ts +6 -6
  167. package/dist/useSignatureHistory.d.cts +4 -4
  168. package/dist/useSignatureHistory.d.ts +4 -4
  169. package/dist/useSplitResize.d.cts +6 -6
  170. package/dist/useSplitResize.d.ts +6 -6
  171. package/dist/useTableQuery.cjs +3 -3
  172. package/dist/useTableQuery.d.cts +10 -0
  173. package/dist/useTableQuery.d.ts +10 -0
  174. package/dist/useTableQuery.js +3 -3
  175. package/dist/useTimeSelection.d.cts +5 -5
  176. package/dist/useTimeSelection.d.ts +5 -5
  177. package/dist/useTreeOperations.d.cts +8 -8
  178. package/dist/useTreeOperations.d.ts +8 -8
  179. package/dist/useWorkflowValidation.d.cts +4 -4
  180. package/dist/useWorkflowValidation.d.ts +4 -4
  181. package/dist/verification.d.cts +70 -5
  182. package/dist/verification.d.ts +70 -5
  183. package/package.json +2 -1
  184. package/dist/types.d.ts +0 -58
  185. package/dist/types2.d.cts +0 -58
package/dist/C_AntV.css CHANGED
@@ -8,20 +8,20 @@
8
8
  /* 卡片样式 */
9
9
  /* 滚动条样式 */
10
10
  /* 编辑器容器样式 */
11
- .er-layout[data-v-19cb7526] {
11
+ .er-layout[data-v-edf47b23] {
12
12
  display: flex;
13
13
  flex-direction: column;
14
14
  width: 100%;
15
15
  height: 100%;
16
16
  min-height: 400px;
17
17
  }
18
- .er-layout .toolbar[data-v-19cb7526] {
18
+ .er-layout .toolbar[data-v-edf47b23] {
19
19
  padding: 12px;
20
20
  background: var(--n-color-embedded);
21
21
  border-bottom: 1px solid var(--c-border);
22
22
  flex-shrink: 0;
23
23
  }
24
- .er-layout .graph-container[data-v-19cb7526] {
24
+ .er-layout .graph-container[data-v-edf47b23] {
25
25
  flex: 1;
26
26
  position: relative;
27
27
  min-height: 300px;
@@ -29,71 +29,71 @@
29
29
  border: 1px solid var(--c-border);
30
30
  overflow: hidden;
31
31
  }
32
- .er-layout .graph-container[data-v-19cb7526] .x6-graph,
33
- .er-layout .graph-container[data-v-19cb7526] .x6-graph-svg {
32
+ .er-layout .graph-container[data-v-edf47b23] .x6-graph,
33
+ .er-layout .graph-container[data-v-edf47b23] .x6-graph-svg {
34
34
  width: 100% !important;
35
35
  height: 100% !important;
36
36
  display: block;
37
37
  }
38
- .er-layout .graph-container[data-v-19cb7526] .x6-graph-svg-stage {
38
+ .er-layout .graph-container[data-v-edf47b23] .x6-graph-svg-stage {
39
39
  outline: none;
40
40
  }
41
- .er-layout .table-editor[data-v-19cb7526] {
41
+ .er-layout .table-editor[data-v-edf47b23] {
42
42
  height: 100%;
43
43
  overflow-y: auto;
44
44
  padding: 0 4px;
45
45
  }
46
- .er-layout .table-editor[data-v-19cb7526]::-webkit-scrollbar {
46
+ .er-layout .table-editor[data-v-edf47b23]::-webkit-scrollbar {
47
47
  width: 6px;
48
48
  }
49
- .er-layout .table-editor[data-v-19cb7526]::-webkit-scrollbar-thumb {
49
+ .er-layout .table-editor[data-v-edf47b23]::-webkit-scrollbar-thumb {
50
50
  background: var(--n-scrollbar-color);
51
51
  border-radius: 3px;
52
52
  }
53
- .er-layout .table-editor .fields-container[data-v-19cb7526] {
53
+ .er-layout .table-editor .fields-container[data-v-edf47b23] {
54
54
  max-height: calc(100vh - 400px);
55
55
  overflow-y: auto;
56
56
  }
57
- .er-layout .table-editor .fields-container[data-v-19cb7526]::-webkit-scrollbar {
57
+ .er-layout .table-editor .fields-container[data-v-edf47b23]::-webkit-scrollbar {
58
58
  width: 6px;
59
59
  }
60
- .er-layout .table-editor .fields-container[data-v-19cb7526]::-webkit-scrollbar-thumb {
60
+ .er-layout .table-editor .fields-container[data-v-edf47b23]::-webkit-scrollbar-thumb {
61
61
  background: var(--n-scrollbar-color);
62
62
  border-radius: 3px;
63
63
  }
64
- .er-layout .table-editor .fields-container .field-card[data-v-19cb7526] {
64
+ .er-layout .table-editor .fields-container .field-card[data-v-edf47b23] {
65
65
  margin-bottom: 16px;
66
66
  }
67
- .er-layout .table-editor .fields-container .field-card .field-header[data-v-19cb7526] {
67
+ .er-layout .table-editor .fields-container .field-card .field-header[data-v-edf47b23] {
68
68
  display: flex;
69
69
  justify-content: space-between;
70
70
  align-items: center;
71
71
  font-size: 13px;
72
72
  font-weight: 500;
73
73
  }
74
- .er-layout .table-editor .fields-container .field-card[data-v-19cb7526] .n-card-header {
74
+ .er-layout .table-editor .fields-container .field-card[data-v-edf47b23] .n-card-header {
75
75
  padding: 10px 16px 8px;
76
76
  }
77
- .er-layout .table-editor .fields-container .field-card[data-v-19cb7526] .n-card__content {
77
+ .er-layout .table-editor .fields-container .field-card[data-v-edf47b23] .n-card__content {
78
78
  padding: 12px 16px 16px;
79
79
  }
80
- .er-layout .table-editor .fields-container[data-v-19cb7526] .n-select {
80
+ .er-layout .table-editor .fields-container[data-v-edf47b23] .n-select {
81
81
  min-width: 140px;
82
82
  }
83
- .er-layout .table-editor .fields-container[data-v-19cb7526] .n-select .n-select-menu {
83
+ .er-layout .table-editor .fields-container[data-v-edf47b23] .n-select .n-select-menu {
84
84
  max-height: 200px;
85
85
  z-index: 9999;
86
86
  }
87
- .er-layout .table-editor .fields-container .n-form-item[data-v-19cb7526] {
87
+ .er-layout .table-editor .fields-container .n-form-item[data-v-edf47b23] {
88
88
  margin-bottom: 8px;
89
89
  }
90
- .er-layout .table-editor .fields-container .n-form-item .n-form-item-label[data-v-19cb7526] {
90
+ .er-layout .table-editor .fields-container .n-form-item .n-form-item-label[data-v-edf47b23] {
91
91
  font-size: 12px;
92
92
  color: #666;
93
93
  margin-bottom: 4px;
94
94
  white-space: nowrap;
95
95
  }
96
- .er-layout .table-editor .fields-container[data-v-19cb7526] .n-input {
96
+ .er-layout .table-editor .fields-container[data-v-edf47b23] .n-input {
97
97
  min-width: 100px;
98
98
  }
99
99
  /* unplugin-vue-components disabled *//* BPMN 布局样式 */
@@ -106,7 +106,7 @@
106
106
  /* 卡片样式 */
107
107
  /* 滚动条样式 */
108
108
  /* 编辑器容器样式 */
109
- .bpmn-layout[data-v-d588444e] {
109
+ .bpmn-layout[data-v-700d0476] {
110
110
  display: flex;
111
111
  flex-direction: column;
112
112
  width: 100%;
@@ -116,28 +116,28 @@
116
116
  border-radius: 6px;
117
117
  overflow: hidden;
118
118
  }
119
- .bpmn-layout .top-toolbar[data-v-d588444e] {
119
+ .bpmn-layout .top-toolbar[data-v-700d0476] {
120
120
  background: var(--c-bg-card);
121
121
  border-bottom: 1px solid var(--c-border);
122
122
  padding: 10px 16px;
123
123
  flex-shrink: 0;
124
124
  }
125
- .bpmn-layout .top-toolbar .toolbar-section[data-v-d588444e] {
125
+ .bpmn-layout .top-toolbar .toolbar-section[data-v-700d0476] {
126
126
  display: flex;
127
127
  align-items: center;
128
128
  gap: 16px;
129
129
  }
130
- .bpmn-layout .top-toolbar .toolbar-section .toolbar-group[data-v-d588444e] {
130
+ .bpmn-layout .top-toolbar .toolbar-section .toolbar-group[data-v-700d0476] {
131
131
  display: flex;
132
132
  align-items: center;
133
133
  gap: 8px;
134
134
  }
135
- .bpmn-layout .main-content[data-v-d588444e] {
135
+ .bpmn-layout .main-content[data-v-700d0476] {
136
136
  display: flex;
137
137
  flex: 1;
138
138
  height: 0;
139
139
  }
140
- .bpmn-layout .main-content .left-panel[data-v-d588444e] {
140
+ .bpmn-layout .main-content .left-panel[data-v-700d0476] {
141
141
  width: 180px;
142
142
  background: var(--c-bg-card);
143
143
  border-right: 1px solid var(--c-border);
@@ -145,20 +145,20 @@
145
145
  flex-direction: column;
146
146
  flex-shrink: 0;
147
147
  }
148
- .bpmn-layout .main-content .left-panel .panel-title[data-v-d588444e] {
148
+ .bpmn-layout .main-content .left-panel .panel-title[data-v-700d0476] {
149
149
  padding: 16px;
150
150
  font-weight: 600;
151
151
  font-size: 14px;
152
152
  color: var(--c-text-1);
153
153
  border-bottom: 1px solid var(--c-border);
154
154
  }
155
- .bpmn-layout .main-content .left-panel .element-grid[data-v-d588444e] {
155
+ .bpmn-layout .main-content .left-panel .element-grid[data-v-700d0476] {
156
156
  padding: 16px 12px;
157
157
  display: grid;
158
158
  grid-template-columns: 1fr 1fr;
159
159
  gap: 12px;
160
160
  }
161
- .bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-d588444e] {
161
+ .bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-700d0476] {
162
162
  display: flex;
163
163
  flex-direction: column;
164
164
  align-items: center;
@@ -171,56 +171,56 @@
171
171
  transition: all 0.2s ease;
172
172
  border: 1px solid transparent;
173
173
  }
174
- .bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-d588444e]:hover {
174
+ .bpmn-layout .main-content .left-panel .element-grid .element-item[data-v-700d0476]:hover {
175
175
  background: rgba(24, 144, 255, 0.1);
176
176
  border-color: rgba(24, 144, 255, 0.4);
177
177
  color: var(--c-primary);
178
178
  }
179
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon[data-v-d588444e] {
179
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon[data-v-700d0476] {
180
180
  flex-shrink: 0;
181
181
  border: 2px solid var(--c-border);
182
182
  display: flex;
183
183
  align-items: center;
184
184
  justify-content: center;
185
185
  }
186
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.circle[data-v-d588444e] {
186
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.circle[data-v-700d0476] {
187
187
  width: 24px;
188
188
  height: 24px;
189
189
  border-radius: 50%;
190
190
  }
191
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.rect[data-v-d588444e] {
191
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.rect[data-v-700d0476] {
192
192
  width: 32px;
193
193
  height: 20px;
194
194
  border-radius: 4px;
195
195
  }
196
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.diamond[data-v-d588444e] {
196
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.diamond[data-v-700d0476] {
197
197
  width: 24px;
198
198
  height: 24px;
199
199
  transform: rotate(45deg);
200
200
  border-radius: 3px;
201
201
  }
202
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.start-event[data-v-d588444e] {
202
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.start-event[data-v-700d0476] {
203
203
  border-color: #52c41a;
204
204
  background: #f6ffed;
205
205
  }
206
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.end-event[data-v-d588444e] {
206
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.end-event[data-v-700d0476] {
207
207
  border-color: #ff4d4f;
208
208
  background: #fff2f0;
209
209
  }
210
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.activity[data-v-d588444e] {
210
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.activity[data-v-700d0476] {
211
211
  border-color: #1890ff;
212
212
  background: #e6f7ff;
213
213
  }
214
- .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.gateway[data-v-d588444e] {
214
+ .bpmn-layout .main-content .left-panel .element-grid .element-item .element-icon.gateway[data-v-700d0476] {
215
215
  border-color: #722ed1;
216
216
  background: #f9f0ff;
217
217
  }
218
- .bpmn-layout .main-content .graph-wrapper[data-v-d588444e] {
218
+ .bpmn-layout .main-content .graph-wrapper[data-v-700d0476] {
219
219
  flex: 1;
220
220
  display: flex;
221
221
  flex-direction: column;
222
222
  }
223
- .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-d588444e] {
223
+ .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-700d0476] {
224
224
  flex: 1;
225
225
  position: relative;
226
226
  min-height: 300px;
@@ -228,31 +228,31 @@
228
228
  border: 1px solid var(--c-border);
229
229
  overflow: hidden;
230
230
  }
231
- .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-d588444e] .x6-graph,
232
- .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-d588444e] .x6-graph-svg {
231
+ .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-700d0476] .x6-graph,
232
+ .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-700d0476] .x6-graph-svg {
233
233
  width: 100% !important;
234
234
  height: 100% !important;
235
235
  display: block;
236
236
  }
237
- .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-d588444e] .x6-graph-svg-stage {
237
+ .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-700d0476] .x6-graph-svg-stage {
238
238
  outline: none;
239
239
  }
240
- .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-d588444e] {
240
+ .bpmn-layout .main-content .graph-wrapper .graph-container[data-v-700d0476] {
241
241
  border-radius: 4px;
242
242
  }
243
- .n-drawer .property-panel[data-v-d588444e] {
243
+ .n-drawer .property-panel[data-v-700d0476] {
244
244
  padding: 16px;
245
245
  }
246
- .n-drawer .property-panel .property-item[data-v-d588444e] {
246
+ .n-drawer .property-panel .property-item[data-v-700d0476] {
247
247
  margin-bottom: 16px;
248
248
  }
249
- .n-drawer .property-panel .property-item .property-label[data-v-d588444e] {
249
+ .n-drawer .property-panel .property-item .property-label[data-v-700d0476] {
250
250
  font-size: 14px;
251
251
  font-weight: 500;
252
252
  color: var(--c-text-1);
253
253
  margin-bottom: 8px;
254
254
  }
255
- .n-drawer .property-panel .form-actions[data-v-d588444e] {
255
+ .n-drawer .property-panel .form-actions[data-v-700d0476] {
256
256
  margin-top: 24px;
257
257
  padding-top: 16px;
258
258
  border-top: 1px solid var(--c-border);
@@ -311,20 +311,20 @@
311
311
  /* 卡片样式 */
312
312
  /* 滚动条样式 */
313
313
  /* 编辑器容器样式 */
314
- .uml-layout[data-v-e4891a91] {
314
+ .uml-layout[data-v-dcbc422b] {
315
315
  display: flex;
316
316
  flex-direction: column;
317
317
  width: 100%;
318
318
  height: 100%;
319
319
  min-height: 400px;
320
320
  }
321
- .uml-layout .toolbar[data-v-e4891a91] {
321
+ .uml-layout .toolbar[data-v-dcbc422b] {
322
322
  padding: 12px;
323
323
  background: var(--n-color-embedded);
324
324
  border-bottom: 1px solid var(--c-border);
325
325
  flex-shrink: 0;
326
326
  }
327
- .uml-layout .graph-container[data-v-e4891a91] {
327
+ .uml-layout .graph-container[data-v-dcbc422b] {
328
328
  flex: 1;
329
329
  position: relative;
330
330
  min-height: 300px;
@@ -332,59 +332,59 @@
332
332
  border: 1px solid var(--c-border);
333
333
  overflow: hidden;
334
334
  }
335
- .uml-layout .graph-container[data-v-e4891a91] .x6-graph,
336
- .uml-layout .graph-container[data-v-e4891a91] .x6-graph-svg {
335
+ .uml-layout .graph-container[data-v-dcbc422b] .x6-graph,
336
+ .uml-layout .graph-container[data-v-dcbc422b] .x6-graph-svg {
337
337
  width: 100% !important;
338
338
  height: 100% !important;
339
339
  display: block;
340
340
  }
341
- .uml-layout .graph-container[data-v-e4891a91] .x6-graph-svg-stage {
341
+ .uml-layout .graph-container[data-v-dcbc422b] .x6-graph-svg-stage {
342
342
  outline: none;
343
343
  }
344
344
 
345
345
  /* 抽屉编辑器样式 - 使用单独的样式块避免 scoped 问题 */
346
- .class-editor[data-v-e4891a91] {
346
+ .class-editor[data-v-dcbc422b] {
347
347
  padding: 20px;
348
348
  height: calc(100vh - 60px);
349
349
  overflow-y: auto;
350
350
  }
351
- .class-editor[data-v-e4891a91]::-webkit-scrollbar {
351
+ .class-editor[data-v-dcbc422b]::-webkit-scrollbar {
352
352
  width: 6px;
353
353
  }
354
- .class-editor[data-v-e4891a91]::-webkit-scrollbar-thumb {
354
+ .class-editor[data-v-dcbc422b]::-webkit-scrollbar-thumb {
355
355
  background: var(--n-scrollbar-color);
356
356
  border-radius: 3px;
357
357
  }
358
- .class-editor .section[data-v-e4891a91] {
358
+ .class-editor .section[data-v-dcbc422b] {
359
359
  max-height: 300px;
360
360
  overflow-y: auto;
361
361
  padding-right: 4px;
362
362
  }
363
- .class-editor .section[data-v-e4891a91]::-webkit-scrollbar {
363
+ .class-editor .section[data-v-dcbc422b]::-webkit-scrollbar {
364
364
  width: 6px;
365
365
  }
366
- .class-editor .section[data-v-e4891a91]::-webkit-scrollbar-thumb {
366
+ .class-editor .section[data-v-dcbc422b]::-webkit-scrollbar-thumb {
367
367
  background: var(--n-scrollbar-color);
368
368
  border-radius: 3px;
369
369
  }
370
- .class-editor .section .item[data-v-e4891a91] {
370
+ .class-editor .section .item[data-v-dcbc422b] {
371
371
  margin-bottom: 8px;
372
372
  }
373
- .class-editor .section .n-card[data-v-e4891a91] {
373
+ .class-editor .section .n-card[data-v-dcbc422b] {
374
374
  border: 1px solid var(--c-border);
375
375
  }
376
- .class-editor .section .n-card .n-card-header[data-v-e4891a91] {
376
+ .class-editor .section .n-card .n-card-header[data-v-dcbc422b] {
377
377
  padding: 8px 12px;
378
378
  background: var(--n-color-embedded);
379
379
  border-bottom: 1px solid var(--c-border);
380
380
  }
381
- .class-editor .section .n-card .n-card__content[data-v-e4891a91] {
381
+ .class-editor .section .n-card .n-card__content[data-v-dcbc422b] {
382
382
  padding: 12px;
383
383
  }
384
- .class-editor .section .n-form-item[data-v-e4891a91] {
384
+ .class-editor .section .n-form-item[data-v-dcbc422b] {
385
385
  margin-bottom: 8px;
386
386
  }
387
- .class-editor .section .n-form-item .n-form-item-label[data-v-e4891a91] {
387
+ .class-editor .section .n-form-item .n-form-item-label[data-v-dcbc422b] {
388
388
  font-size: 12px;
389
389
  color: #666;
390
390
  margin-bottom: 4px;
package/dist/C_AntV2.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const e=require(`./chunk.cjs`),t=require(`./config.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./export-helper.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`@antv/x6`),s=require(`html2canvas`);s=e.t(s);function c(e){return{background:e?`#18181c`:`#f5f5f5`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`}}function l(e=!1){let t=c(e);return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:2},selecting:{enabled:!0,rubberband:!0,movable:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!0,snapline:!0,keyboard:!0,clipboard:!0}}function u(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function d(e,t){let n=0,r=(0,i.ref)(null),a=(0,i.ref)(!1),s=async(c={})=>{await(0,i.nextTick)(),a.value=!0;try{if(!e.value)return;r.value&&=(r.value.dispose(),null);let{width:i,height:a}=u(e.value);if(i===0||a===0){n++,n<10&&setTimeout(()=>s(c),100);return}n=0;let d=l(t?.value??!1);r.value=new o.Graph({container:e.value,width:i,height:a,...d,...c})}catch{}finally{a.value=!1}};function d(e){if(!r.value)return;let t=c(e);r.value.drawBackground({color:t.background}),r.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&(0,i.watch)(t,e=>{d(e)});function f(){r.value&&=(r.value.dispose(),null)}function p(){r.value?.centerContent()}function m(){r.value?.zoomToFit({padding:20,maxScale:1})}function h(e){r.value?.zoom(e)}function g(){if(r.value&&e.value){let{width:t,height:n}=u(e.value);r.value.resize(t,n)}}return(0,i.onUnmounted)(f),{graph:r,loading:a,initGraph:s,destroyGraph:f,centerContent:p,zoomToFit:m,zoom:h,resizeGraph:g,updateTheme:d}}function f(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function p(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);f(new Blob([n],{type:`application/json`}),t)}async function m(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;f(await g(await(0,s.default)(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function h(e,t=`diagram.svg`){let n=e.container.querySelector(`svg`);if(!n)throw Error(`SVG导出失败: 未找到图表 SVG 元素`);let r=n.cloneNode(!0);r.getAttribute(`xmlns`)||r.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),r.getAttribute(`xmlns:xlink`)||r.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`);let i=new XMLSerializer().serializeToString(r);f(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function g(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const _=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function v(e,n=`diagram`){let r=t.r();return{exportOptions:_,handleExport:async(t,i)=>{if(e.value)try{switch(t){case`png`:await m(e.value,`${n}.png`);break;case`svg`:h(e.value,`${n}.svg`);break;case`json`:i&&p(i(),`${n}.json`);break}}catch(e){r.error(`导出${t.toUpperCase()}失败,请重试`,e)}}}}const y=[{label:`BIGINT`,value:`BIGINT`},{label:`INT`,value:`INT`},{label:`SMALLINT`,value:`SMALLINT`},{label:`TINYINT`,value:`TINYINT`},{label:`VARCHAR(50)`,value:`VARCHAR(50)`},{label:`VARCHAR(100)`,value:`VARCHAR(100)`},{label:`VARCHAR(255)`,value:`VARCHAR(255)`},{label:`CHAR(10)`,value:`CHAR(10)`},{label:`TEXT`,value:`TEXT`},{label:`LONGTEXT`,value:`LONGTEXT`},{label:`DATETIME`,value:`DATETIME`},{label:`TIMESTAMP`,value:`TIMESTAMP`},{label:`DATE`,value:`DATE`},{label:`TIME`,value:`TIME`},{label:`DECIMAL(10,2)`,value:`DECIMAL(10,2)`},{label:`FLOAT`,value:`FLOAT`},{label:`DOUBLE`,value:`DOUBLE`},{label:`BOOLEAN`,value:`BOOLEAN`},{label:`JSON`,value:`JSON`}],b={key:0,class:`table-editor`},x={class:`fields-container`},S={class:`field-header`},C=(0,i.defineComponent)({__name:`ERTableEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingTable`),o=t,s=(e,t)=>o(`handle-primary-key`,e,t),c=()=>o(`add-field`),l=e=>o(`remove-field`,e);return(t,o)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":o[4]||=e=>t.$emit(`update:show`,e)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NDrawerContent),{title:`编辑表: ${r.value?.name||`新表`}`,closable:``},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`end`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[2]||=e=>t.$emit(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...o[11]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[3]||=e=>t.$emit(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...o[12]||=[(0,i.createTextVNode)(`保存`,-1)]]),_:1})]),_:1})]),default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,b,[(0,i.createVNode)((0,i.unref)(a.NForm),{model:r.value,"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":o[0]||=e=>r.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表注释`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.comment,"onUpdate:value":o[1]||=e=>r.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),null,{default:(0,i.withCtx)(()=>[...o[5]||=[(0,i.createTextVNode)(`字段列表`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,x,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.fields,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NCard),{key:t,size:`small`,class:`field-card`},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,S,[(0,i.createElementVNode)(`span`,null,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新字段`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>l(t),size:`tiny`,type:`error`,quaternary:``,disabled:r.value.fields.length<=1},{default:(0,i.withCtx)(()=>[...o[6]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGrid),{cols:2,"x-gap":12},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`字段名`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSelect),{value:e.type,"onUpdate:value":t=>e.type=t,options:(0,i.unref)(y),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NSpace),{style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>s(e,t)]},{default:(0,i.withCtx)(()=>[...o[7]||=[(0,i.createTextVNode)(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:(0,i.withCtx)(()=>[...o[8]||=[(0,i.createTextVNode)(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:(0,i.withCtx)(()=>[...o[9]||=[(0,i.createTextVNode)(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:c,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[o[10]||=(0,i.createTextVNode)(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}}),w={class:`er-layout`},T={key:0,class:`toolbar`},E={key:0,style:{"margin-top":`8px`}},D=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:h,handleExport:g}=v(u,`er-diagram`),_=(0,i.ref)(!1),y=(0,i.ref)(),b=(0,i.ref)(!1),x=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,S=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,group:`list`,attrs:{portNameLabel:{text:x(n,12),title:n},portTypeLabel:{text:x(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],D=e=>({id:e.id,shape:`er-rect`,x:e.position.x,y:e.position.y,width:200,height:24+(e.fields?.length||0)*24,data:e,attrs:{label:{text:x(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:S(e)}),O=()=>{u.value&&(o.Graph.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),o.Graph.registerNode(`er-rect`,{inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`text`,selector:`label`}],attrs:{rect:{strokeWidth:1,stroke:`#5F95FF`,fill:`#5F95FF`},label:{fontWeight:`bold`,fill:`#ffffff`,fontSize:12}},ports:{groups:{list:{markup:[{tagName:`rect`,selector:`portBody`},{tagName:`text`,selector:`portNameLabel`},{tagName:`text`,selector:`portTypeLabel`}],attrs:{portBody:{width:200,height:24,strokeWidth:1,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!0},portNameLabel:{ref:`portBody`,refX:6,refY:6,fontSize:9,textAnchor:`start`,textOverflow:`ellipsis`},portTypeLabel:{ref:`portBody`,refX:120,refY:6,fontSize:9,textAnchor:`start`,fill:`#666`}},position:`erPortPosition`}}}},!0))},k=()=>{b.value=!b.value,b.value||A()},A=()=>{u.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},j=e=>{if(!u.value)return;let t=u.value.createNode(D(e));return u.value.resetCells([t,...u.value.getCells()]),t},M=()=>{let e=u.value?.getNodes()||[];for(let t=0;t<10;t++)for(let n=0;n<3;n++){let r={x:n*250+50,y:t*250+50};if(!e.some(e=>{let t=e.getPosition();return Math.abs(t.x-r.x)<250*.8&&Math.abs(t.y-r.y)<250*.8}))return r}return{x:50,y:50}},N=()=>{let e={id:`table_${Date.now()}`,name:`新表`,comment:``,fields:[{name:`id`,type:`BIGINT`,isPrimaryKey:!0,isRequired:!0,isForeignKey:!1,comment:`主键`},{name:`name`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!0,isForeignKey:!1,comment:`名称`}],position:M()};j(e),P(e),B()},P=e=>{y.value={...e,fields:e.fields?.map(e=>({...e}))||[]},_.value=!0},F=()=>{if(!u.value||!y.value)return;let e=u.value.getCellById(y.value.id);e&&(e.setData(y.value),e.prop({size:{width:200,height:24+y.value.fields.length*24},attrs:{label:{text:x(y.value.name,20),title:y.value.name}},ports:S(y.value)})),_.value=!1,B()},I=(e,t)=>{t&&(e.isRequired=!0,y.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},L=()=>{y.value?.fields.push({name:`field_${(y.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},R=e=>{y.value&&y.value.fields.length>1&&y.value.fields.splice(e,1)},z=()=>{if(!u.value)return{tables:[],relations:[]};let e=u.value.getNodes().map(e=>({...e.getData(),position:e.getPosition()})),t=[];return u.value.getEdges().forEach(e=>{let n=e.getSourceNode(),r=e.getTargetNode(),i=e.getSourcePortId(),a=e.getTargetPortId();n&&r&&i&&a&&t.push({id:e.id,type:`foreign-key`,sourceTable:n.id,sourceField:i.split(`_`).slice(1).join(`_`),targetTable:r.id,targetField:a.split(`_`).slice(1).join(`_`),name:`${n.getData()?.name||n.id} -> ${r.getData()?.name||r.id}`})}),{tables:e,relations:t}},B=()=>c(`data-change`,z());return(0,i.watch)(u,e=>{if(!(e instanceof o.Graph))return;O(),e.on(`node:dblclick`,({node:e})=>{s.readonly||P(e.getData())}),e.on(`edge:connected`,B),e.on(`edge:removed`,B);let t=null;e.on(`edge:click`,({edge:e})=>{b.value?(e.remove(),B()):(A(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),t=e)}),e.on(`edge:dblclick`,({edge:e})=>{e.remove(),B()}),e.on(`blank:click`,()=>{t=null,b.value||A()});let n=e=>{let n=e.target?.tagName;n===`INPUT`||n===`TEXTAREA`||e.target?.isContentEditable||(e.key===`Delete`||e.key===`Backspace`)&&t&&(t.remove(),B(),t=null)};document.addEventListener(`keydown`,n),(0,i.onUnmounted)(()=>document.removeEventListener(`keydown`,n)),c(`ready`,e),(0,i.nextTick)(()=>{if(s.data?.tables){let t=s.data.tables.map(t=>e.createNode(D(t)));s.data.relations?.length&&s.data.relations.forEach(n=>{t.push(e.createEdge({source:{cell:n.sourceTable,port:`${n.sourceTable}_${n.sourceField}`},target:{cell:n.targetTable,port:`${n.targetTable}_${n.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),e.resetCells(t),setTimeout(()=>e.zoomToFit({padding:20,maxScale:1}),300)}})},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(u.value&&e?.tables){let t=e.tables.map(e=>u.value.createNode(D(e)));e.relations?.length&&e.relations.forEach(e=>{t.push(u.value.createEdge({source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),u.value.resetCells(t)}},{deep:!0}),(0,i.onMounted)(()=>f()),t({getGraph:()=>u.value??void 0,getData:z}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,w,[(0,i.createCommentVNode)(` 工具栏 `),e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,T,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:N,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:table-plus`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加表 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:k,type:b.value?`error`:`default`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(b.value?`退出删除`:`删除连线`),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(h),onSelect:r[0]||=e=>(0,i.unref)(g)(e,z)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),b.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,E,[(0,i.createVNode)((0,i.unref)(a.NAlert),{type:`info`,size:`small`,"show-icon":!1},{default:(0,i.withCtx)(()=>[...r[7]||=[(0,i.createTextVNode)(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 图表容器 `),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512),(0,i.createCommentVNode)(` 表编辑器 `),(0,i.createVNode)(C,{show:_.value,"editing-table":y.value,"onUpdate:editingTable":r[1]||=e=>y.value=e,"onUpdate:show":r[2]||=e=>_.value=e,onSave:F,onAddField:L,onRemoveField:R,onHandlePrimaryKey:I},null,8,[`show`,`editing-table`])]))}});var O=r.t(D,[[`__scopeId`,`data-v-19cb7526`]]);const k={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{}};function A(e,t={}){let n={...k,...t},r=()=>{e.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,n.defaultColor),e.attr(`line/strokeWidth`,n.strokeWidth)})},i=e=>{r(),e.attr(`line/stroke`,n.highlightColor),e.attr(`line/strokeWidth`,n.highlightStrokeWidth)},a=(e,t)=>{n.portPositions.forEach(n=>e.attr(`port-${n}/style/opacity`,t))};return{resetEdgeStyles:r,highlightEdge:i,togglePorts:a,bindInteractions:()=>{let t=e.value;t&&(t.on(`edge:click`,({edge:e})=>i(e)),t.on(`edge:dblclick`,({edge:e})=>{e.remove(),n.onDataChange()}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,n.onDataChange),n.portPositions.length>0&&(t.on(`node:mouseenter`,({node:e})=>a(e,1)),t.on(`node:mouseleave`,({node:e})=>a(e,0))))}}}const j={"start-event":{name:`开始`,title:`开始事件`,iconClass:`circle start-event`},activity:{name:`任务`,title:`任务活动`,iconClass:`rect activity`},gateway:{name:`网关`,title:`排他网关`,iconClass:`diamond gateway`},"end-event":{name:`结束`,title:`结束事件`,iconClass:`circle end-event`}},M={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},N=[`top`,`right`,`bottom`,`left`],P=(e,t=`rect`)=>e.reduce((e,n)=>{let r=t===`circle`,i=n===`top`?r?{refCx:.5,refCy:0}:{refX:.5,refY:0}:n===`right`?r?{refCx:1,refCy:.5}:{refX:1,refY:.5}:n===`bottom`?r?{refCx:.5,refCy:1}:{refX:.5,refY:1}:r?{refCx:0,refCy:.5}:{refX:0,refY:.5};return e[`port-${n}`]={ref:`body`,...i,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),F={event:{inherit:`circle`,attrs:{body:{strokeWidth:2,stroke:`#5F95FF`,fill:`#FFF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},activity:{inherit:`rect`,attrs:{body:{rx:6,ry:6,stroke:`#5F95FF`,fill:`#EFF4FF`,strokeWidth:1,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},gateway:{inherit:`polygon`,attrs:{body:{refPoints:`0,10 10,0 20,10 10,20`,strokeWidth:2,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:20,fill:`#5F95FF`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}}},I={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function L(e=!1){let t={background:e?`#18181c`:`#ffffff`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`};return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:3},connecting:{router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},highlighting:{magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},selecting:{enabled:!0,rubberband:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!1,snapline:!0,keyboard:!0,clipboard:!0}}L();const R={"start-event":{shape:`event`,width:50,height:50,label:`开始事件`,data:{type:`start`}},"end-event":{shape:`event`,width:50,height:50,label:`结束事件`,data:{type:`end`}},activity:{shape:`activity`,width:120,height:60,label:`新活动`,data:{description:``,assignee:``}},gateway:{shape:`gateway`,width:40,height:40,label:`+`,data:{type:`exclusive`}}},z=[{id:`start-1`,shape:`event`,x:100,y:200,width:50,height:50,label:`流程开始`,data:{type:`start`}},{id:`activity-1`,shape:`activity`,x:200,y:180,width:120,height:60,label:`用户申请`,data:{description:`用户提交申请表单`,assignee:`申请人`}},{id:`activity-2`,shape:`activity`,x:380,y:180,width:120,height:60,label:`初审`,data:{description:`部门进行初步审核`,assignee:`部门主管`}},{id:`gateway-1`,shape:`gateway`,x:550,y:200,width:40,height:40,label:`+`,data:{type:`exclusive`}},{id:`activity-3`,shape:`activity`,x:650,y:120,width:120,height:60,label:`终审`,data:{description:`高级主管最终审核`,assignee:`总监`}},{id:`activity-4`,shape:`activity`,x:650,y:260,width:120,height:60,label:`驳回处理`,data:{description:`处理驳回流程`,assignee:`专员`}},{id:`end-1`,shape:`event`,x:820,y:140,width:50,height:50,label:`审批通过`,data:{type:`end`}},{id:`end-2`,shape:`event`,x:820,y:280,width:50,height:50,label:`审批驳回`,data:{type:`end`}},{id:`edge-1`,shape:`bpmn-edge`,source:`start-1`,target:`activity-1`,x:0,y:0},{id:`edge-2`,shape:`bpmn-edge`,source:`activity-1`,target:`activity-2`,x:0,y:0},{id:`edge-3`,shape:`bpmn-edge`,source:`activity-2`,target:`gateway-1`,x:0,y:0},{id:`edge-4`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-3`,label:`通过`,x:0,y:0},{id:`edge-5`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-4`,label:`驳回`,x:0,y:0},{id:`edge-6`,shape:`bpmn-edge`,source:`activity-3`,target:`end-1`,x:0,y:0},{id:`edge-7`,shape:`bpmn-edge`,source:`activity-4`,target:`end-2`,x:0,y:0}],B={key:0,class:`property-panel`},ee={class:`property-item`},te={class:`property-item`},ne={key:0,class:`property-item`},V={key:1,class:`property-item`},H={class:`form-actions`},U=(0,i.defineComponent)({__name:`BPMNPropertyEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=(0,i.useModel)(e,`editingElement`),r=t,o=(0,i.computed)(()=>M[n.value?.shape]||n.value?.shape||``);return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":s[6]||=e=>r(`update:show`,e)},{default:(0,i.withCtx)(()=>[n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,B,[(0,i.createElementVNode)(`div`,ee,[s[7]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`名称`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.label,"onUpdate:value":s[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),(0,i.createElementVNode)(`div`,te,[s[8]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`类型`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:o.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ne,[s[9]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`描述`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.description,"onUpdate:value":s[1]||=e=>n.value.description=e,type:`textarea`,rows:3,placeholder:`请输入活动描述`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,V,[s[10]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`执行人`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.assignee,"onUpdate:value":s[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,H,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>r(`update:show`,!1),size:`small`},{default:(0,i.withCtx)(()=>[...s[12]||=[(0,i.createTextVNode)(` 取消 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1})]),_:1})])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}}),W={class:`bpmn-layout`},G={key:0,class:`top-toolbar`},K={class:`toolbar-section`},q={class:`toolbar-group`},J={class:`toolbar-group`},Y={class:`toolbar-group`},X={class:`main-content`},Z={key:0,class:`left-panel`},re={class:`element-grid`},ie=[`onClick`,`title`],ae={class:`graph-wrapper`},oe=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:h,handleExport:g}=v(u,`bpmn-diagram`),{bindInteractions:_}=A(u,{portPositions:N,onDataChange:()=>B()}),y=(0,i.ref)(!1),b=(0,i.ref)(),x=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),S=e=>{if(!e)return[];if(Array.isArray(e))return e;let t=[];return Object.values(e).forEach(e=>{Array.isArray(e)&&t.push(...e)}),t},C=()=>{let e=N.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{o.Graph.registerNode(t,{...F[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...F[t].attrs,...P(N,n[t])}},!0)}),o.Graph.registerEdge(`bpmn-edge`,I,!0)},w=e=>{if(!u.value||!e.length)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?u.value.createEdge(n):u.value.createNode(n);return t&&r.setData(t),r});u.value.resetCells(t),setTimeout(()=>u.value.zoomToFit({padding:50,maxScale:1}),200)},T=e=>{if(!u.value)return;let t=R[e];if(!t)return;let n=u.value.options.width/2,r=u.value.options.height/2,{data:i,...a}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},o=u.value.createNode(a);i&&o.setData(i),u.value.addCell(o),B()},E=()=>{u.value?.clearCells(),B()},D=e=>{let t=e.getData()||{};b.value={id:e.id,shape:e.shape,label:x(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},y.value=!0},O=()=>{if(!u.value||!b.value)return;let e=u.value.getCellById(b.value.id);e&&(e.setData({description:b.value.description,assignee:b.value.assignee}),e.attr(`text/text`,b.value.label||``),e.attr(`label/text`,b.value.label||``)),y.value=!1,B()},k=()=>{!u.value||!b.value||(u.value.getCellById(b.value.id)?.remove(),y.value=!1,B())},M=()=>u.value?[...u.value.getNodes().map(e=>({id:e.id,shape:e.shape,x:e.getPosition().x,y:e.getPosition().y,width:e.getSize().width,height:e.getSize().height,label:x(e),data:e.getData()||{}})),...u.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:x(e),x:0,y:0}))]:[],B=()=>c(`data-change`,M());return(0,i.watch)(u,e=>{e instanceof o.Graph&&(s.readonly||(_(),e.on(`node:dblclick`,({node:e})=>D(e)),e.on(`node:moved`,B)),c(`ready`,e),w(z))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(!e||!u.value)return;let t=S(e);t.length>0&&w(t)},{deep:!0}),(0,i.onMounted)(async()=>{C();let e=L();await f({...e,connecting:{...e.connecting,createEdge:()=>u.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),t({getGraph:()=>u.value,getData:M,loadData:w}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,W,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,G,[(0,i.createElementVNode)(`div`,K,[(0,i.createElementVNode)(`div`,q,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:E,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete-outline`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 清空 `,-1)]),_:1})]),(0,i.createElementVNode)(`div`,J,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`])]),(0,i.createElementVNode)(`div`,Y,[(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(h),onSelect:r[0]||=e=>(0,i.unref)(g)(e,M)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,X,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Z,[r[7]||=(0,i.createElementVNode)(`div`,{class:`panel-title`},`组件`,-1),(0,i.createElementVNode)(`div`,re,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)((0,i.unref)(j),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`element-item`,onClick:e=>T(t),title:e.title},[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`element-icon`,e.iconClass])},null,2),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)(e.name),1)],8,ie))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ae,[(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512)])]),(0,i.createVNode)(U,{show:y.value,"editing-element":b.value,"onUpdate:editingElement":r[1]||=e=>b.value=e,"onUpdate:show":r[2]||=e=>y.value=e,onSave:O,onDelete:k},null,8,[`show`,`editing-element`])]))}});var se=r.t(oe,[[`__scopeId`,`data-v-d588444e`]]);const ce={key:0,class:`class-editor`},le={class:`section`},ue={class:`section-header`},de={style:{"font-size":`13px`}},fe={class:`section`},pe={class:`section-header`},me={style:{"font-size":`13px`}},he=(0,i.defineComponent)({__name:`UMLClassEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingClass`),o=t;return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":s[6]||=e=>o(`update:show`,e)},{default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ce,[(0,i.createVNode)((0,i.unref)(a.NForm),{"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":s[0]||=e=>r.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[7]||=[(0,i.createTextVNode)(`属性`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,le,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.attributes,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,ue,[(0,i.createElementVNode)(`span`,de,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新属性`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[8]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[9]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[10]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[1]||=e=>r.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[12]||=(0,i.createTextVNode)(` 添加属性 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(`方法`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,fe,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.methods,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,pe,[(0,i.createElementVNode)(`span`,me,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新方法`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[14]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[15]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[16]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[17]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[2]||=e=>r.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[18]||=(0,i.createTextVNode)(` 添加方法 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}}),(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`space-between`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>o(`delete`),type:`error`,ghost:``},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[s[19]||=(0,i.createTextVNode)(` 删除类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>o(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...s[20]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>o(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...s[21]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var ge=r.t(he,[[`__scopeId`,`data-v-102d6be6`]]);const _e={public:`+`,private:`-`,protected:`#`},ve={extends:{strokeDasharray:0,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},implement:{strokeDasharray:`8,4`,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},composition:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`#722ed1`,stroke:`#722ed1`}},aggregation:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},association:{strokeDasharray:0,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}}},ye=[`top`,`right`,`bottom`,`left`].reduce((e,t)=>{let n=t===`top`?{refX:.5,refY:0}:t===`right`?{refX:1,refY:.5}:t===`bottom`?{refX:.5,refY:1}:{refX:0,refY:.5};return e[`port-${t}`]={ref:`body`,...n,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),be={inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`rect`,selector:`name-rect`},{tagName:`rect`,selector:`attrs-rect`},{tagName:`rect`,selector:`methods-rect`},{tagName:`text`,selector:`name-text`},{tagName:`text`,selector:`attrs-text`},{tagName:`text`,selector:`methods-text`},{tagName:`circle`,selector:`port-top`},{tagName:`circle`,selector:`port-right`},{tagName:`circle`,selector:`port-bottom`},{tagName:`circle`,selector:`port-left`}],attrs:{rect:{width:160},body:{stroke:`#5f95ff`,strokeWidth:1,fill:`#fff`,magnet:!1,style:{cursor:`move`}},"name-rect":{fill:`#5f95ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"attrs-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"methods-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"name-text":{ref:`name-rect`,refY:.5,refX:.5,textAnchor:`middle`,fontWeight:`bold`,fill:`#fff`,fontSize:12,pointerEvents:`none`},"attrs-text":{ref:`attrs-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},"methods-text":{ref:`methods-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},...ye}},xe={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},Q={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},Se={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},Ce=[{id:`animal`,name:`<<Abstract>>
1
+ const e=require(`./chunk.cjs`),t=require(`./config.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./export-helper.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`@antv/x6`),s=require(`html2canvas`);s=e.t(s);function c(e){return{background:e?`#18181c`:`#f5f5f5`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`}}function l(e=!1){let t=c(e);return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:2},selecting:{enabled:!0,rubberband:!0,movable:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!0,snapline:!0,keyboard:!0,clipboard:!0}}function u(e){return e?{width:e.clientWidth||e.offsetWidth||800,height:e.clientHeight||e.offsetHeight||600}:{width:0,height:0}}function d(e,t){let n=0,r,a,s=!1,d=(0,i.ref)(null),f=(0,i.ref)(!1),p=i=>{if(!s){f.value=!0;try{if(!e.value)return;d.value&&=(d.value.dispose(),null);let{width:a,height:c}=u(e.value);if(a===0||c===0){n++,n<10&&(clearTimeout(r),r=setTimeout(()=>{s||m(i)},100));return}n=0;let f=l(t?.value??!1);d.value=new o.Graph({container:e.value,width:a,height:c,...f,...i})}catch{}finally{f.value=!1}}},m=async(e={})=>{clearTimeout(r),r=void 0,await(0,i.nextTick)(),p(e)};function h(e){if(!d.value)return;let t=c(e);d.value.drawBackground({color:t.background}),d.value.drawGrid({type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]})}t&&(0,i.watch)(t,e=>{h(e)});function g(){if(clearTimeout(r),clearTimeout(a),r=void 0,a=void 0,d.value){let e=d.value;d.value=null,e.dispose()}}function _(){d.value?.centerContent()}function v(){d.value?.zoomToFit({padding:20,maxScale:1})}function y(e=200,t=20){clearTimeout(a);let n=d.value;n&&(a=setTimeout(()=>{!s&&d.value===n&&n.zoomToFit({padding:t,maxScale:1})},e))}function b(e){d.value?.zoom(e)}function x(){if(d.value&&e.value){let{width:t,height:n}=u(e.value);d.value.resize(t,n)}}return(0,i.onUnmounted)(()=>{s=!0,g()}),{graph:d,loading:f,initGraph:m,destroyGraph:g,centerContent:_,zoomToFit:v,scheduleZoomToFit:y,zoom:b,resizeGraph:x,updateTheme:h}}function f(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function p(e,t=`diagram.json`){let n=JSON.stringify(e,null,2);f(new Blob([n],{type:`application/json`}),t)}async function m(e,t=`diagram.png`,n={}){let{backgroundColor:r=`#ffffff`,scale:i=2}=n,{container:a}=e;f(await g(await(0,s.default)(a,{backgroundColor:r,scale:i,useCORS:!0,logging:!1}),`image/png`),t)}function h(e,t=`diagram.svg`){let n=e.container.querySelector(`svg`);if(!n)throw Error(`SVG导出失败: 未找到图表 SVG 元素`);let r=n.cloneNode(!0);r.getAttribute(`xmlns`)||r.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),r.getAttribute(`xmlns:xlink`)||r.setAttribute(`xmlns:xlink`,`http://www.w3.org/1999/xlink`);let i=new XMLSerializer().serializeToString(r);f(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),t)}function g(e,t,n=1){return new Promise((r,i)=>{e.toBlob(e=>{e?r(e):i(Error(`Canvas 转 Blob 失败`))},t,n)})}const _=[{label:`导出PNG`,key:`png`},{label:`导出SVG`,key:`svg`},{label:`导出JSON`,key:`json`}];function v(e,n=`diagram`){let r=t.r();return{exportOptions:_,handleExport:async(t,i)=>{if(e.value)try{switch(t){case`png`:await m(e.value,`${n}.png`);break;case`svg`:h(e.value,`${n}.svg`);break;case`json`:i&&p(i(),`${n}.json`);break}}catch(e){r.error(`导出${t.toUpperCase()}失败,请重试`,e)}}}}const y=[{label:`BIGINT`,value:`BIGINT`},{label:`INT`,value:`INT`},{label:`SMALLINT`,value:`SMALLINT`},{label:`TINYINT`,value:`TINYINT`},{label:`VARCHAR(50)`,value:`VARCHAR(50)`},{label:`VARCHAR(100)`,value:`VARCHAR(100)`},{label:`VARCHAR(255)`,value:`VARCHAR(255)`},{label:`CHAR(10)`,value:`CHAR(10)`},{label:`TEXT`,value:`TEXT`},{label:`LONGTEXT`,value:`LONGTEXT`},{label:`DATETIME`,value:`DATETIME`},{label:`TIMESTAMP`,value:`TIMESTAMP`},{label:`DATE`,value:`DATE`},{label:`TIME`,value:`TIME`},{label:`DECIMAL(10,2)`,value:`DECIMAL(10,2)`},{label:`FLOAT`,value:`FLOAT`},{label:`DOUBLE`,value:`DOUBLE`},{label:`BOOLEAN`,value:`BOOLEAN`},{label:`JSON`,value:`JSON`}],b={key:0,class:`table-editor`},x={class:`fields-container`},S={class:`field-header`},C=(0,i.defineComponent)({__name:`ERTableEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingTable:{},editingTableModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`add-field`,`remove-field`,`handle-primary-key`],[`update:editingTable`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingTable`),o=t,s=(e,t)=>o(`handle-primary-key`,e,t),c=()=>o(`add-field`),l=e=>o(`remove-field`,e);return(t,o)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`600`,placement:`right`,"onUpdate:show":o[4]||=e=>t.$emit(`update:show`,e)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NDrawerContent),{title:`编辑表: ${r.value?.name||`新表`}`,closable:``},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`end`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[2]||=e=>t.$emit(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...o[11]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:o[3]||=e=>t.$emit(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...o[12]||=[(0,i.createTextVNode)(`保存`,-1)]]),_:1})]),_:1})]),default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,b,[(0,i.createVNode)((0,i.unref)(a.NForm),{model:r.value,"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":o[0]||=e=>r.value.name=e,placeholder:`请输入表名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`表注释`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.comment,"onUpdate:value":o[1]||=e=>r.value.comment=e,placeholder:`表注释`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),null,{default:(0,i.withCtx)(()=>[...o[5]||=[(0,i.createTextVNode)(`字段列表`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,x,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.fields,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NCard),{key:t,size:`small`,class:`field-card`},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,S,[(0,i.createElementVNode)(`span`,null,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新字段`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>l(t),size:`tiny`,type:`error`,quaternary:``,disabled:r.value.fields.length<=1},{default:(0,i.withCtx)(()=>[...o[6]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`,`disabled`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGrid),{cols:2,"x-gap":12},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`字段名`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`字段名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NGi),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSelect),{value:e.type,"onUpdate:value":t=>e.type=t,options:(0,i.unref)(y),size:`small`,filterable:``,placeholder:`选择类型`},null,8,[`value`,`onUpdate:value`,`options`])]),_:2},1024)]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NSpace),{style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isPrimaryKey,"onUpdate:checked":[t=>e.isPrimaryKey=t,t=>s(e,t)]},{default:(0,i.withCtx)(()=>[...o[7]||=[(0,i.createTextVNode)(` 主键 `,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isRequired,"onUpdate:checked":t=>e.isRequired=t},{default:(0,i.withCtx)(()=>[...o[8]||=[(0,i.createTextVNode)(`必填`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`]),(0,i.createVNode)((0,i.unref)(a.NCheckbox),{checked:e.isForeignKey,"onUpdate:checked":t=>e.isForeignKey=t},{default:(0,i.withCtx)(()=>[...o[9]||=[(0,i.createTextVNode)(`外键`,-1)]]),_:1},8,[`checked`,`onUpdate:checked`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`注释`,size:`small`,style:{"margin-top":`12px`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.comment,"onUpdate:value":t=>e.comment=t,placeholder:`字段注释`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:c,dashed:``,block:``,type:`primary`,ghost:``,style:{"margin-top":`16px`}},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[o[10]||=(0,i.createTextVNode)(` 添加字段 `,-1)]),_:1})])]),_:1},8,[`model`])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`title`])]),_:1},8,[`show`]))}}),w={class:`er-layout`},T={key:0,class:`toolbar`},E={key:0,style:{"margin-top":`8px`}},D=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`er-diagram`),y=(0,i.ref)(!1),b=(0,i.ref)(),x=(0,i.ref)(!1),S=(e,t)=>e.length>t?e.substring(0,t-1)+`..`:e,D=e=>e.fields?.map(t=>{let n=t.isPrimaryKey?`🔑 ${t.name}`:t.isRequired?`* ${t.name}`:t.name;return{id:`${e.id}_${t.name}`,group:`list`,attrs:{portNameLabel:{text:S(n,12),title:n},portTypeLabel:{text:S(t.type,10),title:t.type},portBody:{fill:t.isPrimaryKey?`#FFF7E6`:`#EFF4FF`}}}})||[],O=e=>({id:e.id,shape:`er-rect`,x:e.position.x,y:e.position.y,width:200,height:24+(e.fields?.length||0)*24,data:e,attrs:{label:{text:S(e.name,20),refX:.5,refY:10,textAnchor:`middle`,title:e.name}},ports:D(e)}),k=()=>{u.value&&(o.Graph.registerPortLayout(`erPortPosition`,e=>e.map((e,t)=>({position:{x:0,y:(t+1)*24},angle:0})),!0),o.Graph.registerNode(`er-rect`,{inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`text`,selector:`label`}],attrs:{rect:{strokeWidth:1,stroke:`#5F95FF`,fill:`#5F95FF`},label:{fontWeight:`bold`,fill:`#ffffff`,fontSize:12}},ports:{groups:{list:{markup:[{tagName:`rect`,selector:`portBody`},{tagName:`text`,selector:`portNameLabel`},{tagName:`text`,selector:`portTypeLabel`}],attrs:{portBody:{width:200,height:24,strokeWidth:1,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!0},portNameLabel:{ref:`portBody`,refX:6,refY:6,fontSize:9,textAnchor:`start`,textOverflow:`ellipsis`},portTypeLabel:{ref:`portBody`,refX:120,refY:6,fontSize:9,textAnchor:`start`,fill:`#666`}},position:`erPortPosition`}}}},!0))},A=()=>{x.value=!x.value,x.value||j()},j=()=>{u.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,`#A2B1C3`),e.attr(`line/strokeWidth`,2)})},M=e=>{if(!u.value)return;let t=u.value.createNode(O(e));return u.value.resetCells([t,...u.value.getCells()]),t},N=()=>{let e=u.value?.getNodes()||[];for(let t=0;t<10;t++)for(let n=0;n<3;n++){let r={x:n*250+50,y:t*250+50};if(!e.some(e=>{let t=e.getPosition();return Math.abs(t.x-r.x)<250*.8&&Math.abs(t.y-r.y)<250*.8}))return r}return{x:50,y:50}},P=()=>{let e={id:`table_${Date.now()}`,name:`新表`,comment:``,fields:[{name:`id`,type:`BIGINT`,isPrimaryKey:!0,isRequired:!0,isForeignKey:!1,comment:`主键`},{name:`name`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!0,isForeignKey:!1,comment:`名称`}],position:N()};M(e),F(e),V()},F=e=>{b.value={...e,fields:e.fields?.map(e=>({...e}))||[]},y.value=!0},I=()=>{if(!u.value||!b.value)return;let e=u.value.getCellById(b.value.id);e&&(e.setData(b.value),e.prop({size:{width:200,height:24+b.value.fields.length*24},attrs:{label:{text:S(b.value.name,20),title:b.value.name}},ports:D(b.value)})),y.value=!1,V()},L=(e,t)=>{t&&(e.isRequired=!0,b.value?.fields.forEach(t=>{t!==e&&(t.isPrimaryKey=!1)}))},R=()=>{b.value?.fields.push({name:`field_${(b.value?.fields.length||0)+1}`,type:`VARCHAR(100)`,isPrimaryKey:!1,isRequired:!1,isForeignKey:!1,comment:``})},z=e=>{b.value&&b.value.fields.length>1&&b.value.fields.splice(e,1)},B=()=>{if(!u.value)return{tables:[],relations:[]};let e=u.value.getNodes().map(e=>({...e.getData(),position:e.getPosition()})),t=[];return u.value.getEdges().forEach(e=>{let n=e.getSourceNode(),r=e.getTargetNode(),i=e.getSourcePortId(),a=e.getTargetPortId();n&&r&&i&&a&&t.push({id:e.id,type:`foreign-key`,sourceTable:n.id,sourceField:i.split(`_`).slice(1).join(`_`),targetTable:r.id,targetField:a.split(`_`).slice(1).join(`_`),name:`${n.getData()?.name||n.id} -> ${r.getData()?.name||r.id}`})}),{tables:e,relations:t}},V=()=>c(`data-change`,B()),H=null;(0,i.watch)(u,e=>{e instanceof o.Graph&&(k(),e.on(`node:dblclick`,({node:e})=>{s.readonly||F(e.getData())}),e.on(`edge:connected`,V),e.on(`edge:removed`,V),e.on(`edge:click`,({edge:e})=>{x.value?(e.remove(),V()):(j(),e.attr(`line/stroke`,`#ff4d4f`),e.attr(`line/strokeWidth`,3),H=e)}),e.on(`edge:dblclick`,({edge:e})=>{e.remove(),V()}),e.on(`blank:click`,()=>{H=null,x.value||j()}),c(`ready`,e),(0,i.nextTick)(()=>{if(s.data?.tables){let t=s.data.tables.map(t=>e.createNode(O(t)));s.data.relations?.length&&s.data.relations.forEach(n=>{t.push(e.createEdge({source:{cell:n.sourceTable,port:`${n.sourceTable}_${n.sourceField}`},target:{cell:n.targetTable,port:`${n.targetTable}_${n.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),e.resetCells(t),h(300,20)}}))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(u.value&&e?.tables){let t=e.tables.map(e=>u.value.createNode(O(e)));e.relations?.length&&e.relations.forEach(e=>{t.push(u.value.createEdge({source:{cell:e.sourceTable,port:`${e.sourceTable}_${e.sourceField}`},target:{cell:e.targetTable,port:`${e.targetTable}_${e.targetField}`},attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2}}}))}),u.value.resetCells(t)}},{deep:!0});let U=e=>{let t=e.target;t?.tagName===`INPUT`||t?.tagName===`TEXTAREA`||t?.isContentEditable||(e.key===`Delete`||e.key===`Backspace`)&&H&&(H.remove(),V(),H=null)};return(0,i.onMounted)(()=>{document.addEventListener(`keydown`,U),f()}),(0,i.onUnmounted)(()=>document.removeEventListener(`keydown`,U)),t({getGraph:()=>u.value??void 0,getData:B}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,w,[(0,i.createCommentVNode)(` 工具栏 `),e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,T,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:P,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:table-plus`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加表 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:A,type:x.value?`error`:`default`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(x.value?`退出删除`:`删除连线`),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,B)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1}),x.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,E,[(0,i.createVNode)((0,i.unref)(a.NAlert),{type:`info`,size:`small`,"show-icon":!1},{default:(0,i.withCtx)(()=>[...r[7]||=[(0,i.createTextVNode)(` 删除模式:点击连接线即可删除 `,-1)]]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 图表容器 `),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512),(0,i.createCommentVNode)(` 表编辑器 `),(0,i.createVNode)(C,{show:y.value,"editing-table":b.value,"onUpdate:editingTable":r[1]||=e=>b.value=e,"onUpdate:show":r[2]||=e=>y.value=e,onSave:I,onAddField:R,onRemoveField:z,onHandlePrimaryKey:L},null,8,[`show`,`editing-table`])]))}});var O=r.t(D,[[`__scopeId`,`data-v-edf47b23`]]);const k={defaultColor:`#A2B1C3`,highlightColor:`#ff4d4f`,strokeWidth:2,highlightStrokeWidth:3,portPositions:[],onDataChange:()=>{}};function A(e,t={}){let n={...k,...t},r=()=>{e.value?.getEdges().forEach(e=>{e.attr(`line/stroke`,n.defaultColor),e.attr(`line/strokeWidth`,n.strokeWidth)})},i=e=>{r(),e.attr(`line/stroke`,n.highlightColor),e.attr(`line/strokeWidth`,n.highlightStrokeWidth)},a=(e,t)=>{n.portPositions.forEach(n=>e.attr(`port-${n}/style/opacity`,t))};return{resetEdgeStyles:r,highlightEdge:i,togglePorts:a,bindInteractions:()=>{let t=e.value;t&&(t.on(`edge:click`,({edge:e})=>i(e)),t.on(`edge:dblclick`,({edge:e})=>{e.remove(),n.onDataChange()}),t.on(`blank:click`,r),t.on(`node:click`,r),t.on(`edge:connected`,n.onDataChange),n.portPositions.length>0&&(t.on(`node:mouseenter`,({node:e})=>a(e,1)),t.on(`node:mouseleave`,({node:e})=>a(e,0))))}}}const j={"start-event":{name:`开始`,title:`开始事件`,iconClass:`circle start-event`},activity:{name:`任务`,title:`任务活动`,iconClass:`rect activity`},gateway:{name:`网关`,title:`排他网关`,iconClass:`diamond gateway`},"end-event":{name:`结束`,title:`结束事件`,iconClass:`circle end-event`}},M={event:`事件`,activity:`活动`,gateway:`网关`,"bpmn-edge":`连接线`},N=[`top`,`right`,`bottom`,`left`],P=(e,t=`rect`)=>e.reduce((e,n)=>{let r=t===`circle`,i=n===`top`?r?{refCx:.5,refCy:0}:{refX:.5,refY:0}:n===`right`?r?{refCx:1,refCy:.5}:{refX:1,refY:.5}:n===`bottom`?r?{refCx:.5,refCy:1}:{refX:.5,refY:1}:r?{refCx:0,refCy:.5}:{refX:0,refY:.5};return e[`port-${n}`]={ref:`body`,...i,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),F={event:{inherit:`circle`,attrs:{body:{strokeWidth:2,stroke:`#5F95FF`,fill:`#FFF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},activity:{inherit:`rect`,attrs:{body:{rx:6,ry:6,stroke:`#5F95FF`,fill:`#EFF4FF`,strokeWidth:1,magnet:!1,style:{cursor:`move`}},text:{fontSize:12,fill:`#262626`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}},gateway:{inherit:`polygon`,attrs:{body:{refPoints:`0,10 10,0 20,10 10,20`,strokeWidth:2,stroke:`#5F95FF`,fill:`#EFF4FF`,magnet:!1,style:{cursor:`move`}},text:{fontSize:20,fill:`#5F95FF`,textAnchor:`middle`,textVerticalAnchor:`middle`,pointerEvents:`none`}}}},I={inherit:`edge`,attrs:{line:{stroke:`#A2B1C3`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#A2B1C3`},cursor:`pointer`}}};function L(e=!1){let t={background:e?`#18181c`:`#ffffff`,gridPrimary:e?`rgba(255, 255, 255, 0.08)`:`#eee`,gridSecondary:e?`rgba(255, 255, 255, 0.04)`:`#ddd`};return{background:{color:t.background},grid:{visible:!0,type:`doubleMesh`,args:[{color:t.gridPrimary,thickness:1},{color:t.gridSecondary,thickness:1,factor:4}]},mousewheel:{enabled:!0,zoomAtMousePosition:!0,modifiers:`ctrl`,minScale:.5,maxScale:3},connecting:{router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},highlighting:{magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},selecting:{enabled:!0,rubberband:!0,showNodeSelectionBox:!0},resizing:!0,rotating:!1,snapline:!0,keyboard:!0,clipboard:!0}}L();const R={"start-event":{shape:`event`,width:50,height:50,label:`开始事件`,data:{type:`start`}},"end-event":{shape:`event`,width:50,height:50,label:`结束事件`,data:{type:`end`}},activity:{shape:`activity`,width:120,height:60,label:`新活动`,data:{description:``,assignee:``}},gateway:{shape:`gateway`,width:40,height:40,label:`+`,data:{type:`exclusive`}}},z=[{id:`start-1`,shape:`event`,x:100,y:200,width:50,height:50,label:`流程开始`,data:{type:`start`}},{id:`activity-1`,shape:`activity`,x:200,y:180,width:120,height:60,label:`用户申请`,data:{description:`用户提交申请表单`,assignee:`申请人`}},{id:`activity-2`,shape:`activity`,x:380,y:180,width:120,height:60,label:`初审`,data:{description:`部门进行初步审核`,assignee:`部门主管`}},{id:`gateway-1`,shape:`gateway`,x:550,y:200,width:40,height:40,label:`+`,data:{type:`exclusive`}},{id:`activity-3`,shape:`activity`,x:650,y:120,width:120,height:60,label:`终审`,data:{description:`高级主管最终审核`,assignee:`总监`}},{id:`activity-4`,shape:`activity`,x:650,y:260,width:120,height:60,label:`驳回处理`,data:{description:`处理驳回流程`,assignee:`专员`}},{id:`end-1`,shape:`event`,x:820,y:140,width:50,height:50,label:`审批通过`,data:{type:`end`}},{id:`end-2`,shape:`event`,x:820,y:280,width:50,height:50,label:`审批驳回`,data:{type:`end`}},{id:`edge-1`,shape:`bpmn-edge`,source:`start-1`,target:`activity-1`,x:0,y:0},{id:`edge-2`,shape:`bpmn-edge`,source:`activity-1`,target:`activity-2`,x:0,y:0},{id:`edge-3`,shape:`bpmn-edge`,source:`activity-2`,target:`gateway-1`,x:0,y:0},{id:`edge-4`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-3`,label:`通过`,x:0,y:0},{id:`edge-5`,shape:`bpmn-edge`,source:`gateway-1`,target:`activity-4`,label:`驳回`,x:0,y:0},{id:`edge-6`,shape:`bpmn-edge`,source:`activity-3`,target:`end-1`,x:0,y:0},{id:`edge-7`,shape:`bpmn-edge`,source:`activity-4`,target:`end-2`,x:0,y:0}],B={key:0,class:`property-panel`},V={class:`property-item`},H={class:`property-item`},U={key:0,class:`property-item`},ee={key:1,class:`property-item`},te={class:`form-actions`},ne=(0,i.defineComponent)({__name:`BPMNPropertyEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingElement:{},editingElementModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingElement`]),setup(e,{emit:t}){let n=(0,i.useModel)(e,`editingElement`),r=t,o=(0,i.computed)(()=>M[n.value?.shape]||n.value?.shape||``);return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`300`,title:`属性设置`,"onUpdate:show":s[6]||=e=>r(`update:show`,e)},{default:(0,i.withCtx)(()=>[n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,B,[(0,i.createElementVNode)(`div`,V,[s[7]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`名称`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.label,"onUpdate:value":s[0]||=e=>n.value.label=e,placeholder:`请输入名称`,size:`small`},null,8,[`value`])]),(0,i.createElementVNode)(`div`,H,[s[8]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`类型`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:o.value,readonly:``,size:`small`},null,8,[`value`])]),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,U,[s[9]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`描述`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.description,"onUpdate:value":s[1]||=e=>n.value.description=e,type:`textarea`,rows:3,placeholder:`请输入活动描述`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),n.value.shape===`activity`?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ee,[s[10]||=(0,i.createElementVNode)(`div`,{class:`property-label`},`执行人`,-1),(0,i.createVNode)((0,i.unref)(a.NInput),{value:n.value.assignee,"onUpdate:value":s[2]||=e=>n.value.assignee=e,placeholder:`请输入执行人`,size:`small`},null,8,[`value`])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,te,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>r(`save`),type:`primary`,size:`small`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>r(`update:show`,!1),size:`small`},{default:(0,i.withCtx)(()=>[...s[12]||=[(0,i.createTextVNode)(` 取消 `,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>r(`delete`),type:`error`,size:`small`},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1})]),_:1})])])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}}),W={class:`bpmn-layout`},G={key:0,class:`top-toolbar`},K={class:`toolbar-section`},q={class:`toolbar-group`},J={class:`toolbar-group`},Y={class:`toolbar-group`},X={class:`main-content`},Z={key:0,class:`left-panel`},re={class:`element-grid`},ie=[`onClick`,`title`],ae={class:`graph-wrapper`},oe=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`bpmn-diagram`),{bindInteractions:y}=A(u,{portPositions:N,onDataChange:()=>V()}),b=(0,i.ref)(!1),x=(0,i.ref)(),S=e=>String(e.attr(`text/text`)||e.attr(`label/text`)||``),C=e=>{if(!e)return[];if(Array.isArray(e))return e;let t=[];return Object.values(e).forEach(e=>{Array.isArray(e)&&t.push(...e)}),t},w=()=>{let e=N.map(e=>({tagName:`circle`,selector:`port-${e}`})),t=[`event`,`activity`,`gateway`],n={event:`circle`,activity:`rect`,gateway:`polygon`};t.forEach(t=>{o.Graph.registerNode(t,{...F[t],markup:[{tagName:n[t],selector:`body`},{tagName:`text`,selector:`text`},...e],attrs:{...F[t].attrs,...P(N,n[t])}},!0)}),o.Graph.registerEdge(`bpmn-edge`,I,!0)},T=e=>{if(!u.value||!e.length)return;let t=e.map(e=>{let{data:t,...n}=e,r=e.shape===`bpmn-edge`?u.value.createEdge(n):u.value.createNode(n);return t&&r.setData(t),r});u.value.resetCells(t),h(200,50)},E=e=>{if(!u.value)return;let t=R[e];if(!t)return;let n=u.value.options.width/2,r=u.value.options.height/2,{data:i,...a}={id:`${e}-${Date.now()}`,x:n+Math.random()*100-50,y:r+Math.random()*100-50,...t},o=u.value.createNode(a);i&&o.setData(i),u.value.addCell(o),V()},D=()=>{u.value?.clearCells(),V()},O=e=>{let t=e.getData()||{};x.value={id:e.id,shape:e.shape,label:S(e),description:t.description||``,assignee:t.assignee||``,x:0,y:0},b.value=!0},k=()=>{if(!u.value||!x.value)return;let e=u.value.getCellById(x.value.id);e&&(e.setData({description:x.value.description,assignee:x.value.assignee}),e.attr(`text/text`,x.value.label||``),e.attr(`label/text`,x.value.label||``)),b.value=!1,V()},M=()=>{!u.value||!x.value||(u.value.getCellById(x.value.id)?.remove(),b.value=!1,V())},B=()=>u.value?[...u.value.getNodes().map(e=>({id:e.id,shape:e.shape,x:e.getPosition().x,y:e.getPosition().y,width:e.getSize().width,height:e.getSize().height,label:S(e),data:e.getData()||{}})),...u.value.getEdges().map(e=>({id:e.id,shape:`bpmn-edge`,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``,label:S(e),x:0,y:0}))]:[],V=()=>c(`data-change`,B());return(0,i.watch)(u,e=>{e instanceof o.Graph&&(s.readonly||(y(),e.on(`node:dblclick`,({node:e})=>O(e)),e.on(`node:moved`,V)),c(`ready`,e),T(z))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(!e||!u.value)return;let t=C(e);t.length>0&&T(t)},{deep:!0}),(0,i.onMounted)(async()=>{w();let e=L();await f({...e,connecting:{...e.connecting,createEdge:()=>u.value.createEdge({shape:`bpmn-edge`}),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`}})}),t({getGraph:()=>u.value,getData:B,loadData:T}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,W,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,G,[(0,i.createElementVNode)(`div`,K,[(0,i.createElementVNode)(`div`,q,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:D,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete-outline`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 清空 `,-1)]),_:1})]),(0,i.createElementVNode)(`div`,J,[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`])]),(0,i.createElementVNode)(`div`,Y,[(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,B)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,X,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Z,[r[7]||=(0,i.createElementVNode)(`div`,{class:`panel-title`},`组件`,-1),(0,i.createElementVNode)(`div`,re,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)((0,i.unref)(j),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`element-item`,onClick:e=>E(t),title:e.title},[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`element-icon`,e.iconClass])},null,2),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)(e.name),1)],8,ie))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,ae,[(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`},null,512)])]),(0,i.createVNode)(ne,{show:b.value,"editing-element":x.value,"onUpdate:editingElement":r[1]||=e=>x.value=e,"onUpdate:show":r[2]||=e=>b.value=e,onSave:k,onDelete:M},null,8,[`show`,`editing-element`])]))}});var se=r.t(oe,[[`__scopeId`,`data-v-700d0476`]]);const ce={key:0,class:`class-editor`},le={class:`section`},ue={class:`section-header`},de={style:{"font-size":`13px`}},fe={class:`section`},pe={class:`section-header`},me={style:{"font-size":`13px`}},he=(0,i.defineComponent)({__name:`UMLClassEditor`,props:(0,i.mergeModels)({show:{type:Boolean}},{editingClass:{},editingClassModifiers:{}}),emits:(0,i.mergeModels)([`update:show`,`save`,`delete`],[`update:editingClass`]),setup(e,{emit:t}){let r=(0,i.useModel)(e,`editingClass`),o=t;return(t,s)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NDrawer),{show:e.show,width:`450`,title:`编辑类`,"onUpdate:show":s[6]||=e=>o(`update:show`,e)},{default:(0,i.withCtx)(()=>[r.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ce,[(0,i.createVNode)((0,i.unref)(a.NForm),{"label-placement":`top`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类名`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:r.value.name,"onUpdate:value":s[0]||=e=>r.value.name=e,placeholder:`请输入类名`},null,8,[`value`])]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[7]||=[(0,i.createTextVNode)(`属性`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,le,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.attributes,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,ue,[(0,i.createElementVNode)(`span`,de,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新属性`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.attributes.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[8]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`属性名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`属性名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.type,"onUpdate:value":t=>e.type=t,placeholder:`类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[9]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[10]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[11]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[1]||=e=>r.value.attributes.push({name:`newAttribute`,type:`string`,visibility:`private`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[12]||=(0,i.createTextVNode)(` 添加属性 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}},{default:(0,i.withCtx)(()=>[...s[13]||=[(0,i.createTextVNode)(`方法`,-1)]]),_:1}),(0,i.createElementVNode)(`div`,fe,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(r.value.methods,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:`item`},[(0,i.createVNode)((0,i.unref)(a.NCard),{size:`small`,style:{"margin-bottom":`12px`}},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,pe,[(0,i.createElementVNode)(`span`,me,`#`+(0,i.toDisplayString)(t+1)+` `+(0,i.toDisplayString)(e.name||`新方法`),1),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:e=>r.value.methods.splice(t,1),size:`tiny`,type:`error`,quaternary:``,style:{"margin-left":`auto`}},{default:(0,i.withCtx)(()=>[...s[14]||=[(0,i.createTextVNode)(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),{vertical:``,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`方法名`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.name,"onUpdate:value":t=>e.name=t,placeholder:`方法名`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`返回类型`,style:{margin:`0`,flex:`1`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NInput),{value:e.returnType,"onUpdate:value":t=>e.returnType=t,placeholder:`返回类型`,size:`small`},null,8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024),(0,i.createVNode)((0,i.unref)(a.NFormItem),{label:`可见性`,style:{margin:`0`}},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadioGroup),{value:e.visibility,"onUpdate:value":t=>e.visibility=t,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`public`},{default:(0,i.withCtx)(()=>[...s[15]||=[(0,i.createTextVNode)(`+ public`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`private`},{default:(0,i.withCtx)(()=>[...s[16]||=[(0,i.createTextVNode)(`- private`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NRadio),{value:`protected`},{default:(0,i.withCtx)(()=>[...s[17]||=[(0,i.createTextVNode)(`# protected`,-1)]]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]),_:2},1024)]),_:2},1024)]),_:2},1024)]))),128)),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[2]||=e=>r.value.methods.push({name:`newMethod`,returnType:`void`,visibility:`public`}),dashed:``,block:``,type:`primary`,ghost:``,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus`,size:16})]),default:(0,i.withCtx)(()=>[s[18]||=(0,i.createTextVNode)(` 添加方法 `,-1)]),_:1})]),(0,i.createVNode)((0,i.unref)(a.NDivider),{style:{margin:`20px 0`}}),(0,i.createVNode)((0,i.unref)(a.NSpace),{justify:`space-between`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[3]||=e=>o(`delete`),type:`error`,ghost:``},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:delete`,size:16})]),default:(0,i.withCtx)(()=>[s[19]||=(0,i.createTextVNode)(` 删除类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[4]||=e=>o(`update:show`,!1)},{default:(0,i.withCtx)(()=>[...s[20]||=[(0,i.createTextVNode)(`取消`,-1)]]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:s[5]||=e=>o(`save`),type:`primary`},{default:(0,i.withCtx)(()=>[...s[21]||=[(0,i.createTextVNode)(` 保存 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`]))}});var ge=r.t(he,[[`__scopeId`,`data-v-102d6be6`]]);const _e={public:`+`,private:`-`,protected:`#`},ve={extends:{strokeDasharray:0,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},implement:{strokeDasharray:`8,4`,targetMarker:{name:`block`,width:10,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},composition:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`#722ed1`,stroke:`#722ed1`}},aggregation:{strokeDasharray:0,sourceMarker:{name:`diamond`,width:12,height:8,fill:`white`,stroke:`#722ed1`,strokeWidth:2}},association:{strokeDasharray:0,targetMarker:{name:`classic`,size:8,fill:`#722ed1`}}},ye=[`top`,`right`,`bottom`,`left`].reduce((e,t)=>{let n=t===`top`?{refX:.5,refY:0}:t===`right`?{refX:1,refY:.5}:t===`bottom`?{refX:.5,refY:1}:{refX:0,refY:.5};return e[`port-${t}`]={ref:`body`,...n,r:4,fill:`#31d0c6`,stroke:`#ffffff`,strokeWidth:2,magnet:!0,style:{cursor:`crosshair`,opacity:0,transition:`opacity 0.2s`}},e},{}),be={inherit:`rect`,markup:[{tagName:`rect`,selector:`body`},{tagName:`rect`,selector:`name-rect`},{tagName:`rect`,selector:`attrs-rect`},{tagName:`rect`,selector:`methods-rect`},{tagName:`text`,selector:`name-text`},{tagName:`text`,selector:`attrs-text`},{tagName:`text`,selector:`methods-text`},{tagName:`circle`,selector:`port-top`},{tagName:`circle`,selector:`port-right`},{tagName:`circle`,selector:`port-bottom`},{tagName:`circle`,selector:`port-left`}],attrs:{rect:{width:160},body:{stroke:`#5f95ff`,strokeWidth:1,fill:`#fff`,magnet:!1,style:{cursor:`move`}},"name-rect":{fill:`#5f95ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"attrs-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"methods-rect":{fill:`#eff4ff`,stroke:`#fff`,strokeWidth:.5,magnet:!1,style:{cursor:`move`}},"name-text":{ref:`name-rect`,refY:.5,refX:.5,textAnchor:`middle`,fontWeight:`bold`,fill:`#fff`,fontSize:12,pointerEvents:`none`},"attrs-text":{ref:`attrs-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},"methods-text":{ref:`methods-rect`,refY:.5,refX:5,textAnchor:`left`,fill:`black`,fontSize:10,pointerEvents:`none`},...ye}},xe={router:`manhattan`,connector:{name:`rounded`,args:{radius:8}},allowBlank:!1,allowLoop:!1,allowNode:!1,snap:!0,allowEdge:!1},Q={magnetAvailable:{name:`stroke`,args:{attrs:{fill:`#31d0c6`,stroke:`#31d0c6`,opacity:1}}},magnetAdsorbed:{name:`stroke`,args:{attrs:{fill:`#5F95FF`,stroke:`#5F95FF`,opacity:1}}}},Se={shape:`extends`,attrs:{line:{stroke:`#722ed1`,strokeWidth:2,targetMarker:{name:`block`,width:8,height:6,fill:`#722ed1`}}}},Ce=[{id:`animal`,name:`<<Abstract>>
2
2
  动物`,x:342,y:98,attributes:[{name:`名字`,type:`string`,visibility:`public`}],methods:[{name:`新陈代谢`,returnType:`void`,visibility:`public`},{name:`繁殖`,returnType:`void`,visibility:`public`}]},{id:`bird`,name:`鸟`,x:575,y:280,attributes:[{name:`羽毛`,type:`string`,visibility:`public`},{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`mammal`,name:`哺乳动物`,x:844,y:319,attributes:[{name:`翅膀`,type:`boolean`,visibility:`public`}],methods:[]},{id:`dog`,name:`狗`,x:656,y:456,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`enterprise`,name:`企鹅`,x:984,y:456,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`sparrow`,name:`麻雀`,x:531,y:608,attributes:[{name:`学飞`,type:`boolean`,visibility:`public`}],methods:[]},{id:`interface-flying`,name:`<<interface>>
3
- 飞翔`,x:762,y:608,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`qemu`,name:`气球`,x:981,y:608,attributes:[],methods:[]}],we=[{id:`edge-1`,shape:`extends`,source:`bird`,target:`animal`},{id:`edge-2`,shape:`extends`,source:`mammal`,target:`animal`},{id:`edge-3`,shape:`extends`,source:`dog`,target:`mammal`},{id:`edge-4`,shape:`extends`,source:`enterprise`,target:`mammal`},{id:`edge-5`,shape:`extends`,source:`sparrow`,target:`bird`},{id:`edge-6`,shape:`implement`,source:`sparrow`,target:`interface-flying`},{id:`edge-7`,shape:`implement`,source:`enterprise`,target:`interface-flying`},{id:`edge-8`,shape:`association`,source:`bird`,target:`mammal`,label:`1:2`}],$=e=>_e[e]||`+`,Te={name:`新类`,attributes:[{name:`attribute`,type:`string`,visibility:`private`}],methods:[{name:`method`,returnType:`void`,visibility:`public`}],position:{x:100,y:100}},Ee={class:`uml-layout`},De={key:0,class:`toolbar`},Oe=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:h,handleExport:g}=v(u,`uml-diagram`),{bindInteractions:_}=A(u,{defaultColor:`#722ed1`,portPositions:[`top`,`right`,`bottom`,`left`],onDataChange:()=>k()}),y=(0,i.ref)(!1),b=(0,i.ref)(),x=()=>{o.Graph.registerNode(`class`,{...be,propHooks(e){let{name:t,attributes:n,methods:r,...i}=e;if(!(t&&n&&r))return e;let a=0;return[{type:`name`,text:t},{type:`attrs`,text:n},{type:`methods`,text:r}].forEach(e=>{let t=Array.isArray(e.text)?e.text.length*12+16:32;o.ObjectExt.setByPath(i,`attrs/${e.type}-text/text`,Array.isArray(e.text)?e.text.join(`
4
- `):e.text),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/height`,t),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/transform`,`translate(0,${a})`),a+=t}),i.size={width:160,height:a},i}},!0),Object.entries(ve).forEach(([e,t])=>{o.Graph.registerEdge(e,{inherit:`edge`,attrs:{line:{strokeWidth:2,stroke:`#722ed1`,...t}}},!0)})},S=e=>{if(!u.value||!e.length)return;let t=[`extends`,`composition`,`implement`,`aggregation`,`association`],n=[];e.forEach(e=>{if(t.includes(e.shape))n.push(u.value.createEdge(e));else{let{data:t,...r}=e,i=u.value.createNode(r);t&&i.setData(t),n.push(i)}}),u.value.resetCells(n),setTimeout(()=>u.value.zoomToFit({padding:10,maxScale:1}),200)},C=e=>({name:e.name,attributes:e.attributes.map(e=>`${$(e.visibility)} ${e.name}: ${e.type}`),methods:e.methods.map(e=>`${$(e.visibility)} ${e.name}(): ${e.returnType}`)}),w=()=>{if(!u.value)return;let e={id:`class_${Date.now()}`,...Te},t={id:e.id,shape:`class`,x:e.position.x,y:e.position.y,...C(e),data:e};u.value.addCell(u.value.createNode(t)),k()},T=e=>{b.value={...e,attributes:[...e.attributes||[]],methods:[...e.methods||[]]},y.value=!0},E=()=>{if(!u.value||!b.value)return;let e=u.value.getCellById(b.value.id);e&&(e.setData(b.value),e.prop(C(b.value))),y.value=!1,k()},D=()=>{!u.value||!b.value||(u.value.getCellById(b.value.id)?.remove(),y.value=!1,k())},O=()=>({classes:u.value?.getNodes().map(e=>({...e.getData(),position:e.getPosition()}))||[],relations:u.value?.getEdges().map(e=>({id:e.id,type:e.shape,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``}))||[]}),k=()=>c(`data-change`,O());return(0,i.watch)(u,e=>{e instanceof o.Graph&&(x(),_(),e.on(`node:dblclick`,({node:e})=>{!s.readonly&&e.getData()&&T(e.getData())}),c(`ready`,e),S([...Ce.map(e=>({id:e.id,shape:`class`,x:e.x,y:e.y,...C(e),data:{id:e.id,name:e.name,attributes:e.attributes,methods:e.methods,position:{x:e.x,y:e.y}}})),...we]))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(u.value&&e?.classes){let t=[`extends`,`composition`,`implement`,`aggregation`,`association`];S([...e.classes.map(e=>({id:e.id,shape:`class`,x:e.position?.x??50,y:e.position?.y??50,...C(e),data:e})),...(e.relations||[]).filter(e=>t.includes(e.type)).map(e=>({shape:e.type,source:e.source,target:e.target}))])}},{deep:!0}),(0,i.onMounted)(()=>{f({interacting:!0,connecting:{...xe,createEdge:()=>u.value.createEdge(Se),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`},highlighting:Q})}),t({getGraph:()=>u.value,getData:O,addClass:w,centerContent:p,zoomToFit:m}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ee,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,De,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:w,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus-box`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(h),onSelect:r[0]||=e=>(0,i.unref)(g)(e,O)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`,style:(0,i.normalizeStyle)({width:s.width,height:s.height})},null,4),(0,i.createVNode)(ge,{show:y.value,"editing-class":b.value,"onUpdate:editingClass":r[1]||=e=>b.value=e,"onUpdate:show":r[2]||=e=>y.value=e,onSave:E,onDelete:D},null,8,[`show`,`editing-class`])]))}});var ke=r.t(Oe,[[`__scopeId`,`data-v-e4891a91`]]);const Ae={class:`c-antv-container`},je=(0,i.defineComponent)({name:`C_AntV`,__name:`index`,props:{type:{},data:{},width:{default:`100%`},height:{default:`600px`},readonly:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:n}){let r=e,a=n,o=(0,i.ref)(),s={er:O,bpmn:se,uml:ke},c=(0,i.computed)(()=>s[r.type]),l=(0,i.computed)(()=>{let e={width:r.width,height:r.height,readonly:r.readonly,showToolbar:r.showToolbar,theme:r.theme},t=r.data;if(r.type===`bpmn`&&r.data){let e=r.data;e&&typeof e==`object`&&`nodes`in e&&`edges`in e&&(t=[...(e.nodes||[]).map(e=>({...e,shape:e.type||e.shape||`rect`,x:e.x??0,y:e.y??0})),...(e.edges||[]).map(e=>({...e,shape:`edge`,x:0,y:0}))])}return{...e,data:t}}),u=e=>{a(`ready`,e)},d=e=>{let t;t=r.type===`bpmn`&&Array.isArray(e)?{nodes:e.filter(e=>e.shape!==`edge`).map(e=>{let{shape:t,x:n,y:r,...i}=e;return{...i,type:t===`rect`?`task`:t,x:n||0,y:r||0}}),edges:e.filter(e=>e.shape===`edge`).map(e=>{let{shape:t,x:n,y:r,...i}=e;return i}),flows:[]}:e,a(`data-change`,t)};return t({getGraph:()=>o.value?.getGraph?.(),getData:()=>{let e=o.value?.getData?.();return r.type===`bpmn`&&Array.isArray(e)?{nodes:e.filter(e=>e.shape!==`edge`),edges:e.filter(e=>e.shape===`edge`),flows:[]}:e}}),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ae,[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(c.value),(0,i.mergeProps)(l.value,{onReady:u,onDataChange:d,ref_key:`layoutRef`,ref:o}),null,16))]))}});var Me=r.t(je,[[`__scopeId`,`data-v-b03826d0`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Me}});
3
+ 飞翔`,x:762,y:608,attributes:[{name:`下蛋`,type:`boolean`,visibility:`public`}],methods:[]},{id:`qemu`,name:`气球`,x:981,y:608,attributes:[],methods:[]}],we=[{id:`edge-1`,shape:`extends`,source:`bird`,target:`animal`},{id:`edge-2`,shape:`extends`,source:`mammal`,target:`animal`},{id:`edge-3`,shape:`extends`,source:`dog`,target:`mammal`},{id:`edge-4`,shape:`extends`,source:`enterprise`,target:`mammal`},{id:`edge-5`,shape:`extends`,source:`sparrow`,target:`bird`},{id:`edge-6`,shape:`implement`,source:`sparrow`,target:`interface-flying`},{id:`edge-7`,shape:`implement`,source:`enterprise`,target:`interface-flying`},{id:`edge-8`,shape:`association`,source:`bird`,target:`mammal`,label:`1:2`}],$=e=>_e[e]||`+`,Te={name:`新类`,attributes:[{name:`attribute`,type:`string`,visibility:`private`}],methods:[{name:`method`,returnType:`void`,visibility:`public`}],position:{x:100,y:100}},Ee={class:`uml-layout`},De={key:0,class:`toolbar`},Oe=(0,i.defineComponent)({__name:`index`,props:{data:{},showToolbar:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},width:{default:`100%`},height:{default:`600px`},theme:{}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:r}){let s=e,c=r,l=(0,i.ref)(),{graph:u,initGraph:f,centerContent:p,zoomToFit:m,scheduleZoomToFit:h}=d(l,(0,i.computed)(()=>s.theme===`dark`)),{exportOptions:g,handleExport:_}=v(u,`uml-diagram`),{bindInteractions:y}=A(u,{defaultColor:`#722ed1`,portPositions:[`top`,`right`,`bottom`,`left`],onDataChange:()=>j()}),b=(0,i.ref)(!1),x=(0,i.ref)(),S=()=>{o.Graph.registerNode(`class`,{...be,propHooks(e){let{name:t,attributes:n,methods:r,...i}=e;if(!(t&&n&&r))return e;let a=0;return[{type:`name`,text:t},{type:`attrs`,text:n},{type:`methods`,text:r}].forEach(e=>{let t=Array.isArray(e.text)?e.text.length*12+16:32;o.ObjectExt.setByPath(i,`attrs/${e.type}-text/text`,Array.isArray(e.text)?e.text.join(`
4
+ `):e.text),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/height`,t),o.ObjectExt.setByPath(i,`attrs/${e.type}-rect/transform`,`translate(0,${a})`),a+=t}),i.size={width:160,height:a},i}},!0),Object.entries(ve).forEach(([e,t])=>{o.Graph.registerEdge(e,{inherit:`edge`,attrs:{line:{strokeWidth:2,stroke:`#722ed1`,...t}}},!0)})},C=e=>{if(!u.value||!e.length)return;let t=[`extends`,`composition`,`implement`,`aggregation`,`association`],n=[];e.forEach(e=>{if(t.includes(e.shape))n.push(u.value.createEdge(e));else{let{data:t,...r}=e,i=u.value.createNode(r);t&&i.setData(t),n.push(i)}}),u.value.resetCells(n),h(200,10)},w=e=>({name:e.name,attributes:e.attributes.map(e=>`${$(e.visibility)} ${e.name}: ${e.type}`),methods:e.methods.map(e=>`${$(e.visibility)} ${e.name}(): ${e.returnType}`)}),T=()=>{if(!u.value)return;let e={id:`class_${Date.now()}`,...Te},t={id:e.id,shape:`class`,x:e.position.x,y:e.position.y,...w(e),data:e};u.value.addCell(u.value.createNode(t)),j()},E=e=>{x.value={...e,attributes:[...e.attributes||[]],methods:[...e.methods||[]]},b.value=!0},D=()=>{if(!u.value||!x.value)return;let e=u.value.getCellById(x.value.id);e&&(e.setData(x.value),e.prop(w(x.value))),b.value=!1,j()},O=()=>{!u.value||!x.value||(u.value.getCellById(x.value.id)?.remove(),b.value=!1,j())},k=()=>({classes:u.value?.getNodes().map(e=>({...e.getData(),position:e.getPosition()}))||[],relations:u.value?.getEdges().map(e=>({id:e.id,type:e.shape,source:e.getSourceCellId()||``,target:e.getTargetCellId()||``}))||[]}),j=()=>c(`data-change`,k());return(0,i.watch)(u,e=>{e instanceof o.Graph&&(S(),y(),e.on(`node:dblclick`,({node:e})=>{!s.readonly&&e.getData()&&E(e.getData())}),c(`ready`,e),C([...Ce.map(e=>({id:e.id,shape:`class`,x:e.x,y:e.y,...w(e),data:{id:e.id,name:e.name,attributes:e.attributes,methods:e.methods,position:{x:e.x,y:e.y}}})),...we]))},{immediate:!0}),(0,i.watch)(()=>s.data,e=>{if(u.value&&e?.classes){let t=[`extends`,`composition`,`implement`,`aggregation`,`association`];C([...e.classes.map(e=>({id:e.id,shape:`class`,x:e.position?.x??50,y:e.position?.y??50,...w(e),data:e})),...(e.relations||[]).filter(e=>t.includes(e.type)).map(e=>({shape:e.type,source:e.source,target:e.target}))])}},{deep:!0}),(0,i.onMounted)(()=>{f({interacting:!0,connecting:{...xe,createEdge:()=>u.value.createEdge(Se),validateConnection:({sourceView:e,targetView:t,sourceMagnet:n,targetMagnet:r})=>e!==t&&!!n&&!!r&&n.getAttribute(`magnet`)===`true`&&r.getAttribute(`magnet`)===`true`},highlighting:Q})}),t({getGraph:()=>u.value,getData:k,addClass:T,centerContent:p,zoomToFit:m}),(t,r)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ee,[e.showToolbar?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,De,[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:T,type:`primary`,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:plus-box`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 添加类 `,-1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(p),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:image-filter-center-focus`,size:16})]),default:(0,i.withCtx)(()=>[r[4]||=(0,i.createTextVNode)(` 居中 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(m),size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:fit-to-screen`,size:16})]),default:(0,i.withCtx)(()=>[r[5]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NDropdown),{options:(0,i.unref)(g),onSelect:r[0]||=e=>(0,i.unref)(_)(e,k)},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{name:`mdi:export`,size:16})]),default:(0,i.withCtx)(()=>[r[6]||=(0,i.createTextVNode)(` 导出 `,-1)]),_:1})]),_:1},8,[`options`])]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,{ref_key:`containerRef`,ref:l,class:`graph-container`,style:(0,i.normalizeStyle)({width:s.width,height:s.height})},null,4),(0,i.createVNode)(ge,{show:b.value,"editing-class":x.value,"onUpdate:editingClass":r[1]||=e=>x.value=e,"onUpdate:show":r[2]||=e=>b.value=e,onSave:D,onDelete:O},null,8,[`show`,`editing-class`])]))}});var ke=r.t(Oe,[[`__scopeId`,`data-v-dcbc422b`]]);const Ae={class:`c-antv-container`},je=(0,i.defineComponent)({name:`C_AntV`,__name:`index`,props:{type:{},data:{},width:{default:`100%`},height:{default:`600px`},readonly:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ready`,`data-change`],setup(e,{expose:t,emit:n}){let r=e,a=n,o=(0,i.ref)(),s={er:O,bpmn:se,uml:ke},c=(0,i.computed)(()=>s[r.type]),l=(0,i.computed)(()=>{let e={width:r.width,height:r.height,readonly:r.readonly,showToolbar:r.showToolbar,theme:r.theme},t=r.data;if(r.type===`bpmn`&&r.data){let e=r.data;e&&typeof e==`object`&&`nodes`in e&&`edges`in e&&(t=[...(e.nodes||[]).map(e=>({...e,shape:e.type||e.shape||`rect`,x:e.x??0,y:e.y??0})),...(e.edges||[]).map(e=>({...e,shape:`edge`,x:0,y:0}))])}return{...e,data:t}}),u=e=>{a(`ready`,e)},d=e=>{let t;t=r.type===`bpmn`&&Array.isArray(e)?{nodes:e.filter(e=>e.shape!==`edge`).map(e=>{let{shape:t,x:n,y:r,...i}=e;return{...i,type:t===`rect`?`task`:t,x:n||0,y:r||0}}),edges:e.filter(e=>e.shape===`edge`).map(e=>{let{shape:t,x:n,y:r,...i}=e;return i}),flows:[]}:e,a(`data-change`,t)};return t({getGraph:()=>o.value?.getGraph?.(),getData:()=>{let e=o.value?.getData?.();return r.type===`bpmn`&&Array.isArray(e)?{nodes:e.filter(e=>e.shape!==`edge`),edges:e.filter(e=>e.shape===`edge`),flows:[]}:e}}),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ae,[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(c.value),(0,i.mergeProps)(l.value,{onReady:u,onDataChange:d,ref_key:`layoutRef`,ref:o}),null,16))]))}});var Me=r.t(je,[[`__scopeId`,`data-v-b03826d0`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Me}});