@ioca/react 1.4.78 → 1.4.79

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 (425) hide show
  1. package/lib/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/lib/cjs/components/affix/affix.cjs +66 -0
  3. package/lib/cjs/components/affix/affix.cjs.map +1 -0
  4. package/lib/cjs/components/affix/index.cjs +6 -0
  5. package/lib/cjs/components/affix/index.cjs.map +1 -0
  6. package/lib/cjs/components/affix/totop.cjs +25 -0
  7. package/lib/cjs/components/affix/totop.cjs.map +1 -0
  8. package/lib/cjs/components/badge/badge.cjs +24 -0
  9. package/lib/cjs/components/badge/badge.cjs.map +1 -0
  10. package/lib/cjs/components/badge/index.cjs +6 -0
  11. package/lib/cjs/components/badge/index.cjs.map +1 -0
  12. package/lib/cjs/components/button/button.cjs +64 -0
  13. package/lib/cjs/components/button/button.cjs.map +1 -0
  14. package/lib/cjs/components/button/confirm.cjs +60 -0
  15. package/lib/cjs/components/button/confirm.cjs.map +1 -0
  16. package/lib/cjs/components/button/group.cjs +26 -0
  17. package/lib/cjs/components/button/group.cjs.map +1 -0
  18. package/lib/cjs/components/button/index.cjs +6 -0
  19. package/lib/cjs/components/button/index.cjs.map +1 -0
  20. package/lib/cjs/components/button/toggle.cjs +46 -0
  21. package/lib/cjs/components/button/toggle.cjs.map +1 -0
  22. package/lib/cjs/components/card/card.cjs +33 -0
  23. package/lib/cjs/components/card/card.cjs.map +1 -0
  24. package/lib/cjs/components/card/index.cjs +6 -0
  25. package/lib/cjs/components/card/index.cjs.map +1 -0
  26. package/lib/cjs/components/checkbox/checkbox.cjs +66 -0
  27. package/lib/cjs/components/checkbox/checkbox.cjs.map +1 -0
  28. package/lib/cjs/components/checkbox/index.cjs +6 -0
  29. package/lib/cjs/components/checkbox/index.cjs.map +1 -0
  30. package/lib/cjs/components/checkbox/item.cjs +59 -0
  31. package/lib/cjs/components/checkbox/item.cjs.map +1 -0
  32. package/lib/cjs/components/collapse/collapse.cjs +84 -0
  33. package/lib/cjs/components/collapse/collapse.cjs.map +1 -0
  34. package/lib/cjs/components/collapse/index.cjs +6 -0
  35. package/lib/cjs/components/collapse/index.cjs.map +1 -0
  36. package/lib/cjs/components/collapse/item.cjs +10 -0
  37. package/lib/cjs/components/collapse/item.cjs.map +1 -0
  38. package/lib/cjs/components/datagrid/cell.cjs +39 -0
  39. package/lib/cjs/components/datagrid/cell.cjs.map +1 -0
  40. package/lib/cjs/components/datagrid/datagrid.cjs +140 -0
  41. package/lib/cjs/components/datagrid/datagrid.cjs.map +1 -0
  42. package/lib/cjs/components/datagrid/index.cjs +6 -0
  43. package/lib/cjs/components/datagrid/index.cjs.map +1 -0
  44. package/lib/cjs/components/datagrid/resize.cjs +42 -0
  45. package/lib/cjs/components/datagrid/resize.cjs.map +1 -0
  46. package/lib/cjs/components/datagrid/row.cjs +68 -0
  47. package/lib/cjs/components/datagrid/row.cjs.map +1 -0
  48. package/lib/cjs/components/datagrid/sorter.cjs +28 -0
  49. package/lib/cjs/components/datagrid/sorter.cjs.map +1 -0
  50. package/lib/cjs/components/description/description.cjs +43 -0
  51. package/lib/cjs/components/description/description.cjs.map +1 -0
  52. package/lib/cjs/components/description/index.cjs +6 -0
  53. package/lib/cjs/components/description/index.cjs.map +1 -0
  54. package/lib/cjs/components/drawer/drawer.cjs +84 -0
  55. package/lib/cjs/components/drawer/drawer.cjs.map +1 -0
  56. package/lib/cjs/components/drawer/index.cjs +6 -0
  57. package/lib/cjs/components/drawer/index.cjs.map +1 -0
  58. package/lib/cjs/components/dropdown/dropdown.cjs +38 -0
  59. package/lib/cjs/components/dropdown/dropdown.cjs.map +1 -0
  60. package/lib/cjs/components/dropdown/index.cjs +6 -0
  61. package/lib/cjs/components/dropdown/index.cjs.map +1 -0
  62. package/lib/cjs/components/dropdown/item.cjs +36 -0
  63. package/lib/cjs/components/dropdown/item.cjs.map +1 -0
  64. package/lib/cjs/components/editor/controls.cjs +89 -0
  65. package/lib/cjs/components/editor/controls.cjs.map +1 -0
  66. package/lib/cjs/components/editor/editor.cjs +91 -0
  67. package/lib/cjs/components/editor/editor.cjs.map +1 -0
  68. package/lib/cjs/components/editor/index.cjs +6 -0
  69. package/lib/cjs/components/editor/index.cjs.map +1 -0
  70. package/lib/cjs/components/flex/flex.cjs +31 -0
  71. package/lib/cjs/components/flex/flex.cjs.map +1 -0
  72. package/lib/cjs/components/flex/index.cjs +6 -0
  73. package/lib/cjs/components/flex/index.cjs.map +1 -0
  74. package/lib/cjs/components/form/context.cjs +7 -0
  75. package/lib/cjs/components/form/context.cjs.map +1 -0
  76. package/lib/cjs/components/form/field.cjs +71 -0
  77. package/lib/cjs/components/form/field.cjs.map +1 -0
  78. package/lib/cjs/components/form/form.cjs +64 -0
  79. package/lib/cjs/components/form/form.cjs.map +1 -0
  80. package/lib/cjs/components/form/index.cjs +6 -0
  81. package/lib/cjs/components/form/index.cjs.map +1 -0
  82. package/lib/cjs/components/form/useConfig.cjs +45 -0
  83. package/lib/cjs/components/form/useConfig.cjs.map +1 -0
  84. package/lib/cjs/components/form/useForm.cjs +123 -0
  85. package/lib/cjs/components/form/useForm.cjs.map +1 -0
  86. package/lib/cjs/components/icon/icon.cjs +24 -0
  87. package/lib/cjs/components/icon/icon.cjs.map +1 -0
  88. package/lib/cjs/components/icon/index.cjs +6 -0
  89. package/lib/cjs/components/icon/index.cjs.map +1 -0
  90. package/lib/cjs/components/image/image.cjs +86 -0
  91. package/lib/cjs/components/image/image.cjs.map +1 -0
  92. package/lib/cjs/components/image/index.cjs +6 -0
  93. package/lib/cjs/components/image/index.cjs.map +1 -0
  94. package/lib/cjs/components/image/list.cjs +49 -0
  95. package/lib/cjs/components/image/list.cjs.map +1 -0
  96. package/lib/cjs/components/input/container.cjs +30 -0
  97. package/lib/cjs/components/input/container.cjs.map +1 -0
  98. package/lib/cjs/components/input/index.cjs +6 -0
  99. package/lib/cjs/components/input/index.cjs.map +1 -0
  100. package/lib/cjs/components/input/input.cjs +113 -0
  101. package/lib/cjs/components/input/input.cjs.map +1 -0
  102. package/lib/cjs/components/input/number.cjs +138 -0
  103. package/lib/cjs/components/input/number.cjs.map +1 -0
  104. package/lib/cjs/components/input/range.cjs +134 -0
  105. package/lib/cjs/components/input/range.cjs.map +1 -0
  106. package/lib/cjs/components/input/textarea.cjs +61 -0
  107. package/lib/cjs/components/input/textarea.cjs.map +1 -0
  108. package/lib/cjs/components/list/index.cjs +6 -0
  109. package/lib/cjs/components/list/index.cjs.map +1 -0
  110. package/lib/cjs/components/list/item.cjs +30 -0
  111. package/lib/cjs/components/list/item.cjs.map +1 -0
  112. package/lib/cjs/components/list/list.cjs +30 -0
  113. package/lib/cjs/components/list/list.cjs.map +1 -0
  114. package/lib/cjs/components/loading/index.cjs +6 -0
  115. package/lib/cjs/components/loading/index.cjs.map +1 -0
  116. package/lib/cjs/components/loading/loading.cjs +39 -0
  117. package/lib/cjs/components/loading/loading.cjs.map +1 -0
  118. package/lib/cjs/components/message/index.cjs +6 -0
  119. package/lib/cjs/components/message/index.cjs.map +1 -0
  120. package/lib/cjs/components/message/message.cjs +197 -0
  121. package/lib/cjs/components/message/message.cjs.map +1 -0
  122. package/lib/cjs/components/modal/content.cjs +57 -0
  123. package/lib/cjs/components/modal/content.cjs.map +1 -0
  124. package/lib/cjs/components/modal/context.cjs +7 -0
  125. package/lib/cjs/components/modal/context.cjs.map +1 -0
  126. package/lib/cjs/components/modal/hookModal.cjs +28 -0
  127. package/lib/cjs/components/modal/hookModal.cjs.map +1 -0
  128. package/lib/cjs/components/modal/index.cjs +6 -0
  129. package/lib/cjs/components/modal/index.cjs.map +1 -0
  130. package/lib/cjs/components/modal/modal.cjs +117 -0
  131. package/lib/cjs/components/modal/modal.cjs.map +1 -0
  132. package/lib/cjs/components/modal/useModal.cjs +39 -0
  133. package/lib/cjs/components/modal/useModal.cjs.map +1 -0
  134. package/lib/cjs/components/pagination/index.cjs +6 -0
  135. package/lib/cjs/components/pagination/index.cjs.map +1 -0
  136. package/lib/cjs/components/pagination/page.cjs +31 -0
  137. package/lib/cjs/components/pagination/page.cjs.map +1 -0
  138. package/lib/cjs/components/pagination/pagination.cjs +86 -0
  139. package/lib/cjs/components/pagination/pagination.cjs.map +1 -0
  140. package/lib/cjs/components/picker/colors/footer.cjs +64 -0
  141. package/lib/cjs/components/picker/colors/footer.cjs.map +1 -0
  142. package/lib/cjs/components/picker/colors/handle.cjs +25 -0
  143. package/lib/cjs/components/picker/colors/handle.cjs.map +1 -0
  144. package/lib/cjs/components/picker/colors/index.cjs +81 -0
  145. package/lib/cjs/components/picker/colors/index.cjs.map +1 -0
  146. package/lib/cjs/components/picker/dates/dates.cjs +68 -0
  147. package/lib/cjs/components/picker/dates/dates.cjs.map +1 -0
  148. package/lib/cjs/components/picker/dates/index.cjs +97 -0
  149. package/lib/cjs/components/picker/dates/index.cjs.map +1 -0
  150. package/lib/cjs/components/picker/dates/panel.cjs +151 -0
  151. package/lib/cjs/components/picker/dates/panel.cjs.map +1 -0
  152. package/lib/cjs/components/picker/time/index.cjs +73 -0
  153. package/lib/cjs/components/picker/time/index.cjs.map +1 -0
  154. package/lib/cjs/components/picker/time/item.cjs +20 -0
  155. package/lib/cjs/components/picker/time/item.cjs.map +1 -0
  156. package/lib/cjs/components/picker/time/panel.cjs +144 -0
  157. package/lib/cjs/components/picker/time/panel.cjs.map +1 -0
  158. package/lib/cjs/components/popconfirm/index.cjs +6 -0
  159. package/lib/cjs/components/popconfirm/index.cjs.map +1 -0
  160. package/lib/cjs/components/popconfirm/popconfirm.cjs +86 -0
  161. package/lib/cjs/components/popconfirm/popconfirm.cjs.map +1 -0
  162. package/lib/cjs/components/popup/content.cjs +56 -0
  163. package/lib/cjs/components/popup/content.cjs.map +1 -0
  164. package/lib/cjs/components/popup/index.cjs +6 -0
  165. package/lib/cjs/components/popup/index.cjs.map +1 -0
  166. package/lib/cjs/components/popup/popup.cjs +425 -0
  167. package/lib/cjs/components/popup/popup.cjs.map +1 -0
  168. package/lib/cjs/components/progress/circle.cjs +45 -0
  169. package/lib/cjs/components/progress/circle.cjs.map +1 -0
  170. package/lib/cjs/components/progress/index.cjs +6 -0
  171. package/lib/cjs/components/progress/index.cjs.map +1 -0
  172. package/lib/cjs/components/progress/line.cjs +27 -0
  173. package/lib/cjs/components/progress/line.cjs.map +1 -0
  174. package/lib/cjs/components/progress/progress.cjs +100 -0
  175. package/lib/cjs/components/progress/progress.cjs.map +1 -0
  176. package/lib/cjs/components/radio/index.cjs +6 -0
  177. package/lib/cjs/components/radio/index.cjs.map +1 -0
  178. package/lib/cjs/components/radio/item.cjs +34 -0
  179. package/lib/cjs/components/radio/item.cjs.map +1 -0
  180. package/lib/cjs/components/radio/radio.cjs +62 -0
  181. package/lib/cjs/components/radio/radio.cjs.map +1 -0
  182. package/lib/cjs/components/resizable/index.cjs +6 -0
  183. package/lib/cjs/components/resizable/index.cjs.map +1 -0
  184. package/lib/cjs/components/resizable/resizable.cjs +81 -0
  185. package/lib/cjs/components/resizable/resizable.cjs.map +1 -0
  186. package/lib/cjs/components/river/index.cjs +6 -0
  187. package/lib/cjs/components/river/index.cjs.map +1 -0
  188. package/lib/cjs/components/river/river.cjs +116 -0
  189. package/lib/cjs/components/river/river.cjs.map +1 -0
  190. package/lib/cjs/components/select/index.cjs +6 -0
  191. package/lib/cjs/components/select/index.cjs.map +1 -0
  192. package/lib/cjs/components/select/options.cjs +76 -0
  193. package/lib/cjs/components/select/options.cjs.map +1 -0
  194. package/lib/cjs/components/select/select.cjs +155 -0
  195. package/lib/cjs/components/select/select.cjs.map +1 -0
  196. package/lib/cjs/components/step/divider.cjs +10 -0
  197. package/lib/cjs/components/step/divider.cjs.map +1 -0
  198. package/lib/cjs/components/step/index.cjs +6 -0
  199. package/lib/cjs/components/step/index.cjs.map +1 -0
  200. package/lib/cjs/components/step/item.cjs +60 -0
  201. package/lib/cjs/components/step/item.cjs.map +1 -0
  202. package/lib/cjs/components/step/step.cjs +42 -0
  203. package/lib/cjs/components/step/step.cjs.map +1 -0
  204. package/lib/cjs/components/swiper/index.cjs +6 -0
  205. package/lib/cjs/components/swiper/index.cjs.map +1 -0
  206. package/lib/cjs/components/swiper/item.cjs +39 -0
  207. package/lib/cjs/components/swiper/item.cjs.map +1 -0
  208. package/lib/cjs/components/swiper/swiper.cjs +262 -0
  209. package/lib/cjs/components/swiper/swiper.cjs.map +1 -0
  210. package/lib/cjs/components/tabs/index.cjs +6 -0
  211. package/lib/cjs/components/tabs/index.cjs.map +1 -0
  212. package/lib/cjs/components/tabs/item.cjs +10 -0
  213. package/lib/cjs/components/tabs/item.cjs.map +1 -0
  214. package/lib/cjs/components/tabs/tabs.cjs +272 -0
  215. package/lib/cjs/components/tabs/tabs.cjs.map +1 -0
  216. package/lib/cjs/components/tag/index.cjs +6 -0
  217. package/lib/cjs/components/tag/index.cjs.map +1 -0
  218. package/lib/cjs/components/tag/tag.cjs +32 -0
  219. package/lib/cjs/components/tag/tag.cjs.map +1 -0
  220. package/lib/cjs/components/text/highlight.cjs +35 -0
  221. package/lib/cjs/components/text/highlight.cjs.map +1 -0
  222. package/lib/cjs/components/text/index.cjs +6 -0
  223. package/lib/cjs/components/text/index.cjs.map +1 -0
  224. package/lib/cjs/components/text/number.cjs +32 -0
  225. package/lib/cjs/components/text/number.cjs.map +1 -0
  226. package/lib/cjs/components/text/text.cjs +39 -0
  227. package/lib/cjs/components/text/text.cjs.map +1 -0
  228. package/lib/cjs/components/text/time.cjs +24 -0
  229. package/lib/cjs/components/text/time.cjs.map +1 -0
  230. package/lib/cjs/components/tree/index.cjs +6 -0
  231. package/lib/cjs/components/tree/index.cjs.map +1 -0
  232. package/lib/cjs/components/tree/item.cjs +136 -0
  233. package/lib/cjs/components/tree/item.cjs.map +1 -0
  234. package/lib/cjs/components/tree/tree.cjs +127 -0
  235. package/lib/cjs/components/tree/tree.cjs.map +1 -0
  236. package/lib/cjs/components/upload/index.cjs +6 -0
  237. package/lib/cjs/components/upload/index.cjs.map +1 -0
  238. package/lib/cjs/components/upload/renderFile.cjs +99 -0
  239. package/lib/cjs/components/upload/renderFile.cjs.map +1 -0
  240. package/lib/cjs/components/upload/upload.cjs +165 -0
  241. package/lib/cjs/components/upload/upload.cjs.map +1 -0
  242. package/lib/cjs/components/utils/empty/index.cjs +17 -0
  243. package/lib/cjs/components/utils/empty/index.cjs.map +1 -0
  244. package/lib/cjs/components/utils/helpericon/helpericon.cjs +24 -0
  245. package/lib/cjs/components/utils/helpericon/helpericon.cjs.map +1 -0
  246. package/lib/cjs/components/utils/helpericon/index.cjs +6 -0
  247. package/lib/cjs/components/utils/helpericon/index.cjs.map +1 -0
  248. package/lib/cjs/components/video/index.cjs +6 -0
  249. package/lib/cjs/components/video/index.cjs.map +1 -0
  250. package/lib/cjs/components/video/video.cjs +237 -0
  251. package/lib/cjs/components/video/video.cjs.map +1 -0
  252. package/lib/cjs/index.cjs +83 -0
  253. package/lib/cjs/js/hooks.cjs +259 -0
  254. package/lib/cjs/js/hooks.cjs.map +1 -0
  255. package/lib/cjs/js/usePreview/content.cjs +197 -0
  256. package/lib/cjs/js/usePreview/content.cjs.map +1 -0
  257. package/lib/cjs/js/usePreview/index.cjs +39 -0
  258. package/lib/cjs/js/usePreview/index.cjs.map +1 -0
  259. package/lib/cjs/js/usePreview/renderFile.cjs +28 -0
  260. package/lib/cjs/js/usePreview/renderFile.cjs.map +1 -0
  261. package/lib/cjs/js/usePreview/type.cjs +15 -0
  262. package/lib/cjs/js/usePreview/type.cjs.map +1 -0
  263. package/lib/cjs/js/useRipple/index.cjs +45 -0
  264. package/lib/cjs/js/useRipple/index.cjs.map +1 -0
  265. package/lib/cjs/js/useTheme/index.cjs +30 -0
  266. package/lib/cjs/js/useTheme/index.cjs.map +1 -0
  267. package/lib/cjs/js/utils.cjs +284 -0
  268. package/lib/cjs/js/utils.cjs.map +1 -0
  269. package/lib/es/components/affix/affix.js +1 -1
  270. package/lib/es/components/affix/affix.js.map +1 -1
  271. package/lib/es/components/affix/totop.js +1 -1
  272. package/lib/es/components/affix/totop.js.map +1 -1
  273. package/lib/es/components/badge/badge.js.map +1 -1
  274. package/lib/es/components/button/button.js.map +1 -1
  275. package/lib/es/components/card/card.js.map +1 -1
  276. package/lib/es/components/checkbox/checkbox.js.map +1 -1
  277. package/lib/es/components/collapse/collapse.js +1 -2
  278. package/lib/es/components/collapse/collapse.js.map +1 -1
  279. package/lib/es/components/datagrid/datagrid.js.map +1 -1
  280. package/lib/es/components/description/description.js.map +1 -1
  281. package/lib/es/components/drawer/drawer.js.map +1 -1
  282. package/lib/es/components/dropdown/dropdown.js.map +1 -1
  283. package/lib/es/components/editor/controls.js +1 -7
  284. package/lib/es/components/editor/controls.js.map +1 -1
  285. package/lib/es/components/editor/editor.js.map +1 -1
  286. package/lib/es/components/flex/flex.js.map +1 -1
  287. package/lib/es/components/form/field.js +1 -1
  288. package/lib/es/components/form/form.js +1 -1
  289. package/lib/es/components/form/form.js.map +1 -1
  290. package/lib/es/components/form/useForm.js +2 -2
  291. package/lib/es/components/icon/icon.js.map +1 -1
  292. package/lib/es/components/image/image.js.map +1 -1
  293. package/lib/es/components/input/input.js +1 -2
  294. package/lib/es/components/input/input.js.map +1 -1
  295. package/lib/es/components/input/number.js +1 -3
  296. package/lib/es/components/input/number.js.map +1 -1
  297. package/lib/es/components/input/range.js +1 -3
  298. package/lib/es/components/input/range.js.map +1 -1
  299. package/lib/es/components/input/textarea.js.map +1 -1
  300. package/lib/es/components/list/list.js.map +1 -1
  301. package/lib/es/components/loading/loading.js.map +1 -1
  302. package/lib/es/components/message/message.js +2 -2
  303. package/lib/es/components/message/message.js.map +1 -1
  304. package/lib/es/components/modal/content.js.map +1 -1
  305. package/lib/es/components/modal/modal.js.map +1 -1
  306. package/lib/es/components/pagination/pagination.js +1 -3
  307. package/lib/es/components/pagination/pagination.js.map +1 -1
  308. package/lib/es/components/picker/colors/footer.js +1 -1
  309. package/lib/es/components/picker/colors/footer.js.map +1 -1
  310. package/lib/es/components/picker/colors/index.js.map +1 -1
  311. package/lib/es/components/picker/dates/index.js +2 -2
  312. package/lib/es/components/picker/dates/index.js.map +1 -1
  313. package/lib/es/components/picker/dates/panel.js +2 -3
  314. package/lib/es/components/picker/dates/panel.js.map +1 -1
  315. package/lib/es/components/picker/time/index.js +1 -1
  316. package/lib/es/components/picker/time/index.js.map +1 -1
  317. package/lib/es/components/picker/time/panel.js.map +1 -1
  318. package/lib/es/components/popconfirm/popconfirm.js +1 -1
  319. package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
  320. package/lib/es/components/popup/popup.js +1 -1
  321. package/lib/es/components/popup/popup.js.map +1 -1
  322. package/lib/es/components/progress/progress.js.map +1 -1
  323. package/lib/es/components/radio/radio.js.map +1 -1
  324. package/lib/es/components/resizable/resizable.js.map +1 -1
  325. package/lib/es/components/river/river.js.map +1 -1
  326. package/lib/es/components/select/options.js +1 -2
  327. package/lib/es/components/select/options.js.map +1 -1
  328. package/lib/es/components/select/select.js +2 -2
  329. package/lib/es/components/select/select.js.map +1 -1
  330. package/lib/es/components/step/divider.js.map +1 -1
  331. package/lib/es/components/step/item.js +1 -1
  332. package/lib/es/components/step/item.js.map +1 -1
  333. package/lib/es/components/step/step.js.map +1 -1
  334. package/lib/es/components/swiper/swiper.js +1 -2
  335. package/lib/es/components/swiper/swiper.js.map +1 -1
  336. package/lib/es/components/tabs/tabs.js +1 -1
  337. package/lib/es/components/tabs/tabs.js.map +1 -1
  338. package/lib/es/components/tag/tag.js.map +1 -1
  339. package/lib/es/components/text/highlight.js +1 -1
  340. package/lib/es/components/text/text.js.map +1 -1
  341. package/lib/es/components/tree/item.js +1 -1
  342. package/lib/es/components/tree/item.js.map +1 -1
  343. package/lib/es/components/tree/tree.js.map +1 -1
  344. package/lib/es/components/upload/renderFile.js +2 -2
  345. package/lib/es/components/upload/renderFile.js.map +1 -1
  346. package/lib/es/components/upload/upload.js +2 -3
  347. package/lib/es/components/upload/upload.js.map +1 -1
  348. package/lib/es/components/utils/empty/index.js +1 -1
  349. package/lib/es/components/utils/empty/index.js.map +1 -1
  350. package/lib/es/components/utils/helpericon/helpericon.js +2 -2
  351. package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
  352. package/lib/es/components/video/video.js +2 -8
  353. package/lib/es/components/video/video.js.map +1 -1
  354. package/lib/es/js/usePreview/content.js +2 -9
  355. package/lib/es/js/usePreview/content.js.map +1 -1
  356. package/lib/es/js/usePreview/index.js.map +1 -1
  357. package/lib/es/js/usePreview/renderFile.js +1 -1
  358. package/lib/es/js/usePreview/renderFile.js.map +1 -1
  359. package/lib/es/js/useRipple/index.js.map +1 -1
  360. package/lib/es/js/utils.js +1 -1
  361. package/lib/types/components/affix/affix.js +1 -2
  362. package/lib/types/components/affix/totop.js +1 -1
  363. package/lib/types/components/badge/badge.js +0 -1
  364. package/lib/types/components/button/button.js +0 -1
  365. package/lib/types/components/card/card.js +0 -1
  366. package/lib/types/components/checkbox/checkbox.js +0 -2
  367. package/lib/types/components/collapse/collapse.js +1 -3
  368. package/lib/types/components/datagrid/datagrid.js +0 -1
  369. package/lib/types/components/description/description.js +0 -1
  370. package/lib/types/components/drawer/drawer.js +0 -1
  371. package/lib/types/components/dropdown/dropdown.js +0 -1
  372. package/lib/types/components/editor/controls.js +1 -7
  373. package/lib/types/components/editor/editor.js +0 -1
  374. package/lib/types/components/flex/flex.js +0 -1
  375. package/lib/types/components/form/field.js +1 -1
  376. package/lib/types/components/form/form.js +1 -2
  377. package/lib/types/components/form/useForm.js +2 -2
  378. package/lib/types/components/icon/icon.js +0 -1
  379. package/lib/types/components/image/image.js +0 -1
  380. package/lib/types/components/input/input.js +1 -3
  381. package/lib/types/components/input/number.js +1 -4
  382. package/lib/types/components/input/range.js +1 -4
  383. package/lib/types/components/input/textarea.js +0 -1
  384. package/lib/types/components/list/list.js +0 -1
  385. package/lib/types/components/loading/loading.js +0 -1
  386. package/lib/types/components/message/message.js +2 -3
  387. package/lib/types/components/modal/content.js +0 -1
  388. package/lib/types/components/modal/modal.js +0 -1
  389. package/lib/types/components/pagination/pagination.js +1 -4
  390. package/lib/types/components/picker/colors/footer.js +1 -1
  391. package/lib/types/components/picker/colors/index.js +0 -1
  392. package/lib/types/components/picker/dates/index.js +2 -3
  393. package/lib/types/components/picker/dates/panel.js +2 -3
  394. package/lib/types/components/picker/time/index.js +1 -1
  395. package/lib/types/components/picker/time/panel.js +0 -1
  396. package/lib/types/components/popconfirm/popconfirm.js +1 -2
  397. package/lib/types/components/popup/popup.js +1 -2
  398. package/lib/types/components/progress/progress.js +0 -2
  399. package/lib/types/components/radio/radio.js +0 -2
  400. package/lib/types/components/resizable/resizable.js +0 -1
  401. package/lib/types/components/river/river.js +0 -1
  402. package/lib/types/components/select/options.js +1 -2
  403. package/lib/types/components/select/select.js +2 -4
  404. package/lib/types/components/step/divider.js +0 -1
  405. package/lib/types/components/step/item.js +1 -1
  406. package/lib/types/components/step/step.js +0 -1
  407. package/lib/types/components/swiper/swiper.js +1 -3
  408. package/lib/types/components/tabs/tabs.js +1 -2
  409. package/lib/types/components/tag/tag.js +0 -1
  410. package/lib/types/components/text/highlight.js +1 -1
  411. package/lib/types/components/text/text.js +0 -1
  412. package/lib/types/components/tree/item.js +1 -1
  413. package/lib/types/components/tree/tree.js +0 -1
  414. package/lib/types/components/upload/renderFile.js +2 -2
  415. package/lib/types/components/upload/upload.js +2 -4
  416. package/lib/types/components/utils/empty/index.js +1 -2
  417. package/lib/types/components/utils/helpericon/helpericon.js +2 -3
  418. package/lib/types/components/video/video.js +2 -9
  419. package/lib/types/index.js +0 -1
  420. package/lib/types/js/usePreview/content.js +2 -9
  421. package/lib/types/js/usePreview/index.js +0 -1
  422. package/lib/types/js/usePreview/renderFile.js +1 -1
  423. package/lib/types/js/useRipple/index.js +0 -1
  424. package/lib/types/js/utils.js +1 -1
  425. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","names":[],"sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import DriveFolderUploadOutlined from \"@ricons/material/es/DriveFolderUploadOutlined.js\";\nimport PlusSharp from \"@ricons/material/es/PlusSharp.js\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultButtonProps,\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst [fileList, setFileListState] = useState(files);\n\tconst [uploadMessage, setUploadMessage] = useState(message);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\tconst defBtnProps = Object.assign(\n\t\t{\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t<Icon icon={<DriveFolderUploadOutlined />} /> 上传\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t\tdefaultButtonProps,\n\t);\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...defBtnProps}\n\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\"i-upload-btn\",\n\t\t\t\t\t\t\tdefBtnProps.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst before = fileList;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\t\tconst last = after.at(-1);\n\t\tconst nextFiles = multiple ? after.slice(0, limit) : last ? [last] : [];\n\n\t\tsetFileListState(nextFiles);\n\t\tsetUploadMessage(message);\n\n\t\tonFilesChange?.(nextFiles, changed, e);\n\t\tonChange?.(nextFiles, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = fileList;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tsetFileListState(files);\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: fileList as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tsetFileListState(\n\t\t\tfiles.map((f: IFile | File) => {\n\t\t\t\tconst file = f as IFile;\n\t\t\t\treturn { ...file, id: file.id ?? uid(7) };\n\t\t\t}),\n\t\t);\n\t};\n\n\tconst handleSortEnd = (before: number, after: number) => {\n\t\tconst [...files] = fileList;\n\n\t\tconst nextFiles = arrayMove(files, before, after);\n\t\tsetFileListState(nextFiles);\n\t\tonChange?.(nextFiles);\n\t};\n\n\tuseEffect(() => {\n\t\tsetUploadMessage(message);\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tsetFileListState(value?.filter?.((file: IFile) => !!file.id) ?? []);\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => fileList,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[fileList],\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{fileList.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{uploadMessage && (\n\t\t\t\t\t<span className='i-upload-message'>{uploadMessage}</span>\n\t\t\t\t)}\n\n\t\t\t\t{fileList.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","names":[],"sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { DriveFolderUploadOutlined, PlusSharp } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultButtonProps,\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst [fileList, setFileListState] = useState(files);\n\tconst [uploadMessage, setUploadMessage] = useState(message);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\tconst defBtnProps = Object.assign(\n\t\t{\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t<Icon icon={<DriveFolderUploadOutlined />} /> 上传\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t\tdefaultButtonProps,\n\t);\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...defBtnProps}\n\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\"i-upload-btn\",\n\t\t\t\t\t\t\tdefBtnProps.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst before = fileList;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\t\tconst last = after.at(-1);\n\t\tconst nextFiles = multiple ? after.slice(0, limit) : last ? [last] : [];\n\n\t\tsetFileListState(nextFiles);\n\t\tsetUploadMessage(message);\n\n\t\tonFilesChange?.(nextFiles, changed, e);\n\t\tonChange?.(nextFiles, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = fileList;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tsetFileListState(files);\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: fileList as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tsetFileListState(\n\t\t\tfiles.map((f: IFile | File) => {\n\t\t\t\tconst file = f as IFile;\n\t\t\t\treturn { ...file, id: file.id ?? uid(7) };\n\t\t\t}),\n\t\t);\n\t};\n\n\tconst handleSortEnd = (before: number, after: number) => {\n\t\tconst [...files] = fileList;\n\n\t\tconst nextFiles = arrayMove(files, before, after);\n\t\tsetFileListState(nextFiles);\n\t\tonChange?.(nextFiles);\n\t};\n\n\tuseEffect(() => {\n\t\tsetUploadMessage(message);\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tsetFileListState(value?.filter?.((file: IFile) => !!file.id) ?? []);\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => fileList,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[fileList],\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{fileList.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{uploadMessage && (\n\t\t\t\t\t<span className='i-upload-message'>{uploadMessage}</span>\n\t\t\t\t)}\n\n\t\t\t\t{fileList.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import classNames from "classnames";
2
+ import { InboxTwotone } from "@ricons/material";
2
3
  import { jsx } from "react/jsx-runtime";
3
- import InboxTwotone from "@ricons/material/es/InboxTwotone.js";
4
4
  //#region packages/components/utils/empty/index.tsx
5
5
  function Empty(props) {
6
6
  const { className, ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/components/utils/empty/index.tsx"],"sourcesContent":["import InboxTwotone from \"@ricons/material/es/InboxTwotone.js\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\n\nexport default function Empty(props) {\n\tconst { className, ...restProps } = props;\n\n\treturn (\n\t\t<InboxTwotone\n\t\t\tclassName={classNames(\"i-empty\", className)}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;AAIA,SAAwB,MAAM,OAAO;CACpC,MAAM,EAAE,WAAW,GAAG,cAAc;AAEpC,QACC,oBAAC,cAAD;EACC,WAAW,WAAW,WAAW,UAAU;EAC3C,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/components/utils/empty/index.tsx"],"sourcesContent":["import { InboxTwotone } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\n\nexport default function Empty(props) {\n\tconst { className, ...restProps } = props;\n\n\treturn (\n\t\t<InboxTwotone\n\t\t\tclassName={classNames(\"i-empty\", className)}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;AAEA,SAAoB,MAAA,OAAA;;AAGnB,QAAA,oBAAA,cAAA;EAEA,WAAO,WAAA,WAAA,UAAA;EACL,GAAA;EACA,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import icon_default from "../../icon/index.js";
2
2
  import classNames from "classnames";
3
- import { uid } from "radash";
3
+ import { uid } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
4
4
  import { createElement } from "react";
5
+ import { CloseRound } from "@ricons/material";
5
6
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
6
- import CloseRound from "@ricons/material/es/CloseRound.js";
7
7
  //#region packages/components/utils/helpericon/helpericon.tsx
8
8
  const Helpericon = (props) => {
9
9
  const { as = "a", active, className, icon = /* @__PURE__ */ jsx(CloseRound, {}), ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"helpericon.js","names":[],"sources":["../../../../../packages/components/utils/helpericon/helpericon.tsx"],"sourcesContent":["import CloseRound from \"@ricons/material/es/CloseRound.js\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport { createElement } from \"react\";\nimport Icon from \"../../icon\";\nimport \"./index.css\";\nimport { IHelperIcon } from \"./type\";\n\nconst Helpericon = (props: IHelperIcon) => {\n\tconst {\n\t\tas = \"a\",\n\t\tactive,\n\t\tclassName,\n\t\ticon = <CloseRound />,\n\t\t...restProps\n\t} = props;\n\n\tif (!active) return <></>;\n\n\treturn createElement(\n\t\tas,\n\t\t{\n\t\t\tclassName: classNames(\"i-helpericon\", className),\n\t\t\t...restProps,\n\t\t},\n\t\t[\n\t\t\tcreateElement(Icon, {\n\t\t\t\tkey: uid(3),\n\t\t\t\ticon,\n\t\t\t}),\n\t\t]\n\t);\n};\n\nexport default Helpericon;\n"],"mappings":";;;;;;;AAQA,MAAM,cAAc,UAAuB;CAC1C,MAAM,EACL,KAAK,KACL,QACA,WACA,OAAO,oBAAC,YAAD,EAAc,CAAA,EACrB,GAAG,cACA;AAEJ,KAAI,CAAC,OAAQ,QAAO,oBAAA,YAAA,EAAK,CAAA;AAEzB,QAAO,cACN,IACA;EACC,WAAW,WAAW,gBAAgB,UAAU;EAChD,GAAG;EACH,EACD,CACC,cAAc,cAAM;EACnB,KAAK,IAAI,EAAE;EACX;EACA,CAAC,CACH,CACA"}
1
+ {"version":3,"file":"helpericon.js","names":[],"sources":["../../../../../packages/components/utils/helpericon/helpericon.tsx"],"sourcesContent":["import { CloseRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport { createElement } from \"react\";\nimport Icon from \"../../icon\";\nimport \"./index.css\";\nimport { IHelperIcon } from \"./type\";\n\nconst Helpericon = (props: IHelperIcon) => {\n\tconst {\n\t\tas = \"a\",\n\t\tactive,\n\t\tclassName,\n\t\ticon = <CloseRound />,\n\t\t...restProps\n\t} = props;\n\n\tif (!active) return <></>;\n\n\treturn createElement(\n\t\tas,\n\t\t{\n\t\t\tclassName: classNames(\"i-helpericon\", className),\n\t\t\t...restProps,\n\t\t},\n\t\t[\n\t\t\tcreateElement(Icon, {\n\t\t\t\tkey: uid(3),\n\t\t\t\ticon,\n\t\t\t}),\n\t\t]\n\t);\n};\n\nexport default Helpericon;\n"],"mappings":";;;;;;;;CAQA,MAAM,EACL,KAAM,KACL,QACA,WACA,OAAA,oBAAA,YAAA,EAAS,CAAA,EACT,GAAA,cACG;;sBAKJ,IACC;EACA,WAAA,WAAA,gBAAA,UAAA;EACC,GAAA;EACA,EACD,CACA,cAAA,cAAA;EACC,KAAA,IAAA,EAAA;EACC;EACA,CAAA,CACD,CACD"}
@@ -5,16 +5,10 @@ import { exitFullScreen, fullScreen } from "../../js/utils.js";
5
5
  import text_default from "../text/index.js";
6
6
  import progress_default from "../progress/index.js";
7
7
  import classNames from "classnames";
8
- import { throttle } from "radash";
8
+ import { throttle } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
9
9
  import { useEffect, useImperativeHandle, useRef } from "react";
10
+ import { FullscreenExitRound, FullscreenRound, PauseRound, PlayArrowRound, StopRound, VolumeDownRound, VolumeOffRound } from "@ricons/material";
10
11
  import { jsx, jsxs } from "react/jsx-runtime";
11
- import FullscreenExitRound from "@ricons/material/es/FullscreenExitRound.js";
12
- import FullscreenRound from "@ricons/material/es/FullscreenRound.js";
13
- import PauseRound from "@ricons/material/es/PauseRound.js";
14
- import PlayArrowRound from "@ricons/material/es/PlayArrowRound.js";
15
- import StopRound from "@ricons/material/es/StopRound.js";
16
- import VolumeDownRound from "@ricons/material/es/VolumeDownRound.js";
17
- import VolumeOffRound from "@ricons/material/es/VolumeOffRound.js";
18
12
  //#region packages/components/video/video.tsx
19
13
  const Video = (props) => {
20
14
  const { ref, style, hideControls, autoplay, muted, volume = 50, height, width, useOriginControls, timeProgressProps = { barClass: "bg-blue" }, volumeProgressProps = { barClass: "bg-blue" }, className, onFullScreenChange, ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","names":[],"sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import FullscreenExitRound from \"@ricons/material/es/FullscreenExitRound.js\";\nimport FullscreenRound from \"@ricons/material/es/FullscreenRound.js\";\nimport PauseRound from \"@ricons/material/es/PauseRound.js\";\nimport PlayArrowRound from \"@ricons/material/es/PlayArrowRound.js\";\nimport StopRound from \"@ricons/material/es/StopRound.js\";\nimport VolumeDownRound from \"@ricons/material/es/VolumeDownRound.js\";\nimport VolumeOffRound from \"@ricons/material/es/VolumeOffRound.js\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"mappings":"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"}
1
+ {"version":3,"file":"video.js","names":[],"sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\n\tFullscreenExitRound,\n\tFullscreenRound,\n\tPauseRound,\n\tPlayArrowRound,\n\tStopRound,\n\tVolumeDownRound,\n\tVolumeOffRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"mappings":"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"}
@@ -5,17 +5,10 @@ import { getFileType, getSuffixByUrl } from "../utils.js";
5
5
  import { TFileType } from "./type.js";
6
6
  import renderFile from "./renderFile.js";
7
7
  import classNames from "classnames";
8
- import { throttle } from "radash";
8
+ import { throttle } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
9
9
  import { useEffect, useMemo, useRef } from "react";
10
+ import { AspectRatioRound, CloseRound, FileDownloadOutlined, KeyboardArrowLeftRound, KeyboardArrowRightRound, OpenInNewRound, RotateLeftRound, RotateRightRound } from "@ricons/material";
10
11
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
- import CloseRound from "@ricons/material/es/CloseRound.js";
12
- import AspectRatioRound from "@ricons/material/es/AspectRatioRound.js";
13
- import FileDownloadOutlined from "@ricons/material/es/FileDownloadOutlined.js";
14
- import KeyboardArrowLeftRound from "@ricons/material/es/KeyboardArrowLeftRound.js";
15
- import KeyboardArrowRightRound from "@ricons/material/es/KeyboardArrowRightRound.js";
16
- import OpenInNewRound from "@ricons/material/es/OpenInNewRound.js";
17
- import RotateLeftRound from "@ricons/material/es/RotateLeftRound.js";
18
- import RotateRightRound from "@ricons/material/es/RotateRightRound.js";
19
12
  //#region packages/js/usePreview/content.tsx
20
13
  function Content(props) {
21
14
  const { items = [], initial = 0, renderFile: renderFile$1 = renderFile, onRotate, onChange, onClose, onZoom } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","names":["DefaultRenderFile","renderFile","Button","Icon"],"sources":["../../../../packages/js/usePreview/content.tsx"],"sourcesContent":["import Button from \"@p/components/button\";\nimport Icon from \"@p/components/icon\";\nimport AspectRatioRound from \"@ricons/material/es/AspectRatioRound.js\";\nimport CloseRound from \"@ricons/material/es/CloseRound.js\";\nimport FileDownloadOutlined from \"@ricons/material/es/FileDownloadOutlined.js\";\nimport KeyboardArrowLeftRound from \"@ricons/material/es/KeyboardArrowLeftRound.js\";\nimport KeyboardArrowRightRound from \"@ricons/material/es/KeyboardArrowRightRound.js\";\nimport OpenInNewRound from \"@ricons/material/es/OpenInNewRound.js\";\nimport RotateLeftRound from \"@ricons/material/es/RotateLeftRound.js\";\nimport RotateRightRound from \"@ricons/material/es/RotateRightRound.js\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../hooks\";\nimport { getFileType, getSuffixByUrl } from \"../utils\";\nimport DefaultRenderFile from \"./renderFile\";\nimport { IPreview, TFileType, TPreviewItem } from \"./type\";\n\nexport default function Content(props: IPreview) {\n\tconst {\n\t\titems = [],\n\t\tinitial = 0,\n\t\trenderFile = DefaultRenderFile,\n\t\tonRotate,\n\t\tonChange,\n\t\tonClose,\n\t\tonZoom,\n\t} = props;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\trotate: 0,\n\t\tscale: 1,\n\t\ttranslate: [0, 0],\n\t\tstart: [0, 0],\n\t\tdragging: false,\n\t\tcontrolHidden: true,\n\t});\n\tconst box = useRef<HTMLDivElement>(null);\n\tconst translate = useRef<number[]>([0, 0]);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst files = useMemo(() => {\n\t\treturn items.map((item) => {\n\t\t\tconst o: TPreviewItem = {\n\t\t\t\tsrc: \"\",\n\t\t\t};\n\t\t\tif (typeof item === \"string\") {\n\t\t\t\to.src = item;\n\t\t\t} else {\n\t\t\t\tObject.assign(o, item);\n\t\t\t}\n\n\t\t\to.suffix = getSuffixByUrl(o.src) || \"\";\n\t\t\to.type = getFileType(o.suffix, item[\"type\"]);\n\n\t\t\treturn o;\n\t\t});\n\t}, [items]);\n\n\tconst { file, content } = useMemo(() => {\n\t\tconst file = files[state.current];\n\t\tconst content = renderFile(file);\n\n\t\treturn {\n\t\t\tfile,\n\t\t\tcontent,\n\t\t};\n\t}, [state.current, items]);\n\n\tconst isImage = file.type === TFileType.IMAGE;\n\n\tconst handleSwitch = (next: number) => {\n\t\tconst l = files.length;\n\t\tconst { current: before } = state;\n\t\tif (next >= l) {\n\t\t\tstate.current = 0;\n\t\t} else if (next < 0) {\n\t\t\tstate.current = l - 1;\n\t\t} else {\n\t\t\tstate.current = next;\n\t\t}\n\t\tonChange?.(state.current, before);\n\n\t\tstate.rotate = files[state.current].rotate || 0;\n\n\t\tif (state.scale !== 1) {\n\t\t\tstate.scale = 1;\n\t\t\tonZoom?.(1);\n\t\t}\n\t\tonRotate?.(state.rotate);\n\t\tstate.translate = translate.current = [0, 0];\n\t};\n\n\tconst handleRotate = (deg: number) => {\n\t\tstate.rotate += deg;\n\n\t\tonRotate?.(state.rotate);\n\t};\n\n\tconst handleMouseWheel = throttle({ interval: 60 }, (e) => {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t\tif (!isImage) return;\n\t\tlet after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);\n\t\tif (after > 2) after = 2;\n\t\tif (after < 0.25) after = 0.25;\n\n\t\tonZoom?.(after);\n\t\tstate.scale = after;\n\t});\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!isImage) return;\n\t\te.preventDefault();\n\t\tstate.dragging = true;\n\t\tstate.start = [e.pageX, e.pageY];\n\t};\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current || state.controlHidden) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);\n\n\tconst handleMouseMove = (e) => {\n\t\tthrottleMouseMove();\n\t\tif (!state.dragging) return;\n\t\te.preventDefault();\n\n\t\tconst [x, y] = translate.current;\n\t\tconst [ox, oy] = state.start;\n\t\tconst offsetX = e.pageX - ox;\n\t\tconst offsetY = e.pageY - oy;\n\n\t\tstate.translate = [x + offsetX, y + offsetY];\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging) return;\n\t\tstate.dragging = false;\n\t\ttranslate.current = state.translate;\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseEffect(() => {\n\t\tif (!box.current) return;\n\n\t\tbox.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!box.current) return;\n\n\t\t\tbox.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={box}\n\t\t\t\tclassName={classNames(\"i-preview-content\", {\n\t\t\t\t\t\"no-transition\": state.dragging,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${state.translate\n\t\t\t\t\t\t.map((n) => `${n}px`)\n\t\t\t\t\t\t.join(\",\")}) rotate(${state.rotate}deg) scale(${\n\t\t\t\t\t\tstate.scale\n\t\t\t\t\t})`,\n\t\t\t\t}}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-preview-controls\", {\n\t\t\t\t\t\"i-preview-controls-hidden\": state.controlHidden,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Button square flat onClick={onClose}>\n\t\t\t\t\t<Icon icon={<CloseRound />} />\n\t\t\t\t</Button>\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<span className='px-8'>\n\t\t\t\t\t\t{state.current + 1} / {files.length}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state.scale !== 1 && (\n\t\t\t\t\t<Button flat onClick={() => (state.scale = 1)}>\n\t\t\t\t\t\t<Icon icon={<AspectRatioRound />} />\n\t\t\t\t\t\t<span className='mt-2'>\n\t\t\t\t\t\t\t{(state.scale * 100).toFixed(0)}%\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button square flat href={file.src} target='_blank'>\n\t\t\t\t\t<Icon icon={<OpenInNewRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat href={file.src} download target='_blank'>\n\t\t\t\t\t<Icon icon={<FileDownloadOutlined />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(90)}>\n\t\t\t\t\t<Icon icon={<RotateRightRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(-90)}>\n\t\t\t\t\t<Icon icon={<RotateLeftRound />} />\n\t\t\t\t</Button>\n\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current - 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current + 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,SAAwB,QAAQ,OAAiB;CAChD,MAAM,EACL,QAAQ,EAAE,EACV,UAAU,GACV,YAAA,eAAaA,YACb,UACA,UACA,SACA,WACG;CACJ,MAAM,QAAQ,YAAY;EACzB,SAAS;EACT,QAAQ;EACR,OAAO;EACP,WAAW,CAAC,GAAG,EAAE;EACjB,OAAO,CAAC,GAAG,EAAE;EACb,UAAU;EACV,eAAe;EACf,CAAC;CACF,MAAM,MAAM,OAAuB,KAAK;CACxC,MAAM,YAAY,OAAiB,CAAC,GAAG,EAAE,CAAC;CAC1C,MAAM,WAAW,OAAY,KAAK;CAElC,MAAM,QAAQ,cAAc;AAC3B,SAAO,MAAM,KAAK,SAAS;GAC1B,MAAM,IAAkB,EACvB,KAAK,IACL;AACD,OAAI,OAAO,SAAS,SACnB,GAAE,MAAM;OAER,QAAO,OAAO,GAAG,KAAK;AAGvB,KAAE,SAAS,eAAe,EAAE,IAAI,IAAI;AACpC,KAAE,OAAO,YAAY,EAAE,QAAQ,KAAK,QAAQ;AAE5C,UAAO;IACN;IACA,CAAC,MAAM,CAAC;CAEX,MAAM,EAAE,MAAM,YAAY,cAAc;EACvC,MAAM,OAAO,MAAM,MAAM;AAGzB,SAAO;GACN;GACA,SAJeC,aAAW,KAAK;GAK/B;IACC,CAAC,MAAM,SAAS,MAAM,CAAC;CAE1B,MAAM,UAAU,KAAK,SAAS,UAAU;CAExC,MAAM,gBAAgB,SAAiB;EACtC,MAAM,IAAI,MAAM;EAChB,MAAM,EAAE,SAAS,WAAW;AAC5B,MAAI,QAAQ,EACX,OAAM,UAAU;WACN,OAAO,EACjB,OAAM,UAAU,IAAI;MAEpB,OAAM,UAAU;AAEjB,aAAW,MAAM,SAAS,OAAO;AAEjC,QAAM,SAAS,MAAM,MAAM,SAAS,UAAU;AAE9C,MAAI,MAAM,UAAU,GAAG;AACtB,SAAM,QAAQ;AACd,YAAS,EAAE;;AAEZ,aAAW,MAAM,OAAO;AACxB,QAAM,YAAY,UAAU,UAAU,CAAC,GAAG,EAAE;;CAG7C,MAAM,gBAAgB,QAAgB;AACrC,QAAM,UAAU;AAEhB,aAAW,MAAM,OAAO;;CAGzB,MAAM,mBAAmB,SAAS,EAAE,UAAU,IAAI,GAAG,MAAM;AAC1D,IAAE,iBAAiB;AACnB,IAAE,gBAAgB;AAClB,MAAI,CAAC,QAAS;EACd,IAAI,QAAQ,MAAM,SAAS,EAAE,SAAS,IAAI,MAAO;AACjD,MAAI,QAAQ,EAAG,SAAQ;AACvB,MAAI,QAAQ,IAAM,SAAQ;AAE1B,WAAS,MAAM;AACf,QAAM,QAAQ;GACb;CAEF,MAAM,mBAAmB,MAAM;AAC9B,MAAI,CAAC,QAAS;AACd,IAAE,gBAAgB;AAClB,QAAM,WAAW;AACjB,QAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM;;CAGjC,MAAM,sBAAsB;AAC3B,MAAI,CAAC,SAAS,WAAW,MAAM,cAAe;AAC9C,eAAa,SAAS,QAAQ;AAC9B,WAAS,UAAU;;CAGpB,MAAM,uBAAuB;AAC5B,MAAI,CAAC,MAAM,cAAe;AAC1B,QAAM,gBAAgB;AAEtB,iBAAe;AACf,WAAS,UAAU,iBAAiB;AACnC,SAAM,gBAAgB;KACpB,IAAK;;CAGT,MAAM,oBAAoB,SAAS,EAAE,UAAU,KAAK,EAAE,eAAe;CAErE,MAAM,mBAAmB,MAAM;AAC9B,qBAAmB;AACnB,MAAI,CAAC,MAAM,SAAU;AACrB,IAAE,gBAAgB;EAElB,MAAM,CAAC,GAAG,KAAK,UAAU;EACzB,MAAM,CAAC,IAAI,MAAM,MAAM;EACvB,MAAM,UAAU,EAAE,QAAQ;EAC1B,MAAM,UAAU,EAAE,QAAQ;AAE1B,QAAM,YAAY,CAAC,IAAI,SAAS,IAAI,QAAQ;;CAG7C,MAAM,sBAAsB;AAC3B,MAAI,CAAC,MAAM,SAAU;AACrB,QAAM,WAAW;AACjB,YAAU,UAAU,MAAM;;AAG3B,cAAa,gBAAgB;AAC7B,YAAW,cAAc;AAEzB,iBAAgB;AACf,MAAI,CAAC,IAAI,QAAS;AAElB,MAAI,QAAQ,iBAAiB,SAAS,kBAAkB,EACvD,SAAS,OACT,CAAC;AAEF,eAAa;AACZ,OAAI,CAAC,IAAI,QAAS;AAElB,OAAI,QAAQ,oBAAoB,SAAS,iBAAiB;;IAEzD,EAAE,CAAC;AAEN,QACC,qBAAA,YAAA,EAAA,UAAA,CACC,oBAAC,OAAD;EACC,KAAK;EACL,WAAW,WAAW,qBAAqB,EAC1C,iBAAiB,MAAM,UACvB,CAAC;EACF,OAAO,EACN,WAAW,aAAa,MAAM,UAC5B,KAAK,MAAM,GAAG,EAAE,IAAI,CACpB,KAAK,IAAI,CAAC,WAAW,MAAM,OAAO,aACnC,MAAM,MACN,IACD;EACD,aAAa;EACb,UAAU,MAAM,EAAE,iBAAiB;YAElC;EACI,CAAA,EAEN,qBAAC,OAAD;EACC,WAAW,WAAW,sBAAsB,EAC3C,6BAA6B,MAAM,eACnC,CAAC;YAHH;GAKC,oBAACC,gBAAD;IAAQ,QAAA;IAAO,MAAA;IAAK,SAAS;cAC5B,oBAACC,cAAD,EAAM,MAAM,oBAAC,YAAD,EAAc,CAAA,EAAI,CAAA;IACtB,CAAA;GACR,MAAM,SAAS,KACf,qBAAC,QAAD;IAAM,WAAU;cAAhB;KACE,MAAM,UAAU;KAAE;KAAI,MAAM;KACvB;;GAEP,MAAM,UAAU,KAChB,qBAACD,gBAAD;IAAQ,MAAA;IAAK,eAAgB,MAAM,QAAQ;cAA3C,CACC,oBAACC,cAAD,EAAM,MAAM,oBAAC,kBAAD,EAAoB,CAAA,EAAI,CAAA,EACpC,qBAAC,QAAD;KAAM,WAAU;eAAhB,EACG,MAAM,QAAQ,KAAK,QAAQ,EAAE,EAAC,IAC1B;OACC;;GAEV,oBAACD,gBAAD;IAAQ,QAAA;IAAO,MAAA;IAAK,MAAM,KAAK;IAAK,QAAO;cAC1C,oBAACC,cAAD,EAAM,MAAM,oBAAC,gBAAD,EAAkB,CAAA,EAAI,CAAA;IAC1B,CAAA;GACT,oBAACD,gBAAD;IAAQ,QAAA;IAAO,MAAA;IAAK,MAAM,KAAK;IAAK,UAAA;IAAS,QAAO;cACnD,oBAACC,cAAD,EAAM,MAAM,oBAAC,sBAAD,EAAwB,CAAA,EAAI,CAAA;IAChC,CAAA;GACT,oBAACD,gBAAD;IAAQ,QAAA;IAAO,MAAA;IAAK,eAAe,aAAa,GAAG;cAClD,oBAACC,cAAD,EAAM,MAAM,oBAAC,kBAAD,EAAoB,CAAA,EAAI,CAAA;IAC5B,CAAA;GACT,oBAACD,gBAAD;IAAQ,QAAA;IAAO,MAAA;IAAK,eAAe,aAAa,IAAI;cACnD,oBAACC,cAAD,EAAM,MAAM,oBAAC,iBAAD,EAAmB,CAAA,EAAI,CAAA;IAC3B,CAAA;GAER,MAAM,SAAS,KACf,qBAAA,YAAA,EAAA,UAAA,CACC,oBAACD,gBAAD;IACC,QAAA;IACA,MAAA;IACA,eAAe,aAAa,MAAM,UAAU,EAAE;cAE9C,oBAACC,cAAD,EAAM,MAAM,oBAAC,wBAAD,EAA0B,CAAA,EAAI,CAAA;IAClC,CAAA,EACT,oBAACD,gBAAD;IACC,QAAA;IACA,MAAA;IACA,eAAe,aAAa,MAAM,UAAU,EAAE;cAE9C,oBAACC,cAAD,EAAM,MAAM,oBAAC,yBAAD,EAA2B,CAAA,EAAI,CAAA;IACnC,CAAA,CACP,EAAA,CAAA;GAEC;IACJ,EAAA,CAAA"}
1
+ {"version":3,"file":"content.js","names":["DefaultRenderFile","renderFile","Button","Icon"],"sources":["../../../../packages/js/usePreview/content.tsx"],"sourcesContent":["import Button from \"@p/components/button\";\nimport Icon from \"@p/components/icon\";\nimport {\n\tAspectRatioRound,\n\tCloseRound,\n\tFileDownloadOutlined,\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n\tOpenInNewRound,\n\tRotateLeftRound,\n\tRotateRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../hooks\";\nimport { getFileType, getSuffixByUrl } from \"../utils\";\nimport DefaultRenderFile from \"./renderFile\";\nimport { IPreview, TFileType, TPreviewItem } from \"./type\";\n\nexport default function Content(props: IPreview) {\n\tconst {\n\t\titems = [],\n\t\tinitial = 0,\n\t\trenderFile = DefaultRenderFile,\n\t\tonRotate,\n\t\tonChange,\n\t\tonClose,\n\t\tonZoom,\n\t} = props;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\trotate: 0,\n\t\tscale: 1,\n\t\ttranslate: [0, 0],\n\t\tstart: [0, 0],\n\t\tdragging: false,\n\t\tcontrolHidden: true,\n\t});\n\tconst box = useRef<HTMLDivElement>(null);\n\tconst translate = useRef<number[]>([0, 0]);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst files = useMemo(() => {\n\t\treturn items.map((item) => {\n\t\t\tconst o: TPreviewItem = {\n\t\t\t\tsrc: \"\",\n\t\t\t};\n\t\t\tif (typeof item === \"string\") {\n\t\t\t\to.src = item;\n\t\t\t} else {\n\t\t\t\tObject.assign(o, item);\n\t\t\t}\n\n\t\t\to.suffix = getSuffixByUrl(o.src) || \"\";\n\t\t\to.type = getFileType(o.suffix, item[\"type\"]);\n\n\t\t\treturn o;\n\t\t});\n\t}, [items]);\n\n\tconst { file, content } = useMemo(() => {\n\t\tconst file = files[state.current];\n\t\tconst content = renderFile(file);\n\n\t\treturn {\n\t\t\tfile,\n\t\t\tcontent,\n\t\t};\n\t}, [state.current, items]);\n\n\tconst isImage = file.type === TFileType.IMAGE;\n\n\tconst handleSwitch = (next: number) => {\n\t\tconst l = files.length;\n\t\tconst { current: before } = state;\n\t\tif (next >= l) {\n\t\t\tstate.current = 0;\n\t\t} else if (next < 0) {\n\t\t\tstate.current = l - 1;\n\t\t} else {\n\t\t\tstate.current = next;\n\t\t}\n\t\tonChange?.(state.current, before);\n\n\t\tstate.rotate = files[state.current].rotate || 0;\n\n\t\tif (state.scale !== 1) {\n\t\t\tstate.scale = 1;\n\t\t\tonZoom?.(1);\n\t\t}\n\t\tonRotate?.(state.rotate);\n\t\tstate.translate = translate.current = [0, 0];\n\t};\n\n\tconst handleRotate = (deg: number) => {\n\t\tstate.rotate += deg;\n\n\t\tonRotate?.(state.rotate);\n\t};\n\n\tconst handleMouseWheel = throttle({ interval: 60 }, (e) => {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t\tif (!isImage) return;\n\t\tlet after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);\n\t\tif (after > 2) after = 2;\n\t\tif (after < 0.25) after = 0.25;\n\n\t\tonZoom?.(after);\n\t\tstate.scale = after;\n\t});\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!isImage) return;\n\t\te.preventDefault();\n\t\tstate.dragging = true;\n\t\tstate.start = [e.pageX, e.pageY];\n\t};\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current || state.controlHidden) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);\n\n\tconst handleMouseMove = (e) => {\n\t\tthrottleMouseMove();\n\t\tif (!state.dragging) return;\n\t\te.preventDefault();\n\n\t\tconst [x, y] = translate.current;\n\t\tconst [ox, oy] = state.start;\n\t\tconst offsetX = e.pageX - ox;\n\t\tconst offsetY = e.pageY - oy;\n\n\t\tstate.translate = [x + offsetX, y + offsetY];\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging) return;\n\t\tstate.dragging = false;\n\t\ttranslate.current = state.translate;\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseEffect(() => {\n\t\tif (!box.current) return;\n\n\t\tbox.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!box.current) return;\n\n\t\t\tbox.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={box}\n\t\t\t\tclassName={classNames(\"i-preview-content\", {\n\t\t\t\t\t\"no-transition\": state.dragging,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${state.translate\n\t\t\t\t\t\t.map((n) => `${n}px`)\n\t\t\t\t\t\t.join(\",\")}) rotate(${state.rotate}deg) scale(${\n\t\t\t\t\t\tstate.scale\n\t\t\t\t\t})`,\n\t\t\t\t}}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-preview-controls\", {\n\t\t\t\t\t\"i-preview-controls-hidden\": state.controlHidden,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Button square flat onClick={onClose}>\n\t\t\t\t\t<Icon icon={<CloseRound />} />\n\t\t\t\t</Button>\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<span className='px-8'>\n\t\t\t\t\t\t{state.current + 1} / {files.length}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state.scale !== 1 && (\n\t\t\t\t\t<Button flat onClick={() => (state.scale = 1)}>\n\t\t\t\t\t\t<Icon icon={<AspectRatioRound />} />\n\t\t\t\t\t\t<span className='mt-2'>\n\t\t\t\t\t\t\t{(state.scale * 100).toFixed(0)}%\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button square flat href={file.src} target='_blank'>\n\t\t\t\t\t<Icon icon={<OpenInNewRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat href={file.src} download target='_blank'>\n\t\t\t\t\t<Icon icon={<FileDownloadOutlined />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(90)}>\n\t\t\t\t\t<Icon icon={<RotateRightRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(-90)}>\n\t\t\t\t\t<Icon icon={<RotateLeftRound />} />\n\t\t\t\t</Button>\n\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current - 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current + 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/usePreview/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport HookModal from \"../../components/modal/hookModal\";\nimport type { RefHookModal } from \"../../components/modal/type\";\nimport { renderNode } from \"../utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport type { IPreview } from \"./type\";\n\nexport default function usePreview() {\n\tconst ref = useRef<RefHookModal>(null);\n\n\tconst preview = (config: IPreview) => {\n\t\tconst { items, modalProps, onClose, ...restProps } = config;\n\n\t\tconst handleClose = () => {\n\t\t\tonClose?.();\n\t\t\tunMount?.();\n\t\t};\n\n\t\tconst unMount = renderNode(\n\t\t\t<HookModal\n\t\t\t\tref={ref}\n\t\t\t\tvisible\n\t\t\t\tclassName='i-preview'\n\t\t\t\tcustomized\n\t\t\t\thideShadow\n\t\t\t\t{...modalProps}\n\t\t\t\tchildren={\n\t\t\t\t\t<Content\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\titems={items}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tref.current?.update({ visible: false });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tfixed\n\t\t\t\tonClose={handleClose}\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn preview;\n}\n"],"mappings":";;;;;;AAQA,SAAwB,aAAa;CACpC,MAAM,MAAM,OAAqB,KAAK;CAEtC,MAAM,WAAW,WAAqB;EACrC,MAAM,EAAE,OAAO,YAAY,SAAS,GAAG,cAAc;EAErD,MAAM,oBAAoB;AACzB,cAAW;AACX,cAAW;;EAGZ,MAAM,UAAU,WACf,oBAAC,WAAD;GACM;GACL,SAAA;GACA,WAAU;GACV,YAAA;GACA,YAAA;GACA,GAAI;GACJ,UACC,oBAAC,SAAD;IACC,GAAI;IACG;IACP,eAAe;AACd,SAAI,SAAS,OAAO,EAAE,SAAS,OAAO,CAAC;;IAExC,CAAA;GAEF,OAAA;GACA,SAAS;GACT,CAAA,CACD;;AAGF,QAAO"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/usePreview/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport HookModal from \"../../components/modal/hookModal\";\nimport type { RefHookModal } from \"../../components/modal/type\";\nimport { renderNode } from \"../utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport type { IPreview } from \"./type\";\n\nexport default function usePreview() {\n\tconst ref = useRef<RefHookModal>(null);\n\n\tconst preview = (config: IPreview) => {\n\t\tconst { items, modalProps, onClose, ...restProps } = config;\n\n\t\tconst handleClose = () => {\n\t\t\tonClose?.();\n\t\t\tunMount?.();\n\t\t};\n\n\t\tconst unMount = renderNode(\n\t\t\t<HookModal\n\t\t\t\tref={ref}\n\t\t\t\tvisible\n\t\t\t\tclassName='i-preview'\n\t\t\t\tcustomized\n\t\t\t\thideShadow\n\t\t\t\t{...modalProps}\n\t\t\t\tchildren={\n\t\t\t\t\t<Content\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\titems={items}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tref.current?.update({ visible: false });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tfixed\n\t\t\t\tonClose={handleClose}\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn preview;\n}\n"],"mappings":";;;;;;;CAQA,MAAO,MAAA,OAA2B,KAAG;;EAGpC,MAAM,EAAA,OAAU,YAAS,SAAY,GAAC,cAAA;;AAGrC,cAAM;AACL,cAAW;;6BAIZ,oBAAA,WAAA;GACE;GACA,SAAA;GACA,WAAA;GACA,YAAA;GACA,YAAA;GACA,GAAA;GACA,UACA,oBAAA,SAAA;IACE,GAAA;IACI;IACJ,eAAY;AACZ,SAAA,SAAc,OAAC,EAAA,SAAA,OAAA,CAAA;;IAEd,CAAA;GAEH,OAAA;GACA,SAAA;GACA,CAAA,CACD"}
@@ -1,8 +1,8 @@
1
1
  import icon_default from "../../components/icon/index.js";
2
2
  import video_default from "../../components/video/index.js";
3
3
  import { TFileType } from "./type.js";
4
+ import { FeedOutlined } from "@ricons/material";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
- import FeedOutlined from "@ricons/material/es/FeedOutlined.js";
6
6
  //#region packages/js/usePreview/renderFile.tsx
7
7
  function renderFile(props) {
8
8
  const { name, suffix, type } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"renderFile.js","names":["Video","Icon"],"sources":["../../../../packages/js/usePreview/renderFile.tsx"],"sourcesContent":["import Icon from \"@p/components/icon\";\nimport Video from \"@p/components/video\";\nimport FeedOutlined from \"@ricons/material/es/FeedOutlined.js\";\nimport { TFileType, TPreviewItem } from \"./type\";\n\nexport default function renderFile(props: TPreviewItem) {\n\tconst { name, suffix, type } = props;\n\n\tswitch (type) {\n\t\tcase TFileType.IMAGE:\n\t\t\treturn <img src={props.src} />;\n\t\tcase TFileType.VIDEO:\n\t\t\treturn <Video {...props} />;\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div className='i-preview-unknown'>\n\t\t\t\t\t<Icon icon={<FeedOutlined />} size='3em' />\n\t\t\t\t\t<h5 className='mt-4'>{name || suffix || \"?\"}</h5>\n\t\t\t\t</div>\n\t\t\t);\n\t}\n}\n"],"mappings":";;;;;;AAKA,SAAwB,WAAW,OAAqB;CACvD,MAAM,EAAE,MAAM,QAAQ,SAAS;AAE/B,SAAQ,MAAR;EACC,KAAK,UAAU,MACd,QAAO,oBAAC,OAAD,EAAK,KAAK,MAAM,KAAO,CAAA;EAC/B,KAAK,UAAU,MACd,QAAO,oBAACA,eAAD,EAAO,GAAI,OAAS,CAAA;EAC5B,QACC,QACC,qBAAC,OAAD;GAAK,WAAU;aAAf,CACC,oBAACC,cAAD;IAAM,MAAM,oBAAC,cAAD,EAAgB,CAAA;IAAE,MAAK;IAAQ,CAAA,EAC3C,oBAAC,MAAD;IAAI,WAAU;cAAQ,QAAQ,UAAU;IAAS,CAAA,CAC5C"}
1
+ {"version":3,"file":"renderFile.js","names":["Video","Icon"],"sources":["../../../../packages/js/usePreview/renderFile.tsx"],"sourcesContent":["import Icon from \"@p/components/icon\";\nimport Video from \"@p/components/video\";\nimport { FeedOutlined } from \"@ricons/material\";\nimport { TFileType, TPreviewItem } from \"./type\";\n\nexport default function renderFile(props: TPreviewItem) {\n\tconst { name, suffix, type } = props;\n\n\tswitch (type) {\n\t\tcase TFileType.IMAGE:\n\t\t\treturn <img src={props.src} />;\n\t\tcase TFileType.VIDEO:\n\t\t\treturn <Video {...props} />;\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div className='i-preview-unknown'>\n\t\t\t\t\t<Icon icon={<FeedOutlined />} size='3em' />\n\t\t\t\t\t<h5 className='mt-4'>{name || suffix || \"?\"}</h5>\n\t\t\t\t</div>\n\t\t\t);\n\t}\n}\n"],"mappings":";;;;;;AAKA,SAAwB,WAAW,OAAqB;CACvD,MAAM,EAAE,MAAM,QAAQ,SAAS;AAE/B,SAAQ,MAAR;EACC,KAAK,UAAU,MACd,QAAO,oBAAC,OAAD,EAAK,KAAK,MAAM,KAAO,CAAA;EAC/B,KAAK,UAAU,MACd,QAAO,oBAACA,eAAD,EAAO,GAAI,OAAS,CAAA;EAC5B,QACC,QACC,qBAAC,OAAD;GAAK,WAAU;aAAf,CACC,oBAACC,cAAD;IAAM,MAAM,oBAAC,cAAD,EAAgB,CAAA;IAAE,MAAK;IAAQ,CAAA,EAC3C,oBAAC,MAAD;IAAI,WAAU;cAAQ,QAAQ,UAAU;IAAS,CAAA,CAC5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/useRipple/index.ts"],"sourcesContent":["import \"./ripple.css\";\n\nconst TIMEOUT = 500;\n\nconst useRipple = () => {\n\tif (!document) return;\n\tif (document.documentElement.dataset[\"iocaRipple\"]) return;\n\tdocument.documentElement.dataset[\"iocaRipple\"] = \"enable\";\n\n\tdocument.addEventListener(\"mousedown\", listener);\n};\n\nfunction listener(e: MouseEvent) {\n\tconst target = e.target as HTMLElement;\n\tconst parent = target.closest(\"[data-ripple]\") as HTMLElement;\n\n\tif (!target || !parent) return;\n\n\ttriggerRipple(parent, e);\n}\n\nfunction triggerRipple(target: HTMLElement, e: MouseEvent) {\n\tif (!document) return;\n\tconst [$box, $ripple] = createRipple();\n\tconst rect = target.getBoundingClientRect();\n\tconst size = Math.max(rect.width, rect.height) * 2;\n\n\t$ripple.style.cssText = `\n left: ${e.pageX - rect.left}px;\n top: ${e.pageY - rect.top}px;\n width: ${size}px;\n height: ${size}px;\n transition: all ${TIMEOUT / 1000}s;\n `;\n\ttarget.insertAdjacentElement(\"afterbegin\", $box);\n\ttarget.offsetHeight;\n\t$ripple.classList.add(\"i-ripple-active\");\n\n\tsetTimeout(() => {\n\t\t$box.remove();\n\t}, TIMEOUT);\n}\n\nfunction createRipple() {\n\tconst $box = document.createElement(\"SPAN\");\n\tconst $ripple = document.createElement(\"SPAN\");\n\n\t$box.className = \"i-ripple-container\";\n\t$ripple.className = \"i-ripple\";\n\n\t$box.append($ripple);\n\n\treturn [$box, $ripple];\n}\n\nexport default useRipple;\n"],"mappings":";AAEA,MAAM,UAAU;AAEhB,MAAM,kBAAkB;AACvB,KAAI,CAAC,SAAU;AACf,KAAI,SAAS,gBAAgB,QAAQ,cAAe;AACpD,UAAS,gBAAgB,QAAQ,gBAAgB;AAEjD,UAAS,iBAAiB,aAAa,SAAS;;AAGjD,SAAS,SAAS,GAAe;CAChC,MAAM,SAAS,EAAE;CACjB,MAAM,SAAS,OAAO,QAAQ,gBAAgB;AAE9C,KAAI,CAAC,UAAU,CAAC,OAAQ;AAExB,eAAc,QAAQ,EAAE;;AAGzB,SAAS,cAAc,QAAqB,GAAe;AAC1D,KAAI,CAAC,SAAU;CACf,MAAM,CAAC,MAAM,WAAW,cAAc;CACtC,MAAM,OAAO,OAAO,uBAAuB;CAC3C,MAAM,OAAO,KAAK,IAAI,KAAK,OAAO,KAAK,OAAO,GAAG;AAEjD,SAAQ,MAAM,UAAU;gBACT,EAAE,QAAQ,KAAK,KAAK;eACrB,EAAE,QAAQ,KAAK,IAAI;iBACjB,KAAK;kBACJ,KAAK;0BACG,UAAU,IAAK;;AAExC,QAAO,sBAAsB,cAAc,KAAK;AAChD,QAAO;AACP,SAAQ,UAAU,IAAI,kBAAkB;AAExC,kBAAiB;AAChB,OAAK,QAAQ;IACX,QAAQ;;AAGZ,SAAS,eAAe;CACvB,MAAM,OAAO,SAAS,cAAc,OAAO;CAC3C,MAAM,UAAU,SAAS,cAAc,OAAO;AAE9C,MAAK,YAAY;AACjB,SAAQ,YAAY;AAEpB,MAAK,OAAO,QAAQ;AAEpB,QAAO,CAAC,MAAM,QAAQ"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/useRipple/index.ts"],"sourcesContent":["import \"./ripple.css\";\n\nconst TIMEOUT = 500;\n\nconst useRipple = () => {\n\tif (!document) return;\n\tif (document.documentElement.dataset[\"iocaRipple\"]) return;\n\tdocument.documentElement.dataset[\"iocaRipple\"] = \"enable\";\n\n\tdocument.addEventListener(\"mousedown\", listener);\n};\n\nfunction listener(e: MouseEvent) {\n\tconst target = e.target as HTMLElement;\n\tconst parent = target.closest(\"[data-ripple]\") as HTMLElement;\n\n\tif (!target || !parent) return;\n\n\ttriggerRipple(parent, e);\n}\n\nfunction triggerRipple(target: HTMLElement, e: MouseEvent) {\n\tif (!document) return;\n\tconst [$box, $ripple] = createRipple();\n\tconst rect = target.getBoundingClientRect();\n\tconst size = Math.max(rect.width, rect.height) * 2;\n\n\t$ripple.style.cssText = `\n left: ${e.pageX - rect.left}px;\n top: ${e.pageY - rect.top}px;\n width: ${size}px;\n height: ${size}px;\n transition: all ${TIMEOUT / 1000}s;\n `;\n\ttarget.insertAdjacentElement(\"afterbegin\", $box);\n\ttarget.offsetHeight;\n\t$ripple.classList.add(\"i-ripple-active\");\n\n\tsetTimeout(() => {\n\t\t$box.remove();\n\t}, TIMEOUT);\n}\n\nfunction createRipple() {\n\tconst $box = document.createElement(\"SPAN\");\n\tconst $ripple = document.createElement(\"SPAN\");\n\n\t$box.className = \"i-ripple-container\";\n\t$ripple.className = \"i-ripple\";\n\n\t$box.append($ripple);\n\n\treturn [$box, $ripple];\n}\n\nexport default useRipple;\n"],"mappings":";AAAA,MAAM,UAAU;AAEhB,MAAM,kBAAa;;AAEnB,KAAK,SAAC,gBAAkB,QAAA,cAAA;AACvB,UAAK,gBAAgB,QAAA,gBAAA;AAErB,UAAS,iBAAgB,aAAS,SAAc;;AAGjD,SAAC,SAAA,GAAA;;CAED,MAAA,SAAS,OAAY,QAAU,gBAAE;AAEhC,KAAA,CAAK,UAAU,CAAA,OAAO;AAEtB,eAAc,QAAQ,EAAE;;AAGzB,SAAA,cAAA,QAAA,GAAA;;CAEA,MAAA,CAAQ,MAAC,WAAc,cAAQ;CAC9B,MAAK,OAAQ,OAAE,uBAAM;CACrB,MAAM,OAAO,KAAC,IAAQ,KAAE,OAAA,KAAc,OAAA,GAAA;AAEtC,SAAM,MAAO,UAAS;;eAER,EAAA,QAAU,KAAA,IAAA;iBACR,KAAC;kBACD,KAAM;0BACC,UAAA,IAAA;;AAEvB,QAAO,sBAAkB,cAAgB,KAAA;AACzC,QAAI;AACJ,SAAO,UAAA,IAAA,kBAAiC;AAExC,kBAAiB;;IAEjB,QAAW;;AAGZ,SAAA,eAAA;;CAEA,MAAA,UAAS,SAAe,cAAA,OAAA;AAEvB,MAAK,YAAW;;AAGhB,MAAC,OAAO,QAAY;AAEpB,QAAK,CAAA,MAAQ,QAAO"}
@@ -1,5 +1,5 @@
1
1
  import "react";
2
- import { createRoot } from "react-dom/client";
2
+ import { createRoot } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js";
3
3
  //#region packages/js/utils.ts
4
4
  function getPosition($source, $popup, options = {}) {
5
5
  const { refWindow, gap = 0, offset = 0, position = "top", align } = options;
@@ -1,8 +1,7 @@
1
1
  import ToTop from "./totop.js";
2
2
  import classNames from "classnames";
3
- import { debounce } from "radash";
3
+ import { debounce } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
4
4
  import { Children, cloneElement, useEffect, useMemo, useState } from "react";
5
- import "./index.css";
6
5
  import { jsx } from "react/jsx-runtime";
7
6
  //#region packages/components/affix/affix.tsx
8
7
  const Affix = (props) => {
@@ -1,7 +1,7 @@
1
1
  import button_default from "../button/index.js";
2
2
  import icon_default from "../icon/index.js";
3
3
  import classNames from "classnames";
4
- import SkipPreviousRound from "@ricons/material/es/SkipPreviousRound.js";
4
+ import { SkipPreviousRound } from "@ricons/material";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region packages/components/affix/totop.tsx
7
7
  function ToTop(props) {
@@ -1,6 +1,5 @@
1
1
  import classNames from "classnames";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import "./index.css";
4
3
  //#region packages/components/badge/badge.tsx
5
4
  const Badge = (props) => {
6
5
  const { content, contentClass, dot, dotSize, round, disabled, style, className, children } = props;
@@ -6,7 +6,6 @@ import Toggle from "./toggle.js";
6
6
  import classNames from "classnames";
7
7
  import { createElement, useEffect } from "react";
8
8
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
9
- import "./index.css";
10
9
  //#region packages/components/button/button.tsx
11
10
  const formatClass = ({ outline, flat, loading, disabled, size = "normal", block, round, square, secondary, className }) => classNames("i-btn", className, {
12
11
  "i-btn-outline": outline,
@@ -1,6 +1,5 @@
1
1
  import classNames from "classnames";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import "./index.css";
4
3
  //#region packages/components/card/card.tsx
5
4
  const Card = (props) => {
6
5
  const { hideShadow, border, className, children, header, footer, ...restProps } = props;
@@ -3,8 +3,6 @@ import CheckboxItem from "./item.js";
3
3
  import classNames from "classnames";
4
4
  import { useEffect, useMemo, useState } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import "../../css/input.css";
7
- import "./index.css";
8
6
  //#region packages/components/checkbox/checkbox.tsx
9
7
  function Checkbox(props) {
10
8
  const { label, name, options = [], value = "", type = "default", optionInline = true, labelInline, disabled, status = "normal", message, required, className, renderItem, onChange, ...restProps } = props;
@@ -2,10 +2,8 @@ import helpericon_default from "../utils/helpericon/index.js";
2
2
  import Item from "./item.js";
3
3
  import classNames from "classnames";
4
4
  import { Children, useMemo, useState } from "react";
5
+ import { MinusRound, PlusRound } from "@ricons/material";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import MinusRound from "@ricons/material/es/MinusRound.js";
7
- import PlusRound from "@ricons/material/es/PlusRound.js";
8
- import "./index.css";
9
7
  //#region packages/components/collapse/collapse.tsx
10
8
  const Collapse = (props) => {
11
9
  const { active, items, multiple, border, headerClickable, className, children, renderToggle = (active) => active ? /* @__PURE__ */ jsx(MinusRound, {}) : /* @__PURE__ */ jsx(PlusRound, {}), onCollapse, ...restProps } = props;
@@ -6,7 +6,6 @@ import Row, { Header } from "./row.js";
6
6
  import classNames from "classnames";
7
7
  import { useEffect, useMemo, useRef } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
- import "./index.css";
10
9
  //#region packages/components/datagrid/datagrid.tsx
11
10
  const Datagrid = (props) => {
12
11
  const { data = [], columns = [], border, striped, header = true, resizable, cellPadding = ".5em", cellEllipsis, empty = /* @__PURE__ */ jsx(Empty, {}), loading, height = "unset", style, className, renderLoading = () => /* @__PURE__ */ jsx(loading_default, {
@@ -1,7 +1,6 @@
1
1
  import classNames from "classnames";
2
2
  import { Fragment } from "react";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
- import "./index.css";
5
4
  //#region packages/components/description/description.tsx
6
5
  const Description = (props) => {
7
6
  const { data, colon, columns = 1, gap = ".5em", align, labelWidth, labelAlign, vertical, equally, style, className } = props;
@@ -4,7 +4,6 @@ import classNames from "classnames";
4
4
  import { useEffect, useRef, useTransition } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { createPortal } from "react-dom";
7
- import "./index.css";
8
7
  //#region packages/components/drawer/drawer.tsx
9
8
  function Drawer(props) {
10
9
  const { visible, position = "left", header, footer, backdropClosable = true, hideCloseButton, keepDOM, className, disabledEsc, children, onVisibleChange, onClose, ...restProps } = props;
@@ -3,7 +3,6 @@ import popup_default from "../popup/index.js";
3
3
  import Item from "./item.js";
4
4
  import { useEffect, useState } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
- import "./index.css";
7
6
  //#region packages/components/dropdown/dropdown.tsx
8
7
  const Dropdown = (props) => {
9
8
  const { visible, width, content, children, ...restProps } = props;
@@ -1,14 +1,8 @@
1
1
  import button_default from "../button/index.js";
2
2
  import icon_default from "../icon/index.js";
3
+ import { ClearAllRound, FormatBoldRound, FormatItalicRound, FormatUnderlinedRound, RedoRound, StrikethroughSRound, UndoRound } from "@ricons/material";
3
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
5
  import xss from "xss";
5
- import ClearAllRound from "@ricons/material/es/ClearAllRound.js";
6
- import FormatBoldRound from "@ricons/material/es/FormatBoldRound.js";
7
- import FormatItalicRound from "@ricons/material/es/FormatItalicRound.js";
8
- import FormatUnderlinedRound from "@ricons/material/es/FormatUnderlinedRound.js";
9
- import RedoRound from "@ricons/material/es/RedoRound.js";
10
- import StrikethroughSRound from "@ricons/material/es/StrikethroughSRound.js";
11
- import UndoRound from "@ricons/material/es/UndoRound.js";
12
6
  //#region packages/components/editor/controls.tsx
13
7
  const { escapeAttrValue } = xss;
14
8
  const exec = (a, b, c) => {
@@ -3,7 +3,6 @@ import classNames from "classnames";
3
3
  import { useImperativeHandle, useRef } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import xss from "xss";
6
- import "./index.css";
7
6
  //#region packages/components/editor/editor.tsx
8
7
  const Editor = (props) => {
9
8
  const { ref, width, height = "10em", placeholder, autosize, border = true, richPaste, controls = "simple", className, style, onInput, onPaste, onKeyDown, ...restProps } = props;
@@ -1,7 +1,6 @@
1
1
  import classNames from "classnames";
2
2
  import { useMemo } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
- import "./index.css";
5
4
  //#region packages/components/flex/flex.tsx
6
5
  const Flex = (props) => {
7
6
  const { as: Component = "div", align, justify, direction, wrap, gap, columns, className, style, ...restProps } = props;
@@ -1,6 +1,6 @@
1
1
  import Context from "./context.js";
2
2
  import { Children, cloneElement, isValidElement, useContext, useEffect, useMemo, useState } from "react";
3
- import PubSub from "pubsub-js";
3
+ import PubSub from "/Users/iann/codes/ioca-react/node_modules/.pnpm/pubsub-js@1.9.5/node_modules/pubsub-js/src/pubsub.js";
4
4
  //#region packages/components/form/field.tsx
5
5
  function Field(props) {
6
6
  const { name, required, children } = props;
@@ -5,8 +5,7 @@ import useConfig from "./useConfig.js";
5
5
  import classNames from "classnames";
6
6
  import { useEffect, useMemo } from "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
- import PubSub from "pubsub-js";
9
- import "./index.css";
8
+ import PubSub from "/Users/iann/codes/ioca-react/node_modules/.pnpm/pubsub-js@1.9.5/node_modules/pubsub-js/src/pubsub.js";
10
9
  //#region packages/components/form/form.tsx
11
10
  const Form = (props) => {
12
11
  const { form = {}, rules, initialValues, style, className, width, columns, itemMaxWidth, gap = "1em", labelInline, labelWidth, labelRight, children, onKeyDown, onEnter, onChange, ...restProps } = props;
@@ -1,6 +1,6 @@
1
- import { uid } from "radash";
1
+ import { uid } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
2
2
  import { useRef } from "react";
3
- import PubSub from "pubsub-js";
3
+ import PubSub from "/Users/iann/codes/ioca-react/node_modules/.pnpm/pubsub-js@1.9.5/node_modules/pubsub-js/src/pubsub.js";
4
4
  //#region packages/components/form/useForm.ts
5
5
  var IFormInstance = class {
6
6
  id;
@@ -1,6 +1,5 @@
1
1
  import classNames from "classnames";
2
2
  import { cloneElement, isValidElement } from "react";
3
- import "./index.css";
4
3
  //#region packages/components/icon/icon.tsx
5
4
  const Icon = (props) => {
6
5
  const { ref, icon, size = "1.425em", rotate, style, className, ...restProps } = props;
@@ -5,7 +5,6 @@ import List from "./list.js";
5
5
  import classNames from "classnames";
6
6
  import { useEffect, useRef } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
- import "./index.css";
9
8
  //#region packages/components/image/image.tsx
10
9
  const Image = (props) => {
11
10
  const { src, thumb, round, size, height, width, ratio, initSize, lazyload, fallback, fit, style, className, cover, coverClass, usePreview: previewable, onLoad, onError, onClick, ...restProps } = props;
@@ -5,10 +5,8 @@ import Range from "./range.js";
5
5
  import Textarea from "./textarea.js";
6
6
  import classNames from "classnames";
7
7
  import { useEffect, useMemo, useState } from "react";
8
+ import { VisibilityOffRound, VisibilityRound } from "@ricons/material";
8
9
  import { jsx, jsxs } from "react/jsx-runtime";
9
- import "../../css/input.css";
10
- import VisibilityOffRound from "@ricons/material/es/VisibilityOffRound.js";
11
- import VisibilityRound from "@ricons/material/es/VisibilityRound.js";
12
10
  //#region packages/components/input/input.tsx
13
11
  const Input = ((props) => {
14
12
  const { ref, type = "text", label, name, value = "", prepend, append, labelInline, className, status = "normal", message, tip, clear, width, hideVisible, border, underline, required, maxLength, onChange, onEnter, onClear, style, ...restProps } = props;
@@ -3,11 +3,8 @@ import helpericon_default from "../utils/helpericon/index.js";
3
3
  import InputContainer from "./container.js";
4
4
  import classNames from "classnames";
5
5
  import { useEffect, useState } from "react";
6
+ import { KeyboardDoubleArrowUpRound, MinusRound, PlusRound } from "@ricons/material";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import "../../css/input.css";
8
- import MinusRound from "@ricons/material/es/MinusRound.js";
9
- import PlusRound from "@ricons/material/es/PlusRound.js";
10
- import KeyboardDoubleArrowUpRound from "@ricons/material/es/KeyboardDoubleArrowUpRound.js";
11
8
  //#region packages/components/input/number.tsx
12
9
  const Number = (props) => {
13
10
  const { ref, label, name, value = "", labelInline, step = 1, min = -Infinity, max = Infinity, thousand, precision, type, className, width, status = "normal", append, border, prepend, disabled, message, tip, hideControl, showMax, style, onChange, onEnter, onInput, onBlur, ...restProps } = props;
@@ -3,11 +3,8 @@ import helpericon_default from "../utils/helpericon/index.js";
3
3
  import InputContainer from "./container.js";
4
4
  import classNames from "classnames";
5
5
  import { useEffect, useState } from "react";
6
+ import { MinusRound, PlusRound, SyncAltRound } from "@ricons/material";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import "../../css/input.css";
8
- import MinusRound from "@ricons/material/es/MinusRound.js";
9
- import PlusRound from "@ricons/material/es/PlusRound.js";
10
- import SyncAltRound from "@ricons/material/es/SyncAltRound.js";
11
8
  //#region packages/components/input/range.tsx
12
9
  const Range = (props) => {
13
10
  const { label, name, value, labelInline, min = -Infinity, max = Infinity, type, className, status = "normal", message, tip, append, prepend, step = 1, width, thousand, precision, hideControl, placeholder, border, autoSwitch, onChange, onBlur, style, ...restProps } = props;
@@ -2,7 +2,6 @@ import InputContainer from "./container.js";
2
2
  import classNames from "classnames";
3
3
  import { useEffect, useImperativeHandle, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
- import "../../css/input.css";
6
5
  //#region packages/components/input/textarea.tsx
7
6
  const Textarea = (props) => {
8
7
  const { ref, label, name, value = "", labelInline, className, status = "normal", message, tip, autoSize, border, width, style, onChange, onEnter, ...restProps } = props;
@@ -2,7 +2,6 @@ import Item from "./item.js";
2
2
  import classNames from "classnames";
3
3
  import { Children, cloneElement } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
- import "./index.css";
6
5
  //#region packages/components/list/list.tsx
7
6
  const List = (props) => {
8
7
  const { label, type, border, className, children, ...restProps } = props;