@robot-admin/naive-ui-components 0.12.1 → 0.13.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 (254) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +60 -1
  3. package/README_EN.md +59 -0
  4. package/dist/C_ActionBar.css +60 -60
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +49 -49
  8. package/dist/C_AntV2.cjs +3 -3
  9. package/dist/C_AntV2.js +3 -3
  10. package/dist/C_AudioPlayer.css +81 -66
  11. package/dist/C_AudioPlayer2.cjs +1 -1
  12. package/dist/C_AudioPlayer2.js +1 -1
  13. package/dist/C_AvatarGroup.css +40 -25
  14. package/dist/C_AvatarGroup2.cjs +1 -1
  15. package/dist/C_AvatarGroup2.js +1 -1
  16. package/dist/C_Barcode.css +6 -6
  17. package/dist/C_Barcode2.cjs +1 -1
  18. package/dist/C_Barcode2.js +1 -1
  19. package/dist/C_Breadcrumb.css +14 -14
  20. package/dist/C_Breadcrumb2.cjs +1 -1
  21. package/dist/C_Breadcrumb2.js +1 -1
  22. package/dist/C_Captcha.css +50 -50
  23. package/dist/C_Captcha2.cjs +1 -1
  24. package/dist/C_Captcha2.js +1 -1
  25. package/dist/C_Cascade.css +2 -2
  26. package/dist/C_Cascade2.cjs +1 -1
  27. package/dist/C_Cascade2.js +1 -1
  28. package/dist/C_Chat.css +96 -78
  29. package/dist/C_Chat2.cjs +1 -1
  30. package/dist/C_Chat2.js +1 -1
  31. package/dist/C_City.css +52 -28
  32. package/dist/C_City2.cjs +1 -1
  33. package/dist/C_City2.js +1 -1
  34. package/dist/C_Code.css +48 -42
  35. package/dist/C_Code2.cjs +1 -1
  36. package/dist/C_Code2.js +1 -1
  37. package/dist/C_CollapsePanel.css +14 -14
  38. package/dist/C_CollapsePanel2.cjs +1 -1
  39. package/dist/C_CollapsePanel2.js +1 -1
  40. package/dist/C_ContextMenu.css +14 -14
  41. package/dist/C_ContextMenu2.cjs +1 -1
  42. package/dist/C_ContextMenu2.js +1 -1
  43. package/dist/C_Cron.css +94 -55
  44. package/dist/C_Cron2.cjs +1 -1
  45. package/dist/C_Cron2.js +1 -1
  46. package/dist/C_Date2.cjs +1 -1
  47. package/dist/C_Date2.js +1 -1
  48. package/dist/C_Draggable.css +48 -48
  49. package/dist/C_Draggable2.cjs +1 -1
  50. package/dist/C_Draggable2.js +1 -1
  51. package/dist/C_Editor.css +13 -14
  52. package/dist/C_Editor2.cjs +1 -1
  53. package/dist/C_Editor2.js +1 -1
  54. package/dist/C_FilePreview.css +18 -18
  55. package/dist/C_FilePreview2.cjs +1 -1
  56. package/dist/C_FilePreview2.js +1 -1
  57. package/dist/C_Form.base.css +36 -36
  58. package/dist/C_Form.css +49 -50
  59. package/dist/C_Form2.cjs +1 -1
  60. package/dist/C_Form2.js +1 -1
  61. package/dist/C_FormModal.css +8 -8
  62. package/dist/C_FormModal2.cjs +1 -1
  63. package/dist/C_FormModal2.js +1 -1
  64. package/dist/C_FormSearch.css +45 -45
  65. package/dist/C_FormSearch2.cjs +1 -1
  66. package/dist/C_FormSearch2.js +1 -1
  67. package/dist/C_FormulaEditor.css +94 -55
  68. package/dist/C_FormulaEditor2.cjs +2 -2
  69. package/dist/C_FormulaEditor2.js +2 -2
  70. package/dist/C_FullCalendar.css +8 -1
  71. package/dist/C_FullCalendar2.cjs +1 -1
  72. package/dist/C_FullCalendar2.js +1 -1
  73. package/dist/C_GlobalSearch2.cjs +1 -1
  74. package/dist/C_GlobalSearch2.js +1 -1
  75. package/dist/C_Guide.css +137 -14
  76. package/dist/C_Guide.d.cts +2 -2
  77. package/dist/C_Guide.d.ts +2 -2
  78. package/dist/C_Guide2.cjs +1 -1
  79. package/dist/C_Guide2.js +1 -1
  80. package/dist/C_Icon.css +14 -14
  81. package/dist/C_Icon2.cjs +1 -1
  82. package/dist/C_Icon2.js +1 -1
  83. package/dist/C_ImageCropper.css +22 -22
  84. package/dist/C_ImageCropper2.cjs +1 -1
  85. package/dist/C_ImageCropper2.js +1 -1
  86. package/dist/C_Language.css +14 -14
  87. package/dist/C_Language2.cjs +1 -1
  88. package/dist/C_Language2.js +1 -1
  89. package/dist/C_Login.css +134 -134
  90. package/dist/C_Login2.cjs +1 -1
  91. package/dist/C_Login2.js +1 -1
  92. package/dist/C_Map.css +3 -3
  93. package/dist/C_Map2.cjs +1 -1
  94. package/dist/C_Map2.js +1 -1
  95. package/dist/C_Markdown.css +35 -35
  96. package/dist/C_Markdown2.cjs +1 -1
  97. package/dist/C_Markdown2.js +1 -1
  98. package/dist/C_Menu2.cjs +1 -1
  99. package/dist/C_Menu2.js +1 -1
  100. package/dist/C_NotificationCenter.css +30 -30
  101. package/dist/C_NotificationCenter2.cjs +1 -1
  102. package/dist/C_NotificationCenter2.js +1 -1
  103. package/dist/C_OrgChart.css +4 -0
  104. package/dist/C_OrgChart2.cjs +1 -1
  105. package/dist/C_OrgChart2.js +1 -1
  106. package/dist/C_Progress2.cjs +1 -1
  107. package/dist/C_Progress2.js +1 -1
  108. package/dist/C_QRCode.css +8 -8
  109. package/dist/C_QRCode2.cjs +1 -1
  110. package/dist/C_QRCode2.js +1 -1
  111. package/dist/C_Signature.css +14 -14
  112. package/dist/C_Signature2.cjs +1 -1
  113. package/dist/C_Signature2.js +1 -1
  114. package/dist/C_Skeleton2.cjs +1 -1
  115. package/dist/C_Skeleton2.js +1 -1
  116. package/dist/C_SplitPane.css +39 -39
  117. package/dist/C_SplitPane2.cjs +1 -1
  118. package/dist/C_SplitPane2.js +1 -1
  119. package/dist/C_Steps.css +48 -38
  120. package/dist/C_Steps2.cjs +1 -1
  121. package/dist/C_Steps2.js +1 -1
  122. package/dist/C_Table.base.css +160 -160
  123. package/dist/C_Table.css +173 -174
  124. package/dist/C_TagsView.css +52 -52
  125. package/dist/C_TagsView2.cjs +1 -1
  126. package/dist/C_TagsView2.js +1 -1
  127. package/dist/C_Theme.css +14 -14
  128. package/dist/C_Theme2.cjs +1 -1
  129. package/dist/C_Theme2.js +1 -1
  130. package/dist/C_Time.css +4 -4
  131. package/dist/C_Time2.cjs +1 -1
  132. package/dist/C_Time2.js +1 -1
  133. package/dist/C_Timeline.css +76 -58
  134. package/dist/C_Timeline2.cjs +1 -1
  135. package/dist/C_Timeline2.js +1 -1
  136. package/dist/C_Transfer.css +51 -51
  137. package/dist/C_Transfer2.cjs +1 -1
  138. package/dist/C_Transfer2.js +1 -1
  139. package/dist/C_Tree.css +35 -32
  140. package/dist/C_Tree2.cjs +1 -1
  141. package/dist/C_Tree2.js +1 -1
  142. package/dist/C_Upload.css +53 -50
  143. package/dist/C_Upload2.cjs +1 -1
  144. package/dist/C_Upload2.js +1 -1
  145. package/dist/C_VideoPlayer.css +17 -13
  146. package/dist/C_VideoPlayer2.cjs +2 -2
  147. package/dist/C_VideoPlayer2.js +2 -2
  148. package/dist/C_VtableGantt.css +19 -19
  149. package/dist/C_VtableGantt2.cjs +1 -1
  150. package/dist/C_VtableGantt2.js +1 -1
  151. package/dist/C_WaterFall.css +19 -15
  152. package/dist/C_WaterFall2.cjs +1 -1
  153. package/dist/C_WaterFall2.js +1 -1
  154. package/dist/C_WorkFlow.css +123 -123
  155. package/dist/C_WorkFlow2.cjs +1 -1
  156. package/dist/C_WorkFlow2.js +1 -1
  157. package/dist/constants.d.cts +3 -3
  158. package/dist/constants.d.ts +3 -3
  159. package/dist/constants2.d.cts +2 -2
  160. package/dist/constants2.d.ts +2 -2
  161. package/dist/constants3.d.cts +12 -8
  162. package/dist/constants3.d.ts +12 -8
  163. package/dist/constants4.d.cts +9 -9
  164. package/dist/constants4.d.ts +9 -9
  165. package/dist/constants5.d.cts +4 -4
  166. package/dist/constants5.d.ts +4 -4
  167. package/dist/data.d.cts +11 -11
  168. package/dist/data.d.ts +11 -11
  169. package/dist/data2.cjs +1 -1
  170. package/dist/data2.js +1 -1
  171. package/dist/index.cjs +1 -1
  172. package/dist/index.d.cts +2 -3
  173. package/dist/index.d.ts +2 -2
  174. package/dist/index.js +1 -1
  175. package/dist/index.vue.d.cts +7 -5
  176. package/dist/index.vue.d.ts +7 -5
  177. package/dist/index10.vue.d.cts +2 -2
  178. package/dist/index10.vue.d.ts +2 -2
  179. package/dist/index11.vue.d.cts +2 -2
  180. package/dist/index11.vue.d.ts +5 -5
  181. package/dist/index12.vue.d.cts +5 -5
  182. package/dist/index12.vue.d.ts +2 -2
  183. package/dist/index13.vue.d.cts +2 -2
  184. package/dist/index13.vue.d.ts +35 -9
  185. package/dist/index14.vue.d.cts +35 -9
  186. package/dist/index14.vue.d.ts +15 -48
  187. package/dist/index15.vue.d.cts +15 -48
  188. package/dist/index17.vue.d.ts +4 -4
  189. package/dist/index18.vue.d.cts +4 -4
  190. package/dist/index18.vue.d.ts +2 -2
  191. package/dist/index19.vue.d.cts +2 -2
  192. package/dist/index19.vue.d.ts +2 -2
  193. package/dist/index2.vue.d.cts +3 -3
  194. package/dist/index2.vue.d.ts +3 -3
  195. package/dist/index20.vue.d.cts +2 -2
  196. package/dist/index20.vue.d.ts +2 -2
  197. package/dist/index21.vue.d.cts +3 -3
  198. package/dist/index21.vue.d.ts +3 -3
  199. package/dist/index22.vue.d.cts +1 -1
  200. package/dist/index22.vue.d.ts +1 -1
  201. package/dist/index24.vue.d.cts +3 -3
  202. package/dist/index24.vue.d.ts +3 -3
  203. package/dist/index26.vue.d.cts +1 -1
  204. package/dist/index26.vue.d.ts +1 -1
  205. package/dist/index27.vue.d.cts +1 -1
  206. package/dist/index27.vue.d.ts +1 -1
  207. package/dist/index3.vue.d.cts +8 -8
  208. package/dist/index3.vue.d.ts +8 -8
  209. package/dist/index4.vue.d.cts +2 -2
  210. package/dist/index6.vue.d.ts +1 -1
  211. package/dist/index7.vue.d.cts +1 -1
  212. package/dist/index8.vue.d.ts +3 -3
  213. package/dist/index9.vue.d.cts +3 -3
  214. package/dist/index9.vue.d.ts +2 -2
  215. package/dist/mapUtils.d.cts +4 -4
  216. package/dist/mapUtils.d.ts +4 -4
  217. package/dist/style.css +1698 -1365
  218. package/dist/useCalendarEvents.d.cts +23 -18
  219. package/dist/useCalendarEvents.d.ts +23 -18
  220. package/dist/useCollapsePanel.d.cts +1 -0
  221. package/dist/useCollapsePanel.d.ts +1 -0
  222. package/dist/useCropperCore.d.cts +32 -17
  223. package/dist/useCropperCore.d.ts +32 -17
  224. package/dist/useDraggableLayout.d.cts +3 -3
  225. package/dist/useDraggableLayout.d.ts +3 -3
  226. package/dist/useDynamicFormState.d.cts +5 -0
  227. package/dist/useDynamicFormState.d.ts +5 -0
  228. package/dist/useEdgeInteraction.d.cts +19 -19
  229. package/dist/useEdgeInteraction.d.ts +19 -19
  230. package/dist/useFullscreen.d.cts +6 -6
  231. package/dist/useFullscreen.d.ts +6 -6
  232. package/dist/useInfiniteScroll.d.cts +2 -2
  233. package/dist/useInfiniteScroll.d.ts +2 -2
  234. package/dist/useQRCode.d.cts +6 -5
  235. package/dist/useQRCode.d.ts +6 -5
  236. package/dist/useSearchState.d.cts +7 -7
  237. package/dist/useSearchState.d.ts +7 -7
  238. package/dist/useSignatureHistory.d.cts +16 -8
  239. package/dist/useSignatureHistory.d.ts +16 -8
  240. package/dist/useSplitResize.d.cts +4 -4
  241. package/dist/useSplitResize.d.ts +4 -4
  242. package/dist/useTableQuery.cjs +3 -3
  243. package/dist/useTableQuery.d.cts +2 -5
  244. package/dist/useTableQuery.d.ts +2 -5
  245. package/dist/useTableQuery.js +3 -3
  246. package/dist/useTimeSelection.d.cts +5 -2
  247. package/dist/useTimeSelection.d.ts +5 -2
  248. package/dist/useTreeOperations.d.cts +6 -6
  249. package/dist/useTreeOperations.d.ts +6 -6
  250. package/dist/useWorkflowValidation.d.cts +4 -2
  251. package/dist/useWorkflowValidation.d.ts +4 -2
  252. package/dist/verification.d.cts +3 -3
  253. package/dist/verification.d.ts +3 -3
  254. package/package.json +4 -3
@@ -1,54 +1,54 @@
1
- /* unplugin-vue-components disabled */.c-icon[data-v-d0d8dba0] {
1
+ /* unplugin-vue-components disabled */.c-icon[data-v-711aedcd] {
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  justify-content: center;
5
5
  user-select: none;
6
6
  transition: all 0.2s ease-in-out;
7
7
  }
8
- .c-icon--clickable[data-v-d0d8dba0] {
8
+ .c-icon--clickable[data-v-711aedcd] {
9
9
  cursor: pointer;
10
10
  }
11
- .c-icon--clickable[data-v-d0d8dba0]:hover {
11
+ .c-icon--clickable[data-v-711aedcd]:hover {
12
12
  opacity: 0.8;
13
13
  transform: scale(1.05);
14
14
  }
15
- .c-icon--clickable[data-v-d0d8dba0]:active {
15
+ .c-icon--clickable[data-v-711aedcd]:active {
16
16
  transform: scale(0.95);
17
17
  }
18
- .c-icon--clickable[data-v-d0d8dba0]:focus-visible {
18
+ .c-icon--clickable[data-v-711aedcd]:focus-visible {
19
19
  outline: 2px solid currentColor;
20
20
  outline-offset: 2px;
21
21
  border-radius: 4px;
22
22
  }
23
- .c-icon--loading[data-v-d0d8dba0] {
23
+ .c-icon--loading[data-v-711aedcd] {
24
24
  opacity: 0.6;
25
25
  cursor: wait;
26
26
  }
27
- .c-icon--error[data-v-d0d8dba0] {
27
+ .c-icon--error[data-v-711aedcd] {
28
28
  opacity: 0.5;
29
29
  }
30
- .c-icon__loading[data-v-d0d8dba0] {
30
+ .c-icon__loading[data-v-711aedcd] {
31
31
  position: relative;
32
32
  }
33
- .c-icon__spinner[data-v-d0d8dba0] {
33
+ .c-icon__spinner[data-v-711aedcd] {
34
34
  width: 100%;
35
35
  height: 100%;
36
36
  border: 2px solid currentColor;
37
37
  border-radius: 50%;
38
38
  border-top-color: transparent;
39
- animation: spin-d0d8dba0 1s linear infinite;
39
+ animation: spin-711aedcd 1s linear infinite;
40
40
  }
41
- .c-icon__error[data-v-d0d8dba0] {
41
+ .c-icon__error[data-v-711aedcd] {
42
42
  font-size: 0.8em;
43
43
  opacity: 0.5;
44
44
  }
45
- .c-icon__rotatable[data-v-d0d8dba0] {
45
+ .c-icon__rotatable[data-v-711aedcd] {
46
46
  transition: transform 0.3s ease-in-out;
47
47
  }
48
- .c-icon__flippable[data-v-d0d8dba0] {
48
+ .c-icon__flippable[data-v-711aedcd] {
49
49
  transition: transform 0.3s ease-in-out;
50
50
  }
51
- @keyframes spin-d0d8dba0 {
51
+ @keyframes spin-711aedcd {
52
52
  0% {
53
53
  transform: rotate(0deg);
54
54
  }
@@ -66,7 +66,7 @@
66
66
  * --tf-accent : 操作按钮主色
67
67
  * --tf-height : 面板高度
68
68
  */
69
- .c-transfer[data-v-f51ca797] {
69
+ .c-transfer[data-v-f428b9fe] {
70
70
  --tf-border: var(--border-color);
71
71
  --tf-header-bg: color-mix(in srgb, var(--primary-color) 6%, var(--card-color));
72
72
  --tf-item-hover: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));
@@ -78,7 +78,7 @@
78
78
  user-select: none;
79
79
  /* ======================== Panel ======================== */
80
80
  }
81
- .c-transfer__panel[data-v-f51ca797] {
81
+ .c-transfer__panel[data-v-f428b9fe] {
82
82
  flex: 1;
83
83
  display: flex;
84
84
  flex-direction: column;
@@ -89,13 +89,13 @@
89
89
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
90
90
  transition: box-shadow 0.2s;
91
91
  }
92
- .c-transfer__panel[data-v-f51ca797]:hover {
92
+ .c-transfer__panel[data-v-f428b9fe]:hover {
93
93
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
94
94
  }
95
- .c-transfer[data-v-f51ca797] {
95
+ .c-transfer[data-v-f428b9fe] {
96
96
  /* ---- Header ---- */
97
97
  }
98
- .c-transfer__header[data-v-f51ca797] {
98
+ .c-transfer__header[data-v-f428b9fe] {
99
99
  display: flex;
100
100
  align-items: center;
101
101
  justify-content: space-between;
@@ -106,33 +106,33 @@
106
106
  font-size: 13px;
107
107
  color: var(--text-color-1);
108
108
  }
109
- .c-transfer__count[data-v-f51ca797] {
109
+ .c-transfer__count[data-v-f428b9fe] {
110
110
  font-weight: 400;
111
111
  font-size: 12px;
112
112
  color: var(--text-color-3);
113
113
  }
114
- .c-transfer[data-v-f51ca797] {
114
+ .c-transfer[data-v-f428b9fe] {
115
115
  /* ---- Filter ---- */
116
116
  }
117
- .c-transfer__filter[data-v-f51ca797] {
117
+ .c-transfer__filter[data-v-f428b9fe] {
118
118
  padding: 8px 10px;
119
119
  border-bottom: 1px solid var(--tf-border);
120
120
  }
121
- .c-transfer__filter .n-input[data-v-f51ca797] {
121
+ .c-transfer__filter .n-input[data-v-f428b9fe] {
122
122
  --n-border: 1px solid var(--tf-border);
123
123
  --n-border-focus: 1px solid var(--tf-accent);
124
124
  }
125
- .c-transfer[data-v-f51ca797] {
125
+ .c-transfer[data-v-f428b9fe] {
126
126
  /* ---- List ---- */
127
127
  }
128
- .c-transfer__list[data-v-f51ca797] {
128
+ .c-transfer__list[data-v-f428b9fe] {
129
129
  flex: 1;
130
130
  overflow-y: auto;
131
131
  padding: 4px 0;
132
132
  min-height: 0;
133
133
  max-height: var(--tf-height);
134
134
  }
135
- .c-transfer__item[data-v-f51ca797] {
135
+ .c-transfer__item[data-v-f428b9fe] {
136
136
  display: flex;
137
137
  align-items: center;
138
138
  gap: 8px;
@@ -142,40 +142,40 @@
142
142
  font-size: 13px;
143
143
  color: var(--text-color-1);
144
144
  }
145
- .c-transfer__item[data-v-f51ca797]:hover {
145
+ .c-transfer__item[data-v-f428b9fe]:hover {
146
146
  background: var(--tf-item-hover);
147
147
  }
148
- .c-transfer__item.is-disabled[data-v-f51ca797] {
148
+ .c-transfer__item.is-disabled[data-v-f428b9fe] {
149
149
  opacity: 0.45;
150
150
  cursor: not-allowed;
151
151
  }
152
- .c-transfer__item.is-disabled[data-v-f51ca797]:hover {
152
+ .c-transfer__item.is-disabled[data-v-f428b9fe]:hover {
153
153
  background: transparent;
154
154
  }
155
- .c-transfer__item.is-checked[data-v-f51ca797] {
155
+ .c-transfer__item.is-checked[data-v-f428b9fe] {
156
156
  color: var(--tf-accent);
157
157
  font-weight: 500;
158
158
  }
159
- .c-transfer__item-icon[data-v-f51ca797] {
159
+ .c-transfer__item-icon[data-v-f428b9fe] {
160
160
  font-size: 16px;
161
161
  flex-shrink: 0;
162
162
  color: var(--text-color-3);
163
163
  }
164
- .c-transfer__item-label[data-v-f51ca797] {
164
+ .c-transfer__item-label[data-v-f428b9fe] {
165
165
  flex: 1;
166
166
  overflow: hidden;
167
167
  text-overflow: ellipsis;
168
168
  white-space: nowrap;
169
169
  }
170
- .c-transfer__item-desc[data-v-f51ca797] {
170
+ .c-transfer__item-desc[data-v-f428b9fe] {
171
171
  font-size: 11px;
172
172
  color: var(--text-color-3);
173
173
  margin-top: 2px;
174
174
  }
175
- .c-transfer[data-v-f51ca797] {
175
+ .c-transfer[data-v-f428b9fe] {
176
176
  /* ---- Empty ---- */
177
177
  }
178
- .c-transfer__empty[data-v-f51ca797] {
178
+ .c-transfer__empty[data-v-f428b9fe] {
179
179
  display: flex;
180
180
  align-items: center;
181
181
  justify-content: center;
@@ -184,16 +184,16 @@
184
184
  font-size: 13px;
185
185
  padding: 32px 0;
186
186
  }
187
- .c-transfer[data-v-f51ca797] {
187
+ .c-transfer[data-v-f428b9fe] {
188
188
  /* ======================== Actions ======================== */
189
189
  }
190
- .c-transfer__actions[data-v-f51ca797] {
190
+ .c-transfer__actions[data-v-f428b9fe] {
191
191
  display: flex;
192
192
  flex-direction: column;
193
193
  justify-content: center;
194
194
  gap: 10px;
195
195
  }
196
- .c-transfer__btn[data-v-f51ca797] {
196
+ .c-transfer__btn[data-v-f428b9fe] {
197
197
  display: inline-flex;
198
198
  align-items: center;
199
199
  justify-content: center;
@@ -207,54 +207,54 @@
207
207
  cursor: pointer;
208
208
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
209
209
  }
210
- .c-transfer__btn[data-v-f51ca797]:hover:not(.is-disabled) {
210
+ .c-transfer__btn[data-v-f428b9fe]:hover:not(.is-disabled) {
211
211
  background: var(--tf-accent);
212
212
  color: #fff;
213
213
  box-shadow: 0 2px 8px color-mix(in srgb, var(--tf-accent) 30%, transparent);
214
214
  }
215
- .c-transfer__btn.is-disabled[data-v-f51ca797] {
215
+ .c-transfer__btn.is-disabled[data-v-f428b9fe] {
216
216
  opacity: 0.35;
217
217
  cursor: not-allowed;
218
218
  }
219
- .c-transfer[data-v-f51ca797] {
219
+ .c-transfer[data-v-f428b9fe] {
220
220
  /* ======================== Sizes ======================== */
221
221
  }
222
- .c-transfer.is-small[data-v-f51ca797] {
222
+ .c-transfer.is-small[data-v-f428b9fe] {
223
223
  --tf-height: 280px;
224
224
  }
225
- .c-transfer.is-small .c-transfer__header[data-v-f51ca797] {
225
+ .c-transfer.is-small .c-transfer__header[data-v-f428b9fe] {
226
226
  padding: 8px 12px;
227
227
  font-size: 12px;
228
228
  }
229
- .c-transfer.is-small .c-transfer__item[data-v-f51ca797] {
229
+ .c-transfer.is-small .c-transfer__item[data-v-f428b9fe] {
230
230
  padding: 5px 12px;
231
231
  font-size: 12px;
232
232
  }
233
- .c-transfer.is-small .c-transfer__btn[data-v-f51ca797] {
233
+ .c-transfer.is-small .c-transfer__btn[data-v-f428b9fe] {
234
234
  width: 30px;
235
235
  height: 30px;
236
236
  font-size: 15px;
237
237
  }
238
- .c-transfer.is-large[data-v-f51ca797] {
238
+ .c-transfer.is-large[data-v-f428b9fe] {
239
239
  --tf-height: 480px;
240
240
  }
241
- .c-transfer.is-large .c-transfer__header[data-v-f51ca797] {
241
+ .c-transfer.is-large .c-transfer__header[data-v-f428b9fe] {
242
242
  padding: 12px 16px;
243
243
  font-size: 14px;
244
244
  }
245
- .c-transfer.is-large .c-transfer__item[data-v-f51ca797] {
245
+ .c-transfer.is-large .c-transfer__item[data-v-f428b9fe] {
246
246
  padding: 9px 16px;
247
247
  font-size: 14px;
248
248
  }
249
- .c-transfer.is-large .c-transfer__btn[data-v-f51ca797] {
249
+ .c-transfer.is-large .c-transfer__btn[data-v-f428b9fe] {
250
250
  width: 42px;
251
251
  height: 42px;
252
252
  font-size: 20px;
253
253
  }
254
- .c-transfer[data-v-f51ca797] {
254
+ .c-transfer[data-v-f428b9fe] {
255
255
  /* ======================== Group divider ======================== */
256
256
  }
257
- .c-transfer__group[data-v-f51ca797] {
257
+ .c-transfer__group[data-v-f428b9fe] {
258
258
  padding: 6px 14px 4px;
259
259
  font-size: 11px;
260
260
  font-weight: 600;
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={titles:[`可选列表`,`已选列表`],filterable:!1,filterPlaceholder:`搜索...`,showSelectAll:!0,sourceEmptyText:`暂无数据`,targetEmptyText:`未选择任何项`,size:`medium`},a={class:`c-transfer__panel`},o={class:`c-transfer__header`},s={key:1,class:`c-transfer__title`},c={class:`c-transfer__count`},l={key:0,class:`c-transfer__filter`},u={key:1,class:`c-transfer__list`},d=[`onClick`],f={class:`c-transfer__item-label`},p={key:2,class:`c-transfer__empty`},m={class:`c-transfer__actions`},h=[`disabled`],g=[`disabled`],_={class:`c-transfer__panel`},v={class:`c-transfer__header`},y={key:1,class:`c-transfer__title`},b={class:`c-transfer__count`},x={key:0,class:`c-transfer__filter`},S={key:1,class:`c-transfer__list`},C=[`onClick`],w={class:`c-transfer__item-label`},T={key:2,class:`c-transfer__empty`},E=(0,n.defineComponent)({__name:`index`,props:{data:{},modelValue:{},titles:{default:()=>i.titles},filterable:{type:Boolean,default:i.filterable},filterPlaceholder:{default:i.filterPlaceholder},filterMethod:{},showSelectAll:{type:Boolean,default:i.showSelectAll},sourceEmptyText:{default:i.sourceEmptyText},targetEmptyText:{default:i.targetEmptyText},size:{default:i.size}},emits:[`update:modelValue`,`change`],setup(t,{emit:E}){let D=t,O=E,k=(0,n.computed)(()=>({...i,...D})),A=(0,n.computed)(()=>{let e=new Map;for(let t of D.data)e.set(t.key,t);return e}),j=(0,n.computed)(()=>new Set(D.modelValue)),M=(0,n.computed)(()=>D.data.filter(e=>!j.value.has(e.key))),N=(0,n.computed)(()=>{let e=[];for(let t of D.modelValue){let n=A.value.get(t);n&&e.push(n)}return e}),P=(0,n.ref)(``),F=(0,n.ref)(``);function I(e,t){return t.label.toLowerCase().includes(e.toLowerCase())}let L=(0,n.computed)(()=>D.filterMethod??I),R=(0,n.computed)(()=>{let e=P.value.trim();return e?M.value.filter(t=>L.value(e,t)):M.value}),z=(0,n.computed)(()=>{let e=F.value.trim();return e?N.value.filter(t=>L.value(e,t)):N.value}),B=(0,n.reactive)(new Set),V=(0,n.reactive)(new Set);function H(e){B.has(e)?B.delete(e):B.add(e)}function U(e){V.has(e)?V.delete(e):V.add(e)}let W=(0,n.computed)(()=>R.value.length>0&&R.value.every(e=>e.disabled||B.has(e.key))),G=(0,n.computed)(()=>!W.value&&R.value.some(e=>B.has(e.key))),K=(0,n.computed)(()=>z.value.length>0&&z.value.every(e=>e.disabled||V.has(e.key))),q=(0,n.computed)(()=>!K.value&&z.value.some(e=>V.has(e.key)));function J(e){for(let t of R.value)t.disabled||(e?B.add(t.key):B.delete(t.key))}function Y(e){for(let t of z.value)t.disabled||(e?V.add(t.key):V.delete(t.key))}function X(){let e=[...B],t=[...D.modelValue,...e];O(`update:modelValue`,t),O(`change`,t,`right`,e),B.clear()}function Z(){let e=[...V],t=new Set(e),n=D.modelValue.filter(e=>!t.has(e));O(`update:modelValue`,n),O(`change`,n,`left`,e),V.clear()}return(t,i)=>{let E=r.NCheckbox,D=r.NInput;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)([`c-transfer`,[`is-${k.value.size}`]])},[(0,n.createCommentVNode)(` ================ Source Panel ================ `),(0,n.createElementVNode)(`div`,a,[(0,n.createElementVNode)(`div`,o,[k.value.showSelectAll?((0,n.openBlock)(),(0,n.createBlock)(E,{key:0,checked:W.value,indeterminate:G.value,"onUpdate:checked":J},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(k.value.titles?.[0]),1)]),_:1},8,[`checked`,`indeterminate`])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,s,(0,n.toDisplayString)(k.value.titles?.[0]),1)),(0,n.createElementVNode)(`span`,c,(0,n.toDisplayString)(B.size)+` / `+(0,n.toDisplayString)(M.value.length),1)]),k.value.filterable?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,l,[(0,n.createVNode)(D,{value:P.value,"onUpdate:value":i[0]||=e=>P.value=e,clearable:``,size:`small`,placeholder:k.value.filterPlaceholder},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):(0,n.createCommentVNode)(`v-if`,!0),R.value.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,u,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(R.value,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:t.key,class:(0,n.normalizeClass)([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":B.has(t.key)}]),onClick:e=>!t.disabled&&H(t.key)},[(0,n.createVNode)(E,{checked:B.has(t.key),disabled:t.disabled,size:`small`,"onUpdate:checked":e=>H(t.key),onClick:i[1]||=(0,n.withModifiers)(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),t.icon?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`span`,f,(0,n.toDisplayString)(t.label),1)],10,d))),128))])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,p,(0,n.toDisplayString)(k.value.sourceEmptyText),1))]),(0,n.createCommentVNode)(` ================ Actions ================ `),(0,n.createElementVNode)(`div`,m,[(0,n.createElementVNode)(`button`,{class:(0,n.normalizeClass)([`c-transfer__btn`,{"is-disabled":B.size===0}]),disabled:B.size===0,onClick:X},[(0,n.createVNode)(e.t,{name:`mdi:chevron-right`})],10,h),(0,n.createElementVNode)(`button`,{class:(0,n.normalizeClass)([`c-transfer__btn`,{"is-disabled":V.size===0}]),disabled:V.size===0,onClick:Z},[(0,n.createVNode)(e.t,{name:`mdi:chevron-left`})],10,g)]),(0,n.createCommentVNode)(` ================ Target Panel ================ `),(0,n.createElementVNode)(`div`,_,[(0,n.createElementVNode)(`div`,v,[k.value.showSelectAll?((0,n.openBlock)(),(0,n.createBlock)(E,{key:0,checked:K.value,indeterminate:q.value,"onUpdate:checked":Y},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(k.value.titles?.[1]),1)]),_:1},8,[`checked`,`indeterminate`])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,y,(0,n.toDisplayString)(k.value.titles?.[1]),1)),(0,n.createElementVNode)(`span`,b,(0,n.toDisplayString)(V.size)+` / `+(0,n.toDisplayString)(N.value.length),1)]),k.value.filterable?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[(0,n.createVNode)(D,{value:F.value,"onUpdate:value":i[2]||=e=>F.value=e,clearable:``,size:`small`,placeholder:k.value.filterPlaceholder},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):(0,n.createCommentVNode)(`v-if`,!0),z.value.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,S,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(z.value,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:t.key,class:(0,n.normalizeClass)([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":V.has(t.key)}]),onClick:e=>!t.disabled&&U(t.key)},[(0,n.createVNode)(E,{checked:V.has(t.key),disabled:t.disabled,size:`small`,"onUpdate:checked":e=>U(t.key),onClick:i[3]||=(0,n.withModifiers)(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),t.icon?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`span`,w,(0,n.toDisplayString)(t.label),1)],10,C))),128))])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,T,(0,n.toDisplayString)(k.value.targetEmptyText),1))])],2)}}});var D=t.t(E,[[`__scopeId`,`data-v-f51ca797`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return D}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);function i(e,t){return e.filter(e=>!e.disabled&&t.has(e.key)).map(e=>e.key)}function a(e,t){let n=e.filter(e=>!e.disabled);return n.length>0&&n.every(e=>t.has(e.key))}const o={titles:[`可选列表`,`已选列表`],filterable:!1,filterPlaceholder:`搜索...`,showSelectAll:!0,sourceEmptyText:`暂无数据`,targetEmptyText:`未选择任何项`,size:`medium`},s={class:`c-transfer__panel`},c={class:`c-transfer__header`},l={key:1,class:`c-transfer__title`},u={class:`c-transfer__count`},d={key:0,class:`c-transfer__filter`},f={key:1,class:`c-transfer__list`},p=[`onClick`],m={class:`c-transfer__item-label`},h={key:2,class:`c-transfer__empty`},g={class:`c-transfer__actions`},_=[`disabled`],v=[`disabled`],y={class:`c-transfer__panel`},b={class:`c-transfer__header`},x={key:1,class:`c-transfer__title`},S={class:`c-transfer__count`},C={key:0,class:`c-transfer__filter`},w={key:1,class:`c-transfer__list`},T=[`onClick`],E={class:`c-transfer__item-label`},D={key:2,class:`c-transfer__empty`},O=(0,n.defineComponent)({__name:`index`,props:{data:{},modelValue:{},titles:{default:()=>o.titles},filterable:{type:Boolean,default:o.filterable},filterPlaceholder:{default:o.filterPlaceholder},filterMethod:{},showSelectAll:{type:Boolean,default:o.showSelectAll},sourceEmptyText:{default:o.sourceEmptyText},targetEmptyText:{default:o.targetEmptyText},size:{default:o.size}},emits:[`update:modelValue`,`change`],setup(t,{emit:O}){let k=t,A=O,j=(0,n.computed)(()=>({...o,...k})),M=(0,n.computed)(()=>{let e=new Map;for(let t of k.data)e.set(t.key,t);return e}),N=(0,n.computed)(()=>new Set(k.modelValue)),P=(0,n.computed)(()=>[...M.value.values()].filter(e=>!N.value.has(e.key))),F=(0,n.computed)(()=>{let e=[];for(let t of new Set(k.modelValue)){let n=M.value.get(t);n&&e.push(n)}return e}),I=(0,n.ref)(``),L=(0,n.ref)(``);function R(e,t){return t.label.toLowerCase().includes(e.toLowerCase())}let z=(0,n.computed)(()=>k.filterMethod??R),B=(0,n.computed)(()=>{let e=I.value.trim();return e?P.value.filter(t=>z.value(e,t)):P.value}),V=(0,n.computed)(()=>{let e=L.value.trim();return e?F.value.filter(t=>z.value(e,t)):F.value}),H=(0,n.reactive)(new Set),U=(0,n.reactive)(new Set),W=(0,n.computed)(()=>i(P.value,H)),G=(0,n.computed)(()=>i(F.value,U));(0,n.watch)([P,F],()=>{let e=new Set(P.value.filter(e=>!e.disabled).map(e=>e.key)),t=new Set(F.value.filter(e=>!e.disabled).map(e=>e.key));for(let t of H)e.has(t)||H.delete(t);for(let e of U)t.has(e)||U.delete(e)});function K(e){H.has(e)?H.delete(e):H.add(e)}function q(e){U.has(e)?U.delete(e):U.add(e)}let J=(0,n.computed)(()=>a(B.value,H)),Y=(0,n.computed)(()=>!J.value&&B.value.some(e=>H.has(e.key))),X=(0,n.computed)(()=>a(V.value,U)),Z=(0,n.computed)(()=>!X.value&&V.value.some(e=>U.has(e.key)));function Q(e){for(let t of B.value)t.disabled||(e?H.add(t.key):H.delete(t.key))}function $(e){for(let t of V.value)t.disabled||(e?U.add(t.key):U.delete(t.key))}function ee(){let e=W.value;if(e.length===0)return;let t=[...new Set([...k.modelValue,...e])];A(`update:modelValue`,t),A(`change`,t,`right`,e),H.clear()}function te(){let e=G.value;if(e.length===0)return;let t=new Set(e),n=k.modelValue.filter(e=>!t.has(e));A(`update:modelValue`,n),A(`change`,n,`left`,e),U.clear()}return(t,i)=>{let a=r.NCheckbox,o=r.NInput;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)([`c-transfer`,[`is-${j.value.size}`]])},[(0,n.createCommentVNode)(` ================ Source Panel ================ `),(0,n.createElementVNode)(`div`,s,[(0,n.createElementVNode)(`div`,c,[j.value.showSelectAll?((0,n.openBlock)(),(0,n.createBlock)(a,{key:0,checked:J.value,indeterminate:Y.value,"onUpdate:checked":Q},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(j.value.titles?.[0]),1)]),_:1},8,[`checked`,`indeterminate`])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,l,(0,n.toDisplayString)(j.value.titles?.[0]),1)),(0,n.createElementVNode)(`span`,u,(0,n.toDisplayString)(H.size)+` / `+(0,n.toDisplayString)(P.value.length),1)]),j.value.filterable?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,d,[(0,n.createVNode)(o,{value:I.value,"onUpdate:value":i[0]||=e=>I.value=e,clearable:``,size:`small`,placeholder:j.value.filterPlaceholder,"aria-label":`搜索可选列表`},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):(0,n.createCommentVNode)(`v-if`,!0),B.value.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,f,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(B.value,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:t.key,class:(0,n.normalizeClass)([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":H.has(t.key)}]),onClick:e=>!t.disabled&&K(t.key)},[(0,n.createVNode)(a,{checked:H.has(t.key),disabled:t.disabled,"aria-label":t.label,size:`small`,"onUpdate:checked":e=>K(t.key),onClick:i[1]||=(0,n.withModifiers)(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`aria-label`,`onUpdate:checked`]),t.icon?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`span`,m,(0,n.toDisplayString)(t.label),1)],10,p))),128))])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,h,(0,n.toDisplayString)(j.value.sourceEmptyText),1))]),(0,n.createCommentVNode)(` ================ Actions ================ `),(0,n.createElementVNode)(`div`,g,[(0,n.createElementVNode)(`button`,{type:`button`,class:(0,n.normalizeClass)([`c-transfer__btn`,{"is-disabled":W.value.length===0}]),"aria-label":`移至已选列表`,disabled:W.value.length===0,onClick:ee},[(0,n.createVNode)(e.t,{name:`mdi:chevron-right`})],10,_),(0,n.createElementVNode)(`button`,{type:`button`,class:(0,n.normalizeClass)([`c-transfer__btn`,{"is-disabled":G.value.length===0}]),"aria-label":`移回可选列表`,disabled:G.value.length===0,onClick:te},[(0,n.createVNode)(e.t,{name:`mdi:chevron-left`})],10,v)]),(0,n.createCommentVNode)(` ================ Target Panel ================ `),(0,n.createElementVNode)(`div`,y,[(0,n.createElementVNode)(`div`,b,[j.value.showSelectAll?((0,n.openBlock)(),(0,n.createBlock)(a,{key:0,checked:X.value,indeterminate:Z.value,"onUpdate:checked":$},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(j.value.titles?.[1]),1)]),_:1},8,[`checked`,`indeterminate`])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,x,(0,n.toDisplayString)(j.value.titles?.[1]),1)),(0,n.createElementVNode)(`span`,S,(0,n.toDisplayString)(U.size)+` / `+(0,n.toDisplayString)(F.value.length),1)]),j.value.filterable?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,C,[(0,n.createVNode)(o,{value:L.value,"onUpdate:value":i[2]||=e=>L.value=e,clearable:``,size:`small`,placeholder:j.value.filterPlaceholder,"aria-label":`搜索已选列表`},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):(0,n.createCommentVNode)(`v-if`,!0),V.value.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,w,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(V.value,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:t.key,class:(0,n.normalizeClass)([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":U.has(t.key)}]),onClick:e=>!t.disabled&&q(t.key)},[(0,n.createVNode)(a,{checked:U.has(t.key),disabled:t.disabled,"aria-label":t.label,size:`small`,"onUpdate:checked":e=>q(t.key),onClick:i[3]||=(0,n.withModifiers)(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`aria-label`,`onUpdate:checked`]),t.icon?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`span`,E,(0,n.toDisplayString)(t.label),1)],10,T))),128))])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,D,(0,n.toDisplayString)(j.value.targetEmptyText),1))])],2)}}});var k=t.t(O,[[`__scopeId`,`data-v-f428b9fe`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return k}});
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,openBlock as f,reactive as p,ref as m,renderList as h,resolveComponent as g,toDisplayString as _,withCtx as v,withModifiers as y}from"vue";import{NCheckbox as b,NInput as x}from"naive-ui";const S={titles:[`可选列表`,`已选列表`],filterable:!1,filterPlaceholder:`搜索...`,showSelectAll:!0,sourceEmptyText:`暂无数据`,targetEmptyText:`未选择任何项`,size:`medium`},ee={class:`c-transfer__panel`},te={class:`c-transfer__header`},ne={key:1,class:`c-transfer__title`},re={class:`c-transfer__count`},ie={key:0,class:`c-transfer__filter`},ae={key:1,class:`c-transfer__list`},C=[`onClick`],w={class:`c-transfer__item-label`},T={key:2,class:`c-transfer__empty`},E={class:`c-transfer__actions`},D=[`disabled`],O=[`disabled`],oe={class:`c-transfer__panel`},se={class:`c-transfer__header`},ce={key:1,class:`c-transfer__title`},k={class:`c-transfer__count`},A={key:0,class:`c-transfer__filter`},j={key:1,class:`c-transfer__list`},M=[`onClick`],N={class:`c-transfer__item-label`},P={key:2,class:`c-transfer__empty`};var F=t(u({__name:`index`,props:{data:{},modelValue:{},titles:{default:()=>S.titles},filterable:{type:Boolean,default:S.filterable},filterPlaceholder:{default:S.filterPlaceholder},filterMethod:{},showSelectAll:{type:Boolean,default:S.showSelectAll},sourceEmptyText:{default:S.sourceEmptyText},targetEmptyText:{default:S.targetEmptyText},size:{default:S.size}},emits:[`update:modelValue`,`change`],setup(t,{emit:u}){let g=t,F=u,I=r(()=>({...S,...g})),L=r(()=>{let e=new Map;for(let t of g.data)e.set(t.key,t);return e}),R=r(()=>new Set(g.modelValue)),z=r(()=>g.data.filter(e=>!R.value.has(e.key))),B=r(()=>{let e=[];for(let t of g.modelValue){let n=L.value.get(t);n&&e.push(n)}return e}),V=m(``),H=m(``);function U(e,t){return t.label.toLowerCase().includes(e.toLowerCase())}let W=r(()=>g.filterMethod??U),G=r(()=>{let e=V.value.trim();return e?z.value.filter(t=>W.value(e,t)):z.value}),K=r(()=>{let e=H.value.trim();return e?B.value.filter(t=>W.value(e,t)):B.value}),q=p(new Set),J=p(new Set);function Y(e){q.has(e)?q.delete(e):q.add(e)}function X(e){J.has(e)?J.delete(e):J.add(e)}let Z=r(()=>G.value.length>0&&G.value.every(e=>e.disabled||q.has(e.key))),le=r(()=>!Z.value&&G.value.some(e=>q.has(e.key))),Q=r(()=>K.value.length>0&&K.value.every(e=>e.disabled||J.has(e.key))),$=r(()=>!Q.value&&K.value.some(e=>J.has(e.key)));function ue(e){for(let t of G.value)t.disabled||(e?q.add(t.key):q.delete(t.key))}function de(e){for(let t of K.value)t.disabled||(e?J.add(t.key):J.delete(t.key))}function fe(){let e=[...q],t=[...g.modelValue,...e];F(`update:modelValue`,t),F(`change`,t,`right`,e),q.clear()}function pe(){let e=[...J],t=new Set(e),n=g.modelValue.filter(e=>!t.has(e));F(`update:modelValue`,n),F(`change`,n,`left`,e),J.clear()}return(t,r)=>{let u=b,p=x;return f(),o(`div`,{class:d([`c-transfer`,[`is-${I.value.size}`]])},[a(` ================ Source Panel ================ `),s(`div`,ee,[s(`div`,te,[I.value.showSelectAll?(f(),i(u,{key:0,checked:Z.value,indeterminate:le.value,"onUpdate:checked":ue},{default:v(()=>[c(_(I.value.titles?.[0]),1)]),_:1},8,[`checked`,`indeterminate`])):(f(),o(`span`,ne,_(I.value.titles?.[0]),1)),s(`span`,re,_(q.size)+` / `+_(z.value.length),1)]),I.value.filterable?(f(),o(`div`,ie,[l(p,{value:V.value,"onUpdate:value":r[0]||=e=>V.value=e,clearable:``,size:`small`,placeholder:I.value.filterPlaceholder},{prefix:v(()=>[l(e,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):a(`v-if`,!0),G.value.length?(f(),o(`div`,ae,[(f(!0),o(n,null,h(G.value,t=>(f(),o(`div`,{key:t.key,class:d([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":q.has(t.key)}]),onClick:e=>!t.disabled&&Y(t.key)},[l(u,{checked:q.has(t.key),disabled:t.disabled,size:`small`,"onUpdate:checked":e=>Y(t.key),onClick:r[1]||=y(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),t.icon?(f(),i(e,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):a(`v-if`,!0),s(`span`,w,_(t.label),1)],10,C))),128))])):(f(),o(`div`,T,_(I.value.sourceEmptyText),1))]),a(` ================ Actions ================ `),s(`div`,E,[s(`button`,{class:d([`c-transfer__btn`,{"is-disabled":q.size===0}]),disabled:q.size===0,onClick:fe},[l(e,{name:`mdi:chevron-right`})],10,D),s(`button`,{class:d([`c-transfer__btn`,{"is-disabled":J.size===0}]),disabled:J.size===0,onClick:pe},[l(e,{name:`mdi:chevron-left`})],10,O)]),a(` ================ Target Panel ================ `),s(`div`,oe,[s(`div`,se,[I.value.showSelectAll?(f(),i(u,{key:0,checked:Q.value,indeterminate:$.value,"onUpdate:checked":de},{default:v(()=>[c(_(I.value.titles?.[1]),1)]),_:1},8,[`checked`,`indeterminate`])):(f(),o(`span`,ce,_(I.value.titles?.[1]),1)),s(`span`,k,_(J.size)+` / `+_(B.value.length),1)]),I.value.filterable?(f(),o(`div`,A,[l(p,{value:H.value,"onUpdate:value":r[2]||=e=>H.value=e,clearable:``,size:`small`,placeholder:I.value.filterPlaceholder},{prefix:v(()=>[l(e,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):a(`v-if`,!0),K.value.length?(f(),o(`div`,j,[(f(!0),o(n,null,h(K.value,t=>(f(),o(`div`,{key:t.key,class:d([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":J.has(t.key)}]),onClick:e=>!t.disabled&&X(t.key)},[l(u,{checked:J.has(t.key),disabled:t.disabled,size:`small`,"onUpdate:checked":e=>X(t.key),onClick:r[3]||=y(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),t.icon?(f(),i(e,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):a(`v-if`,!0),s(`span`,N,_(t.label),1)],10,M))),128))])):(f(),o(`div`,P,_(I.value.targetEmptyText),1))])],2)}}}),[[`__scopeId`,`data-v-f51ca797`]]);export{S as n,F as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,openBlock as f,reactive as p,ref as m,renderList as h,resolveComponent as g,toDisplayString as _,watch as v,withCtx as y,withModifiers as b}from"vue";import{NCheckbox as x,NInput as ee}from"naive-ui";function S(e,t){return e.filter(e=>!e.disabled&&t.has(e.key)).map(e=>e.key)}function C(e,t){let n=e.filter(e=>!e.disabled);return n.length>0&&n.every(e=>t.has(e.key))}const w={titles:[`可选列表`,`已选列表`],filterable:!1,filterPlaceholder:`搜索...`,showSelectAll:!0,sourceEmptyText:`暂无数据`,targetEmptyText:`未选择任何项`,size:`medium`},te={class:`c-transfer__panel`},ne={class:`c-transfer__header`},re={key:1,class:`c-transfer__title`},ie={class:`c-transfer__count`},T={key:0,class:`c-transfer__filter`},E={key:1,class:`c-transfer__list`},D=[`onClick`],O={class:`c-transfer__item-label`},k={key:2,class:`c-transfer__empty`},A={class:`c-transfer__actions`},ae=[`disabled`],oe=[`disabled`],se={class:`c-transfer__panel`},ce={class:`c-transfer__header`},le={key:1,class:`c-transfer__title`},ue={class:`c-transfer__count`},de={key:0,class:`c-transfer__filter`},j={key:1,class:`c-transfer__list`},M=[`onClick`],N={class:`c-transfer__item-label`},P={key:2,class:`c-transfer__empty`};var F=t(u({__name:`index`,props:{data:{},modelValue:{},titles:{default:()=>w.titles},filterable:{type:Boolean,default:w.filterable},filterPlaceholder:{default:w.filterPlaceholder},filterMethod:{},showSelectAll:{type:Boolean,default:w.showSelectAll},sourceEmptyText:{default:w.sourceEmptyText},targetEmptyText:{default:w.targetEmptyText},size:{default:w.size}},emits:[`update:modelValue`,`change`],setup(t,{emit:u}){let g=t,F=u,I=r(()=>({...w,...g})),L=r(()=>{let e=new Map;for(let t of g.data)e.set(t.key,t);return e}),R=r(()=>new Set(g.modelValue)),z=r(()=>[...L.value.values()].filter(e=>!R.value.has(e.key))),B=r(()=>{let e=[];for(let t of new Set(g.modelValue)){let n=L.value.get(t);n&&e.push(n)}return e}),V=m(``),H=m(``);function fe(e,t){return t.label.toLowerCase().includes(e.toLowerCase())}let U=r(()=>g.filterMethod??fe),W=r(()=>{let e=V.value.trim();return e?z.value.filter(t=>U.value(e,t)):z.value}),G=r(()=>{let e=H.value.trim();return e?B.value.filter(t=>U.value(e,t)):B.value}),K=p(new Set),q=p(new Set),J=r(()=>S(z.value,K)),Y=r(()=>S(B.value,q));v([z,B],()=>{let e=new Set(z.value.filter(e=>!e.disabled).map(e=>e.key)),t=new Set(B.value.filter(e=>!e.disabled).map(e=>e.key));for(let t of K)e.has(t)||K.delete(t);for(let e of q)t.has(e)||q.delete(e)});function X(e){K.has(e)?K.delete(e):K.add(e)}function Z(e){q.has(e)?q.delete(e):q.add(e)}let Q=r(()=>C(W.value,K)),pe=r(()=>!Q.value&&W.value.some(e=>K.has(e.key))),$=r(()=>C(G.value,q)),me=r(()=>!$.value&&G.value.some(e=>q.has(e.key)));function he(e){for(let t of W.value)t.disabled||(e?K.add(t.key):K.delete(t.key))}function ge(e){for(let t of G.value)t.disabled||(e?q.add(t.key):q.delete(t.key))}function _e(){let e=J.value;if(e.length===0)return;let t=[...new Set([...g.modelValue,...e])];F(`update:modelValue`,t),F(`change`,t,`right`,e),K.clear()}function ve(){let e=Y.value;if(e.length===0)return;let t=new Set(e),n=g.modelValue.filter(e=>!t.has(e));F(`update:modelValue`,n),F(`change`,n,`left`,e),q.clear()}return(t,r)=>{let u=x,p=ee;return f(),o(`div`,{class:d([`c-transfer`,[`is-${I.value.size}`]])},[a(` ================ Source Panel ================ `),s(`div`,te,[s(`div`,ne,[I.value.showSelectAll?(f(),i(u,{key:0,checked:Q.value,indeterminate:pe.value,"onUpdate:checked":he},{default:y(()=>[c(_(I.value.titles?.[0]),1)]),_:1},8,[`checked`,`indeterminate`])):(f(),o(`span`,re,_(I.value.titles?.[0]),1)),s(`span`,ie,_(K.size)+` / `+_(z.value.length),1)]),I.value.filterable?(f(),o(`div`,T,[l(p,{value:V.value,"onUpdate:value":r[0]||=e=>V.value=e,clearable:``,size:`small`,placeholder:I.value.filterPlaceholder,"aria-label":`搜索可选列表`},{prefix:y(()=>[l(e,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):a(`v-if`,!0),W.value.length?(f(),o(`div`,E,[(f(!0),o(n,null,h(W.value,t=>(f(),o(`div`,{key:t.key,class:d([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":K.has(t.key)}]),onClick:e=>!t.disabled&&X(t.key)},[l(u,{checked:K.has(t.key),disabled:t.disabled,"aria-label":t.label,size:`small`,"onUpdate:checked":e=>X(t.key),onClick:r[1]||=b(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`aria-label`,`onUpdate:checked`]),t.icon?(f(),i(e,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):a(`v-if`,!0),s(`span`,O,_(t.label),1)],10,D))),128))])):(f(),o(`div`,k,_(I.value.sourceEmptyText),1))]),a(` ================ Actions ================ `),s(`div`,A,[s(`button`,{type:`button`,class:d([`c-transfer__btn`,{"is-disabled":J.value.length===0}]),"aria-label":`移至已选列表`,disabled:J.value.length===0,onClick:_e},[l(e,{name:`mdi:chevron-right`})],10,ae),s(`button`,{type:`button`,class:d([`c-transfer__btn`,{"is-disabled":Y.value.length===0}]),"aria-label":`移回可选列表`,disabled:Y.value.length===0,onClick:ve},[l(e,{name:`mdi:chevron-left`})],10,oe)]),a(` ================ Target Panel ================ `),s(`div`,se,[s(`div`,ce,[I.value.showSelectAll?(f(),i(u,{key:0,checked:$.value,indeterminate:me.value,"onUpdate:checked":ge},{default:y(()=>[c(_(I.value.titles?.[1]),1)]),_:1},8,[`checked`,`indeterminate`])):(f(),o(`span`,le,_(I.value.titles?.[1]),1)),s(`span`,ue,_(q.size)+` / `+_(B.value.length),1)]),I.value.filterable?(f(),o(`div`,de,[l(p,{value:H.value,"onUpdate:value":r[2]||=e=>H.value=e,clearable:``,size:`small`,placeholder:I.value.filterPlaceholder,"aria-label":`搜索已选列表`},{prefix:y(()=>[l(e,{name:`mdi:magnify`})]),_:1},8,[`value`,`placeholder`])])):a(`v-if`,!0),G.value.length?(f(),o(`div`,j,[(f(!0),o(n,null,h(G.value,t=>(f(),o(`div`,{key:t.key,class:d([`c-transfer__item`,{"is-disabled":t.disabled,"is-checked":q.has(t.key)}]),onClick:e=>!t.disabled&&Z(t.key)},[l(u,{checked:q.has(t.key),disabled:t.disabled,"aria-label":t.label,size:`small`,"onUpdate:checked":e=>Z(t.key),onClick:r[3]||=b(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`aria-label`,`onUpdate:checked`]),t.icon?(f(),i(e,{key:0,name:t.icon,class:`c-transfer__item-icon`},null,8,[`name`])):a(`v-if`,!0),s(`span`,N,_(t.label),1)],10,M))),128))])):(f(),o(`div`,P,_(I.value.targetEmptyText),1))])],2)}}}),[[`__scopeId`,`data-v-f428b9fe`]]);export{w as n,F as t};
package/dist/C_Tree.css CHANGED
@@ -1,9 +1,9 @@
1
- /* unplugin-vue-components disabled */.c-tree[data-v-30316c81] {
1
+ /* unplugin-vue-components disabled */.c-tree[data-v-21a8bfe8] {
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  height: 100%;
5
5
  }
6
- .c-tree .c-tree-toolbar[data-v-30316c81] {
6
+ .c-tree .c-tree-toolbar[data-v-21a8bfe8] {
7
7
  display: flex;
8
8
  justify-content: space-between;
9
9
  align-items: center;
@@ -13,14 +13,14 @@
13
13
  margin-bottom: 12px;
14
14
  flex-shrink: 0;
15
15
  }
16
- .c-tree .c-tree-toolbar .toolbar-left .search-input[data-v-30316c81] {
16
+ .c-tree .c-tree-toolbar .toolbar-left .search-input[data-v-21a8bfe8] {
17
17
  width: 260px;
18
18
  }
19
- .c-tree .c-tree-toolbar .toolbar-right[data-v-30316c81] {
19
+ .c-tree .c-tree-toolbar .toolbar-right[data-v-21a8bfe8] {
20
20
  display: flex;
21
21
  gap: 8px;
22
22
  }
23
- .c-tree .c-tree-container[data-v-30316c81] {
23
+ .c-tree .c-tree-container[data-v-21a8bfe8] {
24
24
  flex: 1;
25
25
  min-height: 0;
26
26
  border: 1px solid #e0e0e6;
@@ -30,56 +30,59 @@
30
30
  scrollbar-width: thin;
31
31
  scrollbar-color: rgba(0, 0, 0, 0.12) transparent;
32
32
  }
33
- .c-tree .c-tree-container[data-v-30316c81]::-webkit-scrollbar {
33
+ .c-tree .c-tree-container[data-v-21a8bfe8]::-webkit-scrollbar {
34
34
  width: 6px;
35
35
  }
36
- .c-tree .c-tree-container[data-v-30316c81]::-webkit-scrollbar-thumb {
36
+ .c-tree .c-tree-container[data-v-21a8bfe8]::-webkit-scrollbar-thumb {
37
37
  background: rgba(0, 0, 0, 0.12);
38
38
  border-radius: 3px;
39
39
  transition: background 0.2s;
40
40
  }
41
- .c-tree .c-tree-container[data-v-30316c81]::-webkit-scrollbar-thumb:hover {
41
+ .c-tree .c-tree-container[data-v-21a8bfe8]::-webkit-scrollbar-thumb:hover {
42
42
  background: rgba(0, 0, 0, 0.25);
43
43
  }
44
- .c-tree .c-tree-container[data-v-30316c81]::-webkit-scrollbar-track {
44
+ .c-tree .c-tree-container[data-v-21a8bfe8]::-webkit-scrollbar-track {
45
45
  background: transparent;
46
46
  }
47
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node {
47
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node {
48
48
  margin-bottom: 4px;
49
49
  }
50
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-wrapper {
50
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-wrapper {
51
51
  padding: 2px 0;
52
52
  }
53
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-content {
53
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-content {
54
54
  padding: 12px 8px;
55
55
  border-radius: 6px;
56
56
  transition: all 0.2s ease;
57
57
  align-items: center;
58
58
  min-height: 44px;
59
59
  }
60
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-content:hover {
60
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-content:hover {
61
61
  background-color: #f0f9ff;
62
62
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
63
63
  }
64
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-content:hover .tree-actions {
64
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-content:hover .tree-actions {
65
65
  opacity: 1 !important;
66
66
  }
67
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__prefix {
67
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-content:focus-within .tree-actions {
68
+ opacity: 1 !important;
69
+ }
70
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__prefix {
68
71
  margin-right: 0;
69
72
  display: flex;
70
73
  align-items: center;
71
74
  }
72
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__text {
75
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__text {
73
76
  flex: 1;
74
77
  display: flex;
75
78
  align-items: center;
76
79
  }
77
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__suffix {
80
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__suffix {
78
81
  margin-left: auto;
79
82
  display: flex;
80
83
  align-items: center;
81
84
  }
82
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-switcher {
85
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-switcher {
83
86
  width: 24px;
84
87
  height: 24px;
85
88
  display: flex;
@@ -87,54 +90,54 @@
87
90
  justify-content: center;
88
91
  margin-right: 8px;
89
92
  }
90
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node .n-tree-node-switcher .n-tree-node-switcher__icon {
93
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node .n-tree-node-switcher .n-tree-node-switcher__icon {
91
94
  font-size: 14px;
92
95
  transition: transform 0.2s ease;
93
96
  }
94
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node.n-tree-node--selected .n-tree-node-content {
97
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node.n-tree-node--selected .n-tree-node-content {
95
98
  background-color: #e6f3ff;
96
99
  border: 1px solid #1890ff;
97
100
  }
98
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node.n-tree-node--disabled .n-tree-node-content {
101
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node.n-tree-node--disabled .n-tree-node-content {
99
102
  opacity: 0.6;
100
103
  cursor: not-allowed;
101
104
  }
102
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree .n-tree-node-indent {
105
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree .n-tree-node-indent {
103
106
  width: 24px;
104
107
  }
105
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .n-tree-node:hover .tree-actions {
108
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .n-tree-node:hover .tree-actions {
106
109
  opacity: 1 !important;
107
110
  }
108
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .tree-actions {
111
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .tree-actions {
109
112
  opacity: 0;
110
113
  transition: opacity 0.2s ease;
111
114
  }
112
- .c-tree .c-tree-container .tree-instance[data-v-30316c81] .tree-actions:hover {
115
+ .c-tree .c-tree-container .tree-instance[data-v-21a8bfe8] .tree-actions:hover {
113
116
  opacity: 1 !important;
114
117
  }
115
- .c-tree[data-v-30316c81] .n-tree-node-content:hover .tree-actions,
116
- .c-tree[data-v-30316c81] .n-tree-node:hover .tree-actions {
118
+ .c-tree[data-v-21a8bfe8] .n-tree-node-content:hover .tree-actions,
119
+ .c-tree[data-v-21a8bfe8] .n-tree-node:hover .tree-actions {
117
120
  opacity: 1 !important;
118
121
  }
119
- .c-tree[data-v-30316c81] .tree-actions {
122
+ .c-tree[data-v-21a8bfe8] .tree-actions {
120
123
  opacity: 0;
121
124
  transition: opacity 0.2s ease-in-out;
122
125
  }
123
126
 
124
127
  /* responsive */
125
128
  @media (max-width: 768px) {
126
- .c-tree .c-tree-toolbar[data-v-30316c81] {
129
+ .c-tree .c-tree-toolbar[data-v-21a8bfe8] {
127
130
  flex-direction: column;
128
131
  gap: 12px;
129
132
  }
130
- .c-tree .c-tree-toolbar .toolbar-left .search-input[data-v-30316c81] {
133
+ .c-tree .c-tree-toolbar .toolbar-left .search-input[data-v-21a8bfe8] {
131
134
  width: 100%;
132
135
  }
133
- .c-tree .c-tree-toolbar .toolbar-right[data-v-30316c81] {
136
+ .c-tree .c-tree-toolbar .toolbar-right[data-v-21a8bfe8] {
134
137
  width: 100%;
135
138
  justify-content: center;
136
139
  }
137
- .c-tree[data-v-30316c81] .tree-actions {
140
+ .c-tree[data-v-21a8bfe8] .tree-actions {
138
141
  opacity: 1 !important;
139
142
  }
140
143
  }
package/dist/C_Tree2.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={menu:{draggable:!0,showLine:!0,iconConfig:{typeMap:{directory:`mdi:folder`,menu:`mdi:file-document`,button:`mdi:button-cursor`}},actions:[{key:`add`,text:`新增子菜单`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该菜单吗?`}]},file:{draggable:!1,showLine:!1,iconConfig:{typeMap:{folder:`mdi:folder`,file:`mdi:file-document`,image:`mdi:file-image`,video:`mdi:file-video`,audio:`mdi:file-music`}},actions:[{key:`open`,text:`打开`,icon:`mdi:folder-open`,type:`primary`},{key:`rename`,text:`重命名`,icon:`mdi:rename-box`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该文件吗?`}]},org:{draggable:!1,showLine:!0,iconConfig:{typeMap:{department:`mdi:domain`,user:`mdi:account`,manager:`mdi:account-tie`}},actions:[{key:`add`,text:`新增下级`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`}]},custom:{}};function a(t,a){let o=(0,n.ref)(``),s=(0,n.ref)(t.defaultExpandedKeys??[]),c=(0,n.ref)(t.defaultSelectedKeys??[]),l=(0,n.ref)(t.defaultExpandAll??!1),u=(0,n.computed)(()=>t.keyField??`id`),d=(0,n.computed)(()=>t.labelField??`name`),f=(0,n.computed)(()=>t.childrenField??`children`),p=(0,n.computed)(()=>t.iconField??`icon`),m=(0,n.computed)(()=>{let e=i[t.mode??`custom`]||{};return{...e,...t,iconConfig:{...e.iconConfig,...t.iconConfig},actions:t.actions?.length?t.actions:e.actions||[]}}),h=(0,n.computed)(()=>t.data),g=(0,n.computed)(()=>t.searchPattern||o.value),_=(0,n.computed)(()=>{if(c.value.length===0)return null;let e=(t,n)=>{for(let r of t){if(r[u.value]===n)return r;if(r[f.value]){let t=e(r[f.value],n);if(t)return t}}return null};return e(t.data,c.value[0])}),v=e=>{let t=[];return e.forEach(e=>{t.push(e[u.value]),e[f.value]&&t.push(...v(e[f.value]))}),t},y=e=>{let t=m.value.iconConfig;return e[p.value]?e[p.value]:e.type&&t.typeMap?.[e.type]?t.typeMap[e.type]:t.default||`mdi:circle-outline`},b=e=>{let t=m.value.iconConfig;return e.type&&t.colorMap?.[e.type]?t.colorMap[e.type]:`currentColor`},x=({option:t})=>{let r=t;return(0,n.h)(e.t,{name:y(r),size:18,color:b(r),class:`mr-3 flex-shrink-0`})},S=({option:e})=>{let i=e,a=t.statusConfigs?.map(e=>{let t=i[e.field],a=e.values[t];return a?.text?(0,n.h)(r.NTag,{type:a.type,size:`small`,class:`ml-2`,style:{fontSize:`12px`}},{default:()=>a.text}):null}).filter(Boolean)||[];return(0,n.h)(`div`,{class:`flex items-center flex-1 min-w-0 py-1`,style:{lineHeight:`1.5`}},[(0,n.h)(`span`,{class:`mr-3 font-medium text-sm`},i[d.value]),...a])},C=({option:t})=>{let i=t,a=(m.value.actions||[]).filter(e=>!e.show||e.show(i)).map(t=>{let a={size:`tiny`,type:t.type||`default`,secondary:!0,style:{padding:`4px 6px`,minWidth:`24px`,height:`24px`},onClick:e=>{e.stopPropagation(),O(t.key,i)}},o=(0,n.h)(e.t,{name:t.icon,size:12,title:t.text});return t.confirm?(0,n.h)(r.NPopconfirm,{onPositiveClick:()=>O(t.key,i)},{trigger:()=>(0,n.h)(r.NButton,{...a,onClick:e=>e.stopPropagation()},{icon:()=>o}),default:()=>t.confirm}):(0,n.h)(r.NButton,a,{icon:()=>o})});return(0,n.h)(`div`,{class:`tree-actions`,style:{display:`flex`,alignItems:`center`,marginLeft:`8px`,opacity:`0`,transition:`opacity 0.2s ease`}},[(0,n.h)(r.NSpace,{size:4},{default:()=>a})])},w=()=>{l.value?(s.value=[],l.value=!1):(s.value=v(t.data),l.value=!0)},T=e=>{s.value=e,l.value=e.length===v(t.data).length},E=e=>{c.value=e,a(`node-select`,_.value,e)},D=e=>a(`node-drop`,e),O=(e,t)=>{e===`add`?a(`add`,t):a(`node-action`,e,t)};return{internalSearchPattern:o,expandedKeys:s,selectedKeys:c,isAllExpanded:l,treeData:h,currentSearchPattern:g,renderPrefix:x,renderLabel:S,renderSuffix:C,toggleExpandAll:w,handleExpandedKeysChange:T,handleSelectedKeysChange:E,handleDrop:D,handleAdd:()=>a(`add`),handleRefresh:()=>a(`refresh`),expose:{expandAll:()=>{s.value=v(t.data),l.value=!0},collapseAll:()=>{s.value=[],l.value=!1},selectNode:e=>{c.value=[e]},getSelectedNode:()=>_.value,expandedKeys:s,selectedKeys:c}}}const o={class:`c-tree`},s={key:0,class:`c-tree-toolbar`},c={class:`toolbar-left`},l={class:`toolbar-right`},u={class:`c-tree-container`},d=(0,n.defineComponent)({name:`C_Tree`,__name:`index`,props:{data:{},mode:{default:`custom`},keyField:{default:`id`},labelField:{default:`name`},childrenField:{default:`children`},searchPattern:{default:``},searchable:{type:Boolean,default:!0},searchPlaceholder:{default:`搜索...`},draggable:{type:Boolean,default:!1},showLine:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},addable:{type:Boolean,default:!0},addText:{default:`新增`},refreshable:{type:Boolean,default:!0},iconField:{default:`icon`},iconConfig:{default:()=>({default:`mdi:circle-outline`,typeMap:{},colorMap:{}})},statusConfigs:{default:()=>[]},actions:{default:()=>[]},defaultExpandAll:{type:Boolean,default:!1},defaultExpandedKeys:{default:()=>[]},defaultSelectedKeys:{default:()=>[]}},emits:[`node-select`,`node-action`,`node-drop`,`add`,`refresh`],setup(t,{expose:i,emit:d}){let{internalSearchPattern:f,expandedKeys:p,selectedKeys:m,isAllExpanded:h,treeData:g,currentSearchPattern:_,renderPrefix:v,renderLabel:y,renderSuffix:b,toggleExpandAll:x,handleExpandedKeysChange:S,handleSelectedKeysChange:C,handleDrop:w,handleAdd:T,handleRefresh:E,expose:D}=a(t,d);return i(D),(i,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[t.showToolbar?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,s,[(0,n.createElementVNode)(`div`,c,[t.searchable?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NInput),{key:0,value:(0,n.unref)(f),"onUpdate:value":a[0]||=e=>(0,n.isRef)(f)?f.value=e:null,placeholder:t.searchPlaceholder,clearable:``,class:`search-input`},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify`,size:16})]),_:1},8,[`value`,`placeholder`])):(0,n.createCommentVNode)(`v-if`,!0)]),(0,n.createElementVNode)(`div`,l,[(0,n.renderSlot)(i.$slots,`toolbar-actions`,{},()=>[t.addable?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NButton),{key:0,type:`primary`,onClick:a[1]||=e=>(0,n.unref)(T)()},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:plus`,size:16})]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)(t.addText),1)]),_:1})):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createVNode)((0,n.unref)(r.NButton),{onClick:(0,n.unref)(x)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:file-tree`,size:16})]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)((0,n.unref)(h)?`收起全部`:`展开全部`),1)]),_:1},8,[`onClick`]),t.refreshable?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NButton),{key:1,onClick:(0,n.unref)(E)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:refresh`,size:16})]),default:(0,n.withCtx)(()=>[a[2]||=(0,n.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`onClick`])):(0,n.createCommentVNode)(`v-if`,!0)],!0)])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,u,[(0,n.createVNode)((0,n.unref)(r.NTree),{data:(0,n.unref)(g),pattern:(0,n.unref)(_),"expanded-keys":(0,n.unref)(p),"selected-keys":(0,n.unref)(m),draggable:t.draggable,"show-line":t.showLine,"render-prefix":(0,n.unref)(v),"render-suffix":(0,n.unref)(b),"render-label":(0,n.unref)(y),"key-field":t.keyField,"label-field":t.labelField,"children-field":t.childrenField,"onUpdate:expandedKeys":(0,n.unref)(S),"onUpdate:selectedKeys":(0,n.unref)(C),onDrop:(0,n.unref)(w),class:`tree-instance`},null,8,[`data`,`pattern`,`expanded-keys`,`selected-keys`,`draggable`,`show-line`,`render-prefix`,`render-suffix`,`render-label`,`key-field`,`label-field`,`children-field`,`onUpdate:expandedKeys`,`onUpdate:selectedKeys`,`onDrop`])])]))}});var f=t.t(d,[[`__scopeId`,`data-v-30316c81`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={menu:{draggable:!0,showLine:!0,iconConfig:{typeMap:{directory:`mdi:folder`,menu:`mdi:file-document`,button:`mdi:button-cursor`}},actions:[{key:`add`,text:`新增子菜单`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该菜单吗?`}]},file:{draggable:!1,showLine:!1,iconConfig:{typeMap:{folder:`mdi:folder`,file:`mdi:file-document`,image:`mdi:file-image`,video:`mdi:file-video`,audio:`mdi:file-music`}},actions:[{key:`open`,text:`打开`,icon:`mdi:folder-open`,type:`primary`},{key:`rename`,text:`重命名`,icon:`mdi:rename-box`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该文件吗?`}]},org:{draggable:!1,showLine:!0,iconConfig:{typeMap:{department:`mdi:domain`,user:`mdi:account`,manager:`mdi:account-tie`}},actions:[{key:`add`,text:`新增下级`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`}]},custom:{}};function a(e,t,n){let r=new Set,i=new WeakSet,a=[...e].reverse();for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let o=e[n];if(!Array.isArray(o)||o.length===0)continue;let s=e[t];(typeof s==`string`||typeof s==`number`)&&r.add(s),a.push(...o.slice().reverse())}return[...r]}function o(e,t,n,r){let i=new WeakSet,a=[...e].reverse();for(;a.length;){let e=a.pop();if(i.has(e))continue;if(i.add(e),e[n]===t)return e;let o=e[r];Array.isArray(o)&&a.push(...o.slice().reverse())}return null}function s(t,s){let c=(0,n.ref)(``),l=(0,n.ref)(t.defaultExpandAll?a(t.data,t.keyField??`id`,t.childrenField??`children`):[...t.defaultExpandedKeys??[]]),u=(0,n.ref)([...t.defaultSelectedKeys??[]]),d=(0,n.computed)(()=>t.keyField??`id`),f=(0,n.computed)(()=>t.labelField??`name`),p=(0,n.computed)(()=>t.childrenField??`children`),m=(0,n.computed)(()=>t.iconField??`icon`),h=(0,n.computed)(()=>a(t.data,d.value,p.value)),g=(0,n.computed)(()=>{let e=h.value,t=new Set(l.value);return e.length>0&&e.every(e=>t.has(e))}),_=(0,n.computed)(()=>{let e=i[t.mode??`custom`]||{};return{...e,...t,iconConfig:{...e.iconConfig,...t.iconConfig},actions:t.actions?.length?t.actions:e.actions||[]}}),v=(0,n.computed)(()=>t.data),y=(0,n.computed)(()=>t.searchPattern||c.value),b=(0,n.computed)(()=>u.value.length===0?null:o(t.data,u.value[0],d.value,p.value)),x=e=>{let t=_.value.iconConfig;return e[m.value]?e[m.value]:e.type&&t.typeMap?.[e.type]?t.typeMap[e.type]:t.default||`mdi:circle-outline`},S=e=>{let t=_.value.iconConfig;return e.type&&t.colorMap?.[e.type]?t.colorMap[e.type]:`currentColor`},C=({option:t})=>{let r=t;return(0,n.h)(e.t,{name:x(r),size:18,color:S(r),class:`mr-3 flex-shrink-0`})},w=({option:e})=>{let i=e,a=t.statusConfigs?.map(e=>{let t=i[e.field],a=e.values[t];return a?.text?(0,n.h)(r.NTag,{type:a.type,size:`small`,class:`ml-2`,style:{fontSize:`12px`}},{default:()=>a.text}):null}).filter(Boolean)||[];return(0,n.h)(`div`,{class:`flex items-center flex-1 min-w-0 py-1`,style:{lineHeight:`1.5`}},[(0,n.h)(`span`,{class:`mr-3 font-medium text-sm`},i[f.value]),...a])},T=({option:t})=>{let i=t,a=(_.value.actions||[]).filter(e=>!e.show||e.show(i)).map(t=>{let a={size:`tiny`,type:t.type||`default`,secondary:!0,"aria-label":t.text||t.key,style:{padding:`4px 6px`,minWidth:`24px`,height:`24px`},onClick:e=>{e.stopPropagation(),A(t.key,i)}},o=(0,n.h)(e.t,{name:t.icon,size:12,title:t.text});return t.confirm?(0,n.h)(r.NPopconfirm,{onPositiveClick:()=>A(t.key,i)},{trigger:()=>(0,n.h)(r.NButton,{...a,onClick:e=>e.stopPropagation()},{icon:()=>o}),default:()=>t.confirm}):(0,n.h)(r.NButton,a,{icon:()=>o})});return(0,n.h)(`div`,{class:`tree-actions`,style:{display:`flex`,alignItems:`center`,marginLeft:`8px`,opacity:`0`,transition:`opacity 0.2s ease`}},[(0,n.h)(r.NSpace,{size:4},{default:()=>a})])},E=()=>{l.value=g.value?[]:h.value},D=e=>{l.value=e},O=e=>{u.value=e,s(`node-select`,b.value,e)},k=e=>s(`node-drop`,e),A=(e,t)=>{e===`add`?s(`add`,t):s(`node-action`,e,t)};return{internalSearchPattern:c,expandedKeys:l,selectedKeys:u,isAllExpanded:g,treeData:v,currentSearchPattern:y,renderPrefix:C,renderLabel:w,renderSuffix:T,toggleExpandAll:E,handleExpandedKeysChange:D,handleSelectedKeysChange:O,handleDrop:k,handleAdd:()=>s(`add`),handleRefresh:()=>s(`refresh`),expose:{expandAll:()=>{l.value=h.value},collapseAll:()=>{l.value=[]},selectNode:e=>{u.value=[e]},getSelectedNode:()=>b.value,expandedKeys:l,selectedKeys:u}}}const c={class:`c-tree`},l={key:0,class:`c-tree-toolbar`},u={class:`toolbar-left`},d={class:`toolbar-right`},f={class:`c-tree-container`},p=(0,n.defineComponent)({name:`C_Tree`,__name:`index`,props:{data:{},mode:{default:`custom`},keyField:{default:`id`},labelField:{default:`name`},childrenField:{default:`children`},searchPattern:{default:``},searchable:{type:Boolean,default:!0},searchPlaceholder:{default:`搜索...`},draggable:{type:Boolean,default:!1},showLine:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},addable:{type:Boolean,default:!0},addText:{default:`新增`},refreshable:{type:Boolean,default:!0},iconField:{default:`icon`},iconConfig:{default:()=>({default:`mdi:circle-outline`,typeMap:{},colorMap:{}})},statusConfigs:{default:()=>[]},actions:{default:()=>[]},defaultExpandAll:{type:Boolean,default:!1},defaultExpandedKeys:{default:()=>[]},defaultSelectedKeys:{default:()=>[]}},emits:[`node-select`,`node-action`,`node-drop`,`add`,`refresh`],setup(t,{expose:i,emit:a}){let{internalSearchPattern:o,expandedKeys:p,selectedKeys:m,isAllExpanded:h,treeData:g,currentSearchPattern:_,renderPrefix:v,renderLabel:y,renderSuffix:b,toggleExpandAll:x,handleExpandedKeysChange:S,handleSelectedKeysChange:C,handleDrop:w,handleAdd:T,handleRefresh:E,expose:D}=s(t,a);return i(D),(i,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,c,[t.showToolbar?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,l,[(0,n.createElementVNode)(`div`,u,[t.searchable?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NInput),{key:0,value:(0,n.unref)(o),"onUpdate:value":a[0]||=e=>(0,n.isRef)(o)?o.value=e:null,placeholder:t.searchPlaceholder,"aria-label":`搜索树节点`,clearable:``,class:`search-input`},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify`,size:16})]),_:1},8,[`value`,`placeholder`])):(0,n.createCommentVNode)(`v-if`,!0)]),(0,n.createElementVNode)(`div`,d,[(0,n.renderSlot)(i.$slots,`toolbar-actions`,{},()=>[t.addable?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NButton),{key:0,type:`primary`,onClick:a[1]||=e=>(0,n.unref)(T)()},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:plus`,size:16})]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)(t.addText),1)]),_:1})):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createVNode)((0,n.unref)(r.NButton),{onClick:(0,n.unref)(x)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:file-tree`,size:16})]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)((0,n.unref)(h)?`收起全部`:`展开全部`),1)]),_:1},8,[`onClick`]),t.refreshable?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NButton),{key:1,onClick:(0,n.unref)(E)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:refresh`,size:16})]),default:(0,n.withCtx)(()=>[a[2]||=(0,n.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`onClick`])):(0,n.createCommentVNode)(`v-if`,!0)],!0)])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,f,[(0,n.createVNode)((0,n.unref)(r.NTree),{data:(0,n.unref)(g),pattern:(0,n.unref)(_),"expanded-keys":(0,n.unref)(p),"selected-keys":(0,n.unref)(m),draggable:t.draggable,"show-line":t.showLine,"render-prefix":(0,n.unref)(v),"render-suffix":(0,n.unref)(b),"render-label":(0,n.unref)(y),"key-field":t.keyField,"label-field":t.labelField,"children-field":t.childrenField,"onUpdate:expandedKeys":(0,n.unref)(S),"onUpdate:selectedKeys":(0,n.unref)(C),onDrop:(0,n.unref)(w),class:`tree-instance`},null,8,[`data`,`pattern`,`expanded-keys`,`selected-keys`,`draggable`,`show-line`,`render-prefix`,`render-suffix`,`render-label`,`key-field`,`label-field`,`children-field`,`onUpdate:expandedKeys`,`onUpdate:selectedKeys`,`onDrop`])])]))}});var m=t.t(p,[[`__scopeId`,`data-v-21a8bfe8`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return m}});
package/dist/C_Tree2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as s,createVNode as c,defineComponent as l,h as u,isRef as d,openBlock as f,ref as p,renderSlot as m,toDisplayString as h,unref as g,withCtx as _}from"vue";import{NButton as v,NInput as y,NPopconfirm as b,NSpace as x,NTag as S,NTree as C}from"naive-ui";const w={menu:{draggable:!0,showLine:!0,iconConfig:{typeMap:{directory:`mdi:folder`,menu:`mdi:file-document`,button:`mdi:button-cursor`}},actions:[{key:`add`,text:`新增子菜单`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该菜单吗?`}]},file:{draggable:!1,showLine:!1,iconConfig:{typeMap:{folder:`mdi:folder`,file:`mdi:file-document`,image:`mdi:file-image`,video:`mdi:file-video`,audio:`mdi:file-music`}},actions:[{key:`open`,text:`打开`,icon:`mdi:folder-open`,type:`primary`},{key:`rename`,text:`重命名`,icon:`mdi:rename-box`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该文件吗?`}]},org:{draggable:!1,showLine:!0,iconConfig:{typeMap:{department:`mdi:domain`,user:`mdi:account`,manager:`mdi:account-tie`}},actions:[{key:`add`,text:`新增下级`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`}]},custom:{}};function T(t,r){let i=p(``),a=p(t.defaultExpandedKeys??[]),o=p(t.defaultSelectedKeys??[]),s=p(t.defaultExpandAll??!1),c=n(()=>t.keyField??`id`),l=n(()=>t.labelField??`name`),d=n(()=>t.childrenField??`children`),f=n(()=>t.iconField??`icon`),m=n(()=>{let e=w[t.mode??`custom`]||{};return{...e,...t,iconConfig:{...e.iconConfig,...t.iconConfig},actions:t.actions?.length?t.actions:e.actions||[]}}),h=n(()=>t.data),g=n(()=>t.searchPattern||i.value),_=n(()=>{if(o.value.length===0)return null;let e=(t,n)=>{for(let r of t){if(r[c.value]===n)return r;if(r[d.value]){let t=e(r[d.value],n);if(t)return t}}return null};return e(t.data,o.value[0])}),y=e=>{let t=[];return e.forEach(e=>{t.push(e[c.value]),e[d.value]&&t.push(...y(e[d.value]))}),t},C=e=>{let t=m.value.iconConfig;return e[f.value]?e[f.value]:e.type&&t.typeMap?.[e.type]?t.typeMap[e.type]:t.default||`mdi:circle-outline`},T=e=>{let t=m.value.iconConfig;return e.type&&t.colorMap?.[e.type]?t.colorMap[e.type]:`currentColor`},E=({option:t})=>{let n=t;return u(e,{name:C(n),size:18,color:T(n),class:`mr-3 flex-shrink-0`})},D=({option:e})=>{let n=e,r=t.statusConfigs?.map(e=>{let t=n[e.field],r=e.values[t];return r?.text?u(S,{type:r.type,size:`small`,class:`ml-2`,style:{fontSize:`12px`}},{default:()=>r.text}):null}).filter(Boolean)||[];return u(`div`,{class:`flex items-center flex-1 min-w-0 py-1`,style:{lineHeight:`1.5`}},[u(`span`,{class:`mr-3 font-medium text-sm`},n[l.value]),...r])},O=({option:t})=>{let n=t,r=(m.value.actions||[]).filter(e=>!e.show||e.show(n)).map(t=>{let r={size:`tiny`,type:t.type||`default`,secondary:!0,style:{padding:`4px 6px`,minWidth:`24px`,height:`24px`},onClick:e=>{e.stopPropagation(),N(t.key,n)}},i=u(e,{name:t.icon,size:12,title:t.text});return t.confirm?u(b,{onPositiveClick:()=>N(t.key,n)},{trigger:()=>u(v,{...r,onClick:e=>e.stopPropagation()},{icon:()=>i}),default:()=>t.confirm}):u(v,r,{icon:()=>i})});return u(`div`,{class:`tree-actions`,style:{display:`flex`,alignItems:`center`,marginLeft:`8px`,opacity:`0`,transition:`opacity 0.2s ease`}},[u(x,{size:4},{default:()=>r})])},k=()=>{s.value?(a.value=[],s.value=!1):(a.value=y(t.data),s.value=!0)},A=e=>{a.value=e,s.value=e.length===y(t.data).length},j=e=>{o.value=e,r(`node-select`,_.value,e)},M=e=>r(`node-drop`,e),N=(e,t)=>{e===`add`?r(`add`,t):r(`node-action`,e,t)};return{internalSearchPattern:i,expandedKeys:a,selectedKeys:o,isAllExpanded:s,treeData:h,currentSearchPattern:g,renderPrefix:E,renderLabel:D,renderSuffix:O,toggleExpandAll:k,handleExpandedKeysChange:A,handleSelectedKeysChange:j,handleDrop:M,handleAdd:()=>r(`add`),handleRefresh:()=>r(`refresh`),expose:{expandAll:()=>{a.value=y(t.data),s.value=!0},collapseAll:()=>{a.value=[],s.value=!1},selectNode:e=>{o.value=[e]},getSelectedNode:()=>_.value,expandedKeys:a,selectedKeys:o}}}const E={class:`c-tree`},D={key:0,class:`c-tree-toolbar`},O={class:`toolbar-left`},k={class:`toolbar-right`},A={class:`c-tree-container`};var j=t(l({name:`C_Tree`,__name:`index`,props:{data:{},mode:{default:`custom`},keyField:{default:`id`},labelField:{default:`name`},childrenField:{default:`children`},searchPattern:{default:``},searchable:{type:Boolean,default:!0},searchPlaceholder:{default:`搜索...`},draggable:{type:Boolean,default:!1},showLine:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},addable:{type:Boolean,default:!0},addText:{default:`新增`},refreshable:{type:Boolean,default:!0},iconField:{default:`icon`},iconConfig:{default:()=>({default:`mdi:circle-outline`,typeMap:{},colorMap:{}})},statusConfigs:{default:()=>[]},actions:{default:()=>[]},defaultExpandAll:{type:Boolean,default:!1},defaultExpandedKeys:{default:()=>[]},defaultSelectedKeys:{default:()=>[]}},emits:[`node-select`,`node-action`,`node-drop`,`add`,`refresh`],setup(t,{expose:n,emit:l}){let{internalSearchPattern:u,expandedKeys:p,selectedKeys:b,isAllExpanded:x,treeData:S,currentSearchPattern:w,renderPrefix:j,renderLabel:M,renderSuffix:N,toggleExpandAll:P,handleExpandedKeysChange:F,handleSelectedKeysChange:I,handleDrop:L,handleAdd:R,handleRefresh:z,expose:B}=T(t,l);return n(B),(n,l)=>(f(),a(`div`,E,[t.showToolbar?(f(),a(`div`,D,[o(`div`,O,[t.searchable?(f(),r(g(y),{key:0,value:g(u),"onUpdate:value":l[0]||=e=>d(u)?u.value=e:null,placeholder:t.searchPlaceholder,clearable:``,class:`search-input`},{prefix:_(()=>[c(e,{name:`mdi:magnify`,size:16})]),_:1},8,[`value`,`placeholder`])):i(`v-if`,!0)]),o(`div`,k,[m(n.$slots,`toolbar-actions`,{},()=>[t.addable?(f(),r(g(v),{key:0,type:`primary`,onClick:l[1]||=e=>g(R)()},{icon:_(()=>[c(e,{name:`mdi:plus`,size:16})]),default:_(()=>[s(` `+h(t.addText),1)]),_:1})):i(`v-if`,!0),c(g(v),{onClick:g(P)},{icon:_(()=>[c(e,{name:`mdi:file-tree`,size:16})]),default:_(()=>[s(` `+h(g(x)?`收起全部`:`展开全部`),1)]),_:1},8,[`onClick`]),t.refreshable?(f(),r(g(v),{key:1,onClick:g(z)},{icon:_(()=>[c(e,{name:`mdi:refresh`,size:16})]),default:_(()=>[l[2]||=s(` 刷新 `,-1)]),_:1},8,[`onClick`])):i(`v-if`,!0)],!0)])])):i(`v-if`,!0),o(`div`,A,[c(g(C),{data:g(S),pattern:g(w),"expanded-keys":g(p),"selected-keys":g(b),draggable:t.draggable,"show-line":t.showLine,"render-prefix":g(j),"render-suffix":g(N),"render-label":g(M),"key-field":t.keyField,"label-field":t.labelField,"children-field":t.childrenField,"onUpdate:expandedKeys":g(F),"onUpdate:selectedKeys":g(I),onDrop:g(L),class:`tree-instance`},null,8,[`data`,`pattern`,`expanded-keys`,`selected-keys`,`draggable`,`show-line`,`render-prefix`,`render-suffix`,`render-label`,`key-field`,`label-field`,`children-field`,`onUpdate:expandedKeys`,`onUpdate:selectedKeys`,`onDrop`])])]))}}),[[`__scopeId`,`data-v-30316c81`]]);export{T as n,w as r,j as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as s,createVNode as c,defineComponent as l,h as u,isRef as d,openBlock as f,ref as p,renderSlot as m,toDisplayString as h,unref as g,withCtx as _}from"vue";import{NButton as v,NInput as y,NPopconfirm as b,NSpace as x,NTag as S,NTree as C}from"naive-ui";const w={menu:{draggable:!0,showLine:!0,iconConfig:{typeMap:{directory:`mdi:folder`,menu:`mdi:file-document`,button:`mdi:button-cursor`}},actions:[{key:`add`,text:`新增子菜单`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该菜单吗?`}]},file:{draggable:!1,showLine:!1,iconConfig:{typeMap:{folder:`mdi:folder`,file:`mdi:file-document`,image:`mdi:file-image`,video:`mdi:file-video`,audio:`mdi:file-music`}},actions:[{key:`open`,text:`打开`,icon:`mdi:folder-open`,type:`primary`},{key:`rename`,text:`重命名`,icon:`mdi:rename-box`,type:`info`},{key:`delete`,text:`删除`,icon:`mdi:delete`,type:`error`,confirm:`确认删除该文件吗?`}]},org:{draggable:!1,showLine:!0,iconConfig:{typeMap:{department:`mdi:domain`,user:`mdi:account`,manager:`mdi:account-tie`}},actions:[{key:`add`,text:`新增下级`,icon:`mdi:plus`,type:`primary`},{key:`edit`,text:`编辑`,icon:`mdi:pencil`,type:`info`}]},custom:{}};function T(e,t,n){let r=new Set,i=new WeakSet,a=[...e].reverse();for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let o=e[n];if(!Array.isArray(o)||o.length===0)continue;let s=e[t];(typeof s==`string`||typeof s==`number`)&&r.add(s),a.push(...o.slice().reverse())}return[...r]}function E(e,t,n,r){let i=new WeakSet,a=[...e].reverse();for(;a.length;){let e=a.pop();if(i.has(e))continue;if(i.add(e),e[n]===t)return e;let o=e[r];Array.isArray(o)&&a.push(...o.slice().reverse())}return null}function D(t,r){let i=p(``),a=p(t.defaultExpandAll?T(t.data,t.keyField??`id`,t.childrenField??`children`):[...t.defaultExpandedKeys??[]]),o=p([...t.defaultSelectedKeys??[]]),s=n(()=>t.keyField??`id`),c=n(()=>t.labelField??`name`),l=n(()=>t.childrenField??`children`),d=n(()=>t.iconField??`icon`),f=n(()=>T(t.data,s.value,l.value)),m=n(()=>{let e=f.value,t=new Set(a.value);return e.length>0&&e.every(e=>t.has(e))}),h=n(()=>{let e=w[t.mode??`custom`]||{};return{...e,...t,iconConfig:{...e.iconConfig,...t.iconConfig},actions:t.actions?.length?t.actions:e.actions||[]}}),g=n(()=>t.data),_=n(()=>t.searchPattern||i.value),y=n(()=>o.value.length===0?null:E(t.data,o.value[0],s.value,l.value)),C=e=>{let t=h.value.iconConfig;return e[d.value]?e[d.value]:e.type&&t.typeMap?.[e.type]?t.typeMap[e.type]:t.default||`mdi:circle-outline`},D=e=>{let t=h.value.iconConfig;return e.type&&t.colorMap?.[e.type]?t.colorMap[e.type]:`currentColor`},O=({option:t})=>{let n=t;return u(e,{name:C(n),size:18,color:D(n),class:`mr-3 flex-shrink-0`})},k=({option:e})=>{let n=e,r=t.statusConfigs?.map(e=>{let t=n[e.field],r=e.values[t];return r?.text?u(S,{type:r.type,size:`small`,class:`ml-2`,style:{fontSize:`12px`}},{default:()=>r.text}):null}).filter(Boolean)||[];return u(`div`,{class:`flex items-center flex-1 min-w-0 py-1`,style:{lineHeight:`1.5`}},[u(`span`,{class:`mr-3 font-medium text-sm`},n[c.value]),...r])},A=({option:t})=>{let n=t,r=(h.value.actions||[]).filter(e=>!e.show||e.show(n)).map(t=>{let r={size:`tiny`,type:t.type||`default`,secondary:!0,"aria-label":t.text||t.key,style:{padding:`4px 6px`,minWidth:`24px`,height:`24px`},onClick:e=>{e.stopPropagation(),F(t.key,n)}},i=u(e,{name:t.icon,size:12,title:t.text});return t.confirm?u(b,{onPositiveClick:()=>F(t.key,n)},{trigger:()=>u(v,{...r,onClick:e=>e.stopPropagation()},{icon:()=>i}),default:()=>t.confirm}):u(v,r,{icon:()=>i})});return u(`div`,{class:`tree-actions`,style:{display:`flex`,alignItems:`center`,marginLeft:`8px`,opacity:`0`,transition:`opacity 0.2s ease`}},[u(x,{size:4},{default:()=>r})])},j=()=>{a.value=m.value?[]:f.value},M=e=>{a.value=e},N=e=>{o.value=e,r(`node-select`,y.value,e)},P=e=>r(`node-drop`,e),F=(e,t)=>{e===`add`?r(`add`,t):r(`node-action`,e,t)};return{internalSearchPattern:i,expandedKeys:a,selectedKeys:o,isAllExpanded:m,treeData:g,currentSearchPattern:_,renderPrefix:O,renderLabel:k,renderSuffix:A,toggleExpandAll:j,handleExpandedKeysChange:M,handleSelectedKeysChange:N,handleDrop:P,handleAdd:()=>r(`add`),handleRefresh:()=>r(`refresh`),expose:{expandAll:()=>{a.value=f.value},collapseAll:()=>{a.value=[]},selectNode:e=>{o.value=[e]},getSelectedNode:()=>y.value,expandedKeys:a,selectedKeys:o}}}const O={class:`c-tree`},k={key:0,class:`c-tree-toolbar`},A={class:`toolbar-left`},j={class:`toolbar-right`},M={class:`c-tree-container`};var N=t(l({name:`C_Tree`,__name:`index`,props:{data:{},mode:{default:`custom`},keyField:{default:`id`},labelField:{default:`name`},childrenField:{default:`children`},searchPattern:{default:``},searchable:{type:Boolean,default:!0},searchPlaceholder:{default:`搜索...`},draggable:{type:Boolean,default:!1},showLine:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},addable:{type:Boolean,default:!0},addText:{default:`新增`},refreshable:{type:Boolean,default:!0},iconField:{default:`icon`},iconConfig:{default:()=>({default:`mdi:circle-outline`,typeMap:{},colorMap:{}})},statusConfigs:{default:()=>[]},actions:{default:()=>[]},defaultExpandAll:{type:Boolean,default:!1},defaultExpandedKeys:{default:()=>[]},defaultSelectedKeys:{default:()=>[]}},emits:[`node-select`,`node-action`,`node-drop`,`add`,`refresh`],setup(t,{expose:n,emit:l}){let{internalSearchPattern:u,expandedKeys:p,selectedKeys:b,isAllExpanded:x,treeData:S,currentSearchPattern:w,renderPrefix:T,renderLabel:E,renderSuffix:N,toggleExpandAll:P,handleExpandedKeysChange:F,handleSelectedKeysChange:I,handleDrop:L,handleAdd:R,handleRefresh:z,expose:B}=D(t,l);return n(B),(n,l)=>(f(),a(`div`,O,[t.showToolbar?(f(),a(`div`,k,[o(`div`,A,[t.searchable?(f(),r(g(y),{key:0,value:g(u),"onUpdate:value":l[0]||=e=>d(u)?u.value=e:null,placeholder:t.searchPlaceholder,"aria-label":`搜索树节点`,clearable:``,class:`search-input`},{prefix:_(()=>[c(e,{name:`mdi:magnify`,size:16})]),_:1},8,[`value`,`placeholder`])):i(`v-if`,!0)]),o(`div`,j,[m(n.$slots,`toolbar-actions`,{},()=>[t.addable?(f(),r(g(v),{key:0,type:`primary`,onClick:l[1]||=e=>g(R)()},{icon:_(()=>[c(e,{name:`mdi:plus`,size:16})]),default:_(()=>[s(` `+h(t.addText),1)]),_:1})):i(`v-if`,!0),c(g(v),{onClick:g(P)},{icon:_(()=>[c(e,{name:`mdi:file-tree`,size:16})]),default:_(()=>[s(` `+h(g(x)?`收起全部`:`展开全部`),1)]),_:1},8,[`onClick`]),t.refreshable?(f(),r(g(v),{key:1,onClick:g(z)},{icon:_(()=>[c(e,{name:`mdi:refresh`,size:16})]),default:_(()=>[l[2]||=s(` 刷新 `,-1)]),_:1},8,[`onClick`])):i(`v-if`,!0)],!0)])])):i(`v-if`,!0),o(`div`,M,[c(g(C),{data:g(S),pattern:g(w),"expanded-keys":g(p),"selected-keys":g(b),draggable:t.draggable,"show-line":t.showLine,"render-prefix":g(T),"render-suffix":g(N),"render-label":g(E),"key-field":t.keyField,"label-field":t.labelField,"children-field":t.childrenField,"onUpdate:expandedKeys":g(F),"onUpdate:selectedKeys":g(I),onDrop:g(L),class:`tree-instance`},null,8,[`data`,`pattern`,`expanded-keys`,`selected-keys`,`draggable`,`show-line`,`render-prefix`,`render-suffix`,`render-label`,`key-field`,`label-field`,`children-field`,`onUpdate:expandedKeys`,`onUpdate:selectedKeys`,`onDrop`])])]))}}),[[`__scopeId`,`data-v-21a8bfe8`]]);export{D as n,w as r,N as t};