@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":"river.js","names":[],"sources":["../../../../packages/components/river/river.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { Children, useLayoutEffect, useMemo, useRef } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport \"./index.css\";\nimport { IRiver } from \"./type\";\n\nconst River = (props: IRiver) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tspeed = 1,\n\t\tpauseOnHover,\n\t\t...restProps\n\t} = props;\n\tconst trackRef = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<any>({\n\t\tinitialized: false,\n\t\toffset: 0,\n\t\tqueue: [],\n\t\tpaddingLeft: 0,\n\t\tpause: false,\n\t});\n\tconst rafRef = useRef<any>(null);\n\tconst sizeRef = useRef<number[]>([]);\n\tconst [items, length] = useMemo(() => {\n\t\tconst nodes = Children.toArray(children);\n\n\t\treturn [nodes, nodes.length];\n\t}, [children]);\n\n\tconst animate = () => {\n\t\tif (!trackRef.current) return;\n\n\t\tlet next = state.offset - speed;\n\t\tconst d = Math.abs(next);\n\t\tconst [head, ...restQueue] = state.queue;\n\t\tconst size = sizeRef.current.at(head % length) ?? 0;\n\n\t\tif (d > size) {\n\t\t\tconst tail = state.queue.at(-1);\n\t\t\tconst newQueue = [...restQueue, tail + 1];\n\n\t\t\tstate.queue = newQueue;\n\t\t\tnext += size;\n\t\t}\n\n\t\tstate.offset = next;\n\n\t\tif (!state.pause) {\n\t\t\trafRef.current = requestAnimationFrame(animate);\n\t\t}\n\t};\n\n\tconst cancelRaf = () => {\n\t\tif (!rafRef.current) return;\n\n\t\tcancelAnimationFrame(rafRef.current);\n\t\trafRef.current = null;\n\t};\n\n\tconst handleMouseOver = () => {\n\t\tif (!pauseOnHover) return;\n\n\t\tstate.pause = true;\n\t\tcancelRaf();\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tif (!pauseOnHover) return;\n\n\t\tstate.pause = false;\n\t\trafRef.current = requestAnimationFrame(animate);\n\t};\n\n\tuseLayoutEffect(() => {\n\t\tif (!trackRef.current) return;\n\n\t\tconst pa = trackRef.current.offsetParent as HTMLDivElement;\n\t\tconst parentWidth = pa.offsetWidth;\n\t\tconst nodes = Array.from(trackRef.current.childNodes);\n\t\tconst length = nodes.length;\n\n\t\tif (length < 2) return;\n\n\t\tlet contentWidth = trackRef.current.scrollWidth;\n\t\tlet count = 0;\n\t\tconst tails: number[] = [];\n\n\t\tconst sizes = nodes.map((node: any) => {\n\t\t\treturn node.offsetWidth;\n\t\t});\n\t\tsizeRef.current = sizes;\n\n\t\twhile (contentWidth < parentWidth) {\n\t\t\tconst w = sizes.at(count % length) ?? 0;\n\t\t\ttails.push(length + count);\n\t\t\tcontentWidth += w;\n\t\t\tcount += 1;\n\t\t}\n\n\t\tstate.offset = -1 * sizes.at(-1);\n\t\tstate.queue = [-1, ...sizes.map((_, i) => i), ...tails];\n\n\t\tanimate();\n\t\tstate.initialized = true;\n\n\t\treturn () => {\n\t\t\tstate.queue = [];\n\t\t\tstate.initialized = false;\n\t\t\tstate.offset = 0;\n\n\t\t\tcancelRaf();\n\t\t};\n\t}, [children]);\n\n\treturn (\n\t\t<div\n\t\t\t{...restProps}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-river\",\n\t\t\t\t{\n\t\t\t\t\t\"i-river-initialized\": state.initialized,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={trackRef}\n\t\t\t\tclassName='i-river-track'\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate3d(${state.offset}px, 0, 0)`,\n\t\t\t\t\tpaddingLeft: state.paddingLeft,\n\t\t\t\t}}\n\t\t\t\tonMouseOver={handleMouseOver}\n\t\t\t\tonMouseLeave={handleMouseLeave}\n\t\t\t>\n\t\t\t\t{!state.initialized &&\n\t\t\t\t\tChildren.map(children, (item, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div className='i-river-item' key={i}>\n\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t{state.initialized &&\n\t\t\t\t\tstate.queue.map((index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div className='i-river-item' key={index}>\n\t\t\t\t\t\t\t\t{items.at(index % items.length)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default River;\n"],"mappings":"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"}
1
+ {"version":3,"file":"river.js","names":[],"sources":["../../../../packages/components/river/river.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { Children, useLayoutEffect, useMemo, useRef } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport \"./index.css\";\nimport { IRiver } from \"./type\";\n\nconst River = (props: IRiver) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tspeed = 1,\n\t\tpauseOnHover,\n\t\t...restProps\n\t} = props;\n\tconst trackRef = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<any>({\n\t\tinitialized: false,\n\t\toffset: 0,\n\t\tqueue: [],\n\t\tpaddingLeft: 0,\n\t\tpause: false,\n\t});\n\tconst rafRef = useRef<any>(null);\n\tconst sizeRef = useRef<number[]>([]);\n\tconst [items, length] = useMemo(() => {\n\t\tconst nodes = Children.toArray(children);\n\n\t\treturn [nodes, nodes.length];\n\t}, [children]);\n\n\tconst animate = () => {\n\t\tif (!trackRef.current) return;\n\n\t\tlet next = state.offset - speed;\n\t\tconst d = Math.abs(next);\n\t\tconst [head, ...restQueue] = state.queue;\n\t\tconst size = sizeRef.current.at(head % length) ?? 0;\n\n\t\tif (d > size) {\n\t\t\tconst tail = state.queue.at(-1);\n\t\t\tconst newQueue = [...restQueue, tail + 1];\n\n\t\t\tstate.queue = newQueue;\n\t\t\tnext += size;\n\t\t}\n\n\t\tstate.offset = next;\n\n\t\tif (!state.pause) {\n\t\t\trafRef.current = requestAnimationFrame(animate);\n\t\t}\n\t};\n\n\tconst cancelRaf = () => {\n\t\tif (!rafRef.current) return;\n\n\t\tcancelAnimationFrame(rafRef.current);\n\t\trafRef.current = null;\n\t};\n\n\tconst handleMouseOver = () => {\n\t\tif (!pauseOnHover) return;\n\n\t\tstate.pause = true;\n\t\tcancelRaf();\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tif (!pauseOnHover) return;\n\n\t\tstate.pause = false;\n\t\trafRef.current = requestAnimationFrame(animate);\n\t};\n\n\tuseLayoutEffect(() => {\n\t\tif (!trackRef.current) return;\n\n\t\tconst pa = trackRef.current.offsetParent as HTMLDivElement;\n\t\tconst parentWidth = pa.offsetWidth;\n\t\tconst nodes = Array.from(trackRef.current.childNodes);\n\t\tconst length = nodes.length;\n\n\t\tif (length < 2) return;\n\n\t\tlet contentWidth = trackRef.current.scrollWidth;\n\t\tlet count = 0;\n\t\tconst tails: number[] = [];\n\n\t\tconst sizes = nodes.map((node: any) => {\n\t\t\treturn node.offsetWidth;\n\t\t});\n\t\tsizeRef.current = sizes;\n\n\t\twhile (contentWidth < parentWidth) {\n\t\t\tconst w = sizes.at(count % length) ?? 0;\n\t\t\ttails.push(length + count);\n\t\t\tcontentWidth += w;\n\t\t\tcount += 1;\n\t\t}\n\n\t\tstate.offset = -1 * sizes.at(-1);\n\t\tstate.queue = [-1, ...sizes.map((_, i) => i), ...tails];\n\n\t\tanimate();\n\t\tstate.initialized = true;\n\n\t\treturn () => {\n\t\t\tstate.queue = [];\n\t\t\tstate.initialized = false;\n\t\t\tstate.offset = 0;\n\n\t\t\tcancelRaf();\n\t\t};\n\t}, [children]);\n\n\treturn (\n\t\t<div\n\t\t\t{...restProps}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-river\",\n\t\t\t\t{\n\t\t\t\t\t\"i-river-initialized\": state.initialized,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={trackRef}\n\t\t\t\tclassName='i-river-track'\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate3d(${state.offset}px, 0, 0)`,\n\t\t\t\t\tpaddingLeft: state.paddingLeft,\n\t\t\t\t}}\n\t\t\t\tonMouseOver={handleMouseOver}\n\t\t\t\tonMouseLeave={handleMouseLeave}\n\t\t\t>\n\t\t\t\t{!state.initialized &&\n\t\t\t\t\tChildren.map(children, (item, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div className='i-river-item' key={i}>\n\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t{state.initialized &&\n\t\t\t\t\tstate.queue.map((index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div className='i-river-item' key={index}>\n\t\t\t\t\t\t\t\t{items.at(index % items.length)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default River;\n"],"mappings":";;;;;;CAMA,MAAM,EACL,UACC,WACA,QAAA,GACA,cACA,GAAA,cACG;CACJ,MAAI,WAAK,OAAA,KAAA;CACT,MAAM,QAAQ,YAAU;EACxB,aAAc;EACb,QAAA;EACA,OAAO,EAAE;EACT,aAAS;EACT,OAAA;EACA,CAAA;CACD,MAAE,SAAA,OAAA,KAAA;CACF,MAAM,UAAS,OAAiB,EAAA,CAAA;CAChC,MAAM,CAAA,OAAQ,UAAS,cAAa;EACpC,MAAO,QAAO,SAAU,QAAQ,SAAM;;IAGrC,CAAA,SAAQ,CAAK;;AAGd,MAAK,CAAC,SAAS,QAAO;;EAGrB,MAAI,IAAM,KAAC,IAAM,KAAO;EACxB,MAAM,CAAC,MAAG,GAAK,aAAS,MAAA;EACxB,MAAM,OAAO,QAAG,QAAa,GAAA,OAAM,OAAK,IAAA;;GAGxC,MAAO,OAAO,MAAA,MAAA,GAAA,GAAA;iBACA,CAAK,GAAC,WAAY,OAAA,EAAA;AAG/B,WAAM;;;mBAMP,QAAK,UAAa,sBAAA,QAAA;;;AAKnB,MAAK,CAAC,OAAA,QAAgB;;AAGrB,SAAA,UAAA;;;AAID,MAAK,CAAC,aAAA;;AAGL,aAAW;;;AAIZ,MAAK,CAAC,aAAA;;AAGL,SAAM,UAAQ,sBAAK,QAAA;;;AAIpB,MAAA,CAAA,SAAe,QAAO;EAGrB,MAAM,cAAA,SAAA,QAAA,aAAc;EACpB,MAAM,QAAA,MAAc,KAAG,SAAW,QAAA,WAAA;EAClC,MAAM,SAAQ,MAAM;;;EAKpB,IAAI,QAAA;EACJ,MAAI,QAAS,EAAA;;AAGb,UAAM,KAAO;IACZ;AACD,UAAE,UAAA;;GAGF,MAAO,IAAA,MAAA,GAAa,QAAE,OAAa,IAAA;AAClC,SAAM,KAAI,SAAS,MAAO;AAC1B,mBAAW;AACX,YAAA;;;AAID,QAAM,QAAQ;GAAC;GAAI,GAAC,MAAQ,KAAI,GAAA,MAAA,EAAA;GAAA,GAAA;GAAA;;AAGhC,QAAA,cAAS;;AAGT,SAAO,QAAM,EAAA;AACZ,SAAM,cAAU;AAChB,SAAM,SAAA;;;IAIN,CAAA,SAAA,CAAA;QAGF,oBAAA,OAAA;EACE,GAAA;EACA,WAAI,WACJ,WACC,EACA,uBAAA,MAAA,aACC,EACD,UACA;YAEF,qBAAA,OAAA;GACE,KAAA;GACA,WAAK;GACL,OAAA;IACA,WAAO,eAAA,MAAA,OAAA;IACN,aAAY,MAAA;IACZ;GACD,aAAC;GACD,cAAa;aARf,CAUC,CAAA,MAAA,eACE,SAAO,IAAA,WAAa,MAAA,MAAA;AACpB,WACC,oBAAA,OAAA;KAAM,WAAC;eACL;KACK,EAFA,EAEA;KAEN,EAAA,MAAA,eAGF,MAAM,MAAA,KAAW,UAAE;AACnB,WACC,oBAAA,OAAA;KAAM,WAAC;eACL,MAAI,GAAA,QAAa,MAAM,OAAM;KAC5B,EAFI,MAEJ;KAEF,CACA;;EACC,CAAA"}
@@ -3,9 +3,8 @@ import Empty from "../utils/empty/index.js";
3
3
  import list_default from "../list/index.js";
4
4
  import tag_default from "../tag/index.js";
5
5
  import classNames from "classnames";
6
+ import { CheckRound, SearchRound } from "@ricons/material";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import CheckRound from "@ricons/material/es/CheckRound.js";
8
- import SearchRound from "@ricons/material/es/SearchRound.js";
9
8
  //#region packages/components/select/options.tsx
10
9
  const Options = (props) => {
11
10
  const { value: val, options, filter, filterPlaceholder, multiple, empty = /* @__PURE__ */ jsx(Empty, {}), onSelect, onFilter } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","names":["Icon","List","Tag"],"sources":["../../../../packages/components/select/options.tsx"],"sourcesContent":["import CheckRound from \"@ricons/material/es/CheckRound.js\";\nimport SearchRound from \"@ricons/material/es/SearchRound.js\";\nimport classNames from \"classnames\";\nimport { TOption } from \"../../type\";\nimport Icon from \"../icon\";\nimport List from \"../list\";\nimport Tag from \"../tag\";\nimport Empty from \"../utils/empty\";\nimport { ISelectOptions } from \"./type\";\nexport const Options = (props: ISelectOptions) => {\n\tconst {\n\t\tvalue: val,\n\t\toptions,\n\t\tfilter,\n\t\tfilterPlaceholder,\n\t\tmultiple,\n\t\tempty = <Empty />,\n\t\tonSelect,\n\t\tonFilter,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-select-options\", {\n\t\t\t\t\"i-select-options-multiple\": multiple,\n\t\t\t})}\n\t\t>\n\t\t\t{filter && multiple && (\n\t\t\t\t<div className='i-select-filter'>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<SearchRound />}\n\t\t\t\t\t\tclassName='color-8 ml-8 my-auto'\n\t\t\t\t\t\tsize='1.2em'\n\t\t\t\t\t/>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\tclassName='i-input'\n\t\t\t\t\t\tplaceholder={filterPlaceholder}\n\t\t\t\t\t\tonChange={onFilter}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{options.length === 0 && empty}\n\n\t\t\t{options.map((option, i) => {\n\t\t\t\tconst { label, value, disabled } = option;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? val?.includes(value)\n\t\t\t\t\t: val === value;\n\n\t\t\t\treturn (\n\t\t\t\t\t<List.Item\n\t\t\t\t\t\tkey={(value as string) || i}\n\t\t\t\t\t\tactive={isActive}\n\t\t\t\t\t\ttype='option'\n\t\t\t\t\t\tonClick={() => onSelect?.(value, option)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{multiple && (\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={<CheckRound />}\n\t\t\t\t\t\t\t\tclassName='i-select-option-check'\n\t\t\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</List.Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport const activeOptions = (\n\toptions: TOption[] = [],\n\tvalue: any[] = [],\n\tmax = 3\n) => {\n\tconst total = options.flatMap((opt) =>\n\t\tvalue.includes(opt.value) ? [opt] : []\n\t);\n\n\tif (max >= total.length) return total;\n\n\tconst rest = total.length - max;\n\tconst after = total.slice(0, max);\n\tafter.push(rest as any);\n\n\treturn after;\n};\n\nexport const displayValue = (config) => {\n\tconst { options, value, maxDisplay, multiple, onSelect } = config;\n\n\tif (multiple) {\n\t\treturn activeOptions(options, value, maxDisplay).map((opt, i) => {\n\t\t\tif (typeof opt === \"number\") return <Tag key={i}>+{opt}</Tag>;\n\n\t\t\tconst { label, value } = opt;\n\n\t\t\treturn (\n\t\t\t\t<Tag\n\t\t\t\t\tkey={value as string}\n\t\t\t\t\thoverShowClose\n\t\t\t\t\tonClose={(e) => {\n\t\t\t\t\t\te?.stopPropagation();\n\t\t\t\t\t\tonSelect?.(value, opt);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t});\n\t}\n\n\treturn options.find((opt: TOption) => opt.value === value)?.label;\n};\n"],"mappings":";;;;;;;;;AASA,MAAa,WAAW,UAA0B;CACjD,MAAM,EACL,OAAO,KACP,SACA,QACA,mBACA,UACA,QAAQ,oBAAC,OAAD,EAAS,CAAA,EACjB,UACA,aACG;AAEJ,QACC,qBAAC,OAAD;EACC,WAAW,WAAW,oBAAoB,EACzC,6BAA6B,UAC7B,CAAC;YAHH;GAKE,UAAU,YACV,qBAAC,OAAD;IAAK,WAAU;cAAf,CACC,oBAACA,cAAD;KACC,MAAM,oBAAC,aAAD,EAAe,CAAA;KACrB,WAAU;KACV,MAAK;KACJ,CAAA,EACF,oBAAC,SAAD;KACC,MAAK;KACL,WAAU;KACV,aAAa;KACb,UAAU;KACT,CAAA,CACG;;GAGN,QAAQ,WAAW,KAAK;GAExB,QAAQ,KAAK,QAAQ,MAAM;IAC3B,MAAM,EAAE,OAAO,OAAO,aAAa;IACnC,MAAM,WAAW,WACd,KAAK,SAAS,MAAM,GACpB,QAAQ;AAEX,WACC,qBAACC,aAAK,MAAN;KAEC,QAAQ;KACR,MAAK;KACL,eAAe,WAAW,OAAO,OAAO;KAC9B;eALX,CAOE,YACA,oBAACD,cAAD;MACC,MAAM,oBAAC,YAAD,EAAc,CAAA;MACpB,WAAU;MACV,MAAK;MACJ,CAAA,EAEF,MACU;OAdL,SAAoB,EAcf;KAEZ;GACG;;;AAIR,MAAa,iBACZ,UAAqB,EAAE,EACvB,QAAe,EAAE,EACjB,MAAM,MACF;CACJ,MAAM,QAAQ,QAAQ,SAAS,QAC9B,MAAM,SAAS,IAAI,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CACtC;AAED,KAAI,OAAO,MAAM,OAAQ,QAAO;CAEhC,MAAM,OAAO,MAAM,SAAS;CAC5B,MAAM,QAAQ,MAAM,MAAM,GAAG,IAAI;AACjC,OAAM,KAAK,KAAY;AAEvB,QAAO;;AAGR,MAAa,gBAAgB,WAAW;CACvC,MAAM,EAAE,SAAS,OAAO,YAAY,UAAU,aAAa;AAE3D,KAAI,SACH,QAAO,cAAc,SAAS,OAAO,WAAW,CAAC,KAAK,KAAK,MAAM;AAChE,MAAI,OAAO,QAAQ,SAAU,QAAO,qBAACE,aAAD,EAAA,UAAA,CAAa,KAAE,IAAU,EAAA,EAAf,EAAe;EAE7D,MAAM,EAAE,OAAO,UAAU;AAEzB,SACC,oBAACA,aAAD;GAEC,gBAAA;GACA,UAAU,MAAM;AACf,OAAG,iBAAiB;AACpB,eAAW,OAAO,IAAI;;aAGtB;GACI,EARA,MAQA;GAEN;AAGH,QAAO,QAAQ,MAAM,QAAiB,IAAI,UAAU,MAAM,EAAE"}
1
+ {"version":3,"file":"options.js","names":["Icon","List","Tag"],"sources":["../../../../packages/components/select/options.tsx"],"sourcesContent":["import { CheckRound, SearchRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { TOption } from \"../../type\";\nimport Icon from \"../icon\";\nimport List from \"../list\";\nimport Tag from \"../tag\";\nimport Empty from \"../utils/empty\";\nimport { ISelectOptions } from \"./type\";\nexport const Options = (props: ISelectOptions) => {\n\tconst {\n\t\tvalue: val,\n\t\toptions,\n\t\tfilter,\n\t\tfilterPlaceholder,\n\t\tmultiple,\n\t\tempty = <Empty />,\n\t\tonSelect,\n\t\tonFilter,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-select-options\", {\n\t\t\t\t\"i-select-options-multiple\": multiple,\n\t\t\t})}\n\t\t>\n\t\t\t{filter && multiple && (\n\t\t\t\t<div className='i-select-filter'>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<SearchRound />}\n\t\t\t\t\t\tclassName='color-8 ml-8 my-auto'\n\t\t\t\t\t\tsize='1.2em'\n\t\t\t\t\t/>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\tclassName='i-input'\n\t\t\t\t\t\tplaceholder={filterPlaceholder}\n\t\t\t\t\t\tonChange={onFilter}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{options.length === 0 && empty}\n\n\t\t\t{options.map((option, i) => {\n\t\t\t\tconst { label, value, disabled } = option;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? val?.includes(value)\n\t\t\t\t\t: val === value;\n\n\t\t\t\treturn (\n\t\t\t\t\t<List.Item\n\t\t\t\t\t\tkey={(value as string) || i}\n\t\t\t\t\t\tactive={isActive}\n\t\t\t\t\t\ttype='option'\n\t\t\t\t\t\tonClick={() => onSelect?.(value, option)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{multiple && (\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={<CheckRound />}\n\t\t\t\t\t\t\t\tclassName='i-select-option-check'\n\t\t\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</List.Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport const activeOptions = (\n\toptions: TOption[] = [],\n\tvalue: any[] = [],\n\tmax = 3\n) => {\n\tconst total = options.flatMap((opt) =>\n\t\tvalue.includes(opt.value) ? [opt] : []\n\t);\n\n\tif (max >= total.length) return total;\n\n\tconst rest = total.length - max;\n\tconst after = total.slice(0, max);\n\tafter.push(rest as any);\n\n\treturn after;\n};\n\nexport const displayValue = (config) => {\n\tconst { options, value, maxDisplay, multiple, onSelect } = config;\n\n\tif (multiple) {\n\t\treturn activeOptions(options, value, maxDisplay).map((opt, i) => {\n\t\t\tif (typeof opt === \"number\") return <Tag key={i}>+{opt}</Tag>;\n\n\t\t\tconst { label, value } = opt;\n\n\t\t\treturn (\n\t\t\t\t<Tag\n\t\t\t\t\tkey={value as string}\n\t\t\t\t\thoverShowClose\n\t\t\t\t\tonClose={(e) => {\n\t\t\t\t\t\te?.stopPropagation();\n\t\t\t\t\t\tonSelect?.(value, opt);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t});\n\t}\n\n\treturn options.find((opt: TOption) => opt.value === value)?.label;\n};\n"],"mappings":";;;;;;;;AAQA,MAAa,WAAW,UAA0B;CACjD,MAAM,EACL,OAAO,KACP,SACA,QACA,mBACA,UACA,QAAQ,oBAAC,OAAD,EAAS,CAAA,EACjB,UACA,aACG;AAEJ,QACC,qBAAC,OAAD;EACC,WAAW,WAAW,oBAAoB,EACzC,6BAA6B,UAC7B,CAAC;YAHH;GAKE,UAAU,YACV,qBAAC,OAAD;IAAK,WAAU;cAAf,CACC,oBAACA,cAAD;KACC,MAAM,oBAAC,aAAD,EAAe,CAAA;KACrB,WAAU;KACV,MAAK;KACJ,CAAA,EACF,oBAAC,SAAD;KACC,MAAK;KACL,WAAU;KACV,aAAa;KACb,UAAU;KACT,CAAA,CACG;;GAGN,QAAQ,WAAW,KAAK;GAExB,QAAQ,KAAK,QAAQ,MAAM;IAC3B,MAAM,EAAE,OAAO,OAAO,aAAa;IACnC,MAAM,WAAW,WACd,KAAK,SAAS,MAAM,GACpB,QAAQ;AAEX,WACC,qBAACC,aAAK,MAAN;KAEC,QAAQ;KACR,MAAK;KACL,eAAe,WAAW,OAAO,OAAO;KAC9B;eALX,CAOE,YACA,oBAACD,cAAD;MACC,MAAM,oBAAC,YAAD,EAAc,CAAA;MACpB,WAAU;MACV,MAAK;MACJ,CAAA,EAEF,MACU;OAdL,SAAoB,EAcf;KAEZ;GACG;;;AAIR,MAAa,iBACZ,UAAqB,EAAE,EACvB,QAAe,EAAE,EACjB,MAAM,MACF;CACJ,MAAM,QAAQ,QAAQ,SAAS,QAC9B,MAAM,SAAS,IAAI,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CACtC;AAED,KAAI,OAAO,MAAM,OAAQ,QAAO;CAEhC,MAAM,OAAO,MAAM,SAAS;CAC5B,MAAM,QAAQ,MAAM,MAAM,GAAG,IAAI;AACjC,OAAM,KAAK,KAAY;AAEvB,QAAO;;AAGR,MAAa,gBAAgB,WAAW;CACvC,MAAM,EAAE,SAAS,OAAO,YAAY,UAAU,aAAa;AAE3D,KAAI,SACH,QAAO,cAAc,SAAS,OAAO,WAAW,CAAC,KAAK,KAAK,MAAM;AAChE,MAAI,OAAO,QAAQ,SAAU,QAAO,qBAACE,aAAD,EAAA,UAAA,CAAa,KAAE,IAAU,EAAA,EAAf,EAAe;EAE7D,MAAM,EAAE,OAAO,UAAU;AAEzB,SACC,oBAACA,aAAD;GAEC,gBAAA;GACA,UAAU,MAAM;AACf,OAAG,iBAAiB;AACpB,eAAW,OAAO,IAAI;;aAGtB;GACI,EARA,MAQA;GAEN;AAGH,QAAO,QAAQ,MAAM,QAAiB,IAAI,UAAU,MAAM,EAAE"}
@@ -3,10 +3,10 @@ import helpericon_default from "../utils/helpericon/index.js";
3
3
  import popup_default from "../popup/index.js";
4
4
  import { Options, displayValue } from "./options.js";
5
5
  import classNames from "classnames";
6
- import { debounce } from "radash";
6
+ import { debounce } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
7
7
  import { useEffect, useMemo, useState } from "react";
8
+ import { UnfoldMoreRound } from "@ricons/material";
8
9
  import { jsx, jsxs } from "react/jsx-runtime";
9
- import UnfoldMoreRound from "@ricons/material/es/UnfoldMoreRound.js";
10
10
  //#region packages/components/select/select.tsx
11
11
  const Select = (props) => {
12
12
  const { ref, type = "text", name, label, value = "", placeholder, options = [], multiple, prepend, append, labelInline, style, className, message, status = "normal", hideClear, hideArrow, maxDisplay, border, filter, tip, filterPlaceholder = "...", popupProps, onSelect, onChange, ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","names":[],"sources":["../../../../packages/components/select/select.tsx"],"sourcesContent":["import UnfoldMoreRound from \"@ricons/material/es/UnfoldMoreRound.js\";\nimport classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport { ChangeEvent, useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport { TOption } from \"../../type\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { Options, displayValue } from \"./options\";\nimport { ISelect } from \"./type\";\n\nconst Select = (props: ISelect) => {\n\tconst {\n\t\tref,\n\t\ttype = \"text\",\n\t\tname,\n\t\tlabel,\n\t\tvalue = \"\",\n\t\tplaceholder,\n\t\toptions = [],\n\t\tmultiple,\n\t\tprepend,\n\t\tappend,\n\t\tlabelInline,\n\t\tstyle,\n\t\tclassName,\n\t\tmessage,\n\t\tstatus = \"normal\",\n\t\thideClear,\n\t\thideArrow,\n\t\tmaxDisplay,\n\t\tborder,\n\t\tfilter,\n\t\ttip,\n\t\tfilterPlaceholder = \"...\",\n\t\tpopupProps,\n\t\tonSelect,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [filterValue, setFilterValue] = useState(\"\");\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst filterOptions = useMemo(() => {\n\t\tconst fv = filterValue;\n\t\tif (!fv || !filter) return formattedOptions;\n\n\t\tconst filterFn =\n\t\t\ttypeof filter === \"function\"\n\t\t\t\t? filter\n\t\t\t\t: (opt) => opt.value.includes(fv) || opt.label.includes(fv);\n\n\t\treturn formattedOptions.filter(filterFn);\n\t}, [formattedOptions, filter, filterValue]);\n\n\tconst changeValue = (v: any) => {\n\t\tsetSelectedValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst displayLabel = useMemo(() => {\n\t\tif (multiple) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst option = formattedOptions.find(\n\t\t\t(opt) => opt.value === selectedValue\n\t\t);\n\t\treturn option ? option.label : selectedValue;\n\t}, [selectedValue, formattedOptions]);\n\n\tconst handleSelect = (value: any, option?: TOption) => {\n\t\tonSelect?.(value, option);\n\n\t\tif (multiple) {\n\t\t\tconst values = [...(selectedValue as any[])];\n\t\t\tconst i = values.findIndex((v) => v === value);\n\n\t\t\ti > -1 ? values.splice(i, 1) : values.push(value);\n\t\t\tchangeValue(values as any);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetActive(false);\n\t\tchangeValue(value);\n\t};\n\n\tconst handleVisibleChange = (visible: boolean) => {\n\t\tsetActive(visible);\n\n\t\tif (!filter) return;\n\n\t\tsetFilterValue(\"\");\n\t};\n\n\tconst handleHelperClick = (e) => {\n\t\te.stopPropagation();\n\t\tsetActive(true);\n\t\tif (!active) return;\n\n\t\tchangeValue(multiple ? [] : \"\");\n\t};\n\n\tconst handleFilterChange = debounce(\n\t\t{ delay: 400 },\n\t\t(e: ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst v = e.target.value;\n\t\t\tsetFilterValue(v);\n\t\t}\n\t);\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tsetFilterValue(e.target.value);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\tconst hasValue = multiple\n\t\t? (selectedValue as any[]).length > 0\n\t\t: !!selectedValue;\n\tconst clearable = !hideClear && active && hasValue;\n\tconst text = message ?? tip;\n\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(\"i-input-label\", className, {\n\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{label && <span className='i-input-label-text'>{label}</span>}\n\n\t\t\t<Popup\n\t\t\t\tposition='bottom'\n\t\t\t\tarrow={false}\n\t\t\t\tfitSize\n\t\t\t\toffset={0}\n\t\t\t\t{...popupProps}\n\t\t\t\tvisible={active}\n\t\t\t\ttrigger='none'\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t\tcontent={\n\t\t\t\t\t<Options\n\t\t\t\t\t\toptions={filterOptions}\n\t\t\t\t\t\tvalue={selectedValue}\n\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\tfilter={!!filter}\n\t\t\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tonFilter={handleFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t\t\t\"i-input-focus\": active,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={() => setActive(true)}\n\t\t\t\t>\n\t\t\t\t\t{prepend}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\ttype='hidden'\n\t\t\t\t\t\tvalue={selectedValue}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{multiple ? (\n\t\t\t\t\t\thasValue ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-input i-select\", {\n\t\t\t\t\t\t\t\t\t\"i-select-multiple\": multiple,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{displayValue({\n\t\t\t\t\t\t\t\t\toptions: formattedOptions,\n\t\t\t\t\t\t\t\t\tvalue: selectedValue,\n\t\t\t\t\t\t\t\t\tmultiple,\n\t\t\t\t\t\t\t\t\tmaxDisplay,\n\t\t\t\t\t\t\t\t\tonSelect: handleSelect,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t{!multiple && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tvalue={active ? filterValue : displayLabel}\n\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\tplaceholder={displayLabel || placeholder}\n\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\treadOnly={!filter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive={!hideArrow}\n\t\t\t\t\t\ticon={clearable ? undefined : <UnfoldMoreRound />}\n\t\t\t\t\t\tonClick={handleHelperClick}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{append}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\n\t\t\t{text && <span className='i-input-message'>{text}</span>}\n\t\t</label>\n\t);\n};\n\nexport default Select;\n"],"mappings":"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"}
1
+ {"version":3,"file":"select.js","names":[],"sources":["../../../../packages/components/select/select.tsx"],"sourcesContent":["import { UnfoldMoreRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport { ChangeEvent, useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport { TOption } from \"../../type\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { Options, displayValue } from \"./options\";\nimport { ISelect } from \"./type\";\n\nconst Select = (props: ISelect) => {\n\tconst {\n\t\tref,\n\t\ttype = \"text\",\n\t\tname,\n\t\tlabel,\n\t\tvalue = \"\",\n\t\tplaceholder,\n\t\toptions = [],\n\t\tmultiple,\n\t\tprepend,\n\t\tappend,\n\t\tlabelInline,\n\t\tstyle,\n\t\tclassName,\n\t\tmessage,\n\t\tstatus = \"normal\",\n\t\thideClear,\n\t\thideArrow,\n\t\tmaxDisplay,\n\t\tborder,\n\t\tfilter,\n\t\ttip,\n\t\tfilterPlaceholder = \"...\",\n\t\tpopupProps,\n\t\tonSelect,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [filterValue, setFilterValue] = useState(\"\");\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst filterOptions = useMemo(() => {\n\t\tconst fv = filterValue;\n\t\tif (!fv || !filter) return formattedOptions;\n\n\t\tconst filterFn =\n\t\t\ttypeof filter === \"function\"\n\t\t\t\t? filter\n\t\t\t\t: (opt) => opt.value.includes(fv) || opt.label.includes(fv);\n\n\t\treturn formattedOptions.filter(filterFn);\n\t}, [formattedOptions, filter, filterValue]);\n\n\tconst changeValue = (v: any) => {\n\t\tsetSelectedValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst displayLabel = useMemo(() => {\n\t\tif (multiple) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst option = formattedOptions.find(\n\t\t\t(opt) => opt.value === selectedValue\n\t\t);\n\t\treturn option ? option.label : selectedValue;\n\t}, [selectedValue, formattedOptions]);\n\n\tconst handleSelect = (value: any, option?: TOption) => {\n\t\tonSelect?.(value, option);\n\n\t\tif (multiple) {\n\t\t\tconst values = [...(selectedValue as any[])];\n\t\t\tconst i = values.findIndex((v) => v === value);\n\n\t\t\ti > -1 ? values.splice(i, 1) : values.push(value);\n\t\t\tchangeValue(values as any);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetActive(false);\n\t\tchangeValue(value);\n\t};\n\n\tconst handleVisibleChange = (visible: boolean) => {\n\t\tsetActive(visible);\n\n\t\tif (!filter) return;\n\n\t\tsetFilterValue(\"\");\n\t};\n\n\tconst handleHelperClick = (e) => {\n\t\te.stopPropagation();\n\t\tsetActive(true);\n\t\tif (!active) return;\n\n\t\tchangeValue(multiple ? [] : \"\");\n\t};\n\n\tconst handleFilterChange = debounce(\n\t\t{ delay: 400 },\n\t\t(e: ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst v = e.target.value;\n\t\t\tsetFilterValue(v);\n\t\t}\n\t);\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tsetFilterValue(e.target.value);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\tconst hasValue = multiple\n\t\t? (selectedValue as any[]).length > 0\n\t\t: !!selectedValue;\n\tconst clearable = !hideClear && active && hasValue;\n\tconst text = message ?? tip;\n\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(\"i-input-label\", className, {\n\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{label && <span className='i-input-label-text'>{label}</span>}\n\n\t\t\t<Popup\n\t\t\t\tposition='bottom'\n\t\t\t\tarrow={false}\n\t\t\t\tfitSize\n\t\t\t\toffset={0}\n\t\t\t\t{...popupProps}\n\t\t\t\tvisible={active}\n\t\t\t\ttrigger='none'\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t\tcontent={\n\t\t\t\t\t<Options\n\t\t\t\t\t\toptions={filterOptions}\n\t\t\t\t\t\tvalue={selectedValue}\n\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\tfilter={!!filter}\n\t\t\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tonFilter={handleFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t\t\t\"i-input-focus\": active,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={() => setActive(true)}\n\t\t\t\t>\n\t\t\t\t\t{prepend}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\ttype='hidden'\n\t\t\t\t\t\tvalue={selectedValue}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{multiple ? (\n\t\t\t\t\t\thasValue ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-input i-select\", {\n\t\t\t\t\t\t\t\t\t\"i-select-multiple\": multiple,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{displayValue({\n\t\t\t\t\t\t\t\t\toptions: formattedOptions,\n\t\t\t\t\t\t\t\t\tvalue: selectedValue,\n\t\t\t\t\t\t\t\t\tmultiple,\n\t\t\t\t\t\t\t\t\tmaxDisplay,\n\t\t\t\t\t\t\t\t\tonSelect: handleSelect,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t{!multiple && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tvalue={active ? filterValue : displayLabel}\n\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\tplaceholder={displayLabel || placeholder}\n\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\treadOnly={!filter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive={!hideArrow}\n\t\t\t\t\t\ticon={clearable ? undefined : <UnfoldMoreRound />}\n\t\t\t\t\t\tonClick={handleHelperClick}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{append}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\n\t\t\t{text && <span className='i-input-message'>{text}</span>}\n\t\t</label>\n\t);\n};\n\nexport default Select;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"divider.js","names":[],"sources":["../../../../packages/components/step/divider.tsx"],"sourcesContent":["import \"./index.css\";\n\nexport default function Divider() {\n\treturn <i className='i-step-divider' />;\n}\n"],"mappings":";;AAEA,SAAwB,UAAU;AACjC,QAAO,oBAAC,KAAD,EAAG,WAAU,kBAAmB,CAAA"}
1
+ {"version":3,"file":"divider.js","names":[],"sources":["../../../../packages/components/step/divider.tsx"],"sourcesContent":["import \"./index.css\";\n\nexport default function Divider() {\n\treturn <i className='i-step-divider' />;\n}\n"],"mappings":";;AAAA,SAAoB,UAAA"}
@@ -1,7 +1,7 @@
1
1
  import Divider from "./divider.js";
2
2
  import classNames from "classnames";
3
+ import { CheckRound } from "@ricons/material";
3
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
- import CheckRound from "@ricons/material/es/CheckRound.js";
5
5
  //#region packages/components/step/item.tsx
6
6
  const STATUS = [
7
7
  "finished",
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","names":[],"sources":["../../../../packages/components/step/item.tsx"],"sourcesContent":["import CheckRound from \"@ricons/material/es/CheckRound.js\";\nimport classNames from \"classnames\";\nimport Divider from \"./divider\";\nimport { IStepItem } from \"./type\";\n\nconst STATUS = [\"finished\", \"active\", \"pending\"];\n\nfunction defaultRenderIcon(i: number, status: string) {\n\treturn (\n\t\t<span className='i-step-item-index'>\n\t\t\t{status === \"finished\" ? (\n\t\t\t\t<CheckRound style={{ width: \"1em\", height: \"1.5em\" }} />\n\t\t\t) : (\n\t\t\t\ti + 1\n\t\t\t)}\n\t\t</span>\n\t);\n}\n\nfunction Item(props: IStepItem) {\n\tconst {\n\t\tindex = 0,\n\t\tactive = 0,\n\t\trenderIcon = defaultRenderIcon,\n\t\ttitle,\n\t\tvertical,\n\t\tline = <Divider />,\n\t\tasList,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\tconst status = STATUS[index === active ? 1 : index < active ? 0 : 2];\n\n\tconst handleClick = () => {\n\t\tonClick?.(index);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step-item\",\n\t\t\t\t{\n\t\t\t\t\t[`i-step-item-${status}`]: !asList,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t{vertical ? (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-left'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className='i-step-item-right'>\n\t\t\t\t\t\t<div className='i-step-item-title'>{title}</div>\n\t\t\t\t\t\t{children && (\n\t\t\t\t\t\t\t<div className='i-step-item-content'>\n\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-title'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\n\t\t\t\t\t\t<span>{title}</span>\n\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t{children && (\n\t\t\t\t\t\t<div className='i-step-item-content'>{children}</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Item;\n"],"mappings":";;;;;AAKA,MAAM,SAAS;CAAC;CAAY;CAAU;CAAU;AAEhD,SAAS,kBAAkB,GAAW,QAAgB;AACrD,QACC,oBAAC,QAAD;EAAM,WAAU;YACd,WAAW,aACX,oBAAC,YAAD,EAAY,OAAO;GAAE,OAAO;GAAO,QAAQ;GAAS,EAAI,CAAA,GAExD,IAAI;EAEC,CAAA;;AAIT,SAAS,KAAK,OAAkB;CAC/B,MAAM,EACL,QAAQ,GACR,SAAS,GACT,aAAa,mBACb,OACA,UACA,OAAO,oBAAC,SAAD,EAAW,CAAA,EAClB,QACA,OACA,WACA,UACA,YACG;CACJ,MAAM,SAAS,OAAO,UAAU,SAAS,IAAI,QAAQ,SAAS,IAAI;CAElE,MAAM,oBAAoB;AACzB,YAAU,MAAM;;AAGjB,QACC,oBAAC,OAAD;EACQ;EACP,WAAW,WACV,eACA,GACE,eAAe,WAAW,CAAC,QAC5B,EACD,UACA;EACD,SAAS;YAER,WACA,qBAAA,UAAA,EAAA,UAAA,CACC,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,aAAa,OAAO,OAAO,EAC3B,KACI;MACN,qBAAC,OAAD;GAAK,WAAU;aAAf,CACC,oBAAC,OAAD;IAAK,WAAU;cAAqB;IAAY,CAAA,EAC/C,YACA,oBAAC,OAAD;IAAK,WAAU;IACb;IACI,CAAA,CAEF;KACJ,EAAA,CAAA,GAEH,qBAAA,UAAA,EAAA,UAAA,CACC,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,aAAa,OAAO,OAAO;IAE5B,oBAAC,QAAD,EAAA,UAAO,OAAa,CAAA;IAEnB;IACI;MACL,YACA,oBAAC,OAAD;GAAK,WAAU;GAAuB;GAAe,CAAA,CAEpD,EAAA,CAAA;EAEC,CAAA"}
1
+ {"version":3,"file":"item.js","names":[],"sources":["../../../../packages/components/step/item.tsx"],"sourcesContent":["import { CheckRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport Divider from \"./divider\";\nimport { IStepItem } from \"./type\";\n\nconst STATUS = [\"finished\", \"active\", \"pending\"];\n\nfunction defaultRenderIcon(i: number, status: string) {\n\treturn (\n\t\t<span className='i-step-item-index'>\n\t\t\t{status === \"finished\" ? (\n\t\t\t\t<CheckRound style={{ width: \"1em\", height: \"1.5em\" }} />\n\t\t\t) : (\n\t\t\t\ti + 1\n\t\t\t)}\n\t\t</span>\n\t);\n}\n\nfunction Item(props: IStepItem) {\n\tconst {\n\t\tindex = 0,\n\t\tactive = 0,\n\t\trenderIcon = defaultRenderIcon,\n\t\ttitle,\n\t\tvertical,\n\t\tline = <Divider />,\n\t\tasList,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\tconst status = STATUS[index === active ? 1 : index < active ? 0 : 2];\n\n\tconst handleClick = () => {\n\t\tonClick?.(index);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step-item\",\n\t\t\t\t{\n\t\t\t\t\t[`i-step-item-${status}`]: !asList,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t{vertical ? (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-left'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className='i-step-item-right'>\n\t\t\t\t\t\t<div className='i-step-item-title'>{title}</div>\n\t\t\t\t\t\t{children && (\n\t\t\t\t\t\t\t<div className='i-step-item-content'>\n\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-title'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\n\t\t\t\t\t\t<span>{title}</span>\n\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t{children && (\n\t\t\t\t\t\t<div className='i-step-item-content'>{children}</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Item;\n"],"mappings":";;;;;AAKA,MAAM,SAAS;CAAC;CAAY;CAAU;CAAU;AAEhD,SAAS,kBAAkB,GAAW,QAAgB;AACrD,QACC,oBAAC,QAAD;EAAM,WAAU;YACd,WAAW,aACX,oBAAC,YAAD,EAAY,OAAO;GAAE,OAAO;GAAO,QAAQ;GAAS,EAAI,CAAA,GAExD,IAAI;EAEC,CAAA;;AAIT,SAAS,KAAK,OAAkB;CAC/B,MAAM,EACL,QAAQ,GACR,SAAS,GACT,aAAa,mBACb,OACA,UACA,OAAO,oBAAC,SAAD,EAAW,CAAA,EAClB,QACA,OACA,WACA,UACA,YACG;CACJ,MAAM,SAAS,OAAO,UAAU,SAAS,IAAI,QAAQ,SAAS,IAAI;CAElE,MAAM,oBAAoB;AACzB,YAAU,MAAM;;AAGjB,QACC,oBAAC,OAAD;EACQ;EACP,WAAW,WACV,eACA,GACE,eAAe,WAAW,CAAC,QAC5B,EACD,UACA;EACD,SAAS;YAER,WACA,qBAAA,UAAA,EAAA,UAAA,CACC,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,aAAa,OAAO,OAAO,EAC3B,KACI;MACN,qBAAC,OAAD;GAAK,WAAU;aAAf,CACC,oBAAC,OAAD;IAAK,WAAU;cAAqB;IAAY,CAAA,EAC/C,YACA,oBAAC,OAAD;IAAK,WAAU;IACb;IACI,CAAA,CAEF;KACJ,EAAA,CAAA,GAEH,qBAAA,UAAA,EAAA,UAAA,CACC,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,aAAa,OAAO,OAAO;IAE5B,oBAAC,QAAD,EAAA,UAAO,OAAa,CAAA;IAEnB;IACI;MACL,YACA,oBAAC,OAAD;GAAK,WAAU;GAAuB;GAAe,CAAA,CAEpD,EAAA,CAAA;EAEC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"step.js","names":[],"sources":["../../../../packages/components/step/step.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { Children, ReactNode, useMemo } from \"react\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IStep } from \"./type\";\n\nconst Step = (props: IStep) => {\n\tconst {\n\t\tactive = 0,\n\t\tvertical,\n\t\trenderIcon,\n\t\tline,\n\t\tstyle,\n\t\tasList,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\n\tconst steps = useMemo(() => {\n\t\tconst nodes: ReactNode[] = [];\n\t\tlet index = 0;\n\n\t\tChildren.map(children, (el: any) => {\n\t\t\tif (!el || el.type !== Item) return;\n\n\t\t\tconst { props: elProps } = el;\n\n\t\t\tnodes.push({\n\t\t\t\t...el,\n\t\t\t\tprops: {\n\t\t\t\t\trenderIcon,\n\t\t\t\t\tline,\n\t\t\t\t\tonClick,\n\t\t\t\t\t...elProps,\n\t\t\t\t\tvertical,\n\t\t\t\t\tactive,\n\t\t\t\t\tasList,\n\t\t\t\t\tindex: index++,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\treturn nodes;\n\t}, [active, children]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step\",\n\t\t\t\t{ \"i-step-vertical\": vertical },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{steps}\n\t\t</div>\n\t);\n};\n\nStep.Item = Item;\n\nexport default Step;\n"],"mappings":";;;;;AAMA,MAAM,QAAQ,UAAiB;CAC9B,MAAM,EACL,SAAS,GACT,UACA,YACA,MACA,OACA,QACA,WACA,UACA,YACG;CAEJ,MAAM,QAAQ,cAAc;EAC3B,MAAM,QAAqB,EAAE;EAC7B,IAAI,QAAQ;AAEZ,WAAS,IAAI,WAAW,OAAY;AACnC,OAAI,CAAC,MAAM,GAAG,SAAS,KAAM;GAE7B,MAAM,EAAE,OAAO,YAAY;AAE3B,SAAM,KAAK;IACV,GAAG;IACH,OAAO;KACN;KACA;KACA;KACA,GAAG;KACH;KACA;KACA;KACA,OAAO;KACP;IACD,CAAC;IACD;AAEF,SAAO;IACL,CAAC,QAAQ,SAAS,CAAC;AAEtB,QACC,oBAAC,OAAD;EACC,WAAW,WACV,UACA,EAAE,mBAAmB,UAAU,EAC/B,UACA;EACM;YAEN;EACG,CAAA;;AAIP,KAAK,OAAO"}
1
+ {"version":3,"file":"step.js","names":[],"sources":["../../../../packages/components/step/step.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { Children, ReactNode, useMemo } from \"react\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IStep } from \"./type\";\n\nconst Step = (props: IStep) => {\n\tconst {\n\t\tactive = 0,\n\t\tvertical,\n\t\trenderIcon,\n\t\tline,\n\t\tstyle,\n\t\tasList,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\n\tconst steps = useMemo(() => {\n\t\tconst nodes: ReactNode[] = [];\n\t\tlet index = 0;\n\n\t\tChildren.map(children, (el: any) => {\n\t\t\tif (!el || el.type !== Item) return;\n\n\t\t\tconst { props: elProps } = el;\n\n\t\t\tnodes.push({\n\t\t\t\t...el,\n\t\t\t\tprops: {\n\t\t\t\t\trenderIcon,\n\t\t\t\t\tline,\n\t\t\t\t\tonClick,\n\t\t\t\t\t...elProps,\n\t\t\t\t\tvertical,\n\t\t\t\t\tactive,\n\t\t\t\t\tasList,\n\t\t\t\t\tindex: index++,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\treturn nodes;\n\t}, [active, children]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step\",\n\t\t\t\t{ \"i-step-vertical\": vertical },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{steps}\n\t\t</div>\n\t);\n};\n\nStep.Item = Item;\n\nexport default Step;\n"],"mappings":";;;;;;CAMA,MAAM,EACL,SAAM,GACL,UACA,YACA,MACA,OACA,QACA,WACA,UACA,YACA;;EAGD,MAAM,QAAsB,EAAA;EAC3B,IAAA,QAAY;;AAGZ,OAAA,CAAA,MAAY,GAAC,SAAW,KAAI;;;IAK3B,GAAA;IACC,OAAK;KACL;KACC;KACA;KACA,GAAA;KACA;KACA;KACA;KACA,OAAM;KACN;IACD,CAAC;IACD;;IAGF,CAAA,QAAO,SAAK,CAAA;QAGb,oBAAA,OAAA;EACE,WAAA,WACA,UACC,EAAE,mBAAM,UAAA,EACR,UACA;EACA;YAEF;EACE,CAAA"}
@@ -4,9 +4,8 @@ import { clamp } from "../../js/utils.js";
4
4
  import Item from "./item.js";
5
5
  import classNames from "classnames";
6
6
  import { Children, useEffect, useImperativeHandle, useMemo, useRef } from "react";
7
+ import { KeyboardArrowLeftRound, KeyboardArrowRightRound } from "@ricons/material";
7
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
- import KeyboardArrowLeftRound from "@ricons/material/es/KeyboardArrowLeftRound.js";
9
- import KeyboardArrowRightRound from "@ricons/material/es/KeyboardArrowRightRound.js";
10
9
  //#region packages/components/swiper/swiper.tsx
11
10
  const Swiper = ((props) => {
12
11
  const { ref, type = "normal", initial = 0, display = 1, scroll = 1, loop = true, vertical, prev = /* @__PURE__ */ jsx(icon_default, {
@@ -1 +1 @@
1
- {"version":3,"file":"swiper.js","names":[],"sources":["../../../../packages/components/swiper/swiper.tsx"],"sourcesContent":["import KeyboardArrowLeftRound from \"@ricons/material/es/KeyboardArrowLeftRound.js\";\nimport KeyboardArrowRightRound from \"@ricons/material/es/KeyboardArrowRightRound.js\";\nimport classNames from \"classnames\";\nimport {\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../../js/hooks\";\nimport { clamp } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { CompositionSwiper, ISwiper } from \"./type\";\n\nconst Swiper = ((props: ISwiper) => {\n\tconst {\n\t\tref,\n\t\ttype = \"normal\",\n\t\tinitial = 0,\n\t\tdisplay = 1,\n\t\tscroll = 1,\n\t\tloop = true,\n\t\tvertical,\n\t\tprev = <Icon icon={<KeyboardArrowLeftRound />} size='2em' />,\n\t\tnext = <Icon icon={<KeyboardArrowRightRound />} size='2em' />,\n\t\tduration = 600,\n\t\tinterval = 3000,\n\t\tautoplay,\n\t\tpauseOnHover,\n\t\tarrow = true,\n\t\treverse,\n\t\tdraggable,\n\t\tdragOffset = 40,\n\t\tgap = 0,\n\t\titemHeight,\n\t\tindicator,\n\t\tfixedIndicator,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\trenderIndicator,\n\t\tonBeforeSwipe,\n\t\tonAfterSwipe,\n\t\tonItemClick,\n\t} = props;\n\n\tconst listRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst transition = `all ${duration / 1000}s`;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\tswipable: true,\n\t\ttransition: type === \"fade\" ? \"none\" : transition,\n\t\tdragStart: 0,\n\t\tdragging: false,\n\t\tinitialized: false,\n\t});\n\n\tconst items = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type !== Item) return;\n\n\t\t\treturn node;\n\t\t});\n\t}, [children]);\n\n\tconst [displayItems, extra, size, total, listSize] = useMemo(() => {\n\t\tconst extra =\n\t\t\ttype === \"normal\" && loop && items.length > display\n\t\t\t\t? display + 1\n\t\t\t\t: 0;\n\t\tlet list: any = [];\n\n\t\tif (extra <= 0) {\n\t\t\tlist = [...items];\n\t\t} else {\n\t\t\tconst head = items.slice(0, extra);\n\t\t\tconst tail = items.slice(-extra);\n\t\t\tlist = [...tail, ...items, ...head];\n\t\t}\n\n\t\tconst listSize = `${(list.length / display) * 100}%`;\n\n\t\treturn [list, extra, items.length, list.length, listSize];\n\t}, [display, loop, type, items]);\n\n\tconst offsetPercent = useMemo(\n\t\t() => (-100 * (state.current + extra)) / total,\n\t\t[state.current, total]\n\t);\n\n\tconst position = useMemo(() => {\n\t\tif (size <= display || type === \"fade\") return;\n\n\t\tconst offset = vertical\n\t\t\t? `0, ${offsetPercent}%`\n\t\t\t: `${offsetPercent}%, 0`;\n\t\treturn `translate3d(${offset}, 0)`;\n\t}, [offsetPercent, vertical, display, size, type]);\n\n\tconst trackStyle = useMemo(() => {\n\t\tif (!vertical || !itemHeight) return;\n\n\t\treturn {\n\t\t\theight: itemHeight * display,\n\t\t};\n\t}, [vertical, itemHeight, display]);\n\n\tconst indicatorsLoop = useMemo(() => {\n\t\treturn Array.from({\n\t\t\tlength: Math.ceil((size - display) / scroll) + 1,\n\t\t});\n\t}, [loop, indicator]);\n\n\tconst clearTimer = () => {\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t};\n\n\tconst swipeTo = (i: number) => {\n\t\tif (!state.swipable || i === state.current) return;\n\t\tstate.swipable = false;\n\t\tonBeforeSwipe?.(state.current);\n\n\t\tlet reset = false;\n\t\tlet next = i;\n\t\tconst lastDisplay = size - display;\n\n\t\tif (loop) {\n\t\t\tif (i > lastDisplay) {\n\t\t\t\treset = true;\n\t\t\t\ti = size;\n\t\t\t\tnext = 0;\n\t\t\t} else if (i < 0) {\n\t\t\t\treset = true;\n\t\t\t\ti = -display;\n\t\t\t\tnext = lastDisplay;\n\t\t\t}\n\t\t} else {\n\t\t\tnext = clamp(next, 0, lastDisplay);\n\t\t\ti = next;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.swipable = true;\n\t\t}, duration + 32);\n\n\t\tif (type === \"fade\") {\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\treturn;\n\t\t}\n\n\t\tstate.current = i;\n\n\t\tif (!reset) {\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tonAfterSwipe?.(next);\n\t\t\t}, duration + 12);\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.transition = \"none\";\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.transition = transition;\n\t\t\t}, 60);\n\t\t}, duration + 20);\n\t};\n\tconst swipeNext = () => {\n\t\tswipeTo(reverse ? state.current - scroll : state.current + scroll);\n\t};\n\n\tconst swipePrev = () => {\n\t\tswipeTo(reverse ? state.current + scroll : state.current - scroll);\n\t};\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!draggable || !state.swipable || type === \"fade\") return;\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tObject.assign(state, {\n\t\t\tdragStart: vertical ? e.clientY : e.clientX,\n\t\t\tdragging: true,\n\t\t\ttransition: \"none\",\n\t\t});\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst offset =\n\t\t\t((dragEnd - state.dragStart) * 61.8) /\n\t\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] +\n\t\t\toffsetPercent;\n\n\t\tlistRef.current.style.transform = `translate3d(${\n\t\t\tvertical ? `0, ${offset}%` : `${offset}%, 0`\n\t\t}, 0)`;\n\t};\n\n\tconst handleMouseUp = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\n\t\tif (e.changedTouches) {\n\t\t\te = e.changedTouches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst part =\n\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] / total;\n\t\tconst offset = (dragEnd - state.dragStart) * 0.618;\n\t\tconst absOffset = Math.abs(offset);\n\n\t\tif (absOffset > dragOffset) {\n\t\t\tconst base = Math.floor(absOffset / part);\n\t\t\tconst mod = (absOffset % part) - dragOffset > 0 ? 1 : 0;\n\t\t\tconst p = base + mod;\n\n\t\t\tlet to = state.current + (offset > 0 ? -p : p);\n\n\t\t\tswipeTo(to);\n\t\t}\n\n\t\tlistRef.current.style.transform = position || \"\";\n\n\t\tObject.assign(state, {\n\t\t\tdragging: false,\n\t\t\ttransition,\n\t\t});\n\t};\n\n\tconst handleMouseOver = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tswipeTo,\n\t\tswipeNext,\n\t\tswipePrev,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (!autoplay) return;\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\n\t\treturn () => {\n\t\t\tclearTimeout(timerRef.current);\n\t\t\ttimerRef.current = null;\n\t\t};\n\t}, [autoplay, interval]);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-swiper\",\n\t\t\t\t{\n\t\t\t\t\t\"i-swiper-vertical\": vertical,\n\t\t\t\t\t\"i-swiper-initialized\": state.initialized,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName='i-swiper-track'\n\t\t\t\tstyle={trackStyle}\n\t\t\t\tonMouseOver={handleMouseOver}\n\t\t\t\tonMouseLeave={handleMouseLeave}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={listRef}\n\t\t\t\t\tclassName={classNames(\"i-swiper-list\", {\n\t\t\t\t\t\t\"i-swiper-fade\": type === \"fade\",\n\t\t\t\t\t})}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t[vertical ? \"height\" : \"width\"]: listSize,\n\t\t\t\t\t\ttransform: position,\n\t\t\t\t\t\ttransition: state.transition,\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\t>\n\t\t\t\t\t{displayItems.map((item, i) => {\n\t\t\t\t\t\tconst { props: itemProps } = item;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Item\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\titemIndex={(i - extra + size) % size}\n\t\t\t\t\t\t\t\tactive={i - extra === state.current}\n\t\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\t\tgap={gap}\n\t\t\t\t\t\t\t\ttransition={transition}\n\t\t\t\t\t\t\t\titemHeight={itemHeight}\n\t\t\t\t\t\t\t\tvertical={vertical}\n\t\t\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\t\t\t{...itemProps}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\n\t\t\t\t{arrow && size > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(loop || state.current !== 0) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-prev'\n\t\t\t\t\t\t\t\tonClick={swipePrev}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{prev}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(loop || state.current < size - display) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-next'\n\t\t\t\t\t\t\t\tonClick={swipeNext}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{next}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{indicator && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-swiper-indicators\", {\n\t\t\t\t\t\t\"i-swiper-indicators-fixed\": fixedIndicator,\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{indicatorsLoop.map((_, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-swiper-indicator\", {\n\t\t\t\t\t\t\t\t\t\"i-indicator-active\":\n\t\t\t\t\t\t\t\t\t\ti ===\n\t\t\t\t\t\t\t\t\t\tMath[loop ? \"floor\" : \"ceil\"](\n\t\t\t\t\t\t\t\t\t\t\t((state.current + size) % size) /\n\t\t\t\t\t\t\t\t\t\t\t\tscroll\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => swipeTo(i * scroll)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderIndicator?.(i)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}) as CompositionSwiper;\n\nSwiper.Item = Item;\n\nexport default Swiper;\n"],"mappings":"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"}
1
+ {"version":3,"file":"swiper.js","names":[],"sources":["../../../../packages/components/swiper/swiper.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport {\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../../js/hooks\";\nimport { clamp } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { CompositionSwiper, ISwiper } from \"./type\";\n\nconst Swiper = ((props: ISwiper) => {\n\tconst {\n\t\tref,\n\t\ttype = \"normal\",\n\t\tinitial = 0,\n\t\tdisplay = 1,\n\t\tscroll = 1,\n\t\tloop = true,\n\t\tvertical,\n\t\tprev = <Icon icon={<KeyboardArrowLeftRound />} size='2em' />,\n\t\tnext = <Icon icon={<KeyboardArrowRightRound />} size='2em' />,\n\t\tduration = 600,\n\t\tinterval = 3000,\n\t\tautoplay,\n\t\tpauseOnHover,\n\t\tarrow = true,\n\t\treverse,\n\t\tdraggable,\n\t\tdragOffset = 40,\n\t\tgap = 0,\n\t\titemHeight,\n\t\tindicator,\n\t\tfixedIndicator,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\trenderIndicator,\n\t\tonBeforeSwipe,\n\t\tonAfterSwipe,\n\t\tonItemClick,\n\t} = props;\n\n\tconst listRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst transition = `all ${duration / 1000}s`;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\tswipable: true,\n\t\ttransition: type === \"fade\" ? \"none\" : transition,\n\t\tdragStart: 0,\n\t\tdragging: false,\n\t\tinitialized: false,\n\t});\n\n\tconst items = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type !== Item) return;\n\n\t\t\treturn node;\n\t\t});\n\t}, [children]);\n\n\tconst [displayItems, extra, size, total, listSize] = useMemo(() => {\n\t\tconst extra =\n\t\t\ttype === \"normal\" && loop && items.length > display\n\t\t\t\t? display + 1\n\t\t\t\t: 0;\n\t\tlet list: any = [];\n\n\t\tif (extra <= 0) {\n\t\t\tlist = [...items];\n\t\t} else {\n\t\t\tconst head = items.slice(0, extra);\n\t\t\tconst tail = items.slice(-extra);\n\t\t\tlist = [...tail, ...items, ...head];\n\t\t}\n\n\t\tconst listSize = `${(list.length / display) * 100}%`;\n\n\t\treturn [list, extra, items.length, list.length, listSize];\n\t}, [display, loop, type, items]);\n\n\tconst offsetPercent = useMemo(\n\t\t() => (-100 * (state.current + extra)) / total,\n\t\t[state.current, total]\n\t);\n\n\tconst position = useMemo(() => {\n\t\tif (size <= display || type === \"fade\") return;\n\n\t\tconst offset = vertical\n\t\t\t? `0, ${offsetPercent}%`\n\t\t\t: `${offsetPercent}%, 0`;\n\t\treturn `translate3d(${offset}, 0)`;\n\t}, [offsetPercent, vertical, display, size, type]);\n\n\tconst trackStyle = useMemo(() => {\n\t\tif (!vertical || !itemHeight) return;\n\n\t\treturn {\n\t\t\theight: itemHeight * display,\n\t\t};\n\t}, [vertical, itemHeight, display]);\n\n\tconst indicatorsLoop = useMemo(() => {\n\t\treturn Array.from({\n\t\t\tlength: Math.ceil((size - display) / scroll) + 1,\n\t\t});\n\t}, [loop, indicator]);\n\n\tconst clearTimer = () => {\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t};\n\n\tconst swipeTo = (i: number) => {\n\t\tif (!state.swipable || i === state.current) return;\n\t\tstate.swipable = false;\n\t\tonBeforeSwipe?.(state.current);\n\n\t\tlet reset = false;\n\t\tlet next = i;\n\t\tconst lastDisplay = size - display;\n\n\t\tif (loop) {\n\t\t\tif (i > lastDisplay) {\n\t\t\t\treset = true;\n\t\t\t\ti = size;\n\t\t\t\tnext = 0;\n\t\t\t} else if (i < 0) {\n\t\t\t\treset = true;\n\t\t\t\ti = -display;\n\t\t\t\tnext = lastDisplay;\n\t\t\t}\n\t\t} else {\n\t\t\tnext = clamp(next, 0, lastDisplay);\n\t\t\ti = next;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.swipable = true;\n\t\t}, duration + 32);\n\n\t\tif (type === \"fade\") {\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\treturn;\n\t\t}\n\n\t\tstate.current = i;\n\n\t\tif (!reset) {\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tonAfterSwipe?.(next);\n\t\t\t}, duration + 12);\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.transition = \"none\";\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.transition = transition;\n\t\t\t}, 60);\n\t\t}, duration + 20);\n\t};\n\tconst swipeNext = () => {\n\t\tswipeTo(reverse ? state.current - scroll : state.current + scroll);\n\t};\n\n\tconst swipePrev = () => {\n\t\tswipeTo(reverse ? state.current + scroll : state.current - scroll);\n\t};\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!draggable || !state.swipable || type === \"fade\") return;\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tObject.assign(state, {\n\t\t\tdragStart: vertical ? e.clientY : e.clientX,\n\t\t\tdragging: true,\n\t\t\ttransition: \"none\",\n\t\t});\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst offset =\n\t\t\t((dragEnd - state.dragStart) * 61.8) /\n\t\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] +\n\t\t\toffsetPercent;\n\n\t\tlistRef.current.style.transform = `translate3d(${\n\t\t\tvertical ? `0, ${offset}%` : `${offset}%, 0`\n\t\t}, 0)`;\n\t};\n\n\tconst handleMouseUp = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\n\t\tif (e.changedTouches) {\n\t\t\te = e.changedTouches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst part =\n\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] / total;\n\t\tconst offset = (dragEnd - state.dragStart) * 0.618;\n\t\tconst absOffset = Math.abs(offset);\n\n\t\tif (absOffset > dragOffset) {\n\t\t\tconst base = Math.floor(absOffset / part);\n\t\t\tconst mod = (absOffset % part) - dragOffset > 0 ? 1 : 0;\n\t\t\tconst p = base + mod;\n\n\t\t\tlet to = state.current + (offset > 0 ? -p : p);\n\n\t\t\tswipeTo(to);\n\t\t}\n\n\t\tlistRef.current.style.transform = position || \"\";\n\n\t\tObject.assign(state, {\n\t\t\tdragging: false,\n\t\t\ttransition,\n\t\t});\n\t};\n\n\tconst handleMouseOver = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tswipeTo,\n\t\tswipeNext,\n\t\tswipePrev,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (!autoplay) return;\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\n\t\treturn () => {\n\t\t\tclearTimeout(timerRef.current);\n\t\t\ttimerRef.current = null;\n\t\t};\n\t}, [autoplay, interval]);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-swiper\",\n\t\t\t\t{\n\t\t\t\t\t\"i-swiper-vertical\": vertical,\n\t\t\t\t\t\"i-swiper-initialized\": state.initialized,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName='i-swiper-track'\n\t\t\t\tstyle={trackStyle}\n\t\t\t\tonMouseOver={handleMouseOver}\n\t\t\t\tonMouseLeave={handleMouseLeave}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={listRef}\n\t\t\t\t\tclassName={classNames(\"i-swiper-list\", {\n\t\t\t\t\t\t\"i-swiper-fade\": type === \"fade\",\n\t\t\t\t\t})}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t[vertical ? \"height\" : \"width\"]: listSize,\n\t\t\t\t\t\ttransform: position,\n\t\t\t\t\t\ttransition: state.transition,\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\t>\n\t\t\t\t\t{displayItems.map((item, i) => {\n\t\t\t\t\t\tconst { props: itemProps } = item;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Item\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\titemIndex={(i - extra + size) % size}\n\t\t\t\t\t\t\t\tactive={i - extra === state.current}\n\t\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\t\tgap={gap}\n\t\t\t\t\t\t\t\ttransition={transition}\n\t\t\t\t\t\t\t\titemHeight={itemHeight}\n\t\t\t\t\t\t\t\tvertical={vertical}\n\t\t\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\t\t\t{...itemProps}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\n\t\t\t\t{arrow && size > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(loop || state.current !== 0) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-prev'\n\t\t\t\t\t\t\t\tonClick={swipePrev}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{prev}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(loop || state.current < size - display) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-next'\n\t\t\t\t\t\t\t\tonClick={swipeNext}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{next}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{indicator && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-swiper-indicators\", {\n\t\t\t\t\t\t\"i-swiper-indicators-fixed\": fixedIndicator,\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{indicatorsLoop.map((_, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-swiper-indicator\", {\n\t\t\t\t\t\t\t\t\t\"i-indicator-active\":\n\t\t\t\t\t\t\t\t\t\ti ===\n\t\t\t\t\t\t\t\t\t\tMath[loop ? \"floor\" : \"ceil\"](\n\t\t\t\t\t\t\t\t\t\t\t((state.current + size) % size) /\n\t\t\t\t\t\t\t\t\t\t\t\tscroll\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => swipeTo(i * scroll)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderIndicator?.(i)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}) as CompositionSwiper;\n\nSwiper.Item = Item;\n\nexport default Swiper;\n"],"mappings":"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"}
@@ -6,8 +6,8 @@ import popup_default from "../popup/index.js";
6
6
  import Item from "./item.js";
7
7
  import classNames from "classnames";
8
8
  import { Children, useEffect, useImperativeHandle, useRef, useState } from "react";
9
+ import { MoreHorizRound } from "@ricons/material";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
- import MoreHorizRound from "@ricons/material/es/MoreHorizRound.js";
11
11
  //#region packages/components/tabs/tabs.tsx
12
12
  const Tabs = ((props) => {
13
13
  const { ref, active, tabs: items, type = "default", prepend, append, children, className, vertical, toggable, navsJustify = "start", bar = true, hideMore, barClass, renderMore = () => /* @__PURE__ */ jsx(button_default, {
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","names":[],"sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import MoreHorizRound from \"@ricons/material/es/MoreHorizRound.js\";\nimport classNames from \"classnames\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tReactNode,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { useIntersectionObserver, useSize } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs } from \"./type\";\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst contentsRef = useRef<Map<string, ReactNode>>(new Map());\n\tconst [activeKey, setActiveKey] = useState<string | undefined>(active);\n\tconst [prevActiveKey, setPrevActiveKey] = useState<string | undefined>(\n\t\tundefined,\n\t);\n\tconst [barStyle, setBarStyle] = useState<CSSProperties>({});\n\tconst [cachedTabs, setCachedTabs] = useState<string[]>([]);\n\tconst [overflow, setOverflow] = useState(false);\n\tconst [moreTabs, setMoreTabs] = useState<ITabItem[]>([]);\n\tconst [tabs, setTabs] = useState<ITabItem[]>([]);\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tcontentsRef.current.clear();\n\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tsetTabs([]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetTabs(\n\t\t\t\t(Children.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: string;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst {\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tchildren: tabChildren,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t} = nodeProps;\n\t\t\t\t\tconst tabKey = String(key ?? i);\n\t\t\t\t\tcontentsRef.current.set(tabKey, tabChildren ?? content);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: tabKey,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t};\n\t\t\t\t}) as ITabItem[]) ?? [],\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetTabs(\n\t\t\titems.map((item, i) => {\n\t\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\t\tconst key = String(item);\n\t\t\t\t\treturn { key, title: item };\n\t\t\t\t}\n\t\t\t\tconst key = String(item.key ?? i);\n\t\t\t\tcontentsRef.current.set(key, item.content);\n\t\t\t\tconst { content, ...rest } = item;\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\tkey,\n\t\t\t\t};\n\t\t\t}),\n\t\t);\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst tkey = String(tab.key ?? tabs.length);\n\t\tconst i = tabs.findIndex((t) => t.key === tkey);\n\n\t\tif (i > -1) {\n\t\t\topen(tabs[i].key ?? `${i}`);\n\t\t\treturn;\n\t\t}\n\n\t\tcontentsRef.current.set(tkey, tab.content);\n\t\tconst { content, ...rest } = tab;\n\t\tsetTabs((ts) => [...ts, { ...rest, key: tkey }]);\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: string) => {\n\t\tconst i = tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tcontentsRef.current.delete(key);\n\t\tconst nextTabs = [...tabs];\n\t\tnextTabs.splice(i, 1);\n\t\tsetTabs(nextTabs);\n\n\t\tif (activeKey !== key) return;\n\n\t\tconst next = nextTabs[i] || nextTabs[i - 1];\n\t\topen(prevActiveKey ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: string) => {\n\t\tif (key === activeKey) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tsetActiveKey(undefined);\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tsetPrevActiveKey(activeKey);\n\t\tonTabChange?.(key, activeKey);\n\t\tsetActiveKey(key);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore || !observe) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tconst nextOverflow = scrollHeight > height || scrollWidth > width;\n\t\tsetOverflow(nextOverflow);\n\n\t\tif (!nextOverflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tsetTabs((ts) => {\n\t\t\t\t\tif (!ts[i]) return ts;\n\t\t\t\t\tconst nextTabs = ts.map((t, idx) =>\n\t\t\t\t\t\tidx === i ? { ...t, intersecting: visible } : t,\n\t\t\t\t\t);\n\t\t\t\t\tsetMoreTabs(nextTabs.filter((tab) => !tab.intersecting));\n\t\t\t\t\treturn nextTabs;\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, tabs.length, observe]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || activeKey === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = tabs.findIndex((tab) => tab.key === activeKey);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (tabs[index]?.keepDOM && activeKey) {\n\t\t\t\tsetCachedTabs((keys) => {\n\t\t\t\t\tif (keys.includes(activeKey)) return keys;\n\t\t\t\t\treturn [activeKey, ...keys];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t});\n\t\t}, 16);\n\t}, [activeKey, bar, size, tabs, type, vertical]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || activeKey === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore || !unobserve) return;\n\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [tabs.length, hideMore, unobserve]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = `${i}`, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": activeKey === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && overflow && moreTabs.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{moreTabs.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = `${i}`, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = activeKey === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(moreTabs)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\tconst key = tab.key ?? `${i}`;\n\t\t\t\t\tconst content = contentsRef.current.get(key);\n\t\t\t\t\tconst isActive = activeKey === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","names":[],"sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { MoreHorizRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tReactNode,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { useIntersectionObserver, useSize } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs } from \"./type\";\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst contentsRef = useRef<Map<string, ReactNode>>(new Map());\n\tconst [activeKey, setActiveKey] = useState<string | undefined>(active);\n\tconst [prevActiveKey, setPrevActiveKey] = useState<string | undefined>(\n\t\tundefined,\n\t);\n\tconst [barStyle, setBarStyle] = useState<CSSProperties>({});\n\tconst [cachedTabs, setCachedTabs] = useState<string[]>([]);\n\tconst [overflow, setOverflow] = useState(false);\n\tconst [moreTabs, setMoreTabs] = useState<ITabItem[]>([]);\n\tconst [tabs, setTabs] = useState<ITabItem[]>([]);\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tcontentsRef.current.clear();\n\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tsetTabs([]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetTabs(\n\t\t\t\t(Children.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: string;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst {\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tchildren: tabChildren,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t} = nodeProps;\n\t\t\t\t\tconst tabKey = String(key ?? i);\n\t\t\t\t\tcontentsRef.current.set(tabKey, tabChildren ?? content);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: tabKey,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t};\n\t\t\t\t}) as ITabItem[]) ?? [],\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetTabs(\n\t\t\titems.map((item, i) => {\n\t\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\t\tconst key = String(item);\n\t\t\t\t\treturn { key, title: item };\n\t\t\t\t}\n\t\t\t\tconst key = String(item.key ?? i);\n\t\t\t\tcontentsRef.current.set(key, item.content);\n\t\t\t\tconst { content, ...rest } = item;\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\tkey,\n\t\t\t\t};\n\t\t\t}),\n\t\t);\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst tkey = String(tab.key ?? tabs.length);\n\t\tconst i = tabs.findIndex((t) => t.key === tkey);\n\n\t\tif (i > -1) {\n\t\t\topen(tabs[i].key ?? `${i}`);\n\t\t\treturn;\n\t\t}\n\n\t\tcontentsRef.current.set(tkey, tab.content);\n\t\tconst { content, ...rest } = tab;\n\t\tsetTabs((ts) => [...ts, { ...rest, key: tkey }]);\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: string) => {\n\t\tconst i = tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tcontentsRef.current.delete(key);\n\t\tconst nextTabs = [...tabs];\n\t\tnextTabs.splice(i, 1);\n\t\tsetTabs(nextTabs);\n\n\t\tif (activeKey !== key) return;\n\n\t\tconst next = nextTabs[i] || nextTabs[i - 1];\n\t\topen(prevActiveKey ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: string) => {\n\t\tif (key === activeKey) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tsetActiveKey(undefined);\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tsetPrevActiveKey(activeKey);\n\t\tonTabChange?.(key, activeKey);\n\t\tsetActiveKey(key);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore || !observe) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tconst nextOverflow = scrollHeight > height || scrollWidth > width;\n\t\tsetOverflow(nextOverflow);\n\n\t\tif (!nextOverflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tsetTabs((ts) => {\n\t\t\t\t\tif (!ts[i]) return ts;\n\t\t\t\t\tconst nextTabs = ts.map((t, idx) =>\n\t\t\t\t\t\tidx === i ? { ...t, intersecting: visible } : t,\n\t\t\t\t\t);\n\t\t\t\t\tsetMoreTabs(nextTabs.filter((tab) => !tab.intersecting));\n\t\t\t\t\treturn nextTabs;\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, tabs.length, observe]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || activeKey === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = tabs.findIndex((tab) => tab.key === activeKey);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (tabs[index]?.keepDOM && activeKey) {\n\t\t\t\tsetCachedTabs((keys) => {\n\t\t\t\t\tif (keys.includes(activeKey)) return keys;\n\t\t\t\t\treturn [activeKey, ...keys];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t});\n\t\t}, 16);\n\t}, [activeKey, bar, size, tabs, type, vertical]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || activeKey === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore || !unobserve) return;\n\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [tabs.length, hideMore, unobserve]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = `${i}`, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": activeKey === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && overflow && moreTabs.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{moreTabs.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = `${i}`, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = activeKey === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(moreTabs)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\tconst key = tab.key ?? `${i}`;\n\t\t\t\t\tconst content = contentsRef.current.get(key);\n\t\t\t\t\tconst isActive = activeKey === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"mappings":";;;;;;;;;;;;CAoBA,MAAM,EACL,KACC,QACA,MAAM,OACN,OAAM,WACN,SACA,QACA,UACA,WACA,UACA,UACA,cAAQ,SACR,MAAA,MACA,UACA,UACA,mBACA,oBAAA,gBAAA;EAAA,MAAA;EAAc,QAAA;EAAK,MAAA;YACjB,oBAAA,cAAA,EAAM,MAAM,oBAAA,gBAAA,EAAkB,CAAA,EAAC,CAAA;EACzB,CAAA,EAER,aACA,GAAA,SACG;;CAGJ,MAAM,SAAS,OAAwB,KAAE;CACzC,MAAM,UAAS,OAAwB,KAAK;CAC5C,MAAM,cAAU,uBAA4B,IAAA,KAAA,CAAA;CAC5C,MAAM,CAAA,WAAY,gBAAa,SAA8B,OAAA;CAC7D,MAAM,CAAC,eAAW,oBAAwB,SAC1C,KAAA,EACC;CACD,MAAC,CAAA,UAAA,eAAA,SAAA,EAAA,CAAA;CACD,MAAM,CAAC,YAAU,iBAAe,SAAuB,EAAE,CAAC;CAC1D,MAAM,CAAC,UAAU,eAAe,SAAI,MAAS;CAC7C,MAAM,CAAC,UAAU,eAAe,SAAe,EAAA,CAAA;CAC/C,MAAM,CAAC,MAAA,WAAU,SAAwB,EAAA,CAAA;CACzC,MAAM,EAAC,SAAM,cAAW,yBAAwB;CAChD,MAAM,OAAE,QAAS,QAAY;;AAG7B,cAAa,QAAG,OAAA;;AAGf,OAAK,CAAA,UAAO;AACX,YAAK,EAAA,CAAA;AACJ;;WAID,SAAO,IAAA,WAAA,MAAA,MAAA;IACL,MAAA,EAAQ,KAAK,OAAA,cAAqB;IAIlC,MAAC,EACD,OACC,UAAK,aACL,SACA,SACA,aACA;IACD,MAAI,SAAS,OAAA,OAAA,EAAA;AACb,gBAAY,QAAG,IAAO,QAAS,eAAA,QAAA;;KAG/B,KAAM;KACL;KACA;KACA;KACA;KACA,IAAA,EAAA,CACF;;;UAMF,MAAO,KAAA,MAAA,MAAA;AACN,OAAK,CAAC,UAAU,SAAO,CAAA,SAAA,OAAA,KAAA,CAErB,QAAM;IAAG,KADG,OAAG,KAAS;IACZ,OAAO;IAAK;GAEzB,MAAA,MAAA,OAAA,KAAA,OAAA,EAAA;AACA,eAAY,QAAO,IAAK,KAAK,KAAI,QAAA;GACjC,MAAA,EAAA,SAAY,GAAQ,SAAS;AAC7B,UAAO;IACP,GAAA;IACC;IACA;IACA,CACF;IACA,CAAA,UAAA,MAAA,CAAA;;EAGF,MAAM,OAAO,OAAK,IAAA,OAAa,KAAA,OAAA;EAC9B,MAAM,IAAI,KAAG,WAAW,MAAO,EAAA,QAAW,KAAC;;AAG3C,QAAM,KAAK,GAAC,OAAA,GAAA,IAAA;AACX;;;EAID,MAAA,EAAA,SAAY,GAAQ,SAAS;AAC7B,WAAQ,OAAQ,CAAC,GAAG,IAAI;GAAE,GAAG;GAAG,KAAA;GAAA,CAAA,CAAA;AAChC,OAAA,KAAS;;;EAIV,MAAM,IAAK,KAAI,WAAY,MAAI,EAAA,QAAA,IAAA;;;EAK9B,MAAA,WAAY,CAAA,GAAQ,KAAM;AAC1B,WAAM,OAAU,GAAG,EAAE;AACrB,UAAQ,SAAS;;;AAKjB,OAAK,iBAAiB,MAAM,OAAA,GAAU;;;AAIvC,MAAK,QAAQ,WAAM;AAClB,OAAI,CAAA,SAAQ;;AAGX,gBAAa,KAAA,EAAU;;IAGvB,QAAA;IACC,OAAO;IACP,CAAA;AACD;;;AAID,gBAAA,KAAiB,UAAU;AAC3B,eAAa,IAAI;;;AAIlB,MAAA,CAAA,QAAc,YAAE,CAAA,QAAA;EACf,MAAK,EAAA,cAAiB,gBAAa,QAAM;EACzC,MAAM,EAAE,OAAA,WAAc;;AAGtB,cAAM,aAAe;;;AAKrB,OAAA,CAAA,IAAQ;AACP,WAAQ,MAAE,KAAM,YAAA;AAChB,aAAQ,OAAS;AAChB,SAAA,CAAA,GAAS,GAAI,QAAG;KACf,MAAK,WAAO,GAAO,KAAE,GAAA,QACrB,QAAM,IAAA;MAAS,GAAE;MAAG,cAAc;MAAA,GAAA,EACjC;AACD,iBAAC,SAAA,QAAA,QAAA,CAAA,IAAA,aAAA,CAAA;AACD,YAAA;MACA;KACA;IACD;IACA;EAAA;EAAA;EAAA,KAAA;EAAA;EAAA,CAAA;;AAGH,MAAA,CAAA,OAAa,SAAG,UAAA,cAAA,KAAA,EACf;;;GAMA,MAAA,MAAa,QAAI,QAAA;;yCAKhB,gBAAgB,SAAS;AACxB,QAAA,KAAA,SAAmB,UAAK,CAAA,QAAA;AACvB,WAAI,CAAI,WAAU,GAAA,KAAS;KAC3B;;GAIF,MAAM,SAAE,SAAc;;IAGtB,QAAA,CAAA,YAAY,SAAA,UAAA;IACX,OAAO,YAAY,SAAS,UAAU;IACtC,WAAO,aAAY,WAAgB,MAAG,UAAW;IACjD,CAAA;KACC,GAAA;IACD;EAAC;EAAG;EAAA;EAAA;EAAA;EAAA;EAAA,CAAA;;AAGP,MAAA,WAAgB,KAAA,KAAA,cAAA,OAAA;;IAGf,CAAA,OAAK,CAAM;;AAGZ,MAAA,YAAgB,CAAA,UAAA;;AAGf,WAAS,SAAI,IAAA,UAAA;;IAEZ;EAAA,KAAA;EAAA;EAAA;EAAA,CAAA;;AAGF,MAAA,CAAA,QAAc,WAAE,SAAA;;AAGf,KAAA,iBAAM;AACL,KAAE,gBAAgB;;+BAKlB,MAAO,EAAC,SAAS,EAAA,QAChB,CAAA;;gEAIF,SAAQ,OACP,CAAA;;AAGD,OAAA,CAAM,QAAO,QAAA;AACZ,WAAK,QAAQ,oBAAe,SAAA,iBAAA;;IAE5B,CAAA,QAAA,QAAA,CAAA;;EAGF;EACC;EACA;EACA,MAAG;EACH,EAAA;QAGD,qBAAA,OAAA;EACE,WAAA,WACA,UACC;GAAE,MAAM;IAAA,UAAA,SAAA,SAAA;GAAA,EACR,UACA;EACD,GAAC;YANH,CAQC,qBAAA,OAAA;GACE,WAAA,WAAA,wBAAA,EACA,uBAAwB,UACvB,CAAC;aAHJ;IAKC;;KAGE,KAAA;KACA,WAAK,WACL,cACC,WAAW,cACX;gBAEF,KAAA,KAAA,KAAA,MAAA;MACE,MAAK,EAAG,OAAO,MAAM,GAAA,KAAA,aAAA;aAGrB,qBAAA,KAAA;OAEE,MAAK,QAAG,QAAA,QAAA,KAAA;OACR,WAAW,WAAW,aAAa,EACnC,gBAAW,cAAkB,KAC5B,CAAC;OACF,eAAE,KAAA,IAAA;iBANJ,CAQC,OAAA,YAGE,oBAAA,oBAAA;QACC,IAAA;QACA,QAAA;QACA,WAAA;QACA,UAAU,MAAM;AAChB,WAAA,iBAAgB;AACf,eAAE,IAAA;;QAEF,CAAA,CAEF;SApBD,IAoBC;OAEF,EAAA,OAGD,oBAAA,QAAA;MACC,KAAA;MACA,WAAW,WAAA,kBAAA,SAAA;MACX,OAAA;MACA,CAAA,CAED;;oDAGD,oBAAC,eAAD;KACC,OAAA;KACA,UAAO,WAAK,UAAA;KACZ,OAAA;KACA,WAAA;KACA,WAAA;KACA,SACA,oBAAA,OAAA;MAAA,WAAQ;gBACN,SAAI,KAAW,KAAE,MAAK;OACrB,MAAA,EAAQ,MAAM,GAAG,KAAK,UAAG;OACzB,MAAM,WAAW,cAAc;cAG/B,oBAAA,KAAA;QAEE,WAAQ,WAAA,aAAA,EACR,gBAAW,UACV,CAAC;QACF,eAAE,KAAA,IAAA;kBAEH;QACE,EAPD,IAOC;QAEF;MACA,CAAA;eAGL,WAAA,SAAA;KACE,CAAA;;IAIF;;;aAGD,KAAI,KAAA,KAAY,MAAK;IACpB,MAAK,MAAK,IAAM,OAAK,GAAA;IACrB,MAAM,UAAU,YAAY,QAAC,IAAA,IAAA;IAC7B,MAAM,WAAU,cAAY;YAE5B,YACC,QAAS,KAAA,KAAC,WAAA,SAAA,IAAA,KAIV,oBAAA,OAAA;KAEE,WAAQ,WAAA,iBAAA,EACR,gBAAW,UACV,CAAC;eAEH;KACE,EAND,IAMC;KAGH;GACA,CAAA,CACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","names":[],"sources":["../../../../packages/components/tag/tag.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { ITag } from \"./type\";\n\nconst Tag = (props: ITag) => {\n\tconst {\n\t\tdot,\n\t\tdotClass,\n\t\toutline,\n\t\tround,\n\t\tsize = \"normal\",\n\t\thoverShowClose,\n\t\tclassName,\n\t\tchildren,\n\t\tonClose,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tag\",\n\t\t\t\t{\n\t\t\t\t\t\"i-tag-outline\": outline,\n\t\t\t\t\t\"i-tag-clickable\": onClick,\n\t\t\t\t\t[`i-tag-${size}`]: size !== \"normal\",\n\t\t\t\t\tround,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{dot && <span className={classNames(\"i-tag-dot\", dotClass)}></span>}\n\n\t\t\t{children}\n\n\t\t\t{onClose && (\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName={classNames(\"i-tag-close\", {\n\t\t\t\t\t\t\"i-tag-hover-close\": hoverShowClose,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</span>\n\t);\n};\n\nexport default Tag;\n"],"mappings":";;;;AAKA,MAAM,OAAO,UAAgB;CAC5B,MAAM,EACL,KACA,UACA,SACA,OACA,OAAO,UACP,gBACA,WACA,UACA,SACA,SACA,GAAG,cACA;AAEJ,QACC,qBAAC,QAAD;EACC,WAAW,WACV,SACA;GACC,iBAAiB;GACjB,mBAAmB;IAClB,SAAS,SAAS,SAAS;GAC5B;GACA,EACD,UACA;EACQ;EACT,GAAI;YAZL;GAcE,OAAO,oBAAC,QAAD,EAAM,WAAW,WAAW,aAAa,SAAS,EAAS,CAAA;GAElE;GAEA,WACA,oBAAC,oBAAD;IACC,QAAA;IACA,WAAW,WAAW,eAAe,EACpC,qBAAqB,gBACrB,CAAC;IACF,SAAS;IACT,CAAA;GAEG"}
1
+ {"version":3,"file":"tag.js","names":[],"sources":["../../../../packages/components/tag/tag.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { ITag } from \"./type\";\n\nconst Tag = (props: ITag) => {\n\tconst {\n\t\tdot,\n\t\tdotClass,\n\t\toutline,\n\t\tround,\n\t\tsize = \"normal\",\n\t\thoverShowClose,\n\t\tclassName,\n\t\tchildren,\n\t\tonClose,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tag\",\n\t\t\t\t{\n\t\t\t\t\t\"i-tag-outline\": outline,\n\t\t\t\t\t\"i-tag-clickable\": onClick,\n\t\t\t\t\t[`i-tag-${size}`]: size !== \"normal\",\n\t\t\t\t\tround,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{dot && <span className={classNames(\"i-tag-dot\", dotClass)}></span>}\n\n\t\t\t{children}\n\n\t\t\t{onClose && (\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName={classNames(\"i-tag-close\", {\n\t\t\t\t\t\t\"i-tag-hover-close\": hoverShowClose,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</span>\n\t);\n};\n\nexport default Tag;\n"],"mappings":";;;;;CAKA,MAAM,EACL,KACC,UACA,SACA,OACA,OAAK,UACL,gBACA,WACA,UACA,SACA,SACA,GAAA,cACG;QAGJ,qBAAA,QAAA;EACE,WAAA,WACA,SACC;GACA,iBAAA;GACC,mBAAiB;IAChB,SAAM,SAAY,SAAO;GAC1B;GACA,EACD,UACA;EACA;EACD,GAAA;YAZF;GAcC,OAAA,oBAAA,QAAA,EAAA,WAAA,WAAA,aAAA,SAAA,EAAA,CAAA;;cAKE,oBAAA,oBAAA;IACC,QAAA;IACA,WAAA,WAAA,eAAA,EACA,qBAAsB,gBACrB,CAAC;IACF,SAAE;IACF,CAAA;GAED"}
@@ -1,7 +1,7 @@
1
1
  import Text from "./text.js";
2
2
  import { Fragment, useMemo } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
- import { findAll } from "highlight-words-core";
4
+ import { findAll } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/highlight-words-core@1.2.3/node_modules/highlight-words-core/dist/index.js";
5
5
  //#region packages/components/text/highlight.tsx
6
6
  function HighLight(props) {
7
7
  const { keyword, text, escape, caseSensitive, renderWord = (word) => /* @__PURE__ */ jsx("mark", { children: word }), ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","names":[],"sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport HighLight from \"./highlight\";\nimport \"./index.css\";\nimport Number from \"./number\";\nimport Time from \"./time\";\nimport { CompositionText, IText } from \"./type\";\n\nconst Text = (props: IText) => {\n\tconst {\n\t\tas: Tag = \"span\",\n\t\tsize,\n\t\tweight,\n\t\tdecoration,\n\t\tgradient,\n\t\twave,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\tconst gradients = useMemo(() => {\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\n\n\t\treturn {\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\n\t\t\tbackgroundClip: \"text\",\n\t\t};\n\t}, [gradient]);\n\n\treturn (\n\t\t<Tag\n\t\t\tstyle={{\n\t\t\t\tfontSize: size,\n\t\t\t\tfontWeight: weight,\n\t\t\t\ttextDecoration: decoration,\n\t\t\t\t...gradients,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t\"i-text-gradient\": gradient,\n\t\t\t\t\"i-text-gradient-wave\": wave,\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nText.Number = Number;\nText.Time = Time;\nText.HighLight = HighLight;\n\nexport default Text as CompositionText;\n"],"mappings":";;;;;;;AAQA,MAAM,QAAQ,UAAiB;CAC9B,MAAM,EACL,IAAI,MAAM,QACV,MACA,QACA,YACA,UACA,MACA,OACA,WACA,aACG;AAWJ,QACC,oBAAC,KAAD;EACC,OAAO;GACN,UAAU;GACV,YAAY;GACZ,gBAAgB;GAChB,GAfe,cAAc;AAC/B,QAAI,CAAC,YAAY,CAAC,MAAM,QAAQ,SAAS,CAAE,QAAO,EAAE;AAEpD,WAAO;KACN,iBAAiB,2BAA2B,SAAS,KAAK,IAAI,CAAC;KAC/D,gBAAgB;KAChB;MACC,CAAC,SAAS,CAAC;GASX,GAAG;GACH;EACD,WAAW,WAAW,WAAW;GAChC,mBAAmB;GACnB,wBAAwB;GACxB,CAAC;EAED;EACG,CAAA;;AAIP,KAAK,SAAS;AACd,KAAK,OAAO;AACZ,KAAK,YAAY"}
1
+ {"version":3,"file":"text.js","names":[],"sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport HighLight from \"./highlight\";\nimport \"./index.css\";\nimport Number from \"./number\";\nimport Time from \"./time\";\nimport { CompositionText, IText } from \"./type\";\n\nconst Text = (props: IText) => {\n\tconst {\n\t\tas: Tag = \"span\",\n\t\tsize,\n\t\tweight,\n\t\tdecoration,\n\t\tgradient,\n\t\twave,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\tconst gradients = useMemo(() => {\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\n\n\t\treturn {\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\n\t\t\tbackgroundClip: \"text\",\n\t\t};\n\t}, [gradient]);\n\n\treturn (\n\t\t<Tag\n\t\t\tstyle={{\n\t\t\t\tfontSize: size,\n\t\t\t\tfontWeight: weight,\n\t\t\t\ttextDecoration: decoration,\n\t\t\t\t...gradients,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t\"i-text-gradient\": gradient,\n\t\t\t\t\"i-text-gradient-wave\": wave,\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nText.Number = Number;\nText.Time = Time;\nText.HighLight = HighLight;\n\nexport default Text as CompositionText;\n"],"mappings":";;;;;;;;CAQA,MAAM,EACL,IAAK,MAAC,QACL,MACA,QACA,YACA,UACA,MACA,OACA,WACA,aACA;QAYD,oBAAA,KAAA;EACE,OAAA;GACA,UAAO;GACN,YAAU;GACV,gBAAY;GACZ,GAAA,cAAA;AAdH,QAAK,CAAC,YAAY,CAAA,MAAO,QAAO,SAAA,CAAA,QAAA,EAAA;;KAG/B,iBAAO,2BAAA,SAAA,KAAA,IAAA,CAAA;KACN,gBAAgB;KAChB;MACA,CAAA,SAAA,CAAA;GASC,GAAG;GACH;EACD,WAAC,WAAA,WAAA;GACD,mBAAW;GACV,wBAAmB;GACnB,CAAC;EAEH;EACE,CAAA;;;AAKJ,KAAK,OAAO;AACZ,KAAK,YAAW"}
@@ -2,8 +2,8 @@ import icon_default from "../icon/index.js";
2
2
  import checkbox_default from "../checkbox/index.js";
3
3
  import classNames from "classnames";
4
4
  import { useState } from "react";
5
+ import { KeyboardArrowDownRound } from "@ricons/material";
5
6
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
- import KeyboardArrowDownRound from "@ricons/material/es/KeyboardArrowDownRound.js";
7
7
  //#region packages/components/tree/item.tsx
8
8
  function TreeList(props) {
9
9
  const { data = [], depth = 0, round, style, className, parent, nodeProps, ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","names":["Checkbox","Icon"],"sources":["../../../../packages/components/tree/item.tsx"],"sourcesContent":["import KeyboardArrowDownRound from \"@ricons/material/es/KeyboardArrowDownRound.js\";\nimport classNames from \"classnames\";\nimport { MouseEvent, useState } from \"react\";\nimport Checkbox from \"../checkbox\";\nimport Icon from \"../icon\";\nimport { ITree, ITreeHeader, PropsTreeItem } from \"./type\";\n\ninterface ITreeList extends Omit<ITree, \"nodeProps\"> {\n\tnodeProps: {\n\t\tkey: string;\n\t\ttitle: string;\n\t\tchildren: string;\n\t};\n}\n\nexport function TreeList(props: ITreeList) {\n\tconst {\n\t\tdata = [],\n\t\tdepth = 0,\n\t\tround,\n\t\tstyle,\n\t\tclassName,\n\t\tparent,\n\t\tnodeProps,\n\t\t...restProps\n\t} = props;\n\n\tconst contents = data.map((item, i) => {\n\t\tconst { type } = item;\n\t\tconst title = item[nodeProps.title];\n\t\tconst itemKey =\n\t\t\titem[nodeProps.key] ||\n\t\t\t(parent?.key !== undefined ? `${parent.key}-${i}` : `${i}`);\n\n\t\titem.key = itemKey;\n\t\titem.parent = parent;\n\n\t\tif (type === \"title\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className='i-tree-group-title'>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (type && type !== \"item\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className={`i-tree-type-${type}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TreeItem\n\t\t\t\tkey={itemKey}\n\t\t\t\tindex={i}\n\t\t\t\titem={item}\n\t\t\t\tdepth={depth}\n\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t);\n\t});\n\n\tif (depth > 0) return <>{contents}</>;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree\", className, {\n\t\t\t\t\"i-tree-round\": round,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{contents}\n\t\t</div>\n\t);\n}\n\nconst Header = (props: ITreeHeader) => {\n\tconst { as: Tag = \"a\", href, selected, children, ...restProps } = props;\n\n\tconst className = classNames(\"i-tree-item-header\", {\n\t\t\"i-tree-item-selected\": selected,\n\t});\n\n\tif (typeof Tag === \"string\") {\n\t\treturn (\n\t\t\t<Tag href={href} className={className} {...restProps}>\n\t\t\t\t{children}\n\t\t\t</Tag>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Tag to={href || \"\"} className={className} {...restProps}>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nexport const TreeItem = (props: PropsTreeItem) => {\n\tconst {\n\t\titem,\n\t\tdepth = 0,\n\t\tindex,\n\t\tselected,\n\t\tchecked = [],\n\t\tpartofs = {},\n\t\tcheckable,\n\t\tnodeProps,\n\t\trenderExtra,\n\t\tonItemClick,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\n\tconst { as, key = \"\", href, icon, title, expanded, disabled } = item;\n\tconst children = item[nodeProps.children];\n\n\tconst [expand, setExpand] = useState(expanded);\n\n\tconst handleExpand = (e: MouseEvent<HTMLElement>, fromToggle?: boolean) => {\n\t\tif (fromToggle) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (disabled || !children?.length) return;\n\n\t\tsetExpand((v) => !v);\n\t};\n\n\tconst handleItemClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (disabled) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\thandleExpand(e);\n\t\tonItemClick?.(item, e);\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tconst handleItemCheck = (checked) => onItemCheck?.(item, checked, []);\n\tconst itemChecked = checked.includes(key);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree-item\", {\n\t\t\t\t\"i-tree-expand\": expand,\n\t\t\t})}\n\t\t>\n\t\t\t<Header\n\t\t\t\tas={as}\n\t\t\t\thref={href}\n\t\t\t\tstyle={{ paddingLeft: `${depth * 1.5 + 0.5}em` }}\n\t\t\t\tselected={selected === key}\n\t\t\t\tonClick={handleItemClick}\n\t\t\t>\n\t\t\t\t{checkable && (\n\t\t\t\t\t<Checkbox.Item\n\t\t\t\t\t\tvalue={itemChecked}\n\t\t\t\t\t\tpartof={!itemChecked && partofs[key]}\n\t\t\t\t\t\tclassName='i-tree-checkbox'\n\t\t\t\t\t\tonChange={handleItemCheck}\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{icon && <span className='i-tree-item-icon'>{icon}</span>}\n\n\t\t\t\t<span className='i-tree-item-title'>{title}</span>\n\n\t\t\t\t{renderExtra?.(item)}\n\n\t\t\t\t{children && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<KeyboardArrowDownRound />}\n\t\t\t\t\t\tclassName='i-tree-toggle'\n\t\t\t\t\t\tonClick={(e) => handleExpand(e, true)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Header>\n\n\t\t\t{children?.length && (\n\t\t\t\t<div className='i-tree-item-content'>\n\t\t\t\t\t<TreeList\n\t\t\t\t\t\tdata={children}\n\t\t\t\t\t\tdepth={depth + 1}\n\t\t\t\t\t\tselected={selected}\n\t\t\t\t\t\tcheckable={checkable}\n\t\t\t\t\t\tparent={item}\n\t\t\t\t\t\tpartofs={partofs}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t\t\trenderExtra={renderExtra}\n\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\tonItemSelect={onItemSelect}\n\t\t\t\t\t\tonItemCheck={onItemCheck}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"item.js","names":["Checkbox","Icon"],"sources":["../../../../packages/components/tree/item.tsx"],"sourcesContent":["import { KeyboardArrowDownRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { MouseEvent, useState } from \"react\";\nimport Checkbox from \"../checkbox\";\nimport Icon from \"../icon\";\nimport { ITree, ITreeHeader, PropsTreeItem } from \"./type\";\n\ninterface ITreeList extends Omit<ITree, \"nodeProps\"> {\n\tnodeProps: {\n\t\tkey: string;\n\t\ttitle: string;\n\t\tchildren: string;\n\t};\n}\n\nexport function TreeList(props: ITreeList) {\n\tconst {\n\t\tdata = [],\n\t\tdepth = 0,\n\t\tround,\n\t\tstyle,\n\t\tclassName,\n\t\tparent,\n\t\tnodeProps,\n\t\t...restProps\n\t} = props;\n\n\tconst contents = data.map((item, i) => {\n\t\tconst { type } = item;\n\t\tconst title = item[nodeProps.title];\n\t\tconst itemKey =\n\t\t\titem[nodeProps.key] ||\n\t\t\t(parent?.key !== undefined ? `${parent.key}-${i}` : `${i}`);\n\n\t\titem.key = itemKey;\n\t\titem.parent = parent;\n\n\t\tif (type === \"title\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className='i-tree-group-title'>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (type && type !== \"item\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className={`i-tree-type-${type}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TreeItem\n\t\t\t\tkey={itemKey}\n\t\t\t\tindex={i}\n\t\t\t\titem={item}\n\t\t\t\tdepth={depth}\n\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t);\n\t});\n\n\tif (depth > 0) return <>{contents}</>;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree\", className, {\n\t\t\t\t\"i-tree-round\": round,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{contents}\n\t\t</div>\n\t);\n}\n\nconst Header = (props: ITreeHeader) => {\n\tconst { as: Tag = \"a\", href, selected, children, ...restProps } = props;\n\n\tconst className = classNames(\"i-tree-item-header\", {\n\t\t\"i-tree-item-selected\": selected,\n\t});\n\n\tif (typeof Tag === \"string\") {\n\t\treturn (\n\t\t\t<Tag href={href} className={className} {...restProps}>\n\t\t\t\t{children}\n\t\t\t</Tag>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Tag to={href || \"\"} className={className} {...restProps}>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nexport const TreeItem = (props: PropsTreeItem) => {\n\tconst {\n\t\titem,\n\t\tdepth = 0,\n\t\tindex,\n\t\tselected,\n\t\tchecked = [],\n\t\tpartofs = {},\n\t\tcheckable,\n\t\tnodeProps,\n\t\trenderExtra,\n\t\tonItemClick,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\n\tconst { as, key = \"\", href, icon, title, expanded, disabled } = item;\n\tconst children = item[nodeProps.children];\n\n\tconst [expand, setExpand] = useState(expanded);\n\n\tconst handleExpand = (e: MouseEvent<HTMLElement>, fromToggle?: boolean) => {\n\t\tif (fromToggle) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (disabled || !children?.length) return;\n\n\t\tsetExpand((v) => !v);\n\t};\n\n\tconst handleItemClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (disabled) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\thandleExpand(e);\n\t\tonItemClick?.(item, e);\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tconst handleItemCheck = (checked) => onItemCheck?.(item, checked, []);\n\tconst itemChecked = checked.includes(key);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree-item\", {\n\t\t\t\t\"i-tree-expand\": expand,\n\t\t\t})}\n\t\t>\n\t\t\t<Header\n\t\t\t\tas={as}\n\t\t\t\thref={href}\n\t\t\t\tstyle={{ paddingLeft: `${depth * 1.5 + 0.5}em` }}\n\t\t\t\tselected={selected === key}\n\t\t\t\tonClick={handleItemClick}\n\t\t\t>\n\t\t\t\t{checkable && (\n\t\t\t\t\t<Checkbox.Item\n\t\t\t\t\t\tvalue={itemChecked}\n\t\t\t\t\t\tpartof={!itemChecked && partofs[key]}\n\t\t\t\t\t\tclassName='i-tree-checkbox'\n\t\t\t\t\t\tonChange={handleItemCheck}\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{icon && <span className='i-tree-item-icon'>{icon}</span>}\n\n\t\t\t\t<span className='i-tree-item-title'>{title}</span>\n\n\t\t\t\t{renderExtra?.(item)}\n\n\t\t\t\t{children && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<KeyboardArrowDownRound />}\n\t\t\t\t\t\tclassName='i-tree-toggle'\n\t\t\t\t\t\tonClick={(e) => handleExpand(e, true)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Header>\n\n\t\t\t{children?.length && (\n\t\t\t\t<div className='i-tree-item-content'>\n\t\t\t\t\t<TreeList\n\t\t\t\t\t\tdata={children}\n\t\t\t\t\t\tdepth={depth + 1}\n\t\t\t\t\t\tselected={selected}\n\t\t\t\t\t\tcheckable={checkable}\n\t\t\t\t\t\tparent={item}\n\t\t\t\t\t\tpartofs={partofs}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t\t\trenderExtra={renderExtra}\n\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\tonItemSelect={onItemSelect}\n\t\t\t\t\t\tonItemCheck={onItemCheck}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","names":[],"sources":["../../../../packages/components/tree/tree.tsx"],"sourcesContent":["import { useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport \"./index.css\";\nimport { TreeList } from \"./item\";\nimport { ITree, ITreeItem } from \"./type\";\n\nconst defaultNodeProps = {\n\tkey: \"key\",\n\ttitle: \"title\",\n\tchildren: \"children\",\n};\n\nconst Tree = (props: ITree) => {\n\tconst {\n\t\tdata = [],\n\t\tref,\n\t\tselected,\n\t\tchecked = [],\n\t\tdisabledRelated,\n\t\tnodeProps,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\tconst [selectedKey, setSelectedKey] = useState(selected);\n\tconst [checkedKeys, setCheckedKeys] = useState(checked);\n\tconst [partofs, setPartofs] = useState<Record<string, boolean>>({});\n\tconst nodeMapsRef = useRef<Map<any, any>>(new Map());\n\tconst oNodeProps = Object.assign({}, defaultNodeProps, nodeProps);\n\n\tconst isChecked = (key?: string) => checkedKeys.includes(key || \"\");\n\n\tconst checkItem = (\n\t\titem: ITreeItem,\n\t\tchecked: boolean,\n\t\tdirection?: \"root\" | \"leaf\"\n\t) => {\n\t\tconst { key = \"\", parent, children } = item;\n\t\tconst shouldChanged = { [key]: checked };\n\t\tconst partofs = { [key]: false };\n\n\t\tif (disabledRelated) return [shouldChanged];\n\n\t\tif (checked) {\n\t\t\tif (parent && direction !== \"leaf\") {\n\t\t\t\tconst hasUnchecked = parent.children?.some(\n\t\t\t\t\t(o) => o.key !== key && !isChecked(o.key)\n\t\t\t\t);\n\n\t\t\t\tconst [changes, parts] = checkItem(parent, true, \"root\");\n\n\t\t\t\tif (!hasUnchecked) {\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t}\n\n\t\t\t\tObject.assign(partofs, hasUnchecked ? parts : {}, {\n\t\t\t\t\t[parent.key as string]: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (children?.length && direction !== \"root\") {\n\t\t\t\tchildren.map((o) => {\n\t\t\t\t\tif (isChecked(o.key)) return;\n\n\t\t\t\t\tconst [changes] = checkItem(o, true, \"leaf\");\n\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn [shouldChanged, partofs];\n\t\t}\n\n\t\tif (parent && direction !== \"leaf\") {\n\t\t\tconst [changes, parts] = checkItem(parent, false, \"root\");\n\n\t\t\tObject.assign(shouldChanged, changes);\n\n\t\t\tconst hasChecked = parent.children?.some(\n\t\t\t\t(o) => isChecked(o.key) && o.key !== key\n\t\t\t);\n\n\t\t\tObject.assign(partofs, hasChecked ? {} : parts, {\n\t\t\t\t[parent.key as string]: hasChecked,\n\t\t\t\t[key]: false,\n\t\t\t});\n\t\t}\n\t\tif (children?.length && direction !== \"root\") {\n\t\t\tchildren.map((o) => {\n\t\t\t\tconst [changes] = checkItem(o, false, \"leaf\");\n\n\t\t\t\tif (!isChecked(o.key)) return;\n\n\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t});\n\t\t}\n\n\t\treturn [shouldChanged, partofs];\n\t};\n\n\tconst handleCheck = (item: ITreeItem, checked: boolean) => {\n\t\tconst [shouldChanged, partofs] = checkItem(item, checked);\n\t\tconst changedKeys = Object.keys(shouldChanged);\n\n\t\tconst nextChecked = checked\n\t\t\t? Array.from(new Set([...checkedKeys, ...changedKeys]))\n\t\t\t: checkedKeys.filter((k) => !changedKeys.includes(k));\n\n\t\tsetCheckedKeys(nextChecked);\n\t\tsetPartofs((p) => ({ ...p, ...partofs }));\n\t\tonItemCheck?.(item, checked, nextChecked);\n\t};\n\n\tconst handleSelect = (key: string, item: ITreeItem) => {\n\t\tif (!props.selectable) return;\n\n\t\tsetSelectedKey(key);\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tuseEffect(() => {\n\t\tif (selected === undefined) return;\n\n\t\tsetSelectedKey(selected);\n\t}, [selected]);\n\n\tuseEffect(() => {\n\t\tnodeMapsRef.current.clear();\n\n\t\tconst { key, children } = oNodeProps;\n\t\tconst recursive = (nodes) => {\n\t\t\tnodes.map((o) => {\n\t\t\t\tnodeMapsRef.current.set(o[key], o);\n\n\t\t\t\to[children]?.length > 0 && recursive(o[children]);\n\t\t\t});\n\t\t};\n\n\t\trecursive(data);\n\t}, [data]);\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn {\n\t\t\tgetChecked: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tcheckedKeys.map((k) => {\n\t\t\t\t\tconst item = nodeMapsRef.current.get(k);\n\t\t\t\t\titems.push(item);\n\t\t\t\t});\n\t\t\t\treturn [checkedKeys, items];\n\t\t\t},\n\t\t\tgetSelected: () => {\n\t\t\t\tconst item = nodeMapsRef.current.get(selectedKey);\n\t\t\t\treturn [selectedKey, item];\n\t\t\t},\n\t\t\tgetPartofs: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tconst keys = Object.keys(partofs).filter((k) => {\n\t\t\t\t\tconst indeterminate = partofs[k];\n\n\t\t\t\t\tif (indeterminate) {\n\t\t\t\t\t\tconst item = nodeMapsRef.current.get(k);\n\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn indeterminate;\n\t\t\t\t});\n\n\t\t\t\treturn [keys, items];\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<TreeList\n\t\t\tdata={data}\n\t\t\tselected={selectedKey}\n\t\t\tchecked={checkedKeys}\n\t\t\tpartofs={partofs}\n\t\t\tnodeProps={oNodeProps}\n\t\t\tonItemCheck={handleCheck}\n\t\t\tonItemSelect={handleSelect}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nexport default Tree;\n"],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","names":[],"sources":["../../../../packages/components/tree/tree.tsx"],"sourcesContent":["import { useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport \"./index.css\";\nimport { TreeList } from \"./item\";\nimport { ITree, ITreeItem } from \"./type\";\n\nconst defaultNodeProps = {\n\tkey: \"key\",\n\ttitle: \"title\",\n\tchildren: \"children\",\n};\n\nconst Tree = (props: ITree) => {\n\tconst {\n\t\tdata = [],\n\t\tref,\n\t\tselected,\n\t\tchecked = [],\n\t\tdisabledRelated,\n\t\tnodeProps,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\tconst [selectedKey, setSelectedKey] = useState(selected);\n\tconst [checkedKeys, setCheckedKeys] = useState(checked);\n\tconst [partofs, setPartofs] = useState<Record<string, boolean>>({});\n\tconst nodeMapsRef = useRef<Map<any, any>>(new Map());\n\tconst oNodeProps = Object.assign({}, defaultNodeProps, nodeProps);\n\n\tconst isChecked = (key?: string) => checkedKeys.includes(key || \"\");\n\n\tconst checkItem = (\n\t\titem: ITreeItem,\n\t\tchecked: boolean,\n\t\tdirection?: \"root\" | \"leaf\"\n\t) => {\n\t\tconst { key = \"\", parent, children } = item;\n\t\tconst shouldChanged = { [key]: checked };\n\t\tconst partofs = { [key]: false };\n\n\t\tif (disabledRelated) return [shouldChanged];\n\n\t\tif (checked) {\n\t\t\tif (parent && direction !== \"leaf\") {\n\t\t\t\tconst hasUnchecked = parent.children?.some(\n\t\t\t\t\t(o) => o.key !== key && !isChecked(o.key)\n\t\t\t\t);\n\n\t\t\t\tconst [changes, parts] = checkItem(parent, true, \"root\");\n\n\t\t\t\tif (!hasUnchecked) {\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t}\n\n\t\t\t\tObject.assign(partofs, hasUnchecked ? parts : {}, {\n\t\t\t\t\t[parent.key as string]: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (children?.length && direction !== \"root\") {\n\t\t\t\tchildren.map((o) => {\n\t\t\t\t\tif (isChecked(o.key)) return;\n\n\t\t\t\t\tconst [changes] = checkItem(o, true, \"leaf\");\n\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn [shouldChanged, partofs];\n\t\t}\n\n\t\tif (parent && direction !== \"leaf\") {\n\t\t\tconst [changes, parts] = checkItem(parent, false, \"root\");\n\n\t\t\tObject.assign(shouldChanged, changes);\n\n\t\t\tconst hasChecked = parent.children?.some(\n\t\t\t\t(o) => isChecked(o.key) && o.key !== key\n\t\t\t);\n\n\t\t\tObject.assign(partofs, hasChecked ? {} : parts, {\n\t\t\t\t[parent.key as string]: hasChecked,\n\t\t\t\t[key]: false,\n\t\t\t});\n\t\t}\n\t\tif (children?.length && direction !== \"root\") {\n\t\t\tchildren.map((o) => {\n\t\t\t\tconst [changes] = checkItem(o, false, \"leaf\");\n\n\t\t\t\tif (!isChecked(o.key)) return;\n\n\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t});\n\t\t}\n\n\t\treturn [shouldChanged, partofs];\n\t};\n\n\tconst handleCheck = (item: ITreeItem, checked: boolean) => {\n\t\tconst [shouldChanged, partofs] = checkItem(item, checked);\n\t\tconst changedKeys = Object.keys(shouldChanged);\n\n\t\tconst nextChecked = checked\n\t\t\t? Array.from(new Set([...checkedKeys, ...changedKeys]))\n\t\t\t: checkedKeys.filter((k) => !changedKeys.includes(k));\n\n\t\tsetCheckedKeys(nextChecked);\n\t\tsetPartofs((p) => ({ ...p, ...partofs }));\n\t\tonItemCheck?.(item, checked, nextChecked);\n\t};\n\n\tconst handleSelect = (key: string, item: ITreeItem) => {\n\t\tif (!props.selectable) return;\n\n\t\tsetSelectedKey(key);\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tuseEffect(() => {\n\t\tif (selected === undefined) return;\n\n\t\tsetSelectedKey(selected);\n\t}, [selected]);\n\n\tuseEffect(() => {\n\t\tnodeMapsRef.current.clear();\n\n\t\tconst { key, children } = oNodeProps;\n\t\tconst recursive = (nodes) => {\n\t\t\tnodes.map((o) => {\n\t\t\t\tnodeMapsRef.current.set(o[key], o);\n\n\t\t\t\to[children]?.length > 0 && recursive(o[children]);\n\t\t\t});\n\t\t};\n\n\t\trecursive(data);\n\t}, [data]);\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn {\n\t\t\tgetChecked: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tcheckedKeys.map((k) => {\n\t\t\t\t\tconst item = nodeMapsRef.current.get(k);\n\t\t\t\t\titems.push(item);\n\t\t\t\t});\n\t\t\t\treturn [checkedKeys, items];\n\t\t\t},\n\t\t\tgetSelected: () => {\n\t\t\t\tconst item = nodeMapsRef.current.get(selectedKey);\n\t\t\t\treturn [selectedKey, item];\n\t\t\t},\n\t\t\tgetPartofs: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tconst keys = Object.keys(partofs).filter((k) => {\n\t\t\t\t\tconst indeterminate = partofs[k];\n\n\t\t\t\t\tif (indeterminate) {\n\t\t\t\t\t\tconst item = nodeMapsRef.current.get(k);\n\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn indeterminate;\n\t\t\t\t});\n\n\t\t\t\treturn [keys, items];\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<TreeList\n\t\t\tdata={data}\n\t\t\tselected={selectedKey}\n\t\t\tchecked={checkedKeys}\n\t\t\tpartofs={partofs}\n\t\t\tnodeProps={oNodeProps}\n\t\t\tonItemCheck={handleCheck}\n\t\t\tonItemSelect={handleSelect}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nexport default Tree;\n"],"mappings":";;;;;CAKA,KAAM;CACL,OAAM;CACN,UAAQ;CACR;;CAGD,MAAM,EACL,OAAM,EAAA,EACL,KACA,UACA,UAAQ,EAAA,EACR,iBACA,WACA,cACA,aACA,GAAA,cACG;CACJ,MAAI,CAAA,aAAK,kBAAA,SAAA,SAAA;CACT,MAAM,CAAC,aAAa,kBAAkB,SAAS,QAAQ;CACvD,MAAM,CAAC,SAAA,cAAa,SAAmC,EAAA,CAAA;CACvD,MAAM,cAAU,uBAAuB,IAAO,KAAA,CAAM;CACpD,MAAM,aAAa,OAAO,OAAK,EAAI,EAAC,kBAAgB,UAAA;;oBAKpD,MACC,SACA,cACA;EACA,MAAI,EAAA,MAAA,IAAA,QAAA,aAAA;EACJ,MAAM,gBAAY,GAAO,MAAC,SAAa;EACvC,MAAM,UAAA,GAAa,MAAM,OAAM;;;AAK/B,OAAI,UAAS,cAAA,QAAA;IACZ,MAAI,eAAU,OAAe,UAAO,MACnC,MAAM,EAAA,QAAY,OAAG,CAAA,UAAe,EAAE,IAAI,CACzC;;sBAKD,QAAK,OAAA,eAAc,QAAA;yDAInB,OAAO,MAAgB,MACtB,CAAC;;gDAIH,UAAI,KAAU,MAAO;AACpB,QAAA,UAAe,EAAE,IAAG,CAAA;;;AAKnB,YAAO,EAAA,OAAoB;KAC3B;;;;GAOH,MAAI,CAAA,SAAU,SAAY,UAAU,QAAA,OAAA,OAAA;;6CAKnC,MAAM,UAAY,EAAC,IAAA,IAAO,EAAA,QAAU,IACnC;;KAGD,OAAO,MAAgB;KACrB,MAAM;IACP,CAAC;;AAEH,MAAA,UAAA,UAAA,cAAA,OACA,UAAI,KAAU,MAAO;GACpB,MAAA,CAAQ,WAAW,UAAC,GAAA,OAAA,OAAA;;;AAKnB,WAAO,EAAA,OAAoB;IAC3B;;;;EAOH,MAAM,CAAA,eAAe,WAAM,UAAW,MAAS,QAAW;EACzD,MAAM,cAAc,OAAE,KAAU,cAAW;gCAG3C,MAAM,KAAA,IAAY,IAAE,CAAA,GAAA,aAAA,GAAA,YAAA,CAAA,CAAA,GACjB,YAAW,QAAS,MAAG,CAAA,YAAgB,SAAA,EAAW,CAAC;;AAGtD,cAAA,OAAe;GAAA,GAAA;GAAY,GAAA;GAAA,EAAA;AAC3B,gBAAc,MAAM,SAAS,YAAY;;;AAI1C,MAAK,CAAC,MAAA,WAAgB;;AAGrB,iBAAe,KAAI,KAAA;;;AAIpB,MAAA,aAAgB,KAAA,EAAA;;IAGf,CAAA,SAAA,CAAA;;AAGD,cAAa,QAAG,OAAA;;EAGf,MAAM,aAAO,UAAa;AAC1B,SAAM,KAAA,MAAY;AACjB,gBAAa,QAAI,IAAA,EAAA,MAAA,EAAA;;KAGf;;;IAIH,CAAA,KAAA,CAAS;;AAGV,SAAA;GACC,kBAAO;IACN,MAAA,QAAkB,EAAA;AACjB,gBAAY,KAAC,MAAU;KACvB,MAAA,OAAY,YAAW,QAAA,IAAA,EAAA;AACtB,WAAM,KAAK,KAAE;MACb;AACD,WAAE,CAAA,aAAA,MAAA;;GAEH,mBAAC;AAEA,WAAM,CAAA,aADO,YAAK,QAAA,IAAA,YAAA,CACO;;GAE1B,kBAAC;IACD,MAAA,QAAkB,EAAA;YACJ,OAAA,KAAY,QAAI,CAAA,QAAA,MAAA;KAC7B,MAAM,gBAAc,QAAK;;MAGxB,MAAI,OAAA,YAAe,QAAA,IAAA,EAAA;AAClB,YAAM,KAAK,KAAE;;;MAId,EAAA,MAAA;;GAIF;GACA;QAGF,oBAAA,UAAA;EACE;EACA,UAAU;EACV,SAAS;EACA;EACT,WAAS;EACT,aAAW;EACX,cAAa;EACb,GAAA;EACC,CAAA"}
@@ -3,10 +3,10 @@ import { formatBytes, getFileType } from "../../js/utils.js";
3
3
  import helpericon_default from "../utils/helpericon/index.js";
4
4
  import { TFileType } from "../../js/usePreview/type.js";
5
5
  import image_default from "../image/index.js";
6
- import { title } from "radash";
6
+ import { title } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
7
+ import { ListAltRound } from "@ricons/material";
7
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
9
  import SortableContainer from "react-easy-sort";
9
- import ListAltRound from "@ricons/material/es/ListAltRound.js";
10
10
  //#region packages/components/upload/renderFile.tsx
11
11
  const ListContainer = (props) => {
12
12
  const { sortable, onSortEnd, itemProps, ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"renderFile.js","names":["Helpericon","Image","Icon"],"sources":["../../../../packages/components/upload/renderFile.tsx"],"sourcesContent":["import ListAltRound from \"@ricons/material/es/ListAltRound.js\";\nimport { title } from \"radash\";\nimport { RefObject } from \"react\";\nimport SortableContainer from \"react-easy-sort\";\nimport { TFileType } from \"../../js/usePreview/type\";\nimport { formatBytes, getFileType } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport Image from \"../image\";\nimport Helpericon from \"../utils/helpericon\";\nimport { IUploadItem } from \"./type\";\n\nexport const ListContainer = (props) => {\n\tconst { sortable, onSortEnd, itemProps, ...restProps } = props;\n\tconst customProps = {\n\t\tclassName: \"i-upload-list\",\n\t\tonClick: (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t},\n\t};\n\n\tif (!sortable) {\n\t\treturn <div {...customProps} {...restProps} />;\n\t}\n\treturn (\n\t\t<SortableContainer\n\t\t\tdraggedItemClassName='i-upload-item-dragged'\n\t\t\tonSortEnd={onSortEnd}\n\t\t\t{...customProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nconst FileListItem = (\n\tprops: IUploadItem & { ref?: RefObject<HTMLDivElement | null> }\n) => {\n\tconst { ref, mode, index, file, renderItem, onRemove, onPreview } = props;\n\n\tif (!file) return \"\";\n\n\tconst { id, name, size, url, src } = file;\n\tconst type = getFileType(name, file.type);\n\n\tif (renderItem) {\n\t\treturn renderItem(file, index);\n\t}\n\n\tconst CloseBtn = (\n\t\t<Helpericon\n\t\t\tactive\n\t\t\tclassName='i-upload-delete'\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t\tonRemove(index);\n\t\t\t}}\n\t\t/>\n\t);\n\n\tswitch (mode) {\n\t\tcase \"card\":\n\t\t\tlet node = <></>;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase TFileType.IMAGE:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tlazyload\n\t\t\t\t\t\t\tsrc={url || src}\n\t\t\t\t\t\t\tfit='cover'\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase TFileType.VIDEO:\n\t\t\t\t\tnode = <video src={url || src} preload='none' />;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Icon icon={<ListAltRound />} />\n\t\t\t\t\t\t\t<span className='i-upload-file-name'>\n\t\t\t\t\t\t\t\t{title(name)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttitle={name}\n\t\t\t\t\tclassName='i-upload-item-card'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t{node}\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tkey={id}\n\t\t\t\t\tclassName='i-upload-item'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t<span>{name}</span>\n\n\t\t\t\t\t<i className='i-upload-size'>{formatBytes(size ?? 0)}</i>\n\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t}\n};\n\nexport default FileListItem;\n"],"mappings":";;;;;;;;;;AAWA,MAAa,iBAAiB,UAAU;CACvC,MAAM,EAAE,UAAU,WAAW,WAAW,GAAG,cAAc;CACzD,MAAM,cAAc;EACnB,WAAW;EACX,UAAU,MAAM;AACf,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;;EAEnB;AAED,KAAI,CAAC,SACJ,QAAO,oBAAC,OAAD;EAAK,GAAI;EAAa,GAAI;EAAa,CAAA;AAE/C,QACC,oBAAC,mBAAD;EACC,sBAAqB;EACV;EACX,GAAI;EACJ,GAAI;EACH,CAAA;;AAIJ,MAAM,gBACL,UACI;CACJ,MAAM,EAAE,KAAK,MAAM,OAAO,MAAM,YAAY,UAAU,cAAc;AAEpE,KAAI,CAAC,KAAM,QAAO;CAElB,MAAM,EAAE,IAAI,MAAM,MAAM,KAAK,QAAQ;CACrC,MAAM,OAAO,YAAY,MAAM,KAAK,KAAK;AAEzC,KAAI,WACH,QAAO,WAAW,MAAM,MAAM;CAG/B,MAAM,WACL,oBAACA,oBAAD;EACC,QAAA;EACA,WAAU;EACV,UAAU,MAAM;AACf,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;AAClB,YAAS,MAAM;;EAEf,CAAA;AAGH,SAAQ,MAAR;EACC,KAAK;GACJ,IAAI,OAAO,oBAAA,UAAA,EAAK,CAAA;AAEhB,WAAQ,MAAR;IACC,KAAK,UAAU;AACd,YACC,oBAACC,eAAD;MACC,UAAA;MACA,KAAK,OAAO;MACZ,KAAI;MACJ,cAAc,MAAM,EAAE,gBAAgB;MACrC,CAAA;AAEH;IACD,KAAK,UAAU;AACd,YAAO,oBAAC,SAAD;MAAO,KAAK,OAAO;MAAK,SAAQ;MAAS,CAAA;AAChD;IACD;AACC,YACC,qBAAA,UAAA,EAAA,UAAA,CACC,oBAACC,cAAD,EAAM,MAAM,oBAAC,cAAD,EAAgB,CAAA,EAAI,CAAA,EAChC,oBAAC,QAAD;MAAM,WAAU;gBACd,MAAM,KAAK;MACN,CAAA,CACL,EAAA,CAAA;AAEJ;;AAGF,UACC,qBAAC,OAAD;IACM;IACL,OAAO;IACP,WAAU;IACV,eAAe,YAAY,MAAM;cAJlC,CAME,MACA,SACI;;EAER,QACC,QACC,qBAAC,OAAD;GACM;GAEL,WAAU;GACV,eAAe,YAAY,MAAM;aAJlC;IAMC,oBAAC,QAAD,EAAA,UAAO,MAAY,CAAA;IAEnB,oBAAC,KAAD;KAAG,WAAU;eAAiB,YAAY,QAAQ,EAAE;KAAK,CAAA;IAExD;IACI;KATA,GASA"}
1
+ {"version":3,"file":"renderFile.js","names":["Helpericon","Image","Icon"],"sources":["../../../../packages/components/upload/renderFile.tsx"],"sourcesContent":["import { ListAltRound } from \"@ricons/material\";\nimport { title } from \"radash\";\nimport { RefObject } from \"react\";\nimport SortableContainer from \"react-easy-sort\";\nimport { TFileType } from \"../../js/usePreview/type\";\nimport { formatBytes, getFileType } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport Image from \"../image\";\nimport Helpericon from \"../utils/helpericon\";\nimport { IUploadItem } from \"./type\";\n\nexport const ListContainer = (props) => {\n\tconst { sortable, onSortEnd, itemProps, ...restProps } = props;\n\tconst customProps = {\n\t\tclassName: \"i-upload-list\",\n\t\tonClick: (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t},\n\t};\n\n\tif (!sortable) {\n\t\treturn <div {...customProps} {...restProps} />;\n\t}\n\treturn (\n\t\t<SortableContainer\n\t\t\tdraggedItemClassName='i-upload-item-dragged'\n\t\t\tonSortEnd={onSortEnd}\n\t\t\t{...customProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nconst FileListItem = (\n\tprops: IUploadItem & { ref?: RefObject<HTMLDivElement | null> }\n) => {\n\tconst { ref, mode, index, file, renderItem, onRemove, onPreview } = props;\n\n\tif (!file) return \"\";\n\n\tconst { id, name, size, url, src } = file;\n\tconst type = getFileType(name, file.type);\n\n\tif (renderItem) {\n\t\treturn renderItem(file, index);\n\t}\n\n\tconst CloseBtn = (\n\t\t<Helpericon\n\t\t\tactive\n\t\t\tclassName='i-upload-delete'\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t\tonRemove(index);\n\t\t\t}}\n\t\t/>\n\t);\n\n\tswitch (mode) {\n\t\tcase \"card\":\n\t\t\tlet node = <></>;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase TFileType.IMAGE:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tlazyload\n\t\t\t\t\t\t\tsrc={url || src}\n\t\t\t\t\t\t\tfit='cover'\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase TFileType.VIDEO:\n\t\t\t\t\tnode = <video src={url || src} preload='none' />;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Icon icon={<ListAltRound />} />\n\t\t\t\t\t\t\t<span className='i-upload-file-name'>\n\t\t\t\t\t\t\t\t{title(name)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttitle={name}\n\t\t\t\t\tclassName='i-upload-item-card'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t{node}\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tkey={id}\n\t\t\t\t\tclassName='i-upload-item'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t<span>{name}</span>\n\n\t\t\t\t\t<i className='i-upload-size'>{formatBytes(size ?? 0)}</i>\n\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t}\n};\n\nexport default FileListItem;\n"],"mappings":";;;;;;;;;;AAWA,MAAa,iBAAiB,UAAU;CACvC,MAAM,EAAE,UAAU,WAAW,WAAW,GAAG,cAAc;CACzD,MAAM,cAAc;EACnB,WAAW;EACX,UAAU,MAAM;AACf,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;;EAEnB;AAED,KAAI,CAAC,SACJ,QAAO,oBAAC,OAAD;EAAK,GAAI;EAAa,GAAI;EAAa,CAAA;AAE/C,QACC,oBAAC,mBAAD;EACC,sBAAqB;EACV;EACX,GAAI;EACJ,GAAI;EACH,CAAA;;AAIJ,MAAM,gBACL,UACI;CACJ,MAAM,EAAE,KAAK,MAAM,OAAO,MAAM,YAAY,UAAU,cAAc;AAEpE,KAAI,CAAC,KAAM,QAAO;CAElB,MAAM,EAAE,IAAI,MAAM,MAAM,KAAK,QAAQ;CACrC,MAAM,OAAO,YAAY,MAAM,KAAK,KAAK;AAEzC,KAAI,WACH,QAAO,WAAW,MAAM,MAAM;CAG/B,MAAM,WACL,oBAACA,oBAAD;EACC,QAAA;EACA,WAAU;EACV,UAAU,MAAM;AACf,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;AAClB,YAAS,MAAM;;EAEf,CAAA;AAGH,SAAQ,MAAR;EACC,KAAK;GACJ,IAAI,OAAO,oBAAA,UAAA,EAAK,CAAA;AAEhB,WAAQ,MAAR;IACC,KAAK,UAAU;AACd,YACC,oBAACC,eAAD;MACC,UAAA;MACA,KAAK,OAAO;MACZ,KAAI;MACJ,cAAc,MAAM,EAAE,gBAAgB;MACrC,CAAA;AAEH;IACD,KAAK,UAAU;AACd,YAAO,oBAAC,SAAD;MAAO,KAAK,OAAO;MAAK,SAAQ;MAAS,CAAA;AAChD;IACD;AACC,YACC,qBAAA,UAAA,EAAA,UAAA,CACC,oBAACC,cAAD,EAAM,MAAM,oBAAC,cAAD,EAAgB,CAAA,EAAI,CAAA,EAChC,oBAAC,QAAD;MAAM,WAAU;gBACd,MAAM,KAAK;MACN,CAAA,CACL,EAAA,CAAA;AAEJ;;AAGF,UACC,qBAAC,OAAD;IACM;IACL,OAAO;IACP,WAAU;IACV,eAAe,YAAY,MAAM;cAJlC,CAME,MACA,SACI;;EAER,QACC,QACC,qBAAC,OAAD;GACM;GAEL,WAAU;GACV,eAAe,YAAY,MAAM;aAJlC;IAMC,oBAAC,QAAD,EAAA,UAAO,MAAY,CAAA;IAEnB,oBAAC,KAAD;KAAG,WAAU;eAAiB,YAAY,QAAQ,EAAE;KAAK,CAAA;IAExD;IACI;KATA,GASA"}
@@ -5,11 +5,10 @@ import usePreview from "../../js/usePreview/index.js";
5
5
  import InputContainer from "../input/container.js";
6
6
  import FileListItem, { ListContainer } from "./renderFile.js";
7
7
  import classNames from "classnames";
8
- import { uid } from "radash";
8
+ import { uid } 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, useMemo, useRef, useState } from "react";
10
+ import { DriveFolderUploadOutlined, PlusSharp } from "@ricons/material";
10
11
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
- import DriveFolderUploadOutlined from "@ricons/material/es/DriveFolderUploadOutlined.js";
12
- import PlusSharp from "@ricons/material/es/PlusSharp.js";
13
12
  import { SortableItem } from "react-easy-sort";
14
13
  //#region packages/components/upload/upload.tsx
15
14
  const Upload = (props) => {