react-public-components 1.2.7 → 1.2.9

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 (212) hide show
  1. package/README.md +181 -109
  2. package/dist/AnnouncementBar/index.cjs +3 -3
  3. package/dist/AnnouncementBar/index.js +2 -2
  4. package/dist/AudioPlayer/index.cjs +3 -3
  5. package/dist/AudioPlayer/index.js +2 -2
  6. package/dist/CeilingBox/index.cjs +2 -2
  7. package/dist/CeilingBox/index.js +1 -1
  8. package/dist/CodeSnippet/index.cjs +3 -3
  9. package/dist/CodeSnippet/index.js +2 -2
  10. package/dist/CollapseBox/index.cjs +3 -3
  11. package/dist/CollapseBox/index.js +2 -2
  12. package/dist/ColorPicker/index.cjs +5 -5
  13. package/dist/ColorPicker/index.js +2 -2
  14. package/dist/ContextMenu/index.cjs +3 -3
  15. package/dist/ContextMenu/index.js +2 -2
  16. package/dist/CopyButton/index.cjs +3 -3
  17. package/dist/CopyButton/index.js +2 -2
  18. package/dist/CronPicker/index.cjs +4 -4
  19. package/dist/CronPicker/index.js +3 -3
  20. package/dist/DebounceSelect/index.cjs +3 -3
  21. package/dist/DebounceSelect/index.js +2 -2
  22. package/dist/DisabledBox/index.cjs +3 -3
  23. package/dist/DisabledBox/index.js +2 -2
  24. package/dist/DragSortList/index.cjs +3 -3
  25. package/dist/DragSortList/index.js +2 -2
  26. package/dist/FilePreviewer/index.cjs +4 -4
  27. package/dist/FilePreviewer/index.js +2 -2
  28. package/dist/Fullscreen/index.cjs +3 -3
  29. package/dist/Fullscreen/index.js +2 -2
  30. package/dist/GuidedTour/index.cjs +3 -3
  31. package/dist/GuidedTour/index.js +2 -2
  32. package/dist/ImageCropper/index.cjs +3 -3
  33. package/dist/ImageCropper/index.js +2 -2
  34. package/dist/InfiniteScrollList/index.cjs +3 -3
  35. package/dist/InfiniteScrollList/index.js +2 -2
  36. package/dist/JsonEditor/index.cjs +4 -4
  37. package/dist/JsonEditor/index.js +3 -3
  38. package/dist/KeyValEditor/index.cjs +3 -3
  39. package/dist/KeyValEditor/index.js +2 -2
  40. package/dist/LazyLoadBox/index.cjs +3 -3
  41. package/dist/LazyLoadBox/index.js +1 -1
  42. package/dist/MiniSparkline/index.cjs +2 -2
  43. package/dist/MiniSparkline/index.js +1 -1
  44. package/dist/PasswordStrength/index.cjs +4 -4
  45. package/dist/PasswordStrength/index.js +2 -2
  46. package/dist/PdfViewer/index.cjs +3 -3
  47. package/dist/PdfViewer/index.js +2 -2
  48. package/dist/PeriodSelect/index.cjs +4 -4
  49. package/dist/PeriodSelect/index.js +1 -1
  50. package/dist/QrCodeCard/index.cjs +3 -3
  51. package/dist/QrCodeCard/index.js +2 -2
  52. package/dist/SensitiveMask/index.cjs +5 -5
  53. package/dist/SensitiveMask/index.js +3 -3
  54. package/dist/Splitter/index.cjs +3 -3
  55. package/dist/Splitter/index.js +2 -2
  56. package/dist/TagInput/index.cjs +3 -3
  57. package/dist/TagInput/index.js +2 -2
  58. package/dist/TextEllipsis/index.cjs +4 -4
  59. package/dist/TextEllipsis/index.js +3 -3
  60. package/dist/TreeTransfer/index.cjs +3 -3
  61. package/dist/TreeTransfer/index.js +2 -2
  62. package/dist/VideoPlayer/index.cjs +3 -3
  63. package/dist/VideoPlayer/index.js +2 -2
  64. package/dist/{chunk-56VELHCH.js → chunk-2SEHUMQH.js} +3 -3
  65. package/dist/{chunk-56VELHCH.js.map → chunk-2SEHUMQH.js.map} +1 -1
  66. package/dist/{chunk-2INP6NM4.js → chunk-3WLGM74R.js} +3 -3
  67. package/dist/{chunk-2INP6NM4.js.map → chunk-3WLGM74R.js.map} +1 -1
  68. package/dist/{chunk-2IDVNTKR.js → chunk-537T6BR3.js} +32 -8
  69. package/dist/chunk-537T6BR3.js.map +1 -0
  70. package/dist/{chunk-XUAHWX6B.js → chunk-5QEXX32M.js} +3 -3
  71. package/dist/{chunk-XUAHWX6B.js.map → chunk-5QEXX32M.js.map} +1 -1
  72. package/dist/{chunk-ETFLLRTO.js → chunk-5XTIASJH.js} +3 -3
  73. package/dist/{chunk-ETFLLRTO.js.map → chunk-5XTIASJH.js.map} +1 -1
  74. package/dist/{chunk-TNZ2OLGW.cjs → chunk-6KODABJW.cjs} +4 -4
  75. package/dist/{chunk-TNZ2OLGW.cjs.map → chunk-6KODABJW.cjs.map} +1 -1
  76. package/dist/{chunk-ZWKUHYTV.cjs → chunk-6WCWYSFU.cjs} +6 -6
  77. package/dist/{chunk-ZWKUHYTV.cjs.map → chunk-6WCWYSFU.cjs.map} +1 -1
  78. package/dist/{chunk-Y54KVULF.js → chunk-7FGE7NRH.js} +11 -4
  79. package/dist/chunk-7FGE7NRH.js.map +1 -0
  80. package/dist/{chunk-VJOO2DG3.cjs → chunk-7NXCDDBT.cjs} +8 -8
  81. package/dist/{chunk-VJOO2DG3.cjs.map → chunk-7NXCDDBT.cjs.map} +1 -1
  82. package/dist/{chunk-VYPIRVL4.js → chunk-7W7PCWMM.js} +2 -2
  83. package/dist/chunk-7W7PCWMM.js.map +1 -0
  84. package/dist/{chunk-NNS4YN3C.js → chunk-B3FMPSBM.js} +10 -4
  85. package/dist/chunk-B3FMPSBM.js.map +1 -0
  86. package/dist/{chunk-TUEVILTA.cjs → chunk-BKHKPZ6O.cjs} +5 -5
  87. package/dist/{chunk-TUEVILTA.cjs.map → chunk-BKHKPZ6O.cjs.map} +1 -1
  88. package/dist/{chunk-AXPVN2OO.js → chunk-BXLUH6FE.js} +3 -3
  89. package/dist/{chunk-AXPVN2OO.js.map → chunk-BXLUH6FE.js.map} +1 -1
  90. package/dist/{chunk-PYCSRJSF.cjs → chunk-CWG7A5DS.cjs} +7 -7
  91. package/dist/{chunk-PYCSRJSF.cjs.map → chunk-CWG7A5DS.cjs.map} +1 -1
  92. package/dist/{chunk-YP4XTMK3.cjs → chunk-DTJEY3BC.cjs} +4 -4
  93. package/dist/{chunk-YP4XTMK3.cjs.map → chunk-DTJEY3BC.cjs.map} +1 -1
  94. package/dist/{chunk-2EIAWXFA.cjs → chunk-DWG4FUDX.cjs} +5 -5
  95. package/dist/{chunk-2EIAWXFA.cjs.map → chunk-DWG4FUDX.cjs.map} +1 -1
  96. package/dist/{chunk-IF4XAUV3.js → chunk-E6EJLQL7.js} +3 -3
  97. package/dist/{chunk-IF4XAUV3.js.map → chunk-E6EJLQL7.js.map} +1 -1
  98. package/dist/{chunk-RFTYEXKU.js → chunk-EMQHYD3G.js} +6 -14
  99. package/dist/chunk-EMQHYD3G.js.map +1 -0
  100. package/dist/{chunk-O4EABET3.js → chunk-ERPKXNWM.js} +10 -4
  101. package/dist/chunk-ERPKXNWM.js.map +1 -0
  102. package/dist/{chunk-QRZ2GVVJ.js → chunk-FJ33L5D7.js} +3 -3
  103. package/dist/{chunk-QRZ2GVVJ.js.map → chunk-FJ33L5D7.js.map} +1 -1
  104. package/dist/{chunk-4KMVABTM.js → chunk-FQHPCK3S.js} +4 -6
  105. package/dist/chunk-FQHPCK3S.js.map +1 -0
  106. package/dist/{chunk-OLLVIQPL.js → chunk-FT2XGH4D.js} +3 -3
  107. package/dist/{chunk-OLLVIQPL.js.map → chunk-FT2XGH4D.js.map} +1 -1
  108. package/dist/{chunk-EMT4NUI5.js → chunk-G76ELHWZ.js} +3 -3
  109. package/dist/{chunk-EMT4NUI5.js.map → chunk-G76ELHWZ.js.map} +1 -1
  110. package/dist/{chunk-QU33CY3M.cjs → chunk-IHUBENM6.cjs} +6 -14
  111. package/dist/chunk-IHUBENM6.cjs.map +1 -0
  112. package/dist/{chunk-M4FZJALR.js → chunk-J3C46E6G.js} +4 -4
  113. package/dist/{chunk-M4FZJALR.js.map → chunk-J3C46E6G.js.map} +1 -1
  114. package/dist/{chunk-UIU6VCEQ.cjs → chunk-JLW5ISIR.cjs} +6 -3
  115. package/dist/chunk-JLW5ISIR.cjs.map +1 -0
  116. package/dist/{chunk-UAUP5TJK.cjs → chunk-K4LVWWEE.cjs} +5 -5
  117. package/dist/{chunk-UAUP5TJK.cjs.map → chunk-K4LVWWEE.cjs.map} +1 -1
  118. package/dist/{chunk-P5CS7V4W.js → chunk-KJ537QZS.js} +3 -3
  119. package/dist/{chunk-P5CS7V4W.js.map → chunk-KJ537QZS.js.map} +1 -1
  120. package/dist/{chunk-U2EBNBGK.cjs → chunk-KSXCVQU3.cjs} +4 -4
  121. package/dist/{chunk-U2EBNBGK.cjs.map → chunk-KSXCVQU3.cjs.map} +1 -1
  122. package/dist/{chunk-LFGBZXQH.cjs → chunk-KWL5465Y.cjs} +4 -4
  123. package/dist/{chunk-LFGBZXQH.cjs.map → chunk-KWL5465Y.cjs.map} +1 -1
  124. package/dist/{chunk-TUDLE3RT.cjs → chunk-KYM35LPD.cjs} +13 -15
  125. package/dist/chunk-KYM35LPD.cjs.map +1 -0
  126. package/dist/{chunk-RN5WU7KA.cjs → chunk-L76JMQUH.cjs} +7 -7
  127. package/dist/{chunk-RN5WU7KA.cjs.map → chunk-L76JMQUH.cjs.map} +1 -1
  128. package/dist/{chunk-AHTRLNYK.cjs → chunk-LPDHDZTA.cjs} +5 -5
  129. package/dist/{chunk-AHTRLNYK.cjs.map → chunk-LPDHDZTA.cjs.map} +1 -1
  130. package/dist/{chunk-JHVPDKBM.cjs → chunk-LRUSUUPJ.cjs} +6 -6
  131. package/dist/{chunk-JHVPDKBM.cjs.map → chunk-LRUSUUPJ.cjs.map} +1 -1
  132. package/dist/{chunk-MQJBUHDB.js → chunk-MWVME3UR.js} +3 -3
  133. package/dist/{chunk-MQJBUHDB.js.map → chunk-MWVME3UR.js.map} +1 -1
  134. package/dist/{chunk-OONBZRPV.cjs → chunk-N4UF72SJ.cjs} +4 -4
  135. package/dist/{chunk-OONBZRPV.cjs.map → chunk-N4UF72SJ.cjs.map} +1 -1
  136. package/dist/{chunk-EKDJPOA3.cjs → chunk-NKLHMUGB.cjs} +5 -5
  137. package/dist/{chunk-EKDJPOA3.cjs.map → chunk-NKLHMUGB.cjs.map} +1 -1
  138. package/dist/{chunk-M3GQ7RCV.cjs → chunk-NZNNDZW4.cjs} +4 -4
  139. package/dist/{chunk-M3GQ7RCV.cjs.map → chunk-NZNNDZW4.cjs.map} +1 -1
  140. package/dist/{chunk-UZB7GOEI.cjs → chunk-OLIPC6HC.cjs} +4 -4
  141. package/dist/{chunk-UZB7GOEI.cjs.map → chunk-OLIPC6HC.cjs.map} +1 -1
  142. package/dist/{chunk-PTFKE67K.js → chunk-OOH3YSNC.js} +3 -3
  143. package/dist/{chunk-PTFKE67K.js.map → chunk-OOH3YSNC.js.map} +1 -1
  144. package/dist/{chunk-Q7OVUH5K.js → chunk-OXBOWSLR.js} +3 -3
  145. package/dist/{chunk-Q7OVUH5K.js.map → chunk-OXBOWSLR.js.map} +1 -1
  146. package/dist/{chunk-EDNBPLUS.js → chunk-P7P3UVGN.js} +3 -3
  147. package/dist/{chunk-EDNBPLUS.js.map → chunk-P7P3UVGN.js.map} +1 -1
  148. package/dist/{chunk-ANTFNDH4.js → chunk-Q2M3ZE7E.js} +3 -3
  149. package/dist/{chunk-ANTFNDH4.js.map → chunk-Q2M3ZE7E.js.map} +1 -1
  150. package/dist/{chunk-W5JA3YTT.js → chunk-Q3Z6OWKR.js} +3 -3
  151. package/dist/{chunk-W5JA3YTT.js.map → chunk-Q3Z6OWKR.js.map} +1 -1
  152. package/dist/{chunk-R4V3EJVP.cjs → chunk-QMLDK2DL.cjs} +32 -8
  153. package/dist/chunk-QMLDK2DL.cjs.map +1 -0
  154. package/dist/{chunk-PUMVD7CP.js → chunk-QVTQQB6M.js} +3 -3
  155. package/dist/{chunk-PUMVD7CP.js.map → chunk-QVTQQB6M.js.map} +1 -1
  156. package/dist/{chunk-ZCBT56AG.js → chunk-RBX6VEKI.js} +3 -3
  157. package/dist/{chunk-ZCBT56AG.js.map → chunk-RBX6VEKI.js.map} +1 -1
  158. package/dist/{chunk-4TMBGQQE.cjs → chunk-S35SIDXQ.cjs} +5 -5
  159. package/dist/{chunk-4TMBGQQE.cjs.map → chunk-S35SIDXQ.cjs.map} +1 -1
  160. package/dist/{chunk-CURWX7OY.js → chunk-SCVOSNWF.js} +3 -3
  161. package/dist/{chunk-CURWX7OY.js.map → chunk-SCVOSNWF.js.map} +1 -1
  162. package/dist/{chunk-ZXMFWVE4.cjs → chunk-SG7Z432O.cjs} +11 -5
  163. package/dist/chunk-SG7Z432O.cjs.map +1 -0
  164. package/dist/{chunk-FZH5FL7X.cjs → chunk-THZFDBJM.cjs} +12 -5
  165. package/dist/chunk-THZFDBJM.cjs.map +1 -0
  166. package/dist/{chunk-HKALWFWZ.cjs → chunk-TWL3QEFV.cjs} +5 -5
  167. package/dist/{chunk-HKALWFWZ.cjs.map → chunk-TWL3QEFV.cjs.map} +1 -1
  168. package/dist/{chunk-XLOGMDAQ.js → chunk-U4VZGKQV.js} +3 -3
  169. package/dist/{chunk-XLOGMDAQ.js.map → chunk-U4VZGKQV.js.map} +1 -1
  170. package/dist/{chunk-EJYTTSW6.js → chunk-VAU4USHW.js} +3 -3
  171. package/dist/{chunk-EJYTTSW6.js.map → chunk-VAU4USHW.js.map} +1 -1
  172. package/dist/{chunk-HSYTBMLN.cjs → chunk-VVKYGA2T.cjs} +9 -3
  173. package/dist/chunk-VVKYGA2T.cjs.map +1 -0
  174. package/dist/{chunk-JNA5AQ2K.js → chunk-VY4XERM4.js} +3 -3
  175. package/dist/{chunk-JNA5AQ2K.js.map → chunk-VY4XERM4.js.map} +1 -1
  176. package/dist/{chunk-V55FEQYU.cjs → chunk-W52O3Y2I.cjs} +2 -2
  177. package/dist/chunk-W52O3Y2I.cjs.map +1 -0
  178. package/dist/{chunk-7ZBA4NHH.cjs → chunk-W7LZVHTA.cjs} +4 -4
  179. package/dist/{chunk-7ZBA4NHH.cjs.map → chunk-W7LZVHTA.cjs.map} +1 -1
  180. package/dist/{chunk-5Q7THN6M.js → chunk-WLAHW5RF.js} +6 -3
  181. package/dist/chunk-WLAHW5RF.js.map +1 -0
  182. package/dist/{chunk-IPS7PC3M.cjs → chunk-X5X4YABT.cjs} +13 -13
  183. package/dist/{chunk-IPS7PC3M.cjs.map → chunk-X5X4YABT.cjs.map} +1 -1
  184. package/dist/{chunk-WKF4C6TJ.js → chunk-XLPOXPOV.js} +3 -3
  185. package/dist/{chunk-WKF4C6TJ.js.map → chunk-XLPOXPOV.js.map} +1 -1
  186. package/dist/{chunk-QP3RKA4J.cjs → chunk-XM6J7F5X.cjs} +4 -4
  187. package/dist/{chunk-QP3RKA4J.cjs.map → chunk-XM6J7F5X.cjs.map} +1 -1
  188. package/dist/{chunk-ED3ZG2VX.cjs → chunk-ZR56U55S.cjs} +5 -5
  189. package/dist/{chunk-ED3ZG2VX.cjs.map → chunk-ZR56U55S.cjs.map} +1 -1
  190. package/dist/{chunk-77ANKL4K.cjs → chunk-ZRNAJCZI.cjs} +8 -8
  191. package/dist/{chunk-77ANKL4K.cjs.map → chunk-ZRNAJCZI.cjs.map} +1 -1
  192. package/dist/index.cjs +73 -73
  193. package/dist/index.js +32 -32
  194. package/dist/src/icons.d.ts +6 -6
  195. package/dist/src/index.d.ts +2 -2
  196. package/package.json +1 -1
  197. package/dist/chunk-2IDVNTKR.js.map +0 -1
  198. package/dist/chunk-4KMVABTM.js.map +0 -1
  199. package/dist/chunk-5Q7THN6M.js.map +0 -1
  200. package/dist/chunk-FZH5FL7X.cjs.map +0 -1
  201. package/dist/chunk-HSYTBMLN.cjs.map +0 -1
  202. package/dist/chunk-NNS4YN3C.js.map +0 -1
  203. package/dist/chunk-O4EABET3.js.map +0 -1
  204. package/dist/chunk-QU33CY3M.cjs.map +0 -1
  205. package/dist/chunk-R4V3EJVP.cjs.map +0 -1
  206. package/dist/chunk-RFTYEXKU.js.map +0 -1
  207. package/dist/chunk-TUDLE3RT.cjs.map +0 -1
  208. package/dist/chunk-UIU6VCEQ.cjs.map +0 -1
  209. package/dist/chunk-V55FEQYU.cjs.map +0 -1
  210. package/dist/chunk-VYPIRVL4.js.map +0 -1
  211. package/dist/chunk-Y54KVULF.js.map +0 -1
  212. package/dist/chunk-ZXMFWVE4.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../CronPicker/index.tsx"],"names":[],"mappings":"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","file":"chunk-PUMVD7CP.js","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":[],"mappings":"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","file":"chunk-QVTQQB6M.js","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,4 +1,4 @@
1
- import { ZoomOutOutlined, ZoomInOutlined, RotateRightOutlined, DownloadOutlined } from './chunk-2IDVNTKR.js';
1
+ import { ZoomOutOutlined, ZoomInOutlined, RotateRightOutlined, DownloadOutlined } from './chunk-537T6BR3.js';
2
2
  import { useState } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -64,5 +64,5 @@ var PdfViewer = ({
64
64
  var PdfViewer_default = PdfViewer;
65
65
 
66
66
  export { PdfViewer_default };
67
- //# sourceMappingURL=chunk-ZCBT56AG.js.map
68
- //# sourceMappingURL=chunk-ZCBT56AG.js.map
67
+ //# sourceMappingURL=chunk-RBX6VEKI.js.map
68
+ //# sourceMappingURL=chunk-RBX6VEKI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../PdfViewer/index.tsx"],"names":[],"mappings":"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","file":"chunk-ZCBT56AG.js","sourcesContent":["import React, { useState, ReactNode, CSSProperties } from 'react';\nimport {\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tRotateRightOutlined,\n\tDownloadOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport interface PdfViewerProps {\n\t/** PDF 文件 URL 地址 */\n\tsrc: string;\n\t/** 文档标题 */\n\ttitle?: ReactNode;\n\t/** 宽度,默认为 '100%' */\n\twidth?: number | string;\n\t/** 高度,默认为 500 */\n\theight?: number | string;\n\t/** 是否显示下载按钮,默认为 true */\n\tshowDownload?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst PdfViewer: React.FC<PdfViewerProps> = ({\n\tsrc,\n\ttitle = 'PDF Document Preview',\n\twidth = '100%',\n\theight = 500,\n\tshowDownload = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [zoom, setZoom] = useState<number>(100);\n\tconst [rotation, setRotation] = useState<number>(0);\n\n\tconst handleZoomIn = () => {\n\t\tsetZoom((prev) => Math.min(200, prev + 15));\n\t};\n\n\tconst handleZoomOut = () => {\n\t\tsetZoom((prev) => Math.max(50, prev - 15));\n\t};\n\n\tconst handleRotate = () => {\n\t\tsetRotation((prev) => (prev + 90) % 360);\n\t};\n\n\treturn (\n\t\t<div className={`rpc_pdf_viewer ${className}`} style={{ width, height, ...style }}>\n\t\t\t{/* 顶部工具栏 */}\n\t\t\t<div className=\"rpc_pdf_viewer_toolbar\">\n\t\t\t\t<span className=\"rpc_pdf_viewer_title\">{title}</span>\n\n\t\t\t\t<div className=\"rpc_pdf_viewer_actions\">\n\t\t\t\t\t<button type=\"button\" className=\"rpc_pdf_viewer_btn\" onClick={handleZoomOut} title=\"缩小\">\n\t\t\t\t\t\t<ZoomOutOutlined />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<span style={{ fontSize: 12, minWidth: 40, textAlign: 'center' }}>{zoom}%</span>\n\n\t\t\t\t\t<button type=\"button\" className=\"rpc_pdf_viewer_btn\" onClick={handleZoomIn} title=\"放大\">\n\t\t\t\t\t\t<ZoomInOutlined />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_pdf_viewer_btn\"\n\t\t\t\t\t\tonClick={handleRotate}\n\t\t\t\t\t\ttitle=\"顺时针旋转 90°\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RotateRightOutlined />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t{showDownload && (\n\t\t\t\t\t\t<a href={src} download className=\"rpc_pdf_viewer_btn\" title=\"下载 PDF\">\n\t\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t\t\t<span>下载</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* PDF 内容嵌入容器 */}\n\t\t\t<div className=\"rpc_pdf_viewer_body\">\n\t\t\t\t<iframe\n\t\t\t\t\tsrc={`${src}#toolbar=0&navpanes=0`}\n\t\t\t\t\ttitle=\"PDF Preview Frame\"\n\t\t\t\t\tclassName=\"rpc_pdf_viewer_frame\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttransform: `scale(${zoom / 100}) rotate(${rotation}deg)`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default PdfViewer;\n"]}
1
+ {"version":3,"sources":["../PdfViewer/index.tsx"],"names":[],"mappings":"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","file":"chunk-RBX6VEKI.js","sourcesContent":["import React, { useState, ReactNode, CSSProperties } from 'react';\nimport {\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tRotateRightOutlined,\n\tDownloadOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport interface PdfViewerProps {\n\t/** PDF 文件 URL 地址 */\n\tsrc: string;\n\t/** 文档标题 */\n\ttitle?: ReactNode;\n\t/** 宽度,默认为 '100%' */\n\twidth?: number | string;\n\t/** 高度,默认为 500 */\n\theight?: number | string;\n\t/** 是否显示下载按钮,默认为 true */\n\tshowDownload?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst PdfViewer: React.FC<PdfViewerProps> = ({\n\tsrc,\n\ttitle = 'PDF Document Preview',\n\twidth = '100%',\n\theight = 500,\n\tshowDownload = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [zoom, setZoom] = useState<number>(100);\n\tconst [rotation, setRotation] = useState<number>(0);\n\n\tconst handleZoomIn = () => {\n\t\tsetZoom((prev) => Math.min(200, prev + 15));\n\t};\n\n\tconst handleZoomOut = () => {\n\t\tsetZoom((prev) => Math.max(50, prev - 15));\n\t};\n\n\tconst handleRotate = () => {\n\t\tsetRotation((prev) => (prev + 90) % 360);\n\t};\n\n\treturn (\n\t\t<div className={`rpc_pdf_viewer ${className}`} style={{ width, height, ...style }}>\n\t\t\t{/* 顶部工具栏 */}\n\t\t\t<div className=\"rpc_pdf_viewer_toolbar\">\n\t\t\t\t<span className=\"rpc_pdf_viewer_title\">{title}</span>\n\n\t\t\t\t<div className=\"rpc_pdf_viewer_actions\">\n\t\t\t\t\t<button type=\"button\" className=\"rpc_pdf_viewer_btn\" onClick={handleZoomOut} title=\"缩小\">\n\t\t\t\t\t\t<ZoomOutOutlined />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<span style={{ fontSize: 12, minWidth: 40, textAlign: 'center' }}>{zoom}%</span>\n\n\t\t\t\t\t<button type=\"button\" className=\"rpc_pdf_viewer_btn\" onClick={handleZoomIn} title=\"放大\">\n\t\t\t\t\t\t<ZoomInOutlined />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_pdf_viewer_btn\"\n\t\t\t\t\t\tonClick={handleRotate}\n\t\t\t\t\t\ttitle=\"顺时针旋转 90°\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RotateRightOutlined />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t{showDownload && (\n\t\t\t\t\t\t<a href={src} download className=\"rpc_pdf_viewer_btn\" title=\"下载 PDF\">\n\t\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t\t\t<span>下载</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* PDF 内容嵌入容器 */}\n\t\t\t<div className=\"rpc_pdf_viewer_body\">\n\t\t\t\t<iframe\n\t\t\t\t\tsrc={`${src}#toolbar=0&navpanes=0`}\n\t\t\t\t\ttitle=\"PDF Preview Frame\"\n\t\t\t\t\tclassName=\"rpc_pdf_viewer_frame\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttransform: `scale(${zoom / 100}) rotate(${rotation}deg)`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default PdfViewer;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
3
+ var chunkQMLDK2DL_cjs = require('./chunk-QMLDK2DL.cjs');
4
4
  var react = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -76,7 +76,7 @@ var AudioPlayer = ({
76
76
  onEnded: () => setIsPlaying(false)
77
77
  }
78
78
  ),
79
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_audio_player_play_btn", onClick: togglePlay, children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.PauseCircleOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.PlayCircleOutlined, {}) }),
79
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_audio_player_play_btn", onClick: togglePlay, children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.PauseCircleOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.PlayCircleOutlined, {}) }),
80
80
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_audio_player_info", children: [
81
81
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_audio_player_title_row", children: [
82
82
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_audio_player_title", children: title || "\u97F3\u9891\u64AD\u653E" }),
@@ -116,7 +116,7 @@ var AudioPlayer = ({
116
116
  className: "rpc_audio_player_download_btn",
117
117
  title: "\u4E0B\u8F7D\u97F3\u9891\u6587\u4EF6",
118
118
  onClick: (e) => e.stopPropagation(),
119
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.DownloadOutlined, {})
119
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.DownloadOutlined, {})
120
120
  }
121
121
  )
122
122
  ] })
@@ -125,5 +125,5 @@ var AudioPlayer = ({
125
125
  var AudioPlayer_default = AudioPlayer;
126
126
 
127
127
  exports.AudioPlayer_default = AudioPlayer_default;
128
- //# sourceMappingURL=chunk-4TMBGQQE.cjs.map
129
- //# sourceMappingURL=chunk-4TMBGQQE.cjs.map
128
+ //# sourceMappingURL=chunk-S35SIDXQ.cjs.map
129
+ //# sourceMappingURL=chunk-S35SIDXQ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../AudioPlayer/index.tsx"],"names":["useRef","useState","jsx","PauseCircleOutlined","PlayCircleOutlined","jsxs","DownloadOutlined"],"mappings":"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","file":"chunk-4TMBGQQE.cjs","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport { PlayCircleOutlined, PauseCircleOutlined, DownloadOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface AudioPlayerProps {\n\t/** 音频资源地址 */\n\tsrc: string;\n\t/** 音频标题或文件名 */\n\ttitle?: ReactNode;\n\t/** 默认倍速,默认为 1 */\n\tdefaultPlaybackRate?: number;\n\t/** 是否显示下载按钮,默认为 true */\n\tshowDownload?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nfunction formatTime(seconds: number): string {\n\tif (isNaN(seconds) || seconds < 0) return '00:00';\n\tconst m = Math.floor(seconds / 60);\n\tconst s = Math.floor(seconds % 60);\n\treturn `${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}`;\n}\n\nconst speedOptions = [1.0, 1.25, 1.5, 2.0];\n\nconst AudioPlayer: React.FC<AudioPlayerProps> = ({\n\tsrc,\n\ttitle,\n\tdefaultPlaybackRate = 1.0,\n\tshowDownload = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst audioRef = useRef<HTMLAudioElement>(null);\n\tconst progressRef = useRef<HTMLDivElement>(null);\n\n\tconst [isPlaying, setIsPlaying] = useState<boolean>(false);\n\tconst [currentTime, setCurrentTime] = useState<number>(0);\n\tconst [duration, setDuration] = useState<number>(0);\n\tconst [speedIndex, setSpeedIndex] = useState<number>(\n\t\tMath.max(0, speedOptions.indexOf(defaultPlaybackRate)),\n\t);\n\n\tconst currentSpeed = speedOptions[speedIndex] || 1.0;\n\n\t// 播放 / 暂停切换\n\tconst togglePlay = () => {\n\t\tconst audio = audioRef.current;\n\t\tif (!audio) return;\n\t\tif (isPlaying) {\n\t\t\taudio.pause();\n\t\t\tsetIsPlaying(false);\n\t\t} else {\n\t\t\taudio.play();\n\t\t\tsetIsPlaying(true);\n\t\t}\n\t};\n\n\t// 监听时间更新\n\tconst handleTimeUpdate = () => {\n\t\tif (audioRef.current) {\n\t\t\tsetCurrentTime(audioRef.current.currentTime);\n\t\t}\n\t};\n\n\t// 监听时长加载\n\tconst handleLoadedMetadata = () => {\n\t\tif (audioRef.current) {\n\t\t\tsetDuration(audioRef.current.duration);\n\t\t}\n\t};\n\n\t// 切换倍速\n\tconst handleSpeedCycle = () => {\n\t\tconst nextIndex = (speedIndex + 1) % speedOptions.length;\n\t\tsetSpeedIndex(nextIndex);\n\t\tif (audioRef.current) {\n\t\t\taudioRef.current.playbackRate = speedOptions[nextIndex];\n\t\t}\n\t};\n\n\t// 拖拽进度条 Seek\n\tconst handleSeek = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\tif (!progressRef.current || !audioRef.current || !duration) return;\n\t\tconst rect = progressRef.current.getBoundingClientRect();\n\t\tconst percent = Math.min(1, Math.max(0, (e.clientX - rect.left) / rect.width));\n\t\tconst targetTime = percent * duration;\n\t\taudioRef.current.currentTime = targetTime;\n\t\tsetCurrentTime(targetTime);\n\t};\n\n\tconst progressPercent = duration > 0 ? (currentTime / duration) * 100 : 0;\n\n\treturn (\n\t\t<div className={`rpc_audio_player ${className}`} style={style}>\n\t\t\t<audio\n\t\t\t\tref={audioRef}\n\t\t\t\tsrc={src}\n\t\t\t\tonTimeUpdate={handleTimeUpdate}\n\t\t\t\tonLoadedMetadata={handleLoadedMetadata}\n\t\t\t\tonEnded={() => setIsPlaying(false)}\n\t\t\t/>\n\n\t\t\t{/* 播放 / 暂停按钮 */}\n\t\t\t<div className=\"rpc_audio_player_play_btn\" onClick={togglePlay}>\n\t\t\t\t{isPlaying ? <PauseCircleOutlined /> : <PlayCircleOutlined />}\n\t\t\t</div>\n\n\t\t\t{/* 信息与进度条 */}\n\t\t\t<div className=\"rpc_audio_player_info\">\n\t\t\t\t<div className=\"rpc_audio_player_title_row\">\n\t\t\t\t\t<span className=\"rpc_audio_player_title\">{title || '音频播放'}</span>\n\t\t\t\t\t<span className=\"rpc_audio_player_time\">\n\t\t\t\t\t\t{formatTime(currentTime)} / {formatTime(duration)}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div ref={progressRef} className=\"rpc_audio_player_progress_bar\" onClick={handleSeek}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"rpc_audio_player_progress_fill\"\n\t\t\t\t\t\tstyle={{ width: `${progressPercent}%` }}\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<div className=\"rpc_audio_player_extra\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"rpc_audio_player_speed_btn\"\n\t\t\t\t\tonClick={handleSpeedCycle}\n\t\t\t\t\ttitle=\"点击切换播放倍速\"\n\t\t\t\t>\n\t\t\t\t\t{currentSpeed}x\n\t\t\t\t</button>\n\n\t\t\t\t{showDownload && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={src}\n\t\t\t\t\t\tdownload\n\t\t\t\t\t\tclassName=\"rpc_audio_player_download_btn\"\n\t\t\t\t\t\ttitle=\"下载音频文件\"\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t</a>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default AudioPlayer;\n"]}
1
+ {"version":3,"sources":["../AudioPlayer/index.tsx"],"names":["useRef","useState","jsx","PauseCircleOutlined","PlayCircleOutlined","jsxs","DownloadOutlined"],"mappings":"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","file":"chunk-S35SIDXQ.cjs","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport { PlayCircleOutlined, PauseCircleOutlined, DownloadOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface AudioPlayerProps {\n\t/** 音频资源地址 */\n\tsrc: string;\n\t/** 音频标题或文件名 */\n\ttitle?: ReactNode;\n\t/** 默认倍速,默认为 1 */\n\tdefaultPlaybackRate?: number;\n\t/** 是否显示下载按钮,默认为 true */\n\tshowDownload?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nfunction formatTime(seconds: number): string {\n\tif (isNaN(seconds) || seconds < 0) return '00:00';\n\tconst m = Math.floor(seconds / 60);\n\tconst s = Math.floor(seconds % 60);\n\treturn `${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}`;\n}\n\nconst speedOptions = [1.0, 1.25, 1.5, 2.0];\n\nconst AudioPlayer: React.FC<AudioPlayerProps> = ({\n\tsrc,\n\ttitle,\n\tdefaultPlaybackRate = 1.0,\n\tshowDownload = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst audioRef = useRef<HTMLAudioElement>(null);\n\tconst progressRef = useRef<HTMLDivElement>(null);\n\n\tconst [isPlaying, setIsPlaying] = useState<boolean>(false);\n\tconst [currentTime, setCurrentTime] = useState<number>(0);\n\tconst [duration, setDuration] = useState<number>(0);\n\tconst [speedIndex, setSpeedIndex] = useState<number>(\n\t\tMath.max(0, speedOptions.indexOf(defaultPlaybackRate)),\n\t);\n\n\tconst currentSpeed = speedOptions[speedIndex] || 1.0;\n\n\t// 播放 / 暂停切换\n\tconst togglePlay = () => {\n\t\tconst audio = audioRef.current;\n\t\tif (!audio) return;\n\t\tif (isPlaying) {\n\t\t\taudio.pause();\n\t\t\tsetIsPlaying(false);\n\t\t} else {\n\t\t\taudio.play();\n\t\t\tsetIsPlaying(true);\n\t\t}\n\t};\n\n\t// 监听时间更新\n\tconst handleTimeUpdate = () => {\n\t\tif (audioRef.current) {\n\t\t\tsetCurrentTime(audioRef.current.currentTime);\n\t\t}\n\t};\n\n\t// 监听时长加载\n\tconst handleLoadedMetadata = () => {\n\t\tif (audioRef.current) {\n\t\t\tsetDuration(audioRef.current.duration);\n\t\t}\n\t};\n\n\t// 切换倍速\n\tconst handleSpeedCycle = () => {\n\t\tconst nextIndex = (speedIndex + 1) % speedOptions.length;\n\t\tsetSpeedIndex(nextIndex);\n\t\tif (audioRef.current) {\n\t\t\taudioRef.current.playbackRate = speedOptions[nextIndex];\n\t\t}\n\t};\n\n\t// 拖拽进度条 Seek\n\tconst handleSeek = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\tif (!progressRef.current || !audioRef.current || !duration) return;\n\t\tconst rect = progressRef.current.getBoundingClientRect();\n\t\tconst percent = Math.min(1, Math.max(0, (e.clientX - rect.left) / rect.width));\n\t\tconst targetTime = percent * duration;\n\t\taudioRef.current.currentTime = targetTime;\n\t\tsetCurrentTime(targetTime);\n\t};\n\n\tconst progressPercent = duration > 0 ? (currentTime / duration) * 100 : 0;\n\n\treturn (\n\t\t<div className={`rpc_audio_player ${className}`} style={style}>\n\t\t\t<audio\n\t\t\t\tref={audioRef}\n\t\t\t\tsrc={src}\n\t\t\t\tonTimeUpdate={handleTimeUpdate}\n\t\t\t\tonLoadedMetadata={handleLoadedMetadata}\n\t\t\t\tonEnded={() => setIsPlaying(false)}\n\t\t\t/>\n\n\t\t\t{/* 播放 / 暂停按钮 */}\n\t\t\t<div className=\"rpc_audio_player_play_btn\" onClick={togglePlay}>\n\t\t\t\t{isPlaying ? <PauseCircleOutlined /> : <PlayCircleOutlined />}\n\t\t\t</div>\n\n\t\t\t{/* 信息与进度条 */}\n\t\t\t<div className=\"rpc_audio_player_info\">\n\t\t\t\t<div className=\"rpc_audio_player_title_row\">\n\t\t\t\t\t<span className=\"rpc_audio_player_title\">{title || '音频播放'}</span>\n\t\t\t\t\t<span className=\"rpc_audio_player_time\">\n\t\t\t\t\t\t{formatTime(currentTime)} / {formatTime(duration)}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div ref={progressRef} className=\"rpc_audio_player_progress_bar\" onClick={handleSeek}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"rpc_audio_player_progress_fill\"\n\t\t\t\t\t\tstyle={{ width: `${progressPercent}%` }}\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<div className=\"rpc_audio_player_extra\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"rpc_audio_player_speed_btn\"\n\t\t\t\t\tonClick={handleSpeedCycle}\n\t\t\t\t\ttitle=\"点击切换播放倍速\"\n\t\t\t\t>\n\t\t\t\t\t{currentSpeed}x\n\t\t\t\t</button>\n\n\t\t\t\t{showDownload && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={src}\n\t\t\t\t\t\tdownload\n\t\t\t\t\t\tclassName=\"rpc_audio_player_download_btn\"\n\t\t\t\t\t\ttitle=\"下载音频文件\"\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t</a>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default AudioPlayer;\n"]}
@@ -1,4 +1,4 @@
1
- import { RightOutlined } from './chunk-2IDVNTKR.js';
1
+ import { RightOutlined } from './chunk-537T6BR3.js';
2
2
  import { useState, useRef, useEffect } from 'react';
3
3
  import ReactDOM from 'react-dom';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -121,5 +121,5 @@ var ContextMenu = ({
121
121
  var ContextMenu_default = ContextMenu;
122
122
 
123
123
  export { ContextMenu_default };
124
- //# sourceMappingURL=chunk-CURWX7OY.js.map
125
- //# sourceMappingURL=chunk-CURWX7OY.js.map
124
+ //# sourceMappingURL=chunk-SCVOSNWF.js.map
125
+ //# sourceMappingURL=chunk-SCVOSNWF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../ContextMenu/index.tsx"],"names":[],"mappings":"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","file":"chunk-CURWX7OY.js","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { RightOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface ContextMenuItem {\n\t/** 菜单项唯一标识 */\n\tkey: string;\n\t/** 菜单项展示文本或节点 */\n\tlabel?: ReactNode;\n\t/** 菜单项前置图标 */\n\ticon?: ReactNode;\n\t/** 是否为分割线 */\n\ttype?: 'divider';\n\t/** 是否禁用 */\n\tdisabled?: boolean;\n\t/** 是否为警示/危险操作(红色显示) */\n\tdanger?: boolean;\n\t/** 快捷键提示(如 '⌘ C' / 'Ctrl+C') */\n\tshortcut?: string;\n\t/** 二级子菜单项列表 */\n\tchildren?: ContextMenuItem[];\n\t/** 点击菜单项回调 */\n\tonClick?: (item: ContextMenuItem, e: React.MouseEvent) => void;\n}\n\nexport interface ContextMenuProps {\n\t/** 菜单项列表配置 */\n\titems: ContextMenuItem[];\n\t/** 被右键激活的目标子组件/容器 */\n\tchildren: ReactNode;\n\t/** 是否禁用右键上下文菜单 */\n\tdisabled?: boolean;\n\t/** 菜单显隐状态改变回调 */\n\tonOpenChange?: (open: boolean) => void;\n\t/** 自定义菜单类名 */\n\tmenuClassName?: string;\n\t/** 自定义菜单样式 */\n\tmenuStyle?: CSSProperties;\n\t/** 自定义外层包裹类名 */\n\tclassName?: string;\n\t/** 自定义外层包裹样式 */\n\tstyle?: CSSProperties;\n}\n\ninterface Position {\n\tx: number;\n\ty: number;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = ({\n\titems,\n\tchildren,\n\tdisabled = false,\n\tonOpenChange,\n\tmenuClassName = '',\n\tmenuStyle,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [visible, setVisible] = useState<boolean>(false);\n\tconst [position, setPosition] = useState<Position>({ x: 0, y: 0 });\n\tconst menuRef = useRef<HTMLDivElement>(null);\n\n\tconst handleContextMenu = (e: React.MouseEvent) => {\n\t\tif (disabled) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst mouseX = e.clientX;\n\t\tconst mouseY = e.clientY;\n\n\t\t// 初始设置位置\n\t\tsetPosition({ x: mouseX, y: mouseY });\n\t\tsetVisible(true);\n\t\tonOpenChange?.(true);\n\t};\n\n\t// 菜单渲染后自适应调整边界,防止溢出视口\n\tuseEffect(() => {\n\t\tif (!visible || !menuRef.current) return;\n\t\tconst menuEl = menuRef.current;\n\t\tconst rect = menuEl.getBoundingClientRect();\n\n\t\tlet adjustedX = position.x;\n\t\tlet adjustedY = position.y;\n\n\t\t// 水平防溢出\n\t\tif (position.x + rect.width > window.innerWidth) {\n\t\t\tadjustedX = window.innerWidth - rect.width - 8;\n\t\t}\n\n\t\t// 垂直防溢出\n\t\tif (position.y + rect.height > window.innerHeight) {\n\t\t\tadjustedY = window.innerHeight - rect.height - 8;\n\t\t}\n\n\t\tif (adjustedX !== position.x || adjustedY !== position.y) {\n\t\t\tsetPosition({ x: Math.max(8, adjustedX), y: Math.max(8, adjustedY) });\n\t\t}\n\t}, [visible]);\n\n\t// 点击外部、按 ESC、页面滚动时关闭菜单\n\tuseEffect(() => {\n\t\tif (!visible) return;\n\n\t\tconst handleClose = (e: MouseEvent | KeyboardEvent) => {\n\t\t\tif (e instanceof KeyboardEvent && e.key !== 'Escape') return;\n\t\t\tsetVisible(false);\n\t\t\tonOpenChange?.(false);\n\t\t};\n\n\t\tconst handleScroll = () => {\n\t\t\tsetVisible(false);\n\t\t\tonOpenChange?.(false);\n\t\t};\n\n\t\tdocument.addEventListener('mousedown', handleClose);\n\t\tdocument.addEventListener('keydown', handleClose);\n\t\twindow.addEventListener('scroll', handleScroll, true);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', handleClose);\n\t\t\tdocument.removeEventListener('keydown', handleClose);\n\t\t\twindow.removeEventListener('scroll', handleScroll, true);\n\t\t};\n\t}, [visible, onOpenChange]);\n\n\t// 渲染菜单项(递归支持二级子菜单)\n\tconst renderMenuItem = (item: ContextMenuItem) => {\n\t\tif (item.type === 'divider') {\n\t\t\treturn <div key={item.key} className=\"rpc_context_menu_divider\" />;\n\t\t}\n\n\t\tconst hasSub = item.children && item.children.length > 0;\n\n\t\tconst handleItemClick = (e: React.MouseEvent) => {\n\t\t\tif (item.disabled || hasSub) return;\n\t\t\te.stopPropagation();\n\t\t\titem.onClick?.(item, e);\n\t\t\tsetVisible(false);\n\t\t\tonOpenChange?.(false);\n\t\t};\n\n\t\tconst itemClassNames = [\n\t\t\t'rpc_context_menu_item',\n\t\t\titem.danger ? 'rpc_context_menu_item_danger' : '',\n\t\t\titem.disabled ? 'rpc_context_menu_item_disabled' : '',\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\n\t\treturn (\n\t\t\t<div key={item.key} className={itemClassNames} onClick={handleItemClick}>\n\t\t\t\t{item.icon && <span className=\"rpc_context_menu_item_icon\">{item.icon}</span>}\n\t\t\t\t<span className=\"rpc_context_menu_item_label\">{item.label}</span>\n\t\t\t\t{item.shortcut && <span className=\"rpc_context_menu_item_shortcut\">{item.shortcut}</span>}\n\t\t\t\t{hasSub && <RightOutlined className=\"rpc_context_menu_item_arrow\" />}\n\n\t\t\t\t{/* 二级子菜单 */}\n\t\t\t\t{hasSub && (\n\t\t\t\t\t<div className=\"rpc_context_menu_submenu\">\n\t\t\t\t\t\t{item.children!.map((sub) => renderMenuItem(sub))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst menuContent =\n\t\tvisible && typeof document !== 'undefined'\n\t\t\t? ReactDOM.createPortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={menuRef}\n\t\t\t\t\t\tclassName={`rpc_context_menu_panel ${menuClassName}`}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: `${position.x}px`,\n\t\t\t\t\t\t\ttop: `${position.y}px`,\n\t\t\t\t\t\t\t...menuStyle,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonContextMenu={(e) => e.preventDefault()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{items.map((item) => renderMenuItem(item))}\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)\n\t\t\t: null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_context_menu ${className}`}\n\t\t\tstyle={style}\n\t\t\tonContextMenu={handleContextMenu}\n\t\t>\n\t\t\t{children}\n\t\t\t{menuContent}\n\t\t</div>\n\t);\n};\n\nexport default ContextMenu;\n"]}
1
+ {"version":3,"sources":["../ContextMenu/index.tsx"],"names":[],"mappings":"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","file":"chunk-SCVOSNWF.js","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { RightOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface ContextMenuItem {\n\t/** 菜单项唯一标识 */\n\tkey: string;\n\t/** 菜单项展示文本或节点 */\n\tlabel?: ReactNode;\n\t/** 菜单项前置图标 */\n\ticon?: ReactNode;\n\t/** 是否为分割线 */\n\ttype?: 'divider';\n\t/** 是否禁用 */\n\tdisabled?: boolean;\n\t/** 是否为警示/危险操作(红色显示) */\n\tdanger?: boolean;\n\t/** 快捷键提示(如 '⌘ C' / 'Ctrl+C') */\n\tshortcut?: string;\n\t/** 二级子菜单项列表 */\n\tchildren?: ContextMenuItem[];\n\t/** 点击菜单项回调 */\n\tonClick?: (item: ContextMenuItem, e: React.MouseEvent) => void;\n}\n\nexport interface ContextMenuProps {\n\t/** 菜单项列表配置 */\n\titems: ContextMenuItem[];\n\t/** 被右键激活的目标子组件/容器 */\n\tchildren: ReactNode;\n\t/** 是否禁用右键上下文菜单 */\n\tdisabled?: boolean;\n\t/** 菜单显隐状态改变回调 */\n\tonOpenChange?: (open: boolean) => void;\n\t/** 自定义菜单类名 */\n\tmenuClassName?: string;\n\t/** 自定义菜单样式 */\n\tmenuStyle?: CSSProperties;\n\t/** 自定义外层包裹类名 */\n\tclassName?: string;\n\t/** 自定义外层包裹样式 */\n\tstyle?: CSSProperties;\n}\n\ninterface Position {\n\tx: number;\n\ty: number;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = ({\n\titems,\n\tchildren,\n\tdisabled = false,\n\tonOpenChange,\n\tmenuClassName = '',\n\tmenuStyle,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [visible, setVisible] = useState<boolean>(false);\n\tconst [position, setPosition] = useState<Position>({ x: 0, y: 0 });\n\tconst menuRef = useRef<HTMLDivElement>(null);\n\n\tconst handleContextMenu = (e: React.MouseEvent) => {\n\t\tif (disabled) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst mouseX = e.clientX;\n\t\tconst mouseY = e.clientY;\n\n\t\t// 初始设置位置\n\t\tsetPosition({ x: mouseX, y: mouseY });\n\t\tsetVisible(true);\n\t\tonOpenChange?.(true);\n\t};\n\n\t// 菜单渲染后自适应调整边界,防止溢出视口\n\tuseEffect(() => {\n\t\tif (!visible || !menuRef.current) return;\n\t\tconst menuEl = menuRef.current;\n\t\tconst rect = menuEl.getBoundingClientRect();\n\n\t\tlet adjustedX = position.x;\n\t\tlet adjustedY = position.y;\n\n\t\t// 水平防溢出\n\t\tif (position.x + rect.width > window.innerWidth) {\n\t\t\tadjustedX = window.innerWidth - rect.width - 8;\n\t\t}\n\n\t\t// 垂直防溢出\n\t\tif (position.y + rect.height > window.innerHeight) {\n\t\t\tadjustedY = window.innerHeight - rect.height - 8;\n\t\t}\n\n\t\tif (adjustedX !== position.x || adjustedY !== position.y) {\n\t\t\tsetPosition({ x: Math.max(8, adjustedX), y: Math.max(8, adjustedY) });\n\t\t}\n\t}, [visible]);\n\n\t// 点击外部、按 ESC、页面滚动时关闭菜单\n\tuseEffect(() => {\n\t\tif (!visible) return;\n\n\t\tconst handleClose = (e: MouseEvent | KeyboardEvent) => {\n\t\t\tif (e instanceof KeyboardEvent && e.key !== 'Escape') return;\n\t\t\tsetVisible(false);\n\t\t\tonOpenChange?.(false);\n\t\t};\n\n\t\tconst handleScroll = () => {\n\t\t\tsetVisible(false);\n\t\t\tonOpenChange?.(false);\n\t\t};\n\n\t\tdocument.addEventListener('mousedown', handleClose);\n\t\tdocument.addEventListener('keydown', handleClose);\n\t\twindow.addEventListener('scroll', handleScroll, true);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', handleClose);\n\t\t\tdocument.removeEventListener('keydown', handleClose);\n\t\t\twindow.removeEventListener('scroll', handleScroll, true);\n\t\t};\n\t}, [visible, onOpenChange]);\n\n\t// 渲染菜单项(递归支持二级子菜单)\n\tconst renderMenuItem = (item: ContextMenuItem) => {\n\t\tif (item.type === 'divider') {\n\t\t\treturn <div key={item.key} className=\"rpc_context_menu_divider\" />;\n\t\t}\n\n\t\tconst hasSub = item.children && item.children.length > 0;\n\n\t\tconst handleItemClick = (e: React.MouseEvent) => {\n\t\t\tif (item.disabled || hasSub) return;\n\t\t\te.stopPropagation();\n\t\t\titem.onClick?.(item, e);\n\t\t\tsetVisible(false);\n\t\t\tonOpenChange?.(false);\n\t\t};\n\n\t\tconst itemClassNames = [\n\t\t\t'rpc_context_menu_item',\n\t\t\titem.danger ? 'rpc_context_menu_item_danger' : '',\n\t\t\titem.disabled ? 'rpc_context_menu_item_disabled' : '',\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\n\t\treturn (\n\t\t\t<div key={item.key} className={itemClassNames} onClick={handleItemClick}>\n\t\t\t\t{item.icon && <span className=\"rpc_context_menu_item_icon\">{item.icon}</span>}\n\t\t\t\t<span className=\"rpc_context_menu_item_label\">{item.label}</span>\n\t\t\t\t{item.shortcut && <span className=\"rpc_context_menu_item_shortcut\">{item.shortcut}</span>}\n\t\t\t\t{hasSub && <RightOutlined className=\"rpc_context_menu_item_arrow\" />}\n\n\t\t\t\t{/* 二级子菜单 */}\n\t\t\t\t{hasSub && (\n\t\t\t\t\t<div className=\"rpc_context_menu_submenu\">\n\t\t\t\t\t\t{item.children!.map((sub) => renderMenuItem(sub))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst menuContent =\n\t\tvisible && typeof document !== 'undefined'\n\t\t\t? ReactDOM.createPortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={menuRef}\n\t\t\t\t\t\tclassName={`rpc_context_menu_panel ${menuClassName}`}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: `${position.x}px`,\n\t\t\t\t\t\t\ttop: `${position.y}px`,\n\t\t\t\t\t\t\t...menuStyle,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonContextMenu={(e) => e.preventDefault()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{items.map((item) => renderMenuItem(item))}\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)\n\t\t\t: null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_context_menu ${className}`}\n\t\t\tstyle={style}\n\t\t\tonContextMenu={handleContextMenu}\n\t\t>\n\t\t\t{children}\n\t\t\t{menuContent}\n\t\t</div>\n\t);\n};\n\nexport default ContextMenu;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
3
+ var chunkQMLDK2DL_cjs = require('./chunk-QMLDK2DL.cjs');
4
4
  var react = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -69,7 +69,13 @@ var AnnouncementBar = ({
69
69
  ...style
70
70
  },
71
71
  children: [
72
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_announcement_bar_body", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `rpc_announcement_bar_content ${marquee ? "rpc_announcement_bar_marquee" : ""}`, children }) }),
72
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_announcement_bar_body", children: /* @__PURE__ */ jsxRuntime.jsx(
73
+ "div",
74
+ {
75
+ className: `rpc_announcement_bar_content ${marquee ? "rpc_announcement_bar_marquee" : ""}`,
76
+ children
77
+ }
78
+ ) }),
73
79
  closable && /* @__PURE__ */ jsxRuntime.jsx(
74
80
  "button",
75
81
  {
@@ -77,7 +83,7 @@ var AnnouncementBar = ({
77
83
  className: "rpc_announcement_bar_close",
78
84
  onClick: handleClose,
79
85
  title: "\u5173\u95ED\u901A\u77E5",
80
- children: closeIcon || /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CloseOutlined, { style: { fontSize: 13 } })
86
+ children: closeIcon || /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.CloseOutlined, { style: { fontSize: 13 } })
81
87
  }
82
88
  )
83
89
  ]
@@ -87,5 +93,5 @@ var AnnouncementBar = ({
87
93
  var AnnouncementBar_default = AnnouncementBar;
88
94
 
89
95
  exports.AnnouncementBar_default = AnnouncementBar_default;
90
- //# sourceMappingURL=chunk-ZXMFWVE4.cjs.map
91
- //# sourceMappingURL=chunk-ZXMFWVE4.cjs.map
96
+ //# sourceMappingURL=chunk-SG7Z432O.cjs.map
97
+ //# sourceMappingURL=chunk-SG7Z432O.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../AnnouncementBar/index.tsx"],"names":["useState","jsxs","jsx","CloseOutlined"],"mappings":"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","file":"chunk-SG7Z432O.cjs","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport { CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport type AnnouncementType = 'primary' | 'warning' | 'success' | 'danger' | 'purple';\n\nexport interface AnnouncementBarProps {\n\t/** 横幅广播内容 */\n\tchildren: ReactNode;\n\t/** 预设主题色系:'primary' | 'warning' | 'success' | 'danger' | 'purple' */\n\ttype?: AnnouncementType;\n\t/** 自定义渐变或背景样式(传值时覆盖 type 预设) */\n\tbackground?: string;\n\t/** 自定义文字颜色 */\n\tcolor?: string;\n\t/** 是否开启智能吸顶 (position: sticky),默认为 false */\n\tsticky?: boolean;\n\t/** 是否开启固定吸顶 (position: fixed),默认为 false */\n\tfixed?: boolean;\n\t/** 吸顶时距离顶部的距离偏移(像素或 CSS 字符串),默认为 0 */\n\ttop?: number | string;\n\t/** 图层层级 z-index,默认为 1000 */\n\tzIndex?: number;\n\t/** 是否支持点击关闭,默认为 true */\n\tclosable?: boolean;\n\t/** 自定义关闭图标 */\n\tcloseIcon?: ReactNode;\n\t/** LocalStorage 记忆 Key(若传入则关闭后自动持久化记忆,不再重复弹出) */\n\tstorageKey?: string;\n\t/** 内容过长时是否开启跑马灯无缝水平滚动,默认为 false */\n\tmarquee?: boolean;\n\t/** 关闭时的回调函数 */\n\tonClose?: () => void;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst AnnouncementBar: React.FC<AnnouncementBarProps> = ({\n\tchildren,\n\ttype = 'primary',\n\tbackground,\n\tcolor,\n\tsticky = false,\n\tfixed = false,\n\ttop = 0,\n\tzIndex = 1000,\n\tclosable = true,\n\tcloseIcon,\n\tstorageKey,\n\tmarquee = false,\n\tonClose,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [visible, setVisible] = useState<boolean>(() => {\n\t\tif (typeof window !== 'undefined' && storageKey) {\n\t\t\ttry {\n\t\t\t\treturn localStorage.getItem(`rpc_announcement_${storageKey}`) !== 'closed';\n\t\t\t} catch {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t});\n\n\tconst [isClosing, setIsClosing] = useState<boolean>(false);\n\n\tif (!visible) return null;\n\n\tconst handleClose = () => {\n\t\tsetIsClosing(true);\n\n\t\tif (storageKey && typeof window !== 'undefined') {\n\t\t\ttry {\n\t\t\t\tlocalStorage.setItem(`rpc_announcement_${storageKey}`, 'closed');\n\t\t\t} catch {\n\t\t\t\t// ignore\n\t\t\t}\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tsetVisible(false);\n\t\t\tonClose?.();\n\t\t}, 250);\n\t};\n\n\tconst positionStyle: CSSProperties = {};\n\tif (fixed) {\n\t\tpositionStyle.position = 'fixed';\n\t\tpositionStyle.top = top;\n\t\tpositionStyle.left = 0;\n\t\tpositionStyle.right = 0;\n\t\tpositionStyle.zIndex = zIndex;\n\t} else if (sticky) {\n\t\tpositionStyle.position = 'sticky';\n\t\tpositionStyle.top = top;\n\t\tpositionStyle.zIndex = zIndex;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_announcement_bar rpc_announcement_bar_${type} ${\n\t\t\t\tsticky ? 'rpc_announcement_bar_sticky' : ''\n\t\t\t} ${fixed ? 'rpc_announcement_bar_fixed' : ''} ${\n\t\t\t\tisClosing ? 'rpc_announcement_bar_closing' : ''\n\t\t\t} ${className}`}\n\t\t\tstyle={{\n\t\t\t\tbackground: background || undefined,\n\t\t\t\tcolor: color || undefined,\n\t\t\t\t...positionStyle,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t>\n\t\t\t<div className=\"rpc_announcement_bar_body\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={`rpc_announcement_bar_content ${marquee ? 'rpc_announcement_bar_marquee' : ''}`}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{closable && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"rpc_announcement_bar_close\"\n\t\t\t\t\tonClick={handleClose}\n\t\t\t\t\ttitle=\"关闭通知\"\n\t\t\t\t>\n\t\t\t\t\t{closeIcon || <CloseOutlined style={{ fontSize: 13 }} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default AnnouncementBar;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
3
+ var chunkQMLDK2DL_cjs = require('./chunk-QMLDK2DL.cjs');
4
4
  var react = require('react');
5
5
  var ReactDOM = require('react-dom');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -128,7 +128,7 @@ function DragSortList({
128
128
  }
129
129
  },
130
130
  title: disabled ? void 0 : "\u6309\u4F4F\u62D6\u52A8\u4EE5\u91CD\u6392\u5E8F",
131
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.HolderOutlined, {})
131
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.HolderOutlined, {})
132
132
  }
133
133
  ),
134
134
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_drag_sort_list_content", children: renderItem(item, idx, false) })
@@ -151,7 +151,14 @@ function DragSortList({
151
151
  height: dragItemRect.height
152
152
  },
153
153
  children: [
154
- showHandle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_drag_sort_list_handle", style: { cursor: "grabbing", color: "#1677ff" }, children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.HolderOutlined, {}) }),
154
+ showHandle && /* @__PURE__ */ jsxRuntime.jsx(
155
+ "span",
156
+ {
157
+ className: "rpc_drag_sort_list_handle",
158
+ style: { cursor: "grabbing", color: "#1677ff" },
159
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQMLDK2DL_cjs.HolderOutlined, {})
160
+ }
161
+ ),
155
162
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_drag_sort_list_content", style: { flex: 1 }, children: renderItem(draggedItemData, dragIndex, true) })
156
163
  ]
157
164
  }
@@ -163,5 +170,5 @@ function DragSortList({
163
170
  var DragSortList_default = DragSortList;
164
171
 
165
172
  exports.DragSortList_default = DragSortList_default;
166
- //# sourceMappingURL=chunk-FZH5FL7X.cjs.map
167
- //# sourceMappingURL=chunk-FZH5FL7X.cjs.map
173
+ //# sourceMappingURL=chunk-THZFDBJM.cjs.map
174
+ //# sourceMappingURL=chunk-THZFDBJM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../DragSortList/index.tsx"],"names":["useRef","useState","jsxs","Fragment","jsx","HolderOutlined","ReactDOM"],"mappings":"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","file":"chunk-THZFDBJM.cjs","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { HolderOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface DragSortListProps<T> {\n\t/** 数据列表 */\n\titems: T[];\n\t/** 拖拽排序完成后的新列表回调 */\n\tonReorder: (newItems: T[], fromIndex: number, toIndex: number) => void;\n\t/** 提取唯一 Key */\n\tkeyExtractor: (item: T, index: number) => string | number;\n\t/** 自定义渲染单个列表项内容 */\n\trenderItem: (item: T, index: number, isDragging: boolean) => ReactNode;\n\t/** 是否仅允许通过左侧把手图标拖动,默认为 false */\n\thandleOnly?: boolean;\n\t/** 是否展示左侧拖拽把手图标,默认为 true */\n\tshowHandle?: boolean;\n\t/** 是否禁用拖拽排序,默认为 false */\n\tdisabled?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nfunction arrayMove<T>(array: T[], from: number, to: number): T[] {\n\tconst next = [...array];\n\tconst [item] = next.splice(from, 1);\n\tnext.splice(to, 0, item);\n\treturn next;\n}\n\nfunction DragSortList<T>({\n\titems,\n\tonReorder,\n\tkeyExtractor,\n\trenderItem,\n\thandleOnly = false,\n\tshowHandle = true,\n\tdisabled = false,\n\tclassName = '',\n\tstyle,\n}: DragSortListProps<T>) {\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\n\t// 拖拽核心状态\n\tconst [dragIndex, setDragIndex] = useState<number | null>(null);\n\tconst [hoverIndex, setHoverIndex] = useState<number | null>(null);\n\tconst [pointerCoord, setPointerCoord] = useState<{ x: number; y: number } | null>(null);\n\tconst [grabOffset, setGrabOffset] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n\tconst [dragItemRect, setDragItemRect] = useState<{ width: number; height: number } | null>(null);\n\n\tconst dragIndexRef = useRef<number | null>(null);\n\tconst hoverIndexRef = useRef<number | null>(null);\n\tconst itemsRef = useRef<T[]>(items);\n\n\tdragIndexRef.current = dragIndex;\n\thoverIndexRef.current = hoverIndex;\n\titemsRef.current = items;\n\n\t// 处理鼠标按下发起拖拽\n\tconst handlePointerDown = (\n\t\te: React.PointerEvent<HTMLElement>,\n\t\tindex: number,\n\t\tfromHandle: boolean,\n\t) => {\n\t\tif (disabled || e.button !== 0) return;\n\t\tif (handleOnly && !fromHandle) return;\n\n\t\tconst targetItemEl = e.currentTarget.closest('.rpc_drag_sort_list_item') as HTMLElement;\n\t\tif (!targetItemEl) return;\n\n\t\tconst rect = targetItemEl.getBoundingClientRect();\n\t\tconst offsetX = e.clientX - rect.left;\n\t\tconst offsetY = e.clientY - rect.top;\n\n\t\tsetGrabOffset({ x: offsetX, y: offsetY });\n\t\tsetDragItemRect({ width: rect.width, height: rect.height });\n\t\tsetPointerCoord({ x: e.clientX, y: e.clientY });\n\t\tsetDragIndex(index);\n\t\tsetHoverIndex(index);\n\n\t\tconst handlePointerMove = (moveEvent: PointerEvent) => {\n\t\t\tsetPointerCoord({ x: moveEvent.clientX, y: moveEvent.clientY });\n\n\t\t\tif (!containerRef.current) return;\n\t\t\tconst itemElements = Array.from(\n\t\t\t\tcontainerRef.current.querySelectorAll('.rpc_drag_sort_list_item'),\n\t\t\t) as HTMLElement[];\n\n\t\t\tif (itemElements.length === 0) return;\n\n\t\t\tconst pointerY = moveEvent.clientY;\n\t\t\tlet newHoverIndex = dragIndexRef.current ?? 0;\n\n\t\t\t// 精确检测鼠标当前所处的列表项插槽\n\t\t\tfor (let i = 0; i < itemElements.length; i++) {\n\t\t\t\tconst elRect = itemElements[i].getBoundingClientRect();\n\t\t\t\tif (pointerY >= elRect.top && pointerY <= elRect.bottom) {\n\t\t\t\t\tnewHoverIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (pointerY < itemElements[0].getBoundingClientRect().top) {\n\t\t\t\t\tnewHoverIndex = 0;\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (\n\t\t\t\t\tpointerY > itemElements[itemElements.length - 1].getBoundingClientRect().bottom\n\t\t\t\t) {\n\t\t\t\t\tnewHoverIndex = itemElements.length - 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHoverIndex !== hoverIndexRef.current) {\n\t\t\t\tsetHoverIndex(newHoverIndex);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePointerUp = () => {\n\t\t\twindow.removeEventListener('pointermove', handlePointerMove);\n\t\t\twindow.removeEventListener('pointerup', handlePointerUp);\n\n\t\t\tconst from = dragIndexRef.current;\n\t\t\tconst to = hoverIndexRef.current;\n\t\t\tconst currentList = itemsRef.current;\n\n\t\t\tif (\n\t\t\t\tfrom !== null &&\n\t\t\t\tto !== null &&\n\t\t\t\tfrom !== to &&\n\t\t\t\tfrom >= 0 &&\n\t\t\t\tto >= 0 &&\n\t\t\t\tfrom < currentList.length &&\n\t\t\t\tto < currentList.length\n\t\t\t) {\n\t\t\t\tconst reorderedList = arrayMove(currentList, from, to);\n\t\t\t\tonReorder(reorderedList, from, to);\n\t\t\t}\n\n\t\t\tsetDragIndex(null);\n\t\t\tsetHoverIndex(null);\n\t\t\tsetPointerCoord(null);\n\t\t\tsetDragItemRect(null);\n\t\t};\n\n\t\twindow.addEventListener('pointermove', handlePointerMove);\n\t\twindow.addEventListener('pointerup', handlePointerUp);\n\t};\n\n\t// 动态计算实时预览重排后的列表\n\tconst displayItems =\n\t\tdragIndex !== null && hoverIndex !== null && dragIndex !== hoverIndex\n\t\t\t? arrayMove(items, dragIndex, hoverIndex)\n\t\t\t: items;\n\n\tconst draggedItemData = dragIndex !== null ? items[dragIndex] : null;\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={`rpc_drag_sort_list ${disabled ? 'rpc_drag_sort_list_disabled' : ''} ${className}`}\n\t\t\t\tstyle={style}\n\t\t\t>\n\t\t\t\t{displayItems.map((item, idx) => {\n\t\t\t\t\tconst key = keyExtractor(item, idx);\n\t\t\t\t\tconst isCurrentPlaceholder = dragIndex !== null && hoverIndex === idx;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\tonPointerDown={(e) => handlePointerDown(e, idx, false)}\n\t\t\t\t\t\t\tclassName={`rpc_drag_sort_list_item ${\n\t\t\t\t\t\t\t\tisCurrentPlaceholder ? 'rpc_drag_sort_list_item_placeholder' : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\theight: isCurrentPlaceholder && dragItemRect ? dragItemRect.height : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* 当作为占位槽展示时,显示虚线卡槽 */}\n\t\t\t\t\t\t\t{isCurrentPlaceholder ? (\n\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_placeholder_inner\">\n\t\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_placeholder_line\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{showHandle && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_drag_sort_list_handle\"\n\t\t\t\t\t\t\t\t\t\t\tonPointerDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (handleOnly) {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\thandlePointerDown(e, idx, true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\ttitle={disabled ? undefined : '按住拖动以重排序'}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<HolderOutlined />\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_content\">{renderItem(item, idx, false)}</div>\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})}\n\t\t\t</div>\n\n\t\t\t{/* 浮动随动幽灵卡片(全局悬浮脱离文档流,100% 顺畅跟手,绝对 0 跳动) */}\n\t\t\t{dragIndex !== null &&\n\t\t\t\tpointerCoord &&\n\t\t\t\tdragItemRect &&\n\t\t\t\tdraggedItemData &&\n\t\t\t\ttypeof document !== 'undefined' &&\n\t\t\t\tReactDOM.createPortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"rpc_drag_sort_list_floating_ghost\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: pointerCoord.x - grabOffset.x,\n\t\t\t\t\t\t\ttop: pointerCoord.y - grabOffset.y,\n\t\t\t\t\t\t\twidth: dragItemRect.width,\n\t\t\t\t\t\t\theight: dragItemRect.height,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showHandle && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"rpc_drag_sort_list_handle\"\n\t\t\t\t\t\t\t\tstyle={{ cursor: 'grabbing', color: '#1677ff' }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HolderOutlined />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_content\" style={{ flex: 1 }}>\n\t\t\t\t\t\t\t{renderItem(draggedItemData, dragIndex, true)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport default DragSortList;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
3
+ var chunkQMLDK2DL_cjs = require('./chunk-QMLDK2DL.cjs');
4
4
  var React = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -327,7 +327,7 @@ var CustomSplitter = (props) => {
327
327
  if (isCollapsed || isNeighborCollapsed) {
328
328
  return null;
329
329
  }
330
- const Icon = resolvedOrientation === "horizontal" ? direction === "start" ? chunkR4V3EJVP_cjs.LeftOutlined : chunkR4V3EJVP_cjs.RightOutlined : direction === "start" ? chunkR4V3EJVP_cjs.UpOutlined : chunkR4V3EJVP_cjs.DownOutlined;
330
+ const Icon = resolvedOrientation === "horizontal" ? direction === "start" ? chunkQMLDK2DL_cjs.LeftOutlined : chunkQMLDK2DL_cjs.RightOutlined : direction === "start" ? chunkQMLDK2DL_cjs.UpOutlined : chunkQMLDK2DL_cjs.DownOutlined;
331
331
  const isHorizontal = resolvedOrientation === "horizontal";
332
332
  const isAlwaysShow = config.showCollapsibleIcon === true;
333
333
  const isHoveredOrDragging = hoveredIndex === draggerIndex || draggingIndex === draggerIndex;
@@ -562,7 +562,7 @@ var CustomSplitter = (props) => {
562
562
  if (!isAllowed || config.showCollapsibleIcon === false) {
563
563
  return null;
564
564
  }
565
- const ExpandIcon = resolvedOrientation === "horizontal" ? isLeftOrTopCollapsed ? chunkR4V3EJVP_cjs.RightOutlined : chunkR4V3EJVP_cjs.LeftOutlined : isLeftOrTopCollapsed ? chunkR4V3EJVP_cjs.DownOutlined : chunkR4V3EJVP_cjs.UpOutlined;
565
+ const ExpandIcon = resolvedOrientation === "horizontal" ? isLeftOrTopCollapsed ? chunkQMLDK2DL_cjs.RightOutlined : chunkQMLDK2DL_cjs.LeftOutlined : isLeftOrTopCollapsed ? chunkQMLDK2DL_cjs.DownOutlined : chunkQMLDK2DL_cjs.UpOutlined;
566
566
  const neighborIndex = isLeftOrTopCollapsed ? index + 1 : index;
567
567
  const isHorizontal = resolvedOrientation === "horizontal";
568
568
  const expandTitle = resolvedOrientation === "horizontal" ? isLeftOrTopCollapsed ? "\u5C55\u5F00\u5DE6\u4FA7\u9762\u677F" : "\u5C55\u5F00\u53F3\u4FA7\u9762\u677F" : isLeftOrTopCollapsed ? "\u5C55\u5F00\u4E0A\u65B9\u9762\u677F" : "\u5C55\u5F00\u4E0B\u65B9\u9762\u677F";
@@ -621,5 +621,5 @@ CustomSplitter.Panel = SplitterPanel;
621
621
  var Splitter_default = CustomSplitter;
622
622
 
623
623
  exports.Splitter_default = Splitter_default;
624
- //# sourceMappingURL=chunk-HKALWFWZ.cjs.map
625
- //# sourceMappingURL=chunk-HKALWFWZ.cjs.map
624
+ //# sourceMappingURL=chunk-TWL3QEFV.cjs.map
625
+ //# sourceMappingURL=chunk-TWL3QEFV.cjs.map