@ioca/react 1.4.78 → 1.4.80

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 (606) hide show
  1. package/lib/cjs/_virtual/_rolldown/runtime.js +23 -0
  2. package/lib/cjs/components/affix/affix.js +66 -0
  3. package/lib/cjs/components/affix/affix.js.map +1 -0
  4. package/lib/cjs/components/affix/index.js +6 -0
  5. package/lib/cjs/components/affix/index.js.map +1 -0
  6. package/lib/cjs/components/affix/totop.js +25 -0
  7. package/lib/cjs/components/affix/totop.js.map +1 -0
  8. package/lib/cjs/components/badge/badge.js +24 -0
  9. package/lib/cjs/components/badge/badge.js.map +1 -0
  10. package/lib/cjs/components/badge/index.js +6 -0
  11. package/lib/cjs/components/badge/index.js.map +1 -0
  12. package/lib/cjs/components/button/button.js +64 -0
  13. package/lib/cjs/components/button/button.js.map +1 -0
  14. package/lib/cjs/components/button/confirm.js +60 -0
  15. package/lib/cjs/components/button/confirm.js.map +1 -0
  16. package/lib/cjs/components/button/group.js +26 -0
  17. package/lib/cjs/components/button/group.js.map +1 -0
  18. package/lib/cjs/components/button/index.js +6 -0
  19. package/lib/cjs/components/button/index.js.map +1 -0
  20. package/lib/cjs/components/button/toggle.js +46 -0
  21. package/lib/cjs/components/button/toggle.js.map +1 -0
  22. package/lib/cjs/components/card/card.js +33 -0
  23. package/lib/cjs/components/card/card.js.map +1 -0
  24. package/lib/cjs/components/card/index.js +6 -0
  25. package/lib/cjs/components/card/index.js.map +1 -0
  26. package/lib/cjs/components/checkbox/checkbox.js +66 -0
  27. package/lib/cjs/components/checkbox/checkbox.js.map +1 -0
  28. package/lib/cjs/components/checkbox/index.js +6 -0
  29. package/lib/cjs/components/checkbox/index.js.map +1 -0
  30. package/lib/cjs/components/checkbox/item.js +59 -0
  31. package/lib/cjs/components/checkbox/item.js.map +1 -0
  32. package/lib/cjs/components/collapse/collapse.js +84 -0
  33. package/lib/cjs/components/collapse/collapse.js.map +1 -0
  34. package/lib/cjs/components/collapse/index.js +6 -0
  35. package/lib/cjs/components/collapse/index.js.map +1 -0
  36. package/lib/cjs/components/collapse/item.js +10 -0
  37. package/lib/cjs/components/collapse/item.js.map +1 -0
  38. package/lib/cjs/components/datagrid/cell.js +39 -0
  39. package/lib/cjs/components/datagrid/cell.js.map +1 -0
  40. package/lib/cjs/components/datagrid/datagrid.js +140 -0
  41. package/lib/cjs/components/datagrid/datagrid.js.map +1 -0
  42. package/lib/cjs/components/datagrid/index.js +6 -0
  43. package/lib/cjs/components/datagrid/index.js.map +1 -0
  44. package/lib/cjs/components/datagrid/resize.js +42 -0
  45. package/lib/cjs/components/datagrid/resize.js.map +1 -0
  46. package/lib/cjs/components/datagrid/row.js +68 -0
  47. package/lib/cjs/components/datagrid/row.js.map +1 -0
  48. package/lib/cjs/components/datagrid/sorter.js +28 -0
  49. package/lib/cjs/components/datagrid/sorter.js.map +1 -0
  50. package/lib/cjs/components/description/description.js +43 -0
  51. package/lib/cjs/components/description/description.js.map +1 -0
  52. package/lib/cjs/components/description/index.js +6 -0
  53. package/lib/cjs/components/description/index.js.map +1 -0
  54. package/lib/cjs/components/drawer/drawer.js +84 -0
  55. package/lib/cjs/components/drawer/drawer.js.map +1 -0
  56. package/lib/cjs/components/drawer/index.js +6 -0
  57. package/lib/cjs/components/drawer/index.js.map +1 -0
  58. package/lib/cjs/components/dropdown/dropdown.js +38 -0
  59. package/lib/cjs/components/dropdown/dropdown.js.map +1 -0
  60. package/lib/cjs/components/dropdown/index.js +6 -0
  61. package/lib/cjs/components/dropdown/index.js.map +1 -0
  62. package/lib/cjs/components/dropdown/item.js +36 -0
  63. package/lib/cjs/components/dropdown/item.js.map +1 -0
  64. package/lib/cjs/components/editor/controls.js +89 -0
  65. package/lib/cjs/components/editor/controls.js.map +1 -0
  66. package/lib/cjs/components/editor/editor.js +91 -0
  67. package/lib/cjs/components/editor/editor.js.map +1 -0
  68. package/lib/cjs/components/editor/index.js +6 -0
  69. package/lib/cjs/components/editor/index.js.map +1 -0
  70. package/lib/cjs/components/flex/flex.js +31 -0
  71. package/lib/cjs/components/flex/flex.js.map +1 -0
  72. package/lib/cjs/components/flex/index.js +6 -0
  73. package/lib/cjs/components/flex/index.js.map +1 -0
  74. package/lib/cjs/components/form/context.js +7 -0
  75. package/lib/cjs/components/form/context.js.map +1 -0
  76. package/lib/cjs/components/form/field.js +71 -0
  77. package/lib/cjs/components/form/field.js.map +1 -0
  78. package/lib/cjs/components/form/form.js +64 -0
  79. package/lib/cjs/components/form/form.js.map +1 -0
  80. package/lib/cjs/components/form/index.js +6 -0
  81. package/lib/cjs/components/form/index.js.map +1 -0
  82. package/lib/cjs/components/form/useConfig.js +45 -0
  83. package/lib/cjs/components/form/useConfig.js.map +1 -0
  84. package/lib/cjs/components/form/useForm.js +123 -0
  85. package/lib/cjs/components/form/useForm.js.map +1 -0
  86. package/lib/cjs/components/icon/icon.js +24 -0
  87. package/lib/cjs/components/icon/icon.js.map +1 -0
  88. package/lib/cjs/components/icon/index.js +6 -0
  89. package/lib/cjs/components/icon/index.js.map +1 -0
  90. package/lib/cjs/components/image/image.js +86 -0
  91. package/lib/cjs/components/image/image.js.map +1 -0
  92. package/lib/cjs/components/image/index.js +6 -0
  93. package/lib/cjs/components/image/index.js.map +1 -0
  94. package/lib/cjs/components/image/list.js +49 -0
  95. package/lib/cjs/components/image/list.js.map +1 -0
  96. package/lib/cjs/components/input/container.js +30 -0
  97. package/lib/cjs/components/input/container.js.map +1 -0
  98. package/lib/cjs/components/input/index.js +6 -0
  99. package/lib/cjs/components/input/index.js.map +1 -0
  100. package/lib/cjs/components/input/input.js +113 -0
  101. package/lib/cjs/components/input/input.js.map +1 -0
  102. package/lib/cjs/components/input/number.js +138 -0
  103. package/lib/cjs/components/input/number.js.map +1 -0
  104. package/lib/cjs/components/input/range.js +134 -0
  105. package/lib/cjs/components/input/range.js.map +1 -0
  106. package/lib/cjs/components/input/textarea.js +61 -0
  107. package/lib/cjs/components/input/textarea.js.map +1 -0
  108. package/lib/cjs/components/list/index.js +6 -0
  109. package/lib/cjs/components/list/index.js.map +1 -0
  110. package/lib/cjs/components/list/item.js +30 -0
  111. package/lib/cjs/components/list/item.js.map +1 -0
  112. package/lib/cjs/components/list/list.js +30 -0
  113. package/lib/cjs/components/list/list.js.map +1 -0
  114. package/lib/cjs/components/loading/index.js +6 -0
  115. package/lib/cjs/components/loading/index.js.map +1 -0
  116. package/lib/cjs/components/loading/loading.js +39 -0
  117. package/lib/cjs/components/loading/loading.js.map +1 -0
  118. package/lib/cjs/components/message/index.js +6 -0
  119. package/lib/cjs/components/message/index.js.map +1 -0
  120. package/lib/cjs/components/message/message.js +197 -0
  121. package/lib/cjs/components/message/message.js.map +1 -0
  122. package/lib/cjs/components/modal/content.js +57 -0
  123. package/lib/cjs/components/modal/content.js.map +1 -0
  124. package/lib/cjs/components/modal/context.js +7 -0
  125. package/lib/cjs/components/modal/context.js.map +1 -0
  126. package/lib/cjs/components/modal/hookModal.js +28 -0
  127. package/lib/cjs/components/modal/hookModal.js.map +1 -0
  128. package/lib/cjs/components/modal/index.js +6 -0
  129. package/lib/cjs/components/modal/index.js.map +1 -0
  130. package/lib/cjs/components/modal/modal.js +117 -0
  131. package/lib/cjs/components/modal/modal.js.map +1 -0
  132. package/lib/cjs/components/modal/useModal.js +39 -0
  133. package/lib/cjs/components/modal/useModal.js.map +1 -0
  134. package/lib/cjs/components/pagination/index.js +6 -0
  135. package/lib/cjs/components/pagination/index.js.map +1 -0
  136. package/lib/cjs/components/pagination/page.js +31 -0
  137. package/lib/cjs/components/pagination/page.js.map +1 -0
  138. package/lib/cjs/components/pagination/pagination.js +86 -0
  139. package/lib/cjs/components/pagination/pagination.js.map +1 -0
  140. package/lib/cjs/components/picker/colors/footer.js +64 -0
  141. package/lib/cjs/components/picker/colors/footer.js.map +1 -0
  142. package/lib/cjs/components/picker/colors/handle.js +25 -0
  143. package/lib/cjs/components/picker/colors/handle.js.map +1 -0
  144. package/lib/cjs/components/picker/colors/index.js +81 -0
  145. package/lib/cjs/components/picker/colors/index.js.map +1 -0
  146. package/lib/cjs/components/picker/dates/dates.js +68 -0
  147. package/lib/cjs/components/picker/dates/dates.js.map +1 -0
  148. package/lib/cjs/components/picker/dates/index.js +97 -0
  149. package/lib/cjs/components/picker/dates/index.js.map +1 -0
  150. package/lib/cjs/components/picker/dates/panel.js +151 -0
  151. package/lib/cjs/components/picker/dates/panel.js.map +1 -0
  152. package/lib/cjs/components/picker/time/index.js +73 -0
  153. package/lib/cjs/components/picker/time/index.js.map +1 -0
  154. package/lib/cjs/components/picker/time/item.js +20 -0
  155. package/lib/cjs/components/picker/time/item.js.map +1 -0
  156. package/lib/cjs/components/picker/time/panel.js +144 -0
  157. package/lib/cjs/components/picker/time/panel.js.map +1 -0
  158. package/lib/cjs/components/popconfirm/index.js +6 -0
  159. package/lib/cjs/components/popconfirm/index.js.map +1 -0
  160. package/lib/cjs/components/popconfirm/popconfirm.js +86 -0
  161. package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -0
  162. package/lib/cjs/components/popup/content.js +56 -0
  163. package/lib/cjs/components/popup/content.js.map +1 -0
  164. package/lib/cjs/components/popup/index.js +6 -0
  165. package/lib/cjs/components/popup/index.js.map +1 -0
  166. package/lib/cjs/components/popup/popup.js +425 -0
  167. package/lib/cjs/components/popup/popup.js.map +1 -0
  168. package/lib/cjs/components/progress/circle.js +45 -0
  169. package/lib/cjs/components/progress/circle.js.map +1 -0
  170. package/lib/cjs/components/progress/index.js +6 -0
  171. package/lib/cjs/components/progress/index.js.map +1 -0
  172. package/lib/cjs/components/progress/line.js +27 -0
  173. package/lib/cjs/components/progress/line.js.map +1 -0
  174. package/lib/cjs/components/progress/progress.js +100 -0
  175. package/lib/cjs/components/progress/progress.js.map +1 -0
  176. package/lib/cjs/components/radio/index.js +6 -0
  177. package/lib/cjs/components/radio/index.js.map +1 -0
  178. package/lib/cjs/components/radio/item.js +34 -0
  179. package/lib/cjs/components/radio/item.js.map +1 -0
  180. package/lib/cjs/components/radio/radio.js +62 -0
  181. package/lib/cjs/components/radio/radio.js.map +1 -0
  182. package/lib/cjs/components/resizable/index.js +6 -0
  183. package/lib/cjs/components/resizable/index.js.map +1 -0
  184. package/lib/cjs/components/resizable/resizable.js +81 -0
  185. package/lib/cjs/components/resizable/resizable.js.map +1 -0
  186. package/lib/cjs/components/river/index.js +6 -0
  187. package/lib/cjs/components/river/index.js.map +1 -0
  188. package/lib/cjs/components/river/river.js +116 -0
  189. package/lib/cjs/components/river/river.js.map +1 -0
  190. package/lib/cjs/components/select/index.js +6 -0
  191. package/lib/cjs/components/select/index.js.map +1 -0
  192. package/lib/cjs/components/select/options.js +76 -0
  193. package/lib/cjs/components/select/options.js.map +1 -0
  194. package/lib/cjs/components/select/select.js +155 -0
  195. package/lib/cjs/components/select/select.js.map +1 -0
  196. package/lib/cjs/components/step/divider.js +10 -0
  197. package/lib/cjs/components/step/divider.js.map +1 -0
  198. package/lib/cjs/components/step/index.js +6 -0
  199. package/lib/cjs/components/step/index.js.map +1 -0
  200. package/lib/cjs/components/step/item.js +60 -0
  201. package/lib/cjs/components/step/item.js.map +1 -0
  202. package/lib/cjs/components/step/step.js +42 -0
  203. package/lib/cjs/components/step/step.js.map +1 -0
  204. package/lib/cjs/components/swiper/index.js +6 -0
  205. package/lib/cjs/components/swiper/index.js.map +1 -0
  206. package/lib/cjs/components/swiper/item.js +39 -0
  207. package/lib/cjs/components/swiper/item.js.map +1 -0
  208. package/lib/cjs/components/swiper/swiper.js +262 -0
  209. package/lib/cjs/components/swiper/swiper.js.map +1 -0
  210. package/lib/cjs/components/tabs/index.js +6 -0
  211. package/lib/cjs/components/tabs/index.js.map +1 -0
  212. package/lib/cjs/components/tabs/item.js +10 -0
  213. package/lib/cjs/components/tabs/item.js.map +1 -0
  214. package/lib/cjs/components/tabs/tabs.js +272 -0
  215. package/lib/cjs/components/tabs/tabs.js.map +1 -0
  216. package/lib/cjs/components/tag/index.js +6 -0
  217. package/lib/cjs/components/tag/index.js.map +1 -0
  218. package/lib/cjs/components/tag/tag.js +32 -0
  219. package/lib/cjs/components/tag/tag.js.map +1 -0
  220. package/lib/cjs/components/text/highlight.js +35 -0
  221. package/lib/cjs/components/text/highlight.js.map +1 -0
  222. package/lib/cjs/components/text/index.js +6 -0
  223. package/lib/cjs/components/text/index.js.map +1 -0
  224. package/lib/cjs/components/text/number.js +32 -0
  225. package/lib/cjs/components/text/number.js.map +1 -0
  226. package/lib/cjs/components/text/text.js +39 -0
  227. package/lib/cjs/components/text/text.js.map +1 -0
  228. package/lib/cjs/components/text/time.js +24 -0
  229. package/lib/cjs/components/text/time.js.map +1 -0
  230. package/lib/cjs/components/tree/index.js +6 -0
  231. package/lib/cjs/components/tree/index.js.map +1 -0
  232. package/lib/cjs/components/tree/item.js +136 -0
  233. package/lib/cjs/components/tree/item.js.map +1 -0
  234. package/lib/cjs/components/tree/tree.js +127 -0
  235. package/lib/cjs/components/tree/tree.js.map +1 -0
  236. package/lib/cjs/components/upload/index.js +6 -0
  237. package/lib/cjs/components/upload/index.js.map +1 -0
  238. package/lib/cjs/components/upload/renderFile.js +99 -0
  239. package/lib/cjs/components/upload/renderFile.js.map +1 -0
  240. package/lib/cjs/components/upload/upload.js +165 -0
  241. package/lib/cjs/components/upload/upload.js.map +1 -0
  242. package/lib/cjs/components/utils/empty/index.js +17 -0
  243. package/lib/cjs/components/utils/empty/index.js.map +1 -0
  244. package/lib/cjs/components/utils/helpericon/helpericon.js +24 -0
  245. package/lib/cjs/components/utils/helpericon/helpericon.js.map +1 -0
  246. package/lib/cjs/components/utils/helpericon/index.js +6 -0
  247. package/lib/cjs/components/utils/helpericon/index.js.map +1 -0
  248. package/lib/cjs/components/video/index.js +6 -0
  249. package/lib/cjs/components/video/index.js.map +1 -0
  250. package/lib/cjs/components/video/video.js +237 -0
  251. package/lib/cjs/components/video/video.js.map +1 -0
  252. package/lib/cjs/index.js +83 -0
  253. package/lib/cjs/js/hooks.js +259 -0
  254. package/lib/cjs/js/hooks.js.map +1 -0
  255. package/lib/cjs/js/usePreview/content.js +197 -0
  256. package/lib/cjs/js/usePreview/content.js.map +1 -0
  257. package/lib/cjs/js/usePreview/index.js +39 -0
  258. package/lib/cjs/js/usePreview/index.js.map +1 -0
  259. package/lib/cjs/js/usePreview/renderFile.js +28 -0
  260. package/lib/cjs/js/usePreview/renderFile.js.map +1 -0
  261. package/lib/cjs/js/usePreview/type.js +15 -0
  262. package/lib/cjs/js/usePreview/type.js.map +1 -0
  263. package/lib/cjs/js/useRipple/index.js +45 -0
  264. package/lib/cjs/js/useRipple/index.js.map +1 -0
  265. package/lib/cjs/js/useTheme/index.js +30 -0
  266. package/lib/cjs/js/useTheme/index.js.map +1 -0
  267. package/lib/cjs/js/utils.js +284 -0
  268. package/lib/cjs/js/utils.js.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 +8 -3
  426. package/lib/css/index.css +0 -1
  427. package/lib/types/components/affix/affix.d.ts +0 -7
  428. package/lib/types/components/affix/index.d.ts +0 -2
  429. package/lib/types/components/affix/totop.d.ts +0 -3
  430. package/lib/types/components/affix/type.d.ts +0 -10
  431. package/lib/types/components/area/area.d.ts +0 -3
  432. package/lib/types/components/area/index.d.ts +0 -2
  433. package/lib/types/components/area/item.d.ts +0 -3
  434. package/lib/types/components/area/type.d.ts +0 -12
  435. package/lib/types/components/badge/badge.d.ts +0 -3
  436. package/lib/types/components/badge/index.d.ts +0 -2
  437. package/lib/types/components/badge/type.d.ts +0 -12
  438. package/lib/types/components/button/button.d.ts +0 -3
  439. package/lib/types/components/button/confirm.d.ts +0 -2
  440. package/lib/types/components/button/group.d.ts +0 -2
  441. package/lib/types/components/button/index.d.ts +0 -2
  442. package/lib/types/components/button/toggle.d.ts +0 -2
  443. package/lib/types/components/button/type.d.ts +0 -51
  444. package/lib/types/components/card/card.d.ts +0 -3
  445. package/lib/types/components/card/index.d.ts +0 -2
  446. package/lib/types/components/card/type.d.ts +0 -10
  447. package/lib/types/components/checkbox/checkbox.d.ts +0 -7
  448. package/lib/types/components/checkbox/index.d.ts +0 -2
  449. package/lib/types/components/checkbox/item.d.ts +0 -2
  450. package/lib/types/components/checkbox/type.d.ts +0 -22
  451. package/lib/types/components/collapse/collapse.d.ts +0 -7
  452. package/lib/types/components/collapse/index.d.ts +0 -2
  453. package/lib/types/components/collapse/item.d.ts +0 -2
  454. package/lib/types/components/collapse/type.d.ts +0 -20
  455. package/lib/types/components/datagrid/cell.d.ts +0 -13
  456. package/lib/types/components/datagrid/datagrid.d.ts +0 -3
  457. package/lib/types/components/datagrid/index.d.ts +0 -2
  458. package/lib/types/components/datagrid/resize.d.ts +0 -1
  459. package/lib/types/components/datagrid/row.d.ts +0 -3
  460. package/lib/types/components/datagrid/sorter.d.ts +0 -1
  461. package/lib/types/components/datagrid/type.d.ts +0 -61
  462. package/lib/types/components/description/description.d.ts +0 -3
  463. package/lib/types/components/description/index.d.ts +0 -2
  464. package/lib/types/components/description/type.d.ts +0 -23
  465. package/lib/types/components/drawer/drawer.d.ts +0 -3
  466. package/lib/types/components/drawer/index.d.ts +0 -2
  467. package/lib/types/components/drawer/type.d.ts +0 -13
  468. package/lib/types/components/drawer/useDrawer.d.ts +0 -0
  469. package/lib/types/components/dropdown/dropdown.d.ts +0 -6
  470. package/lib/types/components/dropdown/index.d.ts +0 -2
  471. package/lib/types/components/dropdown/item.d.ts +0 -3
  472. package/lib/types/components/dropdown/type.d.ts +0 -11
  473. package/lib/types/components/editor/controls.d.ts +0 -5
  474. package/lib/types/components/editor/editor.d.ts +0 -3
  475. package/lib/types/components/editor/index.d.ts +0 -2
  476. package/lib/types/components/editor/type.d.ts +0 -17
  477. package/lib/types/components/flex/flex.d.ts +0 -3
  478. package/lib/types/components/flex/index.d.ts +0 -2
  479. package/lib/types/components/flex/type.d.ts +0 -10
  480. package/lib/types/components/form/context.d.ts +0 -3
  481. package/lib/types/components/form/field.d.ts +0 -3
  482. package/lib/types/components/form/form.d.ts +0 -11
  483. package/lib/types/components/form/index.d.ts +0 -2
  484. package/lib/types/components/form/type.d.ts +0 -40
  485. package/lib/types/components/form/useConfig.d.ts +0 -5
  486. package/lib/types/components/form/useForm.d.ts +0 -14
  487. package/lib/types/components/icon/icon.d.ts +0 -3
  488. package/lib/types/components/icon/index.d.ts +0 -2
  489. package/lib/types/components/icon/type.d.ts +0 -9
  490. package/lib/types/components/image/image.d.ts +0 -3
  491. package/lib/types/components/image/index.d.ts +0 -2
  492. package/lib/types/components/image/list.d.ts +0 -2
  493. package/lib/types/components/image/type.d.ts +0 -30
  494. package/lib/types/components/input/container.d.ts +0 -2
  495. package/lib/types/components/input/index.d.ts +0 -2
  496. package/lib/types/components/input/input.d.ts +0 -3
  497. package/lib/types/components/input/number.d.ts +0 -3
  498. package/lib/types/components/input/range.d.ts +0 -3
  499. package/lib/types/components/input/textarea.d.ts +0 -3
  500. package/lib/types/components/input/type.d.ts +0 -61
  501. package/lib/types/components/list/index.d.ts +0 -2
  502. package/lib/types/components/list/item.d.ts +0 -3
  503. package/lib/types/components/list/list.d.ts +0 -6
  504. package/lib/types/components/list/type.d.ts +0 -13
  505. package/lib/types/components/loading/index.d.ts +0 -2
  506. package/lib/types/components/loading/loading.d.ts +0 -3
  507. package/lib/types/components/loading/type.d.ts +0 -7
  508. package/lib/types/components/message/index.d.ts +0 -2
  509. package/lib/types/components/message/message.d.ts +0 -27
  510. package/lib/types/components/message/type.d.ts +0 -29
  511. package/lib/types/components/modal/content.d.ts +0 -2
  512. package/lib/types/components/modal/context.d.ts +0 -2
  513. package/lib/types/components/modal/hookModal.d.ts +0 -6
  514. package/lib/types/components/modal/index.d.ts +0 -2
  515. package/lib/types/components/modal/modal.d.ts +0 -3
  516. package/lib/types/components/modal/type.d.ts +0 -34
  517. package/lib/types/components/modal/useModal.d.ts +0 -6
  518. package/lib/types/components/pagination/index.d.ts +0 -2
  519. package/lib/types/components/pagination/page.d.ts +0 -3
  520. package/lib/types/components/pagination/pagination.d.ts +0 -3
  521. package/lib/types/components/pagination/type.d.ts +0 -20
  522. package/lib/types/components/picker/colors/footer.d.ts +0 -6
  523. package/lib/types/components/picker/colors/handle.d.ts +0 -2
  524. package/lib/types/components/picker/colors/index.d.ts +0 -2
  525. package/lib/types/components/picker/dates/dates.d.ts +0 -5
  526. package/lib/types/components/picker/dates/index.d.ts +0 -3
  527. package/lib/types/components/picker/dates/panel.d.ts +0 -3
  528. package/lib/types/components/picker/index.d.ts +0 -10
  529. package/lib/types/components/picker/time/index.d.ts +0 -2
  530. package/lib/types/components/picker/time/item.d.ts +0 -1
  531. package/lib/types/components/picker/time/panel.d.ts +0 -1
  532. package/lib/types/components/picker/type.d.ts +0 -38
  533. package/lib/types/components/popconfirm/index.d.ts +0 -2
  534. package/lib/types/components/popconfirm/popconfirm.d.ts +0 -3
  535. package/lib/types/components/popconfirm/type.d.ts +0 -11
  536. package/lib/types/components/popup/content.d.ts +0 -3
  537. package/lib/types/components/popup/index.d.ts +0 -2
  538. package/lib/types/components/popup/popup.d.ts +0 -2
  539. package/lib/types/components/popup/type.d.ts +0 -25
  540. package/lib/types/components/progress/circle.d.ts +0 -2
  541. package/lib/types/components/progress/index.d.ts +0 -2
  542. package/lib/types/components/progress/line.d.ts +0 -9
  543. package/lib/types/components/progress/progress.d.ts +0 -3
  544. package/lib/types/components/progress/type.d.ts +0 -20
  545. package/lib/types/components/radio/index.d.ts +0 -2
  546. package/lib/types/components/radio/item.d.ts +0 -2
  547. package/lib/types/components/radio/radio.d.ts +0 -7
  548. package/lib/types/components/radio/type.d.ts +0 -18
  549. package/lib/types/components/resizable/index.d.ts +0 -2
  550. package/lib/types/components/resizable/resizable.d.ts +0 -3
  551. package/lib/types/components/resizable/type.d.ts +0 -16
  552. package/lib/types/components/river/index.d.ts +0 -2
  553. package/lib/types/components/river/river.d.ts +0 -3
  554. package/lib/types/components/river/type.d.ts +0 -5
  555. package/lib/types/components/select/index.d.ts +0 -2
  556. package/lib/types/components/select/options.d.ts +0 -5
  557. package/lib/types/components/select/select.d.ts +0 -3
  558. package/lib/types/components/select/type.d.ts +0 -24
  559. package/lib/types/components/step/divider.d.ts +0 -1
  560. package/lib/types/components/step/index.d.ts +0 -2
  561. package/lib/types/components/step/item.d.ts +0 -3
  562. package/lib/types/components/step/step.d.ts +0 -7
  563. package/lib/types/components/step/type.d.ts +0 -16
  564. package/lib/types/components/swiper/index.d.ts +0 -2
  565. package/lib/types/components/swiper/item.d.ts +0 -3
  566. package/lib/types/components/swiper/swiper.d.ts +0 -3
  567. package/lib/types/components/swiper/type.d.ts +0 -49
  568. package/lib/types/components/tabs/index.d.ts +0 -2
  569. package/lib/types/components/tabs/item.d.ts +0 -3
  570. package/lib/types/components/tabs/tabs.d.ts +0 -3
  571. package/lib/types/components/tabs/type.d.ts +0 -41
  572. package/lib/types/components/tag/index.d.ts +0 -2
  573. package/lib/types/components/tag/tag.d.ts +0 -3
  574. package/lib/types/components/tag/type.d.ts +0 -11
  575. package/lib/types/components/text/highlight.d.ts +0 -2
  576. package/lib/types/components/text/index.d.ts +0 -2
  577. package/lib/types/components/text/number.d.ts +0 -2
  578. package/lib/types/components/text/text.d.ts +0 -3
  579. package/lib/types/components/text/time.d.ts +0 -2
  580. package/lib/types/components/text/type.d.ts +0 -40
  581. package/lib/types/components/tree/index.d.ts +0 -2
  582. package/lib/types/components/tree/item.d.ts +0 -11
  583. package/lib/types/components/tree/tree.d.ts +0 -3
  584. package/lib/types/components/tree/type.d.ts +0 -60
  585. package/lib/types/components/upload/index.d.ts +0 -2
  586. package/lib/types/components/upload/renderFile.d.ts +0 -7
  587. package/lib/types/components/upload/type.d.ts +0 -41
  588. package/lib/types/components/upload/upload.d.ts +0 -3
  589. package/lib/types/components/utils/empty/index.d.ts +0 -1
  590. package/lib/types/components/utils/helpericon/helpericon.d.ts +0 -3
  591. package/lib/types/components/utils/helpericon/index.d.ts +0 -2
  592. package/lib/types/components/utils/helpericon/type.d.ts +0 -11
  593. package/lib/types/components/video/index.d.ts +0 -2
  594. package/lib/types/components/video/type.d.ts +0 -24
  595. package/lib/types/components/video/video.d.ts +0 -3
  596. package/lib/types/index.d.ts +0 -40
  597. package/lib/types/js/hooks.d.ts +0 -36
  598. package/lib/types/js/usePreview/content.d.ts +0 -2
  599. package/lib/types/js/usePreview/index.d.ts +0 -2
  600. package/lib/types/js/usePreview/renderFile.d.ts +0 -2
  601. package/lib/types/js/usePreview/type.d.ts +0 -36
  602. package/lib/types/js/useRipple/index.d.ts +0 -2
  603. package/lib/types/js/useTheme/index.d.ts +0 -6
  604. package/lib/types/js/useTheme/type.d.ts +0 -9
  605. package/lib/types/js/utils.d.ts +0 -36
  606. package/lib/types/type/index.d.ts +0 -34
@@ -0,0 +1,284 @@
1
+ require("../_virtual/_rolldown/runtime.js");
2
+ require("react");
3
+ let _Users_iann_codes_ioca_react_node_modules__pnpm_react_dom_19_2_4_react_19_2_4_node_modules_react_dom_client_js = require("/Users/iann/codes/ioca-react/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js");
4
+ //#region packages/js/utils.ts
5
+ function getPosition($source, $popup, options = {}) {
6
+ const { refWindow, gap = 0, offset = 0, position = "top", align } = options;
7
+ if (!$source || !$popup) return [
8
+ 0,
9
+ 0,
10
+ {
11
+ arrowX: 0,
12
+ arrowY: 0,
13
+ arrowPos: "bottom"
14
+ }
15
+ ];
16
+ const rectT = $source.getBoundingClientRect();
17
+ const rectC = $popup.getBoundingClientRect();
18
+ let w = window.innerWidth;
19
+ let h = window.innerHeight;
20
+ let { left: tl, top: tt, right: tr, bottom: tb, width: tw, height: th } = rectT;
21
+ const { height: ch, width: cw } = rectC;
22
+ if (!refWindow) {
23
+ const rectPa = $source.offsetParent?.getBoundingClientRect();
24
+ w = rectPa?.width || w;
25
+ h = rectPa?.height || h;
26
+ tl = $source.offsetLeft;
27
+ tt = $source.offsetTop;
28
+ tr = tl + rectT.width;
29
+ tb = tt + rectT.height;
30
+ }
31
+ let y = 0;
32
+ let x = 0;
33
+ let arrowX = 0;
34
+ let arrowY = 0;
35
+ let arrowPos = "bottom";
36
+ switch (position) {
37
+ case "left":
38
+ case "right":
39
+ y = th !== ch ? computePosition({
40
+ containerSize: h,
41
+ targetSize: th,
42
+ targetOffset: tt,
43
+ contentSize: ch,
44
+ gap,
45
+ align
46
+ }) : tt;
47
+ arrowY = y < tt ? tt - y + th / 2 : th / 2;
48
+ const xl = tl - offset - cw;
49
+ const xr = tr + offset + cw;
50
+ if (position === "left") {
51
+ const R = xl < 0 && xr <= w;
52
+ x = R ? tr + offset : xl;
53
+ arrowX = R ? 0 : cw;
54
+ arrowPos = R ? "left" : "right";
55
+ } else {
56
+ const R = w > xr || xl < 0;
57
+ x = R ? tr + offset : xl;
58
+ arrowX = R ? 0 : cw;
59
+ arrowPos = R ? "left" : "right";
60
+ }
61
+ break;
62
+ case "top":
63
+ case "bottom":
64
+ x = tw !== cw ? computePosition({
65
+ containerSize: w,
66
+ targetOffset: tl,
67
+ targetSize: tw,
68
+ contentSize: cw,
69
+ gap,
70
+ align
71
+ }) : tl;
72
+ arrowX = x > tl ? cw / 2 : tl - x + tw / 2;
73
+ const yt = tt - offset - ch;
74
+ const yb = tb + offset + ch;
75
+ if (position === "top") {
76
+ const T = yt < 0 && yb <= h;
77
+ y = T ? tb + offset : yt;
78
+ arrowY = T ? 0 : ch;
79
+ arrowPos = T ? "top" : "bottom";
80
+ } else {
81
+ const B = h > yb || yt < 0;
82
+ y = B ? tb + offset : yt;
83
+ arrowY = B ? 0 : ch;
84
+ arrowPos = B ? "top" : "bottom";
85
+ }
86
+ break;
87
+ default: break;
88
+ }
89
+ return [
90
+ x,
91
+ y,
92
+ {
93
+ arrowX,
94
+ arrowY,
95
+ arrowPos
96
+ }
97
+ ];
98
+ }
99
+ function getPointPosition(e, content) {
100
+ const { width: w, height: h } = content.getBoundingClientRect();
101
+ const parent = content.offsetParent;
102
+ let pw, ph, pl = 0, pt = 0;
103
+ if (parent) {
104
+ const { width: ow, height: oh, left: ol, top: ot } = parent.getBoundingClientRect();
105
+ const st = parent.scrollTop ?? 0;
106
+ pw = ow;
107
+ ph = oh;
108
+ pt = ot - st;
109
+ pl = ol;
110
+ } else {
111
+ pw = window.innerWidth;
112
+ ph = window.innerHeight;
113
+ }
114
+ const x = e.pageX - pl;
115
+ const y = e.pageY - pt;
116
+ return [x + w >= pw ? x - w > 0 ? x - w : x : x, y + h >= ph ? y - h > 0 ? y - h : y : y];
117
+ }
118
+ function computePosition({ containerSize, targetSize, targetOffset, contentSize, gap, align = "center" }) {
119
+ const centerPoint = targetOffset + targetSize / 2;
120
+ switch (align) {
121
+ case "start": return targetOffset + contentSize > containerSize ? containerSize - contentSize - gap : targetOffset;
122
+ case "center":
123
+ if (targetSize >= contentSize) return centerPoint - contentSize / 2;
124
+ if (centerPoint + contentSize / 2 + gap > containerSize) return targetOffset + targetSize - contentSize;
125
+ if (centerPoint - contentSize / 2 - gap < 0) return gap;
126
+ return centerPoint - contentSize / 2;
127
+ case "end":
128
+ const result = targetOffset + targetSize - contentSize;
129
+ return result > 0 ? result : gap;
130
+ default: return centerPoint - contentSize / 2;
131
+ }
132
+ }
133
+ function formatOption(options) {
134
+ return options.map((option) => ["string", "number"].includes(typeof option) ? {
135
+ label: option,
136
+ value: option
137
+ } : option);
138
+ }
139
+ function animate(from, to, duration = 1e3, callback, easing = (t) => 1 - Math.pow(1 - t, 4)) {
140
+ const start = performance.now();
141
+ const diff = to - from;
142
+ let raf = requestAnimationFrame(loop);
143
+ function loop() {
144
+ raf = requestAnimationFrame(loop);
145
+ let percent = (performance.now() - start) / duration;
146
+ if (percent >= 1) {
147
+ percent = 1;
148
+ cancelAnimationFrame(raf);
149
+ }
150
+ const pass = diff * easing(percent);
151
+ callback?.(pass);
152
+ }
153
+ }
154
+ function formatNumber(value, options = {}) {
155
+ const { precision, thousand } = options;
156
+ const result = value.toFixed(precision);
157
+ if (!thousand) return result;
158
+ const points = result.split(".");
159
+ const integer = points[0].replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, `$&${thousand}`);
160
+ if (points.length === 1) return integer;
161
+ return `${integer}.${points[1]}`;
162
+ }
163
+ function renderNode(node, container = document.body) {
164
+ const div = document.createElement("div");
165
+ container.append(div);
166
+ const root = (0, _Users_iann_codes_ioca_react_node_modules__pnpm_react_dom_19_2_4_react_19_2_4_node_modules_react_dom_client_js.createRoot)(div);
167
+ const sto = setTimeout(() => {
168
+ root?.render(node);
169
+ }, 0);
170
+ return () => {
171
+ div?.remove();
172
+ root?.unmount();
173
+ sto && clearTimeout(sto);
174
+ };
175
+ }
176
+ function getSuffixByUrl(url) {
177
+ return url.match(/\.([^\./\?]+)($|\?)/)?.[1];
178
+ }
179
+ function getFileType(suffix, type) {
180
+ switch (true) {
181
+ case [
182
+ "jpg",
183
+ "jpeg",
184
+ "png",
185
+ "webp",
186
+ "svg",
187
+ "avif",
188
+ "heif",
189
+ "heic",
190
+ "apng",
191
+ "bmp",
192
+ "ico"
193
+ ].includes(suffix) || type?.startsWith("image/"): return "IMAGE";
194
+ case [
195
+ "mp4",
196
+ "avi",
197
+ "webm",
198
+ "ogv",
199
+ "mov",
200
+ "mkv",
201
+ "mpd",
202
+ "m3u8"
203
+ ].includes(suffix) || type?.startsWith("video/"): return "VIDEO";
204
+ default: return "UNKNOWN";
205
+ }
206
+ }
207
+ function fullScreen(el) {
208
+ el.requestFullscreen?.();
209
+ }
210
+ function exitFullScreen() {
211
+ document.exitFullscreen?.();
212
+ }
213
+ function formatTime(time, options) {
214
+ const result = [];
215
+ const { zero = true, units = [
216
+ "",
217
+ ":",
218
+ ":"
219
+ ] } = options || {};
220
+ const l = units.length;
221
+ let i = 0;
222
+ while (i < l) {
223
+ if (time <= 0 && i > 1) break;
224
+ const n = Math.round(time % 60);
225
+ time = Math.floor(time / 60);
226
+ result.unshift((zero && n < 10 ? `0${n}` : n) + units[i++]);
227
+ }
228
+ return result.join("");
229
+ }
230
+ function getNextSorter(prevSortBy, prevSortType, sortBy) {
231
+ const types = ["desc", "asc"];
232
+ if (prevSortBy === sortBy) {
233
+ const type = types[types.findIndex((t) => t === prevSortType) + 1] || "";
234
+ return [type === "" ? "" : sortBy, type];
235
+ }
236
+ return [sortBy, "desc"];
237
+ }
238
+ function formatBytes(bytes, decimals = 2) {
239
+ if (!+bytes) return "0 Bytes";
240
+ const k = 1024;
241
+ const dm = decimals < 0 ? 0 : decimals;
242
+ const sizes = [
243
+ "B",
244
+ "KB",
245
+ "MB",
246
+ "GB",
247
+ "TB",
248
+ "PB",
249
+ "EB",
250
+ "ZB",
251
+ "YB"
252
+ ];
253
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
254
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
255
+ }
256
+ function clamp(value, min, max) {
257
+ return value < min ? min : value > max ? max : value;
258
+ }
259
+ const arrayMove = (array, fromIndex, toIndex) => {
260
+ if (toIndex >= array.length) {
261
+ let k = toIndex - array.length + 1;
262
+ while (k--) array.push(void 0);
263
+ }
264
+ array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);
265
+ return array;
266
+ };
267
+ //#endregion
268
+ exports.animate = animate;
269
+ exports.arrayMove = arrayMove;
270
+ exports.clamp = clamp;
271
+ exports.exitFullScreen = exitFullScreen;
272
+ exports.formatBytes = formatBytes;
273
+ exports.formatNumber = formatNumber;
274
+ exports.formatOption = formatOption;
275
+ exports.formatTime = formatTime;
276
+ exports.fullScreen = fullScreen;
277
+ exports.getFileType = getFileType;
278
+ exports.getNextSorter = getNextSorter;
279
+ exports.getPointPosition = getPointPosition;
280
+ exports.getPosition = getPosition;
281
+ exports.getSuffixByUrl = getSuffixByUrl;
282
+ exports.renderNode = renderNode;
283
+
284
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../packages/js/utils.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { Root, createRoot } from \"react-dom/client\";\nimport type { TOption, TOptions, TRelativeOptions } from \"../type\";\n\ntype TComputePosition = {\n\tcontainerSize: number;\n\ttargetSize: number;\n\ttargetOffset: number;\n\tcontentSize: number;\n\tgap: number;\n\talign?: \"start\" | \"center\" | \"end\";\n};\n\nexport function getPosition(\n\t$source?: HTMLElement | null,\n\t$popup?: HTMLElement | null,\n\toptions: TRelativeOptions = {}\n): [\n\tx: number,\n\ty: number,\n\tz: {\n\t\tarrowX: number;\n\t\tarrowY: number;\n\t\tarrowPos: string;\n\t}\n] {\n\tconst { refWindow, gap = 0, offset = 0, position = \"top\", align } = options;\n\n\tif (!$source || !$popup)\n\t\treturn [\n\t\t\t0,\n\t\t\t0,\n\t\t\t{\n\t\t\t\tarrowX: 0,\n\t\t\t\tarrowY: 0,\n\t\t\t\tarrowPos: \"bottom\",\n\t\t\t},\n\t\t];\n\n\tconst rectT = $source.getBoundingClientRect();\n\tconst rectC = $popup.getBoundingClientRect();\n\n\tlet w = window.innerWidth;\n\tlet h = window.innerHeight;\n\tlet {\n\t\tleft: tl,\n\t\ttop: tt,\n\t\tright: tr,\n\t\tbottom: tb,\n\t\twidth: tw,\n\t\theight: th,\n\t} = rectT;\n\tconst { height: ch, width: cw } = rectC;\n\n\tif (!refWindow) {\n\t\tconst rectPa = $source.offsetParent?.getBoundingClientRect();\n\n\t\tw = rectPa?.width || w;\n\t\th = rectPa?.height || h;\n\t\ttl = $source.offsetLeft;\n\t\ttt = $source.offsetTop;\n\t\ttr = tl + rectT.width;\n\t\ttb = tt + rectT.height;\n\t}\n\n\tlet y = 0;\n\tlet x = 0;\n\tlet arrowX = 0;\n\tlet arrowY = 0;\n\tlet arrowPos = \"bottom\";\n\n\tswitch (position) {\n\t\tcase \"left\":\n\t\tcase \"right\":\n\t\t\ty =\n\t\t\t\tth !== ch\n\t\t\t\t\t? computePosition({\n\t\t\t\t\t\t\tcontainerSize: h,\n\t\t\t\t\t\t\ttargetSize: th,\n\t\t\t\t\t\t\ttargetOffset: tt,\n\t\t\t\t\t\t\tcontentSize: ch,\n\t\t\t\t\t\t\tgap,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t })\n\t\t\t\t\t: tt;\n\t\t\tarrowY = y < tt ? tt - y + th / 2 : th / 2;\n\n\t\t\tconst xl = tl - offset - cw;\n\t\t\tconst xr = tr + offset + cw;\n\n\t\t\tif (position === \"left\") {\n\t\t\t\tconst R = xl < 0 && xr <= w;\n\t\t\t\tx = R ? tr + offset : xl;\n\t\t\t\tarrowX = R ? 0 : cw;\n\t\t\t\tarrowPos = R ? \"left\" : \"right\";\n\t\t\t} else {\n\t\t\t\tconst R = w > xr || xl < 0;\n\t\t\t\tx = R ? tr + offset : xl;\n\t\t\t\tarrowX = R ? 0 : cw;\n\t\t\t\tarrowPos = R ? \"left\" : \"right\";\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase \"top\":\n\t\tcase \"bottom\":\n\t\t\tx =\n\t\t\t\ttw !== cw\n\t\t\t\t\t? computePosition({\n\t\t\t\t\t\t\tcontainerSize: w,\n\t\t\t\t\t\t\ttargetOffset: tl,\n\t\t\t\t\t\t\ttargetSize: tw,\n\t\t\t\t\t\t\tcontentSize: cw,\n\t\t\t\t\t\t\tgap,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t })\n\t\t\t\t\t: tl;\n\t\t\tarrowX = x > tl ? cw / 2 : tl - x + tw / 2;\n\n\t\t\tconst yt = tt - offset - ch;\n\t\t\tconst yb = tb + offset + ch;\n\t\t\tif (position === \"top\") {\n\t\t\t\tconst T = yt < 0 && yb <= h;\n\t\t\t\ty = T ? tb + offset : yt;\n\t\t\t\tarrowY = T ? 0 : ch;\n\t\t\t\tarrowPos = T ? \"top\" : \"bottom\";\n\t\t\t} else {\n\t\t\t\tconst B = h > yb || yt < 0;\n\t\t\t\ty = B ? tb + offset : yt;\n\t\t\t\tarrowY = B ? 0 : ch;\n\t\t\t\tarrowPos = B ? \"top\" : \"bottom\";\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\n\treturn [\n\t\tx,\n\t\ty,\n\t\t{\n\t\t\tarrowX,\n\t\t\tarrowY,\n\t\t\tarrowPos,\n\t\t},\n\t];\n}\n\nexport function getPointPosition(e: MouseEvent, content: HTMLElement) {\n\tconst { width: w, height: h } = content.getBoundingClientRect();\n\tconst parent = content.offsetParent;\n\tlet pw,\n\t\tph,\n\t\tpl = 0,\n\t\tpt = 0;\n\n\tif (parent) {\n\t\tconst {\n\t\t\twidth: ow,\n\t\t\theight: oh,\n\t\t\tleft: ol,\n\t\t\ttop: ot,\n\t\t} = parent.getBoundingClientRect();\n\t\tconst st = parent.scrollTop ?? 0;\n\n\t\tpw = ow;\n\t\tph = oh;\n\t\tpt = ot - st;\n\t\tpl = ol;\n\t} else {\n\t\tpw = window.innerWidth;\n\t\tph = window.innerHeight;\n\t}\n\tconst x = e.pageX - pl;\n\tconst y = e.pageY - pt;\n\n\tconst left = x + w >= pw ? (x - w > 0 ? x - w : x) : x;\n\tconst top = y + h >= ph ? (y - h > 0 ? y - h : y) : y;\n\n\treturn [left, top];\n}\n\nfunction computePosition({\n\tcontainerSize,\n\ttargetSize,\n\ttargetOffset,\n\tcontentSize,\n\tgap,\n\talign = \"center\",\n}: TComputePosition) {\n\tconst centerPoint = targetOffset + targetSize / 2;\n\n\tswitch (align) {\n\t\tcase \"start\":\n\t\t\treturn targetOffset + contentSize > containerSize\n\t\t\t\t? containerSize - contentSize - gap\n\t\t\t\t: targetOffset;\n\t\tcase \"center\":\n\t\t\tif (targetSize >= contentSize) {\n\t\t\t\treturn centerPoint - contentSize / 2;\n\t\t\t}\n\n\t\t\tif (centerPoint + contentSize / 2 + gap > containerSize) {\n\t\t\t\treturn targetOffset + targetSize - contentSize;\n\t\t\t}\n\n\t\t\tif (centerPoint - contentSize / 2 - gap < 0) {\n\t\t\t\treturn gap;\n\t\t\t}\n\n\t\t\treturn centerPoint - contentSize / 2;\n\t\tcase \"end\":\n\t\t\tconst result = targetOffset + targetSize - contentSize;\n\t\t\treturn result > 0 ? result : gap;\n\t\tdefault:\n\t\t\treturn centerPoint - contentSize / 2;\n\t}\n}\n\nexport function formatOption(options: TOptions): TOption[] {\n\treturn options.map((option) =>\n\t\t[\"string\", \"number\"].includes(typeof option)\n\t\t\t? { label: option, value: option }\n\t\t\t: option\n\t) as TOption[];\n}\n\nexport function animate(\n\tfrom: number,\n\tto: number,\n\tduration: number = 1000,\n\tcallback?: (v: number) => void,\n\teasing: (t: number) => number = (t) => 1 - Math.pow(1 - t, 4)\n) {\n\tconst start = performance.now();\n\tconst diff = to - from;\n\tlet raf = requestAnimationFrame(loop);\n\n\tfunction loop() {\n\t\traf = requestAnimationFrame(loop);\n\n\t\tconst past = performance.now() - start;\n\t\tlet percent = past / duration;\n\n\t\tif (percent >= 1) {\n\t\t\tpercent = 1;\n\t\t\tcancelAnimationFrame(raf);\n\t\t}\n\n\t\tconst pass = diff * easing(percent);\n\t\tcallback?.(pass);\n\t}\n}\n\nexport function formatNumber(\n\tvalue: number,\n\toptions: {\n\t\tprecision?: number;\n\t\tthousand?: string;\n\t} = {}\n) {\n\tconst { precision, thousand } = options;\n\n\tconst result = value.toFixed(precision);\n\n\tif (!thousand) return result;\n\n\tconst points = result.split(\".\");\n\tconst integer = points[0].replace(\n\t\t/\\d{1,3}(?=(\\d{3})+(\\.\\d*)?$)/g,\n\t\t`$&${thousand}`\n\t);\n\n\tif (points.length === 1) return integer;\n\n\treturn `${integer}.${points[1]}`;\n}\n\nexport function renderNode(node: ReactNode, container = document.body) {\n\tconst div: HTMLDivElement | null = document.createElement(\"div\");\n\tcontainer.append(div);\n\n\tconst root: Root | null = createRoot(div);\n\tconst sto = setTimeout(() => {\n\t\troot?.render(node);\n\t}, 0);\n\n\treturn () => {\n\t\tdiv?.remove();\n\t\troot?.unmount();\n\t\tsto && clearTimeout(sto);\n\t};\n}\n\nexport function getSuffixByUrl(url: string) {\n\treturn url.match(/\\.([^\\./\\?]+)($|\\?)/)?.[1];\n}\n\nexport function getFileType(suffix: string, type?: string) {\n\tswitch (true) {\n\t\tcase [\n\t\t\t\"jpg\",\n\t\t\t\"jpeg\",\n\t\t\t\"png\",\n\t\t\t\"webp\",\n\t\t\t\"svg\",\n\t\t\t\"avif\",\n\t\t\t\"heif\",\n\t\t\t\"heic\",\n\t\t\t\"apng\",\n\t\t\t\"bmp\",\n\t\t\t\"ico\",\n\t\t].includes(suffix) || type?.startsWith(\"image/\"):\n\t\t\treturn \"IMAGE\";\n\t\tcase [\n\t\t\t\"mp4\",\n\t\t\t\"avi\",\n\t\t\t\"webm\",\n\t\t\t\"ogv\",\n\t\t\t\"mov\",\n\t\t\t\"mkv\",\n\t\t\t\"mpd\",\n\t\t\t\"m3u8\",\n\t\t].includes(suffix) || type?.startsWith(\"video/\"):\n\t\t\treturn \"VIDEO\";\n\t\tdefault:\n\t\t\treturn \"UNKNOWN\";\n\t}\n}\n\nexport function fullScreen(el: HTMLElement) {\n\tel.requestFullscreen?.();\n}\n\nexport function exitFullScreen() {\n\tdocument.exitFullscreen?.();\n}\n\nexport function formatTime(\n\ttime: number,\n\toptions?: {\n\t\tzero?: boolean;\n\t\tunits?: string[];\n\t}\n) {\n\tconst result: string[] = [];\n\tconst { zero = true, units = [\"\", \":\", \":\"] } = options || {};\n\n\tconst l = units.length;\n\tlet i = 0;\n\n\twhile (i < l) {\n\t\tif (time <= 0 && i > 1) break;\n\n\t\tconst n = Math.round(time % 60);\n\n\t\ttime = Math.floor(time / 60);\n\n\t\tresult.unshift((zero && n < 10 ? `0${n}` : n) + units[i++]);\n\t}\n\n\treturn result.join(\"\");\n}\n\nexport function getNextSorter(\n\tprevSortBy: string,\n\tprevSortType: string,\n\tsortBy: string\n): [sortBy: string, sortType: string] {\n\tconst types = [\"desc\", \"asc\"];\n\n\tif (prevSortBy === sortBy) {\n\t\tconst i = types.findIndex((t) => t === prevSortType) + 1;\n\t\tconst type = types[i] || \"\";\n\t\tconst by = type === \"\" ? \"\" : sortBy;\n\n\t\treturn [by, type];\n\t}\n\n\treturn [sortBy, \"desc\"];\n}\n\nexport function formatBytes(bytes: number, decimals = 2) {\n\tif (!+bytes) return \"0 Bytes\";\n\n\tconst k = 1024;\n\tconst dm = decimals < 0 ? 0 : decimals;\n\tconst sizes = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n}\n\nexport function clamp(value: number, min: number, max: number) {\n\treturn value < min ? min : value > max ? max : value;\n}\n\nexport const arrayMove = (array, fromIndex: number, toIndex: number) => {\n\tif (toIndex >= array.length) {\n\t\tlet k = toIndex - array.length + 1;\n\t\twhile (k--) {\n\t\t\tarray.push(undefined);\n\t\t}\n\t}\n\tarray.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);\n\treturn array;\n};\n\ntype ReactiveObject<T> = T & { __isReactive?: boolean };\n\nexport function useReactive<T extends object>(\n\tinitialState: T\n): ReactiveObject<T> {\n\tconst [, setState] = useState<number>(0);\n\tconst reactiveState = useRef<ReactiveObject<T>>(initialState);\n\n\tuseEffect(() => {\n\t\tif (!reactiveState.current.__isReactive) {\n\t\t\treactiveState.current = createReactiveObject(\n\t\t\t\treactiveState.current,\n\t\t\t\tsetState\n\t\t\t);\n\t\t}\n\t}, []);\n\n\treturn reactiveState.current;\n}\n\nfunction createReactiveObject<T extends object>(\n\ttarget: T,\n\tsetState: React.Dispatch<React.SetStateAction<number>>\n): ReactiveObject<T> {\n\treturn new Proxy(target, {\n\t\tget(obj, prop) {\n\t\t\tif (prop === \"__isReactive\") return true;\n\t\t\treturn Reflect.get(obj, prop);\n\t\t},\n\t\tset(obj, prop, value) {\n\t\t\tconst result = Reflect.set(obj, prop, value);\n\t\t\tsetState((prev) => prev + 1); // Trigger re-render\n\t\t\treturn result;\n\t\t},\n\t}) as ReactiveObject<T>;\n}\n\nexport default useReactive;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import ToTop from "./totop.js";
2
2
  import classNames from "classnames";
3
- import { debounce } from "radash";
3
+ import { debounce } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
4
4
  import { Children, cloneElement, useEffect, useMemo, useState } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region packages/components/affix/affix.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"affix.js","names":[],"sources":["../../../../packages/components/affix/affix.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport {\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport \"./index.css\";\nimport ToTop from \"./totop\";\nimport { IAffix } from \"./type\";\n\nconst Affix = (props: IAffix) => {\n\tconst {\n\t\tposition = \"fixed\",\n\t\tleft,\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\toffset,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tgetContainer = () => {\n\t\t\tif (typeof document === \"undefined\") return null;\n\t\t\treturn document.body;\n\t\t},\n\t} = props;\n\n\tconst [hidden, setHidden] = useState<boolean>(false);\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type === ToTop) {\n\t\t\t\tconst { onClick } = node.props;\n\n\t\t\t\treturn cloneElement(node, {\n\t\t\t\t\tkey: node.key,\n\t\t\t\t\t...node.props,\n\t\t\t\t\tonClick: (e: MouseEvent) => {\n\t\t\t\t\t\tconst container = getContainer();\n\n\t\t\t\t\t\tonClick?.(e);\n\t\t\t\t\t\tcontainer?.scrollTo({\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn node;\n\t\t});\n\t}, [children, getContainer]);\n\n\tuseEffect(() => {\n\t\tconst container = getContainer();\n\t\tif (!offset || !container) return;\n\n\t\tconst listener = debounce({ delay: 160 }, () => {\n\t\t\tconst top = container.scrollTop;\n\n\t\t\tsetHidden(top < offset);\n\t\t});\n\n\t\tlistener();\n\t\tcontainer.addEventListener(\"scroll\", listener);\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener(\"scroll\", listener);\n\t\t};\n\t}, [offset, getContainer]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-affix\", className, {\n\t\t\t\t\"i-affix-hidden\": hidden,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\tposition,\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t\tright,\n\t\t\t\tbottom,\n\t\t\t}}\n\t\t>\n\t\t\t{hijackChildren}\n\t\t</div>\n\t);\n};\n\nAffix.ToTop = ToTop;\n\nexport default Affix;\n"],"mappings":";;;;;;AAcA,MAAM,SAAS,UAAkB;CAChC,MAAM,EACL,WAAW,SACX,MACA,KACA,OACA,QACA,QACA,OACA,WACA,UACA,qBAAqB;AACpB,MAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,SAAO,SAAS;OAEd;CAEJ,MAAM,CAAC,QAAQ,aAAa,SAAkB,MAAM;CAEpD,MAAM,iBAAiB,cAAc;AACpC,SAAO,SAAS,IAAI,WAAW,SAAc;AAC5C,OAAI,KAAK,SAAS,OAAO;IACxB,MAAM,EAAE,YAAY,KAAK;AAEzB,WAAO,aAAa,MAAM;KACzB,KAAK,KAAK;KACV,GAAG,KAAK;KACR,UAAU,MAAkB;MAC3B,MAAM,YAAY,cAAc;AAEhC,gBAAU,EAAE;AACZ,iBAAW,SAAS;OACnB,KAAK;OACL,MAAM;OACN,UAAU;OACV,CAAC;;KAEH,CAAC;;AAGH,UAAO;IACN;IACA,CAAC,UAAU,aAAa,CAAC;AAE5B,iBAAgB;EACf,MAAM,YAAY,cAAc;AAChC,MAAI,CAAC,UAAU,CAAC,UAAW;EAE3B,MAAM,WAAW,SAAS,EAAE,OAAO,KAAK,QAAQ;GAC/C,MAAM,MAAM,UAAU;AAEtB,aAAU,MAAM,OAAO;IACtB;AAEF,YAAU;AACV,YAAU,iBAAiB,UAAU,SAAS;AAE9C,eAAa;AACZ,aAAU,oBAAoB,UAAU,SAAS;;IAEhD,CAAC,QAAQ,aAAa,CAAC;AAE1B,QACC,oBAAC,OAAD;EACC,WAAW,WAAW,WAAW,WAAW,EAC3C,kBAAkB,QAClB,CAAC;EACF,OAAO;GACN,GAAG;GACH;GACA;GACA;GACA;GACA;GACA;YAEA;EACG,CAAA;;AAIP,MAAM,QAAQ"}
1
+ {"version":3,"file":"affix.js","names":[],"sources":["../../../../packages/components/affix/affix.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport {\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport \"./index.css\";\nimport ToTop from \"./totop\";\nimport { IAffix } from \"./type\";\n\nconst Affix = (props: IAffix) => {\n\tconst {\n\t\tposition = \"fixed\",\n\t\tleft,\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\toffset,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tgetContainer = () => {\n\t\t\tif (typeof document === \"undefined\") return null;\n\t\t\treturn document.body;\n\t\t},\n\t} = props;\n\n\tconst [hidden, setHidden] = useState<boolean>(false);\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type === ToTop) {\n\t\t\t\tconst { onClick } = node.props;\n\n\t\t\t\treturn cloneElement(node, {\n\t\t\t\t\tkey: node.key,\n\t\t\t\t\t...node.props,\n\t\t\t\t\tonClick: (e: MouseEvent) => {\n\t\t\t\t\t\tconst container = getContainer();\n\n\t\t\t\t\t\tonClick?.(e);\n\t\t\t\t\t\tcontainer?.scrollTo({\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn node;\n\t\t});\n\t}, [children, getContainer]);\n\n\tuseEffect(() => {\n\t\tconst container = getContainer();\n\t\tif (!offset || !container) return;\n\n\t\tconst listener = debounce({ delay: 160 }, () => {\n\t\t\tconst top = container.scrollTop;\n\n\t\t\tsetHidden(top < offset);\n\t\t});\n\n\t\tlistener();\n\t\tcontainer.addEventListener(\"scroll\", listener);\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener(\"scroll\", listener);\n\t\t};\n\t}, [offset, getContainer]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-affix\", className, {\n\t\t\t\t\"i-affix-hidden\": hidden,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\tposition,\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t\tright,\n\t\t\t\tbottom,\n\t\t\t}}\n\t\t>\n\t\t\t{hijackChildren}\n\t\t</div>\n\t);\n};\n\nAffix.ToTop = ToTop;\n\nexport default Affix;\n"],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  import button_default from "../button/index.js";
2
2
  import icon_default from "../icon/index.js";
3
3
  import classNames from "classnames";
4
- import SkipPreviousRound from "@ricons/material/es/SkipPreviousRound.js";
4
+ import { SkipPreviousRound } from "@ricons/material";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region packages/components/affix/totop.tsx
7
7
  function ToTop(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"totop.js","names":["Button","Icon"],"sources":["../../../../packages/components/affix/totop.tsx"],"sourcesContent":["import SkipPreviousRound from \"@ricons/material/es/SkipPreviousRound.js\";\nimport classNames from \"classnames\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport { IAffix } from \"./type\";\n\nfunction ToTop(props: IAffix) {\n\tconst { style, className, onClick } = props;\n\n\treturn (\n\t\t<Button\n\t\t\tsquare\n\t\t\tclassName={classNames(\"i-affix-totop\", className)}\n\t\t\tstyle={{ ...style }}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t<Icon icon={<SkipPreviousRound />} rotate={90} />\n\t\t</Button>\n\t);\n}\n\nexport default ToTop;\n"],"mappings":";;;;;;AAMA,SAAS,MAAM,OAAe;CAC7B,MAAM,EAAE,OAAO,WAAW,YAAY;AAEtC,QACC,oBAACA,gBAAD;EACC,QAAA;EACA,WAAW,WAAW,iBAAiB,UAAU;EACjD,OAAO,EAAE,GAAG,OAAO;EACV;YAET,oBAACC,cAAD;GAAM,MAAM,oBAAC,mBAAD,EAAqB,CAAA;GAAE,QAAQ;GAAM,CAAA;EACzC,CAAA"}
1
+ {"version":3,"file":"totop.js","names":["Button","Icon"],"sources":["../../../../packages/components/affix/totop.tsx"],"sourcesContent":["import { SkipPreviousRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport { IAffix } from \"./type\";\n\nfunction ToTop(props: IAffix) {\n\tconst { style, className, onClick } = props;\n\n\treturn (\n\t\t<Button\n\t\t\tsquare\n\t\t\tclassName={classNames(\"i-affix-totop\", className)}\n\t\t\tstyle={{ ...style }}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t<Icon icon={<SkipPreviousRound />} rotate={90} />\n\t\t</Button>\n\t);\n}\n\nexport default ToTop;\n"],"mappings":";;;;;;AAMA,SAAS,MAAM,OAAe;CAC7B,MAAM,EAAE,OAAO,WAAW,YAAY;AAEtC,QACC,oBAACA,gBAAD;EACC,QAAA;EACA,WAAW,WAAW,iBAAiB,UAAU;EACjD,OAAO,EAAE,GAAG,OAAO;EACV;YAET,oBAACC,cAAD;GAAM,MAAM,oBAAC,mBAAD,EAAqB,CAAA;GAAE,QAAQ;GAAM,CAAA;EACzC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","names":[],"sources":["../../../../packages/components/badge/badge.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport type { IBadge } from \"./type\";\n\nconst Badge = (props: IBadge) => {\n\tconst {\n\t\tcontent,\n\t\tcontentClass,\n\t\tdot,\n\t\tdotSize,\n\t\tround,\n\t\tdisabled,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\"i-badge\", { rounded: round }, className)}\n\t\t>\n\t\t\t{children}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-badge-content\", contentClass, {\n\t\t\t\t\t\"i-badge-dot\": dot,\n\t\t\t\t\t\"i-badge-hidden\": disabled,\n\t\t\t\t})}\n\t\t\t\tstyle={{ fontSize: dotSize }}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Badge;\n"],"mappings":";;;AAIA,MAAM,SAAS,UAAkB;CAChC,MAAM,EACL,SACA,cACA,KACA,SACA,OACA,UACA,OACA,WACA,aACG;AAEJ,QACC,qBAAC,OAAD;EACQ;EACP,WAAW,WAAW,WAAW,EAAE,SAAS,OAAO,EAAE,UAAU;YAFhE,CAIE,UAED,oBAAC,OAAD;GACC,WAAW,WAAW,mBAAmB,cAAc;IACtD,eAAe;IACf,kBAAkB;IAClB,CAAC;GACF,OAAO,EAAE,UAAU,SAAS;aAE3B;GACG,CAAA,CACD"}
1
+ {"version":3,"file":"badge.js","names":[],"sources":["../../../../packages/components/badge/badge.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport type { IBadge } from \"./type\";\n\nconst Badge = (props: IBadge) => {\n\tconst {\n\t\tcontent,\n\t\tcontentClass,\n\t\tdot,\n\t\tdotSize,\n\t\tround,\n\t\tdisabled,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\"i-badge\", { rounded: round }, className)}\n\t\t>\n\t\t\t{children}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-badge-content\", contentClass, {\n\t\t\t\t\t\"i-badge-dot\": dot,\n\t\t\t\t\t\"i-badge-hidden\": disabled,\n\t\t\t\t})}\n\t\t\t\tstyle={{ fontSize: dotSize }}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Badge;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../../packages/components/button/button.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { MouseEvent, createElement, useEffect } from \"react\";\nimport useRipple from \"../../js/useRipple\";\nimport Loading from \"../loading\";\nimport Confirm from \"./confirm\";\nimport Group from \"./group\";\nimport \"./index.css\";\nimport Toggle from \"./toggle\";\nimport { CompositionButton, IButton } from \"./type\";\n\nconst formatClass = ({\n\toutline,\n\tflat,\n\tloading,\n\tdisabled,\n\tsize = \"normal\",\n\tblock,\n\tround,\n\tsquare,\n\tsecondary,\n\tclassName,\n}: IButton) =>\n\tclassnames(\"i-btn\", className, {\n\t\t\"i-btn-outline\": outline,\n\t\t\"i-btn-flat\": flat,\n\t\t\"i-btn-block\": block,\n\t\t\"i-btn-loading\": loading,\n\t\t\"i-btn-square\": square,\n\t\t\"i-btn-secondary\": secondary,\n\t\t[`i-btn-${size}`]: size !== \"normal\",\n\t\tround,\n\t\tdisabled,\n\t});\n\nconst Button = (props: IButton) => {\n\tconst {\n\t\tas: As = \"a\",\n\t\tref,\n\t\tchildren,\n\t\tclassName,\n\t\tloading,\n\t\tflat,\n\t\toutline,\n\t\tsquare,\n\t\tsecondary,\n\t\tsize,\n\t\tround,\n\t\thref,\n\t\tripple = true,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (loading || restProps.disabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tonClick?.(e);\n\t};\n\n\tif (!children) return <></>;\n\n\tconst childNodes = [\n\t\tloading && <Loading key='loading' />,\n\t\tcreateElement(\n\t\t\t\"span\",\n\t\t\t{ key: \"content\", className: \"i-btn-content\" },\n\t\t\tchildren,\n\t\t),\n\t];\n\n\tconst attrs = {\n\t\tclassName: formatClass(props),\n\t\t[\"data-ripple\"]:\n\t\t\tripple && !loading && !restProps.disabled ? \"\" : undefined,\n\t\tonClick: handleClick,\n\t};\n\n\tuseEffect(() => {\n\t\tripple && useRipple();\n\t}, [ripple]);\n\n\tif (typeof As === \"string\") {\n\t\treturn createElement(\n\t\t\tAs,\n\t\t\t{\n\t\t\t\tref,\n\t\t\t\thref,\n\t\t\t\t...attrs,\n\t\t\t\t...restProps,\n\t\t\t},\n\t\t\tchildNodes,\n\t\t);\n\t}\n\n\treturn createElement(\n\t\tAs,\n\t\t{\n\t\t\tto: href || \"\",\n\t\t\t...attrs,\n\t\t\t...restProps,\n\t\t},\n\t\tchildNodes,\n\t);\n};\n\nButton.Toggle = Toggle;\nButton.Confirm = Confirm;\nButton.Group = Group;\n\nexport default Button as CompositionButton;\n"],"mappings":";;;;;;;;;AAUA,MAAM,eAAe,EACpB,SACA,MACA,SACA,UACA,OAAO,UACP,OACA,OACA,QACA,WACA,gBAEA,WAAW,SAAS,WAAW;CAC9B,iBAAiB;CACjB,cAAc;CACd,eAAe;CACf,iBAAiB;CACjB,gBAAgB;CAChB,mBAAmB;EAClB,SAAS,SAAS,SAAS;CAC5B;CACA;CACA,CAAC;AAEH,MAAM,UAAU,UAAmB;CAClC,MAAM,EACL,IAAI,KAAK,KACT,KACA,UACA,WACA,SACA,MACA,SACA,QACA,WACA,MACA,OACA,MACA,SAAS,MACT,SACA,GAAG,cACA;CAEJ,MAAM,eAAe,MAA+B;AACnD,MAAI,WAAW,UAAU,UAAU;AAClC,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;AAClB;;AAGD,YAAU,EAAE;;AAGb,KAAI,CAAC,SAAU,QAAO,oBAAA,YAAA,EAAK,CAAA;CAE3B,MAAM,aAAa,CAClB,WAAW,oBAAC,iBAAD,EAAyB,EAAZ,UAAY,EACpC,cACC,QACA;EAAE,KAAK;EAAW,WAAW;EAAiB,EAC9C,SACA,CACD;CAED,MAAM,QAAQ;EACb,WAAW,YAAY,MAAM;GAC5B,gBACA,UAAU,CAAC,WAAW,CAAC,UAAU,WAAW,KAAK,KAAA;EAClD,SAAS;EACT;AAED,iBAAgB;AACf,YAAU,WAAW;IACnB,CAAC,OAAO,CAAC;AAEZ,KAAI,OAAO,OAAO,SACjB,QAAO,cACN,IACA;EACC;EACA;EACA,GAAG;EACH,GAAG;EACH,EACD,WACA;AAGF,QAAO,cACN,IACA;EACC,IAAI,QAAQ;EACZ,GAAG;EACH,GAAG;EACH,EACD,WACA;;AAGF,OAAO,SAAS;AAChB,OAAO,UAAU;AACjB,OAAO,QAAQ"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../../packages/components/button/button.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { MouseEvent, createElement, useEffect } from \"react\";\nimport useRipple from \"../../js/useRipple\";\nimport Loading from \"../loading\";\nimport Confirm from \"./confirm\";\nimport Group from \"./group\";\nimport \"./index.css\";\nimport Toggle from \"./toggle\";\nimport { CompositionButton, IButton } from \"./type\";\n\nconst formatClass = ({\n\toutline,\n\tflat,\n\tloading,\n\tdisabled,\n\tsize = \"normal\",\n\tblock,\n\tround,\n\tsquare,\n\tsecondary,\n\tclassName,\n}: IButton) =>\n\tclassnames(\"i-btn\", className, {\n\t\t\"i-btn-outline\": outline,\n\t\t\"i-btn-flat\": flat,\n\t\t\"i-btn-block\": block,\n\t\t\"i-btn-loading\": loading,\n\t\t\"i-btn-square\": square,\n\t\t\"i-btn-secondary\": secondary,\n\t\t[`i-btn-${size}`]: size !== \"normal\",\n\t\tround,\n\t\tdisabled,\n\t});\n\nconst Button = (props: IButton) => {\n\tconst {\n\t\tas: As = \"a\",\n\t\tref,\n\t\tchildren,\n\t\tclassName,\n\t\tloading,\n\t\tflat,\n\t\toutline,\n\t\tsquare,\n\t\tsecondary,\n\t\tsize,\n\t\tround,\n\t\thref,\n\t\tripple = true,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (loading || restProps.disabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tonClick?.(e);\n\t};\n\n\tif (!children) return <></>;\n\n\tconst childNodes = [\n\t\tloading && <Loading key='loading' />,\n\t\tcreateElement(\n\t\t\t\"span\",\n\t\t\t{ key: \"content\", className: \"i-btn-content\" },\n\t\t\tchildren,\n\t\t),\n\t];\n\n\tconst attrs = {\n\t\tclassName: formatClass(props),\n\t\t[\"data-ripple\"]:\n\t\t\tripple && !loading && !restProps.disabled ? \"\" : undefined,\n\t\tonClick: handleClick,\n\t};\n\n\tuseEffect(() => {\n\t\tripple && useRipple();\n\t}, [ripple]);\n\n\tif (typeof As === \"string\") {\n\t\treturn createElement(\n\t\t\tAs,\n\t\t\t{\n\t\t\t\tref,\n\t\t\t\thref,\n\t\t\t\t...attrs,\n\t\t\t\t...restProps,\n\t\t\t},\n\t\t\tchildNodes,\n\t\t);\n\t}\n\n\treturn createElement(\n\t\tAs,\n\t\t{\n\t\t\tto: href || \"\",\n\t\t\t...attrs,\n\t\t\t...restProps,\n\t\t},\n\t\tchildNodes,\n\t);\n};\n\nButton.Toggle = Toggle;\nButton.Confirm = Confirm;\nButton.Group = Group;\n\nexport default Button as CompositionButton;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","names":[],"sources":["../../../../packages/components/card/card.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport { ICard } from \"./type\";\n\nconst Card = (props: ICard) => {\n\tconst {\n\t\thideShadow,\n\t\tborder,\n\t\tclassName,\n\t\tchildren,\n\t\theader,\n\t\tfooter,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-card\", className, {\n\t\t\t\tshadow: !hideShadow,\n\t\t\t\t\"i-card-bordered\": border,\n\t\t\t})}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{header && <div className='i-card-header'>{header}</div>}\n\n\t\t\t{children && <div className='i-card-content'>{children}</div>}\n\n\t\t\t{footer && <div className='i-card-footer'>{footer}</div>}\n\t\t</div>\n\t);\n};\n\nexport default Card;\n"],"mappings":";;;AAIA,MAAM,QAAQ,UAAiB;CAC9B,MAAM,EACL,YACA,QACA,WACA,UACA,QACA,QACA,GAAG,cACA;AAEJ,QACC,qBAAC,OAAD;EACC,WAAW,WAAW,UAAU,WAAW;GAC1C,QAAQ,CAAC;GACT,mBAAmB;GACnB,CAAC;EACF,GAAI;YALL;GAOE,UAAU,oBAAC,OAAD;IAAK,WAAU;cAAiB;IAAa,CAAA;GAEvD,YAAY,oBAAC,OAAD;IAAK,WAAU;IAAkB;IAAe,CAAA;GAE5D,UAAU,oBAAC,OAAD;IAAK,WAAU;cAAiB;IAAa,CAAA;GACpD"}
1
+ {"version":3,"file":"card.js","names":[],"sources":["../../../../packages/components/card/card.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport { ICard } from \"./type\";\n\nconst Card = (props: ICard) => {\n\tconst {\n\t\thideShadow,\n\t\tborder,\n\t\tclassName,\n\t\tchildren,\n\t\theader,\n\t\tfooter,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-card\", className, {\n\t\t\t\tshadow: !hideShadow,\n\t\t\t\t\"i-card-bordered\": border,\n\t\t\t})}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{header && <div className='i-card-header'>{header}</div>}\n\n\t\t\t{children && <div className='i-card-content'>{children}</div>}\n\n\t\t\t{footer && <div className='i-card-footer'>{footer}</div>}\n\t\t</div>\n\t);\n};\n\nexport default Card;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":[],"sources":["../../../../packages/components/checkbox/checkbox.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport CheckboxItem from \"./item\";\nimport type { ICheckbox } from \"./type\";\n\nfunction Checkbox(props: ICheckbox) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions = [],\n\t\tvalue = \"\",\n\t\ttype = \"default\",\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [selectedValues, setSelectedValues] = useState<any>(value);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (checked, opt, e) => {\n\t\tconst group = [...selectedValues];\n\t\tconst i = group.findIndex((item) => item === opt.value);\n\n\t\tif (checked && i < 0) {\n\t\t\tgroup.push(opt.value);\n\t\t} else if (!checked && i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t}\n\n\t\tsetSelectedValues(group);\n\t\tonChange?.(group, opt, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValues(value);\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-checkbox-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-checkbox-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-checkbox-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CheckboxItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={selectedValues.includes(option.value)}\n\t\t\t\t\t\t\toptionValue={option.value}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={(checked, e) =>\n\t\t\t\t\t\t\t\thandleChange(checked, option, e)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</CheckboxItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nCheckbox.Item = CheckboxItem;\n\nexport default Checkbox;\n"],"mappings":";;;;;;AAQA,SAAS,SAAS,OAAkB;CACnC,MAAM,EACL,OACA,MACA,UAAU,EAAE,EACZ,QAAQ,IACR,OAAO,WACP,eAAe,MACf,aACA,UACA,SAAS,UACT,SACA,UACA,WACA,YACA,UACA,GAAG,cACA;CAEJ,MAAM,CAAC,gBAAgB,qBAAqB,SAAc,MAAM;CAEhE,MAAM,mBAAmB,cAAc,aAAa,QAAQ,EAAE,CAAC,QAAQ,CAAC;CAExE,MAAM,gBAAgB,SAAS,KAAK,MAAM;EACzC,MAAM,QAAQ,CAAC,GAAG,eAAe;EACjC,MAAM,IAAI,MAAM,WAAW,SAAS,SAAS,IAAI,MAAM;AAEvD,MAAI,WAAW,IAAI,EAClB,OAAM,KAAK,IAAI,MAAM;WACX,CAAC,WAAW,IAAI,GAC1B,OAAM,OAAO,GAAG,EAAE;AAGnB,oBAAkB,MAAM;AACxB,aAAW,OAAO,KAAK,EAAE;;AAG1B,iBAAgB;AACf,oBAAkB,MAAM;IACtB,CAAC,MAAM,CAAC;AAEX,QACC,qBAAC,OAAD;EACC,WAAW,WACV,4BACA;IACE,cAAc,WAAW,WAAW;GACrC,kBAAkB;GAClB,EAED,UACA;EACD,GAAI;YAVL,CAYE,SACA,qBAAC,QAAD;GAAM,WAAU;aAAhB;IACE,YAAY,oBAAC,QAAD;KAAM,WAAU;eAAQ;KAAQ,CAAA;IAC5C;IAEA,WAAW,oBAAC,KAAD;KAAG,WAAU;eAAsB;KAAY,CAAA;IACtD;MAGP,oBAAC,OAAD;GACC,WAAW,WAAW,sBAAsB;IAC3C,mBAAmB,CAAC;IACpB,6BAA6B,SAAS;IACtC,CAAC;aAED,iBAAiB,KAAK,WAAW;AACjC,WACC,oBAAC,cAAD;KAEO;KACN,OAAO,eAAe,SAAS,OAAO,MAAM;KAC5C,aAAa,OAAO;KACd;KACN,UAAU,YAAY,OAAO;KAC7B,WAAW,SAAS,MACnB,aAAa,SAAS,QAAQ,EAAC;eAG/B,cAAc,OAAO;KACT,EAXR,OAAO,MAWC;KAEd;GACE,CAAA,CACD;;;AAIP,SAAS,OAAO"}
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../../../../packages/components/checkbox/checkbox.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport CheckboxItem from \"./item\";\nimport type { ICheckbox } from \"./type\";\n\nfunction Checkbox(props: ICheckbox) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions = [],\n\t\tvalue = \"\",\n\t\ttype = \"default\",\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [selectedValues, setSelectedValues] = useState<any>(value);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (checked, opt, e) => {\n\t\tconst group = [...selectedValues];\n\t\tconst i = group.findIndex((item) => item === opt.value);\n\n\t\tif (checked && i < 0) {\n\t\t\tgroup.push(opt.value);\n\t\t} else if (!checked && i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t}\n\n\t\tsetSelectedValues(group);\n\t\tonChange?.(group, opt, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValues(value);\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-checkbox-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-checkbox-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-checkbox-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CheckboxItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={selectedValues.includes(option.value)}\n\t\t\t\t\t\t\toptionValue={option.value}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={(checked, e) =>\n\t\t\t\t\t\t\t\thandleChange(checked, option, e)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</CheckboxItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nCheckbox.Item = CheckboxItem;\n\nexport default Checkbox;\n"],"mappings":""}
@@ -2,9 +2,8 @@ import helpericon_default from "../utils/helpericon/index.js";
2
2
  import Item from "./item.js";
3
3
  import classNames from "classnames";
4
4
  import { Children, useMemo, useState } from "react";
5
+ import { MinusRound, PlusRound } from "@ricons/material";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import MinusRound from "@ricons/material/es/MinusRound.js";
7
- import PlusRound from "@ricons/material/es/PlusRound.js";
8
7
  //#region packages/components/collapse/collapse.tsx
9
8
  const Collapse = (props) => {
10
9
  const { active, items, multiple, border, headerClickable, className, children, renderToggle = (active) => active ? /* @__PURE__ */ jsx(MinusRound, {}) : /* @__PURE__ */ jsx(PlusRound, {}), onCollapse, ...restProps } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"collapse.js","names":[],"sources":["../../../../packages/components/collapse/collapse.tsx"],"sourcesContent":["import MinusRound from \"@ricons/material/es/MinusRound.js\";\nimport PlusRound from \"@ricons/material/es/PlusRound.js\";\nimport classNames from \"classnames\";\nimport { Children, useMemo, useState } from \"react\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { ICollapse, ICollapseItem, TKey } from \"./type\";\n\nconst Collapse = (props: ICollapse) => {\n\tconst {\n\t\tactive,\n\t\titems,\n\t\tmultiple,\n\t\tborder,\n\t\theaderClickable,\n\t\tclassName,\n\t\tchildren,\n\t\trenderToggle = (active: boolean) =>\n\t\t\tactive ? <MinusRound /> : <PlusRound />,\n\t\tonCollapse,\n\t\t...restProps\n\t} = props;\n\n\tconst [activeKey, setActiveKey] = useState(active);\n\n\tconst collapses = useMemo(() => {\n\t\tif (!items) {\n\t\t\tif (!children) return [];\n\n\t\t\treturn (\n\t\t\t\tChildren.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: TKey;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst { title, children, content, disabled, ...restProps } =\n\t\t\t\t\t\tnodeProps;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...restProps,\n\t\t\t\t\t\tkey: key || i,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tcontent: children || content,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t};\n\t\t\t\t}) || []\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}, [children]);\n\n\tconst handleHeaderClick = (item: ICollapseItem) => {\n\t\tif (!headerClickable) return;\n\n\t\thandleToggle(item);\n\t};\n\n\tconst handleToggle = (item: ICollapseItem, e?) => {\n\t\tconst { key, disabled } = item;\n\t\te?.stopPropagation();\n\t\tif (disabled) return;\n\n\t\tif (!multiple) {\n\t\t\tconst nextActive = activeKey === key ? undefined : key;\n\t\t\tsetActiveKey(nextActive);\n\t\t\tonCollapse?.(key as TKey, nextActive !== undefined);\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = Array.isArray(activeKey) ? [...activeKey] : [];\n\n\t\tconst i = group.findIndex((k) => k === key);\n\n\t\tif (i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t} else {\n\t\t\tkey !== undefined && group.push(key);\n\t\t}\n\t\tsetActiveKey(group as any);\n\t\tonCollapse?.(key as TKey, i < 0);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-collapse\",\n\t\t\t\t{\n\t\t\t\t\t\"i-collapse-bordered\": border,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{collapses.map((item) => {\n\t\t\t\tconst {\n\t\t\t\t\tkey,\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps\n\t\t\t\t} = item;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? ((activeKey as TKey[]) || []).includes(key)\n\t\t\t\t\t: activeKey === key;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\tclassName={classNames(\"i-collapse-item\", className, {\n\t\t\t\t\t\t\t\"i-collapse-active\": isActive,\n\t\t\t\t\t\t\t\"i-collapse-disabled\": disabled,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='i-collapse-header'\n\t\t\t\t\t\t\tonClick={() => handleHeaderClick(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\tclassName='i-collapse-toggle'\n\t\t\t\t\t\t\t\ticon={renderToggle(isActive)}\n\t\t\t\t\t\t\t\tonClick={(e) => handleToggle(item, e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='i-collapse-content'>{content}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCollapse.Item = Item;\n\nexport default Collapse;\n"],"mappings":";;;;;;;;AASA,MAAM,YAAY,UAAqB;CACtC,MAAM,EACL,QACA,OACA,UACA,QACA,iBACA,WACA,UACA,gBAAgB,WACf,SAAS,oBAAC,YAAD,EAAc,CAAA,GAAG,oBAAC,WAAD,EAAa,CAAA,EACxC,YACA,GAAG,cACA;CAEJ,MAAM,CAAC,WAAW,gBAAgB,SAAS,OAAO;CAElD,MAAM,YAAY,cAAc;AAC/B,MAAI,CAAC,OAAO;AACX,OAAI,CAAC,SAAU,QAAO,EAAE;AAExB,UACC,SAAS,IAAI,WAAW,MAAM,MAAM;IACnC,MAAM,EAAE,KAAK,OAAO,cAAc;IAIlC,MAAM,EAAE,OAAO,UAAU,SAAS,UAAU,GAAG,cAC9C;AAED,WAAO;KACN,GAAG;KACH,KAAK,OAAO;KACZ;KACA,SAAS,YAAY;KACrB;KACA;KACA,IAAI,EAAC;;AAIT,SAAO;IACL,CAAC,SAAS,CAAC;CAEd,MAAM,qBAAqB,SAAwB;AAClD,MAAI,CAAC,gBAAiB;AAEtB,eAAa,KAAK;;CAGnB,MAAM,gBAAgB,MAAqB,MAAO;EACjD,MAAM,EAAE,KAAK,aAAa;AAC1B,KAAG,iBAAiB;AACpB,MAAI,SAAU;AAEd,MAAI,CAAC,UAAU;GACd,MAAM,aAAa,cAAc,MAAM,KAAA,IAAY;AACnD,gBAAa,WAAW;AACxB,gBAAa,KAAa,eAAe,KAAA,EAAU;AACnD;;EAGD,MAAM,QAAQ,MAAM,QAAQ,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,EAAE;EAE5D,MAAM,IAAI,MAAM,WAAW,MAAM,MAAM,IAAI;AAE3C,MAAI,IAAI,GACP,OAAM,OAAO,GAAG,EAAE;MAElB,SAAQ,KAAA,KAAa,MAAM,KAAK,IAAI;AAErC,eAAa,MAAa;AAC1B,eAAa,KAAa,IAAI,EAAE;;AAGjC,QACC,oBAAC,OAAD;EACC,WAAW,WACV,cACA,EACC,uBAAuB,QACvB,EACD,UACA;EACD,GAAI;YAEH,UAAU,KAAK,SAAS;GACxB,MAAM,EACL,KACA,OACA,SACA,UACA,WACA,GAAG,cACA;GACJ,MAAM,WAAW,YACZ,aAAwB,EAAE,EAAE,SAAS,IAAG,GAC1C,cAAc;AAEjB,UACC,qBAAC,OAAD;IAEC,WAAW,WAAW,mBAAmB,WAAW;KACnD,qBAAqB;KACrB,uBAAuB;KACvB,CAAC;IACF,GAAI;cANL,CAQC,qBAAC,OAAD;KACC,WAAU;KACV,eAAe,kBAAkB,KAAK;eAFvC,CAIE,OAED,oBAAC,oBAAD;MACC,QAAA;MACA,WAAU;MACV,MAAM,aAAa,SAAS;MAC5B,UAAU,MAAM,aAAa,MAAM,EAAE;MACrC,CAAA,CACG;QAEL,oBAAC,OAAD;KAAK,WAAU;eAAsB;KAAa,CAAA,CAC9C;MAtBC,IAsBD;IAEL;EACE,CAAA;;AAIP,SAAS,OAAO"}
1
+ {"version":3,"file":"collapse.js","names":[],"sources":["../../../../packages/components/collapse/collapse.tsx"],"sourcesContent":["import { MinusRound, PlusRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { Children, useMemo, useState } from \"react\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { ICollapse, ICollapseItem, TKey } from \"./type\";\n\nconst Collapse = (props: ICollapse) => {\n\tconst {\n\t\tactive,\n\t\titems,\n\t\tmultiple,\n\t\tborder,\n\t\theaderClickable,\n\t\tclassName,\n\t\tchildren,\n\t\trenderToggle = (active: boolean) =>\n\t\t\tactive ? <MinusRound /> : <PlusRound />,\n\t\tonCollapse,\n\t\t...restProps\n\t} = props;\n\n\tconst [activeKey, setActiveKey] = useState(active);\n\n\tconst collapses = useMemo(() => {\n\t\tif (!items) {\n\t\t\tif (!children) return [];\n\n\t\t\treturn (\n\t\t\t\tChildren.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: TKey;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst { title, children, content, disabled, ...restProps } =\n\t\t\t\t\t\tnodeProps;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...restProps,\n\t\t\t\t\t\tkey: key || i,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tcontent: children || content,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t};\n\t\t\t\t}) || []\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}, [children]);\n\n\tconst handleHeaderClick = (item: ICollapseItem) => {\n\t\tif (!headerClickable) return;\n\n\t\thandleToggle(item);\n\t};\n\n\tconst handleToggle = (item: ICollapseItem, e?) => {\n\t\tconst { key, disabled } = item;\n\t\te?.stopPropagation();\n\t\tif (disabled) return;\n\n\t\tif (!multiple) {\n\t\t\tconst nextActive = activeKey === key ? undefined : key;\n\t\t\tsetActiveKey(nextActive);\n\t\t\tonCollapse?.(key as TKey, nextActive !== undefined);\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = Array.isArray(activeKey) ? [...activeKey] : [];\n\n\t\tconst i = group.findIndex((k) => k === key);\n\n\t\tif (i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t} else {\n\t\t\tkey !== undefined && group.push(key);\n\t\t}\n\t\tsetActiveKey(group as any);\n\t\tonCollapse?.(key as TKey, i < 0);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-collapse\",\n\t\t\t\t{\n\t\t\t\t\t\"i-collapse-bordered\": border,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{collapses.map((item) => {\n\t\t\t\tconst {\n\t\t\t\t\tkey,\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps\n\t\t\t\t} = item;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? ((activeKey as TKey[]) || []).includes(key)\n\t\t\t\t\t: activeKey === key;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\tclassName={classNames(\"i-collapse-item\", className, {\n\t\t\t\t\t\t\t\"i-collapse-active\": isActive,\n\t\t\t\t\t\t\t\"i-collapse-disabled\": disabled,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='i-collapse-header'\n\t\t\t\t\t\t\tonClick={() => handleHeaderClick(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\tclassName='i-collapse-toggle'\n\t\t\t\t\t\t\t\ticon={renderToggle(isActive)}\n\t\t\t\t\t\t\t\tonClick={(e) => handleToggle(item, e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='i-collapse-content'>{content}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCollapse.Item = Item;\n\nexport default Collapse;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"datagrid.js","names":[],"sources":["../../../../packages/components/datagrid/datagrid.tsx"],"sourcesContent":["import { useReactive } from \"../../js/hooks\";\nimport classNames from \"classnames\";\nimport { CSSProperties, MouseEvent, useEffect, useMemo, useRef } from \"react\";\nimport { getNextSorter } from \"../../js/utils\";\nimport Loading from \"../loading\";\nimport Empty from \"../utils/empty\";\nimport \"./index.css\";\nimport Row, { Header } from \"./row\";\nimport type { IColumn, IData, IDatagrid, TDatagridState } from \"./type\";\n\nconst Datagrid = (props: IDatagrid) => {\n\tconst {\n\t\tdata = [],\n\t\tcolumns = [],\n\t\tborder,\n\t\tstriped,\n\t\theader = true,\n\t\tresizable,\n\t\tcellPadding = \".5em\",\n\t\tcellEllipsis,\n\t\tempty = <Empty />,\n\t\tloading,\n\t\theight = \"unset\",\n\t\tstyle,\n\t\tclassName,\n\t\trenderLoading = () => (\n\t\t\t<Loading size='1.5em' className='color-3' absolute />\n\t\t),\n\t\tonCellClick,\n\t\tonRowClick,\n\t\tonCellDoubleClick,\n\t\tonHeaderClick,\n\t\tonSort,\n\t\tonScroll,\n\t\tonResize,\n\t} = props;\n\n\tconst container = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TDatagridState>({\n\t\trows: data,\n\t\twidths: columns.map((col) => col.width ?? \"min-content\"),\n\t\tsortBy: \"\",\n\t\tsortType: \"\",\n\t});\n\n\tconst styles = useMemo(() => {\n\t\tconst { widths } = state;\n\n\t\tconst o = {\n\t\t\t...style,\n\t\t\t\"--grid-template-columns\": widths\n\t\t\t\t.map((w) => {\n\t\t\t\t\treturn typeof w === \"number\" ? `${w}px` : w;\n\t\t\t\t})\n\t\t\t\t.join(\" \"),\n\t\t};\n\n\t\tif (!resizable) return o;\n\n\t\tconst fws = columns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return 0;\n\t\t\treturn widths[i] as number;\n\t\t});\n\n\t\tcolumns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return;\n\t\t\tif (i === 0) {\n\t\t\t\to[`--datagrid-cell-inset-0`] = 0;\n\t\t\t} else if (i === fws.length - 1) {\n\t\t\t\to[`--datagrid-cell-inset-${fws.length - 1}`] = \"auto 0\";\n\t\t\t} else {\n\t\t\t\tconst isLeft = fixed === \"left\";\n\t\t\t\tconst before = isLeft ? fws.slice(0, i) : fws.slice(i + 1);\n\t\t\t\tconst sum = before.reduce((pre, cur) => pre + cur) + \"px\";\n\t\t\t\tconst result = isLeft ? `${sum} auto` : `auto ${sum}`;\n\t\t\t\to[`--datagrid-cell-inset-${i}`] = result;\n\t\t\t}\n\t\t});\n\n\t\treturn o;\n\t}, [state.widths, resizable]);\n\n\tconst handleWidthChange = (i: number, w: number) => {\n\t\tif (!resizable) return;\n\n\t\tconst [...ws] = state.widths;\n\t\tws[i] = w;\n\t\tstate.widths = ws;\n\t\tonResize?.(columns[i], w);\n\t};\n\n\tconst handleHeaderClick = (column?: IColumn, e?: MouseEvent) => {\n\t\tif (column?.sorter) {\n\t\t\tconst [sortBy, sortType] = getNextSorter(\n\t\t\t\tstate.sortBy,\n\t\t\t\tstate.sortType,\n\t\t\t\tcolumn.id\n\t\t\t);\n\n\t\t\tObject.assign(state, {\n\t\t\t\tsortBy,\n\t\t\t\tsortType,\n\t\t\t});\n\n\t\t\tonSort?.(sortBy, sortType);\n\t\t}\n\n\t\tonHeaderClick?.(column, e);\n\t};\n\n\tconst rows = useMemo(() => {\n\t\tconst { sortBy, sortType } = state;\n\n\t\tif (sortBy && !onSort) {\n\t\t\tconst sorter = columns.find((col) => col.id === sortBy)?.sorter;\n\t\t\tconst sortFn =\n\t\t\t\ttypeof sorter === \"function\"\n\t\t\t\t\t? sorter\n\t\t\t\t\t: (a: IData, b: IData) => b[sortBy] - a[sortBy];\n\t\t\tconst sorted = [...data].sort(sortFn);\n\n\t\t\treturn sortType === \"desc\" ? sorted : sorted.reverse();\n\t\t}\n\n\t\treturn data;\n\t}, [data, columns, state.sortBy, state.sortType]);\n\n\tuseEffect(() => {\n\t\tif (!container.current) return;\n\t\tconst { current: div } = container;\n\t\tconst tds = div.querySelector(\".i-datagrid-row\")?.children;\n\t\tif (!tds?.length) return;\n\t\tstate.widths = Array.from(tds).map((node: any) => node.offsetWidth);\n\t}, [columns, resizable]);\n\n\tuseEffect(() => {\n\t\tloading && container.current?.scrollTo({ top: 0, left: 0 });\n\t}, [loading]);\n\n\tconst mergedStyle = {\n\t\t\"--cell-padding\": cellPadding,\n\t\t...styles,\n\t} as CSSProperties;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ maxHeight: height, ...mergedStyle }}\n\t\t\tclassName={classNames(\"i-datagrid-container\", className, {\n\t\t\t\t\"i-datagrid-bordered\": border,\n\t\t\t\t\"i-datagrid-striped\": striped,\n\t\t\t})}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={container}\n\t\t\t\tclassName={classNames(\"i-datagrid\", {\n\t\t\t\t\t\"i-datagrid-loading\": loading,\n\t\t\t\t})}\n\t\t\t\tonWheel={onScroll}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tresizable={resizable}\n\t\t\t\t\t\tsortType={state.sortType}\n\t\t\t\t\t\tsortBy={state.sortBy}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tonWidthChange={handleWidthChange}\n\t\t\t\t\t\tonHeaderClick={handleHeaderClick}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{rows.map((row, i) => (\n\t\t\t\t\t<Row\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\trow={i + (header ? 1 : 0)}\n\t\t\t\t\t\tdata={row}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tonCellClick={onCellClick}\n\t\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t\t\tonCellDoubleClick={onCellDoubleClick}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\n\t\t\t\t{rows.length < 1 && empty}\n\t\t\t</div>\n\n\t\t\t{loading && renderLoading()}\n\t\t</div>\n\t);\n};\n\nexport default Datagrid;\n"],"mappings":"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"}
1
+ {"version":3,"file":"datagrid.js","names":[],"sources":["../../../../packages/components/datagrid/datagrid.tsx"],"sourcesContent":["import { useReactive } from \"../../js/hooks\";\nimport classNames from \"classnames\";\nimport { CSSProperties, MouseEvent, useEffect, useMemo, useRef } from \"react\";\nimport { getNextSorter } from \"../../js/utils\";\nimport Loading from \"../loading\";\nimport Empty from \"../utils/empty\";\nimport \"./index.css\";\nimport Row, { Header } from \"./row\";\nimport type { IColumn, IData, IDatagrid, TDatagridState } from \"./type\";\n\nconst Datagrid = (props: IDatagrid) => {\n\tconst {\n\t\tdata = [],\n\t\tcolumns = [],\n\t\tborder,\n\t\tstriped,\n\t\theader = true,\n\t\tresizable,\n\t\tcellPadding = \".5em\",\n\t\tcellEllipsis,\n\t\tempty = <Empty />,\n\t\tloading,\n\t\theight = \"unset\",\n\t\tstyle,\n\t\tclassName,\n\t\trenderLoading = () => (\n\t\t\t<Loading size='1.5em' className='color-3' absolute />\n\t\t),\n\t\tonCellClick,\n\t\tonRowClick,\n\t\tonCellDoubleClick,\n\t\tonHeaderClick,\n\t\tonSort,\n\t\tonScroll,\n\t\tonResize,\n\t} = props;\n\n\tconst container = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TDatagridState>({\n\t\trows: data,\n\t\twidths: columns.map((col) => col.width ?? \"min-content\"),\n\t\tsortBy: \"\",\n\t\tsortType: \"\",\n\t});\n\n\tconst styles = useMemo(() => {\n\t\tconst { widths } = state;\n\n\t\tconst o = {\n\t\t\t...style,\n\t\t\t\"--grid-template-columns\": widths\n\t\t\t\t.map((w) => {\n\t\t\t\t\treturn typeof w === \"number\" ? `${w}px` : w;\n\t\t\t\t})\n\t\t\t\t.join(\" \"),\n\t\t};\n\n\t\tif (!resizable) return o;\n\n\t\tconst fws = columns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return 0;\n\t\t\treturn widths[i] as number;\n\t\t});\n\n\t\tcolumns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return;\n\t\t\tif (i === 0) {\n\t\t\t\to[`--datagrid-cell-inset-0`] = 0;\n\t\t\t} else if (i === fws.length - 1) {\n\t\t\t\to[`--datagrid-cell-inset-${fws.length - 1}`] = \"auto 0\";\n\t\t\t} else {\n\t\t\t\tconst isLeft = fixed === \"left\";\n\t\t\t\tconst before = isLeft ? fws.slice(0, i) : fws.slice(i + 1);\n\t\t\t\tconst sum = before.reduce((pre, cur) => pre + cur) + \"px\";\n\t\t\t\tconst result = isLeft ? `${sum} auto` : `auto ${sum}`;\n\t\t\t\to[`--datagrid-cell-inset-${i}`] = result;\n\t\t\t}\n\t\t});\n\n\t\treturn o;\n\t}, [state.widths, resizable]);\n\n\tconst handleWidthChange = (i: number, w: number) => {\n\t\tif (!resizable) return;\n\n\t\tconst [...ws] = state.widths;\n\t\tws[i] = w;\n\t\tstate.widths = ws;\n\t\tonResize?.(columns[i], w);\n\t};\n\n\tconst handleHeaderClick = (column?: IColumn, e?: MouseEvent) => {\n\t\tif (column?.sorter) {\n\t\t\tconst [sortBy, sortType] = getNextSorter(\n\t\t\t\tstate.sortBy,\n\t\t\t\tstate.sortType,\n\t\t\t\tcolumn.id\n\t\t\t);\n\n\t\t\tObject.assign(state, {\n\t\t\t\tsortBy,\n\t\t\t\tsortType,\n\t\t\t});\n\n\t\t\tonSort?.(sortBy, sortType);\n\t\t}\n\n\t\tonHeaderClick?.(column, e);\n\t};\n\n\tconst rows = useMemo(() => {\n\t\tconst { sortBy, sortType } = state;\n\n\t\tif (sortBy && !onSort) {\n\t\t\tconst sorter = columns.find((col) => col.id === sortBy)?.sorter;\n\t\t\tconst sortFn =\n\t\t\t\ttypeof sorter === \"function\"\n\t\t\t\t\t? sorter\n\t\t\t\t\t: (a: IData, b: IData) => b[sortBy] - a[sortBy];\n\t\t\tconst sorted = [...data].sort(sortFn);\n\n\t\t\treturn sortType === \"desc\" ? sorted : sorted.reverse();\n\t\t}\n\n\t\treturn data;\n\t}, [data, columns, state.sortBy, state.sortType]);\n\n\tuseEffect(() => {\n\t\tif (!container.current) return;\n\t\tconst { current: div } = container;\n\t\tconst tds = div.querySelector(\".i-datagrid-row\")?.children;\n\t\tif (!tds?.length) return;\n\t\tstate.widths = Array.from(tds).map((node: any) => node.offsetWidth);\n\t}, [columns, resizable]);\n\n\tuseEffect(() => {\n\t\tloading && container.current?.scrollTo({ top: 0, left: 0 });\n\t}, [loading]);\n\n\tconst mergedStyle = {\n\t\t\"--cell-padding\": cellPadding,\n\t\t...styles,\n\t} as CSSProperties;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ maxHeight: height, ...mergedStyle }}\n\t\t\tclassName={classNames(\"i-datagrid-container\", className, {\n\t\t\t\t\"i-datagrid-bordered\": border,\n\t\t\t\t\"i-datagrid-striped\": striped,\n\t\t\t})}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={container}\n\t\t\t\tclassName={classNames(\"i-datagrid\", {\n\t\t\t\t\t\"i-datagrid-loading\": loading,\n\t\t\t\t})}\n\t\t\t\tonWheel={onScroll}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tresizable={resizable}\n\t\t\t\t\t\tsortType={state.sortType}\n\t\t\t\t\t\tsortBy={state.sortBy}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tonWidthChange={handleWidthChange}\n\t\t\t\t\t\tonHeaderClick={handleHeaderClick}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{rows.map((row, i) => (\n\t\t\t\t\t<Row\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\trow={i + (header ? 1 : 0)}\n\t\t\t\t\t\tdata={row}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tonCellClick={onCellClick}\n\t\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t\t\tonCellDoubleClick={onCellDoubleClick}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\n\t\t\t\t{rows.length < 1 && empty}\n\t\t\t</div>\n\n\t\t\t{loading && renderLoading()}\n\t\t</div>\n\t);\n};\n\nexport default Datagrid;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"description.js","names":[],"sources":["../../../../packages/components/description/description.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CSSProperties, Fragment } from \"react\";\nimport \"./index.css\";\nimport { IDescription } from \"./type\";\n\nconst Description = (props: IDescription) => {\n\tconst {\n\t\tdata,\n\t\tcolon,\n\t\tcolumns = 1,\n\t\tgap = \".5em\",\n\t\talign,\n\t\tlabelWidth,\n\t\tlabelAlign,\n\t\tvertical,\n\t\tequally,\n\t\tstyle,\n\t\tclassName,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-description\", className)}\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t[\"--description-label-width\"]: labelWidth,\n\t\t\t\t\tgridTemplateColumns: `repeat(${columns}, ${\n\t\t\t\t\t\tequally ? \"1fr\" : \"auto\"\n\t\t\t\t\t})`,\n\t\t\t\t\tgap,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t\t...style,\n\t\t\t\t} as CSSProperties\n\t\t\t}\n\t\t>\n\t\t\t{data.map((item, i) => {\n\t\t\t\tconst {\n\t\t\t\t\tlabel,\n\t\t\t\t\tvalue,\n\t\t\t\t\tstyle,\n\t\t\t\t\thidden,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t\tcolSpan = 1,\n\t\t\t\t} = item;\n\n\t\t\t\tif (hidden) return <Fragment key={i} />;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tclassName={classNames(\"i-description-item\", {\n\t\t\t\t\t\t\t\"i-description-item-vertical\": vertical,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tgridColumn: `span ${colSpan}`,\n\t\t\t\t\t\t\tgridRow: `span ${rowSpan}`,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName='i-description-label'\n\t\t\t\t\t\t\t\tstyle={{ textAlign: labelAlign }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t{colon}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className='i-description-value'>{value}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport default Description;\n"],"mappings":";;;;AAKA,MAAM,eAAe,UAAwB;CAC5C,MAAM,EACL,MACA,OACA,UAAU,GACV,MAAM,QACN,OACA,YACA,YACA,UACA,SACA,OACA,cACG;AAEJ,QACC,oBAAC,OAAD;EACC,WAAW,WAAW,iBAAiB,UAAU;EACjD,OACC;IACE,8BAA8B;GAC/B,qBAAqB,UAAU,QAAQ,IACtC,UAAU,QAAQ,OAClB;GACD;GACA,WAAW;GACX,GAAG;GACH;YAGD,KAAK,KAAK,MAAM,MAAM;GACtB,MAAM,EACL,OACA,OACA,OACA,QACA,UAAU,GACV,UAAU,MACP;AAEJ,OAAI,OAAQ,QAAO,oBAAC,UAAD,EAAoB,EAAL,EAAK;AAEvC,UACC,qBAAC,OAAD;IAEC,WAAW,WAAW,sBAAsB,EAC3C,+BAA+B,UAC/B,CAAC;IACF,OAAO;KACN,YAAY,QAAQ;KACpB,SAAS,QAAQ;KACjB,GAAG;KACH;cATF,CAWE,SACA,qBAAC,OAAD;KACC,WAAU;KACV,OAAO,EAAE,WAAW,YAAY;eAFjC,CAIE,OACA,MACG;QAEN,oBAAC,OAAD;KAAK,WAAU;eAAuB;KAAW,CAAA,CAC7C;MApBC,EAoBD;IAEL;EACE,CAAA"}
1
+ {"version":3,"file":"description.js","names":[],"sources":["../../../../packages/components/description/description.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CSSProperties, Fragment } from \"react\";\nimport \"./index.css\";\nimport { IDescription } from \"./type\";\n\nconst Description = (props: IDescription) => {\n\tconst {\n\t\tdata,\n\t\tcolon,\n\t\tcolumns = 1,\n\t\tgap = \".5em\",\n\t\talign,\n\t\tlabelWidth,\n\t\tlabelAlign,\n\t\tvertical,\n\t\tequally,\n\t\tstyle,\n\t\tclassName,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-description\", className)}\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t[\"--description-label-width\"]: labelWidth,\n\t\t\t\t\tgridTemplateColumns: `repeat(${columns}, ${\n\t\t\t\t\t\tequally ? \"1fr\" : \"auto\"\n\t\t\t\t\t})`,\n\t\t\t\t\tgap,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t\t...style,\n\t\t\t\t} as CSSProperties\n\t\t\t}\n\t\t>\n\t\t\t{data.map((item, i) => {\n\t\t\t\tconst {\n\t\t\t\t\tlabel,\n\t\t\t\t\tvalue,\n\t\t\t\t\tstyle,\n\t\t\t\t\thidden,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t\tcolSpan = 1,\n\t\t\t\t} = item;\n\n\t\t\t\tif (hidden) return <Fragment key={i} />;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tclassName={classNames(\"i-description-item\", {\n\t\t\t\t\t\t\t\"i-description-item-vertical\": vertical,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tgridColumn: `span ${colSpan}`,\n\t\t\t\t\t\t\tgridRow: `span ${rowSpan}`,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName='i-description-label'\n\t\t\t\t\t\t\t\tstyle={{ textAlign: labelAlign }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t{colon}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className='i-description-value'>{value}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport default Description;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","names":[],"sources":["../../../../packages/components/drawer/drawer.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useRef, useTransition } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useKeydown, useReactive } from \"../../js/hooks\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { IDrawer } from \"./type\";\n\nfunction Drawer(props: IDrawer) {\n\tconst {\n\t\tvisible,\n\t\tposition = \"left\",\n\t\theader,\n\t\tfooter,\n\t\tbackdropClosable = true,\n\t\thideCloseButton,\n\t\tkeepDOM,\n\t\tclassName,\n\t\tdisabledEsc,\n\t\tchildren,\n\t\tonVisibleChange,\n\t\tonClose,\n\t\t...restProps\n\t} = props;\n\n\tconst toggable = useRef(true);\n\tconst state = useReactive({\n\t\tshow: visible,\n\t\tactive: visible,\n\t});\n\tconst [isPending, startTransition] = useTransition();\n\n\tconst handleHide = () => {\n\t\tif (!toggable.current || isPending) return;\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\tstate.active = false;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!keepDOM) {\n\t\t\t\t\tstate.show = false;\n\t\t\t\t}\n\t\t\t\tonVisibleChange?.(false);\n\t\t\t\ttoggable.current = true;\n\t\t\t\tonClose?.();\n\t\t\t}, 240);\n\t\t});\n\t};\n\n\tconst handleShow = () => {\n\t\tif (!toggable.current || isPending) return;\n\n\t\tstate.show = true;\n\t\tonVisibleChange?.(true);\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tstate.active = true;\n\t\t\t\ttoggable.current = true;\n\t\t\t});\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tvisible ? handleShow() : handleHide();\n\t}, [visible]);\n\n\tconst handleBackdropClick = () => {\n\t\tbackdropClosable && handleHide();\n\t};\n\n\tuseKeydown(\n\t\t(e) => {\n\t\t\tif (e.code !== \"Escape\" || !visible) return;\n\t\t\thandleHide();\n\t\t},\n\t\t{\n\t\t\tdisabled: disabledEsc,\n\t\t}\n\t);\n\n\tif (!state.show) return null;\n\n\treturn createPortal(\n\t\t<div\n\t\t\tclassName={classNames(\"i-backdrop-drawer\", className, {\n\t\t\t\t\"i-active\": state.active,\n\t\t\t})}\n\t\t\tonClick={handleBackdropClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-drawer\", `i-drawer-${position}`)}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<header className='i-drawer-header'>\n\t\t\t\t\t\t{header}\n\n\t\t\t\t\t\t{!hideCloseButton && (\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tclassName='i-drawer-close'\n\t\t\t\t\t\t\t\tonClick={handleHide}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</header>\n\t\t\t\t)}\n\n\t\t\t\t<div className='i-drawer-content'>{children}</div>\n\n\t\t\t\t{footer && <div className='i-drawer-footer'>{footer}</div>}\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\nexport default Drawer;\n"],"mappings":";;;;;;;AAQA,SAAS,OAAO,OAAgB;CAC/B,MAAM,EACL,SACA,WAAW,QACX,QACA,QACA,mBAAmB,MACnB,iBACA,SACA,WACA,aACA,UACA,iBACA,SACA,GAAG,cACA;CAEJ,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,QAAQ,YAAY;EACzB,MAAM;EACN,QAAQ;EACR,CAAC;CACF,MAAM,CAAC,WAAW,mBAAmB,eAAe;CAEpD,MAAM,mBAAmB;AACxB,MAAI,CAAC,SAAS,WAAW,UAAW;AACpC,WAAS,UAAU;AAEnB,wBAAsB;AACrB,SAAM,SAAS;AAEf,oBAAiB;AAChB,QAAI,CAAC,QACJ,OAAM,OAAO;AAEd,sBAAkB,MAAM;AACxB,aAAS,UAAU;AACnB,eAAW;MACT,IAAI;IACN;;CAGH,MAAM,mBAAmB;AACxB,MAAI,CAAC,SAAS,WAAW,UAAW;AAEpC,QAAM,OAAO;AACb,oBAAkB,KAAK;AACvB,WAAS,UAAU;AAEnB,wBAAsB;AACrB,+BAA4B;AAC3B,UAAM,SAAS;AACf,aAAS,UAAU;KAClB;IACD;;AAGH,iBAAgB;AACf,YAAU,YAAY,GAAG,YAAY;IACnC,CAAC,QAAQ,CAAC;CAEb,MAAM,4BAA4B;AACjC,sBAAoB,YAAY;;AAGjC,aACE,MAAM;AACN,MAAI,EAAE,SAAS,YAAY,CAAC,QAAS;AACrC,cAAY;IAEb,EACC,UAAU,aACX,CACA;AAED,KAAI,CAAC,MAAM,KAAM,QAAO;AAExB,QAAO,aACN,oBAAC,OAAD;EACC,WAAW,WAAW,qBAAqB,WAAW,EACrD,YAAY,MAAM,QAClB,CAAC;EACF,SAAS;EACT,GAAI;YAEJ,qBAAC,OAAD;GACC,WAAW,WAAW,YAAY,YAAY,WAAW;GACzD,UAAU,MAAM,EAAE,iBAAiB;aAFpC;IAIE,UACA,qBAAC,UAAD;KAAQ,WAAU;eAAlB,CACE,QAEA,CAAC,mBACD,oBAAC,oBAAD;MACC,WAAU;MACV,SAAS;MACT,CAAA,CAEK;;IAGT,oBAAC,OAAD;KAAK,WAAU;KAAoB;KAAc,CAAA;IAEhD,UAAU,oBAAC,OAAD;KAAK,WAAU;eAAmB;KAAa,CAAA;IACtD;;EACA,CAAA,EACN,SAAS,KACT"}
1
+ {"version":3,"file":"drawer.js","names":[],"sources":["../../../../packages/components/drawer/drawer.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useRef, useTransition } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useKeydown, useReactive } from \"../../js/hooks\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { IDrawer } from \"./type\";\n\nfunction Drawer(props: IDrawer) {\n\tconst {\n\t\tvisible,\n\t\tposition = \"left\",\n\t\theader,\n\t\tfooter,\n\t\tbackdropClosable = true,\n\t\thideCloseButton,\n\t\tkeepDOM,\n\t\tclassName,\n\t\tdisabledEsc,\n\t\tchildren,\n\t\tonVisibleChange,\n\t\tonClose,\n\t\t...restProps\n\t} = props;\n\n\tconst toggable = useRef(true);\n\tconst state = useReactive({\n\t\tshow: visible,\n\t\tactive: visible,\n\t});\n\tconst [isPending, startTransition] = useTransition();\n\n\tconst handleHide = () => {\n\t\tif (!toggable.current || isPending) return;\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\tstate.active = false;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!keepDOM) {\n\t\t\t\t\tstate.show = false;\n\t\t\t\t}\n\t\t\t\tonVisibleChange?.(false);\n\t\t\t\ttoggable.current = true;\n\t\t\t\tonClose?.();\n\t\t\t}, 240);\n\t\t});\n\t};\n\n\tconst handleShow = () => {\n\t\tif (!toggable.current || isPending) return;\n\n\t\tstate.show = true;\n\t\tonVisibleChange?.(true);\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tstate.active = true;\n\t\t\t\ttoggable.current = true;\n\t\t\t});\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tvisible ? handleShow() : handleHide();\n\t}, [visible]);\n\n\tconst handleBackdropClick = () => {\n\t\tbackdropClosable && handleHide();\n\t};\n\n\tuseKeydown(\n\t\t(e) => {\n\t\t\tif (e.code !== \"Escape\" || !visible) return;\n\t\t\thandleHide();\n\t\t},\n\t\t{\n\t\t\tdisabled: disabledEsc,\n\t\t}\n\t);\n\n\tif (!state.show) return null;\n\n\treturn createPortal(\n\t\t<div\n\t\t\tclassName={classNames(\"i-backdrop-drawer\", className, {\n\t\t\t\t\"i-active\": state.active,\n\t\t\t})}\n\t\t\tonClick={handleBackdropClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-drawer\", `i-drawer-${position}`)}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<header className='i-drawer-header'>\n\t\t\t\t\t\t{header}\n\n\t\t\t\t\t\t{!hideCloseButton && (\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tclassName='i-drawer-close'\n\t\t\t\t\t\t\t\tonClick={handleHide}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</header>\n\t\t\t\t)}\n\n\t\t\t\t<div className='i-drawer-content'>{children}</div>\n\n\t\t\t\t{footer && <div className='i-drawer-footer'>{footer}</div>}\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\nexport default Drawer;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","names":[],"sources":["../../../../packages/components/dropdown/dropdown.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport List from \"../list\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IDropdown } from \"./type\";\n\nconst Dropdown = (props: IDropdown) => {\n\tconst { visible, width, content, children, ...restProps } = props;\n\tconst [active, setActive] = useState(visible);\n\n\tif (!content) {\n\t\treturn children;\n\t}\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tsetActive(v);\n\t\tif (props.onVisibleChange) {\n\t\t\tprops.onVisibleChange(v);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetActive(visible);\n\t}, [visible]);\n\n\treturn (\n\t\t<Popup\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tcontent={\n\t\t\t\t<List\n\t\t\t\t\tclassName='i-dropdown-content'\n\t\t\t\t\tstyle={{ minWidth: width }}\n\t\t\t\t>\n\t\t\t\t\t{typeof content === \"function\"\n\t\t\t\t\t\t? content(() => setActive(false))\n\t\t\t\t\t\t: content}\n\t\t\t\t</List>\n\t\t\t}\n\t\t\t{...restProps}\n\t\t\ttouchable\n\t\t\tvisible={active}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children}\n\t\t</Popup>\n\t);\n};\n\nDropdown.Item = Item;\n\nexport default Dropdown;\n"],"mappings":";;;;;;AAOA,MAAM,YAAY,UAAqB;CACtC,MAAM,EAAE,SAAS,OAAO,SAAS,UAAU,GAAG,cAAc;CAC5D,MAAM,CAAC,QAAQ,aAAa,SAAS,QAAQ;AAE7C,KAAI,CAAC,QACJ,QAAO;CAGR,MAAM,uBAAuB,MAAe;AAC3C,YAAU,EAAE;AACZ,MAAI,MAAM,gBACT,OAAM,gBAAgB,EAAE;;AAI1B,iBAAgB;AACf,YAAU,QAAQ;IAChB,CAAC,QAAQ,CAAC;AAEb,QACC,oBAAC,eAAD;EACC,SAAQ;EACR,UAAS;EACT,SACC,oBAAC,cAAD;GACC,WAAU;GACV,OAAO,EAAE,UAAU,OAAO;aAEzB,OAAO,YAAY,aACjB,cAAc,UAAU,MAAM,CAAA,GAC9B;GACE,CAAA;EAEP,GAAI;EACJ,WAAA;EACA,SAAS;EACT,iBAAiB;EAEhB;EACK,CAAA;;AAIT,SAAS,OAAO"}
1
+ {"version":3,"file":"dropdown.js","names":[],"sources":["../../../../packages/components/dropdown/dropdown.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport List from \"../list\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IDropdown } from \"./type\";\n\nconst Dropdown = (props: IDropdown) => {\n\tconst { visible, width, content, children, ...restProps } = props;\n\tconst [active, setActive] = useState(visible);\n\n\tif (!content) {\n\t\treturn children;\n\t}\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tsetActive(v);\n\t\tif (props.onVisibleChange) {\n\t\t\tprops.onVisibleChange(v);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetActive(visible);\n\t}, [visible]);\n\n\treturn (\n\t\t<Popup\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tcontent={\n\t\t\t\t<List\n\t\t\t\t\tclassName='i-dropdown-content'\n\t\t\t\t\tstyle={{ minWidth: width }}\n\t\t\t\t>\n\t\t\t\t\t{typeof content === \"function\"\n\t\t\t\t\t\t? content(() => setActive(false))\n\t\t\t\t\t\t: content}\n\t\t\t\t</List>\n\t\t\t}\n\t\t\t{...restProps}\n\t\t\ttouchable\n\t\t\tvisible={active}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children}\n\t\t</Popup>\n\t);\n};\n\nDropdown.Item = Item;\n\nexport default Dropdown;\n"],"mappings":""}
@@ -1,14 +1,8 @@
1
1
  import button_default from "../button/index.js";
2
2
  import icon_default from "../icon/index.js";
3
+ import { ClearAllRound, FormatBoldRound, FormatItalicRound, FormatUnderlinedRound, RedoRound, StrikethroughSRound, UndoRound } from "@ricons/material";
3
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
5
  import xss from "xss";
5
- import ClearAllRound from "@ricons/material/es/ClearAllRound.js";
6
- import FormatBoldRound from "@ricons/material/es/FormatBoldRound.js";
7
- import FormatItalicRound from "@ricons/material/es/FormatItalicRound.js";
8
- import FormatUnderlinedRound from "@ricons/material/es/FormatUnderlinedRound.js";
9
- import RedoRound from "@ricons/material/es/RedoRound.js";
10
- import StrikethroughSRound from "@ricons/material/es/StrikethroughSRound.js";
11
- import UndoRound from "@ricons/material/es/UndoRound.js";
12
6
  //#region packages/components/editor/controls.tsx
13
7
  const { escapeAttrValue } = xss;
14
8
  const exec = (a, b, c) => {
@@ -1 +1 @@
1
- {"version":3,"file":"controls.js","names":["Button","Icon"],"sources":["../../../../packages/components/editor/controls.tsx"],"sourcesContent":["import ClearAllRound from \"@ricons/material/es/ClearAllRound.js\";\nimport FormatBoldRound from \"@ricons/material/es/FormatBoldRound.js\";\nimport FormatItalicRound from \"@ricons/material/es/FormatItalicRound.js\";\nimport FormatUnderlinedRound from \"@ricons/material/es/FormatUnderlinedRound.js\";\nimport RedoRound from \"@ricons/material/es/RedoRound.js\";\nimport StrikethroughSRound from \"@ricons/material/es/StrikethroughSRound.js\";\nimport UndoRound from \"@ricons/material/es/UndoRound.js\";\nimport { Fragment } from \"react/jsx-runtime\";\nimport xss from \"xss\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\n\nconst { escapeAttrValue } = xss as unknown as {\n\tescapeAttrValue: (value: string) => string;\n};\n\nexport const exec = (a, b?, c?) => {\n\tif (typeof document === \"undefined\") return;\n\treturn document.execCommand(a, b, c);\n};\n\nexport const xssOptions = {\n\tonIgnoreTagAttr: function (tag, name, value) {\n\t\tif ([\"data-\", \"style\"].includes(name.substr(0, 5))) {\n\t\t\treturn name + '=\"' + escapeAttrValue(value) + '\"';\n\t\t}\n\t},\n};\n\nconst fnMap = {\n\tbold: {\n\t\ticon: <FormatBoldRound />,\n\t\tonClick: () => exec(\"bold\"),\n\t\ttip: \"粗体\",\n\t},\n\titalic: {\n\t\ticon: <FormatItalicRound />,\n\t\tonClick: () => exec(\"italic\"),\n\t\ttip: \"斜体\",\n\t},\n\tunderline: {\n\t\ticon: <FormatUnderlinedRound />,\n\t\tonClick: () => exec(\"underline\"),\n\t\ttip: \"下划线\",\n\t},\n\tstrike: {\n\t\ticon: <StrikethroughSRound />,\n\t\tonClick: () => exec(\"strikeThrough\"),\n\t\ttip: \"删除线\",\n\t},\n\tredo: {\n\t\ticon: <RedoRound />,\n\t\tonClick: () => exec(\"redo\"),\n\t\ttip: \"重做\",\n\t},\n\tundo: {\n\t\ticon: <UndoRound />,\n\t\tonClick: () => exec(\"undo\"),\n\t\ttip: \"撤销\",\n\t},\n\t// color: {\n\t// \ticon: <FormatColorTextRound />,\n\t// \tonClick: () => exec(\"foreColor\", false, \"\"),\n\t// },\n\t// backColor: {\n\t// \ticon: <FormatColorFillRound />,\n\t// \tonClick: () => exec(\"backColor\", false, \"\"),\n\t// },\n\tclear: {\n\t\ticon: <ClearAllRound />,\n\t\tonClick: () => exec(\"removeFormat\"),\n\t\ttip: \"清除格式\",\n\t},\n};\n\nconst aliasMap = {\n\tsimple: [\"undo\", \"redo\", \"bold\", \"italic\", \"underline\", \"strike\", \"clear\"],\n\tall: Object.keys(fnMap),\n};\n\nexport default function getControls(fns, options) {\n\tconst { controlBtnProps } = options;\n\tconst keys = typeof fns === \"string\" ? aliasMap[fns] : fns;\n\n\treturn keys.map((k) => {\n\t\tif (fnMap[k]) {\n\t\t\tconst { icon, render, tip, onClick } = fnMap[k];\n\n\t\t\tif (render) {\n\t\t\t\treturn render(options);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<Button key={k} {...controlBtnProps} onClick={onClick}>\n\t\t\t\t\t<Icon icon={icon} />\n\t\t\t\t\t{tip && <span className='i-editor-control-tip'>{tip}</span>}\n\t\t\t\t</Button>\n\t\t\t);\n\t\t}\n\t\treturn <Fragment key={k} />;\n\t});\n}\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,EAAE,oBAAoB;AAI5B,MAAa,QAAQ,GAAG,GAAI,MAAO;AAClC,KAAI,OAAO,aAAa,YAAa;AACrC,QAAO,SAAS,YAAY,GAAG,GAAG,EAAE;;AAGrC,MAAa,aAAa,EACzB,iBAAiB,SAAU,KAAK,MAAM,OAAO;AAC5C,KAAI,CAAC,SAAS,QAAQ,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,CAAC,CACjD,QAAO,OAAO,QAAO,gBAAgB,MAAM,GAAG;GAGhD;AAED,MAAM,QAAQ;CACb,MAAM;EACL,MAAM,oBAAC,iBAAD,EAAmB,CAAA;EACzB,eAAe,KAAK,OAAO;EAC3B,KAAK;EACL;CACD,QAAQ;EACP,MAAM,oBAAC,mBAAD,EAAqB,CAAA;EAC3B,eAAe,KAAK,SAAS;EAC7B,KAAK;EACL;CACD,WAAW;EACV,MAAM,oBAAC,uBAAD,EAAyB,CAAA;EAC/B,eAAe,KAAK,YAAY;EAChC,KAAK;EACL;CACD,QAAQ;EACP,MAAM,oBAAC,qBAAD,EAAuB,CAAA;EAC7B,eAAe,KAAK,gBAAgB;EACpC,KAAK;EACL;CACD,MAAM;EACL,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,eAAe,KAAK,OAAO;EAC3B,KAAK;EACL;CACD,MAAM;EACL,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,eAAe,KAAK,OAAO;EAC3B,KAAK;EACL;CASD,OAAO;EACN,MAAM,oBAAC,eAAD,EAAiB,CAAA;EACvB,eAAe,KAAK,eAAe;EACnC,KAAK;EACL;CACD;AAED,MAAM,WAAW;CAChB,QAAQ;EAAC;EAAQ;EAAQ;EAAQ;EAAU;EAAa;EAAU;EAAQ;CAC1E,KAAK,OAAO,KAAK,MAAM;CACvB;AAED,SAAwB,YAAY,KAAK,SAAS;CACjD,MAAM,EAAE,oBAAoB;AAG5B,SAFa,OAAO,QAAQ,WAAW,SAAS,OAAO,KAE3C,KAAK,MAAM;AACtB,MAAI,MAAM,IAAI;GACb,MAAM,EAAE,MAAM,QAAQ,KAAK,YAAY,MAAM;AAE7C,OAAI,OACH,QAAO,OAAO,QAAQ;AAGvB,UACC,qBAACA,gBAAD;IAAgB,GAAI;IAA0B;cAA9C,CACC,oBAACC,cAAD,EAAY,MAAQ,CAAA,EACnB,OAAO,oBAAC,QAAD;KAAM,WAAU;eAAwB;KAAW,CAAA,CACnD;MAHI,EAGJ;;AAGX,SAAO,oBAAC,UAAD,EAAoB,EAAL,EAAK;GAC1B"}
1
+ {"version":3,"file":"controls.js","names":["Button","Icon"],"sources":["../../../../packages/components/editor/controls.tsx"],"sourcesContent":["import {\n\tClearAllRound,\n\tFormatBoldRound,\n\tFormatItalicRound,\n\tFormatUnderlinedRound,\n\tRedoRound,\n\tStrikethroughSRound,\n\tUndoRound,\n} from \"@ricons/material\";\nimport { Fragment } from \"react/jsx-runtime\";\nimport xss from \"xss\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\n\nconst { escapeAttrValue } = xss as unknown as {\n\tescapeAttrValue: (value: string) => string;\n};\n\nexport const exec = (a, b?, c?) => {\n\tif (typeof document === \"undefined\") return;\n\treturn document.execCommand(a, b, c);\n};\n\nexport const xssOptions = {\n\tonIgnoreTagAttr: function (tag, name, value) {\n\t\tif ([\"data-\", \"style\"].includes(name.substr(0, 5))) {\n\t\t\treturn name + '=\"' + escapeAttrValue(value) + '\"';\n\t\t}\n\t},\n};\n\nconst fnMap = {\n\tbold: {\n\t\ticon: <FormatBoldRound />,\n\t\tonClick: () => exec(\"bold\"),\n\t\ttip: \"粗体\",\n\t},\n\titalic: {\n\t\ticon: <FormatItalicRound />,\n\t\tonClick: () => exec(\"italic\"),\n\t\ttip: \"斜体\",\n\t},\n\tunderline: {\n\t\ticon: <FormatUnderlinedRound />,\n\t\tonClick: () => exec(\"underline\"),\n\t\ttip: \"下划线\",\n\t},\n\tstrike: {\n\t\ticon: <StrikethroughSRound />,\n\t\tonClick: () => exec(\"strikeThrough\"),\n\t\ttip: \"删除线\",\n\t},\n\tredo: {\n\t\ticon: <RedoRound />,\n\t\tonClick: () => exec(\"redo\"),\n\t\ttip: \"重做\",\n\t},\n\tundo: {\n\t\ticon: <UndoRound />,\n\t\tonClick: () => exec(\"undo\"),\n\t\ttip: \"撤销\",\n\t},\n\t// color: {\n\t// \ticon: <FormatColorTextRound />,\n\t// \tonClick: () => exec(\"foreColor\", false, \"\"),\n\t// },\n\t// backColor: {\n\t// \ticon: <FormatColorFillRound />,\n\t// \tonClick: () => exec(\"backColor\", false, \"\"),\n\t// },\n\tclear: {\n\t\ticon: <ClearAllRound />,\n\t\tonClick: () => exec(\"removeFormat\"),\n\t\ttip: \"清除格式\",\n\t},\n};\n\nconst aliasMap = {\n\tsimple: [\"undo\", \"redo\", \"bold\", \"italic\", \"underline\", \"strike\", \"clear\"],\n\tall: Object.keys(fnMap),\n};\n\nexport default function getControls(fns, options) {\n\tconst { controlBtnProps } = options;\n\tconst keys = typeof fns === \"string\" ? aliasMap[fns] : fns;\n\n\treturn keys.map((k) => {\n\t\tif (fnMap[k]) {\n\t\t\tconst { icon, render, tip, onClick } = fnMap[k];\n\n\t\t\tif (render) {\n\t\t\t\treturn render(options);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<Button key={k} {...controlBtnProps} onClick={onClick}>\n\t\t\t\t\t<Icon icon={icon} />\n\t\t\t\t\t{tip && <span className='i-editor-control-tip'>{tip}</span>}\n\t\t\t\t</Button>\n\t\t\t);\n\t\t}\n\t\treturn <Fragment key={k} />;\n\t});\n}\n"],"mappings":";;;;;;AAcA,MAAM,EAAE,oBAAoB;AAI5B,MAAa,QAAQ,GAAG,GAAI,MAAO;AAClC,KAAI,OAAO,aAAa,YAAa;AACrC,QAAO,SAAS,YAAY,GAAG,GAAG,EAAE;;AAGrC,MAAa,aAAa,EACzB,iBAAiB,SAAU,KAAK,MAAM,OAAO;AAC5C,KAAI,CAAC,SAAS,QAAQ,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,CAAC,CACjD,QAAO,OAAO,QAAO,gBAAgB,MAAM,GAAG;GAGhD;AAED,MAAM,QAAQ;CACb,MAAM;EACL,MAAM,oBAAC,iBAAD,EAAmB,CAAA;EACzB,eAAe,KAAK,OAAO;EAC3B,KAAK;EACL;CACD,QAAQ;EACP,MAAM,oBAAC,mBAAD,EAAqB,CAAA;EAC3B,eAAe,KAAK,SAAS;EAC7B,KAAK;EACL;CACD,WAAW;EACV,MAAM,oBAAC,uBAAD,EAAyB,CAAA;EAC/B,eAAe,KAAK,YAAY;EAChC,KAAK;EACL;CACD,QAAQ;EACP,MAAM,oBAAC,qBAAD,EAAuB,CAAA;EAC7B,eAAe,KAAK,gBAAgB;EACpC,KAAK;EACL;CACD,MAAM;EACL,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,eAAe,KAAK,OAAO;EAC3B,KAAK;EACL;CACD,MAAM;EACL,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,eAAe,KAAK,OAAO;EAC3B,KAAK;EACL;CASD,OAAO;EACN,MAAM,oBAAC,eAAD,EAAiB,CAAA;EACvB,eAAe,KAAK,eAAe;EACnC,KAAK;EACL;CACD;AAED,MAAM,WAAW;CAChB,QAAQ;EAAC;EAAQ;EAAQ;EAAQ;EAAU;EAAa;EAAU;EAAQ;CAC1E,KAAK,OAAO,KAAK,MAAM;CACvB;AAED,SAAwB,YAAY,KAAK,SAAS;CACjD,MAAM,EAAE,oBAAoB;AAG5B,SAFa,OAAO,QAAQ,WAAW,SAAS,OAAO,KAE3C,KAAK,MAAM;AACtB,MAAI,MAAM,IAAI;GACb,MAAM,EAAE,MAAM,QAAQ,KAAK,YAAY,MAAM;AAE7C,OAAI,OACH,QAAO,OAAO,QAAQ;AAGvB,UACC,qBAACA,gBAAD;IAAgB,GAAI;IAA0B;cAA9C,CACC,oBAACC,cAAD,EAAY,MAAQ,CAAA,EACnB,OAAO,oBAAC,QAAD;KAAM,WAAU;eAAwB;KAAW,CAAA,CACnD;MAHI,EAGJ;;AAGX,SAAO,oBAAC,UAAD,EAAoB,EAAL,EAAK;GAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","names":[],"sources":["../../../../packages/components/editor/editor.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useImperativeHandle, useRef } from \"react\";\nimport xss from \"xss\";\nimport { IButton } from \"../button/type\";\nimport getControls, { exec, xssOptions } from \"./controls\";\nimport \"./index.css\";\nimport { IEditor } from \"./type\";\n\nconst Editor = (props: IEditor) => {\n\tconst {\n\t\tref,\n\t\twidth,\n\t\theight = \"10em\",\n\t\tplaceholder,\n\t\tautosize,\n\t\tborder = true,\n\t\trichPaste,\n\t\tcontrols = \"simple\",\n\t\tclassName,\n\t\tstyle,\n\t\tonInput,\n\t\tonPaste,\n\t\tonKeyDown,\n\t\t...restProps\n\t} = props;\n\tconst editorRef = useRef<HTMLDivElement>(null);\n\tconst controlBtnProps: IButton = {\n\t\tsquare: true,\n\t\tflat: true,\n\t\tsize: \"small\",\n\t};\n\n\tconst handlePaste = async (e) => {\n\t\tonPaste?.(e);\n\n\t\tif (richPaste) return;\n\t\te.preventDefault();\n\t\tconst text = e.clipboardData.getData(\"text/plain\");\n\t\texec(\"insertText\", false, text);\n\t};\n\n\tconst handleKeyDown = (e) => {\n\t\tonKeyDown?.(e);\n\n\t\tswitch (e.key) {\n\t\t\tcase \"Tab\":\n\t\t\t\te.preventDefault();\n\t\t\t\texec(\"insertHTML\", false, \"&#09;\");\n\t\t\t\tbreak;\n\t\t\tcase \"Enter\":\n\t\t\t\te.preventDefault();\n\t\t\t\texec(\"insertLineBreak\");\n\n\t\t\t\tif (!editorRef.current) return;\n\t\t\t\teditorRef.current.scrollBy({\n\t\t\t\t\ttop: 20,\n\t\t\t\t\tleft: -1000,\n\t\t\t\t});\n\n\t\t\t\tif (!autosize) return;\n\t\t\t\teditorRef.current.style.height = `${editorRef.current.scrollHeight}px`;\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn {\n\t\t\tinput: editorRef.current,\n\t\t\tsetValue(html) {\n\t\t\t\tif (!editorRef.current) return;\n\t\t\t\tconst safeHtml = xss(html, xssOptions);\n\n\t\t\t\teditorRef.current.innerHTML = safeHtml;\n\t\t\t},\n\t\t\tgetSafeValue() {\n\t\t\t\tconst html = editorRef.current?.innerHTML ?? \"\";\n\n\t\t\t\treturn xss(html, xssOptions);\n\t\t\t},\n\t\t};\n\t});\n\n\tconst handleInput = (e) => {\n\t\tlet html = editorRef.current?.innerHTML ?? \"\";\n\n\t\tif ([\"<br>\", \"\\n\"].includes(html) && editorRef.current) {\n\t\t\thtml = \"\";\n\t\t\teditorRef.current.innerHTML = html;\n\t\t}\n\n\t\tonInput?.(html, e);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-editor\", className, {\n\t\t\t\t\"i-editor-borderless\": !border,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\t[autosize ? \"minHeight\" : \"height\"]: height,\n\t\t\t\twidth,\n\t\t\t}}\n\t\t>\n\t\t\t{controls !== \"none\" && (\n\t\t\t\t<div className='i-editor-controls'>\n\t\t\t\t\t{getControls(controls, {\n\t\t\t\t\t\tcontrolBtnProps,\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tref={editorRef}\n\t\t\t\tclassName='i-editor-content'\n\t\t\t\tdata-placeholder={placeholder}\n\t\t\t\tcontentEditable\n\t\t\t\tonPaste={handlePaste}\n\t\t\t\tonInput={handleInput}\n\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Editor;\n"],"mappings":";;;;;;AAQA,MAAM,UAAU,UAAmB;CAClC,MAAM,EACL,KACA,OACA,SAAS,QACT,aACA,UACA,SAAS,MACT,WACA,WAAW,UACX,WACA,OACA,SACA,SACA,WACA,GAAG,cACA;CACJ,MAAM,YAAY,OAAuB,KAAK;CAC9C,MAAM,kBAA2B;EAChC,QAAQ;EACR,MAAM;EACN,MAAM;EACN;CAED,MAAM,cAAc,OAAO,MAAM;AAChC,YAAU,EAAE;AAEZ,MAAI,UAAW;AACf,IAAE,gBAAgB;AAElB,OAAK,cAAc,OADN,EAAE,cAAc,QAAQ,aAAa,CACnB;;CAGhC,MAAM,iBAAiB,MAAM;AAC5B,cAAY,EAAE;AAEd,UAAQ,EAAE,KAAV;GACC,KAAK;AACJ,MAAE,gBAAgB;AAClB,SAAK,cAAc,OAAO,QAAQ;AAClC;GACD,KAAK;AACJ,MAAE,gBAAgB;AAClB,SAAK,kBAAkB;AAEvB,QAAI,CAAC,UAAU,QAAS;AACxB,cAAU,QAAQ,SAAS;KAC1B,KAAK;KACL,MAAM;KACN,CAAC;AAEF,QAAI,CAAC,SAAU;AACf,cAAU,QAAQ,MAAM,SAAS,GAAG,UAAU,QAAQ,aAAa;AAEnE;GACD,QACC;;;AAIH,qBAAoB,WAAW;AAC9B,SAAO;GACN,OAAO,UAAU;GACjB,SAAS,MAAM;AACd,QAAI,CAAC,UAAU,QAAS;IACxB,MAAM,WAAW,IAAI,MAAM,WAAW;AAEtC,cAAU,QAAQ,YAAY;;GAE/B,eAAe;AAGd,WAAO,IAFM,UAAU,SAAS,aAAa,IAE5B,WAAW;;GAE7B;GACA;CAEF,MAAM,eAAe,MAAM;EAC1B,IAAI,OAAO,UAAU,SAAS,aAAa;AAE3C,MAAI,CAAC,QAAQ,KAAK,CAAC,SAAS,KAAK,IAAI,UAAU,SAAS;AACvD,UAAO;AACP,aAAU,QAAQ,YAAY;;AAG/B,YAAU,MAAM,EAAE;;AAGnB,QACC,qBAAC,OAAD;EACC,WAAW,WAAW,YAAY,WAAW,EAC5C,uBAAuB,CAAC,QACxB,CAAC;EACF,OAAO;GACN,GAAG;IACF,WAAW,cAAc,WAAW;GACrC;GACA;YARF,CAUE,aAAa,UACb,oBAAC,OAAD;GAAK,WAAU;aACb,YAAY,UAAU,EACtB,iBACA,CAAC;GACE,CAAA,EAGN,oBAAC,OAAD;GACC,KAAK;GACL,WAAU;GACV,oBAAkB;GAClB,iBAAA;GACA,SAAS;GACT,SAAS;GACT,WAAW;GACX,GAAI;GACJ,CAAA,CACG"}
1
+ {"version":3,"file":"editor.js","names":[],"sources":["../../../../packages/components/editor/editor.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useImperativeHandle, useRef } from \"react\";\nimport xss from \"xss\";\nimport { IButton } from \"../button/type\";\nimport getControls, { exec, xssOptions } from \"./controls\";\nimport \"./index.css\";\nimport { IEditor } from \"./type\";\n\nconst Editor = (props: IEditor) => {\n\tconst {\n\t\tref,\n\t\twidth,\n\t\theight = \"10em\",\n\t\tplaceholder,\n\t\tautosize,\n\t\tborder = true,\n\t\trichPaste,\n\t\tcontrols = \"simple\",\n\t\tclassName,\n\t\tstyle,\n\t\tonInput,\n\t\tonPaste,\n\t\tonKeyDown,\n\t\t...restProps\n\t} = props;\n\tconst editorRef = useRef<HTMLDivElement>(null);\n\tconst controlBtnProps: IButton = {\n\t\tsquare: true,\n\t\tflat: true,\n\t\tsize: \"small\",\n\t};\n\n\tconst handlePaste = async (e) => {\n\t\tonPaste?.(e);\n\n\t\tif (richPaste) return;\n\t\te.preventDefault();\n\t\tconst text = e.clipboardData.getData(\"text/plain\");\n\t\texec(\"insertText\", false, text);\n\t};\n\n\tconst handleKeyDown = (e) => {\n\t\tonKeyDown?.(e);\n\n\t\tswitch (e.key) {\n\t\t\tcase \"Tab\":\n\t\t\t\te.preventDefault();\n\t\t\t\texec(\"insertHTML\", false, \"&#09;\");\n\t\t\t\tbreak;\n\t\t\tcase \"Enter\":\n\t\t\t\te.preventDefault();\n\t\t\t\texec(\"insertLineBreak\");\n\n\t\t\t\tif (!editorRef.current) return;\n\t\t\t\teditorRef.current.scrollBy({\n\t\t\t\t\ttop: 20,\n\t\t\t\t\tleft: -1000,\n\t\t\t\t});\n\n\t\t\t\tif (!autosize) return;\n\t\t\t\teditorRef.current.style.height = `${editorRef.current.scrollHeight}px`;\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn {\n\t\t\tinput: editorRef.current,\n\t\t\tsetValue(html) {\n\t\t\t\tif (!editorRef.current) return;\n\t\t\t\tconst safeHtml = xss(html, xssOptions);\n\n\t\t\t\teditorRef.current.innerHTML = safeHtml;\n\t\t\t},\n\t\t\tgetSafeValue() {\n\t\t\t\tconst html = editorRef.current?.innerHTML ?? \"\";\n\n\t\t\t\treturn xss(html, xssOptions);\n\t\t\t},\n\t\t};\n\t});\n\n\tconst handleInput = (e) => {\n\t\tlet html = editorRef.current?.innerHTML ?? \"\";\n\n\t\tif ([\"<br>\", \"\\n\"].includes(html) && editorRef.current) {\n\t\t\thtml = \"\";\n\t\t\teditorRef.current.innerHTML = html;\n\t\t}\n\n\t\tonInput?.(html, e);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-editor\", className, {\n\t\t\t\t\"i-editor-borderless\": !border,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\t[autosize ? \"minHeight\" : \"height\"]: height,\n\t\t\t\twidth,\n\t\t\t}}\n\t\t>\n\t\t\t{controls !== \"none\" && (\n\t\t\t\t<div className='i-editor-controls'>\n\t\t\t\t\t{getControls(controls, {\n\t\t\t\t\t\tcontrolBtnProps,\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tref={editorRef}\n\t\t\t\tclassName='i-editor-content'\n\t\t\t\tdata-placeholder={placeholder}\n\t\t\t\tcontentEditable\n\t\t\t\tonPaste={handlePaste}\n\t\t\t\tonInput={handleInput}\n\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Editor;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"flex.js","names":[],"sources":["../../../../packages/components/flex/flex.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport \"./index.css\";\nimport { IFlex } from \"./type\";\n\nconst Flex: React.FC<IFlex> = (props: IFlex) => {\n\tconst {\n\t\tas: Component = \"div\" as any,\n\t\talign,\n\t\tjustify,\n\t\tdirection,\n\t\twrap,\n\t\tgap,\n\t\tcolumns,\n\t\tclassName,\n\t\tstyle,\n\t\t...restProps\n\t} = props;\n\n\tconst gridColumns = useMemo(() => {\n\t\tif (!columns) return;\n\n\t\tif (typeof columns === \"number\") return `repeat(${columns}, 1fr)`;\n\n\t\treturn columns;\n\t}, [columns]);\n\n\treturn (\n\t\t<Component\n\t\t\t{...restProps}\n\t\t\tstyle={{\n\t\t\t\talignItems: align,\n\t\t\t\tjustifyContent: justify,\n\t\t\t\tgap,\n\t\t\t\tflexDirection: direction,\n\t\t\t\tflexWrap: wrap === true ? \"wrap\" : wrap,\n\t\t\t\tgridTemplateColumns: gridColumns as any,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t[columns ? \"grid\" : \"flex\"]: true,\n\t\t\t})}\n\t\t/>\n\t);\n};\n\nexport default Flex;\n"],"mappings":";;;;AAKA,MAAM,QAAyB,UAAiB;CAC/C,MAAM,EACL,IAAI,YAAY,OAChB,OACA,SACA,WACA,MACA,KACA,SACA,WACA,OACA,GAAG,cACA;CAEJ,MAAM,cAAc,cAAc;AACjC,MAAI,CAAC,QAAS;AAEd,MAAI,OAAO,YAAY,SAAU,QAAO,UAAU,QAAQ;AAE1D,SAAO;IACL,CAAC,QAAQ,CAAC;AAEb,QACC,oBAAC,WAAD;EACC,GAAI;EACJ,OAAO;GACN,YAAY;GACZ,gBAAgB;GAChB;GACA,eAAe;GACf,UAAU,SAAS,OAAO,SAAS;GACnC,qBAAqB;GACrB,GAAG;GACH;EACD,WAAW,WAAW,WAAW,GAC/B,UAAU,SAAS,SAAS,MAC7B,CAAC;EACF,CAAA"}
1
+ {"version":3,"file":"flex.js","names":[],"sources":["../../../../packages/components/flex/flex.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport \"./index.css\";\nimport { IFlex } from \"./type\";\n\nconst Flex: React.FC<IFlex> = (props: IFlex) => {\n\tconst {\n\t\tas: Component = \"div\" as any,\n\t\talign,\n\t\tjustify,\n\t\tdirection,\n\t\twrap,\n\t\tgap,\n\t\tcolumns,\n\t\tclassName,\n\t\tstyle,\n\t\t...restProps\n\t} = props;\n\n\tconst gridColumns = useMemo(() => {\n\t\tif (!columns) return;\n\n\t\tif (typeof columns === \"number\") return `repeat(${columns}, 1fr)`;\n\n\t\treturn columns;\n\t}, [columns]);\n\n\treturn (\n\t\t<Component\n\t\t\t{...restProps}\n\t\t\tstyle={{\n\t\t\t\talignItems: align,\n\t\t\t\tjustifyContent: justify,\n\t\t\t\tgap,\n\t\t\t\tflexDirection: direction,\n\t\t\t\tflexWrap: wrap === true ? \"wrap\" : wrap,\n\t\t\t\tgridTemplateColumns: gridColumns as any,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t[columns ? \"grid\" : \"flex\"]: true,\n\t\t\t})}\n\t\t/>\n\t);\n};\n\nexport default Flex;\n"],"mappings":""}