@canlooks/can-ui 0.0.70 → 0.0.72

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 (392) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/components/actionSheet/actionSheet.js +9 -4
  3. package/dist/cjs/components/alert/alert.style.d.ts +2 -2
  4. package/dist/cjs/components/app/appDialog.js +28 -24
  5. package/dist/cjs/components/autocomplete/autocomplete.js +21 -27
  6. package/dist/cjs/components/avatar/avatar.d.ts +2 -2
  7. package/dist/cjs/components/avatar/avatar.js +6 -5
  8. package/dist/cjs/components/avatar/avatarGroup.js +1 -1
  9. package/dist/cjs/components/bubbleConfirm/bubbleConfirm.js +9 -2
  10. package/dist/cjs/components/bubbleConfirm/bubbleConfirm.style.d.ts +1 -1
  11. package/dist/cjs/components/calendar/calendar.style.js +124 -124
  12. package/dist/cjs/components/cascade/cascade.d.ts +2 -2
  13. package/dist/cjs/components/cascade/cascade.js +33 -21
  14. package/dist/cjs/components/cascade/cascadePanel.js +23 -13
  15. package/dist/cjs/components/checkboxBase/checkboxBase.d.ts +2 -2
  16. package/dist/cjs/components/checkboxBase/checkboxBase.js +9 -2
  17. package/dist/cjs/components/checkboxBase/checkboxBase.style.d.ts +1 -1
  18. package/dist/cjs/components/checkboxBaseGroup/checkboxBaseGroup.js +2 -2
  19. package/dist/cjs/components/clickAway/clickAway.d.ts +28 -28
  20. package/dist/cjs/components/colorPicker/colorPicker.d.ts +2 -2
  21. package/dist/cjs/components/colorPicker/colorPicker.js +2 -2
  22. package/dist/cjs/components/counter/counter.js +9 -10
  23. package/dist/cjs/components/curd/curd.d.ts +10 -12
  24. package/dist/cjs/components/curd/curd.js +38 -33
  25. package/dist/cjs/components/curd/curd.style.d.ts +2 -1
  26. package/dist/cjs/components/curd/curd.style.js +14 -4
  27. package/dist/cjs/components/curd/curdDialog.js +2 -1
  28. package/dist/cjs/components/curd/curdFilterable.d.ts +21 -0
  29. package/dist/cjs/components/curd/{curdFilter.js → curdFilterable.js} +19 -24
  30. package/dist/cjs/components/curd/index.d.ts +1 -1
  31. package/dist/cjs/components/curd/index.js +1 -1
  32. package/dist/cjs/components/dataGrid/columnResize.js +2 -2
  33. package/dist/cjs/components/dataGrid/dataGrid.d.ts +29 -12
  34. package/dist/cjs/components/dataGrid/dataGrid.js +46 -20
  35. package/dist/cjs/components/dataGrid/dataGrid.style.d.ts +5 -3
  36. package/dist/cjs/components/dataGrid/dataGrid.style.js +38 -33
  37. package/dist/cjs/components/dataGrid/dataGridHead.d.ts +4 -1
  38. package/dist/cjs/components/dataGrid/dataGridHead.js +28 -19
  39. package/dist/cjs/components/dataGrid/dataGridRows.js +1 -1
  40. package/dist/cjs/components/dataGrid/filterBubbleContent.d.ts +19 -0
  41. package/dist/cjs/components/dataGrid/filterBubbleContent.js +42 -0
  42. package/dist/cjs/components/dateTimePicker/dateTimePicker.d.ts +2 -2
  43. package/dist/cjs/components/dateTimePicker/dateTimePicker.js +27 -9
  44. package/dist/cjs/components/dateTimePicker/dateTimePicker.style.d.ts +1 -1
  45. package/dist/cjs/components/dateTimeRangePicker/dateTimeRangePicker.d.ts +4 -3
  46. package/dist/cjs/components/dateTimeRangePicker/dateTimeRangePicker.js +45 -23
  47. package/dist/cjs/components/descriptions/descriptions.js +2 -0
  48. package/dist/cjs/components/descriptions/descriptions.style.d.ts +1 -1
  49. package/dist/cjs/components/dialog/dialog.d.ts +1 -1
  50. package/dist/cjs/components/dialog/dialog.js +2 -2
  51. package/dist/cjs/components/dialog/dialog.style.d.ts +2 -2
  52. package/dist/cjs/components/draggable/draggable.d.ts +12 -2
  53. package/dist/cjs/components/draggable/draggable.js +34 -4
  54. package/dist/cjs/components/flex/flex.d.ts +7 -4
  55. package/dist/cjs/components/flex/flex.js +3 -3
  56. package/dist/cjs/components/form/form.d.ts +10 -5
  57. package/dist/cjs/components/form/form.js +45 -9
  58. package/dist/cjs/components/form/formItem.d.ts +12 -7
  59. package/dist/cjs/components/form/formItem.js +47 -33
  60. package/dist/cjs/components/form/formRelatable.js +2 -1
  61. package/dist/cjs/components/gallery/gallery.style.d.ts +1 -1
  62. package/dist/cjs/components/gallery/imageItem.js +1 -1
  63. package/dist/cjs/components/grid/grid.d.ts +5 -5
  64. package/dist/cjs/components/grid/gridItem.d.ts +8 -7
  65. package/dist/cjs/components/grid/gridItem.js +2 -3
  66. package/dist/cjs/components/image/image.d.ts +4 -4
  67. package/dist/cjs/components/input/input.d.ts +2 -2
  68. package/dist/cjs/components/input/input.js +9 -2
  69. package/dist/cjs/components/inputBase/inputBase.d.ts +16 -11
  70. package/dist/cjs/components/inputBase/inputBase.js +23 -12
  71. package/dist/cjs/components/loading/loading.d.ts +3 -1
  72. package/dist/cjs/components/loading/loading.js +2 -2
  73. package/dist/cjs/components/loading/loading.style.js +4 -3
  74. package/dist/cjs/components/loadingIndicator/loadingIndicator.d.ts +4 -2
  75. package/dist/cjs/components/loadingIndicator/loadingIndicator.js +2 -2
  76. package/dist/cjs/components/loadingIndicator/loadingIndicator.style.d.ts +1 -1
  77. package/dist/cjs/components/loadingIndicator/loadingIndicator.style.js +1 -2
  78. package/dist/cjs/components/loadingMask/loadingMask.js +1 -1
  79. package/dist/cjs/components/menu/menu.js +1 -1
  80. package/dist/cjs/components/menuItem/menuItem.d.ts +2 -2
  81. package/dist/cjs/components/optionsBase/optionsBase.js +1 -0
  82. package/dist/cjs/components/overlayBase/overlayBase.js +9 -6
  83. package/dist/cjs/components/overlayBase/overlayBase.style.js +0 -3
  84. package/dist/cjs/components/palette/palette.style.d.ts +1 -1
  85. package/dist/cjs/components/pickerDialog/pickerDialog.js +20 -7
  86. package/dist/cjs/components/pickerDialog/pickerDialog.style.d.ts +1 -1
  87. package/dist/cjs/components/popper/popper.d.ts +5 -2
  88. package/dist/cjs/components/popper/popper.js +31 -12
  89. package/dist/cjs/components/popper/popper.style.js +1 -2
  90. package/dist/cjs/components/progress/progress.js +1 -1
  91. package/dist/cjs/components/resizable/resizable.style.d.ts +1 -1
  92. package/dist/cjs/components/segmented/segmented.style.d.ts +1 -1
  93. package/dist/cjs/components/select/select.d.ts +2 -2
  94. package/dist/cjs/components/select/select.js +44 -20
  95. package/dist/cjs/components/selectedList/selectedItem.d.ts +1 -1
  96. package/dist/cjs/components/selectedList/selectedItem.js +2 -2
  97. package/dist/cjs/components/selectionContext/selectionContext.d.ts +0 -1
  98. package/dist/cjs/components/selectionContext/selectionHook.d.ts +1 -1
  99. package/dist/cjs/components/selectionContext/selectionHook.js +2 -2
  100. package/dist/cjs/components/serialInput/index.d.ts +1 -0
  101. package/dist/cjs/components/serialInput/index.js +4 -0
  102. package/dist/cjs/components/serialInput/serialInput.d.ts +21 -0
  103. package/dist/cjs/components/serialInput/serialInput.js +58 -0
  104. package/dist/cjs/components/serialInput/serialInput.style.d.ts +6 -0
  105. package/dist/cjs/components/serialInput/serialInput.style.js +13 -0
  106. package/dist/cjs/components/skeleton/skeleton.d.ts +2 -2
  107. package/dist/cjs/components/slidableActions/slidableActionsAction.js +15 -6
  108. package/dist/cjs/components/slider/slider.d.ts +2 -2
  109. package/dist/cjs/components/slider/slider.js +15 -21
  110. package/dist/cjs/components/snackbarBase/snackbarBase.style.d.ts +1 -1
  111. package/dist/cjs/components/snackbarBase/snackbarBase.style.js +1 -3
  112. package/dist/cjs/components/sortableItem/sortableItem.js +9 -10
  113. package/dist/cjs/components/status/status.d.ts +6 -6
  114. package/dist/cjs/components/switch/switch.d.ts +2 -2
  115. package/dist/cjs/components/table/table.d.ts +3 -3
  116. package/dist/cjs/components/table/table.style.d.ts +1 -1
  117. package/dist/cjs/components/table/tableSticky.d.ts +5 -5
  118. package/dist/cjs/components/table/tableSticky.js +4 -4
  119. package/dist/cjs/components/tabs/tabs.style.d.ts +3 -3
  120. package/dist/cjs/components/tag/tag.d.ts +1 -1
  121. package/dist/cjs/components/tag/tag.js +2 -1
  122. package/dist/cjs/components/tag/tag.style.d.ts +1 -1
  123. package/dist/cjs/components/textarea/textarea.d.ts +2 -2
  124. package/dist/cjs/components/textarea/textarea.js +5 -1
  125. package/dist/cjs/components/toggleButton/toggleButton.js +1 -1
  126. package/dist/cjs/components/transfer/transfer.style.d.ts +2 -2
  127. package/dist/cjs/components/transitionBase/collapse.js +36 -14
  128. package/dist/cjs/components/transitionBase/transitionBase.js +1 -1
  129. package/dist/cjs/components/transitionBase/transitionBase.style.js +1 -1
  130. package/dist/cjs/components/transportStyle/transportStyle.d.ts +1 -1
  131. package/dist/cjs/components/transportStyle/transportStyle.js +2 -3
  132. package/dist/cjs/components/tree/tree.d.ts +17 -4
  133. package/dist/cjs/components/tree/tree.js +15 -14
  134. package/dist/cjs/components/tree/tree.style.d.ts +9 -3
  135. package/dist/cjs/components/tree/tree.style.js +135 -4
  136. package/dist/cjs/components/tree/treeDnd.d.ts +25 -0
  137. package/dist/cjs/components/tree/treeDnd.js +23 -0
  138. package/dist/cjs/components/tree/treeNode.d.ts +2 -2
  139. package/dist/cjs/components/tree/treeNode.js +94 -16
  140. package/dist/cjs/components/treeSelect/treeSelect.d.ts +2 -2
  141. package/dist/cjs/components/treeSelect/treeSelect.js +3 -3
  142. package/dist/cjs/components/upload/upload.d.ts +2 -2
  143. package/dist/cjs/components/upload/upload.js +5 -2
  144. package/dist/cjs/components/upload/upload.style.d.ts +2 -2
  145. package/dist/cjs/extensions/curd/curd.d.ts +20 -0
  146. package/dist/cjs/extensions/curd/curd.js +20 -0
  147. package/dist/cjs/extensions/documentViewer/pdfViewer.d.ts +2 -2
  148. package/dist/cjs/extensions/reactiveForm/index.d.ts +2 -0
  149. package/dist/cjs/extensions/reactiveForm/index.js +5 -0
  150. package/dist/cjs/extensions/reactiveForm/reactiveForm.d.ts +40 -0
  151. package/dist/cjs/extensions/reactiveForm/reactiveForm.js +50 -0
  152. package/dist/cjs/extensions/reactiveForm/reactiveFormItem.d.ts +7 -0
  153. package/dist/cjs/extensions/reactiveForm/reactiveFormItem.js +39 -0
  154. package/dist/cjs/index.d.ts +1 -0
  155. package/dist/cjs/index.js +1 -0
  156. package/dist/cjs/types.d.ts +2 -2
  157. package/dist/cjs/utils/curd.js +5 -2
  158. package/dist/cjs/utils/dataGrid.d.ts +3 -2
  159. package/dist/cjs/utils/hooks.js +3 -3
  160. package/dist/cjs/utils/index.d.ts +2 -2
  161. package/dist/cjs/utils/index.js +2 -2
  162. package/dist/cjs/utils/utils.d.ts +17 -9
  163. package/dist/cjs/utils/utils.js +59 -16
  164. package/dist/esm/components/actionSheet/actionSheet.js +10 -5
  165. package/dist/esm/components/alert/alert.style.d.ts +2 -2
  166. package/dist/esm/components/app/appDialog.js +28 -24
  167. package/dist/esm/components/autocomplete/autocomplete.js +22 -28
  168. package/dist/esm/components/avatar/avatar.d.ts +2 -2
  169. package/dist/esm/components/avatar/avatar.js +7 -6
  170. package/dist/esm/components/avatar/avatarGroup.js +1 -1
  171. package/dist/esm/components/bubbleConfirm/bubbleConfirm.js +10 -3
  172. package/dist/esm/components/bubbleConfirm/bubbleConfirm.style.d.ts +1 -1
  173. package/dist/esm/components/calendar/calendar.style.js +124 -124
  174. package/dist/esm/components/cascade/cascade.d.ts +2 -2
  175. package/dist/esm/components/cascade/cascade.js +34 -22
  176. package/dist/esm/components/cascade/cascadePanel.js +24 -14
  177. package/dist/esm/components/checkboxBase/checkboxBase.d.ts +2 -2
  178. package/dist/esm/components/checkboxBase/checkboxBase.js +10 -3
  179. package/dist/esm/components/checkboxBase/checkboxBase.style.d.ts +1 -1
  180. package/dist/esm/components/checkboxBaseGroup/checkboxBaseGroup.js +3 -3
  181. package/dist/esm/components/clickAway/clickAway.d.ts +28 -28
  182. package/dist/esm/components/colorPicker/colorPicker.d.ts +2 -2
  183. package/dist/esm/components/colorPicker/colorPicker.js +3 -3
  184. package/dist/esm/components/counter/counter.js +10 -11
  185. package/dist/esm/components/curd/curd.d.ts +10 -12
  186. package/dist/esm/components/curd/curd.js +39 -34
  187. package/dist/esm/components/curd/curd.style.d.ts +2 -1
  188. package/dist/esm/components/curd/curd.style.js +14 -4
  189. package/dist/esm/components/curd/curdDialog.js +2 -1
  190. package/dist/esm/components/curd/curdFilterable.d.ts +21 -0
  191. package/dist/esm/components/curd/{curdFilter.js → curdFilterable.js} +20 -25
  192. package/dist/esm/components/curd/index.d.ts +1 -1
  193. package/dist/esm/components/curd/index.js +1 -1
  194. package/dist/esm/components/dataGrid/columnResize.js +3 -3
  195. package/dist/esm/components/dataGrid/dataGrid.d.ts +29 -12
  196. package/dist/esm/components/dataGrid/dataGrid.js +48 -22
  197. package/dist/esm/components/dataGrid/dataGrid.style.d.ts +5 -3
  198. package/dist/esm/components/dataGrid/dataGrid.style.js +38 -33
  199. package/dist/esm/components/dataGrid/dataGridHead.d.ts +4 -1
  200. package/dist/esm/components/dataGrid/dataGridHead.js +29 -20
  201. package/dist/esm/components/dataGrid/dataGridRows.js +1 -1
  202. package/dist/esm/components/dataGrid/filterBubbleContent.d.ts +19 -0
  203. package/dist/esm/components/dataGrid/filterBubbleContent.js +39 -0
  204. package/dist/esm/components/dateTimePicker/dateTimePicker.d.ts +2 -2
  205. package/dist/esm/components/dateTimePicker/dateTimePicker.js +28 -10
  206. package/dist/esm/components/dateTimePicker/dateTimePicker.style.d.ts +1 -1
  207. package/dist/esm/components/dateTimeRangePicker/dateTimeRangePicker.d.ts +4 -3
  208. package/dist/esm/components/dateTimeRangePicker/dateTimeRangePicker.js +46 -24
  209. package/dist/esm/components/descriptions/descriptions.js +2 -0
  210. package/dist/esm/components/descriptions/descriptions.style.d.ts +1 -1
  211. package/dist/esm/components/dialog/dialog.d.ts +1 -1
  212. package/dist/esm/components/dialog/dialog.js +2 -2
  213. package/dist/esm/components/dialog/dialog.style.d.ts +2 -2
  214. package/dist/esm/components/draggable/draggable.d.ts +12 -2
  215. package/dist/esm/components/draggable/draggable.js +35 -5
  216. package/dist/esm/components/flex/flex.d.ts +7 -4
  217. package/dist/esm/components/flex/flex.js +2 -2
  218. package/dist/esm/components/form/form.d.ts +10 -5
  219. package/dist/esm/components/form/form.js +43 -9
  220. package/dist/esm/components/form/formItem.d.ts +12 -7
  221. package/dist/esm/components/form/formItem.js +49 -35
  222. package/dist/esm/components/form/formRelatable.js +3 -2
  223. package/dist/esm/components/gallery/gallery.style.d.ts +1 -1
  224. package/dist/esm/components/gallery/imageItem.js +1 -1
  225. package/dist/esm/components/grid/grid.d.ts +5 -5
  226. package/dist/esm/components/grid/gridItem.d.ts +8 -7
  227. package/dist/esm/components/grid/gridItem.js +2 -2
  228. package/dist/esm/components/image/image.d.ts +4 -4
  229. package/dist/esm/components/input/input.d.ts +2 -2
  230. package/dist/esm/components/input/input.js +10 -3
  231. package/dist/esm/components/inputBase/inputBase.d.ts +16 -11
  232. package/dist/esm/components/inputBase/inputBase.js +25 -14
  233. package/dist/esm/components/loading/loading.d.ts +3 -1
  234. package/dist/esm/components/loading/loading.js +2 -2
  235. package/dist/esm/components/loading/loading.style.js +4 -3
  236. package/dist/esm/components/loadingIndicator/loadingIndicator.d.ts +4 -2
  237. package/dist/esm/components/loadingIndicator/loadingIndicator.js +2 -2
  238. package/dist/esm/components/loadingIndicator/loadingIndicator.style.d.ts +1 -1
  239. package/dist/esm/components/loadingIndicator/loadingIndicator.style.js +1 -2
  240. package/dist/esm/components/loadingMask/loadingMask.js +1 -1
  241. package/dist/esm/components/menu/menu.js +2 -2
  242. package/dist/esm/components/menuItem/menuItem.d.ts +2 -2
  243. package/dist/esm/components/optionsBase/optionsBase.js +1 -0
  244. package/dist/esm/components/overlayBase/overlayBase.js +10 -7
  245. package/dist/esm/components/overlayBase/overlayBase.style.js +0 -3
  246. package/dist/esm/components/palette/palette.style.d.ts +1 -1
  247. package/dist/esm/components/pickerDialog/pickerDialog.js +21 -8
  248. package/dist/esm/components/pickerDialog/pickerDialog.style.d.ts +1 -1
  249. package/dist/esm/components/popper/popper.d.ts +5 -2
  250. package/dist/esm/components/popper/popper.js +31 -12
  251. package/dist/esm/components/popper/popper.style.js +1 -2
  252. package/dist/esm/components/progress/progress.js +1 -1
  253. package/dist/esm/components/resizable/resizable.style.d.ts +1 -1
  254. package/dist/esm/components/segmented/segmented.style.d.ts +1 -1
  255. package/dist/esm/components/select/select.d.ts +2 -2
  256. package/dist/esm/components/select/select.js +46 -22
  257. package/dist/esm/components/selectedList/selectedItem.d.ts +1 -1
  258. package/dist/esm/components/selectedList/selectedItem.js +2 -2
  259. package/dist/esm/components/selectionContext/selectionContext.d.ts +0 -1
  260. package/dist/esm/components/selectionContext/selectionHook.d.ts +1 -1
  261. package/dist/esm/components/selectionContext/selectionHook.js +1 -1
  262. package/dist/esm/components/serialInput/index.d.ts +1 -0
  263. package/dist/esm/components/serialInput/index.js +1 -0
  264. package/dist/esm/components/serialInput/serialInput.d.ts +21 -0
  265. package/dist/esm/components/serialInput/serialInput.js +55 -0
  266. package/dist/esm/components/serialInput/serialInput.style.d.ts +6 -0
  267. package/dist/esm/components/serialInput/serialInput.style.js +10 -0
  268. package/dist/esm/components/skeleton/skeleton.d.ts +2 -2
  269. package/dist/esm/components/slidableActions/slidableActionsAction.js +16 -7
  270. package/dist/esm/components/slider/slider.d.ts +2 -2
  271. package/dist/esm/components/slider/slider.js +16 -22
  272. package/dist/esm/components/snackbarBase/snackbarBase.style.d.ts +1 -1
  273. package/dist/esm/components/snackbarBase/snackbarBase.style.js +1 -3
  274. package/dist/esm/components/sortableItem/sortableItem.js +10 -11
  275. package/dist/esm/components/status/status.d.ts +6 -6
  276. package/dist/esm/components/switch/switch.d.ts +2 -2
  277. package/dist/esm/components/table/table.d.ts +3 -3
  278. package/dist/esm/components/table/table.style.d.ts +1 -1
  279. package/dist/esm/components/table/tableSticky.d.ts +5 -5
  280. package/dist/esm/components/table/tableSticky.js +3 -3
  281. package/dist/esm/components/tabs/tabs.style.d.ts +3 -3
  282. package/dist/esm/components/tag/tag.d.ts +1 -1
  283. package/dist/esm/components/tag/tag.js +2 -1
  284. package/dist/esm/components/tag/tag.style.d.ts +1 -1
  285. package/dist/esm/components/textarea/textarea.d.ts +2 -2
  286. package/dist/esm/components/textarea/textarea.js +6 -2
  287. package/dist/esm/components/toggleButton/toggleButton.js +2 -2
  288. package/dist/esm/components/transfer/transfer.style.d.ts +2 -2
  289. package/dist/esm/components/transitionBase/collapse.js +38 -16
  290. package/dist/esm/components/transitionBase/transitionBase.js +1 -1
  291. package/dist/esm/components/transitionBase/transitionBase.style.js +1 -1
  292. package/dist/esm/components/transportStyle/transportStyle.d.ts +1 -1
  293. package/dist/esm/components/transportStyle/transportStyle.js +2 -2
  294. package/dist/esm/components/tree/tree.d.ts +17 -4
  295. package/dist/esm/components/tree/tree.js +17 -16
  296. package/dist/esm/components/tree/tree.style.d.ts +9 -3
  297. package/dist/esm/components/tree/tree.style.js +135 -4
  298. package/dist/esm/components/tree/treeDnd.d.ts +25 -0
  299. package/dist/esm/components/tree/treeDnd.js +19 -0
  300. package/dist/esm/components/tree/treeNode.d.ts +2 -2
  301. package/dist/esm/components/tree/treeNode.js +96 -18
  302. package/dist/esm/components/treeSelect/treeSelect.d.ts +2 -2
  303. package/dist/esm/components/treeSelect/treeSelect.js +4 -4
  304. package/dist/esm/components/upload/upload.d.ts +2 -2
  305. package/dist/esm/components/upload/upload.js +6 -3
  306. package/dist/esm/components/upload/upload.style.d.ts +2 -2
  307. package/dist/esm/extensions/curd/curd.d.ts +20 -0
  308. package/dist/esm/extensions/curd/curd.js +20 -0
  309. package/dist/esm/extensions/documentViewer/pdfViewer.d.ts +2 -2
  310. package/dist/esm/extensions/reactiveForm/index.d.ts +2 -0
  311. package/dist/esm/extensions/reactiveForm/index.js +2 -0
  312. package/dist/esm/extensions/reactiveForm/reactiveForm.d.ts +40 -0
  313. package/dist/esm/extensions/reactiveForm/reactiveForm.js +46 -0
  314. package/dist/esm/extensions/reactiveForm/reactiveFormItem.d.ts +7 -0
  315. package/dist/esm/extensions/reactiveForm/reactiveFormItem.js +36 -0
  316. package/dist/esm/index.d.ts +1 -0
  317. package/dist/esm/index.js +1 -0
  318. package/dist/esm/types.d.ts +2 -2
  319. package/dist/esm/utils/curd.js +5 -2
  320. package/dist/esm/utils/dataGrid.d.ts +3 -2
  321. package/dist/esm/utils/hooks.js +3 -3
  322. package/dist/esm/utils/index.d.ts +2 -2
  323. package/dist/esm/utils/index.js +2 -2
  324. package/dist/esm/utils/utils.d.ts +17 -9
  325. package/dist/esm/utils/utils.js +58 -16
  326. package/extensions/curd.cjs +5 -5
  327. package/extensions/documentViewer.cjs +5 -5
  328. package/extensions/reactiveForm.cjs +5 -0
  329. package/extensions/reactiveForm.d.ts +1 -0
  330. package/extensions/reactiveForm.js +1 -0
  331. package/extensions/textFormatter.cjs +5 -5
  332. package/package.json +6 -6
  333. package/dist/cjs/components/curd/curdFilter.d.ts +0 -16
  334. package/dist/esm/components/curd/curdFilter.d.ts +0 -16
  335. package/documentation/bootstrap.mjs +0 -8
  336. package/documentation/dist/assets/index-DvrKS6Tv.js +0 -7747
  337. package/documentation/dist/atom-one-dark.min.css +0 -1
  338. package/documentation/dist/components/accordion.md +0 -38
  339. package/documentation/dist/components/actionSheet.md +0 -49
  340. package/documentation/dist/components/alert.md +0 -38
  341. package/documentation/dist/components/anchorList.md +0 -36
  342. package/documentation/dist/components/autocomplete.md +0 -68
  343. package/documentation/dist/components/avatar.md +0 -79
  344. package/documentation/dist/components/badge.md +0 -33
  345. package/documentation/dist/components/bottomNavigation.md +0 -39
  346. package/documentation/dist/components/breadcrumb.md +0 -28
  347. package/documentation/dist/components/bubbleConfirm.md +0 -34
  348. package/documentation/dist/components/button.md +0 -62
  349. package/documentation/dist/components/card.md +0 -30
  350. package/documentation/dist/components/cascade.md +0 -48
  351. package/documentation/dist/components/checkbox.md +0 -36
  352. package/documentation/dist/components/colorPicker.md +0 -27
  353. package/documentation/dist/components/contextMenu.md +0 -27
  354. package/documentation/dist/components/counter.md +0 -29
  355. package/documentation/dist/components/dataGrid.md +0 -112
  356. package/documentation/dist/components/dateTimePicker.md +0 -35
  357. package/documentation/dist/components/dateTimeRangePicker.md +0 -36
  358. package/documentation/dist/components/descriptions.md +0 -35
  359. package/documentation/dist/components/dialog.md +0 -56
  360. package/documentation/dist/components/divider.md +0 -26
  361. package/documentation/dist/components/drawer.md +0 -40
  362. package/documentation/dist/components/flex.md +0 -20
  363. package/documentation/dist/components/form.md +0 -131
  364. package/documentation/dist/components/formDialog.md +0 -36
  365. package/documentation/dist/components/grid.md +0 -34
  366. package/documentation/dist/components/highlight.md +0 -26
  367. package/documentation/dist/components/image.md +0 -90
  368. package/documentation/dist/components/input.md +0 -39
  369. package/documentation/dist/components/loading.md +0 -46
  370. package/documentation/dist/components/menu.md +0 -85
  371. package/documentation/dist/components/pagination.md +0 -38
  372. package/documentation/dist/components/pickerDialog.md +0 -56
  373. package/documentation/dist/components/placeholder.md +0 -30
  374. package/documentation/dist/components/progress.md +0 -43
  375. package/documentation/dist/components/radio.md +0 -37
  376. package/documentation/dist/components/rating.md +0 -35
  377. package/documentation/dist/components/resizable.md +0 -41
  378. package/documentation/dist/components/scrollbar.md +0 -31
  379. package/documentation/dist/components/segmented.md +0 -57
  380. package/documentation/dist/components/select.md +0 -30
  381. package/documentation/dist/components/skeleton.md +0 -26
  382. package/documentation/dist/components/slidableActions.md +0 -53
  383. package/documentation/dist/guide/appComponent.md +0 -30
  384. package/documentation/dist/guide/globalMethods.md +0 -238
  385. package/documentation/dist/guide/icon.md +0 -57
  386. package/documentation/dist/guide/introduction.md +0 -2
  387. package/documentation/dist/guide/overrideProps.md +0 -0
  388. package/documentation/dist/guide/startup.md +0 -23
  389. package/documentation/dist/guide/theme.md +0 -249
  390. package/documentation/dist/index.html +0 -13
  391. package/documentation/dist/logo.png +0 -0
  392. package/documentation/vite.config.mjs +0 -18
@@ -13,12 +13,10 @@ export const classes = defineInnerClasses('snackbar-base', [
13
13
  'content'
14
14
  ]);
15
15
  export const style = defineCss(theme => {
16
- const { text, fontSize, spacing, background, borderRadius } = theme;
16
+ const { spacing, background, borderRadius } = theme;
17
17
  return [
18
18
  appStyleCallback(theme),
19
19
  css `
20
- color: ${text.primary};
21
- font-size: ${fontSize}px;
22
20
  width: 100%;
23
21
  height: auto;
24
22
  display: flex;
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useCallback, useEffect, useRef } from 'react';
3
3
  import { useSortable } from '@dnd-kit/sortable';
4
4
  import { CSS } from '@dnd-kit/utilities';
5
- import { cloneRef } from '../../utils';
5
+ import { cloneRef, useSync } from '../../utils';
6
6
  export const SortableItem = (({ component: Component = 'div', id, disabled, sortableArguments, ...props }) => {
7
7
  const { attributes, isDragging, listeners, setNodeRef, transform, transition } = useSortable({
8
8
  ...sortableArguments,
@@ -10,16 +10,6 @@ export const SortableItem = (({ component: Component = 'div', id, disabled, sort
10
10
  id
11
11
  });
12
12
  const preventDefaultCallback = useRef(void 0);
13
- const onPointerUp = useCallback(() => {
14
- removeListener();
15
- }, []);
16
- const onTouchStart = useCallback((e) => {
17
- props.onTouchStart?.(e);
18
- addEventListener('touchmove', preventDefaultCallback.current = e => {
19
- e.cancelable && e.preventDefault();
20
- }, { passive: false });
21
- addEventListener('pointerup', onPointerUp);
22
- }, []);
23
13
  const removeListener = () => {
24
14
  if (preventDefaultCallback.current) {
25
15
  removeEventListener('touchmove', preventDefaultCallback.current);
@@ -27,6 +17,15 @@ export const SortableItem = (({ component: Component = 'div', id, disabled, sort
27
17
  }
28
18
  removeEventListener('pointerup', onPointerUp);
29
19
  };
20
+ const onPointerUp = useCallback(removeListener, []);
21
+ const syncOnTouchStart = useSync(props.onTouchStart);
22
+ const onTouchStart = useCallback((e) => {
23
+ syncOnTouchStart.current?.(e);
24
+ addEventListener('touchmove', preventDefaultCallback.current = e => {
25
+ e.cancelable && e.preventDefault();
26
+ }, { passive: false });
27
+ addEventListener('pointerup', onPointerUp);
28
+ }, []);
30
29
  useEffect(() => removeListener, []);
31
30
  return (_jsx(Component, { ...attributes, ...listeners, ...props, ref: cloneRef(setNodeRef, props.ref), style: {
32
31
  transform: CSS.Transform.toString(transform),
@@ -3,12 +3,12 @@ import { DivProps, Status as IStatus } from '../../types';
3
3
  import { FontAwesomeIconProps } from '@fortawesome/react-fontawesome';
4
4
  export type StatusType = IStatus | 'confirm' | 'unknown';
5
5
  export declare const statusMapToIconDefinition: {
6
- info: import("@fortawesome/fontawesome-common-types").IconDefinition;
7
- success: import("@fortawesome/fontawesome-common-types").IconDefinition;
8
- warning: import("@fortawesome/fontawesome-common-types").IconDefinition;
9
- error: import("@fortawesome/fontawesome-common-types").IconDefinition;
10
- confirm: import("@fortawesome/fontawesome-common-types").IconDefinition;
11
- unknown: import("@fortawesome/fontawesome-common-types").IconDefinition;
6
+ info: import("@fortawesome/free-solid-svg-icons").IconDefinition;
7
+ success: import("@fortawesome/free-solid-svg-icons").IconDefinition;
8
+ warning: import("@fortawesome/free-solid-svg-icons").IconDefinition;
9
+ error: import("@fortawesome/free-solid-svg-icons").IconDefinition;
10
+ confirm: import("@fortawesome/free-solid-svg-icons").IconDefinition;
11
+ unknown: import("@fortawesome/free-solid-svg-icons").IconDefinition;
12
12
  };
13
13
  export interface StatusIconProps extends Partial<FontAwesomeIconProps> {
14
14
  status?: StatusType;
@@ -1,8 +1,8 @@
1
- import React, { ReactNode, JSX } from 'react';
1
+ import React, { ReactNode, ComponentProps } from 'react';
2
2
  import { ColorPropsValue, DivProps, Size } from '../../types';
3
3
  export interface SwitchProps extends Omit<DivProps, 'onChange'> {
4
4
  /** <Switch />内部使用<input />实现 */
5
- inputProps?: JSX.IntrinsicElements['input'];
5
+ inputProps?: ComponentProps<'input'>;
6
6
  color?: ColorPropsValue;
7
7
  size?: Size;
8
8
  /** 滑块 */
@@ -1,7 +1,7 @@
1
- import { JSX } from 'react';
1
+ import { ComponentProps } from 'react';
2
2
  import { Size } from '../../types';
3
3
  import { TdCell, ThCell } from './tableSticky';
4
- export interface TableProps extends Partial<JSX.IntrinsicElements['table']> {
4
+ export interface TableProps extends Partial<ComponentProps<'table'>> {
5
5
  size?: Size;
6
6
  /**
7
7
  * 是否渲染边框,默认为`none`
@@ -20,7 +20,7 @@ export declare namespace Table {
20
20
  var th: typeof ThCell;
21
21
  var td: typeof TdCell;
22
22
  }
23
- export interface TableRowProps extends Partial<JSX.IntrinsicElements['tr']> {
23
+ export interface TableRowProps extends Partial<ComponentProps<'tr'>> {
24
24
  selected?: boolean;
25
25
  }
26
26
  export declare function TableRow({ selected, ...props }: TableRowProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  export declare const classes: {
2
- container: string;
3
2
  cell: string;
3
+ container: string;
4
4
  } & {
5
5
  root: string;
6
6
  };
@@ -1,12 +1,12 @@
1
- import { JSX } from 'react';
2
- import { DivProps } from '../../types';
3
- export declare function TableContainer(props: DivProps): import("@emotion/react/jsx-runtime").JSX.Element;
1
+ import { ComponentProps } from 'react';
2
+ import { OverridableComponent } from '../../types';
3
+ export declare const TableContainer: OverridableComponent<{}>;
4
4
  type CellProps = {
5
5
  sticky?: 'left' | 'right';
6
6
  };
7
- export interface TdCellProps extends Partial<JSX.IntrinsicElements['td']>, CellProps {
7
+ export interface TdCellProps extends Partial<ComponentProps<'td'>>, CellProps {
8
8
  }
9
- export interface ThCellProps extends Partial<JSX.IntrinsicElements['th']>, CellProps {
9
+ export interface ThCellProps extends Partial<ComponentProps<'th'>>, CellProps {
10
10
  }
11
11
  export declare function TdCell(props: TdCellProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
12
  export declare function ThCell(props: ThCellProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@ import { useEffect, useRef, useState } from 'react';
3
3
  import { clsx, cloneRef } from '../../utils';
4
4
  import { classes } from './table.style';
5
5
  import { style } from './tableSticky.style';
6
- export function TableContainer(props) {
6
+ export const TableContainer = (({ component: Component = 'div', ...props }) => {
7
7
  const [scrolledLeft, setScrolledLeft] = useState(false);
8
8
  const [scrolledRight, setScrolledRight] = useState(false);
9
9
  const innerRef = useRef(null);
@@ -19,8 +19,8 @@ export function TableContainer(props) {
19
19
  el.removeEventListener('scroll', scroll);
20
20
  };
21
21
  }, []);
22
- return (_jsx("div", { ...props, ref: cloneRef(props.ref, innerRef), css: style, className: clsx(classes.container, props.className), "data-scrolled-left": scrolledLeft, "data-scrolled-right": scrolledRight }));
23
- }
22
+ return (_jsx(Component, { ...props, ref: cloneRef(props.ref, innerRef), css: style, className: clsx(classes.container, props.className), "data-scrolled-left": scrolledLeft, "data-scrolled-right": scrolledRight }));
23
+ });
24
24
  export function TdCell(props) {
25
25
  return _jsx("td", { ...useStickyCellProps(props) });
26
26
  }
@@ -1,13 +1,13 @@
1
1
  import { TabsProps } from './tabs';
2
2
  export declare const classes: {
3
3
  label: string;
4
- indicator: string;
4
+ scroll: string;
5
5
  prefix: string;
6
6
  end: string;
7
- start: string;
8
- scroll: string;
9
7
  ellipsis: string;
8
+ start: string;
10
9
  tab: string;
10
+ indicator: string;
11
11
  suffix: string;
12
12
  scrollWrap: string;
13
13
  tabPrefix: string;
@@ -9,6 +9,6 @@ export interface TagProps extends Omit<DivProps, 'prefix'> {
9
9
  suffix?: ReactNode;
10
10
  clickable?: boolean;
11
11
  closable?: boolean;
12
- onClose?: React.MouseEventHandler<HTMLDivElement>;
12
+ onClose?: React.MouseEventHandler<HTMLButtonElement>;
13
13
  }
14
14
  export declare const Tag: React.MemoExoticComponent<({ variant, color, shape, size, prefix, suffix, clickable, closable, onClose, ...props }: TagProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
@@ -4,6 +4,7 @@ import { classes, useStyle } from './tag.style';
4
4
  import { clsx } from '../../utils';
5
5
  import { Icon } from '../icon';
6
6
  import { faXmark } from '@fortawesome/free-solid-svg-icons/faXmark';
7
+ import { Button } from '../button';
7
8
  export const Tag = memo(({ variant = 'outlined', color = 'text.secondary', shape = 'square', size = 'small', prefix, suffix, clickable, closable, onClose, ...props }) => {
8
9
  const closeHandler = (e) => {
9
10
  e.preventDefault();
@@ -13,5 +14,5 @@ export const Tag = memo(({ variant = 'outlined', color = 'text.secondary', shape
13
14
  return (_jsxs("div", { ...props, css: useStyle({ color: color || 'text.secondary' }), className: clsx(classes.root, props.className), "data-variant": variant, "data-size": size, "data-shape": shape, "data-clickable": clickable, children: [!!prefix &&
14
15
  _jsx("div", { className: classes.prefix, children: prefix }), _jsx("div", { className: classes.content, children: props.children }), !!suffix &&
15
16
  _jsx("div", { className: classes.suffix, children: suffix }), closable &&
16
- _jsx("div", { className: classes.close, onClick: closeHandler, children: _jsx(Icon, { icon: faXmark }) })] }));
17
+ _jsx(Button, { variant: "plain", className: classes.close, onClick: closeHandler, children: _jsx(Icon, { icon: faXmark }) })] }));
17
18
  });
@@ -1,9 +1,9 @@
1
1
  import { TagProps } from './tag';
2
2
  export declare const classes: {
3
3
  content: string;
4
+ close: string;
4
5
  prefix: string;
5
6
  suffix: string;
6
- close: string;
7
7
  } & {
8
8
  root: string;
9
9
  };
@@ -1,7 +1,7 @@
1
- import { Ref, JSX } from 'react';
1
+ import { Ref, ComponentProps } from 'react';
2
2
  import { InputBaseProps } from '../inputBase';
3
3
  export interface TextareaProps extends Omit<InputBaseProps<'textarea'>, 'children' | 'prefix' | 'suffix'> {
4
- textareaProps?: JSX.IntrinsicElements['textarea'];
4
+ textareaProps?: ComponentProps<'textarea'>;
5
5
  textareaRef?: Ref<HTMLTextAreaElement>;
6
6
  rows?: number;
7
7
  fullWidth?: boolean;
@@ -2,7 +2,11 @@ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
2
  import { memo } from 'react';
3
3
  import { InputBase } from '../inputBase';
4
4
  import { classes, style } from './textarea.style';
5
- import { clsx, cloneRef } from '../../utils';
5
+ import { clsx, mergeComponentProps } from '../../utils';
6
6
  export const Textarea = memo(({ textareaProps, textareaRef, rows, fullWidth = false, ...props }) => {
7
- return (_jsx(InputBase, { ...props, css: style, className: clsx(classes.root, props.className), "data-full-width": fullWidth, children: ({ ref, ...rest }) => _jsx("textarea", { rows: rows, ...rest, ...textareaProps, ref: cloneRef(ref, textareaRef), className: clsx(classes.textarea, textareaProps?.className) }) }));
7
+ return (_jsx(InputBase, { ...props, css: style, className: clsx(classes.root, props.className), "data-full-width": fullWidth, children: inputBaseProps => _jsx("textarea", { ...mergeComponentProps(inputBaseProps, {
8
+ rows,
9
+ ref: textareaRef,
10
+ className: classes.textarea
11
+ }) }) }));
8
12
  });
@@ -5,9 +5,9 @@ import { Flex } from '../flex';
5
5
  import { clsx, isSelected } from '../../utils';
6
6
  import { classes, style } from './toggleButton.style';
7
7
  import { Button } from '../button';
8
- import { useShallowSelection } from '../selectionContext';
8
+ import { useFlatSelection } from '../selectionContext';
9
9
  export const ToggleButton = (({ variant = 'filled', size, color = 'primary', disabled, readOnly, items, primaryKey = 'value', multiple, defaultValue, value, onChange, ...props }) => {
10
- const [innerValue, toggleSelected] = useShallowSelection({
10
+ const [innerValue, toggleSelected] = useFlatSelection({
11
11
  disabled: disabled ?? readOnly,
12
12
  multiple,
13
13
  defaultValue,
@@ -2,11 +2,11 @@ export declare const classes: {
2
2
  info: string;
3
3
  header: string;
4
4
  title: string;
5
- checkbox: string;
6
5
  list: string;
7
- buttons: string;
6
+ checkbox: string;
8
7
  count: string;
9
8
  panel: string;
9
+ buttons: string;
10
10
  } & {
11
11
  root: string;
12
12
  };
@@ -1,29 +1,51 @@
1
1
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
- import { useEffect, useRef } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  import { TransitionBase } from './transitionBase';
4
- import { cloneRef, useDerivedState } from '../../utils';
4
+ import { cloneRef } from '../../utils';
5
5
  export const Collapse = ({ transitionType = 'sweeping', ...props }) => {
6
6
  const Component = transitionType === 'sweeping' ? Sweeping : TransitionBase;
7
7
  return (_jsx(Component, { ...props, _mode: transitionType === 'sweeping' ? '_sweeping' : 'collapse' }));
8
8
  };
9
9
  const Sweeping = ({ ref, in: _in = false, appear = true, orientation = 'vertical', collapsedSize = 0, ...props }) => {
10
10
  const innerRef = useRef(null);
11
- const [size, setSize] = useDerivedState((prev) => {
12
- return typeof prev === 'undefined' && _in && !appear
13
- // 首次展开,如果appear为false,则返回auto,表示直接展开
14
- ? 'auto'
15
- // 其余情况均返回折叠尺寸,若是展开,展开尺寸需要在requestAnimationFrame后设置
16
- : typeof collapsedSize === 'function' ? collapsedSize() : collapsedSize;
17
- }, [_in]);
11
+ const getCollapsedSize = () => {
12
+ return typeof collapsedSize === 'function' ? collapsedSize() : collapsedSize;
13
+ };
14
+ const [size, setSize] = useState(() => {
15
+ if (_in && !appear) {
16
+ return 'auto';
17
+ }
18
+ return getCollapsedSize();
19
+ });
20
+ const [isEntered, setIsEntered] = useState(_in && !appear);
21
+ const expand = () => {
22
+ requestAnimationFrame(() => {
23
+ innerRef.current && setSize(innerRef.current[orientation === 'vertical' ? 'scrollHeight' : 'scrollWidth']);
24
+ });
25
+ };
26
+ const collapse = () => {
27
+ setIsEntered(false);
28
+ requestAnimationFrame(() => {
29
+ setSize(getCollapsedSize());
30
+ });
31
+ };
32
+ const initialized = useRef(false);
18
33
  useEffect(() => {
19
- if (_in && size.current !== 'auto') {
20
- requestAnimationFrame(() => {
21
- innerRef.current && setSize(innerRef.current[orientation === 'vertical' ? 'scrollHeight' : 'scrollWidth']);
22
- });
34
+ if (!initialized.current) {
35
+ // 首次渲染
36
+ initialized.current = true;
37
+ if (!appear) {
38
+ // 若appear为false,则跳过首次动画
39
+ return;
40
+ }
23
41
  }
42
+ _in
43
+ ? expand()
44
+ : collapse();
24
45
  }, [_in]);
25
- return (_jsx(TransitionBase, { ...props, in: _in, ref: cloneRef(ref, innerRef), style: {
26
- [orientation === 'vertical' ? 'height' : 'width']: size.current,
46
+ return (_jsx(TransitionBase, { ...props, appear: appear, orientation: orientation, in: _in, ref: cloneRef(ref, innerRef), style: {
47
+ [orientation === 'vertical' ? 'height' : 'width']: isEntered ? 'auto' : size,
48
+ ...!isEntered ? { overflow: 'hidden' } : {},
27
49
  ...props.style
28
- } }));
50
+ }, onEntered: () => setIsEntered(true) }));
29
51
  };
@@ -22,5 +22,5 @@ export const TransitionBase = (({ ref, component: Component = 'div', orientation
22
22
  }
23
23
  }
24
24
  const innerRef = useRef(null);
25
- return (_jsx(CSSTransition, { ...props, nodeRef: innerRef, className: clsx(classes.root, props.className), timeout: timeout, appear: appear, children: _jsx(Component, { ref: cloneRef(ref, innerRef), css: cssArr, children: props.children }) }));
25
+ return (_jsx(CSSTransition, { ...props, css: cssArr, nodeRef: innerRef, className: clsx(classes.root, props.className), timeout: timeout, appear: appear, children: _jsx(Component, { ref: cloneRef(ref, innerRef), children: props.children }) }));
26
26
  });
@@ -42,7 +42,7 @@ export const fadeStyle = defineCss(({ easing }) => css `
42
42
  }
43
43
  `);
44
44
  export const sweepingStyle = defineCss(({ easing }) => css `
45
- overflow: hidden;
45
+ //overflow: hidden;
46
46
  transition-property: opacity, width, height;
47
47
 
48
48
  &.appear-active,
@@ -31,4 +31,4 @@ export type TransportStyleOwnProps = {
31
31
  overflow?: CSSProperties['overflow'];
32
32
  };
33
33
  export type TransportStyleProps<C extends ElementType = 'div'> = OverridableProps<TransportStyleOwnProps, C>;
34
- export declare const TransportStyle: OverridableComponent<TransportStyleProps>;
34
+ export declare const TransportStyle: OverridableComponent<TransportStyleOwnProps>;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
2
  import { filterProperties } from '../../utils';
3
- export const TransportStyle = ({ component: Component = 'div', alignItems, justifyContent, alignSelf, justifySelf, flex, width, minWidth, maxWidth, height, minHeight, maxHeight, lineHeight, paddingTop, paddingRight, paddingBottom, paddingLeft, padding, marginTop, marginRight, marginBottom, marginLeft, margin, overflowX, overflowY, overflow, ...props }) => {
3
+ export const TransportStyle = (({ component: Component = 'div', alignItems, justifyContent, alignSelf, justifySelf, flex, width, minWidth, maxWidth, height, minHeight, maxHeight, lineHeight, paddingTop, paddingRight, paddingBottom, paddingLeft, padding, marginTop, marginRight, marginBottom, marginLeft, margin, overflowX, overflowY, overflow, ...props }) => {
4
4
  return (_jsx(Component, { ...props, style: filterProperties({
5
5
  alignItems, justifyContent, alignSelf, justifySelf, flex,
6
6
  width, minWidth, maxWidth, height, minHeight, maxHeight, lineHeight,
@@ -9,4 +9,4 @@ export const TransportStyle = ({ component: Component = 'div', alignItems, justi
9
9
  overflow, overflowX, overflowY,
10
10
  ...props.style
11
11
  }) }));
12
- };
12
+ });
@@ -6,13 +6,21 @@ import { TreeNode, TreeNodeProps } from './treeNode';
6
6
  export interface NodeType<V extends Id = Id> extends Partial<Omit<TreeNodeProps, 'children'>>, Omit<OptionType<V>, 'children'> {
7
7
  children?: NodeType<V>[];
8
8
  }
9
+ export type SortPlacement = 'before' | 'after';
10
+ export type SortInfo<V extends Id = Id> = {
11
+ source: V;
12
+ destination: V;
13
+ placement: SortPlacement | 'child';
14
+ };
9
15
  export interface TreeBaseProps<N extends NodeType<V>, V extends Id = Id> extends Omit<SelectionContextBaseProps<N, V>, 'options'>, Omit<DivProps, 'defaultValue' | 'onChange' | 'onToggle'> {
10
16
  nodes?: N[];
17
+ /** 默认为`label` */
11
18
  labelKey?: keyof N;
12
19
  searchTokenKey?: keyof N;
13
20
  showLine?: boolean;
14
21
  indent?: number;
15
22
  renderExpandIcon?(nodeValue: V, isExpand: boolean, expanded: V[]): ReactNode;
23
+ /** 是否显示`checkbox`选择框,`multiple`为`true`时,默认为`true`,否则默认为`false` */
16
24
  showCheckbox?: boolean;
17
25
  readOnly?: boolean;
18
26
  /** 为true时,点击标签也会展开节点,默认为`false`, 仅点击展开按钮才能展开节点 */
@@ -20,6 +28,11 @@ export interface TreeBaseProps<N extends NodeType<V>, V extends Id = Id> extends
20
28
  defaultExpanded?: V[];
21
29
  expanded?: V[];
22
30
  onExpandedChange?(expanded: V[], nodeValue: V, isExpand: boolean): void;
31
+ /** 是否可以拖拽排序,默认为`false` */
32
+ sortable?: boolean;
33
+ /** 是否显示拖拽把手,默认为`true` */
34
+ showDragHandle?: boolean;
35
+ onSort?(info: SortInfo<V>): void;
23
36
  searchable?: boolean;
24
37
  searchInputProps?: InputProps;
25
38
  defaultSearchValue?: string;
@@ -28,11 +41,11 @@ export interface TreeBaseProps<N extends NodeType<V>, V extends Id = Id> extends
28
41
  }
29
42
  export type TreeProps<N extends NodeType<V>, V extends Id = Id> = TreeBaseProps<N, V> & SelectableProps<V>;
30
43
  type TreeContext<V extends Id = Id> = {
31
- expandedSet?: Set<V>;
32
- toggleExpanded?(value: V): void;
33
- indent?: number;
44
+ expandedSet: Set<V>;
45
+ toggleExpanded(value: V): void;
46
+ indent: number;
34
47
  renderExpandIcon?: TreeBaseProps<any, V>['renderExpandIcon'];
35
- showCheckbox?: boolean;
48
+ showCheckbox: boolean;
36
49
  readOnly?: boolean;
37
50
  disabled?: boolean;
38
51
  clickLabelToExpand?: boolean;
@@ -1,26 +1,27 @@
1
1
  import { createElement as _createElement } from "@emotion/react";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
3
- import { Children, createContext, isValidElement, memo, useContext, useMemo } from 'react';
3
+ import { Children, createContext, isValidElement, memo, useContext, useMemo, useRef } from 'react';
4
4
  import { SelectionContext } from '../selectionContext';
5
5
  import { Input } from '../input';
6
6
  import { classes, style } from './tree.style';
7
- import { clsx, useTreeSearch } from '../../utils';
7
+ import { cloneRef, clsx, useTreeSearch } from '../../utils';
8
8
  import { Highlight } from '../highlight';
9
- import { Placeholder } from '../placeholder';
10
9
  import { TreeNode } from './treeNode';
11
10
  import { Icon } from '../icon';
12
11
  import { faMagnifyingGlass } from '@fortawesome/free-solid-svg-icons/faMagnifyingGlass';
12
+ import { TreeDnd } from './treeDnd';
13
13
  const TreeContext = createContext({});
14
14
  export function useTreeContext() {
15
15
  return useContext(TreeContext);
16
16
  }
17
- export const Tree = memo(({ nodes, labelKey = 'label', searchTokenKey, showLine = true, indent = 24, renderExpandIcon, multiple, showCheckbox = !!multiple, readOnly, clickLabelToExpand, defaultExpanded, expanded, onExpandedChange, searchable, searchInputProps, defaultSearchValue, searchValue, onSearchChange,
17
+ export const Tree = memo(({ nodes, labelKey = 'label', searchTokenKey, showLine = true, indent = 24, renderExpandIcon, multiple, showCheckbox = !!multiple, readOnly, clickLabelToExpand, defaultExpanded, expanded, onExpandedChange, sortable = false, showDragHandle = true, onSort, searchable, searchInputProps, defaultSearchValue, searchValue, onSearchChange,
18
18
  // 从SelectionContext继承来的属性
19
- primaryKey = 'value', childrenKey = 'children', relation = 'dependent', integration = 'shallowest', clearable, disabled, defaultValue, value, onChange, onToggle, ...props }) => {
19
+ primaryKey = 'id', childrenKey = 'children', relation = 'dependent', integration = 'shallowest', clearable, disabled, defaultValue, value, onChange, onToggle, ...props }) => {
20
20
  const selectionContextProps = {
21
21
  options: nodes, primaryKey, childrenKey, relation, integration,
22
22
  multiple, defaultValue, value, onChange, disabled
23
23
  };
24
+ const containerRef = useRef(null);
24
25
  /**
25
26
  * --------------------------------------------------------------
26
27
  * 统一处理nodes与children
@@ -52,20 +53,22 @@ primaryKey = 'value', childrenKey = 'children', relation = 'dependent', integrat
52
53
  defaultExpanded, expanded, onExpandedChange,
53
54
  defaultSearchValue, searchValue, onSearchChange
54
55
  });
55
- return (_jsxs("div", { ...props, css: style, className: clsx(classes.root, props.className), "data-show-line": showLine, children: [searchable &&
56
+ return (_jsxs("div", { ...props, ref: cloneRef(containerRef, props.ref), css: style, className: clsx(classes.root, classes.levelBlock, props.className), "data-show-line": showLine, "data-sortable": sortable, children: [searchable &&
56
57
  _jsx(Input, { className: classes.search, prefix: _jsx(Icon, { icon: faMagnifyingGlass }), placeholder: "\u641C\u7D22", value: innerSearchValue.current, ...searchInputProps, onChange: e => {
57
58
  searchInputProps?.onChange?.(e);
58
59
  setInnerSearchValue(e.target.value);
59
60
  } }), _jsx(SelectionContext, { ...selectionContextProps, children: _jsx(TreeContext, { value: useMemo(() => ({
60
- expandedSet, toggleExpanded, indent, renderExpandIcon,
61
- showCheckbox, readOnly, disabled, clickLabelToExpand
61
+ expandedSet, toggleExpanded, indent, renderExpandIcon, clickLabelToExpand,
62
+ showCheckbox, readOnly, disabled
62
63
  }), [
63
- expandedSet, indent, renderExpandIcon,
64
- showCheckbox, readOnly, disabled, clickLabelToExpand
65
- ]), children: useMemo(() => {
66
- if (filteredTreeData?.length) {
64
+ expandedSet, indent, renderExpandIcon, clickLabelToExpand,
65
+ showCheckbox, readOnly, disabled
66
+ ]), children: _jsx(TreeDnd, { sortable: sortable, showDragHandle: showDragHandle, onSort: onSort, containerRef: containerRef, children: useMemo(() => {
67
+ if (!filteredTreeData?.length) {
68
+ return null;
69
+ }
67
70
  const fn = (arr) => {
68
- return arr?.map(({ _parentId, ...nodeProps }) => {
71
+ return arr?.map(({ _parentId, ...nodeProps }, i) => {
69
72
  const currentValue = nodeProps[primaryKey];
70
73
  const label = nodeProps[labelKey];
71
74
  return (_createElement(TreeNode, { ...nodeProps, key: currentValue, value: currentValue, label: typeof label === 'string' && deferredSearchValue
@@ -74,8 +77,6 @@ primaryKey = 'value', childrenKey = 'children', relation = 'dependent', integrat
74
77
  });
75
78
  };
76
79
  return fn(filteredTreeData);
77
- }
78
- return _jsx(Placeholder, {});
79
- }, [filteredTreeData]) }) })] }));
80
+ }, [filteredTreeData]) }) }) })] }));
80
81
  });
81
82
  Tree.Node = TreeNode;
@@ -1,13 +1,19 @@
1
1
  export declare const classes: {
2
2
  label: string;
3
3
  search: string;
4
- icon: string;
5
4
  prefix: string;
6
- checkbox: string;
7
- suffix: string;
5
+ icon: string;
8
6
  expand: string;
9
7
  indent: string;
10
8
  node: string;
9
+ checkbox: string;
10
+ suffix: string;
11
+ contentWrap: string;
12
+ levelBlock: string;
13
+ dragHandle: string;
14
+ dragMask: string;
15
+ dragMaskPrev: string;
16
+ dragMaskNext: string;
11
17
  } & {
12
18
  root: string;
13
19
  };