@robot-admin/naive-ui-components 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/CHANGELOG.md +111 -100
  2. package/LICENSE +21 -21
  3. package/README.md +463 -318
  4. package/README_EN.md +404 -0
  5. package/SECURITY.md +23 -0
  6. package/dist/C_ActionBar.cjs +1 -1
  7. package/dist/C_ActionBar.css +46 -48
  8. package/dist/C_ActionBar.d.cts +1 -1
  9. package/dist/C_ActionBar.js +1 -1
  10. package/dist/C_ActionBar2.cjs +1 -0
  11. package/dist/C_ActionBar2.js +1 -2
  12. package/dist/C_AntV.cjs +1 -1
  13. package/dist/C_AntV.css +3 -3
  14. package/dist/C_AntV.d.cts +1 -1
  15. package/dist/C_AntV.js +1 -1
  16. package/dist/C_AntV2.cjs +4 -0
  17. package/dist/C_AntV2.js +3 -4
  18. package/dist/C_AudioPlayer.cjs +1 -1
  19. package/dist/C_AudioPlayer.css +15 -7
  20. package/dist/C_AudioPlayer.d.cts +1 -1
  21. package/dist/C_AudioPlayer.js +1 -1
  22. package/dist/C_AudioPlayer2.cjs +1 -0
  23. package/dist/C_AudioPlayer2.js +1 -2
  24. package/dist/C_AvatarGroup.cjs +1 -1
  25. package/dist/C_AvatarGroup.css +15 -7
  26. package/dist/C_AvatarGroup.d.cts +1 -1
  27. package/dist/C_AvatarGroup2.cjs +1 -0
  28. package/dist/C_AvatarGroup2.js +1 -2
  29. package/dist/C_Barcode.cjs +1 -1
  30. package/dist/C_Barcode.css +0 -2
  31. package/dist/C_Barcode.d.cts +1 -1
  32. package/dist/C_Barcode2.cjs +1 -0
  33. package/dist/C_Barcode2.js +1 -2
  34. package/dist/C_Breadcrumb.cjs +1 -1
  35. package/dist/C_Breadcrumb.css +0 -2
  36. package/dist/C_Breadcrumb.d.cts +2 -2
  37. package/dist/C_Breadcrumb.d.ts +1 -2
  38. package/dist/C_Breadcrumb.js +1 -1
  39. package/dist/C_Breadcrumb2.cjs +1 -0
  40. package/dist/C_Breadcrumb2.js +1 -2
  41. package/dist/C_Captcha.cjs +1 -1
  42. package/dist/C_Captcha.css +46 -21
  43. package/dist/C_Captcha.d.cts +3 -2
  44. package/dist/C_Captcha.d.ts +3 -2
  45. package/dist/C_Captcha.js +1 -1
  46. package/dist/C_Captcha2.cjs +1 -0
  47. package/dist/C_Captcha2.js +1 -2
  48. package/dist/C_Cascade.cjs +1 -1
  49. package/dist/C_Cascade.css +0 -2
  50. package/dist/C_Cascade.d.cts +1 -1
  51. package/dist/C_Cascade.d.ts +1 -1
  52. package/dist/C_Cascade2.cjs +1 -0
  53. package/dist/C_Cascade2.js +1 -2
  54. package/dist/C_Chat.cjs +1 -1
  55. package/dist/C_Chat.css +0 -2
  56. package/dist/C_Chat.d.cts +1 -1
  57. package/dist/C_Chat.d.ts +1 -1
  58. package/dist/C_Chat.js +1 -1
  59. package/dist/C_Chat2.cjs +1 -0
  60. package/dist/C_Chat2.js +1 -2
  61. package/dist/C_City.cjs +1 -1
  62. package/dist/C_City.css +28 -30
  63. package/dist/C_City.d.cts +1 -1
  64. package/dist/C_City.d.ts +1 -1
  65. package/dist/C_City2.cjs +1 -0
  66. package/dist/C_City2.js +1 -2
  67. package/dist/C_Code.cjs +1 -1
  68. package/dist/C_Code.css +241 -4
  69. package/dist/C_Code.d.cts +1 -1
  70. package/dist/C_Code.d.ts +1 -1
  71. package/dist/C_Code.js +1 -1
  72. package/dist/C_Code2.cjs +1 -0
  73. package/dist/C_Code2.js +1 -2
  74. package/dist/C_CollapsePanel.cjs +1 -1
  75. package/dist/C_CollapsePanel.css +12 -6
  76. package/dist/C_CollapsePanel.d.cts +1 -1
  77. package/dist/C_CollapsePanel.js +1 -1
  78. package/dist/C_CollapsePanel2.cjs +1 -0
  79. package/dist/C_CollapsePanel2.js +1 -2
  80. package/dist/C_ContextMenu.cjs +1 -1
  81. package/dist/C_ContextMenu.css +16 -18
  82. package/dist/C_ContextMenu.d.cts +1 -1
  83. package/dist/C_ContextMenu.d.ts +1 -1
  84. package/dist/C_ContextMenu.js +1 -1
  85. package/dist/C_ContextMenu2.cjs +1 -0
  86. package/dist/C_ContextMenu2.js +1 -2
  87. package/dist/C_Cron.cjs +1 -1
  88. package/dist/C_Cron.css +18 -8
  89. package/dist/C_Cron.d.cts +1 -1
  90. package/dist/C_Cron.js +1 -1
  91. package/dist/C_Cron2.cjs +1 -0
  92. package/dist/C_Cron2.js +1 -2
  93. package/dist/C_Date.cjs +1 -1
  94. package/dist/C_Date.css +1 -0
  95. package/dist/C_Date.d.cts +2 -2
  96. package/dist/C_Date.d.ts +2 -2
  97. package/dist/C_Date2.cjs +1 -0
  98. package/dist/C_Date2.js +1 -2
  99. package/dist/C_Draggable.cjs +1 -1
  100. package/dist/C_Draggable.css +9 -5
  101. package/dist/C_Draggable.d.cts +1 -1
  102. package/dist/C_Draggable2.cjs +1 -0
  103. package/dist/C_Draggable2.js +1 -2
  104. package/dist/C_Editor.cjs +1 -1
  105. package/dist/C_Editor.css +80 -67
  106. package/dist/C_Editor.d.cts +1 -1
  107. package/dist/C_Editor.d.ts +1 -1
  108. package/dist/C_Editor2.cjs +1 -0
  109. package/dist/C_Editor2.js +1 -2
  110. package/dist/C_FilePreview.cjs +1 -1
  111. package/dist/C_FilePreview.css +0 -2
  112. package/dist/C_FilePreview.d.cts +1 -1
  113. package/dist/C_FilePreview.js +1 -1
  114. package/dist/C_FilePreview2.cjs +1 -0
  115. package/dist/C_FilePreview2.js +1 -2
  116. package/dist/C_Form.base.css +980 -0
  117. package/dist/C_Form.cjs +1 -1
  118. package/dist/C_Form.css +256 -155
  119. package/dist/C_Form.d.cts +2 -2
  120. package/dist/C_Form.d.ts +2 -2
  121. package/dist/C_Form.js +1 -1
  122. package/dist/C_Form2.cjs +1 -0
  123. package/dist/C_Form2.js +1 -2
  124. package/dist/C_FormSearch.cjs +1 -1
  125. package/dist/C_FormSearch.css +47 -47
  126. package/dist/C_FormSearch.d.cts +2 -2
  127. package/dist/C_FormSearch.d.ts +2 -2
  128. package/dist/C_FormSearch2.cjs +1 -0
  129. package/dist/C_FormSearch2.js +1 -2
  130. package/dist/C_FormulaEditor.cjs +1 -1
  131. package/dist/C_FormulaEditor.css +64 -38
  132. package/dist/C_FormulaEditor.d.cts +1 -1
  133. package/dist/C_FormulaEditor.js +1 -1
  134. package/dist/C_FormulaEditor2.cjs +2 -0
  135. package/dist/C_FormulaEditor2.js +2 -2
  136. package/dist/C_FullCalendar.cjs +1 -1
  137. package/dist/C_FullCalendar.css +0 -2
  138. package/dist/C_FullCalendar.d.cts +1 -1
  139. package/dist/C_FullCalendar2.cjs +1 -0
  140. package/dist/C_FullCalendar2.js +1 -2
  141. package/dist/C_GlobalSearch.cjs +1 -1
  142. package/dist/C_GlobalSearch.css +111 -113
  143. package/dist/C_GlobalSearch.d.cts +1 -1
  144. package/dist/C_GlobalSearch2.cjs +1 -0
  145. package/dist/C_GlobalSearch2.js +1 -2
  146. package/dist/C_Guide.cjs +1 -1
  147. package/dist/C_Guide.css +1 -0
  148. package/dist/C_Guide.d.cts +1 -1
  149. package/dist/C_Guide.d.ts +1 -1
  150. package/dist/C_Guide.js +1 -1
  151. package/dist/C_Guide2.cjs +1 -0
  152. package/dist/C_Guide2.js +1 -2
  153. package/dist/C_Icon.cjs +1 -1
  154. package/dist/C_Icon.css +58 -0
  155. package/dist/C_Icon.d.cts +1 -1
  156. package/dist/C_Icon.d.ts +1 -1
  157. package/dist/C_Icon2.cjs +1 -0
  158. package/dist/C_Icon2.js +1 -2
  159. package/dist/C_ImageCropper.cjs +1 -1
  160. package/dist/C_ImageCropper.css +0 -2
  161. package/dist/C_ImageCropper.d.cts +1 -1
  162. package/dist/C_ImageCropper.js +1 -1
  163. package/dist/C_ImageCropper2.cjs +1 -0
  164. package/dist/C_ImageCropper2.js +1 -2
  165. package/dist/C_Language.cjs +1 -1
  166. package/dist/C_Language.css +1 -0
  167. package/dist/C_Language.d.cts +1 -1
  168. package/dist/C_Language.d.ts +1 -1
  169. package/dist/C_Language.js +1 -1
  170. package/dist/C_Language2.cjs +1 -0
  171. package/dist/C_Language2.js +1 -2
  172. package/dist/C_Login.cjs +1 -1
  173. package/dist/C_Login.css +92 -76
  174. package/dist/C_Login.d.cts +1 -1
  175. package/dist/C_Login.d.ts +1 -1
  176. package/dist/C_Login.js +1 -1
  177. package/dist/C_Login2.cjs +1 -0
  178. package/dist/C_Login2.js +1 -2
  179. package/dist/C_Map.cjs +1 -1
  180. package/dist/C_Map.css +665 -5
  181. package/dist/C_Map.d.cts +1 -1
  182. package/dist/C_Map2.cjs +1 -0
  183. package/dist/C_Map2.js +1 -2
  184. package/dist/C_Markdown.cjs +1 -1
  185. package/dist/C_Markdown.css +940 -35
  186. package/dist/C_Markdown.d.cts +1 -1
  187. package/dist/C_Markdown.d.ts +1 -1
  188. package/dist/C_Markdown2.cjs +1 -0
  189. package/dist/C_Markdown2.js +1 -2
  190. package/dist/C_Menu.cjs +1 -1
  191. package/dist/C_Menu.css +1 -0
  192. package/dist/C_Menu.d.cts +3 -3
  193. package/dist/C_Menu.d.ts +3 -4
  194. package/dist/C_Menu.js +1 -1
  195. package/dist/C_Menu2.cjs +1 -0
  196. package/dist/C_Menu2.js +1 -2
  197. package/dist/C_NotificationCenter.cjs +1 -1
  198. package/dist/C_NotificationCenter.css +95 -47
  199. package/dist/C_NotificationCenter.d.cts +1 -1
  200. package/dist/C_NotificationCenter.js +1 -1
  201. package/dist/C_NotificationCenter2.cjs +1 -0
  202. package/dist/C_NotificationCenter2.js +1 -2
  203. package/dist/C_OrgChart.cjs +1 -1
  204. package/dist/C_OrgChart.css +6 -4
  205. package/dist/C_OrgChart.d.cts +1 -1
  206. package/dist/C_OrgChart.d.ts +1 -1
  207. package/dist/C_OrgChart2.cjs +1 -0
  208. package/dist/C_OrgChart2.js +1 -2
  209. package/dist/C_Progress.cjs +1 -1
  210. package/dist/C_Progress.css +1 -0
  211. package/dist/C_Progress.d.cts +1 -1
  212. package/dist/C_Progress.d.ts +1 -1
  213. package/dist/C_Progress2.cjs +1 -0
  214. package/dist/C_Progress2.js +1 -2
  215. package/dist/C_QRCode.cjs +1 -1
  216. package/dist/C_QRCode.css +8 -10
  217. package/dist/C_QRCode.d.cts +1 -1
  218. package/dist/C_QRCode2.cjs +1 -0
  219. package/dist/C_QRCode2.js +1 -2
  220. package/dist/C_Signature.cjs +1 -1
  221. package/dist/C_Signature.css +0 -2
  222. package/dist/C_Signature.d.cts +1 -1
  223. package/dist/C_Signature.js +1 -1
  224. package/dist/C_Signature2.cjs +1 -0
  225. package/dist/C_Signature2.js +1 -2
  226. package/dist/C_Skeleton.cjs +1 -1
  227. package/dist/C_Skeleton.css +0 -2
  228. package/dist/C_Skeleton.d.cts +1 -1
  229. package/dist/C_Skeleton.d.ts +1 -1
  230. package/dist/C_Skeleton2.cjs +1 -0
  231. package/dist/C_Skeleton2.js +1 -2
  232. package/dist/C_SplitPane.cjs +1 -1
  233. package/dist/C_SplitPane.css +27 -11
  234. package/dist/C_SplitPane.d.cts +1 -1
  235. package/dist/C_SplitPane.js +1 -1
  236. package/dist/C_SplitPane2.cjs +1 -0
  237. package/dist/C_SplitPane2.js +1 -2
  238. package/dist/C_Steps.cjs +1 -1
  239. package/dist/C_Steps.css +37 -39
  240. package/dist/C_Steps.d.cts +1 -1
  241. package/dist/C_Steps.d.ts +1 -1
  242. package/dist/C_Steps2.cjs +1 -0
  243. package/dist/C_Steps2.js +1 -2
  244. package/dist/C_Table.base.css +1588 -0
  245. package/dist/C_Table.cjs +1 -1
  246. package/dist/C_Table.css +1202 -112
  247. package/dist/C_Table.d.cts +2 -2
  248. package/dist/C_Table.d.ts +11 -2
  249. package/dist/C_Table.js +1 -1
  250. package/dist/C_TagsView.cjs +1 -1
  251. package/dist/C_TagsView.css +44 -40
  252. package/dist/C_TagsView.d.cts +2 -2
  253. package/dist/C_TagsView.d.ts +2 -3
  254. package/dist/C_TagsView.js +1 -1
  255. package/dist/C_TagsView2.cjs +1 -0
  256. package/dist/C_TagsView2.js +1 -2
  257. package/dist/C_Theme.cjs +1 -1
  258. package/dist/C_Theme.css +1 -0
  259. package/dist/C_Theme.d.cts +1 -1
  260. package/dist/C_Theme.d.ts +1 -1
  261. package/dist/C_Theme.js +1 -1
  262. package/dist/C_Theme2.cjs +1 -0
  263. package/dist/C_Theme2.js +1 -2
  264. package/dist/C_Time.cjs +1 -1
  265. package/dist/C_Time.css +0 -2
  266. package/dist/C_Time.d.cts +2 -2
  267. package/dist/C_Time.d.ts +2 -2
  268. package/dist/C_Time2.cjs +1 -0
  269. package/dist/C_Time2.js +1 -2
  270. package/dist/C_Timeline.cjs +1 -1
  271. package/dist/C_Timeline.css +44 -46
  272. package/dist/C_Timeline.d.cts +1 -1
  273. package/dist/C_Timeline.js +1 -1
  274. package/dist/C_Timeline2.cjs +1 -0
  275. package/dist/C_Timeline2.js +1 -2
  276. package/dist/C_Transfer.cjs +1 -1
  277. package/dist/C_Transfer.css +21 -9
  278. package/dist/C_Transfer.d.cts +1 -1
  279. package/dist/C_Transfer.js +1 -1
  280. package/dist/C_Transfer2.cjs +1 -0
  281. package/dist/C_Transfer2.js +1 -2
  282. package/dist/C_Tree.cjs +1 -1
  283. package/dist/C_Tree.css +0 -2
  284. package/dist/C_Tree.d.cts +1 -1
  285. package/dist/C_Tree.js +1 -1
  286. package/dist/C_Tree2.cjs +1 -0
  287. package/dist/C_Tree2.js +1 -2
  288. package/dist/C_Upload.cjs +1 -1
  289. package/dist/C_Upload.css +17 -17
  290. package/dist/C_Upload.d.cts +1 -1
  291. package/dist/C_Upload.js +1 -1
  292. package/dist/C_Upload2.cjs +1 -0
  293. package/dist/C_Upload2.js +1 -25
  294. package/dist/C_VideoPlayer.cjs +1 -1
  295. package/dist/C_VideoPlayer.css +35 -24
  296. package/dist/C_VideoPlayer.d.cts +2 -2
  297. package/dist/C_VideoPlayer.d.ts +2 -2
  298. package/dist/C_VideoPlayer.js +1 -1
  299. package/dist/C_VideoPlayer2.cjs +3 -0
  300. package/dist/C_VideoPlayer2.js +3 -4
  301. package/dist/C_VtableGantt.cjs +1 -1
  302. package/dist/C_VtableGantt.css +15 -7
  303. package/dist/C_VtableGantt.d.cts +1 -1
  304. package/dist/C_VtableGantt.d.ts +1 -1
  305. package/dist/C_VtableGantt.js +1 -1
  306. package/dist/C_VtableGantt2.cjs +1 -0
  307. package/dist/C_VtableGantt2.js +1 -2
  308. package/dist/C_WaterFall.cjs +1 -1
  309. package/dist/C_WaterFall.css +15 -17
  310. package/dist/C_WaterFall.d.cts +1 -1
  311. package/dist/C_WaterFall2.cjs +1 -0
  312. package/dist/C_WaterFall2.js +1 -2
  313. package/dist/C_WorkFlow.cjs +1 -1
  314. package/dist/C_WorkFlow.css +257 -197
  315. package/dist/C_WorkFlow.d.cts +1 -1
  316. package/dist/C_WorkFlow.js +1 -1
  317. package/dist/C_WorkFlow2.cjs +1 -0
  318. package/dist/C_WorkFlow2.js +1 -2
  319. package/dist/city.cjs +1 -0
  320. package/dist/city.js +1 -2
  321. package/dist/config.cjs +1 -0
  322. package/dist/config.d.cts +33 -0
  323. package/dist/config.d.ts +33 -0
  324. package/dist/config.js +1 -0
  325. package/dist/constants.d.cts +272 -0
  326. package/dist/constants.d.ts +6 -7
  327. package/dist/constants2.d.cts +177 -0
  328. package/dist/constants2.d.ts +5 -6
  329. package/dist/constants3.d.cts +479 -0
  330. package/dist/constants3.d.ts +17 -13
  331. package/dist/constants4.d.cts +420 -0
  332. package/dist/constants4.d.ts +30 -40
  333. package/dist/constants5.d.cts +491 -0
  334. package/dist/constants5.d.ts +22 -6
  335. package/dist/data.cjs +1 -0
  336. package/dist/data.d.cts +67 -0
  337. package/dist/data.d.ts +13 -13
  338. package/dist/data.js +1 -0
  339. package/dist/export-helper.cjs +1 -0
  340. package/dist/helpers.cjs +1 -0
  341. package/dist/helpers.js +1 -0
  342. package/dist/html.cjs +1 -0
  343. package/dist/html.js +1 -0
  344. package/dist/images/marker-icon-2x.png +0 -0
  345. package/dist/images/marker-icon.png +0 -0
  346. package/dist/images/marker-shadow.png +0 -0
  347. package/dist/index.cjs +1 -2
  348. package/dist/index.d.cts +60 -99
  349. package/dist/index.d.ts +41 -83
  350. package/dist/index.js +1 -2
  351. package/dist/index.vue.d.cts +79 -0
  352. package/dist/index.vue.d.ts +3 -4
  353. package/dist/index10.vue.d.cts +47 -0
  354. package/dist/index10.vue.d.ts +80 -40
  355. package/dist/index11.vue.d.cts +88 -0
  356. package/dist/index11.vue.d.ts +68 -78
  357. package/dist/index12.vue.d.cts +79 -0
  358. package/dist/index12.vue.d.ts +49 -45
  359. package/dist/index13.vue.d.cts +64 -0
  360. package/dist/index13.vue.d.ts +99 -34
  361. package/dist/index14.vue.d.cts +106 -0
  362. package/dist/index14.vue.d.ts +82 -99
  363. package/dist/index15.vue.d.cts +91 -0
  364. package/dist/index15.vue.d.ts +25 -83
  365. package/dist/index16.vue.d.cts +34 -0
  366. package/dist/index16.vue.d.ts +113 -24
  367. package/dist/index17.vue.d.cts +124 -0
  368. package/dist/index17.vue.d.ts +76 -110
  369. package/dist/index18.vue.d.cts +83 -0
  370. package/dist/index18.vue.d.ts +67 -73
  371. package/dist/index19.vue.d.cts +101 -0
  372. package/dist/index19.vue.d.ts +93 -59
  373. package/dist/index2.vue.d.cts +82 -0
  374. package/dist/index2.vue.d.ts +1 -2
  375. package/dist/index20.vue.d.cts +54 -0
  376. package/dist/index20.vue.d.ts +40 -88
  377. package/dist/index21.vue.d.cts +103 -0
  378. package/dist/index21.vue.d.ts +89 -41
  379. package/dist/index22.vue.d.cts +45 -0
  380. package/dist/index22.vue.d.ts +37 -96
  381. package/dist/index23.vue.d.cts +19 -0
  382. package/dist/index23.vue.d.ts +8 -35
  383. package/dist/{index28.vue.d.ts → index24.vue.d.cts} +5 -6
  384. package/dist/index24.vue.d.ts +650 -86
  385. package/dist/index25.vue.d.cts +96 -0
  386. package/dist/index25.vue.d.ts +86 -10
  387. package/dist/index26.vue.d.cts +111 -0
  388. package/dist/index26.vue.d.ts +3 -4
  389. package/dist/index27.vue.d.cts +80 -0
  390. package/dist/index27.vue.d.ts +3 -4
  391. package/dist/index3.vue.d.cts +87 -0
  392. package/dist/index3.vue.d.ts +2 -3
  393. package/dist/index4.vue.d.cts +37 -0
  394. package/dist/index4.vue.d.ts +5 -6
  395. package/dist/index5.vue.d.cts +133 -0
  396. package/dist/index5.vue.d.ts +2 -3
  397. package/dist/index6.vue.d.cts +29 -0
  398. package/dist/index6.vue.d.ts +25 -38
  399. package/dist/index7.vue.d.cts +32 -0
  400. package/dist/index7.vue.d.ts +117 -23
  401. package/dist/index8.vue.d.cts +127 -0
  402. package/dist/index8.vue.d.ts +17 -111
  403. package/dist/index9.vue.d.cts +34 -0
  404. package/dist/index9.vue.d.ts +38 -26
  405. package/dist/{menuAdapter.d.ts → public.d.ts} +2 -3
  406. package/dist/resolver.cjs +1 -2
  407. package/dist/resolver.d.cts +6 -4
  408. package/dist/resolver.d.ts +6 -4
  409. package/dist/resolver.js +1 -2
  410. package/dist/storage.cjs +1 -0
  411. package/dist/storage.js +1 -2
  412. package/dist/style.css +9864 -7702
  413. package/dist/types.d.cts +107 -0
  414. package/dist/types.d.ts +58 -0
  415. package/dist/types2.d.cts +58 -0
  416. package/dist/useCalendarEvents.d.cts +150 -0
  417. package/dist/useCalendarEvents.d.ts +3 -4
  418. package/dist/useCollapsePanel.d.cts +133 -0
  419. package/dist/useCollapsePanel.d.ts +1 -2
  420. package/dist/useCropperCore.d.cts +104 -0
  421. package/dist/useCropperCore.d.ts +12 -10
  422. package/dist/useDraggableLayout.d.cts +196 -0
  423. package/dist/useDraggableLayout.d.ts +18 -16
  424. package/dist/useDynamicFormState.d.cts +749 -0
  425. package/dist/useDynamicFormState.d.ts +234 -112
  426. package/dist/useEdgeInteraction.d.cts +324 -0
  427. package/dist/useEdgeInteraction.d.ts +6 -7
  428. package/dist/useFullscreen.d.cts +165 -0
  429. package/dist/useFullscreen.d.ts +1 -2
  430. package/dist/useGlobalSearch.d.cts +110 -0
  431. package/dist/useGlobalSearch.d.ts +17 -9
  432. package/dist/useInfiniteScroll.d.cts +177 -0
  433. package/dist/useInfiniteScroll.d.ts +11 -3
  434. package/dist/useQRCode.d.cts +89 -0
  435. package/dist/useQRCode.d.ts +7 -5
  436. package/dist/useSearchState.d.cts +871 -0
  437. package/dist/useSearchState.d.ts +828 -28
  438. package/dist/useSignatureHistory.d.cts +197 -0
  439. package/dist/useSignatureHistory.d.ts +9 -4
  440. package/dist/useSplitResize.d.cts +157 -0
  441. package/dist/useSplitResize.d.ts +3 -4
  442. package/dist/useTableQuery.cjs +3 -0
  443. package/dist/{useModalEdit.d.ts → useTableQuery.d.cts} +624 -211
  444. package/dist/useTableQuery.d.ts +1721 -0
  445. package/dist/useTableQuery.js +3 -0
  446. package/dist/useTimeSelection.d.cts +116 -0
  447. package/dist/useTimeSelection.d.ts +19 -8
  448. package/dist/useTreeOperations.d.cts +185 -0
  449. package/dist/useTreeOperations.d.ts +14 -12
  450. package/dist/useWorkflowValidation.d.cts +1051 -0
  451. package/dist/useWorkflowValidation.d.ts +66 -67
  452. package/dist/verification.d.cts +58 -0
  453. package/dist/verification.d.ts +58 -0
  454. package/package.json +101 -69
  455. package/dist/C_ActionBar-BAcfOfRw.css.map +0 -1
  456. package/dist/C_ActionBar-DG2HW7t5.css.map +0 -1
  457. package/dist/C_ActionBar.js.map +0 -1
  458. package/dist/C_ActionBar2.js.map +0 -1
  459. package/dist/C_AntV-D_jTK8oZ.css.map +0 -1
  460. package/dist/C_AntV-DanTAq22.css.map +0 -1
  461. package/dist/C_AntV.js.map +0 -1
  462. package/dist/C_AntV2.js.map +0 -1
  463. package/dist/C_AudioPlayer-BnYIJXPD.css.map +0 -1
  464. package/dist/C_AudioPlayer-ldTy9Y34.css.map +0 -1
  465. package/dist/C_AudioPlayer.js.map +0 -1
  466. package/dist/C_AudioPlayer2.js.map +0 -1
  467. package/dist/C_AvatarGroup-B9d-GJ9c.css.map +0 -1
  468. package/dist/C_AvatarGroup-SIzxuuZr.css.map +0 -1
  469. package/dist/C_AvatarGroup.js.map +0 -1
  470. package/dist/C_AvatarGroup2.js.map +0 -1
  471. package/dist/C_Barcode-CAU2mFcx.css.map +0 -1
  472. package/dist/C_Barcode-D2oJaEg3.css.map +0 -1
  473. package/dist/C_Barcode.js.map +0 -1
  474. package/dist/C_Barcode2.js.map +0 -1
  475. package/dist/C_Breadcrumb-BiH0d9AI.css.map +0 -1
  476. package/dist/C_Breadcrumb-Bqqrl8nX.css.map +0 -1
  477. package/dist/C_Breadcrumb.js.map +0 -1
  478. package/dist/C_Breadcrumb2.js.map +0 -1
  479. package/dist/C_Captcha-B3yrtG7t.css.map +0 -1
  480. package/dist/C_Captcha-D4hDdWDu.css.map +0 -1
  481. package/dist/C_Captcha.js.map +0 -1
  482. package/dist/C_Captcha2.js.map +0 -1
  483. package/dist/C_Cascade-CmCrLVft.css.map +0 -1
  484. package/dist/C_Cascade-U6A5AJJb.css.map +0 -1
  485. package/dist/C_Cascade.js.map +0 -1
  486. package/dist/C_Cascade2.js.map +0 -1
  487. package/dist/C_Chat-CF1SU7mc.css.map +0 -1
  488. package/dist/C_Chat-DeUv6uuI.css.map +0 -1
  489. package/dist/C_Chat.js.map +0 -1
  490. package/dist/C_Chat2.js.map +0 -1
  491. package/dist/C_City-DdkX6u64.css.map +0 -1
  492. package/dist/C_City-iP-dIvui.css.map +0 -1
  493. package/dist/C_City.js.map +0 -1
  494. package/dist/C_City2.js.map +0 -1
  495. package/dist/C_Code-BWmJMNS7.css.map +0 -1
  496. package/dist/C_Code-k14vjgVl.css.map +0 -1
  497. package/dist/C_Code.js.map +0 -1
  498. package/dist/C_Code2.js.map +0 -1
  499. package/dist/C_CollapsePanel-BSKcWSmY.css.map +0 -1
  500. package/dist/C_CollapsePanel-DRvRq8tB.css.map +0 -1
  501. package/dist/C_CollapsePanel.js.map +0 -1
  502. package/dist/C_CollapsePanel2.js.map +0 -1
  503. package/dist/C_ContextMenu-Bn_uhJSo.css.map +0 -1
  504. package/dist/C_ContextMenu-C9iuxG2n.css.map +0 -1
  505. package/dist/C_ContextMenu.js.map +0 -1
  506. package/dist/C_ContextMenu2.js.map +0 -1
  507. package/dist/C_Cron-BIQ2By9v.css.map +0 -1
  508. package/dist/C_Cron-BNSAGD6A.css.map +0 -1
  509. package/dist/C_Cron.js.map +0 -1
  510. package/dist/C_Cron2.js.map +0 -1
  511. package/dist/C_Date.js.map +0 -1
  512. package/dist/C_Date2.js.map +0 -1
  513. package/dist/C_Draggable-BDAbk4s5.css.map +0 -1
  514. package/dist/C_Draggable-UhfDLXop.css.map +0 -1
  515. package/dist/C_Draggable.js.map +0 -1
  516. package/dist/C_Draggable2.js.map +0 -1
  517. package/dist/C_Editor-CZOaChru.css.map +0 -1
  518. package/dist/C_Editor-kJAQq5z6.css.map +0 -1
  519. package/dist/C_Editor.js.map +0 -1
  520. package/dist/C_Editor2.js.map +0 -1
  521. package/dist/C_FilePreview-Bs_omgJS.css.map +0 -1
  522. package/dist/C_FilePreview-DbwoyF2j.css.map +0 -1
  523. package/dist/C_FilePreview.js.map +0 -1
  524. package/dist/C_FilePreview2.js.map +0 -1
  525. package/dist/C_Form-B_2ql62V.css.map +0 -1
  526. package/dist/C_Form-CX-7xsz3.css.map +0 -1
  527. package/dist/C_Form.js.map +0 -1
  528. package/dist/C_Form2.js.map +0 -1
  529. package/dist/C_FormSearch-C3F8peAY.css.map +0 -1
  530. package/dist/C_FormSearch-qW56bJPo.css.map +0 -1
  531. package/dist/C_FormSearch.js.map +0 -1
  532. package/dist/C_FormSearch2.js.map +0 -1
  533. package/dist/C_FormulaEditor-ChOvDbsZ.css.map +0 -1
  534. package/dist/C_FormulaEditor-mfiIUDY4.css.map +0 -1
  535. package/dist/C_FormulaEditor.js.map +0 -1
  536. package/dist/C_FormulaEditor2.js.map +0 -1
  537. package/dist/C_FullCalendar-C2nsqrgS.css.map +0 -1
  538. package/dist/C_FullCalendar-DdFtXVhy.css.map +0 -1
  539. package/dist/C_FullCalendar.js.map +0 -1
  540. package/dist/C_FullCalendar2.js.map +0 -1
  541. package/dist/C_GlobalSearch-Dq4Wo01K.css.map +0 -1
  542. package/dist/C_GlobalSearch-RB7J43gu.css.map +0 -1
  543. package/dist/C_GlobalSearch.js.map +0 -1
  544. package/dist/C_GlobalSearch2.js.map +0 -1
  545. package/dist/C_Guide.js.map +0 -1
  546. package/dist/C_Guide2.js.map +0 -1
  547. package/dist/C_Icon.js.map +0 -1
  548. package/dist/C_Icon2.js.map +0 -1
  549. package/dist/C_ImageCropper-CdTX2nxU.css.map +0 -1
  550. package/dist/C_ImageCropper-ilOqPklJ.css.map +0 -1
  551. package/dist/C_ImageCropper.js.map +0 -1
  552. package/dist/C_ImageCropper2.js.map +0 -1
  553. package/dist/C_Language.js.map +0 -1
  554. package/dist/C_Language2.js.map +0 -1
  555. package/dist/C_Login-B3qYkLrN.css.map +0 -1
  556. package/dist/C_Login-xMI1_ojE.css.map +0 -1
  557. package/dist/C_Login.js.map +0 -1
  558. package/dist/C_Login2.js.map +0 -1
  559. package/dist/C_Map-CWMMN58_.css.map +0 -1
  560. package/dist/C_Map-xSR2H-9o.css.map +0 -1
  561. package/dist/C_Map.js.map +0 -1
  562. package/dist/C_Map2.js.map +0 -1
  563. package/dist/C_Markdown-C7lTVJ1S.css.map +0 -1
  564. package/dist/C_Markdown-CZDm_baQ.css.map +0 -1
  565. package/dist/C_Markdown.js.map +0 -1
  566. package/dist/C_Markdown2.js.map +0 -1
  567. package/dist/C_Menu.js.map +0 -1
  568. package/dist/C_Menu2.js.map +0 -1
  569. package/dist/C_NotificationCenter-D7GGGWg7.css.map +0 -1
  570. package/dist/C_NotificationCenter-SSmeHA45.css.map +0 -1
  571. package/dist/C_NotificationCenter.js.map +0 -1
  572. package/dist/C_NotificationCenter2.js.map +0 -1
  573. package/dist/C_OrgChart-ChZu346B.css.map +0 -1
  574. package/dist/C_OrgChart-DqBufOv5.css.map +0 -1
  575. package/dist/C_OrgChart.js.map +0 -1
  576. package/dist/C_OrgChart2.js.map +0 -1
  577. package/dist/C_Progress.js.map +0 -1
  578. package/dist/C_Progress2.js.map +0 -1
  579. package/dist/C_QRCode-B_1lHUdx.css.map +0 -1
  580. package/dist/C_QRCode-CuQRYu0s.css.map +0 -1
  581. package/dist/C_QRCode.js.map +0 -1
  582. package/dist/C_QRCode2.js.map +0 -1
  583. package/dist/C_Signature-Bp-RBpAl.css.map +0 -1
  584. package/dist/C_Signature-Cb2VW1ok.css.map +0 -1
  585. package/dist/C_Signature.js.map +0 -1
  586. package/dist/C_Signature2.js.map +0 -1
  587. package/dist/C_Skeleton-BNPbaut7.css.map +0 -1
  588. package/dist/C_Skeleton-Djsjw8XY.css.map +0 -1
  589. package/dist/C_Skeleton.js.map +0 -1
  590. package/dist/C_Skeleton2.js.map +0 -1
  591. package/dist/C_SplitPane-CgGWYsRE.css.map +0 -1
  592. package/dist/C_SplitPane-DGf6WEeR.css.map +0 -1
  593. package/dist/C_SplitPane.js.map +0 -1
  594. package/dist/C_SplitPane2.js.map +0 -1
  595. package/dist/C_Steps-27Exh7PM.css.map +0 -1
  596. package/dist/C_Steps-DU9ZsFrs.css.map +0 -1
  597. package/dist/C_Steps.js.map +0 -1
  598. package/dist/C_Steps2.js.map +0 -1
  599. package/dist/C_Table--kbQaaBv.css.map +0 -1
  600. package/dist/C_Table-D631kdXC.css.map +0 -1
  601. package/dist/C_Table.js.map +0 -1
  602. package/dist/C_Table2.js +0 -4
  603. package/dist/C_Table2.js.map +0 -1
  604. package/dist/C_TagsView-BN8vMRsY.css.map +0 -1
  605. package/dist/C_TagsView-s1dnSJAV.css.map +0 -1
  606. package/dist/C_TagsView.js.map +0 -1
  607. package/dist/C_TagsView2.js.map +0 -1
  608. package/dist/C_Theme.js.map +0 -1
  609. package/dist/C_Theme2.js.map +0 -1
  610. package/dist/C_Time-BQ9PGy8B.css.map +0 -1
  611. package/dist/C_Time-CO73krC6.css.map +0 -1
  612. package/dist/C_Time.js.map +0 -1
  613. package/dist/C_Time2.js.map +0 -1
  614. package/dist/C_Timeline-4rk0Dzgn.css.map +0 -1
  615. package/dist/C_Timeline-DdESmqwL.css.map +0 -1
  616. package/dist/C_Timeline.js.map +0 -1
  617. package/dist/C_Timeline2.js.map +0 -1
  618. package/dist/C_Transfer-B-vjvhjI.css.map +0 -1
  619. package/dist/C_Transfer-EzdHzZNv.css.map +0 -1
  620. package/dist/C_Transfer.js.map +0 -1
  621. package/dist/C_Transfer2.js.map +0 -1
  622. package/dist/C_Tree-CsXgGfhn.css.map +0 -1
  623. package/dist/C_Tree-P7eRpnOa.css.map +0 -1
  624. package/dist/C_Tree.js.map +0 -1
  625. package/dist/C_Tree2.js.map +0 -1
  626. package/dist/C_Upload-CHjiVVh7.css.map +0 -1
  627. package/dist/C_Upload-DE3OLsZD.css.map +0 -1
  628. package/dist/C_Upload.js.map +0 -1
  629. package/dist/C_Upload2.js.map +0 -1
  630. package/dist/C_VideoPlayer-CnaNOFtW.css.map +0 -1
  631. package/dist/C_VideoPlayer-cnP88zNV.css.map +0 -1
  632. package/dist/C_VideoPlayer.js.map +0 -1
  633. package/dist/C_VideoPlayer2.js.map +0 -1
  634. package/dist/C_VtableGantt-CZlJgvpC.css.map +0 -1
  635. package/dist/C_VtableGantt-DKfQkql0.css.map +0 -1
  636. package/dist/C_VtableGantt.js.map +0 -1
  637. package/dist/C_VtableGantt2.js.map +0 -1
  638. package/dist/C_WaterFall-BJ_39ext.css.map +0 -1
  639. package/dist/C_WaterFall-cYc1vntE.css.map +0 -1
  640. package/dist/C_WaterFall.js.map +0 -1
  641. package/dist/C_WaterFall2.js.map +0 -1
  642. package/dist/C_WorkFlow-BFzRGGhJ.css.map +0 -1
  643. package/dist/C_WorkFlow-DSyCOvRp.css.map +0 -1
  644. package/dist/C_WorkFlow.js.map +0 -1
  645. package/dist/C_WorkFlow2.js.map +0 -1
  646. package/dist/_shared.cjs +0 -1
  647. package/dist/_shared.d.cts +0 -2
  648. package/dist/_shared.d.ts +0 -2
  649. package/dist/_shared.js +0 -1
  650. package/dist/city.js.map +0 -1
  651. package/dist/index.cjs.map +0 -1
  652. package/dist/index.js.map +0 -1
  653. package/dist/menuAdapter.js +0 -2
  654. package/dist/menuAdapter.js.map +0 -1
  655. package/dist/resolver.cjs.map +0 -1
  656. package/dist/resolver.js.map +0 -1
  657. package/dist/storage.js.map +0 -1
  658. /package/dist/{chunk.js → chunk.cjs} +0 -0
@@ -4,15 +4,13 @@
4
4
  .c-avatar-group[data-v-e9981c87] {
5
5
  display: inline-flex;
6
6
  align-items: center;
7
- /* ======================== 单个头像 ======================== */
8
- /* ---- 头像图片 ---- */
9
- /* ---- 首字母 fallback ---- */
10
- /* ---- 状态指示点 ---- */
11
- /* ======================== 溢出 +N ======================== */
12
7
  }
13
8
  .c-avatar-group.is-rtl[data-v-e9981c87] {
14
9
  flex-direction: row-reverse;
15
10
  }
11
+ .c-avatar-group[data-v-e9981c87] {
12
+ /* ======================== 单个头像 ======================== */
13
+ }
16
14
  .c-avatar-group__item[data-v-e9981c87] {
17
15
  position: relative;
18
16
  flex-shrink: 0;
@@ -39,6 +37,9 @@
39
37
  .c-avatar-group__item[data-v-e9981c87]:hover {
40
38
  z-index: 10;
41
39
  }
40
+ .c-avatar-group[data-v-e9981c87] {
41
+ /* ---- 头像图片 ---- */
42
+ }
42
43
  .c-avatar-group__img[data-v-e9981c87] {
43
44
  display: block;
44
45
  width: 100%;
@@ -51,6 +52,9 @@
51
52
  .is-square .c-avatar-group__img[data-v-e9981c87] {
52
53
  border-radius: 4px;
53
54
  }
55
+ .c-avatar-group[data-v-e9981c87] {
56
+ /* ---- 首字母 fallback ---- */
57
+ }
54
58
  .c-avatar-group__initials[data-v-e9981c87] {
55
59
  display: flex;
56
60
  align-items: center;
@@ -67,6 +71,9 @@
67
71
  .is-square .c-avatar-group__initials[data-v-e9981c87] {
68
72
  border-radius: 4px;
69
73
  }
74
+ .c-avatar-group[data-v-e9981c87] {
75
+ /* ---- 状态指示点 ---- */
76
+ }
70
77
  .c-avatar-group__status[data-v-e9981c87] {
71
78
  position: absolute;
72
79
  bottom: 0;
@@ -75,6 +82,9 @@
75
82
  border: 2px solid var(--card-color);
76
83
  z-index: 2;
77
84
  }
85
+ .c-avatar-group[data-v-e9981c87] {
86
+ /* ======================== 溢出 +N ======================== */
87
+ }
78
88
  .c-avatar-group__overflow[data-v-e9981c87] {
79
89
  position: relative;
80
90
  flex-shrink: 0;
@@ -103,5 +113,3 @@
103
113
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
104
114
  background: color-mix(in srgb, var(--primary-color) 20%, var(--card-color));
105
115
  }
106
-
107
- /*# sourceMappingURL=C_AvatarGroup-B9d-GJ9c.css.map*/
@@ -1,2 +1,2 @@
1
- import { a as STATUS_COLOR_MAP, i as DEFAULT_AVATAR_GROUP_PROPS, n as AvatarGroupProps, o as getInitials, r as AvatarItem, s as nameToColor, t as _default } from "./index3.vue.js";
1
+ import { a as STATUS_COLOR_MAP, i as DEFAULT_AVATAR_GROUP_PROPS, n as AvatarGroupProps, o as getInitials, r as AvatarItem, s as nameToColor, t as _default } from "./index3.vue.cjs";
2
2
  export { STATUS_COLOR_MAP as AVATAR_STATUS_COLOR_MAP, type AvatarGroupProps, type AvatarItem, _default as C_AvatarGroup, DEFAULT_AVATAR_GROUP_PROPS, getInitials, nameToColor };
@@ -0,0 +1 @@
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r={max:5,size:40,overlap:-10,shape:`circle`,showStatus:!0,showTooltip:!0,clickable:!1,overflowClickable:!0,direction:`ltr`},i={online:`#18a058`,offline:`#909399`,busy:`#e53e3e`,away:`#f0a020`};function a(e){if(!e)return`?`;let t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():/[\u4E00-\u9FFF]/.test(e)?e.slice(-1):e.slice(0,2).toUpperCase()}function o(e){let t=[`#6366f1`,`#8b5cf6`,`#a855f7`,`#d946ef`,`#ec4899`,`#f43f5e`,`#ef4444`,`#f97316`,`#eab308`,`#84cc16`,`#22c55e`,`#14b8a6`,`#06b6d4`,`#0ea5e9`,`#3b82f6`,`#6d28d9`],n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+(n*31|0);return t[Math.abs(n)%t.length]}const s=[`onClick`],c=[`src`,`alt`],l={style:{"max-width":`200px`}},u=(0,t.defineComponent)({__name:`index`,props:{items:{},max:{default:r.max},size:{default:r.size},overlap:{default:r.overlap},shape:{default:r.shape},showStatus:{type:Boolean,default:r.showStatus},showTooltip:{type:Boolean,default:r.showTooltip},clickable:{type:Boolean,default:r.clickable},overflowClickable:{type:Boolean,default:r.overflowClickable},direction:{default:r.direction}},emits:[`itemClick`,`overflowClick`],setup(e,{emit:u}){let d=e,f=u,p=(0,t.computed)(()=>({...r,...d})),m=(0,t.computed)(()=>{let e=p.value.max;return d.items.length>e?d.items.slice(0,e):d.items}),h=(0,t.computed)(()=>{let e=p.value.max;return d.items.length>e?d.items.slice(e):[]}),g=(0,t.computed)(()=>h.value.length),_=(0,t.computed)(()=>`${Math.round(p.value.size*.38)}px`);function v(e){let t=p.value.size,n=p.value.overlap;return{width:`${t}px`,height:`${t}px`,marginLeft:e===0?`0`:`${n}px`}}let y=(0,t.computed)(()=>{let e=p.value.size,t=p.value.overlap;return{width:`${e}px`,height:`${e}px`,marginLeft:`${t}px`,fontSize:`${Math.round(e*.32)}px`}});function b(e){let t=Math.max(8,Math.round(p.value.size*.24));return{width:`${t}px`,height:`${t}px`,backgroundColor:i[e]??i.offline}}return(e,r)=>{let i=n.NTooltip;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`c-avatar-group`,{"is-rtl":p.value.direction===`rtl`}])},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(m.value,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:e.id,disabled:!p.value.showTooltip,placement:`top`},{trigger:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`c-avatar-group__item`,[`is-${p.value.shape}`,{"is-clickable":p.value.clickable}]]),style:(0,t.normalizeStyle)(v(n)),onClick:t=>p.value.clickable&&f(`itemClick`,e)},[e.src?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:e.src,alt:e.name,class:`c-avatar-group__img`},null,8,c)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:`c-avatar-group__initials`,style:(0,t.normalizeStyle)({background:(0,t.unref)(o)(e.name),fontSize:_.value})},(0,t.toDisplayString)((0,t.unref)(a)(e.name)),5)),p.value.showStatus&&e.status?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:2,class:`c-avatar-group__status`,style:(0,t.normalizeStyle)(b(e.status))},null,4)):(0,t.createCommentVNode)(`v-if`,!0)],14,s)]),default:(0,t.withCtx)(()=>[(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.tooltip??e.name),1)]),_:2},1032,[`disabled`]))),128)),(0,t.createCommentVNode)(` 溢出 +N `),g.value>0?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,placement:`top`},{trigger:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`c-avatar-group__overflow`,[`is-${p.value.shape}`,{"is-clickable":p.value.overflowClickable}]]),style:(0,t.normalizeStyle)(y.value),onClick:r[0]||=e=>p.value.overflowClickable&&f(`overflowClick`,h.value)},` +`+(0,t.toDisplayString)(g.value),7)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,l,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,style:{"line-height":`1.6`}},(0,t.toDisplayString)(e.name),1))),128))])]),_:1})):(0,t.createCommentVNode)(`v-if`,!0)],2)}}});var d=e.t(u,[[`__scopeId`,`data-v-e9981c87`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
@@ -1,2 +1 @@
1
- import{t as e}from"./export-helper.js";import{NTooltip as t}from"naive-ui";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,defineComponent as l,normalizeClass as u,normalizeStyle as d,openBlock as f,renderList as p,resolveComponent as m,toDisplayString as h,unref as g,withCtx as _}from"vue";const v={max:5,size:40,overlap:-10,shape:`circle`,showStatus:!0,showTooltip:!0,clickable:!1,overflowClickable:!0,direction:`ltr`},y={online:`#18a058`,offline:`#909399`,busy:`#e53e3e`,away:`#f0a020`};function b(e){if(!e)return`?`;let t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():/[\u4E00-\u9FFF]/.test(e)?e.slice(-1):e.slice(0,2).toUpperCase()}function x(e){let t=[`#6366f1`,`#8b5cf6`,`#a855f7`,`#d946ef`,`#ec4899`,`#f43f5e`,`#ef4444`,`#f97316`,`#eab308`,`#84cc16`,`#22c55e`,`#14b8a6`,`#06b6d4`,`#0ea5e9`,`#3b82f6`,`#6d28d9`],n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+(n*31|0);return t[Math.abs(n)%t.length]}const S=[`onClick`],C=[`src`,`alt`],w={style:{"max-width":`200px`}};var T=e(l({__name:`index`,props:{items:{},max:{default:v.max},size:{default:v.size},overlap:{default:v.overlap},shape:{default:v.shape},showStatus:{type:Boolean,default:v.showStatus},showTooltip:{type:Boolean,default:v.showTooltip},clickable:{type:Boolean,default:v.clickable},overflowClickable:{type:Boolean,default:v.overflowClickable},direction:{default:v.direction}},emits:[`itemClick`,`overflowClick`],setup(e,{emit:l}){let m=e,T=l,E=r(()=>({...v,...m})),D=r(()=>{let e=E.value.max;return m.items.length>e?m.items.slice(0,e):m.items}),O=r(()=>{let e=E.value.max;return m.items.length>e?m.items.slice(e):[]}),k=r(()=>O.value.length),A=r(()=>`${Math.round(E.value.size*.38)}px`);function j(e){let t=E.value.size,n=E.value.overlap;return{width:`${t}px`,height:`${t}px`,marginLeft:e===0?`0`:`${n}px`}}let M=r(()=>{let e=E.value.size,t=E.value.overlap;return{width:`${e}px`,height:`${e}px`,marginLeft:`${t}px`,fontSize:`${Math.round(e*.32)}px`}});function N(e){let t=Math.max(8,Math.round(E.value.size*.24));return{width:`${t}px`,height:`${t}px`,backgroundColor:y[e]??y.offline}}return(e,r)=>{let l=t;return f(),o(`div`,{class:u([`c-avatar-group`,{"is-rtl":E.value.direction===`rtl`}])},[(f(!0),o(n,null,p(D.value,(e,t)=>(f(),i(l,{key:e.id,disabled:!E.value.showTooltip,placement:`top`},{trigger:_(()=>[s(`div`,{class:u([`c-avatar-group__item`,[`is-${E.value.shape}`,{"is-clickable":E.value.clickable}]]),style:d(j(t)),onClick:t=>E.value.clickable&&T(`itemClick`,e)},[e.src?(f(),o(`img`,{key:0,src:e.src,alt:e.name,class:`c-avatar-group__img`},null,8,C)):(f(),o(`div`,{key:1,class:`c-avatar-group__initials`,style:d({background:g(x)(e.name),fontSize:A.value})},h(g(b)(e.name)),5)),E.value.showStatus&&e.status?(f(),o(`span`,{key:2,class:`c-avatar-group__status`,style:d(N(e.status))},null,4)):a(`v-if`,!0)],14,S)]),default:_(()=>[c(` `+h(e.tooltip??e.name),1)]),_:2},1032,[`disabled`]))),128)),a(` 溢出 +N `),k.value>0?(f(),i(l,{key:0,placement:`top`},{trigger:_(()=>[s(`div`,{class:u([`c-avatar-group__overflow`,[`is-${E.value.shape}`,{"is-clickable":E.value.overflowClickable}]]),style:d(M.value),onClick:r[0]||=e=>E.value.overflowClickable&&T(`overflowClick`,O.value)},` +`+h(k.value),7)]),default:_(()=>[s(`div`,w,[(f(!0),o(n,null,p(O.value,e=>(f(),o(`div`,{key:e.id,style:{"line-height":`1.6`}},h(e.name),1))),128))])]),_:1})):a(`v-if`,!0)],2)}}}),[[`__scopeId`,`data-v-e9981c87`]]);export{x as a,b as i,v as n,y as r,T as t};
2
- //# sourceMappingURL=C_AvatarGroup2.js.map
1
+ import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as s,defineComponent as c,normalizeClass as l,normalizeStyle as u,openBlock as d,renderList as f,resolveComponent as p,toDisplayString as m,unref as h,withCtx as g}from"vue";import{NTooltip as _}from"naive-ui";const v={max:5,size:40,overlap:-10,shape:`circle`,showStatus:!0,showTooltip:!0,clickable:!1,overflowClickable:!0,direction:`ltr`},y={online:`#18a058`,offline:`#909399`,busy:`#e53e3e`,away:`#f0a020`};function b(e){if(!e)return`?`;let t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():/[\u4E00-\u9FFF]/.test(e)?e.slice(-1):e.slice(0,2).toUpperCase()}function x(e){let t=[`#6366f1`,`#8b5cf6`,`#a855f7`,`#d946ef`,`#ec4899`,`#f43f5e`,`#ef4444`,`#f97316`,`#eab308`,`#84cc16`,`#22c55e`,`#14b8a6`,`#06b6d4`,`#0ea5e9`,`#3b82f6`,`#6d28d9`],n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+(n*31|0);return t[Math.abs(n)%t.length]}const S=[`onClick`],C=[`src`,`alt`],w={style:{"max-width":`200px`}};var T=e(c({__name:`index`,props:{items:{},max:{default:v.max},size:{default:v.size},overlap:{default:v.overlap},shape:{default:v.shape},showStatus:{type:Boolean,default:v.showStatus},showTooltip:{type:Boolean,default:v.showTooltip},clickable:{type:Boolean,default:v.clickable},overflowClickable:{type:Boolean,default:v.overflowClickable},direction:{default:v.direction}},emits:[`itemClick`,`overflowClick`],setup(e,{emit:c}){let p=e,T=c,E=n(()=>({...v,...p})),D=n(()=>{let e=E.value.max;return p.items.length>e?p.items.slice(0,e):p.items}),O=n(()=>{let e=E.value.max;return p.items.length>e?p.items.slice(e):[]}),k=n(()=>O.value.length),A=n(()=>`${Math.round(E.value.size*.38)}px`);function j(e){let t=E.value.size,n=E.value.overlap;return{width:`${t}px`,height:`${t}px`,marginLeft:e===0?`0`:`${n}px`}}let M=n(()=>{let e=E.value.size,t=E.value.overlap;return{width:`${e}px`,height:`${e}px`,marginLeft:`${t}px`,fontSize:`${Math.round(e*.32)}px`}});function N(e){let t=Math.max(8,Math.round(E.value.size*.24));return{width:`${t}px`,height:`${t}px`,backgroundColor:y[e]??y.offline}}return(e,n)=>{let c=_;return d(),a(`div`,{class:l([`c-avatar-group`,{"is-rtl":E.value.direction===`rtl`}])},[(d(!0),a(t,null,f(D.value,(e,t)=>(d(),r(c,{key:e.id,disabled:!E.value.showTooltip,placement:`top`},{trigger:g(()=>[o(`div`,{class:l([`c-avatar-group__item`,[`is-${E.value.shape}`,{"is-clickable":E.value.clickable}]]),style:u(j(t)),onClick:t=>E.value.clickable&&T(`itemClick`,e)},[e.src?(d(),a(`img`,{key:0,src:e.src,alt:e.name,class:`c-avatar-group__img`},null,8,C)):(d(),a(`div`,{key:1,class:`c-avatar-group__initials`,style:u({background:h(x)(e.name),fontSize:A.value})},m(h(b)(e.name)),5)),E.value.showStatus&&e.status?(d(),a(`span`,{key:2,class:`c-avatar-group__status`,style:u(N(e.status))},null,4)):i(`v-if`,!0)],14,S)]),default:g(()=>[s(` `+m(e.tooltip??e.name),1)]),_:2},1032,[`disabled`]))),128)),i(` 溢出 +N `),k.value>0?(d(),r(c,{key:0,placement:`top`},{trigger:g(()=>[o(`div`,{class:l([`c-avatar-group__overflow`,[`is-${E.value.shape}`,{"is-clickable":E.value.overflowClickable}]]),style:u(M.value),onClick:n[0]||=e=>E.value.overflowClickable&&T(`overflowClick`,O.value)},` +`+m(k.value),7)]),default:g(()=>[o(`div`,w,[(d(!0),a(t,null,f(O.value,e=>(d(),a(`div`,{key:e.id,style:{"line-height":`1.6`}},m(e.name),1))),128))])]),_:1})):i(`v-if`,!0)],2)}}}),[[`__scopeId`,`data-v-e9981c87`]]);export{x as a,b as i,v as n,y as r,T as t};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Barcode.js`);exports.C_Barcode=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Barcode2.cjs`);exports.C_Barcode=e.t;
@@ -35,5 +35,3 @@
35
35
  word-break: break-all;
36
36
  max-width: 100%;
37
37
  }
38
-
39
- /*# sourceMappingURL=C_Barcode-CAU2mFcx.css.map*/
@@ -1,2 +1,2 @@
1
- import { t as _default } from "./index4.vue.js";
1
+ import { t as _default } from "./index4.vue.cjs";
2
2
  export { _default as C_Barcode };
@@ -0,0 +1 @@
1
+ const e=require(`./chunk.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`@chenfengyuan/vue-barcode`);r=e.t(r);const i={class:`c-barcode`},a={key:0,class:`barcode-label`},o=(0,n.defineComponent)({name:`C_Barcode`,__name:`index`,props:{value:{},format:{default:`CODE128`},width:{default:2},height:{default:80},showText:{type:Boolean,default:!0},fontSize:{default:20},textPosition:{default:`bottom`},lineColor:{default:`#000000`},background:{default:`#FFFFFF`},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{emit:t}){let o=e,s=t,c=(0,n.computed)(()=>({value:o.value,format:o.format,width:o.width,height:o.height,displayValue:o.showText,fontSize:o.fontSize,textPosition:o.textPosition,lineColor:o.lineColor,background:o.background})),l=e=>{console.error(`条形码生成失败:`,e),s(`error`,e)};return(t,o)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`barcode-wrapper`,{"with-border":e.showBorder}])},[(0,n.createVNode)((0,n.unref)(r.default),(0,n.mergeProps)(c.value,{onError:l}),null,16)],2),e.showLabel&&e.label?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,(0,n.toDisplayString)(e.label),1)):(0,n.createCommentVNode)(`v-if`,!0)]))}});var s=t.t(o,[[`__scopeId`,`data-v-a8846f89`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
@@ -1,2 +1 @@
1
- import{t as e}from"./export-helper.js";import{computed as t,createCommentVNode as n,createElementBlock as r,createElementVNode as i,createVNode as a,defineComponent as o,mergeProps as s,normalizeClass as c,openBlock as l,toDisplayString as u,unref as d}from"vue";import f from"@chenfengyuan/vue-barcode";const p={class:`c-barcode`},m={key:0,class:`barcode-label`};var h=e(o({name:`C_Barcode`,__name:`index`,props:{value:{},format:{default:`CODE128`},width:{default:2},height:{default:80},showText:{type:Boolean,default:!0},fontSize:{default:20},textPosition:{default:`bottom`},lineColor:{default:`#000000`},background:{default:`#FFFFFF`},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{emit:o}){let h=e,g=o,_=t(()=>({value:h.value,format:h.format,width:h.width,height:h.height,displayValue:h.showText,fontSize:h.fontSize,textPosition:h.textPosition,lineColor:h.lineColor,background:h.background})),v=e=>{console.error(`条形码生成失败:`,e),g(`error`,e)};return(e,t)=>(l(),r(`div`,p,[i(`div`,{class:c([`barcode-wrapper`,{"with-border":e.showBorder}])},[a(d(f),s(_.value,{onError:v}),null,16)],2),e.showLabel&&e.label?(l(),r(`div`,m,u(e.label),1)):n(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a8846f89`]]);export{h as t};
2
- //# sourceMappingURL=C_Barcode2.js.map
1
+ import{t as e}from"./export-helper.js";import{computed as t,createCommentVNode as n,createElementBlock as r,createElementVNode as i,createVNode as a,defineComponent as o,mergeProps as s,normalizeClass as c,openBlock as l,toDisplayString as u,unref as d}from"vue";import f from"@chenfengyuan/vue-barcode";const p={class:`c-barcode`},m={key:0,class:`barcode-label`};var h=e(o({name:`C_Barcode`,__name:`index`,props:{value:{},format:{default:`CODE128`},width:{default:2},height:{default:80},showText:{type:Boolean,default:!0},fontSize:{default:20},textPosition:{default:`bottom`},lineColor:{default:`#000000`},background:{default:`#FFFFFF`},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{emit:o}){let h=e,g=o,_=t(()=>({value:h.value,format:h.format,width:h.width,height:h.height,displayValue:h.showText,fontSize:h.fontSize,textPosition:h.textPosition,lineColor:h.lineColor,background:h.background})),v=e=>{console.error(`条形码生成失败:`,e),g(`error`,e)};return(t,o)=>(l(),r(`div`,p,[i(`div`,{class:c([`barcode-wrapper`,{"with-border":e.showBorder}])},[a(d(f),s(_.value,{onError:v}),null,16)],2),e.showLabel&&e.label?(l(),r(`div`,m,u(e.label),1)):n(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a8846f89`]]);export{h as t};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Breadcrumb.js`);exports.C_Breadcrumb=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./C_Icon2.cjs`);const e=require(`./C_Breadcrumb2.cjs`);exports.C_Breadcrumb=e.t;
@@ -27,5 +27,3 @@
27
27
  line-height: 1;
28
28
  margin-top: -4px;
29
29
  }
30
-
31
- /*# sourceMappingURL=C_Breadcrumb-BiH0d9AI.css.map*/
@@ -1,3 +1,3 @@
1
- import { i as BreadcrumbItem } from "./menuAdapter.js";
2
- import { t as _default } from "./index5.vue.js";
1
+ import { t as BreadcrumbItem } from "./types.cjs";
2
+ import { t as _default } from "./index6.vue.cjs";
3
3
  export { type BreadcrumbItem, _default as C_Breadcrumb };
@@ -1,4 +1,3 @@
1
- import { i as BreadcrumbItem } from "./menuAdapter.js";
2
- import "./_shared.js";
1
+ import { i as BreadcrumbItem } from "./public.js";
3
2
  import { t as _default } from "./index5.vue.js";
4
3
  export { type BreadcrumbItem, _default as C_Breadcrumb };
@@ -1 +1 @@
1
- import{t as e}from"./C_Breadcrumb2.js";export{e as C_Breadcrumb};
1
+ import"./C_Icon2.js";import{t as e}from"./C_Breadcrumb2.js";export{e as C_Breadcrumb};
@@ -0,0 +1 @@
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`);let t=require(`vue`),n=require(`naive-ui`),r=require(`vue-router`);const i={class:`c-breadcrumb__trigger`},a=[`onClick`],o=(0,t.defineComponent)({name:`C_Breadcrumb`,__name:`index`,props:{items:{},showIcon:{type:Boolean,default:!0},iconSize:{default:16},labelFormatter:{}},emits:[`select`],setup(o,{emit:s}){let c=o,l=s,u=(0,r.useRoute)(),d=e=>c.labelFormatter?c.labelFormatter(e):e,f=(0,t.computed)(()=>u.matched.filter(e=>e.meta?.title).map(e=>({key:e.path,label:d(e.meta.title||``),icon:e.meta.icon,children:e.children?.length?e.children.map(e=>({key:e.path,label:d(e.meta?.title||``),...e.children?.length&&{children:e.children.map(e=>({key:e.path,label:d(e.meta?.title||``)}))}})):[]}))),p=(0,t.computed)(()=>c.items??f.value),m=e=>{l(`select`,e)};return(r,s)=>{let c=n.NDropdown,l=n.NBreadcrumbItem,u=n.NBreadcrumb;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`c-breadcrumb flex-1 min-w-0`,style:(0,t.normalizeStyle)({"--c-breadcrumb-icon-size":`${o.iconSize}px`,"--c-breadcrumb-gap":`${Math.max(Math.round(o.iconSize/4),2)}px`})},[(0,t.createVNode)(u,null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(p.value,(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(l,{key:r},{default:(0,t.withCtx)(()=>[n.children?.length?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,options:n.children,onSelect:m},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,i,[o.showIcon?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(e.t),{key:0,name:n.icon,size:o.iconSize},null,8,[`name`,`size`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(n.label),1)])]),_:2},1032,[`options`])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:`c-breadcrumb__link`,onClick:e=>m(n.key)},[o.showIcon?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(e.t),{key:0,name:n.icon,size:o.iconSize},null,8,[`name`,`size`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(n.label),1)],8,a))]),_:2},1024))),128))]),_:1})],4)}}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
@@ -1,2 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{NBreadcrumb as t,NBreadcrumbItem as n,NDropdown as r}from"naive-ui";import{Fragment as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createElementVNode as l,createTextVNode as u,createVNode as d,defineComponent as f,normalizeStyle as p,openBlock as m,renderList as h,resolveComponent as g,toDisplayString as _,unref as v,withCtx as y}from"vue";import{useRoute as b}from"vue-router";const x={class:`c-breadcrumb__trigger`},S=[`onClick`],C=f({name:`C_Breadcrumb`,__name:`index`,props:{items:{},showIcon:{type:Boolean,default:!0},iconSize:{default:16},labelFormatter:{}},emits:[`select`],setup(f,{emit:g}){let C=f,w=g,T=b(),E=e=>C.labelFormatter?C.labelFormatter(e):e,D=a(()=>T.matched.filter(e=>e.meta?.title).map(e=>({key:e.path,label:E(e.meta.title||``),icon:e.meta.icon,children:e.children?.length?e.children.map(e=>({key:e.path,label:E(e.meta?.title||``),...e.children?.length&&{children:e.children.map(e=>({key:e.path,label:E(e.meta?.title||``)}))}})):[]}))),O=a(()=>C.items??D.value),k=e=>{w(`select`,e)};return(a,f)=>{let g=r,b=n,C=t;return m(),c(`div`,{class:`c-breadcrumb flex-1 min-w-0`,style:p({"--c-breadcrumb-icon-size":`${a.iconSize}px`,"--c-breadcrumb-gap":`${Math.max(Math.round(a.iconSize/4),2)}px`})},[d(C,null,{default:y(()=>[(m(!0),c(i,null,h(O.value,(t,n)=>(m(),o(b,{key:n},{default:y(()=>[t.children?.length?(m(),o(g,{key:0,options:t.children,onSelect:k},{default:y(()=>[l(`div`,x,[a.showIcon?(m(),o(v(e),{key:0,name:t.icon,size:a.iconSize},null,8,[`name`,`size`])):s(`v-if`,!0),u(` `+_(t.label),1)])]),_:2},1032,[`options`])):(m(),c(`span`,{key:1,class:`c-breadcrumb__link`,onClick:e=>k(t.key)},[a.showIcon?(m(),o(v(e),{key:0,name:t.icon,size:a.iconSize},null,8,[`name`,`size`])):s(`v-if`,!0),u(` `+_(t.label),1)],8,S))]),_:2},1024))),128))]),_:1})],4)}}});export{C as t};
2
- //# sourceMappingURL=C_Breadcrumb2.js.map
1
+ import{t as e}from"./C_Icon2.js";import{Fragment as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as s,createVNode as c,defineComponent as l,normalizeStyle as u,openBlock as d,renderList as f,resolveComponent as p,toDisplayString as m,unref as h,withCtx as g}from"vue";import{NBreadcrumb as _,NBreadcrumbItem as v,NDropdown as y}from"naive-ui";import{useRoute as b}from"vue-router";const x={class:`c-breadcrumb__trigger`},S=[`onClick`],C=l({name:`C_Breadcrumb`,__name:`index`,props:{items:{},showIcon:{type:Boolean,default:!0},iconSize:{default:16},labelFormatter:{}},emits:[`select`],setup(l,{emit:p}){let C=l,w=p,T=b(),E=e=>C.labelFormatter?C.labelFormatter(e):e,D=n(()=>T.matched.filter(e=>e.meta?.title).map(e=>({key:e.path,label:E(e.meta.title||``),icon:e.meta.icon,children:e.children?.length?e.children.map(e=>({key:e.path,label:E(e.meta?.title||``),...e.children?.length&&{children:e.children.map(e=>({key:e.path,label:E(e.meta?.title||``)}))}})):[]}))),O=n(()=>C.items??D.value),k=e=>{w(`select`,e)};return(n,p)=>{let b=y,C=v,w=_;return d(),a(`div`,{class:`c-breadcrumb flex-1 min-w-0`,style:u({"--c-breadcrumb-icon-size":`${l.iconSize}px`,"--c-breadcrumb-gap":`${Math.max(Math.round(l.iconSize/4),2)}px`})},[c(w,null,{default:g(()=>[(d(!0),a(t,null,f(O.value,(t,n)=>(d(),r(C,{key:n},{default:g(()=>[t.children?.length?(d(),r(b,{key:0,options:t.children,onSelect:k},{default:g(()=>[o(`div`,x,[l.showIcon?(d(),r(h(e),{key:0,name:t.icon,size:l.iconSize},null,8,[`name`,`size`])):i(`v-if`,!0),s(` `+m(t.label),1)])]),_:2},1032,[`options`])):(d(),a(`span`,{key:1,class:`c-breadcrumb__link`,onClick:e=>k(t.key)},[l.showIcon?(d(),r(h(e),{key:0,name:t.icon,size:l.iconSize},null,8,[`name`,`size`])):i(`v-if`,!0),s(` `+m(t.label),1)],8,S))]),_:2},1024))),128))]),_:1})],4)}}});export{C as t};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Captcha.js`);exports.C_Captcha=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Captcha2.cjs`);exports.C_Captcha=e.t,exports.CaptchaVerificationError=e.n,exports.createCaptchaProof=e.r,exports.verifyCaptchaProof=e.i;
@@ -1,11 +1,22 @@
1
- /* unplugin-vue-components disabled */.c-captcha-modern[data-v-a9889f51] {
1
+ .vue-puzzle-vcode{position:fixed;top:0;left:0;bottom:0;right:0;background-color:#0000004d;z-index:999;opacity:0;pointer-events:none;transition:opacity .2s}.vue-puzzle-vcode.inside_{position:relative;background-color:transparent;width:100%;height:100%}.vue-puzzle-vcode.inside_ .vue-auth-box_{position:relative;top:0;left:0;transform:translate(0);padding:0;background:transparent;box-shadow:none}.vue-puzzle-vcode.show_{opacity:1;pointer-events:auto}.vue-auth-box_{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);padding:20px;background:#fff;user-select:none;border-radius:3px;box-shadow:0 1px 3px #0000004d}.vue-auth-box_ .auth-body_{position:relative;overflow:hidden;border-radius:3px}.vue-auth-box_ .auth-body_ .loading-box_{position:absolute;top:0;left:0;bottom:0;right:0;background-color:#000c;z-index:20;opacity:1;transition:opacity .1s;display:flex;align-items:center;justify-content:center}.vue-auth-box_ .auth-body_ .loading-box_.hide_{opacity:0;pointer-events:none}.vue-auth-box_ .auth-body_ .loading-box_.hide_ .loading-gif_ span{animation-play-state:paused}.vue-auth-box_ .auth-body_ .loading-box_ .loading-gif_{flex:none;height:5px;line-height:0}@keyframes load{0%{opacity:1;transform:scale(1.3)}to{opacity:.2;transform:scale(.3)}}.vue-auth-box_ .auth-body_ .loading-box_ .loading-gif_ span{display:inline-block;width:5px;height:100%;margin-left:2px;border-radius:50%;background-color:#888;animation:load 1.04s ease infinite}.vue-auth-box_ .auth-body_ .loading-box_ .loading-gif_ span:nth-child(1){margin-left:0}.vue-auth-box_ .auth-body_ .loading-box_ .loading-gif_ span:nth-child(2){animation-delay:.13s}.vue-auth-box_ .auth-body_ .loading-box_ .loading-gif_ span:nth-child(3){animation-delay:.26s}.vue-auth-box_ .auth-body_ .loading-box_ .loading-gif_ span:nth-child(4){animation-delay:.39s}.vue-auth-box_ .auth-body_ .loading-box_ .loading-gif_ span:nth-child(5){animation-delay:.52s}.vue-auth-box_ .auth-body_ .info-box_{position:absolute;bottom:0;left:0;width:100%;height:24px;line-height:24px;text-align:center;overflow:hidden;font-size:13px;background-color:#83ce3f;opacity:0;transform:translateY(24px);transition:all .2s;color:#fff;z-index:10}.vue-auth-box_ .auth-body_ .info-box_.show{opacity:.95;transform:translateY(0)}.vue-auth-box_ .auth-body_ .info-box_.fail{background-color:#ce594b}.vue-auth-box_ .auth-body_ .auth-canvas1_{width:100%;height:100%}.vue-auth-box_ .auth-body_ .auth-canvas2_{position:absolute;top:0;left:0;width:60px;height:100%;z-index:2}.vue-auth-box_ .auth-body_ .auth-canvas3_{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;transition:opacity .6s;z-index:3}.vue-auth-box_ .auth-body_ .auth-canvas3_.show{opacity:1}.vue-auth-box_ .auth-body_ .flash_{position:absolute;top:0;left:0;width:30px;height:100%;background-color:#ffffff1a;z-index:3}.vue-auth-box_ .auth-body_ .flash_.show{transition:transform .6s}.vue-auth-box_ .auth-body_ .reset_{position:absolute;top:2px;right:2px;width:35px;height:auto;z-index:12;cursor:pointer;transition:transform .2s;transform:rotate(0)}.vue-auth-box_ .auth-body_ .reset_:hover{transform:rotate(-90deg)}.vue-auth-box_ .auth-control_ .range-box{position:relative;width:100%;background-color:#eef1f8;margin-top:20px;border-radius:3px;box-shadow:0 0 8px #f0f0f099 inset}.vue-auth-box_ .auth-control_ .range-box .range-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;color:#b7bcd1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;width:100%}.vue-auth-box_ .auth-control_ .range-box .range-slider{position:absolute;height:100%;width:50px;background-color:#6aa0ffcc;border-radius:3px}.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn{position:absolute;display:flex;align-items:center;justify-content:center;right:0;width:50px;height:100%;background-color:#fff;border-radius:3px;box-shadow:0 0 4px #ccc;cursor:pointer}.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn>div{width:0;height:40%;transition:all .2s;border:solid 1px #6aa0ff}.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn>div:nth-child(2){margin:0 4px}.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn:hover>div:first-child,.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn.isDown>div:first-child{border:solid 4px transparent;height:0;border-right-color:#6aa0ff}.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn:hover>div:nth-child(2),.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn.isDown>div:nth-child(2){border-width:3px;height:0;border-radius:3px;margin:0 6px;border-right-color:#6aa0ff}.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn:hover>div:nth-child(3),.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn.isDown>div:nth-child(3){border:solid 4px transparent;height:0;border-left-color:#6aa0ff}.vue-puzzle-overflow{overflow:hidden!important}
2
+
3
+ /* unplugin-vue-components disabled */.c-captcha-modern[data-v-3b02fca0] {
2
4
  width: 100%;
3
5
  font-family: inherit;
4
6
  }
5
- .captcha-trigger[data-v-a9889f51] {
7
+ .captcha-shell[data-v-3b02fca0] {
8
+ position: relative;
6
9
  width: 100%;
7
10
  max-width: 280px;
8
11
  margin: 0 auto;
12
+ }
13
+ .captcha-trigger[data-v-3b02fca0] {
14
+ appearance: none;
15
+ border: 0;
16
+ background: transparent;
17
+ color: inherit;
18
+ font: inherit;
19
+ width: 100%;
9
20
  padding: 12px 16px;
10
21
  cursor: pointer;
11
22
  user-select: none;
@@ -15,21 +26,26 @@
15
26
  position: relative;
16
27
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
17
28
  }
18
- .captcha-trigger[data-v-a9889f51]:hover:not(.disabled) {
29
+ .captcha-trigger[data-v-3b02fca0]:hover:not(.disabled) {
19
30
  transform: translateY(-1px);
20
31
  }
21
- .captcha-trigger.disabled[data-v-a9889f51] {
32
+ .captcha-trigger.disabled[data-v-3b02fca0] {
22
33
  opacity: 0.5;
23
34
  cursor: not-allowed;
24
35
  }
25
- .captcha-content[data-v-a9889f51] {
36
+ .captcha-trigger[data-v-3b02fca0]:focus-visible,
37
+ .refresh-button[data-v-3b02fca0]:focus-visible {
38
+ outline: 2px solid var(--n-color-target, #18a058);
39
+ outline-offset: 2px;
40
+ }
41
+ .captcha-content[data-v-3b02fca0] {
26
42
  display: flex;
27
43
  align-items: center;
28
44
  justify-content: center;
29
45
  gap: 8px;
30
46
  flex: 1;
31
47
  }
32
- .captcha-icon[data-v-a9889f51] {
48
+ .captcha-icon[data-v-3b02fca0] {
33
49
  font-size: 18px;
34
50
  width: 20px;
35
51
  height: 20px;
@@ -38,7 +54,7 @@
38
54
  justify-content: center;
39
55
  flex-shrink: 0;
40
56
  }
41
- .captcha-text[data-v-a9889f51] {
57
+ .captcha-text[data-v-3b02fca0] {
42
58
  color: rgba(255, 255, 255, 0.8);
43
59
  font-size: 14px;
44
60
  font-weight: 500;
@@ -46,7 +62,10 @@
46
62
  text-align: center;
47
63
  white-space: nowrap;
48
64
  }
49
- .refresh-button[data-v-a9889f51] {
65
+ .refresh-button[data-v-3b02fca0] {
66
+ appearance: none;
67
+ border: 0;
68
+ background: transparent;
50
69
  position: absolute;
51
70
  right: 12px;
52
71
  top: 50%;
@@ -62,19 +81,25 @@
62
81
  font-size: 14px;
63
82
  flex-shrink: 0;
64
83
  }
65
- .refresh-button[data-v-a9889f51]:hover {
84
+ .c-captcha-modern[data-theme=light] .captcha-text[data-v-3b02fca0] {
85
+ color: rgba(0, 0, 0, 0.72);
86
+ }
87
+ .c-captcha-modern[data-theme=light] .refresh-button[data-v-3b02fca0] {
88
+ color: rgba(0, 0, 0, 0.52);
89
+ }
90
+ .refresh-button[data-v-3b02fca0]:hover {
66
91
  color: rgba(255, 255, 255, 0.9);
67
92
  transform: translateY(-50%) rotate(180deg);
68
93
  }
69
- .success-icon[data-v-a9889f51],
70
- .success-text[data-v-a9889f51] {
94
+ .success-icon[data-v-3b02fca0],
95
+ .success-text[data-v-3b02fca0] {
71
96
  color: #43c23a;
72
97
  }
73
- .error-icon[data-v-a9889f51],
74
- .error-text[data-v-a9889f51] {
98
+ .error-icon[data-v-3b02fca0],
99
+ .error-text[data-v-3b02fca0] {
75
100
  color: #f56c6c;
76
101
  }
77
- @keyframes shake-a9889f51 {
102
+ @keyframes shake-3b02fca0 {
78
103
  0%, 100% {
79
104
  transform: translateX(0);
80
105
  }
@@ -86,24 +111,24 @@
86
111
  }
87
112
  }
88
113
  @media (max-width: 768px) {
89
- .captcha-trigger[data-v-a9889f51] {
90
- max-width: 240px;
114
+ .captcha-trigger[data-v-3b02fca0] {
91
115
  padding: 10px 14px;
92
116
  }
93
- .captcha-icon[data-v-a9889f51] {
117
+ .captcha-shell[data-v-3b02fca0] {
118
+ max-width: 240px;
119
+ }
120
+ .captcha-icon[data-v-3b02fca0] {
94
121
  font-size: 16px;
95
122
  width: 18px;
96
123
  height: 18px;
97
124
  }
98
- .captcha-text[data-v-a9889f51] {
125
+ .captcha-text[data-v-3b02fca0] {
99
126
  font-size: 13px;
100
127
  }
101
- .refresh-button[data-v-a9889f51] {
128
+ .refresh-button[data-v-3b02fca0] {
102
129
  width: 24px;
103
130
  height: 24px;
104
131
  font-size: 12px;
105
132
  right: 10px;
106
133
  }
107
134
  }
108
-
109
- /*# sourceMappingURL=C_Captcha-B3yrtG7t.css.map*/
@@ -1,2 +1,3 @@
1
- import { t as _default } from "./index6.vue.js";
2
- export { _default as C_Captcha };
1
+ import { a as CaptchaSuccessPayload, c as CaptchaVerifier, i as CaptchaProps, n as CaptchaInstance, o as CaptchaVerificationRequest, r as CaptchaProof, s as CaptchaVerificationResult, t as CaptchaEmits } from "./types2.cjs";
2
+ import { i as _default, n as createCaptchaProof, r as verifyCaptchaProof, t as CaptchaVerificationError } from "./verification.cjs";
3
+ export { _default as C_Captcha, type CaptchaEmits, type CaptchaInstance, type CaptchaProof, type CaptchaProps, type CaptchaSuccessPayload, CaptchaVerificationError, type CaptchaVerificationRequest, type CaptchaVerificationResult, type CaptchaVerifier, createCaptchaProof, verifyCaptchaProof };
@@ -1,2 +1,3 @@
1
- import { t as _default } from "./index6.vue.js";
2
- export { _default as C_Captcha };
1
+ import { a as CaptchaSuccessPayload, c as CaptchaVerifier, i as CaptchaProps, n as CaptchaInstance, o as CaptchaVerificationRequest, r as CaptchaProof, s as CaptchaVerificationResult, t as CaptchaEmits } from "./types.js";
2
+ import { i as _default, n as createCaptchaProof, r as verifyCaptchaProof, t as CaptchaVerificationError } from "./verification.js";
3
+ export { _default as C_Captcha, type CaptchaEmits, type CaptchaInstance, type CaptchaProof, type CaptchaProps, type CaptchaSuccessPayload, CaptchaVerificationError, type CaptchaVerificationRequest, type CaptchaVerificationResult, type CaptchaVerifier, createCaptchaProof, verifyCaptchaProof };
package/dist/C_Captcha.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./C_Captcha2.js";export{e as C_Captcha};
1
+ import{i as e,n as t,r as n,t as r}from"./C_Captcha2.js";export{r as C_Captcha,t as CaptchaVerificationError,n as createCaptchaProof,e as verifyCaptchaProof};
@@ -0,0 +1 @@
1
+ require(`./chunk.cjs`);const e=require(`./config.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`);var r=class extends Error{constructor(e,t,n){super(t),this.code=e,this.cause=n,this.name=`CaptchaVerificationError`}};let i=0;function a(){let e=Date.now();return{token:`puzzle_${e}_${globalThis.crypto?.randomUUID?.()??`${++i}`}`,timestamp:e,type:`puzzle-captcha`}}async function o(e,t={}){let{verifier:n,requireServerVerification:i=!1,signal:a}=t,o=t.timeout??1e4,s=Number.isFinite(o)&&o>0?o:1e4;if(a?.aborted)throw new r(`aborted`,`Verification was cancelled.`);if(!n){if(i)throw new r(`missing-verifier`,`Server verification is required but no verifier was configured.`);return{...e,verifiedBy:`local`}}let c=new AbortController,l=()=>c.abort(a?.reason);a?.addEventListener(`abort`,l,{once:!0});let u,d=new Promise((e,t)=>{u=setTimeout(()=>{c.abort(`timeout`),t(new r(`timeout`,`Verification timed out after ${s}ms.`))},s)}),f=new Promise((e,t)=>{c.signal.addEventListener(`abort`,()=>{c.signal.reason!==`timeout`&&t(new r(`aborted`,`Verification was cancelled.`))},{once:!0})});try{let t=await Promise.race([Promise.resolve(n({...e,signal:c.signal})),d,f]),a=typeof t==`boolean`?{valid:t}:t;if(!a.valid)throw new r(`rejected`,a.message||`Server verification rejected the challenge.`);let o=a.token?.trim();if(i&&!o)throw new r(`missing-token`,`Server verification did not return a trusted token.`);return{...e,token:o||e.token,verifiedBy:`server`}}catch(e){throw e instanceof r?e:new r(`rejected`,`Server verification failed.`,e)}finally{u&&clearTimeout(u),a?.removeEventListener(`abort`,l)}}const s=[`data-theme`],c={class:`captcha-shell`},l=[`disabled`,`aria-busy`,`aria-label`],u={class:`captcha-content`},d={class:`captcha-icon`,"aria-hidden":`true`},f={key:0},p={key:1,class:`success-icon`},m={key:2,class:`error-icon`},h={key:3},g={class:`captcha-text`,"aria-live":`polite`},_={key:0},v={key:1,class:`success-text`},y={key:2,class:`error-text`},b={key:3},x=[`title`,`aria-label`],S=(0,n.defineComponent)({name:`C_Captcha`,__name:`index`,props:{triggerText:{},images:{default:()=>[]},disabled:{type:Boolean,default:!1},theme:{default:`dark`},verifier:{},verificationTimeout:{default:1e4},requireServerVerification:{type:Boolean,default:!1},feedback:{},locale:{}},emits:[`success`,`fail`,`verify-error`,`load-error`,`change`,`reset`],setup(t,{expose:i,emit:S}){let C=t,w=S,T=e.r(()=>C.feedback),{t:E}=e.i(()=>C.locale),D=typeof window>`u`?()=>null:(0,n.defineAsyncComponent)({loader:()=>import(`vue3-puzzle-vcode`).then(e=>e.default),onError(e,t,n){T.error(E(`captcha.loadFailed`),e),w(`load-error`,e),n()}}),O=(0,n.ref)(!1),k=(0,n.ref)(!1),A=(0,n.ref)(!1),j=(0,n.ref)(!1),M=(0,n.ref)(null),N=null,P=null,F=(0,n.computed)(()=>C.images.length>0?C.images:void 0),I=(0,n.computed)(()=>j.value?E(`captcha.verifying`):k.value?E(`captcha.success`):A.value?E(`captcha.failed`):C.triggerText||E(`captcha.trigger`)),L=()=>{N&&=(clearTimeout(N),null)},R=(e,t)=>{k.value=!1,A.value=!0,M.value=null,L(),N=setTimeout(()=>{A.value=!1,N=null},3e3),w(`fail`,e),w(`change`,!1),t&&w(`verify-error`,t)},z=()=>{C.disabled||j.value||k.value||(A.value=!1,O.value=!0)},B=async()=>{O.value=!1,A.value=!1,P?.abort();let e=new AbortController;P=e,j.value=!0;try{let t=await o(a(),{verifier:C.verifier,timeout:C.verificationTimeout,requireServerVerification:C.requireServerVerification,signal:e.signal});if(P!==e)return;M.value=t,k.value=!0,w(`success`,t),w(`change`,!0)}catch(t){if(P!==e||t instanceof r&&t.code===`aborted`)return;let n=t instanceof Error?t.message:E(`captcha.failed`);T.error(E(`captcha.verifyFailed`),t),R(n,t)}finally{P===e&&(P=null,j.value=!1)}},V=()=>{O.value=!1,R(E(`captcha.puzzleFailed`))},H=()=>{O.value=!1},U=()=>{P?.abort(),P=null,j.value=!1,k.value=!1,A.value=!1,O.value=!1,M.value=null,L(),w(`reset`),w(`change`,!1)};return i({validate:()=>k.value,getToken:()=>M.value?.token??``,getVerificationData:()=>M.value,reset:U,show:z}),(0,n.onBeforeUnmount)(()=>{P?.abort(),L()}),(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`c-captcha-modern`,"data-theme":t.theme},[(0,n.createElementVNode)(`div`,c,[(0,n.createElementVNode)(`button`,{type:`button`,class:(0,n.normalizeClass)([`captcha-trigger`,{verified:k.value,error:A.value,disabled:t.disabled||j.value}]),disabled:t.disabled||j.value||k.value,"aria-busy":j.value,"aria-label":I.value,onClick:z},[(0,n.createElementVNode)(`span`,u,[(0,n.createElementVNode)(`span`,d,[j.value?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,f,`…`)):k.value?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,p,`✓`)):A.value?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,m,`!`)):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,h,`↔`))]),(0,n.createElementVNode)(`span`,g,[j.value?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,_,(0,n.toDisplayString)((0,n.unref)(E)(`captcha.verifying`)),1)):k.value?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,v,(0,n.toDisplayString)((0,n.unref)(E)(`captcha.success`)),1)):A.value?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,y,(0,n.toDisplayString)((0,n.unref)(E)(`captcha.failed`)),1)):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,b,(0,n.toDisplayString)(t.triggerText||(0,n.unref)(E)(`captcha.trigger`)),1))])])],10,l),k.value||A.value?((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:0,type:`button`,class:`refresh-button`,title:(0,n.unref)(E)(`captcha.reset`),"aria-label":(0,n.unref)(E)(`captcha.reset`),onClick:U},` ↻ `,8,x)):(0,n.createCommentVNode)(`v-if`,!0)]),(0,n.createVNode)((0,n.unref)(D),{show:O.value,imgs:F.value,onSuccess:B,onClose:H,onFail:V},null,8,[`show`,`imgs`])],8,s))}});var C=t.t(S,[[`__scopeId`,`data-v-3b02fca0`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return C}});
@@ -1,2 +1 @@
1
- import{t as e}from"./export-helper.js";import{computed as t,createCommentVNode as n,createElementBlock as r,createElementVNode as i,createVNode as a,defineComponent as o,normalizeClass as s,onBeforeUnmount as c,openBlock as l,ref as u,toDisplayString as d,unref as f,withModifiers as p}from"vue";import m from"vue3-puzzle-vcode";const h={class:`c-captcha-modern`},g={class:`captcha-content`},_={class:`captcha-icon`},v={key:0},y={key:1,class:`success-icon`},b={key:2,class:`error-icon`},x={class:`captcha-text`},S={key:0},C={key:1,class:`success-text`},w={key:2,class:`error-text`};var T=e(o({name:`C_Captcha`,__name:`index`,props:{triggerText:{default:`点击进行人机验证`},images:{default:()=>[]},disabled:{type:Boolean,default:!1},theme:{default:`dark`}},emits:[`success`,`fail`,`change`,`reset`],setup(e,{expose:o,emit:T}){let E=e,D=T,O=u(!1),k=u(!1),A=u(!1),j=u(``),M=null,N=t(()=>E.images.length>0?E.images:void 0),P=()=>{E.disabled||k.value||(A.value=!1,O.value=!0)},F=()=>{k.value=!0,A.value=!1,O.value=!1;let e=Date.now(),t=`puzzle_${e}_${Math.random().toString(36).substring(2,9)}`;j.value=t,D(`success`,{token:t,timestamp:e}),D(`change`,!0)},I=()=>{k.value=!1,A.value=!0,O.value=!1,M&&clearTimeout(M),M=setTimeout(()=>{A.value=!1,M=null},3e3),D(`fail`,`拼图验证失败`),D(`change`,!1)},L=()=>{O.value=!1},R=()=>{k.value=!1,A.value=!1,O.value=!1,j.value=``,M&&=(clearTimeout(M),null),D(`reset`),D(`change`,!1)};return o({validate:()=>k.value,getToken:()=>j.value,getVerificationData:()=>k.value?{token:j.value,timestamp:Date.now(),type:`puzzle-captcha`}:null,reset:R,show:P}),c(()=>{M&&clearTimeout(M)}),(e,t)=>(l(),r(`div`,h,[i(`div`,{class:s([`captcha-trigger`,{verified:k.value,error:A.value,disabled:e.disabled}]),onClick:P},[i(`div`,g,[i(`div`,_,[!k.value&&!A.value?(l(),r(`span`,v,`🧩`)):n(`v-if`,!0),k.value?(l(),r(`span`,y,`✓`)):n(`v-if`,!0),A.value?(l(),r(`span`,b,`⚠️`)):n(`v-if`,!0)]),i(`div`,x,[!k.value&&!A.value?(l(),r(`span`,S,d(e.triggerText),1)):n(`v-if`,!0),k.value?(l(),r(`span`,C,`验证成功`)):n(`v-if`,!0),A.value?(l(),r(`span`,w,`验证失败,请重试`)):n(`v-if`,!0)])]),k.value||A.value?(l(),r(`div`,{key:0,class:`refresh-button`,onClick:p(R,[`stop`]),title:`重新验证`},` ⟲ `)):n(`v-if`,!0)],2),a(f(m),{show:O.value,imgs:N.value,onSuccess:F,onClose:L,onFail:I},null,8,[`show`,`imgs`])]))}}),[[`__scopeId`,`data-v-a9889f51`]]);export{T as t};
2
- //# sourceMappingURL=C_Captcha2.js.map
1
+ import{i as e,r as t}from"./config.js";import{t as n}from"./export-helper.js";import{computed as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createVNode as s,defineAsyncComponent as c,defineComponent as l,normalizeClass as u,onBeforeUnmount as d,openBlock as f,ref as p,toDisplayString as m,unref as h}from"vue";var g=class extends Error{constructor(e,t,n){super(t),this.code=e,this.cause=n,this.name=`CaptchaVerificationError`}};let _=0;function v(){let e=Date.now();return{token:`puzzle_${e}_${globalThis.crypto?.randomUUID?.()??`${++_}`}`,timestamp:e,type:`puzzle-captcha`}}async function y(e,t={}){let{verifier:n,requireServerVerification:r=!1,signal:i}=t,a=t.timeout??1e4,o=Number.isFinite(a)&&a>0?a:1e4;if(i?.aborted)throw new g(`aborted`,`Verification was cancelled.`);if(!n){if(r)throw new g(`missing-verifier`,`Server verification is required but no verifier was configured.`);return{...e,verifiedBy:`local`}}let s=new AbortController,c=()=>s.abort(i?.reason);i?.addEventListener(`abort`,c,{once:!0});let l,u=new Promise((e,t)=>{l=setTimeout(()=>{s.abort(`timeout`),t(new g(`timeout`,`Verification timed out after ${o}ms.`))},o)}),d=new Promise((e,t)=>{s.signal.addEventListener(`abort`,()=>{s.signal.reason!==`timeout`&&t(new g(`aborted`,`Verification was cancelled.`))},{once:!0})});try{let t=await Promise.race([Promise.resolve(n({...e,signal:s.signal})),u,d]),i=typeof t==`boolean`?{valid:t}:t;if(!i.valid)throw new g(`rejected`,i.message||`Server verification rejected the challenge.`);let a=i.token?.trim();if(r&&!a)throw new g(`missing-token`,`Server verification did not return a trusted token.`);return{...e,token:a||e.token,verifiedBy:`server`}}catch(e){throw e instanceof g?e:new g(`rejected`,`Server verification failed.`,e)}finally{l&&clearTimeout(l),i?.removeEventListener(`abort`,c)}}const b=[`data-theme`],x={class:`captcha-shell`},S=[`disabled`,`aria-busy`,`aria-label`],C={class:`captcha-content`},w={class:`captcha-icon`,"aria-hidden":`true`},T={key:0},E={key:1,class:`success-icon`},D={key:2,class:`error-icon`},O={key:3},k={class:`captcha-text`,"aria-live":`polite`},A={key:0},j={key:1,class:`success-text`},M={key:2,class:`error-text`},N={key:3},P=[`title`,`aria-label`];var F=n(l({name:`C_Captcha`,__name:`index`,props:{triggerText:{},images:{default:()=>[]},disabled:{type:Boolean,default:!1},theme:{default:`dark`},verifier:{},verificationTimeout:{default:1e4},requireServerVerification:{type:Boolean,default:!1},feedback:{},locale:{}},emits:[`success`,`fail`,`verify-error`,`load-error`,`change`,`reset`],setup(n,{expose:l,emit:_}){let F=n,I=_,L=t(()=>F.feedback),{t:R}=e(()=>F.locale),z=typeof window>`u`?()=>null:c({loader:()=>import(`vue3-puzzle-vcode`).then(e=>e.default),onError(e,t,n){L.error(R(`captcha.loadFailed`),e),I(`load-error`,e),n()}}),B=p(!1),V=p(!1),H=p(!1),U=p(!1),W=p(null),G=null,K=null,q=r(()=>F.images.length>0?F.images:void 0),J=r(()=>U.value?R(`captcha.verifying`):V.value?R(`captcha.success`):H.value?R(`captcha.failed`):F.triggerText||R(`captcha.trigger`)),Y=()=>{G&&=(clearTimeout(G),null)},X=(e,t)=>{V.value=!1,H.value=!0,W.value=null,Y(),G=setTimeout(()=>{H.value=!1,G=null},3e3),I(`fail`,e),I(`change`,!1),t&&I(`verify-error`,t)},Z=()=>{F.disabled||U.value||V.value||(H.value=!1,B.value=!0)},Q=async()=>{B.value=!1,H.value=!1,K?.abort();let e=new AbortController;K=e,U.value=!0;try{let t=await y(v(),{verifier:F.verifier,timeout:F.verificationTimeout,requireServerVerification:F.requireServerVerification,signal:e.signal});if(K!==e)return;W.value=t,V.value=!0,I(`success`,t),I(`change`,!0)}catch(t){if(K!==e||t instanceof g&&t.code===`aborted`)return;let n=t instanceof Error?t.message:R(`captcha.failed`);L.error(R(`captcha.verifyFailed`),t),X(n,t)}finally{K===e&&(K=null,U.value=!1)}},ee=()=>{B.value=!1,X(R(`captcha.puzzleFailed`))},te=()=>{B.value=!1},$=()=>{K?.abort(),K=null,U.value=!1,V.value=!1,H.value=!1,B.value=!1,W.value=null,Y(),I(`reset`),I(`change`,!1)};return l({validate:()=>V.value,getToken:()=>W.value?.token??``,getVerificationData:()=>W.value,reset:$,show:Z}),d(()=>{K?.abort(),Y()}),(e,t)=>(f(),a(`div`,{class:`c-captcha-modern`,"data-theme":n.theme},[o(`div`,x,[o(`button`,{type:`button`,class:u([`captcha-trigger`,{verified:V.value,error:H.value,disabled:n.disabled||U.value}]),disabled:n.disabled||U.value||V.value,"aria-busy":U.value,"aria-label":J.value,onClick:Z},[o(`span`,C,[o(`span`,w,[U.value?(f(),a(`span`,T,`…`)):V.value?(f(),a(`span`,E,`✓`)):H.value?(f(),a(`span`,D,`!`)):(f(),a(`span`,O,`↔`))]),o(`span`,k,[U.value?(f(),a(`span`,A,m(h(R)(`captcha.verifying`)),1)):V.value?(f(),a(`span`,j,m(h(R)(`captcha.success`)),1)):H.value?(f(),a(`span`,M,m(h(R)(`captcha.failed`)),1)):(f(),a(`span`,N,m(n.triggerText||h(R)(`captcha.trigger`)),1))])])],10,S),V.value||H.value?(f(),a(`button`,{key:0,type:`button`,class:`refresh-button`,title:h(R)(`captcha.reset`),"aria-label":h(R)(`captcha.reset`),onClick:$},` ↻ `,8,P)):i(`v-if`,!0)]),s(h(z),{show:B.value,imgs:q.value,onSuccess:Q,onClose:te,onFail:ee},null,8,[`show`,`imgs`])],8,b))}}),[[`__scopeId`,`data-v-3b02fca0`]]);export{y as i,g as n,v as r,F as t};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Cascade.js`);exports.C_Cascade=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Cascade2.cjs`);exports.C_Cascade=e.t;
@@ -6,5 +6,3 @@
6
6
  min-width: 140px;
7
7
  flex: 1;
8
8
  }
9
-
10
- /*# sourceMappingURL=C_Cascade-CmCrLVft.css.map*/
@@ -1,2 +1,2 @@
1
- import { n as CascadeItem, r as CascadeValue, t as _default } from "./index7.vue.js";
1
+ import { n as CascadeItem, r as CascadeValue, t as _default } from "./index7.vue.cjs";
2
2
  export { _default as C_Cascade, type CascadeItem, type CascadeValue };
@@ -1,2 +1,2 @@
1
- import { n as CascadeItem, r as CascadeValue, t as _default } from "./index7.vue.js";
1
+ import { n as CascadeItem, r as CascadeValue, t as _default } from "./index6.vue.js";
2
2
  export { _default as C_Cascade, type CascadeItem, type CascadeValue };
@@ -0,0 +1 @@
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r={class:`n-cascade-selector`},i=(0,t.defineComponent)({name:`C_Cascade`,__name:`index`,props:{data:{},placeholders:{default:()=>[`请选择`,`请选择`,`请选择`]},modelValue:{}},emits:[`update:modelValue`,`change`],setup(e,{emit:i}){let a=e,o=i,s=[0,1,2],c=(0,t.ref)([null,null,null]),l=e=>e===0?a.data:c.value[e-1]&&l(e-1).find(t=>t.value===c.value[e-1])?.children||[],u=(0,t.computed)(()=>s.map(e=>l(e).map(e=>({label:e.label,value:e.value})))),d=e=>{c.value.splice(e+1,s.length-e-1,...Array(s.length-e-1).fill(null)),p()},f=e=>{let t=c.value[e];if(!t)return null;let n=l(e).find(e=>e.value===t);return n?{label:n.label,value:n.value}:null},p=()=>{let e={primary:f(0),secondary:f(1),tertiary:f(2)};o(`update:modelValue`,e),o(`change`,e)};return(0,t.watch)(()=>a.modelValue,e=>{c.value=[e?.primary?.value??null,e?.secondary?.value??null,e?.tertiary?.value??null]},{immediate:!0,deep:!0}),(i,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,r,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(s,(r,i)=>(0,t.createVNode)((0,t.unref)(n.NSelect),{key:i,value:c.value[i],"onUpdate:value":[e=>c.value[i]=e,e=>d(i)],options:u.value[i],clearable:``,placeholder:e.placeholders[i],disabled:i>0&&!c.value[i-1],class:`n-select-item`},null,8,[`value`,`onUpdate:value`,`options`,`placeholder`,`disabled`])),64))]))}});var a=e.t(i,[[`__scopeId`,`data-v-cf9c290b`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
@@ -1,2 +1 @@
1
- import{t as e}from"./export-helper.js";import{NSelect as t}from"naive-ui";import{Fragment as n,computed as r,createElementBlock as i,createVNode as a,defineComponent as o,openBlock as s,ref as c,renderList as l,unref as u,watch as d}from"vue";const f={class:`n-cascade-selector`};var p=e(o({name:`C_Cascade`,__name:`index`,props:{data:{},placeholders:{default:()=>[`请选择`,`请选择`,`请选择`]},modelValue:{}},emits:[`update:modelValue`,`change`],setup(e,{emit:o}){let p=e,m=o,h=[0,1,2],g=c([null,null,null]),_=e=>e===0?p.data:g.value[e-1]&&_(e-1).find(t=>t.value===g.value[e-1])?.children||[],v=r(()=>h.map(e=>_(e).map(e=>({label:e.label,value:e.value})))),y=e=>{g.value.splice(e+1,h.length-e-1,...Array(h.length-e-1).fill(null)),x()},b=e=>{let t=g.value[e];if(!t)return null;let n=_(e).find(e=>e.value===t);return n?{label:n.label,value:n.value}:null},x=()=>{let e={primary:b(0),secondary:b(1),tertiary:b(2)};m(`update:modelValue`,e),m(`change`,e)};return d(()=>p.modelValue,e=>{g.value=[e?.primary?.value??null,e?.secondary?.value??null,e?.tertiary?.value??null]},{immediate:!0,deep:!0}),(e,r)=>(s(),i(`div`,f,[(s(),i(n,null,l(h,(n,r)=>a(u(t),{key:r,value:g.value[r],"onUpdate:value":[e=>g.value[r]=e,e=>y(r)],options:v.value[r],clearable:``,placeholder:e.placeholders[r],disabled:r>0&&!g.value[r-1],class:`n-select-item`},null,8,[`value`,`onUpdate:value`,`options`,`placeholder`,`disabled`])),64))]))}}),[[`__scopeId`,`data-v-cf9c290b`]]);export{p as t};
2
- //# sourceMappingURL=C_Cascade2.js.map
1
+ import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createElementBlock as r,createVNode as i,defineComponent as a,openBlock as o,ref as s,renderList as c,unref as l,watch as u}from"vue";import{NSelect as d}from"naive-ui";const f={class:`n-cascade-selector`};var p=e(a({name:`C_Cascade`,__name:`index`,props:{data:{},placeholders:{default:()=>[`请选择`,`请选择`,`请选择`]},modelValue:{}},emits:[`update:modelValue`,`change`],setup(e,{emit:a}){let p=e,m=a,h=[0,1,2],g=s([null,null,null]),_=e=>e===0?p.data:g.value[e-1]&&_(e-1).find(t=>t.value===g.value[e-1])?.children||[],v=n(()=>h.map(e=>_(e).map(e=>({label:e.label,value:e.value})))),y=e=>{g.value.splice(e+1,h.length-e-1,...Array(h.length-e-1).fill(null)),x()},b=e=>{let t=g.value[e];if(!t)return null;let n=_(e).find(e=>e.value===t);return n?{label:n.label,value:n.value}:null},x=()=>{let e={primary:b(0),secondary:b(1),tertiary:b(2)};m(`update:modelValue`,e),m(`change`,e)};return u(()=>p.modelValue,e=>{g.value=[e?.primary?.value??null,e?.secondary?.value??null,e?.tertiary?.value??null]},{immediate:!0,deep:!0}),(n,a)=>(o(),r(`div`,f,[(o(),r(t,null,c(h,(t,n)=>i(l(d),{key:n,value:g.value[n],"onUpdate:value":[e=>g.value[n]=e,e=>y(n)],options:v.value[n],clearable:``,placeholder:e.placeholders[n],disabled:n>0&&!g.value[n-1],class:`n-select-item`},null,8,[`value`,`onUpdate:value`,`options`,`placeholder`,`disabled`])),64))]))}}),[[`__scopeId`,`data-v-cf9c290b`]]);export{p as t};
package/dist/C_Chat.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Chat.js`);exports.C_Chat=e.t,exports.DEFAULT_CHAT_PROPS=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./C_Icon2.cjs`);const e=require(`./C_Chat2.cjs`);exports.C_Chat=e.t,exports.DEFAULT_CHAT_PROPS=e.n;
package/dist/C_Chat.css CHANGED
@@ -397,5 +397,3 @@
397
397
  padding: 10px 8px;
398
398
  }
399
399
  }
400
-
401
- /*# sourceMappingURL=C_Chat-CF1SU7mc.css.map*/
package/dist/C_Chat.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as DEFAULT_CHAT_PROPS, c as MessageType, i as ChatProps, n as ChatContact, o as MessageSender, r as ChatMessage, s as MessageStatus, t as _default } from "./index8.vue.js";
1
+ import { a as DEFAULT_CHAT_PROPS, c as MessageType, i as ChatProps, n as ChatContact, o as MessageSender, r as ChatMessage, s as MessageStatus, t as _default } from "./index8.vue.cjs";
2
2
  export { _default as C_Chat, type ChatContact, type ChatMessage, type ChatProps, DEFAULT_CHAT_PROPS, type MessageSender, type MessageStatus, type MessageType };
package/dist/C_Chat.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as DEFAULT_CHAT_PROPS, c as MessageType, i as ChatProps, n as ChatContact, o as MessageSender, r as ChatMessage, s as MessageStatus, t as _default } from "./index8.vue.js";
1
+ import { a as DEFAULT_CHAT_PROPS, c as MessageType, i as ChatProps, n as ChatContact, o as MessageSender, r as ChatMessage, s as MessageStatus, t as _default } from "./index7.vue.js";
2
2
  export { _default as C_Chat, type ChatContact, type ChatMessage, type ChatProps, DEFAULT_CHAT_PROPS, type MessageSender, type MessageStatus, type MessageType };
package/dist/C_Chat.js CHANGED
@@ -1 +1 @@
1
- import{n as e,t}from"./C_Chat2.js";export{t as C_Chat,e as DEFAULT_CHAT_PROPS};
1
+ import"./C_Icon2.js";import{n as e,t}from"./C_Chat2.js";export{t as C_Chat,e as DEFAULT_CHAT_PROPS};
@@ -0,0 +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={placeholder:`输入消息...`,showContacts:!0,showTimestamp:!0,showSendBtn:!0,loadingHistory:!1,title:`聊天`},a={class:`c-chat`},o={key:0,class:`c-chat__sidebar`},s={class:`c-chat__sidebar-header`},c={class:`c-chat__search`},l={class:`c-chat__contact-list`},u=[`onClick`],d={class:`c-chat__contact-avatar`},f=[`src`,`alt`],p={key:1,class:`c-chat__avatar-fallback`},m={key:2,class:`c-chat__online-dot`},h={class:`c-chat__contact-info`},g={class:`c-chat__contact-name`},ee={key:0,class:`c-chat__contact-time`},te={key:0,class:`c-chat__contact-last`},ne={key:0,class:`c-chat__unread`},re={key:1,class:`c-chat__main`},ie={class:`c-chat__header`},_={key:0,class:`c-chat__header-status`},v={key:0,class:`c-chat__load-more`},y={key:1,class:`c-chat__empty`},b={key:0,class:`c-chat__time-divider`},x={key:0,class:`c-chat__msg-avatar`},S=[`src`],C={key:1,class:`c-chat__avatar-fallback`},w={class:`c-chat__msg-body`},T={key:0,class:`c-chat__msg-username`},E={key:1,class:`c-chat__bubble`},D=[`src`,`onClick`],O=[`onClick`],k={class:`c-chat__file-info`},A={class:`c-chat__file-name`},j={key:0,class:`c-chat__file-size`},M={key:4,class:`c-chat__msg-time`},N=[`onClick`],P={class:`c-chat__input-area`},F={class:`c-chat__input-actions`},I={class:`c-chat__input-wrap`},ae={class:`c-chat__main c-chat__no-chat`},L=(0,n.defineComponent)({__name:`index`,props:{contacts:{default:()=>[]},messages:{default:()=>[]},currentContactId:{default:``},placeholder:{default:i.placeholder},showContacts:{type:Boolean,default:i.showContacts},showTimestamp:{type:Boolean,default:i.showTimestamp},selfAvatar:{default:``},selfName:{default:``},showSendBtn:{type:Boolean,default:i.showSendBtn},loadingHistory:{type:Boolean,default:i.loadingHistory},title:{default:i.title}},emits:[`send`,`select-contact`,`load-more`,`image-preview`,`file-click`,`file-upload`,`emoji-click`,`resend`],setup(t,{expose:L,emit:R}){let z=t,B=R,V=(0,n.computed)(()=>({...i,...z})),H=(0,n.ref)(``),U=(0,n.ref)(``),W=(0,n.ref)(null),G=(0,n.computed)(()=>z.contacts??[]),K=(0,n.computed)(()=>z.messages??[]),q=(0,n.computed)(()=>z.currentContactId||G.value[0]?.id||``),J=(0,n.computed)(()=>G.value.find(e=>e.id===q.value)),oe=(0,n.computed)(()=>{if(!U.value)return G.value;let e=U.value.toLowerCase();return G.value.filter(t=>t.name.toLowerCase().includes(e))}),se=e=>{B(`select-contact`,e)},Y=()=>{let e=H.value.trim();e&&(B(`send`,e),H.value=``)},X=()=>{(0,n.nextTick)(()=>{W.value&&(W.value.scrollTop=W.value.scrollHeight)})};(0,n.watch)(()=>z.messages?.length,()=>X(),{flush:`post`});let ce=()=>{W.value&&W.value.scrollTop===0&&!V.value.loadingHistory&&B(`load-more`)},Z=e=>e.sender===`self`&&z.selfAvatar||e.avatar,le=e=>e.sender===`self`?z.selfName||e.username||`Me`:e.username||`未知`,Q=e=>{let t=new Date(e);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}`},$=e=>{let t=new Date(e),n=new Date;return t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate()?Q(e):`${t.getMonth()+1}/${t.getDate()} ${Q(e)}`},ue=e=>{let t=new Date(e),n=new Date().getTime()-t.getTime();return n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)}分钟前`:n<864e5?Q(e):`${t.getMonth()+1}/${t.getDate()}`},de=e=>e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`,fe=(e,t)=>{if(t===0)return!0;let n=K.value[t-1];return new Date(e.timestamp).getTime()-new Date(n.timestamp).getTime()>300*1e3};return L({scrollToBottom:X}),(t,i)=>{let L=r.NInput,R=r.NSpin,z=r.NButton;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,[(0,n.createCommentVNode)(` ===== 联系人侧栏 ===== `),V.value.showContacts&&G.value.length?((0,n.openBlock)(),(0,n.createElementBlock)(`aside`,o,[(0,n.createElementVNode)(`div`,s,[(0,n.createVNode)(e.t,{name:`mdi:chat-outline`,size:20}),i[4]||=(0,n.createTextVNode)(` 会话 `,-1)]),(0,n.createCommentVNode)(` 搜索框 `),(0,n.createElementVNode)(`div`,c,[(0,n.createVNode)(L,{value:U.value,"onUpdate:value":i[0]||=e=>U.value=e,placeholder:`搜索联系人`,clearable:``,size:`small`},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify`,size:16})]),_:1},8,[`value`])]),(0,n.createCommentVNode)(` 联系人列表 `),(0,n.createElementVNode)(`div`,l,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(oe.value,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.id,class:(0,n.normalizeClass)([`c-chat__contact`,{"is-active":e.id===q.value}]),onClick:t=>se(e.id)},[(0,n.createElementVNode)(`div`,d,[e.avatar?((0,n.openBlock)(),(0,n.createElementBlock)(`img`,{key:0,src:e.avatar,alt:e.name,class:`c-chat__avatar`},null,8,f)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,p,(0,n.toDisplayString)(e.name.charAt(0)),1)),e.online?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,m)):(0,n.createCommentVNode)(`v-if`,!0)]),(0,n.createElementVNode)(`div`,h,[(0,n.createElementVNode)(`div`,g,[(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(e.name),1),e.lastTime?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,ee,(0,n.toDisplayString)(ue(e.lastTime)),1)):(0,n.createCommentVNode)(`v-if`,!0)]),e.lastMessage?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,te,(0,n.toDisplayString)(e.lastMessage),1)):(0,n.createCommentVNode)(`v-if`,!0)]),e.unread?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,ne,(0,n.toDisplayString)(e.unread>99?`99+`:e.unread),1)):(0,n.createCommentVNode)(`v-if`,!0)],10,u))),128))])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` ===== 主聊天区域 ===== `),J.value||!V.value.showContacts?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,re,[(0,n.createCommentVNode)(` 顶栏 `),(0,n.createElementVNode)(`div`,ie,[(0,n.renderSlot)(t.$slots,`header`,{},()=>[(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(J.value?.name||V.value.title),1),J.value?.online?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,_,` 在线 `)):(0,n.createCommentVNode)(`v-if`,!0)],!0)]),(0,n.createCommentVNode)(` 消息列表 `),(0,n.createElementVNode)(`div`,{ref_key:`messagesRef`,ref:W,class:`c-chat__messages`,onScroll:ce},[(0,n.createCommentVNode)(` 加载更多 `),V.value.loadingHistory?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,v,[(0,n.createVNode)(R,{size:`small`})])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 消息为空 `),!K.value.length&&!V.value.loadingHistory?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,y,` 暂无消息,发送第一条吧 `)):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 消息列表 `),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(K.value,(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:t.id},[(0,n.createCommentVNode)(` 时间分割 `),fe(t,r)?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,b,(0,n.toDisplayString)($(t.timestamp)),1)):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 消息条目 `),(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`c-chat__msg`,`is-${t.sender}`])},[(0,n.createCommentVNode)(` 头像 `),t.sender===`system`?(0,n.createCommentVNode)(`v-if`,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[Z(t)?((0,n.openBlock)(),(0,n.createElementBlock)(`img`,{key:0,src:Z(t),class:`c-chat__avatar`},null,8,S)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,C,(0,n.toDisplayString)(le(t).charAt(0)),1))])),(0,n.createCommentVNode)(` 消息体 `),(0,n.createElementVNode)(`div`,w,[t.sender===`other`&&t.username?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,T,(0,n.toDisplayString)(t.username),1)):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 文本消息 `),t.type===`text`||t.type===`system`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,E,(0,n.toDisplayString)(t.content),1)):t.type===`image`?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:2},[(0,n.createCommentVNode)(` 图片消息 `),(0,n.createElementVNode)(`img`,{src:t.content,class:`c-chat__msg-image`,onClick:e=>B(`image-preview`,t.content)},null,8,D)],2112)):t.type===`file`?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:3},[(0,n.createCommentVNode)(` 文件消息 `),(0,n.createElementVNode)(`div`,{class:`c-chat__msg-file`,onClick:e=>B(`file-click`,t)},[(0,n.createVNode)(e.t,{name:`mdi:file-document-outline`,size:28}),(0,n.createElementVNode)(`div`,k,[(0,n.createElementVNode)(`span`,A,(0,n.toDisplayString)(t.fileName||`文件`),1),t.fileSize?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,j,(0,n.toDisplayString)(de(t.fileSize)),1)):(0,n.createCommentVNode)(`v-if`,!0)])],8,O)],2112)):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 时间戳 `),V.value.showTimestamp&&t.sender!==`system`?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,M,(0,n.toDisplayString)(Q(t.timestamp)),1)):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 发送状态 `),t.sender===`self`&&t.status?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:5,class:(0,n.normalizeClass)([`c-chat__msg-status`,`is-${t.status}`]),onClick:e=>t.status===`failed`&&B(`resend`,t)},(0,n.toDisplayString)(t.status===`sending`?`发送中...`:t.status===`failed`?`发送失败,点击重试`:``),11,N)):(0,n.createCommentVNode)(`v-if`,!0)])],2)],64))),128))],544),(0,n.createCommentVNode)(` 输入区域 `),(0,n.createElementVNode)(`div`,P,[(0,n.createElementVNode)(`div`,F,[(0,n.renderSlot)(t.$slots,`input-actions`,{},()=>[(0,n.createVNode)(z,{quaternary:``,circle:``,size:`small`,onClick:i[1]||=e=>B(`emoji-click`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:emoticon-happy-outline`,size:18})]),_:1}),(0,n.createVNode)(z,{quaternary:``,circle:``,size:`small`,onClick:i[2]||=e=>B(`file-upload`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:paperclip`,size:18})]),_:1})],!0)]),(0,n.createElementVNode)(`div`,I,[(0,n.createVNode)(L,{value:H.value,"onUpdate:value":i[3]||=e=>H.value=e,placeholder:V.value.placeholder,type:`textarea`,autosize:{minRows:1,maxRows:4},onKeydown:(0,n.withKeys)((0,n.withModifiers)(Y,[`exact`,`prevent`]),[`enter`])},null,8,[`value`,`placeholder`,`onKeydown`])]),V.value.showSendBtn?((0,n.openBlock)(),(0,n.createBlock)(z,{key:0,type:`primary`,disabled:!H.value.trim(),class:`c-chat__send-btn`,onClick:Y},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:send`,size:16})]),_:1},8,[`disabled`])):(0,n.createCommentVNode)(`v-if`,!0)])])):((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:2},[(0,n.createCommentVNode)(` ===== 未选中联系人空态 ===== `),(0,n.createElementVNode)(`div`,ae,[(0,n.createVNode)(e.t,{name:`mdi:chat-processing-outline`,size:48,class:`c-chat__no-chat-icon`}),i[5]||=(0,n.createElementVNode)(`span`,null,`选择一个会话开始聊天`,-1)])],2112))])}}});var R=t.t(L,[[`__scopeId`,`data-v-5b4bf8dc`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return R}});
package/dist/C_Chat2.js CHANGED
@@ -1,2 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{NButton as n,NInput as ee,NSpin as te}from"naive-ui";import{Fragment as r,computed as i,createBlock as ne,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,nextTick as d,normalizeClass as f,openBlock as p,ref as m,renderList as h,renderSlot as g,resolveComponent as re,toDisplayString as _,watch as ie,withCtx as v,withKeys as ae,withModifiers as oe}from"vue";const y={placeholder:`输入消息...`,showContacts:!0,showTimestamp:!0,showSendBtn:!0,loadingHistory:!1,title:`聊天`},se={class:`c-chat`},ce={key:0,class:`c-chat__sidebar`},le={class:`c-chat__sidebar-header`},ue={class:`c-chat__search`},de={class:`c-chat__contact-list`},fe=[`onClick`],pe={class:`c-chat__contact-avatar`},me=[`src`,`alt`],b={key:1,class:`c-chat__avatar-fallback`},x={key:2,class:`c-chat__online-dot`},S={class:`c-chat__contact-info`},C={class:`c-chat__contact-name`},w={key:0,class:`c-chat__contact-time`},T={key:0,class:`c-chat__contact-last`},E={key:0,class:`c-chat__unread`},D={key:1,class:`c-chat__main`},O={class:`c-chat__header`},k={key:0,class:`c-chat__header-status`},A={key:0,class:`c-chat__load-more`},j={key:1,class:`c-chat__empty`},M={key:0,class:`c-chat__time-divider`},N={key:0,class:`c-chat__msg-avatar`},P=[`src`],F={key:1,class:`c-chat__avatar-fallback`},I={class:`c-chat__msg-body`},L={key:0,class:`c-chat__msg-username`},R={key:1,class:`c-chat__bubble`},z=[`src`,`onClick`],he=[`onClick`],ge={class:`c-chat__file-info`},_e={class:`c-chat__file-name`},ve={key:0,class:`c-chat__file-size`},ye={key:4,class:`c-chat__msg-time`},be=[`onClick`],xe={class:`c-chat__input-area`},Se={class:`c-chat__input-actions`},Ce={class:`c-chat__input-wrap`},we={class:`c-chat__main c-chat__no-chat`};var B=t(u({__name:`index`,props:{contacts:{default:()=>[]},messages:{default:()=>[]},currentContactId:{default:``},placeholder:{default:y.placeholder},showContacts:{type:Boolean,default:y.showContacts},showTimestamp:{type:Boolean,default:y.showTimestamp},selfAvatar:{default:``},selfName:{default:``},showSendBtn:{type:Boolean,default:y.showSendBtn},loadingHistory:{type:Boolean,default:y.loadingHistory},title:{default:y.title}},emits:[`send`,`select-contact`,`load-more`,`image-preview`,`file-click`,`file-upload`,`emoji-click`,`resend`],setup(t,{expose:u,emit:re}){let B=t,V=re,H=i(()=>({...y,...B})),U=m(``),W=m(``),G=m(null),K=i(()=>B.contacts??[]),q=i(()=>B.messages??[]),J=i(()=>B.currentContactId||K.value[0]?.id||``),Y=i(()=>K.value.find(e=>e.id===J.value)),Te=i(()=>{if(!W.value)return K.value;let e=W.value.toLowerCase();return K.value.filter(t=>t.name.toLowerCase().includes(e))}),Ee=e=>{V(`select-contact`,e)},X=()=>{let e=U.value.trim();e&&(V(`send`,e),U.value=``)},Z=()=>{d(()=>{G.value&&(G.value.scrollTop=G.value.scrollHeight)})};ie(()=>B.messages?.length,()=>Z(),{flush:`post`});let De=()=>{G.value&&G.value.scrollTop===0&&!H.value.loadingHistory&&V(`load-more`)},Q=e=>e.sender===`self`&&B.selfAvatar||e.avatar,Oe=e=>e.sender===`self`?B.selfName||e.username||`Me`:e.username||`未知`,$=e=>{let t=new Date(e);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}`},ke=e=>{let t=new Date(e),n=new Date;return t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate()?$(e):`${t.getMonth()+1}/${t.getDate()} ${$(e)}`},Ae=e=>{let t=new Date(e),n=new Date().getTime()-t.getTime();return n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)}分钟前`:n<864e5?$(e):`${t.getMonth()+1}/${t.getDate()}`},je=e=>e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`,Me=(e,t)=>{if(t===0)return!0;let n=q.value[t-1];return new Date(e.timestamp).getTime()-new Date(n.timestamp).getTime()>300*1e3};return u({scrollToBottom:Z}),(t,i)=>{let u=ee,d=te,m=n;return p(),o(`div`,se,[a(` ===== 联系人侧栏 ===== `),H.value.showContacts&&K.value.length?(p(),o(`aside`,ce,[s(`div`,le,[l(e,{name:`mdi:chat-outline`,size:20}),i[4]||=c(` 会话 `,-1)]),a(` 搜索框 `),s(`div`,ue,[l(u,{value:W.value,"onUpdate:value":i[0]||=e=>W.value=e,placeholder:`搜索联系人`,clearable:``,size:`small`},{prefix:v(()=>[l(e,{name:`mdi:magnify`,size:16})]),_:1},8,[`value`])]),a(` 联系人列表 `),s(`div`,de,[(p(!0),o(r,null,h(Te.value,e=>(p(),o(`div`,{key:e.id,class:f([`c-chat__contact`,{"is-active":e.id===J.value}]),onClick:t=>Ee(e.id)},[s(`div`,pe,[e.avatar?(p(),o(`img`,{key:0,src:e.avatar,alt:e.name,class:`c-chat__avatar`},null,8,me)):(p(),o(`div`,b,_(e.name.charAt(0)),1)),e.online?(p(),o(`span`,x)):a(`v-if`,!0)]),s(`div`,S,[s(`div`,C,[s(`span`,null,_(e.name),1),e.lastTime?(p(),o(`span`,w,_(Ae(e.lastTime)),1)):a(`v-if`,!0)]),e.lastMessage?(p(),o(`div`,T,_(e.lastMessage),1)):a(`v-if`,!0)]),e.unread?(p(),o(`span`,E,_(e.unread>99?`99+`:e.unread),1)):a(`v-if`,!0)],10,fe))),128))])])):a(`v-if`,!0),a(` ===== 主聊天区域 ===== `),Y.value||!H.value.showContacts?(p(),o(`div`,D,[a(` 顶栏 `),s(`div`,O,[g(t.$slots,`header`,{},()=>[s(`span`,null,_(Y.value?.name||H.value.title),1),Y.value?.online?(p(),o(`span`,k,` 在线 `)):a(`v-if`,!0)],!0)]),a(` 消息列表 `),s(`div`,{ref_key:`messagesRef`,ref:G,class:`c-chat__messages`,onScroll:De},[a(` 加载更多 `),H.value.loadingHistory?(p(),o(`div`,A,[l(d,{size:`small`})])):a(`v-if`,!0),a(` 消息为空 `),!q.value.length&&!H.value.loadingHistory?(p(),o(`div`,j,` 暂无消息,发送第一条吧 `)):a(`v-if`,!0),a(` 消息列表 `),(p(!0),o(r,null,h(q.value,(t,n)=>(p(),o(r,{key:t.id},[a(` 时间分割 `),Me(t,n)?(p(),o(`div`,M,_(ke(t.timestamp)),1)):a(`v-if`,!0),a(` 消息条目 `),s(`div`,{class:f([`c-chat__msg`,`is-${t.sender}`])},[a(` 头像 `),t.sender===`system`?a(`v-if`,!0):(p(),o(`div`,N,[Q(t)?(p(),o(`img`,{key:0,src:Q(t),class:`c-chat__avatar`},null,8,P)):(p(),o(`div`,F,_(Oe(t).charAt(0)),1))])),a(` 消息体 `),s(`div`,I,[t.sender===`other`&&t.username?(p(),o(`span`,L,_(t.username),1)):a(`v-if`,!0),a(` 文本消息 `),t.type===`text`||t.type===`system`?(p(),o(`div`,R,_(t.content),1)):t.type===`image`?(p(),o(r,{key:2},[a(` 图片消息 `),s(`img`,{src:t.content,class:`c-chat__msg-image`,onClick:e=>V(`image-preview`,t.content)},null,8,z)],2112)):t.type===`file`?(p(),o(r,{key:3},[a(` 文件消息 `),s(`div`,{class:`c-chat__msg-file`,onClick:e=>V(`file-click`,t)},[l(e,{name:`mdi:file-document-outline`,size:28}),s(`div`,ge,[s(`span`,_e,_(t.fileName||`文件`),1),t.fileSize?(p(),o(`span`,ve,_(je(t.fileSize)),1)):a(`v-if`,!0)])],8,he)],2112)):a(`v-if`,!0),a(` 时间戳 `),H.value.showTimestamp&&t.sender!==`system`?(p(),o(`span`,ye,_($(t.timestamp)),1)):a(`v-if`,!0),a(` 发送状态 `),t.sender===`self`&&t.status?(p(),o(`span`,{key:5,class:f([`c-chat__msg-status`,`is-${t.status}`]),onClick:e=>t.status===`failed`&&V(`resend`,t)},_(t.status===`sending`?`发送中...`:t.status===`failed`?`发送失败,点击重试`:``),11,be)):a(`v-if`,!0)])],2)],64))),128))],544),a(` 输入区域 `),s(`div`,xe,[s(`div`,Se,[g(t.$slots,`input-actions`,{},()=>[l(m,{quaternary:``,circle:``,size:`small`,onClick:i[1]||=e=>V(`emoji-click`)},{icon:v(()=>[l(e,{name:`mdi:emoticon-happy-outline`,size:18})]),_:1}),l(m,{quaternary:``,circle:``,size:`small`,onClick:i[2]||=e=>V(`file-upload`)},{icon:v(()=>[l(e,{name:`mdi:paperclip`,size:18})]),_:1})],!0)]),s(`div`,Ce,[l(u,{value:U.value,"onUpdate:value":i[3]||=e=>U.value=e,placeholder:H.value.placeholder,type:`textarea`,autosize:{minRows:1,maxRows:4},onKeydown:ae(oe(X,[`exact`,`prevent`]),[`enter`])},null,8,[`value`,`placeholder`,`onKeydown`])]),H.value.showSendBtn?(p(),ne(m,{key:0,type:`primary`,disabled:!U.value.trim(),class:`c-chat__send-btn`,onClick:X},{icon:v(()=>[l(e,{name:`mdi:send`,size:16})]),_:1},8,[`disabled`])):a(`v-if`,!0)])])):(p(),o(r,{key:2},[a(` ===== 未选中联系人空态 ===== `),s(`div`,we,[l(e,{name:`mdi:chat-processing-outline`,size:48,class:`c-chat__no-chat-icon`}),i[5]||=s(`span`,null,`选择一个会话开始聊天`,-1)])],2112))])}}}),[[`__scopeId`,`data-v-5b4bf8dc`]]);export{y as n,B as t};
2
- //# sourceMappingURL=C_Chat2.js.map
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as ee,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as te,createVNode as s,defineComponent as c,nextTick as l,normalizeClass as u,openBlock as d,ref as f,renderList as p,renderSlot as m,resolveComponent as ne,toDisplayString as h,watch as re,withCtx as g,withKeys as ie,withModifiers as ae}from"vue";import{NButton as oe,NInput as se,NSpin as ce}from"naive-ui";const _={placeholder:`输入消息...`,showContacts:!0,showTimestamp:!0,showSendBtn:!0,loadingHistory:!1,title:`聊天`},le={class:`c-chat`},ue={key:0,class:`c-chat__sidebar`},de={class:`c-chat__sidebar-header`},fe={class:`c-chat__search`},pe={class:`c-chat__contact-list`},me=[`onClick`],he={class:`c-chat__contact-avatar`},v=[`src`,`alt`],y={key:1,class:`c-chat__avatar-fallback`},b={key:2,class:`c-chat__online-dot`},x={class:`c-chat__contact-info`},S={class:`c-chat__contact-name`},C={key:0,class:`c-chat__contact-time`},w={key:0,class:`c-chat__contact-last`},T={key:0,class:`c-chat__unread`},E={key:1,class:`c-chat__main`},D={class:`c-chat__header`},O={key:0,class:`c-chat__header-status`},k={key:0,class:`c-chat__load-more`},A={key:1,class:`c-chat__empty`},j={key:0,class:`c-chat__time-divider`},M={key:0,class:`c-chat__msg-avatar`},N=[`src`],P={key:1,class:`c-chat__avatar-fallback`},F={class:`c-chat__msg-body`},I={key:0,class:`c-chat__msg-username`},L={key:1,class:`c-chat__bubble`},R=[`src`,`onClick`],ge=[`onClick`],_e={class:`c-chat__file-info`},ve={class:`c-chat__file-name`},ye={key:0,class:`c-chat__file-size`},z={key:4,class:`c-chat__msg-time`},be=[`onClick`],xe={class:`c-chat__input-area`},Se={class:`c-chat__input-actions`},Ce={class:`c-chat__input-wrap`},we={class:`c-chat__main c-chat__no-chat`};var B=t(c({__name:`index`,props:{contacts:{default:()=>[]},messages:{default:()=>[]},currentContactId:{default:``},placeholder:{default:_.placeholder},showContacts:{type:Boolean,default:_.showContacts},showTimestamp:{type:Boolean,default:_.showTimestamp},selfAvatar:{default:``},selfName:{default:``},showSendBtn:{type:Boolean,default:_.showSendBtn},loadingHistory:{type:Boolean,default:_.loadingHistory},title:{default:_.title}},emits:[`send`,`select-contact`,`load-more`,`image-preview`,`file-click`,`file-upload`,`emoji-click`,`resend`],setup(t,{expose:c,emit:ne}){let B=t,V=ne,H=r(()=>({..._,...B})),U=f(``),W=f(``),G=f(null),K=r(()=>B.contacts??[]),q=r(()=>B.messages??[]),J=r(()=>B.currentContactId||K.value[0]?.id||``),Y=r(()=>K.value.find(e=>e.id===J.value)),Te=r(()=>{if(!W.value)return K.value;let e=W.value.toLowerCase();return K.value.filter(t=>t.name.toLowerCase().includes(e))}),Ee=e=>{V(`select-contact`,e)},X=()=>{let e=U.value.trim();e&&(V(`send`,e),U.value=``)},Z=()=>{l(()=>{G.value&&(G.value.scrollTop=G.value.scrollHeight)})};re(()=>B.messages?.length,()=>Z(),{flush:`post`});let De=()=>{G.value&&G.value.scrollTop===0&&!H.value.loadingHistory&&V(`load-more`)},Q=e=>e.sender===`self`&&B.selfAvatar||e.avatar,Oe=e=>e.sender===`self`?B.selfName||e.username||`Me`:e.username||`未知`,$=e=>{let t=new Date(e);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}`},ke=e=>{let t=new Date(e),n=new Date;return t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate()?$(e):`${t.getMonth()+1}/${t.getDate()} ${$(e)}`},Ae=e=>{let t=new Date(e),n=new Date().getTime()-t.getTime();return n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)}分钟前`:n<864e5?$(e):`${t.getMonth()+1}/${t.getDate()}`},je=e=>e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`,Me=(e,t)=>{if(t===0)return!0;let n=q.value[t-1];return new Date(e.timestamp).getTime()-new Date(n.timestamp).getTime()>300*1e3};return c({scrollToBottom:Z}),(t,r)=>{let c=se,l=ce,f=oe;return d(),a(`div`,le,[i(` ===== 联系人侧栏 ===== `),H.value.showContacts&&K.value.length?(d(),a(`aside`,ue,[o(`div`,de,[s(e,{name:`mdi:chat-outline`,size:20}),r[4]||=te(` 会话 `,-1)]),i(` 搜索框 `),o(`div`,fe,[s(c,{value:W.value,"onUpdate:value":r[0]||=e=>W.value=e,placeholder:`搜索联系人`,clearable:``,size:`small`},{prefix:g(()=>[s(e,{name:`mdi:magnify`,size:16})]),_:1},8,[`value`])]),i(` 联系人列表 `),o(`div`,pe,[(d(!0),a(n,null,p(Te.value,e=>(d(),a(`div`,{key:e.id,class:u([`c-chat__contact`,{"is-active":e.id===J.value}]),onClick:t=>Ee(e.id)},[o(`div`,he,[e.avatar?(d(),a(`img`,{key:0,src:e.avatar,alt:e.name,class:`c-chat__avatar`},null,8,v)):(d(),a(`div`,y,h(e.name.charAt(0)),1)),e.online?(d(),a(`span`,b)):i(`v-if`,!0)]),o(`div`,x,[o(`div`,S,[o(`span`,null,h(e.name),1),e.lastTime?(d(),a(`span`,C,h(Ae(e.lastTime)),1)):i(`v-if`,!0)]),e.lastMessage?(d(),a(`div`,w,h(e.lastMessage),1)):i(`v-if`,!0)]),e.unread?(d(),a(`span`,T,h(e.unread>99?`99+`:e.unread),1)):i(`v-if`,!0)],10,me))),128))])])):i(`v-if`,!0),i(` ===== 主聊天区域 ===== `),Y.value||!H.value.showContacts?(d(),a(`div`,E,[i(` 顶栏 `),o(`div`,D,[m(t.$slots,`header`,{},()=>[o(`span`,null,h(Y.value?.name||H.value.title),1),Y.value?.online?(d(),a(`span`,O,` 在线 `)):i(`v-if`,!0)],!0)]),i(` 消息列表 `),o(`div`,{ref_key:`messagesRef`,ref:G,class:`c-chat__messages`,onScroll:De},[i(` 加载更多 `),H.value.loadingHistory?(d(),a(`div`,k,[s(l,{size:`small`})])):i(`v-if`,!0),i(` 消息为空 `),!q.value.length&&!H.value.loadingHistory?(d(),a(`div`,A,` 暂无消息,发送第一条吧 `)):i(`v-if`,!0),i(` 消息列表 `),(d(!0),a(n,null,p(q.value,(t,r)=>(d(),a(n,{key:t.id},[i(` 时间分割 `),Me(t,r)?(d(),a(`div`,j,h(ke(t.timestamp)),1)):i(`v-if`,!0),i(` 消息条目 `),o(`div`,{class:u([`c-chat__msg`,`is-${t.sender}`])},[i(` 头像 `),t.sender===`system`?i(`v-if`,!0):(d(),a(`div`,M,[Q(t)?(d(),a(`img`,{key:0,src:Q(t),class:`c-chat__avatar`},null,8,N)):(d(),a(`div`,P,h(Oe(t).charAt(0)),1))])),i(` 消息体 `),o(`div`,F,[t.sender===`other`&&t.username?(d(),a(`span`,I,h(t.username),1)):i(`v-if`,!0),i(` 文本消息 `),t.type===`text`||t.type===`system`?(d(),a(`div`,L,h(t.content),1)):t.type===`image`?(d(),a(n,{key:2},[i(` 图片消息 `),o(`img`,{src:t.content,class:`c-chat__msg-image`,onClick:e=>V(`image-preview`,t.content)},null,8,R)],2112)):t.type===`file`?(d(),a(n,{key:3},[i(` 文件消息 `),o(`div`,{class:`c-chat__msg-file`,onClick:e=>V(`file-click`,t)},[s(e,{name:`mdi:file-document-outline`,size:28}),o(`div`,_e,[o(`span`,ve,h(t.fileName||`文件`),1),t.fileSize?(d(),a(`span`,ye,h(je(t.fileSize)),1)):i(`v-if`,!0)])],8,ge)],2112)):i(`v-if`,!0),i(` 时间戳 `),H.value.showTimestamp&&t.sender!==`system`?(d(),a(`span`,z,h($(t.timestamp)),1)):i(`v-if`,!0),i(` 发送状态 `),t.sender===`self`&&t.status?(d(),a(`span`,{key:5,class:u([`c-chat__msg-status`,`is-${t.status}`]),onClick:e=>t.status===`failed`&&V(`resend`,t)},h(t.status===`sending`?`发送中...`:t.status===`failed`?`发送失败,点击重试`:``),11,be)):i(`v-if`,!0)])],2)],64))),128))],544),i(` 输入区域 `),o(`div`,xe,[o(`div`,Se,[m(t.$slots,`input-actions`,{},()=>[s(f,{quaternary:``,circle:``,size:`small`,onClick:r[1]||=e=>V(`emoji-click`)},{icon:g(()=>[s(e,{name:`mdi:emoticon-happy-outline`,size:18})]),_:1}),s(f,{quaternary:``,circle:``,size:`small`,onClick:r[2]||=e=>V(`file-upload`)},{icon:g(()=>[s(e,{name:`mdi:paperclip`,size:18})]),_:1})],!0)]),o(`div`,Ce,[s(c,{value:U.value,"onUpdate:value":r[3]||=e=>U.value=e,placeholder:H.value.placeholder,type:`textarea`,autosize:{minRows:1,maxRows:4},onKeydown:ie(ae(X,[`exact`,`prevent`]),[`enter`])},null,8,[`value`,`placeholder`,`onKeydown`])]),H.value.showSendBtn?(d(),ee(f,{key:0,type:`primary`,disabled:!U.value.trim(),class:`c-chat__send-btn`,onClick:X},{icon:g(()=>[s(e,{name:`mdi:send`,size:16})]),_:1},8,[`disabled`])):i(`v-if`,!0)])])):(d(),a(n,{key:2},[i(` ===== 未选中联系人空态 ===== `),o(`div`,we,[s(e,{name:`mdi:chat-processing-outline`,size:48,class:`c-chat__no-chat-icon`}),r[5]||=o(`span`,null,`选择一个会话开始聊天`,-1)])],2112))])}}}),[[`__scopeId`,`data-v-5b4bf8dc`]]);export{_ as n,B as t};
package/dist/C_City.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_City.js`);exports.C_City=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_City2.cjs`);exports.C_City=e.t;