react-public-components 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/README.md +5 -2
  2. package/dist/AnnouncementBar/index.cjs +3 -2
  3. package/dist/AnnouncementBar/index.css +102 -11
  4. package/dist/AnnouncementBar/index.css.map +1 -1
  5. package/dist/AnnouncementBar/index.d.ts +22 -3
  6. package/dist/AnnouncementBar/index.js +2 -1
  7. package/dist/AudioPlayer/index.cjs +3 -3
  8. package/dist/AudioPlayer/index.js +2 -2
  9. package/dist/CeilingBox/index.cjs +9 -0
  10. package/dist/CeilingBox/index.cjs.map +1 -0
  11. package/dist/CeilingBox/index.css +25 -0
  12. package/dist/CeilingBox/index.css.map +1 -0
  13. package/dist/CeilingBox/index.d.ts +28 -0
  14. package/dist/CeilingBox/index.js +3 -0
  15. package/dist/CeilingBox/index.js.map +1 -0
  16. package/dist/CodeSnippet/index.cjs +3 -2
  17. package/dist/CodeSnippet/index.css +157 -0
  18. package/dist/CodeSnippet/index.css.map +1 -1
  19. package/dist/CodeSnippet/index.d.ts +40 -4
  20. package/dist/CodeSnippet/index.js +2 -1
  21. package/dist/CodeSnippet/sandbox.d.ts +26 -0
  22. package/dist/CollapseBox/index.cjs +3 -3
  23. package/dist/CollapseBox/index.js +2 -2
  24. package/dist/ColorPicker/index.cjs +5 -5
  25. package/dist/ColorPicker/index.js +2 -2
  26. package/dist/ContextMenu/index.cjs +3 -3
  27. package/dist/ContextMenu/index.js +2 -2
  28. package/dist/CopyButton/index.cjs +3 -3
  29. package/dist/CopyButton/index.js +2 -2
  30. package/dist/CronPicker/index.cjs +4 -4
  31. package/dist/CronPicker/index.js +3 -3
  32. package/dist/DebounceSelect/index.cjs +3 -3
  33. package/dist/DebounceSelect/index.js +2 -2
  34. package/dist/DisabledBox/index.cjs +3 -3
  35. package/dist/DisabledBox/index.js +2 -2
  36. package/dist/DragSortList/index.cjs +3 -2
  37. package/dist/DragSortList/index.css +82 -13
  38. package/dist/DragSortList/index.css.map +1 -1
  39. package/dist/DragSortList/index.d.ts +8 -2
  40. package/dist/DragSortList/index.js +2 -1
  41. package/dist/FilePreviewer/index.cjs +4 -4
  42. package/dist/FilePreviewer/index.js +2 -2
  43. package/dist/Fullscreen/index.cjs +3 -3
  44. package/dist/Fullscreen/index.js +2 -2
  45. package/dist/GuidedTour/index.cjs +3 -3
  46. package/dist/GuidedTour/index.js +2 -2
  47. package/dist/ImageCropper/index.cjs +3 -3
  48. package/dist/ImageCropper/index.js +2 -2
  49. package/dist/InfiniteScrollList/index.cjs +3 -3
  50. package/dist/InfiniteScrollList/index.js +2 -2
  51. package/dist/JsonEditor/index.cjs +4 -4
  52. package/dist/JsonEditor/index.js +3 -3
  53. package/dist/KeyValEditor/index.cjs +3 -3
  54. package/dist/KeyValEditor/index.js +2 -2
  55. package/dist/LazyLoadBox/index.cjs +18 -0
  56. package/dist/LazyLoadBox/index.cjs.map +1 -0
  57. package/dist/LazyLoadBox/index.css +57 -0
  58. package/dist/LazyLoadBox/index.css.map +1 -0
  59. package/dist/LazyLoadBox/index.d.ts +104 -0
  60. package/dist/LazyLoadBox/index.js +3 -0
  61. package/dist/LazyLoadBox/index.js.map +1 -0
  62. package/dist/PasswordStrength/index.cjs +4 -4
  63. package/dist/PasswordStrength/index.js +2 -2
  64. package/dist/PdfViewer/index.cjs +3 -3
  65. package/dist/PdfViewer/index.js +2 -2
  66. package/dist/PeriodSelect/index.cjs +22 -0
  67. package/dist/PeriodSelect/index.cjs.map +1 -0
  68. package/dist/PeriodSelect/index.css +88 -0
  69. package/dist/PeriodSelect/index.css.map +1 -0
  70. package/dist/PeriodSelect/index.d.ts +36 -0
  71. package/dist/PeriodSelect/index.js +3 -0
  72. package/dist/PeriodSelect/index.js.map +1 -0
  73. package/dist/QrCodeCard/index.cjs +3 -3
  74. package/dist/QrCodeCard/index.css +122 -32
  75. package/dist/QrCodeCard/index.css.map +1 -1
  76. package/dist/QrCodeCard/index.d.ts +10 -2
  77. package/dist/QrCodeCard/index.js +2 -2
  78. package/dist/SensitiveMask/index.cjs +5 -5
  79. package/dist/SensitiveMask/index.js +3 -3
  80. package/dist/Splitter/index.cjs +3 -3
  81. package/dist/Splitter/index.js +2 -2
  82. package/dist/TagInput/index.cjs +3 -3
  83. package/dist/TagInput/index.js +2 -2
  84. package/dist/TextEllipsis/index.cjs +4 -4
  85. package/dist/TextEllipsis/index.js +3 -3
  86. package/dist/TreeTransfer/index.cjs +3 -3
  87. package/dist/TreeTransfer/index.js +2 -2
  88. package/dist/VideoPlayer/index.cjs +3 -3
  89. package/dist/VideoPlayer/index.js +2 -2
  90. package/dist/{chunk-GV2RRQ2S.cjs → chunk-2EIAWXFA.cjs} +5 -5
  91. package/dist/{chunk-GV2RRQ2S.cjs.map → chunk-2EIAWXFA.cjs.map} +1 -1
  92. package/dist/{chunk-ISUXPTLV.js → chunk-2IDVNTKR.js} +93 -3
  93. package/dist/chunk-2IDVNTKR.js.map +1 -0
  94. package/dist/{chunk-6FVAQECF.js → chunk-2INP6NM4.js} +3 -3
  95. package/dist/{chunk-6FVAQECF.js.map → chunk-2INP6NM4.js.map} +1 -1
  96. package/dist/chunk-4KMVABTM.js +419 -0
  97. package/dist/chunk-4KMVABTM.js.map +1 -0
  98. package/dist/{chunk-VS2YVJOB.cjs → chunk-4TMBGQQE.cjs} +5 -5
  99. package/dist/{chunk-VS2YVJOB.cjs.map → chunk-4TMBGQQE.cjs.map} +1 -1
  100. package/dist/{chunk-PJB7ADK6.js → chunk-56VELHCH.js} +3 -3
  101. package/dist/{chunk-PJB7ADK6.js.map → chunk-56VELHCH.js.map} +1 -1
  102. package/dist/chunk-5Q7THN6M.js +115 -0
  103. package/dist/chunk-5Q7THN6M.js.map +1 -0
  104. package/dist/{chunk-4BDO5TJH.cjs → chunk-77ANKL4K.cjs} +8 -8
  105. package/dist/{chunk-4BDO5TJH.cjs.map → chunk-77ANKL4K.cjs.map} +1 -1
  106. package/dist/{chunk-OCN7L2ID.cjs → chunk-7ZBA4NHH.cjs} +4 -4
  107. package/dist/{chunk-OCN7L2ID.cjs.map → chunk-7ZBA4NHH.cjs.map} +1 -1
  108. package/dist/{chunk-MY4M7HVW.cjs → chunk-AHTRLNYK.cjs} +5 -5
  109. package/dist/{chunk-MY4M7HVW.cjs.map → chunk-AHTRLNYK.cjs.map} +1 -1
  110. package/dist/{chunk-WEOMKZC6.js → chunk-ANTFNDH4.js} +3 -3
  111. package/dist/{chunk-WEOMKZC6.js.map → chunk-ANTFNDH4.js.map} +1 -1
  112. package/dist/{chunk-EGZSSZBX.js → chunk-AXPVN2OO.js} +3 -3
  113. package/dist/{chunk-EGZSSZBX.js.map → chunk-AXPVN2OO.js.map} +1 -1
  114. package/dist/{chunk-LLWK5VKA.js → chunk-CURWX7OY.js} +3 -3
  115. package/dist/{chunk-LLWK5VKA.js.map → chunk-CURWX7OY.js.map} +1 -1
  116. package/dist/{chunk-WZRUBHS3.cjs → chunk-ED3ZG2VX.cjs} +5 -5
  117. package/dist/{chunk-WZRUBHS3.cjs.map → chunk-ED3ZG2VX.cjs.map} +1 -1
  118. package/dist/{chunk-BZXMWKD2.js → chunk-EDNBPLUS.js} +3 -3
  119. package/dist/{chunk-BZXMWKD2.js.map → chunk-EDNBPLUS.js.map} +1 -1
  120. package/dist/{chunk-MC3NERDH.js → chunk-EJYTTSW6.js} +3 -3
  121. package/dist/{chunk-MC3NERDH.js.map → chunk-EJYTTSW6.js.map} +1 -1
  122. package/dist/{chunk-3UNZXPOT.cjs → chunk-EKDJPOA3.cjs} +5 -5
  123. package/dist/{chunk-3UNZXPOT.cjs.map → chunk-EKDJPOA3.cjs.map} +1 -1
  124. package/dist/{chunk-XWXFENGT.js → chunk-EMT4NUI5.js} +3 -3
  125. package/dist/{chunk-XWXFENGT.js.map → chunk-EMT4NUI5.js.map} +1 -1
  126. package/dist/{chunk-HFPWBZID.js → chunk-ETFLLRTO.js} +3 -3
  127. package/dist/{chunk-HFPWBZID.js.map → chunk-ETFLLRTO.js.map} +1 -1
  128. package/dist/chunk-FZH5FL7X.cjs +167 -0
  129. package/dist/chunk-FZH5FL7X.cjs.map +1 -0
  130. package/dist/{chunk-6UKUAYN3.cjs → chunk-HKALWFWZ.cjs} +5 -5
  131. package/dist/{chunk-6UKUAYN3.cjs.map → chunk-HKALWFWZ.cjs.map} +1 -1
  132. package/dist/{chunk-IBOCJ2ZS.js → chunk-IF4XAUV3.js} +3 -3
  133. package/dist/{chunk-IBOCJ2ZS.js.map → chunk-IF4XAUV3.js.map} +1 -1
  134. package/dist/{chunk-MNY5P5EG.cjs → chunk-IPS7PC3M.cjs} +13 -13
  135. package/dist/{chunk-MNY5P5EG.cjs.map → chunk-IPS7PC3M.cjs.map} +1 -1
  136. package/dist/{chunk-V4O325BX.cjs → chunk-JHVPDKBM.cjs} +6 -6
  137. package/dist/{chunk-V4O325BX.cjs.map → chunk-JHVPDKBM.cjs.map} +1 -1
  138. package/dist/{chunk-6IXVUD2M.js → chunk-JNA5AQ2K.js} +3 -3
  139. package/dist/{chunk-6IXVUD2M.js.map → chunk-JNA5AQ2K.js.map} +1 -1
  140. package/dist/{chunk-NJIYP6SC.cjs → chunk-LFGBZXQH.cjs} +4 -4
  141. package/dist/{chunk-NJIYP6SC.cjs.map → chunk-LFGBZXQH.cjs.map} +1 -1
  142. package/dist/{chunk-ZLWY7QS2.cjs → chunk-M3GQ7RCV.cjs} +4 -4
  143. package/dist/{chunk-ZLWY7QS2.cjs.map → chunk-M3GQ7RCV.cjs.map} +1 -1
  144. package/dist/{chunk-AFR7V4A4.js → chunk-M4FZJALR.js} +4 -4
  145. package/dist/{chunk-AFR7V4A4.js.map → chunk-M4FZJALR.js.map} +1 -1
  146. package/dist/{chunk-CT66HLZ5.js → chunk-MQJBUHDB.js} +3 -3
  147. package/dist/{chunk-CT66HLZ5.js.map → chunk-MQJBUHDB.js.map} +1 -1
  148. package/dist/chunk-O4EABET3.js +89 -0
  149. package/dist/chunk-O4EABET3.js.map +1 -0
  150. package/dist/{chunk-V7IUSCQS.js → chunk-OLLVIQPL.js} +3 -3
  151. package/dist/{chunk-V7IUSCQS.js.map → chunk-OLLVIQPL.js.map} +1 -1
  152. package/dist/{chunk-2DIU347W.cjs → chunk-OONBZRPV.cjs} +4 -4
  153. package/dist/{chunk-2DIU347W.cjs.map → chunk-OONBZRPV.cjs.map} +1 -1
  154. package/dist/{chunk-56TD4LDC.js → chunk-P5CS7V4W.js} +3 -3
  155. package/dist/{chunk-56TD4LDC.js.map → chunk-P5CS7V4W.js.map} +1 -1
  156. package/dist/{chunk-HUXPCMNP.js → chunk-PTFKE67K.js} +3 -3
  157. package/dist/{chunk-HUXPCMNP.js.map → chunk-PTFKE67K.js.map} +1 -1
  158. package/dist/{chunk-PUTAVQJZ.js → chunk-PUMVD7CP.js} +3 -3
  159. package/dist/{chunk-PUTAVQJZ.js.map → chunk-PUMVD7CP.js.map} +1 -1
  160. package/dist/{chunk-KXZM322K.cjs → chunk-PYCSRJSF.cjs} +7 -7
  161. package/dist/{chunk-KXZM322K.cjs.map → chunk-PYCSRJSF.cjs.map} +1 -1
  162. package/dist/{chunk-PUJJHD22.js → chunk-Q7OVUH5K.js} +3 -3
  163. package/dist/{chunk-PUJJHD22.js.map → chunk-Q7OVUH5K.js.map} +1 -1
  164. package/dist/{chunk-2UCTE6YN.cjs → chunk-QP3RKA4J.cjs} +4 -4
  165. package/dist/{chunk-2UCTE6YN.cjs.map → chunk-QP3RKA4J.cjs.map} +1 -1
  166. package/dist/{chunk-OKCQZO5E.js → chunk-QRZ2GVVJ.js} +3 -3
  167. package/dist/{chunk-OKCQZO5E.js.map → chunk-QRZ2GVVJ.js.map} +1 -1
  168. package/dist/chunk-QU33CY3M.cjs +83 -0
  169. package/dist/chunk-QU33CY3M.cjs.map +1 -0
  170. package/dist/{chunk-MBOWSS4B.cjs → chunk-R4V3EJVP.cjs} +98 -2
  171. package/dist/chunk-R4V3EJVP.cjs.map +1 -0
  172. package/dist/chunk-RFTYEXKU.js +79 -0
  173. package/dist/chunk-RFTYEXKU.js.map +1 -0
  174. package/dist/{chunk-4OXVTRYV.cjs → chunk-RN5WU7KA.cjs} +7 -7
  175. package/dist/{chunk-4OXVTRYV.cjs.map → chunk-RN5WU7KA.cjs.map} +1 -1
  176. package/dist/{chunk-WWXBH57R.cjs → chunk-TNZ2OLGW.cjs} +4 -4
  177. package/dist/{chunk-WWXBH57R.cjs.map → chunk-TNZ2OLGW.cjs.map} +1 -1
  178. package/dist/chunk-TUDLE3RT.cjs +429 -0
  179. package/dist/chunk-TUDLE3RT.cjs.map +1 -0
  180. package/dist/{chunk-B7NN6SZD.cjs → chunk-TUEVILTA.cjs} +5 -5
  181. package/dist/{chunk-B7NN6SZD.cjs.map → chunk-TUEVILTA.cjs.map} +1 -1
  182. package/dist/{chunk-ZUW3XLZQ.cjs → chunk-U2EBNBGK.cjs} +4 -4
  183. package/dist/{chunk-ZUW3XLZQ.cjs.map → chunk-U2EBNBGK.cjs.map} +1 -1
  184. package/dist/{chunk-JAW7Q2YC.cjs → chunk-UAUP5TJK.cjs} +5 -5
  185. package/dist/{chunk-JAW7Q2YC.cjs.map → chunk-UAUP5TJK.cjs.map} +1 -1
  186. package/dist/chunk-UIU6VCEQ.cjs +117 -0
  187. package/dist/chunk-UIU6VCEQ.cjs.map +1 -0
  188. package/dist/{chunk-2MDYHFLH.cjs → chunk-UZB7GOEI.cjs} +4 -4
  189. package/dist/{chunk-2MDYHFLH.cjs.map → chunk-UZB7GOEI.cjs.map} +1 -1
  190. package/dist/chunk-V55FEQYU.cjs +196 -0
  191. package/dist/chunk-V55FEQYU.cjs.map +1 -0
  192. package/dist/{chunk-ZNFW6L3E.cjs → chunk-VJOO2DG3.cjs} +8 -8
  193. package/dist/{chunk-ZNFW6L3E.cjs.map → chunk-VJOO2DG3.cjs.map} +1 -1
  194. package/dist/chunk-VYPIRVL4.js +193 -0
  195. package/dist/chunk-VYPIRVL4.js.map +1 -0
  196. package/dist/{chunk-JECYRODB.js → chunk-W5JA3YTT.js} +3 -3
  197. package/dist/{chunk-JECYRODB.js.map → chunk-W5JA3YTT.js.map} +1 -1
  198. package/dist/{chunk-QZZGBUW4.js → chunk-WKF4C6TJ.js} +3 -3
  199. package/dist/{chunk-QZZGBUW4.js.map → chunk-WKF4C6TJ.js.map} +1 -1
  200. package/dist/{chunk-64LBDDZU.js → chunk-XLOGMDAQ.js} +3 -3
  201. package/dist/{chunk-64LBDDZU.js.map → chunk-XLOGMDAQ.js.map} +1 -1
  202. package/dist/chunk-XUAHWX6B.js +153 -0
  203. package/dist/chunk-XUAHWX6B.js.map +1 -0
  204. package/dist/chunk-Y54KVULF.js +161 -0
  205. package/dist/chunk-Y54KVULF.js.map +1 -0
  206. package/dist/{chunk-NUTVJGVT.cjs → chunk-YP4XTMK3.cjs} +4 -4
  207. package/dist/{chunk-NUTVJGVT.cjs.map → chunk-YP4XTMK3.cjs.map} +1 -1
  208. package/dist/{chunk-MGUNFP6P.js → chunk-ZCBT56AG.js} +3 -3
  209. package/dist/{chunk-MGUNFP6P.js.map → chunk-ZCBT56AG.js.map} +1 -1
  210. package/dist/chunk-ZWKUHYTV.cjs +155 -0
  211. package/dist/chunk-ZWKUHYTV.cjs.map +1 -0
  212. package/dist/chunk-ZXMFWVE4.cjs +91 -0
  213. package/dist/chunk-ZXMFWVE4.cjs.map +1 -0
  214. package/dist/index.cjs +139 -104
  215. package/dist/index.css +633 -56
  216. package/dist/index.css.map +1 -1
  217. package/dist/index.js +40 -37
  218. package/dist/src/icons.d.ts +18 -0
  219. package/dist/src/index.d.ts +10 -2
  220. package/package.json +1 -1
  221. package/dist/chunk-5VSEUDVY.js +0 -45
  222. package/dist/chunk-5VSEUDVY.js.map +0 -1
  223. package/dist/chunk-5YQVSOHK.js +0 -44
  224. package/dist/chunk-5YQVSOHK.js.map +0 -1
  225. package/dist/chunk-B3HZIYQQ.cjs +0 -46
  226. package/dist/chunk-B3HZIYQQ.cjs.map +0 -1
  227. package/dist/chunk-EOGYWPX7.cjs +0 -47
  228. package/dist/chunk-EOGYWPX7.cjs.map +0 -1
  229. package/dist/chunk-EQ7S5SYM.js +0 -67
  230. package/dist/chunk-EQ7S5SYM.js.map +0 -1
  231. package/dist/chunk-FYFL4PFD.cjs +0 -69
  232. package/dist/chunk-FYFL4PFD.cjs.map +0 -1
  233. package/dist/chunk-ISUXPTLV.js.map +0 -1
  234. package/dist/chunk-JEDW76LI.cjs +0 -107
  235. package/dist/chunk-JEDW76LI.cjs.map +0 -1
  236. package/dist/chunk-MBOWSS4B.cjs.map +0 -1
  237. package/dist/chunk-XOMV26WS.js +0 -105
  238. package/dist/chunk-XOMV26WS.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkMBOWSS4B_cjs = require('./chunk-MBOWSS4B.cjs');
3
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
4
4
  var react = require('react');
5
5
  var ReactDOM = require('react-dom');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -60,13 +60,13 @@ var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className
60
60
  const renderFileIcon = () => {
61
61
  switch (type) {
62
62
  case "image":
63
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.FileImageOutlined, { style: { color: "#1677ff" } });
63
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.FileImageOutlined, { style: { color: "#1677ff" } });
64
64
  case "pdf":
65
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.FilePdfOutlined, { style: { color: "#ff4d4f" } });
65
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.FilePdfOutlined, { style: { color: "#ff4d4f" } });
66
66
  case "text":
67
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.FileTextOutlined, { style: { color: "#52c41a" } });
67
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.FileTextOutlined, { style: { color: "#52c41a" } });
68
68
  default:
69
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.FileOutlined, { style: { color: "#8c8c8c" } });
69
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.FileOutlined, { style: { color: "#8c8c8c" } });
70
70
  }
71
71
  };
72
72
  const renderBodyContent = () => {
@@ -138,7 +138,7 @@ var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className
138
138
  fontSize: 14
139
139
  },
140
140
  children: [
141
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.DownloadOutlined, {}),
141
+ /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.DownloadOutlined, {}),
142
142
  " \u7ACB\u5373\u4E0B\u8F7D"
143
143
  ]
144
144
  }
@@ -162,7 +162,7 @@ var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className
162
162
  className: "rpc_file_previewer_modal_action_btn",
163
163
  onClick: () => setImageScale((s) => Math.min(s + 0.2, 3)),
164
164
  title: "\u653E\u5927",
165
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.ZoomInOutlined, {})
165
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.ZoomInOutlined, {})
166
166
  }
167
167
  ),
168
168
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -172,7 +172,7 @@ var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className
172
172
  className: "rpc_file_previewer_modal_action_btn",
173
173
  onClick: () => setImageScale((s) => Math.max(s - 0.2, 0.4)),
174
174
  title: "\u7F29\u5C0F",
175
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.ZoomOutOutlined, {})
175
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.ZoomOutOutlined, {})
176
176
  }
177
177
  ),
178
178
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -182,7 +182,7 @@ var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className
182
182
  className: "rpc_file_previewer_modal_action_btn",
183
183
  onClick: () => setImageRotate((r) => (r + 90) % 360),
184
184
  title: "\u987A\u65F6\u9488\u65CB\u8F6C90\xB0",
185
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.RotateRightOutlined, {})
185
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.RotateRightOutlined, {})
186
186
  }
187
187
  )
188
188
  ] }),
@@ -193,7 +193,7 @@ var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className
193
193
  className: "rpc_file_previewer_modal_action_btn",
194
194
  onClick: handleDefaultDownload,
195
195
  title: "\u4E0B\u8F7D\u6587\u4EF6",
196
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.DownloadOutlined, {})
196
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.DownloadOutlined, {})
197
197
  }
198
198
  ),
199
199
  extraActions,
@@ -204,7 +204,7 @@ var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className
204
204
  className: "rpc_file_previewer_modal_action_btn",
205
205
  onClick: onCancel,
206
206
  title: "\u5173\u95ED\u9884\u89C8 (ESC)",
207
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.CloseOutlined, {})
207
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CloseOutlined, {})
208
208
  }
209
209
  )
210
210
  ] })
@@ -228,5 +228,5 @@ var FilePreviewer_default = FilePreviewer;
228
228
 
229
229
  exports.FilePreviewer_default = FilePreviewer_default;
230
230
  exports.inferFileType = inferFileType;
231
- //# sourceMappingURL=chunk-MNY5P5EG.cjs.map
232
- //# sourceMappingURL=chunk-MNY5P5EG.cjs.map
231
+ //# sourceMappingURL=chunk-IPS7PC3M.cjs.map
232
+ //# sourceMappingURL=chunk-IPS7PC3M.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../FilePreviewer/index.tsx"],"names":["useState","useEffect","FileImageOutlined","FilePdfOutlined","FileTextOutlined","FileOutlined","jsx","jsxs","DownloadOutlined","ReactDOM","Fragment","ZoomInOutlined","ZoomOutOutlined","RotateRightOutlined","CloseOutlined"],"mappings":"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","file":"chunk-MNY5P5EG.cjs","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tCloseOutlined,\n\tRotateRightOutlined,\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tDownloadOutlined,\n\tFilePdfOutlined,\n\tFileImageOutlined,\n\tFileTextOutlined,\n\tFileOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport type FileType = 'image' | 'video' | 'audio' | 'pdf' | 'text' | 'unknown';\n\nexport interface FileItem {\n\t/** 文件访问 URL 或 Base64 */\n\turl: string;\n\t/** 文件名称 */\n\tname?: string;\n\t/** 文件类型(如不传则根据文件名后缀或 URL 自动推断) */\n\tfileType?: FileType;\n\t/** 文件大小描述(如 '2.4 MB') */\n\tsize?: string;\n\t/** 纯文本内容(针对直接传入 text 字符串预览) */\n\ttextContent?: string;\n}\n\nexport interface FilePreviewerProps {\n\t/** 是否打开预览弹窗 */\n\topen: boolean;\n\t/** 当前预览的文件对象或 URL 字符串 */\n\tfile?: FileItem | string | null;\n\t/** 关闭弹窗回调 */\n\tonCancel?: () => void;\n\t/** 自定义下载行为(不传时使用默认浏览器下载) */\n\tonDownload?: (file: FileItem) => void;\n\t/** 自定义标题栏右侧额外操作按钮 */\n\textraActions?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 根据文件名或 URL 后缀推断文件类型\nexport function inferFileType(urlOrName: string): FileType {\n\tif (!urlOrName) return 'unknown';\n\tconst clean = urlOrName.split('?')[0].split('#')[0].toLowerCase();\n\tconst ext = clean.substring(clean.lastIndexOf('.') + 1);\n\n\tif (['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'bmp', 'ico'].includes(ext)) {\n\t\treturn 'image';\n\t}\n\tif (['mp4', 'webm', 'ogg', 'mov', 'mkv'].includes(ext)) {\n\t\treturn 'video';\n\t}\n\tif (['mp3', 'wav', 'aac', 'flac', 'm4a'].includes(ext)) {\n\t\treturn 'audio';\n\t}\n\tif (['pdf'].includes(ext)) {\n\t\treturn 'pdf';\n\t}\n\tif (\n\t\t['txt', 'json', 'js', 'ts', 'jsx', 'tsx', 'html', 'css', 'less', 'md', 'log', 'xml'].includes(\n\t\t\text,\n\t\t)\n\t) {\n\t\treturn 'text';\n\t}\n\treturn 'unknown';\n}\n\nconst FilePreviewer: React.FC<FilePreviewerProps> & {\n\tpreview: (options: FileItem) => { close: () => void };\n} = ({ open, file, onCancel, onDownload, extraActions, className = '', style }) => {\n\t// 图片控制状态\n\tconst [imageScale, setImageScale] = useState<number>(1);\n\tconst [imageRotate, setImageRotate] = useState<number>(0);\n\n\tuseEffect(() => {\n\t\tif (open) {\n\t\t\tsetImageScale(1);\n\t\t\tsetImageRotate(0);\n\t\t}\n\t}, [open, file]);\n\n\tif (!open || !file) return null;\n\n\tconst currentFile: FileItem =\n\t\ttypeof file === 'string'\n\t\t\t? { url: file, name: file.substring(file.lastIndexOf('/') + 1) }\n\t\t\t: file;\n\n\tconst type: FileType = currentFile.fileType || inferFileType(currentFile.name || currentFile.url);\n\n\t// 默认下载处理\n\tconst handleDefaultDownload = () => {\n\t\tif (onDownload) {\n\t\t\tonDownload(currentFile);\n\t\t\treturn;\n\t\t}\n\t\tconst a = document.createElement('a');\n\t\ta.href = currentFile.url;\n\t\ta.download = currentFile.name || 'download';\n\t\ta.target = '_blank';\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\ta.remove();\n\t};\n\n\t// 渲染文件图标\n\tconst renderFileIcon = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn <FileImageOutlined style={{ color: '#1677ff' }} />;\n\t\t\tcase 'pdf':\n\t\t\t\treturn <FilePdfOutlined style={{ color: '#ff4d4f' }} />;\n\t\t\tcase 'text':\n\t\t\t\treturn <FileTextOutlined style={{ color: '#52c41a' }} />;\n\t\t\tdefault:\n\t\t\t\treturn <FileOutlined style={{ color: '#8c8c8c' }} />;\n\t\t}\n\t};\n\n\t// 渲染主体内容\n\tconst renderBodyContent = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\talt={currentFile.name || 'Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_image\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttransform: `scale(${imageScale}) rotate(${imageRotate}deg)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'video':\n\t\t\t\treturn (\n\t\t\t\t\t<video\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\tcontrols\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_media\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'audio':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_audio_wrap\">\n\t\t\t\t\t\t<div style={{ fontSize: 48 }}>🎵</div>\n\t\t\t\t\t\t<div style={{ fontSize: 16, fontWeight: 600 }}>{currentFile.name || '音频播放'}</div>\n\t\t\t\t\t\t<audio src={currentFile.url} controls autoPlay style={{ width: 320 }} />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tcase 'pdf':\n\t\t\t\treturn (\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\ttitle={currentFile.name || 'PDF Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_iframe\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'text':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_text_wrap\">\n\t\t\t\t\t\t{currentFile.textContent || '正在加载文件内容...'}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_fallback_card\">\n\t\t\t\t\t\t<div style={{ fontSize: 48, color: '#8c8c8c' }}>📦</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h4 style={{ margin: '0 0 6px 0', fontSize: 16, color: '#1f1f1f' }}>\n\t\t\t\t\t\t\t\t{currentFile.name || '未知文件'}\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t<p style={{ margin: 0, color: '#8c8c8c', fontSize: 13 }}>\n\t\t\t\t\t\t\t\t该格式暂不支持直接在线预览,请下载后在本地查看。\n\t\t\t\t\t\t\t\t{currentFile.size ? `(${currentFile.size})` : ''}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\tgap: 6,\n\t\t\t\t\t\t\t\tpadding: '8px 20px',\n\t\t\t\t\t\t\t\tbackground: '#1677ff',\n\t\t\t\t\t\t\t\tcolor: '#fff',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tborderRadius: 6,\n\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined /> 立即下载\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn ReactDOM.createPortal(\n\t\t<div className={`rpc_file_previewer_modal ${className}`} onClick={onCancel} style={style}>\n\t\t\t<div className=\"rpc_file_previewer_modal_card\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t{/* 顶部标题栏与工具栏 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_header\">\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_title\">\n\t\t\t\t\t\t{renderFileIcon()}\n\t\t\t\t\t\t<span>{currentFile.name || '文件预览'}</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_actions\">\n\t\t\t\t\t\t{type === 'image' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.min(s + 0.2, 3))}\n\t\t\t\t\t\t\t\t\ttitle=\"放大\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomInOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.max(s - 0.2, 0.4))}\n\t\t\t\t\t\t\t\t\ttitle=\"缩小\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomOutOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageRotate((r) => (r + 90) % 360)}\n\t\t\t\t\t\t\t\t\ttitle=\"顺时针旋转90°\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<RotateRightOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\ttitle=\"下载文件\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t{extraActions}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\ttitle=\"关闭预览 (ESC)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* 预览主体内容区域 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_body\">{renderBodyContent()}</div>\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body,\n\t);\n};\n\n// 命令式调用方法\nFilePreviewer.preview = (options: FileItem) => {\n\tconst div = document.createElement('div');\n\tdocument.body.appendChild(div);\n\n\tconst close = () => {\n\t\tReactDOM.render(<></>, div);\n\t\tdiv.remove();\n\t};\n\n\tReactDOM.render(<FilePreviewer open={true} file={options} onCancel={close} />, div);\n\n\treturn { close };\n};\n\nexport default FilePreviewer;\n"]}
1
+ {"version":3,"sources":["../FilePreviewer/index.tsx"],"names":["useState","useEffect","FileImageOutlined","FilePdfOutlined","FileTextOutlined","FileOutlined","jsx","jsxs","DownloadOutlined","ReactDOM","Fragment","ZoomInOutlined","ZoomOutOutlined","RotateRightOutlined","CloseOutlined"],"mappings":"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","file":"chunk-IPS7PC3M.cjs","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tCloseOutlined,\n\tRotateRightOutlined,\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tDownloadOutlined,\n\tFilePdfOutlined,\n\tFileImageOutlined,\n\tFileTextOutlined,\n\tFileOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport type FileType = 'image' | 'video' | 'audio' | 'pdf' | 'text' | 'unknown';\n\nexport interface FileItem {\n\t/** 文件访问 URL 或 Base64 */\n\turl: string;\n\t/** 文件名称 */\n\tname?: string;\n\t/** 文件类型(如不传则根据文件名后缀或 URL 自动推断) */\n\tfileType?: FileType;\n\t/** 文件大小描述(如 '2.4 MB') */\n\tsize?: string;\n\t/** 纯文本内容(针对直接传入 text 字符串预览) */\n\ttextContent?: string;\n}\n\nexport interface FilePreviewerProps {\n\t/** 是否打开预览弹窗 */\n\topen: boolean;\n\t/** 当前预览的文件对象或 URL 字符串 */\n\tfile?: FileItem | string | null;\n\t/** 关闭弹窗回调 */\n\tonCancel?: () => void;\n\t/** 自定义下载行为(不传时使用默认浏览器下载) */\n\tonDownload?: (file: FileItem) => void;\n\t/** 自定义标题栏右侧额外操作按钮 */\n\textraActions?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 根据文件名或 URL 后缀推断文件类型\nexport function inferFileType(urlOrName: string): FileType {\n\tif (!urlOrName) return 'unknown';\n\tconst clean = urlOrName.split('?')[0].split('#')[0].toLowerCase();\n\tconst ext = clean.substring(clean.lastIndexOf('.') + 1);\n\n\tif (['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'bmp', 'ico'].includes(ext)) {\n\t\treturn 'image';\n\t}\n\tif (['mp4', 'webm', 'ogg', 'mov', 'mkv'].includes(ext)) {\n\t\treturn 'video';\n\t}\n\tif (['mp3', 'wav', 'aac', 'flac', 'm4a'].includes(ext)) {\n\t\treturn 'audio';\n\t}\n\tif (['pdf'].includes(ext)) {\n\t\treturn 'pdf';\n\t}\n\tif (\n\t\t['txt', 'json', 'js', 'ts', 'jsx', 'tsx', 'html', 'css', 'less', 'md', 'log', 'xml'].includes(\n\t\t\text,\n\t\t)\n\t) {\n\t\treturn 'text';\n\t}\n\treturn 'unknown';\n}\n\nconst FilePreviewer: React.FC<FilePreviewerProps> & {\n\tpreview: (options: FileItem) => { close: () => void };\n} = ({ open, file, onCancel, onDownload, extraActions, className = '', style }) => {\n\t// 图片控制状态\n\tconst [imageScale, setImageScale] = useState<number>(1);\n\tconst [imageRotate, setImageRotate] = useState<number>(0);\n\n\tuseEffect(() => {\n\t\tif (open) {\n\t\t\tsetImageScale(1);\n\t\t\tsetImageRotate(0);\n\t\t}\n\t}, [open, file]);\n\n\tif (!open || !file) return null;\n\n\tconst currentFile: FileItem =\n\t\ttypeof file === 'string'\n\t\t\t? { url: file, name: file.substring(file.lastIndexOf('/') + 1) }\n\t\t\t: file;\n\n\tconst type: FileType = currentFile.fileType || inferFileType(currentFile.name || currentFile.url);\n\n\t// 默认下载处理\n\tconst handleDefaultDownload = () => {\n\t\tif (onDownload) {\n\t\t\tonDownload(currentFile);\n\t\t\treturn;\n\t\t}\n\t\tconst a = document.createElement('a');\n\t\ta.href = currentFile.url;\n\t\ta.download = currentFile.name || 'download';\n\t\ta.target = '_blank';\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\ta.remove();\n\t};\n\n\t// 渲染文件图标\n\tconst renderFileIcon = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn <FileImageOutlined style={{ color: '#1677ff' }} />;\n\t\t\tcase 'pdf':\n\t\t\t\treturn <FilePdfOutlined style={{ color: '#ff4d4f' }} />;\n\t\t\tcase 'text':\n\t\t\t\treturn <FileTextOutlined style={{ color: '#52c41a' }} />;\n\t\t\tdefault:\n\t\t\t\treturn <FileOutlined style={{ color: '#8c8c8c' }} />;\n\t\t}\n\t};\n\n\t// 渲染主体内容\n\tconst renderBodyContent = () => {\n\t\tswitch (type) {\n\t\t\tcase 'image':\n\t\t\t\treturn (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\talt={currentFile.name || 'Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_image\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttransform: `scale(${imageScale}) rotate(${imageRotate}deg)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'video':\n\t\t\t\treturn (\n\t\t\t\t\t<video\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\tcontrols\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_media\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'audio':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_audio_wrap\">\n\t\t\t\t\t\t<div style={{ fontSize: 48 }}>🎵</div>\n\t\t\t\t\t\t<div style={{ fontSize: 16, fontWeight: 600 }}>{currentFile.name || '音频播放'}</div>\n\t\t\t\t\t\t<audio src={currentFile.url} controls autoPlay style={{ width: 320 }} />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tcase 'pdf':\n\t\t\t\treturn (\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tsrc={currentFile.url}\n\t\t\t\t\t\ttitle={currentFile.name || 'PDF Preview'}\n\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_iframe\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'text':\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_text_wrap\">\n\t\t\t\t\t\t{currentFile.textContent || '正在加载文件内容...'}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_fallback_card\">\n\t\t\t\t\t\t<div style={{ fontSize: 48, color: '#8c8c8c' }}>📦</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h4 style={{ margin: '0 0 6px 0', fontSize: 16, color: '#1f1f1f' }}>\n\t\t\t\t\t\t\t\t{currentFile.name || '未知文件'}\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t<p style={{ margin: 0, color: '#8c8c8c', fontSize: 13 }}>\n\t\t\t\t\t\t\t\t该格式暂不支持直接在线预览,请下载后在本地查看。\n\t\t\t\t\t\t\t\t{currentFile.size ? `(${currentFile.size})` : ''}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\tgap: 6,\n\t\t\t\t\t\t\t\tpadding: '8px 20px',\n\t\t\t\t\t\t\t\tbackground: '#1677ff',\n\t\t\t\t\t\t\t\tcolor: '#fff',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tborderRadius: 6,\n\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined /> 立即下载\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn ReactDOM.createPortal(\n\t\t<div className={`rpc_file_previewer_modal ${className}`} onClick={onCancel} style={style}>\n\t\t\t<div className=\"rpc_file_previewer_modal_card\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t{/* 顶部标题栏与工具栏 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_header\">\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_title\">\n\t\t\t\t\t\t{renderFileIcon()}\n\t\t\t\t\t\t<span>{currentFile.name || '文件预览'}</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"rpc_file_previewer_modal_actions\">\n\t\t\t\t\t\t{type === 'image' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.min(s + 0.2, 3))}\n\t\t\t\t\t\t\t\t\ttitle=\"放大\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomInOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageScale((s) => Math.max(s - 0.2, 0.4))}\n\t\t\t\t\t\t\t\t\ttitle=\"缩小\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ZoomOutOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => setImageRotate((r) => (r + 90) % 360)}\n\t\t\t\t\t\t\t\t\ttitle=\"顺时针旋转90°\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<RotateRightOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={handleDefaultDownload}\n\t\t\t\t\t\t\ttitle=\"下载文件\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t{extraActions}\n\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_file_previewer_modal_action_btn\"\n\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\ttitle=\"关闭预览 (ESC)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* 预览主体内容区域 */}\n\t\t\t\t<div className=\"rpc_file_previewer_modal_body\">{renderBodyContent()}</div>\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body,\n\t);\n};\n\n// 命令式调用方法\nFilePreviewer.preview = (options: FileItem) => {\n\tconst div = document.createElement('div');\n\tdocument.body.appendChild(div);\n\n\tconst close = () => {\n\t\tReactDOM.render(<></>, div);\n\t\tdiv.remove();\n\t};\n\n\tReactDOM.render(<FilePreviewer open={true} file={options} onCancel={close} />, div);\n\n\treturn { close };\n};\n\nexport default FilePreviewer;\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkJAW7Q2YC_cjs = require('./chunk-JAW7Q2YC.cjs');
4
- var chunkMBOWSS4B_cjs = require('./chunk-MBOWSS4B.cjs');
3
+ var chunkUAUP5TJK_cjs = require('./chunk-UAUP5TJK.cjs');
4
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
@@ -70,15 +70,15 @@ var SensitiveMask = ({
70
70
  className: "rpc_sensitive_mask_action_btn",
71
71
  onClick: handleToggle,
72
72
  title: masked ? "\u70B9\u51FB\u67E5\u770B\u660E\u6587" : "\u70B9\u51FB\u9690\u85CF",
73
- children: masked ? /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.EyeOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.EyeInvisibleOutlined, {})
73
+ children: masked ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.EyeOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.EyeInvisibleOutlined, {})
74
74
  }
75
75
  ),
76
- copyable && /* @__PURE__ */ jsxRuntime.jsx(chunkJAW7Q2YC_cjs.CopyButton_default, { mode: "icon", text, tooltip: "\u590D\u5236\u660E\u6587" })
76
+ copyable && /* @__PURE__ */ jsxRuntime.jsx(chunkUAUP5TJK_cjs.CopyButton_default, { mode: "icon", text, tooltip: "\u590D\u5236\u660E\u6587" })
77
77
  ] });
78
78
  };
79
79
  var SensitiveMask_default = SensitiveMask;
80
80
 
81
81
  exports.SensitiveMask_default = SensitiveMask_default;
82
82
  exports.maskSensitiveText = maskSensitiveText;
83
- //# sourceMappingURL=chunk-V4O325BX.cjs.map
84
- //# sourceMappingURL=chunk-V4O325BX.cjs.map
83
+ //# sourceMappingURL=chunk-JHVPDKBM.cjs.map
84
+ //# sourceMappingURL=chunk-JHVPDKBM.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../SensitiveMask/index.tsx"],"names":["useState","useMemo","jsx","EyeOutlined","EyeInvisibleOutlined","CopyButton_default"],"mappings":"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","file":"chunk-V4O325BX.cjs","sourcesContent":["import React, { useState, useMemo, CSSProperties } from 'react';\nimport { EyeOutlined, EyeInvisibleOutlined } from '../src/icons';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type SensitiveType = 'phone' | 'idcard' | 'email' | 'bankcard' | 'custom';\n\nexport interface SensitiveMaskProps {\n\t/** 原始敏感文本 */\n\ttext: string;\n\t/** 脱敏类型:'phone' | 'idcard' | 'email' | 'bankcard' | 'custom',默认为 'phone' */\n\ttype?: SensitiveType;\n\t/** 默认是否脱敏遮蔽,默认为 true */\n\tdefaultMasked?: boolean;\n\t/** 遮罩字符,默认为 '*' */\n\tmaskSymbol?: string;\n\t/** 自定义保留头部明文字符数(仅 type='custom' 有效) */\n\tunmaskedStart?: number;\n\t/** 自定义保留尾部明文字符数(仅 type='custom' 有效) */\n\tunmaskedEnd?: number;\n\t/** 是否支持切换明文/密文查看,默认为 true */\n\ttoggleable?: boolean;\n\t/** 是否支持一键复制,默认为 false */\n\tcopyable?: boolean;\n\t/** 切换明文时的拦截回调(返回 false 可阻止切换,支持异步鉴权) */\n\tonToggle?: (nextMasked: boolean) => boolean | Promise<boolean>;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 格式化脱敏文本\nexport function maskSensitiveText(\n\traw: string,\n\ttype: SensitiveType = 'phone',\n\tmaskSymbol: string = '*',\n\tstartCount?: number,\n\tendCount?: number,\n): string {\n\tif (!raw) return '';\n\n\tswitch (type) {\n\t\tcase 'phone':\n\t\t\tif (raw.length <= 7) return raw;\n\t\t\treturn raw.slice(0, 3) + maskSymbol.repeat(4) + raw.slice(-4);\n\t\tcase 'idcard':\n\t\t\tif (raw.length <= 10) return raw;\n\t\t\treturn raw.slice(0, 6) + maskSymbol.repeat(Math.max(1, raw.length - 10)) + raw.slice(-4);\n\t\tcase 'bankcard':\n\t\t\tif (raw.length <= 8) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, 4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\traw.slice(-4)\n\t\t\t);\n\t\tcase 'email': {\n\t\t\tconst atIndex = raw.indexOf('@');\n\t\t\tif (atIndex <= 1) return raw;\n\t\t\tconst name = raw.slice(0, atIndex);\n\t\t\tconst domain = raw.slice(atIndex);\n\t\t\tconst maskedName =\n\t\t\t\tname[0] +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, name.length - 2)) +\n\t\t\t\t(name.length > 2 ? name.slice(-1) : '');\n\t\t\treturn maskedName + domain;\n\t\t}\n\t\tcase 'custom': {\n\t\t\tconst start = startCount !== undefined ? startCount : 2;\n\t\t\tconst end = endCount !== undefined ? endCount : 2;\n\t\t\tif (raw.length <= start + end) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, start) +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, raw.length - start - end)) +\n\t\t\t\traw.slice(-end)\n\t\t\t);\n\t\t}\n\t\tdefault:\n\t\t\treturn raw;\n\t}\n}\n\nconst SensitiveMask: React.FC<SensitiveMaskProps> = ({\n\ttext = '',\n\ttype = 'phone',\n\tdefaultMasked = true,\n\tmaskSymbol = '*',\n\tunmaskedStart,\n\tunmaskedEnd,\n\ttoggleable = true,\n\tcopyable = false,\n\tonToggle,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [masked, setMasked] = useState<boolean>(defaultMasked);\n\n\tconst maskedText = useMemo(() => {\n\t\treturn maskSensitiveText(text, type, maskSymbol, unmaskedStart, unmaskedEnd);\n\t}, [text, type, maskSymbol, unmaskedStart, unmaskedEnd]);\n\n\tconst displayText = masked ? maskedText : text;\n\n\tconst handleToggle = async (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst nextState = !masked;\n\t\tif (onToggle) {\n\t\t\tconst allowed = await onToggle(nextState);\n\t\t\tif (allowed === false) return;\n\t\t}\n\t\tsetMasked(nextState);\n\t};\n\n\treturn (\n\t\t<span className={`rpc_sensitive_mask ${className}`} style={style}>\n\t\t\t<span className=\"rpc_sensitive_mask_text\">{displayText}</span>\n\n\t\t\t{toggleable && (\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"rpc_sensitive_mask_action_btn\"\n\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\ttitle={masked ? '点击查看明文' : '点击隐藏'}\n\t\t\t\t>\n\t\t\t\t\t{masked ? <EyeOutlined /> : <EyeInvisibleOutlined />}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{copyable && <CopyButton mode=\"icon\" text={text} tooltip=\"复制明文\" />}\n\t\t</span>\n\t);\n};\n\nexport default SensitiveMask;\n"]}
1
+ {"version":3,"sources":["../SensitiveMask/index.tsx"],"names":["useState","useMemo","jsx","EyeOutlined","EyeInvisibleOutlined","CopyButton_default"],"mappings":"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","file":"chunk-JHVPDKBM.cjs","sourcesContent":["import React, { useState, useMemo, CSSProperties } from 'react';\nimport { EyeOutlined, EyeInvisibleOutlined } from '../src/icons';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type SensitiveType = 'phone' | 'idcard' | 'email' | 'bankcard' | 'custom';\n\nexport interface SensitiveMaskProps {\n\t/** 原始敏感文本 */\n\ttext: string;\n\t/** 脱敏类型:'phone' | 'idcard' | 'email' | 'bankcard' | 'custom',默认为 'phone' */\n\ttype?: SensitiveType;\n\t/** 默认是否脱敏遮蔽,默认为 true */\n\tdefaultMasked?: boolean;\n\t/** 遮罩字符,默认为 '*' */\n\tmaskSymbol?: string;\n\t/** 自定义保留头部明文字符数(仅 type='custom' 有效) */\n\tunmaskedStart?: number;\n\t/** 自定义保留尾部明文字符数(仅 type='custom' 有效) */\n\tunmaskedEnd?: number;\n\t/** 是否支持切换明文/密文查看,默认为 true */\n\ttoggleable?: boolean;\n\t/** 是否支持一键复制,默认为 false */\n\tcopyable?: boolean;\n\t/** 切换明文时的拦截回调(返回 false 可阻止切换,支持异步鉴权) */\n\tonToggle?: (nextMasked: boolean) => boolean | Promise<boolean>;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 格式化脱敏文本\nexport function maskSensitiveText(\n\traw: string,\n\ttype: SensitiveType = 'phone',\n\tmaskSymbol: string = '*',\n\tstartCount?: number,\n\tendCount?: number,\n): string {\n\tif (!raw) return '';\n\n\tswitch (type) {\n\t\tcase 'phone':\n\t\t\tif (raw.length <= 7) return raw;\n\t\t\treturn raw.slice(0, 3) + maskSymbol.repeat(4) + raw.slice(-4);\n\t\tcase 'idcard':\n\t\t\tif (raw.length <= 10) return raw;\n\t\t\treturn raw.slice(0, 6) + maskSymbol.repeat(Math.max(1, raw.length - 10)) + raw.slice(-4);\n\t\tcase 'bankcard':\n\t\t\tif (raw.length <= 8) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, 4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\traw.slice(-4)\n\t\t\t);\n\t\tcase 'email': {\n\t\t\tconst atIndex = raw.indexOf('@');\n\t\t\tif (atIndex <= 1) return raw;\n\t\t\tconst name = raw.slice(0, atIndex);\n\t\t\tconst domain = raw.slice(atIndex);\n\t\t\tconst maskedName =\n\t\t\t\tname[0] +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, name.length - 2)) +\n\t\t\t\t(name.length > 2 ? name.slice(-1) : '');\n\t\t\treturn maskedName + domain;\n\t\t}\n\t\tcase 'custom': {\n\t\t\tconst start = startCount !== undefined ? startCount : 2;\n\t\t\tconst end = endCount !== undefined ? endCount : 2;\n\t\t\tif (raw.length <= start + end) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, start) +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, raw.length - start - end)) +\n\t\t\t\traw.slice(-end)\n\t\t\t);\n\t\t}\n\t\tdefault:\n\t\t\treturn raw;\n\t}\n}\n\nconst SensitiveMask: React.FC<SensitiveMaskProps> = ({\n\ttext = '',\n\ttype = 'phone',\n\tdefaultMasked = true,\n\tmaskSymbol = '*',\n\tunmaskedStart,\n\tunmaskedEnd,\n\ttoggleable = true,\n\tcopyable = false,\n\tonToggle,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [masked, setMasked] = useState<boolean>(defaultMasked);\n\n\tconst maskedText = useMemo(() => {\n\t\treturn maskSensitiveText(text, type, maskSymbol, unmaskedStart, unmaskedEnd);\n\t}, [text, type, maskSymbol, unmaskedStart, unmaskedEnd]);\n\n\tconst displayText = masked ? maskedText : text;\n\n\tconst handleToggle = async (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst nextState = !masked;\n\t\tif (onToggle) {\n\t\t\tconst allowed = await onToggle(nextState);\n\t\t\tif (allowed === false) return;\n\t\t}\n\t\tsetMasked(nextState);\n\t};\n\n\treturn (\n\t\t<span className={`rpc_sensitive_mask ${className}`} style={style}>\n\t\t\t<span className=\"rpc_sensitive_mask_text\">{displayText}</span>\n\n\t\t\t{toggleable && (\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"rpc_sensitive_mask_action_btn\"\n\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\ttitle={masked ? '点击查看明文' : '点击隐藏'}\n\t\t\t\t>\n\t\t\t\t\t{masked ? <EyeOutlined /> : <EyeInvisibleOutlined />}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{copyable && <CopyButton mode=\"icon\" text={text} tooltip=\"复制明文\" />}\n\t\t</span>\n\t);\n};\n\nexport default SensitiveMask;\n"]}
@@ -1,4 +1,4 @@
1
- import { LoadingOutlined } from './chunk-ISUXPTLV.js';
1
+ import { LoadingOutlined } from './chunk-2IDVNTKR.js';
2
2
  import { useRef, useCallback, useEffect } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -67,5 +67,5 @@ var InfiniteScrollList = ({
67
67
  var InfiniteScrollList_default = InfiniteScrollList;
68
68
 
69
69
  export { InfiniteScrollList_default };
70
- //# sourceMappingURL=chunk-6IXVUD2M.js.map
71
- //# sourceMappingURL=chunk-6IXVUD2M.js.map
70
+ //# sourceMappingURL=chunk-JNA5AQ2K.js.map
71
+ //# sourceMappingURL=chunk-JNA5AQ2K.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../InfiniteScrollList/index.tsx"],"names":[],"mappings":";;;;AA6BA,IAAM,qBAAwD,CAAC;AAAA,EAC9D,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,UAAA,GAAa,kCAAA;AAAA,EACb,gBAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAE/C,EAAA,MAAM,cAAA,GAAiB,YAAY,MAAM;AACxC,IAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACxB,MAAA,UAAA,EAAW;AAAA,IACZ;AAAA,EACD,CAAA,EAAG,CAAC,OAAA,EAAS,OAAA,EAAS,UAAU,CAAC,CAAA;AAGjC,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAC7B,IAAA,IAAI,CAAC,QAAA,EAAU;AAEf,IAAA,MAAM,QAAA,GACL,OAAO,gBAAA,KAAqB,UAAA,GACzB,kBAAiB,GACjB,gBAAA,KAAqB,MAAA,GAAS,YAAA,CAAa,OAAA,GAAU,IAAA,CAAA;AAEzD,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACpB,CAAC,CAAC,KAAK,CAAA,KAAM;AACZ,QAAA,IAAI,MAAM,cAAA,EAAgB;AACzB,UAAA,cAAA,EAAe;AAAA,QAChB;AAAA,MACD,CAAA;AAAA,MACA;AAAA,QACC,MAAM,QAAA,IAAY,IAAA;AAAA,QAClB,UAAA,EAAY,WAAW,SAAS,CAAA,MAAA,CAAA;AAAA,QAChC,SAAA,EAAW;AAAA;AACZ,KACD;AAEA,IAAA,QAAA,CAAS,QAAQ,QAAQ,CAAA;AACzB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EAClC,GAAG,CAAC,MAAA,EAAQ,gBAAA,EAAkB,SAAA,EAAW,cAAc,CAAC,CAAA;AAExD,EAAA,MAAM,uBAAA,mBACL,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACd,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,mBAAgB,KAAA,EAAO,EAAE,UAAU,EAAA,EAAI,KAAA,EAAO,WAAU,EAAG,CAAA;AAAA,oBAC5D,GAAA,CAAC,UAAK,QAAA,EAAA,qDAAA,EAAW;AAAA,GAAA,EAClB,CAAA;AAGD,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAM,CAAA;AAEpC,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,GAAA,EAAK,YAAA;AAAA,MACL,WAAW,CAAA,yBAAA,EACV,aAAA,GAAgB,oCAAA,GAAuC,EACxD,IAAI,SAAS,CAAA,CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACN,MAAA;AAAA,QACA,GAAG;AAAA,OACJ;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBAGD,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,WAAA,EAAa,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,OAAA,EAAS,CAAA,EAAE,EAAG,CAAA;AAAA,QAGnE,YAAY,gBAAA,IAAoB,uBAAA,CAAA;AAAA,QAChC,CAAC,OAAA,IAAW,UAAA,wBACX,KAAA,EAAA,EAAI,SAAA,EAAU,gEACb,QAAA,EAAA,UAAA,EACF;AAAA;AAAA;AAAA,GAEF;AAEF,CAAA;AAEA,IAAO,0BAAA,GAAQ","file":"chunk-6IXVUD2M.js","sourcesContent":["import React, { useRef, useEffect, useCallback, ReactNode, CSSProperties } from 'react';\nimport { LoadingOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface InfiniteScrollListProps {\n\t/** 列表项子内容 */\n\tchildren: ReactNode;\n\t/** 是否还有更多数据可供加载 */\n\thasMore: boolean;\n\t/** 当前是否正在加载下一页 */\n\tloading: boolean;\n\t/** 触底加载下一页回调 */\n\tonLoadMore: () => void | Promise<void>;\n\t/** 触发加载的触底距离阈值(像素),默认为 40 */\n\tthreshold?: number;\n\t/** 没有更多数据时的底部提示内容,默认为 '已经到底啦 ~' */\n\tendMessage?: ReactNode;\n\t/** 加载中指示器组件,默认为 Spin 图标与 '正在加载更多...' */\n\tloadingIndicator?: ReactNode;\n\t/** 容器固定高度(传值时为局部滚动容器,不传时监听 window 全局滚动) */\n\theight?: number | string;\n\t/** 滚动容器 ref 或自定义对象 */\n\tscrollableTarget?: HTMLElement | (() => HTMLElement | null) | null;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst InfiniteScrollList: React.FC<InfiniteScrollListProps> = ({\n\tchildren,\n\thasMore,\n\tloading,\n\tonLoadMore,\n\tthreshold = 40,\n\tendMessage = '已经到底啦 ~',\n\tloadingIndicator,\n\theight,\n\tscrollableTarget,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst sentinelRef = useRef<HTMLDivElement>(null);\n\n\tconst handleLoadMore = useCallback(() => {\n\t\tif (!loading && hasMore) {\n\t\t\tonLoadMore();\n\t\t}\n\t}, [loading, hasMore, onLoadMore]);\n\n\t// 使用 IntersectionObserver 监听底部哨兵元素\n\tuseEffect(() => {\n\t\tconst sentinel = sentinelRef.current;\n\t\tif (!sentinel) return;\n\n\t\tconst targetEl =\n\t\t\ttypeof scrollableTarget === 'function'\n\t\t\t\t? scrollableTarget()\n\t\t\t\t: scrollableTarget || (height ? containerRef.current : null);\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t([entry]) => {\n\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\thandleLoadMore();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: targetEl || null,\n\t\t\t\trootMargin: `0px 0px ${threshold}px 0px`,\n\t\t\t\tthreshold: 0,\n\t\t\t},\n\t\t);\n\n\t\tobserver.observe(sentinel);\n\t\treturn () => observer.disconnect();\n\t}, [height, scrollableTarget, threshold, handleLoadMore]);\n\n\tconst defaultLoadingIndicator = (\n\t\t<div className=\"rpc_infinite_scroll_list_footer\">\n\t\t\t<LoadingOutlined style={{ fontSize: 16, color: '#1677ff' }} />\n\t\t\t<span>正在加载更多数据...</span>\n\t\t</div>\n\t);\n\n\tconst isLocalScroll = Boolean(height);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tclassName={`rpc_infinite_scroll_list ${\n\t\t\t\tisLocalScroll ? 'rpc_infinite_scroll_list_container' : ''\n\t\t\t} ${className}`}\n\t\t\tstyle={{\n\t\t\t\theight: height,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\n\t\t\t{/* 底部哨兵元素 */}\n\t\t\t<div ref={sentinelRef} style={{ height: 1, margin: 0, padding: 0 }} />\n\n\t\t\t{/* 底部状态提示 */}\n\t\t\t{loading && (loadingIndicator || defaultLoadingIndicator)}\n\t\t\t{!hasMore && endMessage && (\n\t\t\t\t<div className=\"rpc_infinite_scroll_list_footer rpc_infinite_scroll_list_end\">\n\t\t\t\t\t{endMessage}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default InfiniteScrollList;\n"]}
1
+ {"version":3,"sources":["../InfiniteScrollList/index.tsx"],"names":[],"mappings":";;;;AA6BA,IAAM,qBAAwD,CAAC;AAAA,EAC9D,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,UAAA,GAAa,kCAAA;AAAA,EACb,gBAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAE/C,EAAA,MAAM,cAAA,GAAiB,YAAY,MAAM;AACxC,IAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACxB,MAAA,UAAA,EAAW;AAAA,IACZ;AAAA,EACD,CAAA,EAAG,CAAC,OAAA,EAAS,OAAA,EAAS,UAAU,CAAC,CAAA;AAGjC,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAC7B,IAAA,IAAI,CAAC,QAAA,EAAU;AAEf,IAAA,MAAM,QAAA,GACL,OAAO,gBAAA,KAAqB,UAAA,GACzB,kBAAiB,GACjB,gBAAA,KAAqB,MAAA,GAAS,YAAA,CAAa,OAAA,GAAU,IAAA,CAAA;AAEzD,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACpB,CAAC,CAAC,KAAK,CAAA,KAAM;AACZ,QAAA,IAAI,MAAM,cAAA,EAAgB;AACzB,UAAA,cAAA,EAAe;AAAA,QAChB;AAAA,MACD,CAAA;AAAA,MACA;AAAA,QACC,MAAM,QAAA,IAAY,IAAA;AAAA,QAClB,UAAA,EAAY,WAAW,SAAS,CAAA,MAAA,CAAA;AAAA,QAChC,SAAA,EAAW;AAAA;AACZ,KACD;AAEA,IAAA,QAAA,CAAS,QAAQ,QAAQ,CAAA;AACzB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EAClC,GAAG,CAAC,MAAA,EAAQ,gBAAA,EAAkB,SAAA,EAAW,cAAc,CAAC,CAAA;AAExD,EAAA,MAAM,uBAAA,mBACL,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACd,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,mBAAgB,KAAA,EAAO,EAAE,UAAU,EAAA,EAAI,KAAA,EAAO,WAAU,EAAG,CAAA;AAAA,oBAC5D,GAAA,CAAC,UAAK,QAAA,EAAA,qDAAA,EAAW;AAAA,GAAA,EAClB,CAAA;AAGD,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAM,CAAA;AAEpC,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,GAAA,EAAK,YAAA;AAAA,MACL,WAAW,CAAA,yBAAA,EACV,aAAA,GAAgB,oCAAA,GAAuC,EACxD,IAAI,SAAS,CAAA,CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACN,MAAA;AAAA,QACA,GAAG;AAAA,OACJ;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBAGD,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,WAAA,EAAa,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,OAAA,EAAS,CAAA,EAAE,EAAG,CAAA;AAAA,QAGnE,YAAY,gBAAA,IAAoB,uBAAA,CAAA;AAAA,QAChC,CAAC,OAAA,IAAW,UAAA,wBACX,KAAA,EAAA,EAAI,SAAA,EAAU,gEACb,QAAA,EAAA,UAAA,EACF;AAAA;AAAA;AAAA,GAEF;AAEF,CAAA;AAEA,IAAO,0BAAA,GAAQ","file":"chunk-JNA5AQ2K.js","sourcesContent":["import React, { useRef, useEffect, useCallback, ReactNode, CSSProperties } from 'react';\nimport { LoadingOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface InfiniteScrollListProps {\n\t/** 列表项子内容 */\n\tchildren: ReactNode;\n\t/** 是否还有更多数据可供加载 */\n\thasMore: boolean;\n\t/** 当前是否正在加载下一页 */\n\tloading: boolean;\n\t/** 触底加载下一页回调 */\n\tonLoadMore: () => void | Promise<void>;\n\t/** 触发加载的触底距离阈值(像素),默认为 40 */\n\tthreshold?: number;\n\t/** 没有更多数据时的底部提示内容,默认为 '已经到底啦 ~' */\n\tendMessage?: ReactNode;\n\t/** 加载中指示器组件,默认为 Spin 图标与 '正在加载更多...' */\n\tloadingIndicator?: ReactNode;\n\t/** 容器固定高度(传值时为局部滚动容器,不传时监听 window 全局滚动) */\n\theight?: number | string;\n\t/** 滚动容器 ref 或自定义对象 */\n\tscrollableTarget?: HTMLElement | (() => HTMLElement | null) | null;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst InfiniteScrollList: React.FC<InfiniteScrollListProps> = ({\n\tchildren,\n\thasMore,\n\tloading,\n\tonLoadMore,\n\tthreshold = 40,\n\tendMessage = '已经到底啦 ~',\n\tloadingIndicator,\n\theight,\n\tscrollableTarget,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst sentinelRef = useRef<HTMLDivElement>(null);\n\n\tconst handleLoadMore = useCallback(() => {\n\t\tif (!loading && hasMore) {\n\t\t\tonLoadMore();\n\t\t}\n\t}, [loading, hasMore, onLoadMore]);\n\n\t// 使用 IntersectionObserver 监听底部哨兵元素\n\tuseEffect(() => {\n\t\tconst sentinel = sentinelRef.current;\n\t\tif (!sentinel) return;\n\n\t\tconst targetEl =\n\t\t\ttypeof scrollableTarget === 'function'\n\t\t\t\t? scrollableTarget()\n\t\t\t\t: scrollableTarget || (height ? containerRef.current : null);\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t([entry]) => {\n\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\thandleLoadMore();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: targetEl || null,\n\t\t\t\trootMargin: `0px 0px ${threshold}px 0px`,\n\t\t\t\tthreshold: 0,\n\t\t\t},\n\t\t);\n\n\t\tobserver.observe(sentinel);\n\t\treturn () => observer.disconnect();\n\t}, [height, scrollableTarget, threshold, handleLoadMore]);\n\n\tconst defaultLoadingIndicator = (\n\t\t<div className=\"rpc_infinite_scroll_list_footer\">\n\t\t\t<LoadingOutlined style={{ fontSize: 16, color: '#1677ff' }} />\n\t\t\t<span>正在加载更多数据...</span>\n\t\t</div>\n\t);\n\n\tconst isLocalScroll = Boolean(height);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tclassName={`rpc_infinite_scroll_list ${\n\t\t\t\tisLocalScroll ? 'rpc_infinite_scroll_list_container' : ''\n\t\t\t} ${className}`}\n\t\t\tstyle={{\n\t\t\t\theight: height,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\n\t\t\t{/* 底部哨兵元素 */}\n\t\t\t<div ref={sentinelRef} style={{ height: 1, margin: 0, padding: 0 }} />\n\n\t\t\t{/* 底部状态提示 */}\n\t\t\t{loading && (loadingIndicator || defaultLoadingIndicator)}\n\t\t\t{!hasMore && endMessage && (\n\t\t\t\t<div className=\"rpc_infinite_scroll_list_footer rpc_infinite_scroll_list_end\">\n\t\t\t\t\t{endMessage}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default InfiniteScrollList;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkMBOWSS4B_cjs = require('./chunk-MBOWSS4B.cjs');
3
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
4
4
  var react = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -109,7 +109,7 @@ var TreeTransfer = ({
109
109
  type: "button",
110
110
  className: "rpc_tree_transfer_del_btn",
111
111
  onClick: () => handleRemove(key),
112
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.CloseOutlined, {})
112
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CloseOutlined, {})
113
113
  }
114
114
  )
115
115
  ] }, key)) })
@@ -119,5 +119,5 @@ var TreeTransfer = ({
119
119
  var TreeTransfer_default = TreeTransfer;
120
120
 
121
121
  exports.TreeTransfer_default = TreeTransfer_default;
122
- //# sourceMappingURL=chunk-NJIYP6SC.cjs.map
123
- //# sourceMappingURL=chunk-NJIYP6SC.cjs.map
122
+ //# sourceMappingURL=chunk-LFGBZXQH.cjs.map
123
+ //# sourceMappingURL=chunk-LFGBZXQH.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../TreeTransfer/index.tsx"],"names":["useState","useMemo","jsxs","jsx","CloseOutlined"],"mappings":"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","file":"chunk-NJIYP6SC.cjs","sourcesContent":["import React, { useState, useMemo, CSSProperties } from 'react';\nimport { CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface TreeTransferNode {\n\tkey: string;\n\ttitle: string;\n\tchildren?: TreeTransferNode[];\n}\n\nexport interface TreeTransferProps {\n\t/** 树形数据源 */\n\ttreeData: TreeTransferNode[];\n\t/** 右侧已选择 keys 列表(受控) */\n\ttargetKeys?: string[];\n\t/** 默认已选择 keys 列表 */\n\tdefaultTargetKeys?: string[];\n\t/** 改变回调 */\n\tonChange?: (targetKeys: string[]) => void;\n\t/** 左侧面板标题,默认为 '待选项目录' */\n\tsourceTitle?: string;\n\t/** 右侧面板标题,默认为 '已选项目' */\n\ttargetTitle?: string;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst TreeTransfer: React.FC<TreeTransferProps> = ({\n\ttreeData = [],\n\ttargetKeys: controlledKeys,\n\tdefaultTargetKeys = [],\n\tonChange,\n\tsourceTitle = '待选项目录',\n\ttargetTitle = '已选项目',\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [internalKeys, setInternalKeys] = useState<string[]>(defaultTargetKeys);\n\tconst targetKeys = controlledKeys !== undefined ? controlledKeys : internalKeys;\n\n\t// 平铺节点便于通过 key 查找 title\n\tconst flatNodeMap = useMemo(() => {\n\t\tconst map = new Map<string, string>();\n\t\tconst traverse = (nodes: TreeTransferNode[]) => {\n\t\t\tnodes.forEach((n) => {\n\t\t\t\tmap.set(n.key, n.title);\n\t\t\t\tif (n.children) traverse(n.children);\n\t\t\t});\n\t\t};\n\t\ttraverse(treeData);\n\t\treturn map;\n\t}, [treeData]);\n\n\tconst triggerChange = (newKeys: string[]) => {\n\t\tif (controlledKeys === undefined) setInternalKeys(newKeys);\n\t\tonChange?.(newKeys);\n\t};\n\n\tconst handleToggle = (key: string, checked: boolean) => {\n\t\tif (checked) {\n\t\t\ttriggerChange([...targetKeys, key]);\n\t\t} else {\n\t\t\ttriggerChange(targetKeys.filter((k) => k !== key));\n\t\t}\n\t};\n\n\tconst handleRemove = (key: string) => {\n\t\ttriggerChange(targetKeys.filter((k) => k !== key));\n\t};\n\n\treturn (\n\t\t<div className={`rpc_tree_transfer ${className}`} style={style}>\n\t\t\t{/* 左侧树形选择面板 */}\n\t\t\t<div className=\"rpc_tree_transfer_panel\">\n\t\t\t\t<div className=\"rpc_tree_transfer_header\">\n\t\t\t\t\t<span>{sourceTitle}</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_tree_transfer_body\">\n\t\t\t\t\t{treeData.map((group) => (\n\t\t\t\t\t\t<div key={group.key}>\n\t\t\t\t\t\t\t<div className=\"rpc_tree_transfer_tree_item\">\n\t\t\t\t\t\t\t\t<b>📁 {group.title}</b>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{group.children?.map((child) => {\n\t\t\t\t\t\t\t\tconst isChecked = targetKeys.includes(child.key);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\t\tkey={child.key}\n\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_tree_transfer_tree_item rpc_tree_transfer_tree_child\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: 'pointer' }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\tchecked={isChecked}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleToggle(child.key, e.target.checked)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<span>{child.title}</span>\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* 中间指示 */}\n\t\t\t<span style={{ color: '#8c8c8c' }}>⇄</span>\n\n\t\t\t{/* 右侧平铺已选面板 */}\n\t\t\t<div className=\"rpc_tree_transfer_panel\">\n\t\t\t\t<div className=\"rpc_tree_transfer_header\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{targetTitle} ({targetKeys.length})\n\t\t\t\t\t</span>\n\t\t\t\t\t{targetKeys.length > 0 && (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackground: 'none',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tcolor: '#1677ff',\n\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={() => triggerChange([])}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t清空\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_tree_transfer_body\">\n\t\t\t\t\t{targetKeys.length === 0 ? (\n\t\t\t\t\t\t<div style={{ color: '#8c8c8c', padding: '20px 0', textAlign: 'center' }}>\n\t\t\t\t\t\t\t暂无已选项\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttargetKeys.map((key) => (\n\t\t\t\t\t\t\t<div key={key} className=\"rpc_tree_transfer_target_item\">\n\t\t\t\t\t\t\t\t<span>{flatNodeMap.get(key) || key}</span>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_tree_transfer_del_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => handleRemove(key)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default TreeTransfer;\n"]}
1
+ {"version":3,"sources":["../TreeTransfer/index.tsx"],"names":["useState","useMemo","jsxs","jsx","CloseOutlined"],"mappings":"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","file":"chunk-LFGBZXQH.cjs","sourcesContent":["import React, { useState, useMemo, CSSProperties } from 'react';\nimport { CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface TreeTransferNode {\n\tkey: string;\n\ttitle: string;\n\tchildren?: TreeTransferNode[];\n}\n\nexport interface TreeTransferProps {\n\t/** 树形数据源 */\n\ttreeData: TreeTransferNode[];\n\t/** 右侧已选择 keys 列表(受控) */\n\ttargetKeys?: string[];\n\t/** 默认已选择 keys 列表 */\n\tdefaultTargetKeys?: string[];\n\t/** 改变回调 */\n\tonChange?: (targetKeys: string[]) => void;\n\t/** 左侧面板标题,默认为 '待选项目录' */\n\tsourceTitle?: string;\n\t/** 右侧面板标题,默认为 '已选项目' */\n\ttargetTitle?: string;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst TreeTransfer: React.FC<TreeTransferProps> = ({\n\ttreeData = [],\n\ttargetKeys: controlledKeys,\n\tdefaultTargetKeys = [],\n\tonChange,\n\tsourceTitle = '待选项目录',\n\ttargetTitle = '已选项目',\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [internalKeys, setInternalKeys] = useState<string[]>(defaultTargetKeys);\n\tconst targetKeys = controlledKeys !== undefined ? controlledKeys : internalKeys;\n\n\t// 平铺节点便于通过 key 查找 title\n\tconst flatNodeMap = useMemo(() => {\n\t\tconst map = new Map<string, string>();\n\t\tconst traverse = (nodes: TreeTransferNode[]) => {\n\t\t\tnodes.forEach((n) => {\n\t\t\t\tmap.set(n.key, n.title);\n\t\t\t\tif (n.children) traverse(n.children);\n\t\t\t});\n\t\t};\n\t\ttraverse(treeData);\n\t\treturn map;\n\t}, [treeData]);\n\n\tconst triggerChange = (newKeys: string[]) => {\n\t\tif (controlledKeys === undefined) setInternalKeys(newKeys);\n\t\tonChange?.(newKeys);\n\t};\n\n\tconst handleToggle = (key: string, checked: boolean) => {\n\t\tif (checked) {\n\t\t\ttriggerChange([...targetKeys, key]);\n\t\t} else {\n\t\t\ttriggerChange(targetKeys.filter((k) => k !== key));\n\t\t}\n\t};\n\n\tconst handleRemove = (key: string) => {\n\t\ttriggerChange(targetKeys.filter((k) => k !== key));\n\t};\n\n\treturn (\n\t\t<div className={`rpc_tree_transfer ${className}`} style={style}>\n\t\t\t{/* 左侧树形选择面板 */}\n\t\t\t<div className=\"rpc_tree_transfer_panel\">\n\t\t\t\t<div className=\"rpc_tree_transfer_header\">\n\t\t\t\t\t<span>{sourceTitle}</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_tree_transfer_body\">\n\t\t\t\t\t{treeData.map((group) => (\n\t\t\t\t\t\t<div key={group.key}>\n\t\t\t\t\t\t\t<div className=\"rpc_tree_transfer_tree_item\">\n\t\t\t\t\t\t\t\t<b>📁 {group.title}</b>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{group.children?.map((child) => {\n\t\t\t\t\t\t\t\tconst isChecked = targetKeys.includes(child.key);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\t\tkey={child.key}\n\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_tree_transfer_tree_item rpc_tree_transfer_tree_child\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: 'pointer' }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\tchecked={isChecked}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleToggle(child.key, e.target.checked)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<span>{child.title}</span>\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* 中间指示 */}\n\t\t\t<span style={{ color: '#8c8c8c' }}>⇄</span>\n\n\t\t\t{/* 右侧平铺已选面板 */}\n\t\t\t<div className=\"rpc_tree_transfer_panel\">\n\t\t\t\t<div className=\"rpc_tree_transfer_header\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{targetTitle} ({targetKeys.length})\n\t\t\t\t\t</span>\n\t\t\t\t\t{targetKeys.length > 0 && (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackground: 'none',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tcolor: '#1677ff',\n\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={() => triggerChange([])}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t清空\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_tree_transfer_body\">\n\t\t\t\t\t{targetKeys.length === 0 ? (\n\t\t\t\t\t\t<div style={{ color: '#8c8c8c', padding: '20px 0', textAlign: 'center' }}>\n\t\t\t\t\t\t\t暂无已选项\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttargetKeys.map((key) => (\n\t\t\t\t\t\t\t<div key={key} className=\"rpc_tree_transfer_target_item\">\n\t\t\t\t\t\t\t\t<span>{flatNodeMap.get(key) || key}</span>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_tree_transfer_del_btn\"\n\t\t\t\t\t\t\t\t\tonClick={() => handleRemove(key)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default TreeTransfer;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkJAW7Q2YC_cjs = require('./chunk-JAW7Q2YC.cjs');
3
+ var chunkUAUP5TJK_cjs = require('./chunk-UAUP5TJK.cjs');
4
4
  var React = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -276,7 +276,7 @@ var CronPicker = ({
276
276
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_cron_picker_cron_badge", children: [
277
277
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u751F\u6210\u7684 Cron:" }),
278
278
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_cron_picker_cron_code", children: cron }),
279
- /* @__PURE__ */ jsxRuntime.jsx(chunkJAW7Q2YC_cjs.CopyButton_default, { mode: "icon", text: cron, tooltip: "\u590D\u5236 Cron \u8868\u8FBE\u5F0F" })
279
+ /* @__PURE__ */ jsxRuntime.jsx(chunkUAUP5TJK_cjs.CopyButton_default, { mode: "icon", text: cron, tooltip: "\u590D\u5236 Cron \u8868\u8FBE\u5F0F" })
280
280
  ] }),
281
281
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_cron_picker_human_desc", children: [
282
282
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u{1F4A1} \u5468\u671F\u4EBA\u8BDD\u89E3\u91CA\uFF1A" }),
@@ -288,5 +288,5 @@ var CronPicker = ({
288
288
  var CronPicker_default = CronPicker;
289
289
 
290
290
  exports.CronPicker_default = CronPicker_default;
291
- //# sourceMappingURL=chunk-ZLWY7QS2.cjs.map
292
- //# sourceMappingURL=chunk-ZLWY7QS2.cjs.map
291
+ //# sourceMappingURL=chunk-M3GQ7RCV.cjs.map
292
+ //# sourceMappingURL=chunk-M3GQ7RCV.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../CronPicker/index.tsx"],"names":["useState","React","useEffect","jsx","jsxs","CopyButton_default"],"mappings":"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","file":"chunk-ZLWY7QS2.cjs","sourcesContent":["import React, { useState, useEffect, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type CronPeriodType = 'minute' | 'hour' | 'day' | 'week' | 'month' | 'custom';\n\nexport interface CronPickerProps {\n\t/** 当前 Cron 表达式(受控) */\n\tvalue?: string;\n\t/** 默认 Cron 表达式,默认为 '0 0 12 * * ?' */\n\tdefaultValue?: string;\n\t/** 表达式改变回调 */\n\tonChange?: (cron: string, humanReadable: string) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst CronPicker: React.FC<CronPickerProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue = '0 0 12 * * ?',\n\tonChange,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [period, setPeriod] = useState<CronPeriodType>('day');\n\n\t// 状态字段\n\tconst [minuteInterval, setMinuteInterval] = useState<number>(5);\n\tconst [hourMinute, setHourMinute] = useState<number>(0);\n\tconst [dayHour, setDayHour] = useState<number>(12);\n\tconst [dayMinute, setDayMinute] = useState<number>(0);\n\tconst [weekDay, setWeekDay] = useState<number>(1); // 1 = 周一\n\tconst [weekHour, setWeekHour] = useState<number>(9);\n\tconst [weekMinute, setWeekMinute] = useState<number>(0);\n\tconst [monthDay, setMonthDay] = useState<number>(1);\n\tconst [monthHour, setMonthHour] = useState<number>(0);\n\tconst [monthMinute, setMonthMinute] = useState<number>(0);\n\tconst [customCron, setCustomCron] = useState<string>(defaultValue);\n\n\t// 计算当前周期对应的 Cron 表达式与中文描述\n\tconst { cron, desc } = React.useMemo(() => {\n\t\tif (controlledValue && period === 'custom') {\n\t\t\treturn { cron: controlledValue, desc: '自定义 Cron 调度' };\n\t\t}\n\n\t\tswitch (period) {\n\t\t\tcase 'minute':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 0/${minuteInterval} * * * ?`,\n\t\t\t\t\tdesc: `每隔 ${minuteInterval} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'hour':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${hourMinute} * * * ?`,\n\t\t\t\t\tdesc: `每小时的第 ${hourMinute} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'day':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${dayMinute} ${dayHour} * * ?`,\n\t\t\t\t\tdesc: `每天 ${String(dayHour).padStart(2, '0')}:${String(dayMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'week': {\n\t\t\t\tconst weekMap: Record<number, string> = {\n\t\t\t\t\t1: '周一',\n\t\t\t\t\t2: '周二',\n\t\t\t\t\t3: '周三',\n\t\t\t\t\t4: '周四',\n\t\t\t\t\t5: '周五',\n\t\t\t\t\t6: '周六',\n\t\t\t\t\t7: '周日',\n\t\t\t\t};\n\t\t\t\t// Cron 中 1 为周日/周一根据规范不同,这里按常规映射\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${weekMinute} ${weekHour} ? * ${weekDay}`,\n\t\t\t\t\tdesc: `每${weekMap[weekDay]} ${String(weekHour).padStart(2, '0')}:${String(weekMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase 'month':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${monthMinute} ${monthHour} ${monthDay} * ?`,\n\t\t\t\t\tdesc: `每月 ${monthDay} 号 ${String(monthHour).padStart(2, '0')}:${String(monthMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'custom':\n\t\t\t\treturn {\n\t\t\t\t\tcron: customCron,\n\t\t\t\t\tdesc: '自定义 Cron 表达式',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn { cron: defaultValue, desc: '定时执行' };\n\t\t}\n\t}, [\n\t\tperiod,\n\t\tcontrolledValue,\n\t\tminuteInterval,\n\t\thourMinute,\n\t\tdayHour,\n\t\tdayMinute,\n\t\tweekDay,\n\t\tweekHour,\n\t\tweekMinute,\n\t\tmonthDay,\n\t\tmonthHour,\n\t\tmonthMinute,\n\t\tcustomCron,\n\t\tdefaultValue,\n\t]);\n\n\tuseEffect(() => {\n\t\tonChange?.(cron, desc);\n\t}, [cron, desc, onChange]);\n\n\treturn (\n\t\t<div className={`rpc_cron_picker ${className}`} style={style}>\n\t\t\t{/* 周期切换 Tab */}\n\t\t\t<div className=\"rpc_cron_picker_tabs\">\n\t\t\t\t{[\n\t\t\t\t\t{ key: 'minute', label: '每隔分钟' },\n\t\t\t\t\t{ key: 'hour', label: '每小时' },\n\t\t\t\t\t{ key: 'day', label: '每天' },\n\t\t\t\t\t{ key: 'week', label: '每周' },\n\t\t\t\t\t{ key: 'month', label: '每月' },\n\t\t\t\t\t{ key: 'custom', label: '自定义 Cron' },\n\t\t\t\t].map((tab) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={tab.key}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={`rpc_cron_picker_tab_btn ${\n\t\t\t\t\t\t\tperiod === tab.key ? 'rpc_cron_picker_tab_btn_active' : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tonClick={() => setPeriod(tab.key as CronPeriodType)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tab.label}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* 参数配置区域 */}\n\t\t\t<div className=\"rpc_cron_picker_panel\">\n\t\t\t\t{period === 'minute' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每隔</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={minuteInterval}\n\t\t\t\t\t\t\tonChange={(e) => setMinuteInterval(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{[1, 2, 3, 5, 10, 15, 20, 30].map((m) => (\n\t\t\t\t\t\t\t\t<option key={m} value={m}>\n\t\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>分钟执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'hour' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每小时的第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={hourMinute}\n\t\t\t\t\t\t\tonChange={(e) => setHourMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'day' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每天在</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={dayHour}\n\t\t\t\t\t\t\tonChange={(e) => setDayHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={dayMinute}\n\t\t\t\t\t\t\tonChange={(e) => setDayMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'week' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每周</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={weekDay}\n\t\t\t\t\t\t\tonChange={(e) => setWeekDay(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option value={1}>周一</option>\n\t\t\t\t\t\t\t<option value={2}>周二</option>\n\t\t\t\t\t\t\t<option value={3}>周三</option>\n\t\t\t\t\t\t\t<option value={4}>周四</option>\n\t\t\t\t\t\t\t<option value={5}>周五</option>\n\t\t\t\t\t\t\t<option value={6}>周六</option>\n\t\t\t\t\t\t\t<option value={7}>周日</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={weekHour}\n\t\t\t\t\t\t\tonChange={(e) => setWeekHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={weekMinute}\n\t\t\t\t\t\t\tonChange={(e) => setWeekMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'month' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每月第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\tmax={31}\n\t\t\t\t\t\t\tvalue={monthDay}\n\t\t\t\t\t\t\tonChange={(e) => setMonthDay(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>天的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={monthHour}\n\t\t\t\t\t\t\tonChange={(e) => setMonthHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={monthMinute}\n\t\t\t\t\t\t\tonChange={(e) => setMonthMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'custom' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tvalue={customCron}\n\t\t\t\t\t\t\tonChange={(e) => setCustomCron(e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: '100%', fontFamily: 'monospace' }}\n\t\t\t\t\t\t\tplaceholder=\"例如: 0 0/15 * * * ?\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* 底部生成结果与人话翻译 */}\n\t\t\t<div className=\"rpc_cron_picker_footer\">\n\t\t\t\t<div className=\"rpc_cron_picker_cron_badge\">\n\t\t\t\t\t<span>生成的 Cron:</span>\n\t\t\t\t\t<span className=\"rpc_cron_picker_cron_code\">{cron}</span>\n\t\t\t\t\t<CopyButton mode=\"icon\" text={cron} tooltip=\"复制 Cron 表达式\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_cron_picker_human_desc\">\n\t\t\t\t\t<span>💡 周期人话解释:</span>\n\t\t\t\t\t<span>{desc}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CronPicker;\n"]}
1
+ {"version":3,"sources":["../CronPicker/index.tsx"],"names":["useState","React","useEffect","jsx","jsxs","CopyButton_default"],"mappings":"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","file":"chunk-M3GQ7RCV.cjs","sourcesContent":["import React, { useState, useEffect, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type CronPeriodType = 'minute' | 'hour' | 'day' | 'week' | 'month' | 'custom';\n\nexport interface CronPickerProps {\n\t/** 当前 Cron 表达式(受控) */\n\tvalue?: string;\n\t/** 默认 Cron 表达式,默认为 '0 0 12 * * ?' */\n\tdefaultValue?: string;\n\t/** 表达式改变回调 */\n\tonChange?: (cron: string, humanReadable: string) => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst CronPicker: React.FC<CronPickerProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue = '0 0 12 * * ?',\n\tonChange,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [period, setPeriod] = useState<CronPeriodType>('day');\n\n\t// 状态字段\n\tconst [minuteInterval, setMinuteInterval] = useState<number>(5);\n\tconst [hourMinute, setHourMinute] = useState<number>(0);\n\tconst [dayHour, setDayHour] = useState<number>(12);\n\tconst [dayMinute, setDayMinute] = useState<number>(0);\n\tconst [weekDay, setWeekDay] = useState<number>(1); // 1 = 周一\n\tconst [weekHour, setWeekHour] = useState<number>(9);\n\tconst [weekMinute, setWeekMinute] = useState<number>(0);\n\tconst [monthDay, setMonthDay] = useState<number>(1);\n\tconst [monthHour, setMonthHour] = useState<number>(0);\n\tconst [monthMinute, setMonthMinute] = useState<number>(0);\n\tconst [customCron, setCustomCron] = useState<string>(defaultValue);\n\n\t// 计算当前周期对应的 Cron 表达式与中文描述\n\tconst { cron, desc } = React.useMemo(() => {\n\t\tif (controlledValue && period === 'custom') {\n\t\t\treturn { cron: controlledValue, desc: '自定义 Cron 调度' };\n\t\t}\n\n\t\tswitch (period) {\n\t\t\tcase 'minute':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 0/${minuteInterval} * * * ?`,\n\t\t\t\t\tdesc: `每隔 ${minuteInterval} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'hour':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${hourMinute} * * * ?`,\n\t\t\t\t\tdesc: `每小时的第 ${hourMinute} 分钟执行一次`,\n\t\t\t\t};\n\t\t\tcase 'day':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${dayMinute} ${dayHour} * * ?`,\n\t\t\t\t\tdesc: `每天 ${String(dayHour).padStart(2, '0')}:${String(dayMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'week': {\n\t\t\t\tconst weekMap: Record<number, string> = {\n\t\t\t\t\t1: '周一',\n\t\t\t\t\t2: '周二',\n\t\t\t\t\t3: '周三',\n\t\t\t\t\t4: '周四',\n\t\t\t\t\t5: '周五',\n\t\t\t\t\t6: '周六',\n\t\t\t\t\t7: '周日',\n\t\t\t\t};\n\t\t\t\t// Cron 中 1 为周日/周一根据规范不同,这里按常规映射\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${weekMinute} ${weekHour} ? * ${weekDay}`,\n\t\t\t\t\tdesc: `每${weekMap[weekDay]} ${String(weekHour).padStart(2, '0')}:${String(weekMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase 'month':\n\t\t\t\treturn {\n\t\t\t\t\tcron: `0 ${monthMinute} ${monthHour} ${monthDay} * ?`,\n\t\t\t\t\tdesc: `每月 ${monthDay} 号 ${String(monthHour).padStart(2, '0')}:${String(monthMinute).padStart(2, '0')} 执行一次`,\n\t\t\t\t};\n\t\t\tcase 'custom':\n\t\t\t\treturn {\n\t\t\t\t\tcron: customCron,\n\t\t\t\t\tdesc: '自定义 Cron 表达式',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn { cron: defaultValue, desc: '定时执行' };\n\t\t}\n\t}, [\n\t\tperiod,\n\t\tcontrolledValue,\n\t\tminuteInterval,\n\t\thourMinute,\n\t\tdayHour,\n\t\tdayMinute,\n\t\tweekDay,\n\t\tweekHour,\n\t\tweekMinute,\n\t\tmonthDay,\n\t\tmonthHour,\n\t\tmonthMinute,\n\t\tcustomCron,\n\t\tdefaultValue,\n\t]);\n\n\tuseEffect(() => {\n\t\tonChange?.(cron, desc);\n\t}, [cron, desc, onChange]);\n\n\treturn (\n\t\t<div className={`rpc_cron_picker ${className}`} style={style}>\n\t\t\t{/* 周期切换 Tab */}\n\t\t\t<div className=\"rpc_cron_picker_tabs\">\n\t\t\t\t{[\n\t\t\t\t\t{ key: 'minute', label: '每隔分钟' },\n\t\t\t\t\t{ key: 'hour', label: '每小时' },\n\t\t\t\t\t{ key: 'day', label: '每天' },\n\t\t\t\t\t{ key: 'week', label: '每周' },\n\t\t\t\t\t{ key: 'month', label: '每月' },\n\t\t\t\t\t{ key: 'custom', label: '自定义 Cron' },\n\t\t\t\t].map((tab) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={tab.key}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={`rpc_cron_picker_tab_btn ${\n\t\t\t\t\t\t\tperiod === tab.key ? 'rpc_cron_picker_tab_btn_active' : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tonClick={() => setPeriod(tab.key as CronPeriodType)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tab.label}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* 参数配置区域 */}\n\t\t\t<div className=\"rpc_cron_picker_panel\">\n\t\t\t\t{period === 'minute' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每隔</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={minuteInterval}\n\t\t\t\t\t\t\tonChange={(e) => setMinuteInterval(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{[1, 2, 3, 5, 10, 15, 20, 30].map((m) => (\n\t\t\t\t\t\t\t\t<option key={m} value={m}>\n\t\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>分钟执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'hour' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每小时的第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={hourMinute}\n\t\t\t\t\t\t\tonChange={(e) => setHourMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'day' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每天在</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={dayHour}\n\t\t\t\t\t\t\tonChange={(e) => setDayHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={dayMinute}\n\t\t\t\t\t\t\tonChange={(e) => setDayMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行一次</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'week' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每周</span>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_select\"\n\t\t\t\t\t\t\tvalue={weekDay}\n\t\t\t\t\t\t\tonChange={(e) => setWeekDay(Number(e.target.value))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option value={1}>周一</option>\n\t\t\t\t\t\t\t<option value={2}>周二</option>\n\t\t\t\t\t\t\t<option value={3}>周三</option>\n\t\t\t\t\t\t\t<option value={4}>周四</option>\n\t\t\t\t\t\t\t<option value={5}>周五</option>\n\t\t\t\t\t\t\t<option value={6}>周六</option>\n\t\t\t\t\t\t\t<option value={7}>周日</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<span>的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={weekHour}\n\t\t\t\t\t\t\tonChange={(e) => setWeekHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={weekMinute}\n\t\t\t\t\t\t\tonChange={(e) => setWeekMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'month' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<span>每月第</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\tmax={31}\n\t\t\t\t\t\t\tvalue={monthDay}\n\t\t\t\t\t\t\tonChange={(e) => setMonthDay(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>天的</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={23}\n\t\t\t\t\t\t\tvalue={monthHour}\n\t\t\t\t\t\t\tonChange={(e) => setMonthHour(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>时</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tmax={59}\n\t\t\t\t\t\t\tvalue={monthMinute}\n\t\t\t\t\t\t\tonChange={(e) => setMonthMinute(Number(e.target.value))}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: 60 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>分执行</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{period === 'custom' && (\n\t\t\t\t\t<div className=\"rpc_cron_picker_field_row\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tvalue={customCron}\n\t\t\t\t\t\t\tonChange={(e) => setCustomCron(e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_cron_picker_input\"\n\t\t\t\t\t\t\tstyle={{ width: '100%', fontFamily: 'monospace' }}\n\t\t\t\t\t\t\tplaceholder=\"例如: 0 0/15 * * * ?\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* 底部生成结果与人话翻译 */}\n\t\t\t<div className=\"rpc_cron_picker_footer\">\n\t\t\t\t<div className=\"rpc_cron_picker_cron_badge\">\n\t\t\t\t\t<span>生成的 Cron:</span>\n\t\t\t\t\t<span className=\"rpc_cron_picker_cron_code\">{cron}</span>\n\t\t\t\t\t<CopyButton mode=\"icon\" text={cron} tooltip=\"复制 Cron 表达式\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rpc_cron_picker_human_desc\">\n\t\t\t\t\t<span>💡 周期人话解释:</span>\n\t\t\t\t\t<span>{desc}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CronPicker;\n"]}
@@ -1,5 +1,5 @@
1
- import { CopyButton_default } from './chunk-56TD4LDC.js';
2
- import { EyeOutlined, EyeInvisibleOutlined } from './chunk-ISUXPTLV.js';
1
+ import { CopyButton_default } from './chunk-P5CS7V4W.js';
2
+ import { EyeOutlined, EyeInvisibleOutlined } from './chunk-2IDVNTKR.js';
3
3
  import { useState, useMemo } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
5
5
 
@@ -77,5 +77,5 @@ var SensitiveMask = ({
77
77
  var SensitiveMask_default = SensitiveMask;
78
78
 
79
79
  export { SensitiveMask_default, maskSensitiveText };
80
- //# sourceMappingURL=chunk-AFR7V4A4.js.map
81
- //# sourceMappingURL=chunk-AFR7V4A4.js.map
80
+ //# sourceMappingURL=chunk-M4FZJALR.js.map
81
+ //# sourceMappingURL=chunk-M4FZJALR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../SensitiveMask/index.tsx"],"names":[],"mappings":"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","file":"chunk-AFR7V4A4.js","sourcesContent":["import React, { useState, useMemo, CSSProperties } from 'react';\nimport { EyeOutlined, EyeInvisibleOutlined } from '../src/icons';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type SensitiveType = 'phone' | 'idcard' | 'email' | 'bankcard' | 'custom';\n\nexport interface SensitiveMaskProps {\n\t/** 原始敏感文本 */\n\ttext: string;\n\t/** 脱敏类型:'phone' | 'idcard' | 'email' | 'bankcard' | 'custom',默认为 'phone' */\n\ttype?: SensitiveType;\n\t/** 默认是否脱敏遮蔽,默认为 true */\n\tdefaultMasked?: boolean;\n\t/** 遮罩字符,默认为 '*' */\n\tmaskSymbol?: string;\n\t/** 自定义保留头部明文字符数(仅 type='custom' 有效) */\n\tunmaskedStart?: number;\n\t/** 自定义保留尾部明文字符数(仅 type='custom' 有效) */\n\tunmaskedEnd?: number;\n\t/** 是否支持切换明文/密文查看,默认为 true */\n\ttoggleable?: boolean;\n\t/** 是否支持一键复制,默认为 false */\n\tcopyable?: boolean;\n\t/** 切换明文时的拦截回调(返回 false 可阻止切换,支持异步鉴权) */\n\tonToggle?: (nextMasked: boolean) => boolean | Promise<boolean>;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 格式化脱敏文本\nexport function maskSensitiveText(\n\traw: string,\n\ttype: SensitiveType = 'phone',\n\tmaskSymbol: string = '*',\n\tstartCount?: number,\n\tendCount?: number,\n): string {\n\tif (!raw) return '';\n\n\tswitch (type) {\n\t\tcase 'phone':\n\t\t\tif (raw.length <= 7) return raw;\n\t\t\treturn raw.slice(0, 3) + maskSymbol.repeat(4) + raw.slice(-4);\n\t\tcase 'idcard':\n\t\t\tif (raw.length <= 10) return raw;\n\t\t\treturn raw.slice(0, 6) + maskSymbol.repeat(Math.max(1, raw.length - 10)) + raw.slice(-4);\n\t\tcase 'bankcard':\n\t\t\tif (raw.length <= 8) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, 4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\traw.slice(-4)\n\t\t\t);\n\t\tcase 'email': {\n\t\t\tconst atIndex = raw.indexOf('@');\n\t\t\tif (atIndex <= 1) return raw;\n\t\t\tconst name = raw.slice(0, atIndex);\n\t\t\tconst domain = raw.slice(atIndex);\n\t\t\tconst maskedName =\n\t\t\t\tname[0] +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, name.length - 2)) +\n\t\t\t\t(name.length > 2 ? name.slice(-1) : '');\n\t\t\treturn maskedName + domain;\n\t\t}\n\t\tcase 'custom': {\n\t\t\tconst start = startCount !== undefined ? startCount : 2;\n\t\t\tconst end = endCount !== undefined ? endCount : 2;\n\t\t\tif (raw.length <= start + end) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, start) +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, raw.length - start - end)) +\n\t\t\t\traw.slice(-end)\n\t\t\t);\n\t\t}\n\t\tdefault:\n\t\t\treturn raw;\n\t}\n}\n\nconst SensitiveMask: React.FC<SensitiveMaskProps> = ({\n\ttext = '',\n\ttype = 'phone',\n\tdefaultMasked = true,\n\tmaskSymbol = '*',\n\tunmaskedStart,\n\tunmaskedEnd,\n\ttoggleable = true,\n\tcopyable = false,\n\tonToggle,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [masked, setMasked] = useState<boolean>(defaultMasked);\n\n\tconst maskedText = useMemo(() => {\n\t\treturn maskSensitiveText(text, type, maskSymbol, unmaskedStart, unmaskedEnd);\n\t}, [text, type, maskSymbol, unmaskedStart, unmaskedEnd]);\n\n\tconst displayText = masked ? maskedText : text;\n\n\tconst handleToggle = async (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst nextState = !masked;\n\t\tif (onToggle) {\n\t\t\tconst allowed = await onToggle(nextState);\n\t\t\tif (allowed === false) return;\n\t\t}\n\t\tsetMasked(nextState);\n\t};\n\n\treturn (\n\t\t<span className={`rpc_sensitive_mask ${className}`} style={style}>\n\t\t\t<span className=\"rpc_sensitive_mask_text\">{displayText}</span>\n\n\t\t\t{toggleable && (\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"rpc_sensitive_mask_action_btn\"\n\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\ttitle={masked ? '点击查看明文' : '点击隐藏'}\n\t\t\t\t>\n\t\t\t\t\t{masked ? <EyeOutlined /> : <EyeInvisibleOutlined />}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{copyable && <CopyButton mode=\"icon\" text={text} tooltip=\"复制明文\" />}\n\t\t</span>\n\t);\n};\n\nexport default SensitiveMask;\n"]}
1
+ {"version":3,"sources":["../SensitiveMask/index.tsx"],"names":[],"mappings":";;;;;AAiCO,SAAS,kBACf,GAAA,EACA,IAAA,GAAsB,SACtB,UAAA,GAAqB,GAAA,EACrB,YACA,QAAA,EACS;AACT,EAAA,IAAI,CAAC,KAAK,OAAO,EAAA;AAEjB,EAAA,QAAQ,IAAA;AAAM,IACb,KAAK,OAAA;AACJ,MAAA,IAAI,GAAA,CAAI,MAAA,IAAU,CAAA,EAAG,OAAO,GAAA;AAC5B,MAAA,OAAO,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,UAAA,CAAW,MAAA,CAAO,CAAC,CAAA,GAAI,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA;AAAA,IAC7D,KAAK,QAAA;AACJ,MAAA,IAAI,GAAA,CAAI,MAAA,IAAU,EAAA,EAAI,OAAO,GAAA;AAC7B,MAAA,OAAO,IAAI,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,WAAW,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAI,MAAA,GAAS,EAAE,CAAC,CAAA,GAAI,GAAA,CAAI,MAAM,EAAE,CAAA;AAAA,IACxF,KAAK,UAAA;AACJ,MAAA,IAAI,GAAA,CAAI,MAAA,IAAU,CAAA,EAAG,OAAO,GAAA;AAC5B,MAAA,OACC,IAAI,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GACd,GAAA,GACA,WAAW,MAAA,CAAO,CAAC,CAAA,GACnB,GAAA,GACA,WAAW,MAAA,CAAO,CAAC,IACnB,GAAA,GACA,GAAA,CAAI,MAAM,EAAE,CAAA;AAAA,IAEd,KAAK,OAAA,EAAS;AACb,MAAA,MAAM,OAAA,GAAU,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA;AAC/B,MAAA,IAAI,OAAA,IAAW,GAAG,OAAO,GAAA;AACzB,MAAA,MAAM,IAAA,GAAO,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA;AACjC,MAAA,MAAM,MAAA,GAAS,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA;AAChC,MAAA,MAAM,UAAA,GACL,KAAK,CAAC,CAAA,GACN,WAAW,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,EAAG,IAAA,CAAK,SAAS,CAAC,CAAC,KAC7C,IAAA,CAAK,MAAA,GAAS,IAAI,IAAA,CAAK,KAAA,CAAM,EAAE,CAAA,GAAI,EAAA,CAAA;AACrC,MAAA,OAAO,UAAA,GAAa,MAAA;AAAA,IACrB;AAAA,IACA,KAAK,QAAA,EAAU;AACd,MAAA,MAAM,KAAA,GAAQ,UAAA,KAAe,MAAA,GAAY,UAAA,GAAa,CAAA;AACtD,MAAA,MAAM,GAAA,GAAM,QAAA,KAAa,MAAA,GAAY,QAAA,GAAW,CAAA;AAChD,MAAA,IAAI,GAAA,CAAI,MAAA,IAAU,KAAA,GAAQ,GAAA,EAAK,OAAO,GAAA;AACtC,MAAA,OACC,IAAI,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA,GAClB,UAAA,CAAW,OAAO,IAAA,CAAK,GAAA,CAAI,GAAG,GAAA,CAAI,MAAA,GAAS,QAAQ,GAAG,CAAC,IACvD,GAAA,CAAI,KAAA,CAAM,CAAC,GAAG,CAAA;AAAA,IAEhB;AAAA,IACA;AACC,MAAA,OAAO,GAAA;AAAA;AAEV;AAEA,IAAM,gBAA8C,CAAC;AAAA,EACpD,IAAA,GAAO,EAAA;AAAA,EACP,IAAA,GAAO,OAAA;AAAA,EACP,aAAA,GAAgB,IAAA;AAAA,EAChB,UAAA,GAAa,GAAA;AAAA,EACb,aAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,IAAA;AAAA,EACb,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAkB,aAAa,CAAA;AAE3D,EAAA,MAAM,UAAA,GAAa,QAAQ,MAAM;AAChC,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,IAAA,EAAM,UAAA,EAAY,eAAe,WAAW,CAAA;AAAA,EAC5E,GAAG,CAAC,IAAA,EAAM,MAAM,UAAA,EAAY,aAAA,EAAe,WAAW,CAAC,CAAA;AAEvD,EAAA,MAAM,WAAA,GAAc,SAAS,UAAA,GAAa,IAAA;AAE1C,EAAA,MAAM,YAAA,GAAe,OAAO,CAAA,KAAwB;AACnD,IAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,IAAA,MAAM,YAAY,CAAC,MAAA;AACnB,IAAA,IAAI,QAAA,EAAU;AACb,MAAA,MAAM,OAAA,GAAU,MAAM,QAAA,CAAS,SAAS,CAAA;AACxC,MAAA,IAAI,YAAY,KAAA,EAAO;AAAA,IACxB;AACA,IAAA,SAAA,CAAU,SAAS,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,4BACE,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,mBAAA,EAAsB,SAAS,IAAI,KAAA,EACnD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EAA2B,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,IAEtD,UAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACA,SAAA,EAAU,+BAAA;AAAA,QACV,OAAA,EAAS,YAAA;AAAA,QACT,KAAA,EAAO,SAAS,sCAAA,GAAW,0BAAA;AAAA,QAE1B,QAAA,EAAA,MAAA,mBAAS,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA,uBAAM,oBAAA,EAAA,EAAqB;AAAA;AAAA,KACnD;AAAA,IAGA,4BAAY,GAAA,CAAC,kBAAA,EAAA,EAAW,MAAK,MAAA,EAAO,IAAA,EAAY,SAAQ,0BAAA,EAAO;AAAA,GAAA,EACjE,CAAA;AAEF,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"chunk-M4FZJALR.js","sourcesContent":["import React, { useState, useMemo, CSSProperties } from 'react';\nimport { EyeOutlined, EyeInvisibleOutlined } from '../src/icons';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport type SensitiveType = 'phone' | 'idcard' | 'email' | 'bankcard' | 'custom';\n\nexport interface SensitiveMaskProps {\n\t/** 原始敏感文本 */\n\ttext: string;\n\t/** 脱敏类型:'phone' | 'idcard' | 'email' | 'bankcard' | 'custom',默认为 'phone' */\n\ttype?: SensitiveType;\n\t/** 默认是否脱敏遮蔽,默认为 true */\n\tdefaultMasked?: boolean;\n\t/** 遮罩字符,默认为 '*' */\n\tmaskSymbol?: string;\n\t/** 自定义保留头部明文字符数(仅 type='custom' 有效) */\n\tunmaskedStart?: number;\n\t/** 自定义保留尾部明文字符数(仅 type='custom' 有效) */\n\tunmaskedEnd?: number;\n\t/** 是否支持切换明文/密文查看,默认为 true */\n\ttoggleable?: boolean;\n\t/** 是否支持一键复制,默认为 false */\n\tcopyable?: boolean;\n\t/** 切换明文时的拦截回调(返回 false 可阻止切换,支持异步鉴权) */\n\tonToggle?: (nextMasked: boolean) => boolean | Promise<boolean>;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 格式化脱敏文本\nexport function maskSensitiveText(\n\traw: string,\n\ttype: SensitiveType = 'phone',\n\tmaskSymbol: string = '*',\n\tstartCount?: number,\n\tendCount?: number,\n): string {\n\tif (!raw) return '';\n\n\tswitch (type) {\n\t\tcase 'phone':\n\t\t\tif (raw.length <= 7) return raw;\n\t\t\treturn raw.slice(0, 3) + maskSymbol.repeat(4) + raw.slice(-4);\n\t\tcase 'idcard':\n\t\t\tif (raw.length <= 10) return raw;\n\t\t\treturn raw.slice(0, 6) + maskSymbol.repeat(Math.max(1, raw.length - 10)) + raw.slice(-4);\n\t\tcase 'bankcard':\n\t\t\tif (raw.length <= 8) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, 4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\tmaskSymbol.repeat(4) +\n\t\t\t\t' ' +\n\t\t\t\traw.slice(-4)\n\t\t\t);\n\t\tcase 'email': {\n\t\t\tconst atIndex = raw.indexOf('@');\n\t\t\tif (atIndex <= 1) return raw;\n\t\t\tconst name = raw.slice(0, atIndex);\n\t\t\tconst domain = raw.slice(atIndex);\n\t\t\tconst maskedName =\n\t\t\t\tname[0] +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, name.length - 2)) +\n\t\t\t\t(name.length > 2 ? name.slice(-1) : '');\n\t\t\treturn maskedName + domain;\n\t\t}\n\t\tcase 'custom': {\n\t\t\tconst start = startCount !== undefined ? startCount : 2;\n\t\t\tconst end = endCount !== undefined ? endCount : 2;\n\t\t\tif (raw.length <= start + end) return raw;\n\t\t\treturn (\n\t\t\t\traw.slice(0, start) +\n\t\t\t\tmaskSymbol.repeat(Math.max(1, raw.length - start - end)) +\n\t\t\t\traw.slice(-end)\n\t\t\t);\n\t\t}\n\t\tdefault:\n\t\t\treturn raw;\n\t}\n}\n\nconst SensitiveMask: React.FC<SensitiveMaskProps> = ({\n\ttext = '',\n\ttype = 'phone',\n\tdefaultMasked = true,\n\tmaskSymbol = '*',\n\tunmaskedStart,\n\tunmaskedEnd,\n\ttoggleable = true,\n\tcopyable = false,\n\tonToggle,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [masked, setMasked] = useState<boolean>(defaultMasked);\n\n\tconst maskedText = useMemo(() => {\n\t\treturn maskSensitiveText(text, type, maskSymbol, unmaskedStart, unmaskedEnd);\n\t}, [text, type, maskSymbol, unmaskedStart, unmaskedEnd]);\n\n\tconst displayText = masked ? maskedText : text;\n\n\tconst handleToggle = async (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst nextState = !masked;\n\t\tif (onToggle) {\n\t\t\tconst allowed = await onToggle(nextState);\n\t\t\tif (allowed === false) return;\n\t\t}\n\t\tsetMasked(nextState);\n\t};\n\n\treturn (\n\t\t<span className={`rpc_sensitive_mask ${className}`} style={style}>\n\t\t\t<span className=\"rpc_sensitive_mask_text\">{displayText}</span>\n\n\t\t\t{toggleable && (\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"rpc_sensitive_mask_action_btn\"\n\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\ttitle={masked ? '点击查看明文' : '点击隐藏'}\n\t\t\t\t>\n\t\t\t\t\t{masked ? <EyeOutlined /> : <EyeInvisibleOutlined />}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{copyable && <CopyButton mode=\"icon\" text={text} tooltip=\"复制明文\" />}\n\t\t</span>\n\t);\n};\n\nexport default SensitiveMask;\n"]}
@@ -1,4 +1,4 @@
1
- import { PauseCircleOutlined, PlayCircleOutlined, FullscreenExitOutlined, FullscreenOutlined } from './chunk-ISUXPTLV.js';
1
+ import { PauseCircleOutlined, PlayCircleOutlined, FullscreenExitOutlined, FullscreenOutlined } from './chunk-2IDVNTKR.js';
2
2
  import { useRef, useState } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -225,5 +225,5 @@ var VideoPlayer = ({
225
225
  var VideoPlayer_default = VideoPlayer;
226
226
 
227
227
  export { VideoPlayer_default };
228
- //# sourceMappingURL=chunk-CT66HLZ5.js.map
229
- //# sourceMappingURL=chunk-CT66HLZ5.js.map
228
+ //# sourceMappingURL=chunk-MQJBUHDB.js.map
229
+ //# sourceMappingURL=chunk-MQJBUHDB.js.map