@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
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilterBubbleContent = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ const optionsBase_1 = require("../optionsBase");
6
+ const selectionContext_1 = require("../selectionContext");
7
+ const flex_1 = require("../flex");
8
+ const button_1 = require("../button");
9
+ const popper_1 = require("../popper");
10
+ const react_1 = require("react");
11
+ const form_1 = require("../form");
12
+ exports.FilterBubbleContent = (0, react_1.memo)(({ columnKey, columnFilterProps }) => {
13
+ const { formRef } = (0, form_1.useFormContext)();
14
+ /**
15
+ * ------------------------------------------------------------------------------------
16
+ * 弹框关闭时触发筛选
17
+ */
18
+ const { open, setOpen } = (0, popper_1.usePopperContext)();
19
+ (0, react_1.useEffect)(() => {
20
+ !open && formRef.current.submit().then();
21
+ }, [open]);
22
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(form_1.FormItem, { field: columnKey, children: 'control' in columnFilterProps
23
+ ? columnFilterProps.control
24
+ : (0, jsx_runtime_1.jsx)(FilterOptions, { ...columnFilterProps }) }), columnFilterProps.showButton !== false
25
+ ? (0, jsx_runtime_1.jsxs)(flex_1.Flex, { gap: 6, justifyContent: "flex-end", marginTop: 6, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { variant: "text", onClick: () => {
26
+ formRef.current.setFieldValue(columnKey, null);
27
+ setOpen(false);
28
+ }, children: "\u91CD\u7F6E" }), (0, jsx_runtime_1.jsx)(button_1.Button, { onClick: () => setOpen(false), children: "\u786E\u5B9A" })] })
29
+ : (0, jsx_runtime_1.jsx)(TriggerFilterOnChange, {})] }));
30
+ });
31
+ const FilterOptions = (0, react_1.memo)(({ multiple = true, showButton = true, value, onChange, ...props }) => {
32
+ const [selectedValue, toggleSelect] = (0, selectionContext_1.useFlatSelection)({ multiple, value, onChange });
33
+ return ((0, jsx_runtime_1.jsx)(optionsBase_1.OptionsBase, { showCheckbox: multiple, ...props, selectedValue: selectedValue, onToggleSelected: toggleSelect }));
34
+ });
35
+ const TriggerFilterOnChange = (0, react_1.memo)(() => {
36
+ const { formRef } = (0, form_1.useFormContext)();
37
+ const { formValue } = (0, form_1.useFormValueContext)();
38
+ (0, react_1.useEffect)(() => {
39
+ formRef.current.submit().then();
40
+ }, [formValue]);
41
+ return null;
42
+ });
@@ -1,4 +1,4 @@
1
- import React, { JSX } from 'react';
1
+ import React, { ComponentProps } from 'react';
2
2
  import { PopperProps } from '../popper';
3
3
  import { InputBaseProps } from '../inputBase';
4
4
  import { Dayjs } from 'dayjs';
@@ -10,7 +10,7 @@ export type DatePickerSharedProps = {
10
10
  disabledSeconds?: (date: Dayjs, seconds: number) => any;
11
11
  };
12
12
  export interface DateTimePickerProps extends DatePickerSharedProps, Omit<InputBaseProps<'input'>, 'children' | 'value' | 'defaultValue' | 'onChange' | 'min' | 'max'> {
13
- inputProps?: JSX.IntrinsicElements['input'];
13
+ inputProps?: ComponentProps<'input'>;
14
14
  popperProps?: PopperProps;
15
15
  defaultOpen?: boolean;
16
16
  open?: boolean;
@@ -27,7 +27,6 @@ exports.DateTimePicker = (0, react_1.memo)(({ inputProps, popperProps, min, max,
27
27
  const focused = (0, react_1.useRef)(false);
28
28
  const [innerOpen, _setInnerOpen] = (0, utils_1.useControlled)(defaultOpen, open, onOpenChange);
29
29
  const setInnerOpen = (open) => {
30
- popperProps?.onOpenChange?.(open);
31
30
  // 如果仍聚焦在输入框,则不用关闭弹框
32
31
  (open || !focused.current) && _setInnerOpen(open);
33
32
  };
@@ -214,14 +213,33 @@ exports.DateTimePicker = (0, react_1.memo)(({ inputProps, popperProps, min, max,
214
213
  const showCalendar = /[YMD]/.test(format);
215
214
  const showTimer = /[Hms]/.test(format);
216
215
  const _dateVal = dateValue.current || (0, dayjs_1.default)();
217
- return ((0, jsx_runtime_1.jsx)(popper_1.Popper, { css: dateTimePicker_style_1.datePickerPopperStyle, open: innerOpen.current, placement: "bottomLeft", trigger: ['click', 'enter'], disabled: props.disabled || props.readOnly, content: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [showCalendar &&
218
- (0, jsx_runtime_1.jsx)(calendar_1.Calendar, { viewLevel: format.includes('D') ? 'date'
219
- : format.includes('M') ? 'month'
220
- : 'year', _defaultNull: !dateValue.current, value: _dateVal, onChange: setDateValue, min: min, max: max, disabledDates: disabledDates }), showTimer &&
221
- (0, jsx_runtime_1.jsx)(DateTimePickerContext, { value: contextValue, children: (0, jsx_runtime_1.jsx)(timer_1.Timer, { showHours: format.includes('H'), showMinutes: format.includes('m'), showSeconds: format.includes('s'), value: _dateVal, onChange: setDateValue }) })] }), ...popperProps, onOpenChange: setInnerOpen, onPointerDown: e => {
222
- popperProps?.onPointerDown?.(e);
223
- e.preventDefault();
224
- }, children: (0, jsx_runtime_1.jsx)(inputBase_1.InputBase, { ...props, css: dateTimePicker_style_1.style, className: (0, utils_1.clsx)(dateTimePicker_style_1.classes.root, props.className), "data-focused": innerOpen.current, value: dateValue.current, onClear: clearHandler, onSelect: selectHandler, onFocus: focusHandler, onBlur: blurHandler, onKeyDown: keydownHandler, children: ({ ref, value, onChange, ...rest }) => (0, jsx_runtime_1.jsxs)("div", { className: dateTimePicker_style_1.classes.container, children: [(0, jsx_runtime_1.jsx)("input", { ...rest, ...inputProps, ref: (0, utils_1.cloneRef)(ref, inputProps?.ref, innerInputRef), className: (0, utils_1.clsx)(dateTimePicker_style_1.classes.input, inputProps?.className) }), (0, jsx_runtime_1.jsx)("div", { className: dateTimePicker_style_1.classes.dateTimeIcon, children: showTimer && !showCalendar
216
+ return ((0, jsx_runtime_1.jsx)(popper_1.Popper, { ...(0, utils_1.mergeComponentProps)({
217
+ css: dateTimePicker_style_1.datePickerPopperStyle,
218
+ open: innerOpen.current,
219
+ placement: 'bottomLeft',
220
+ trigger: ['click', 'enter'],
221
+ disabled: props.disabled || props.readOnly,
222
+ content: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [showCalendar &&
223
+ (0, jsx_runtime_1.jsx)(calendar_1.Calendar, { viewLevel: format.includes('D') ? 'date'
224
+ : format.includes('M') ? 'month'
225
+ : 'year', _defaultNull: !dateValue.current, value: _dateVal, onChange: setDateValue, min: min, max: max, disabledDates: disabledDates }), showTimer &&
226
+ (0, jsx_runtime_1.jsx)(DateTimePickerContext, { value: contextValue, children: (0, jsx_runtime_1.jsx)(timer_1.Timer, { showHours: format.includes('H'), showMinutes: format.includes('m'), showSeconds: format.includes('s'), value: _dateVal, onChange: setDateValue }) })] })),
227
+ }, popperProps, {
228
+ onOpenChange: setInnerOpen,
229
+ onPointerDown: e => e.preventDefault()
230
+ }), children: (0, jsx_runtime_1.jsx)(inputBase_1.InputBase, { ...(0, utils_1.mergeComponentProps)(props, {
231
+ css: dateTimePicker_style_1.style,
232
+ className: dateTimePicker_style_1.classes.root,
233
+ value: dateValue.current,
234
+ onClear: clearHandler,
235
+ onSelect: selectHandler,
236
+ onFocus: focusHandler,
237
+ onBlur: blurHandler,
238
+ onKeyDown: keydownHandler
239
+ }), "data-focused": innerOpen.current, children: inputBaseProps => (0, jsx_runtime_1.jsxs)("div", { className: dateTimePicker_style_1.classes.container, children: [(0, jsx_runtime_1.jsx)("input", { ...(0, utils_1.mergeComponentProps)(inputBaseProps, inputProps, {
240
+ ref: innerInputRef,
241
+ className: dateTimePicker_style_1.classes.input
242
+ }) }), (0, jsx_runtime_1.jsx)("div", { className: dateTimePicker_style_1.classes.dateTimeIcon, children: showTimer && !showCalendar
225
243
  ? (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faClock_1.faClock })
226
244
  : (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faCalendar_1.faCalendar }) })] }) }) }));
227
245
  });
@@ -1,7 +1,7 @@
1
1
  export declare const classes: {
2
2
  input: string;
3
- container: string;
4
3
  calendar: string;
4
+ container: string;
5
5
  dateItem: string;
6
6
  inputGroup: string;
7
7
  inputUnit: string;
@@ -3,6 +3,7 @@ import { ColorPropsValue, DivProps, Size } from '../../types';
3
3
  import { DatePickerSharedProps, DateTimePickerProps } from '../dateTimePicker';
4
4
  import { Dayjs } from 'dayjs';
5
5
  type DateValueType = [Dayjs | null, Dayjs | null] | null;
6
+ type PickerType = 'start' | 'end';
6
7
  export interface DateTimeRangePickerProps extends DatePickerSharedProps, Omit<DivProps, 'defaultValue' | 'onChange'> {
7
8
  startPickerProps?: DateTimePickerProps;
8
9
  endPickerProps?: DateTimePickerProps;
@@ -10,9 +11,9 @@ export interface DateTimeRangePickerProps extends DatePickerSharedProps, Omit<Di
10
11
  defaultValue?: DateValueType;
11
12
  value?: DateValueType;
12
13
  onChange?(value: DateValueType): void;
13
- defaultOpenPicker?: 'start' | 'end' | 'closed';
14
- openPicker?: 'start' | 'end' | 'closed';
15
- onOpenPickerChange?(openPicker?: 'start' | 'end' | 'closed'): void;
14
+ defaultOpenPicker?: PickerType | 'closed';
15
+ openPicker?: PickerType | 'closed';
16
+ onOpenPickerChange?(openPicker?: PickerType | 'closed'): void;
16
17
  autoClose?: boolean;
17
18
  separator?: ReactNode;
18
19
  disabledDates?: (date: Dayjs) => any;
@@ -12,29 +12,51 @@ variant, size, color, disabled, readOnly, autoFocus, ...props }) => {
12
12
  const [innerOpen, setInnerOpen] = (0, utils_1.useControlled)(defaultOpenPicker, openPicker, onOpenPickerChange);
13
13
  const [innerValue, setInnerValue] = (0, utils_1.useControlled)(defaultValue, value, onChange);
14
14
  const endPickerInputRef = (0, react_1.useRef)(null);
15
- const commonProps = {
16
- format, disabledDates, disabledHours, disabledMinutes, disabledSeconds,
17
- variant, size, color, disabled, readOnly
18
- };
19
15
  const showTimer = /[Hms]/.test(format);
20
- return ((0, jsx_runtime_1.jsxs)("div", { ...props, css: dateTimeRangePicker_style_1.style, className: (0, utils_1.clsx)(dateTimeRangePicker_style_1.classes.root, props.className), children: [(0, jsx_runtime_1.jsx)(dateTimePicker_1.DateTimePicker, { ...commonProps, autoFocus: autoFocus, autoClose: false, placeholder: showTimer ? '开始时间' : '开始日期', max: innerValue.current?.[1] || void 0, open: innerOpen.current === 'start', ...startPickerProps, onOpenChange: open => {
21
- startPickerProps?.onOpenChange?.(open);
22
- setInnerOpen(open ? 'start' : 'closed');
23
- }, value: innerValue.current?.[0], onChange: startValue => {
24
- startPickerProps?.onChange?.(startValue);
25
- setInnerValue(o => [startValue, o?.[1] || null]);
26
- if (startValue && !showTimer) {
27
- endPickerInputRef.current.focus();
28
- innerOpen.current === 'start' && setInnerOpen('end');
16
+ const renderPickerItem = (type) => {
17
+ const commonProps = {
18
+ format, disabledDates, disabledHours, disabledMinutes, disabledSeconds,
19
+ variant, size, color, disabled, readOnly
20
+ };
21
+ return ((0, jsx_runtime_1.jsx)(dateTimePicker_1.DateTimePicker, { ...(0, utils_1.mergeComponentProps)(commonProps, type === 'start'
22
+ ? {
23
+ autoFocus,
24
+ autoClose: false,
25
+ placeholder: showTimer ? '开始时间' : '开始日期',
26
+ max: innerValue.current?.[1] || void 0,
27
+ open: innerOpen.current === 'start'
28
+ }
29
+ : {
30
+ autoClose,
31
+ placeholder: showTimer ? '结束时间' : '结束日期',
32
+ min: innerValue.current?.[0] || void 0,
33
+ open: innerOpen.current === 'end'
34
+ }, type === 'start'
35
+ ? startPickerProps
36
+ : endPickerProps, type === 'start'
37
+ ? {
38
+ onOpenChange: open => setInnerOpen(open ? 'start' : 'closed'),
39
+ value: innerValue.current?.[0],
40
+ onChange: value => {
41
+ setInnerValue(o => [value, o?.[1] || null]);
42
+ if (value && !showTimer) {
43
+ endPickerInputRef.current.focus();
44
+ innerOpen.current === 'start' && setInnerOpen('end');
45
+ }
46
+ }
47
+ }
48
+ : {
49
+ inputProps: { ref: endPickerInputRef },
50
+ onOpenChange: open => setInnerOpen(open ? 'end' : 'closed'),
51
+ value: innerValue.current?.[1],
52
+ onChange: value => {
53
+ setInnerValue(o => [o?.[0] || null, value]);
54
+ },
55
+ popperProps: {
56
+ ...endPickerProps?.popperProps,
57
+ placement: 'bottomRight'
29
58
  }
30
- } }), separator ?? (0, jsx_runtime_1.jsx)("span", { children: "-" }), (0, jsx_runtime_1.jsx)(dateTimePicker_1.DateTimePicker, { ...commonProps, autoClose: autoClose, placeholder: showTimer ? '结束时间' : '结束日期', min: innerValue.current?.[0] || void 0, open: innerOpen.current === 'end', ...endPickerProps, inputProps: { ref: endPickerInputRef }, onOpenChange: open => {
31
- startPickerProps?.onOpenChange?.(open);
32
- setInnerOpen(open ? 'end' : 'closed');
33
- }, value: innerValue.current?.[1], onChange: endValue => {
34
- endPickerProps?.onChange?.(endValue);
35
- setInnerValue(o => [o?.[0] || null, endValue]);
36
- }, popperProps: {
37
- ...endPickerProps?.popperProps,
38
- placement: 'bottomRight'
39
- } })] }));
59
+ }) }));
60
+ };
61
+ return ((0, jsx_runtime_1.jsxs)("div", { ...props, css: dateTimeRangePicker_style_1.style, className: (0, utils_1.clsx)(dateTimeRangePicker_style_1.classes.root, props.className), children: [renderPickerItem('start'), separator ?? (0, jsx_runtime_1.jsx)("span", { children: "-" }), renderPickerItem('end')] }));
40
62
  });
@@ -15,6 +15,8 @@ function useDescriptionsContext() {
15
15
  }
16
16
  const DescriptionsContext = (0, react_2.createContext)({});
17
17
  exports.Descriptions = (0, react_2.memo)(({ size, labelWidth, colon = ':', labelPlacement = 'left', disableMargin, disablePadding, items, itemComponent: ItemComponent = descriptionItem_1.DescriptionItem, variant = 'grid', columnCount = 3, ...props }) => {
18
+ const theme = (0, theme_1.useTheme)();
19
+ size ??= theme.size;
18
20
  const contextValue = (0, react_2.useMemo)(() => ({
19
21
  size, labelWidth, colon, labelPlacement, disableMargin, disablePadding, variant
20
22
  }), [
@@ -2,8 +2,8 @@ export declare const classes: {
2
2
  col: string;
3
3
  label: string;
4
4
  content: string;
5
- vertical: string;
6
5
  colon: string;
6
+ vertical: string;
7
7
  item: string;
8
8
  labelCol: string;
9
9
  contentCol: string;
@@ -33,4 +33,4 @@ export interface DialogProps extends Omit<ModalProps, 'title' | 'prefix'> {
33
33
  defaultOpen?: boolean;
34
34
  onClose?(closeReason: DialogCloseReason): void;
35
35
  }
36
- export declare function Dialog({ ref, icon, title, footer, prefix, suffix, width, minWidth, maxWidth, showClose, closeProps, showConfirm, confirmText, confirmProps, onConfirm, confirmLoading, showCancel, cancelText, cancelProps, onCancel, draggable, maskClosable, escapeClosable, defaultOpen, open, onClose, ...props }: DialogProps): import("@emotion/react/jsx-runtime").JSX.Element;
36
+ export declare function Dialog({ icon, title, footer, prefix, suffix, width, minWidth, maxWidth, showClose, closeProps, showConfirm, confirmText, confirmProps, onConfirm, confirmLoading, showCancel, cancelText, cancelProps, onCancel, draggable, maskClosable, escapeClosable, defaultOpen, open, onClose, ...props }: DialogProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -10,7 +10,7 @@ const button_1 = require("../button");
10
10
  const draggable_1 = require("../draggable");
11
11
  const icon_1 = require("../icon");
12
12
  const faXmark_1 = require("@fortawesome/free-solid-svg-icons/faXmark");
13
- function Dialog({ ref, icon, title, footer, prefix, suffix, width = 420, minWidth, maxWidth = '100%', showClose = true, closeProps, showConfirm = true, confirmText = '确 定', confirmProps, onConfirm, confirmLoading = false, showCancel = true, cancelText = '取 消', cancelProps, onCancel, draggable = true, maskClosable = true, escapeClosable = true, defaultOpen = false, open, onClose, ...props }) {
13
+ function Dialog({ icon, title, footer, prefix, suffix, width = 420, minWidth, maxWidth = '100%', showClose = true, closeProps, showConfirm = true, confirmText = '确 定', confirmProps, onConfirm, confirmLoading = false, showCancel = true, cancelText = '取 消', cancelProps, onCancel, draggable = true, maskClosable = true, escapeClosable = true, defaultOpen = false, open, onClose, ...props }) {
14
14
  const [innerOpen, _setInnerOpen] = (0, utils_1.useControlled)(defaultOpen, open);
15
15
  const close = (closeReason) => {
16
16
  if (!innerLoading.current || closeReason === 'confirmed') {
@@ -81,7 +81,7 @@ function Dialog({ ref, icon, title, footer, prefix, suffix, width = 420, minWidt
81
81
  }
82
82
  return footer;
83
83
  };
84
- return ((0, jsx_runtime_1.jsx)(modal_1.Modal, { ...props, ref: (0, utils_1.cloneRef)(ref, overlayRef), css: dialog_style_1.style, className: (0, utils_1.clsx)(dialog_style_1.classes.root, props.className), open: innerOpen.current, onMaskClick: onMaskClick, "data-draggable": draggable, children: (0, jsx_runtime_1.jsx)(draggable_1.Draggable, { container: () => overlayRef.current, children: (targetProps, handleProps) => (0, jsx_runtime_1.jsxs)("div", { className: dialog_style_1.classes.card, ...targetProps, style: { width, minWidth, maxWidth, ...targetProps.style }, children: [!!icon &&
84
+ return ((0, jsx_runtime_1.jsx)(modal_1.Modal, { ...props, ref: (0, utils_1.cloneRef)(overlayRef, props.ref), css: dialog_style_1.style, className: (0, utils_1.clsx)(dialog_style_1.classes.root, props.className), open: innerOpen.current, onMaskClick: onMaskClick, "data-draggable": draggable, children: (0, jsx_runtime_1.jsx)(draggable_1.Draggable, { container: () => overlayRef.current, children: (targetProps, handleProps) => (0, jsx_runtime_1.jsxs)("div", { className: dialog_style_1.classes.card, ...targetProps, style: { width, minWidth, maxWidth, ...targetProps.style }, children: [!!icon &&
85
85
  (0, jsx_runtime_1.jsx)("div", { className: dialog_style_1.classes.icon, children: icon }), (0, jsx_runtime_1.jsxs)("div", { className: dialog_style_1.classes.content, children: [!!(title || showClose) &&
86
86
  (0, jsx_runtime_1.jsxs)("div", { className: dialog_style_1.classes.titleRow, ...handleProps, children: [(0, jsx_runtime_1.jsx)("div", { className: dialog_style_1.classes.title, children: title }), showClose &&
87
87
  (0, jsx_runtime_1.jsx)(button_1.Button, { shape: "circular", variant: "text", color: "text.secondary", ...closeProps, className: (0, utils_1.clsx)(dialog_style_1.classes.close, closeProps?.className), onClick: closeHandler, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faXmark_1.faXmark }) })] }), (0, jsx_runtime_1.jsxs)("div", { ref: bodyRef, className: dialog_style_1.classes.body, onScroll: onScroll, children: [!!prefix &&
@@ -2,11 +2,11 @@ export declare const classes: {
2
2
  body: string;
3
3
  footer: string;
4
4
  title: string;
5
- icon: string;
6
5
  content: string;
6
+ close: string;
7
7
  prefix: string;
8
+ icon: string;
8
9
  suffix: string;
9
- close: string;
10
10
  card: string;
11
11
  titleRow: string;
12
12
  bodyWrap: string;
@@ -1,14 +1,24 @@
1
- import { ReactElement, ReactNode } from 'react';
1
+ import React, { ReactElement, ReactNode, Ref } from 'react';
2
2
  import { DraggableGestureOptions, HandleProps } from '../../utils';
3
3
  import { DefineElement } from '../../types';
4
4
  export type DraggableTargetProps = {
5
+ onTransitionEnd(e: React.TransitionEvent): void;
5
6
  style: {
6
7
  translate: string;
7
8
  };
9
+ 'data-dragging': 'true' | 'false';
10
+ };
11
+ export type DraggableRef = {
12
+ restore(transition?: boolean): void;
8
13
  };
9
14
  export interface DraggableProps extends DraggableGestureOptions {
15
+ ref?: Ref<DraggableRef>;
10
16
  translateLimit?(targetTranslate: [number, number]): [number, number];
17
+ /** 拖拽结束后是否恢复原来的位置,默认为`false` */
18
+ restoreOnDragEnd?: boolean;
19
+ /** 恢复时是否播放过度动画,默认为`true` */
20
+ restoreTransition?: boolean;
11
21
  container?: DefineElement;
12
22
  children: ReactElement | ((targetProps: DraggableTargetProps, handleProps: HandleProps) => ReactNode);
13
23
  }
14
- export declare function Draggable({ translateLimit, container, children, ...draggableOptions }: DraggableProps): ReactNode;
24
+ export declare function Draggable({ ref, translateLimit, restoreOnDragEnd, restoreTransition, container, children, ...draggableOptions }: DraggableProps): React.ReactNode;
@@ -3,13 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Draggable = Draggable;
4
4
  const react_1 = require("react");
5
5
  const utils_1 = require("../../utils");
6
- function Draggable({ translateLimit, container, children, ...draggableOptions }) {
6
+ const theme_1 = require("../theme");
7
+ function Draggable({ ref, translateLimit, restoreOnDragEnd, restoreTransition = true, container, children, ...draggableOptions }) {
8
+ (0, react_1.useImperativeHandle)(ref, () => ({
9
+ restore
10
+ }));
11
+ const [transiting, setTransiting] = (0, react_1.useState)(false);
12
+ const restore = (transition = restoreTransition) => {
13
+ transition && setTransiting(true);
14
+ setTranslate([0, 0]);
15
+ };
16
+ const onTransitionEnd = () => {
17
+ setTransiting(false);
18
+ };
7
19
  const [translate, setTranslate] = (0, react_1.useState)([0, 0]);
20
+ const [isDragging, setIsDragging] = (0, react_1.useState)(false);
8
21
  const props = children.props;
9
22
  const draggableHandles = (0, utils_1.useDraggable)({
10
23
  ...draggableOptions,
11
24
  onDragStart(e) {
12
25
  draggableOptions.onDragStart?.(e);
26
+ setIsDragging(true);
13
27
  return [...translate];
14
28
  },
15
29
  onDrag(info, e) {
@@ -30,20 +44,36 @@ function Draggable({ translateLimit, container, children, ...draggableOptions })
30
44
  }
31
45
  setTranslate([newX, newY]);
32
46
  },
47
+ onDragEnd(info) {
48
+ draggableOptions.onDragEnd?.(info);
49
+ setIsDragging(false);
50
+ restoreOnDragEnd && restore();
51
+ },
33
52
  onClick: props?.onClick
34
53
  });
54
+ const theme = (0, theme_1.useTheme)();
35
55
  const style = (0, react_1.useMemo)(() => ({
36
56
  translate: `${translate[0]}px ${translate[1]}px`,
57
+ ...transiting && { transition: `translate .3s ${theme.easing.bounce}` },
37
58
  ...props?.style
38
- }), [translate, props?.style]);
59
+ }), [translate, transiting, theme, props?.style]);
39
60
  if ((0, react_1.isValidElement)(children)) {
40
61
  return (0, react_1.cloneElement)(children, {
41
62
  style,
42
- ...draggableHandles
63
+ 'data-dragging': String(isDragging),
64
+ onTransitionEnd,
65
+ ...draggableHandles,
43
66
  });
44
67
  }
45
68
  if (typeof children === 'function') {
46
- return children({ style: { translate: `${translate[0]}px ${translate[1]}px` } }, draggableHandles);
69
+ return children({
70
+ style: {
71
+ translate: `${translate[0]}px ${translate[1]}px`,
72
+ ...transiting && { transition: `translate .3s ${theme.easing.bounce}` },
73
+ },
74
+ 'data-dragging': String(isDragging),
75
+ onTransitionEnd
76
+ }, draggableHandles);
47
77
  }
48
78
  return children;
49
79
  }
@@ -1,6 +1,7 @@
1
- import { CSSProperties } from 'react';
2
- import { TransportStyleProps } from '../transportStyle';
3
- export interface FlexProps extends TransportStyleProps {
1
+ import { CSSProperties, ElementType } from 'react';
2
+ import { TransportStyleOwnProps } from '../transportStyle';
3
+ import { OverridableComponent, OverridableProps } from '../../types';
4
+ interface FlexOwnProps extends TransportStyleOwnProps {
4
5
  inline?: boolean;
5
6
  /** 排列方式,默认为`row` */
6
7
  direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
@@ -12,4 +13,6 @@ export interface FlexProps extends TransportStyleProps {
12
13
  /** 当compact为true时,gap无效,而且会清除子元素的圆角,让他们拼接起来 */
13
14
  compact?: boolean;
14
15
  }
15
- export declare function Flex({ inline, direction, wrap, gap, columnGap, rowGap, compact, ...props }: FlexProps): import("@emotion/react/jsx-runtime").JSX.Element;
16
+ export type FlexProps<C extends ElementType = 'div'> = OverridableProps<FlexOwnProps, C>;
17
+ export declare const Flex: OverridableComponent<FlexOwnProps>;
18
+ export {};
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Flex = Flex;
3
+ exports.Flex = void 0;
4
4
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const flex_style_1 = require("./flex.style");
7
7
  const utils_1 = require("../../utils");
8
8
  const transportStyle_1 = require("../transportStyle");
9
- function Flex({ inline, direction = 'row', wrap, gap = 0, columnGap, rowGap, compact, ...props }) {
9
+ exports.Flex = (({ inline, direction = 'row', wrap, gap = 0, columnGap, rowGap, compact, ...props }) => {
10
10
  const renderChildren = () => {
11
11
  if (!compact) {
12
12
  return props.children;
@@ -29,4 +29,4 @@ function Flex({ inline, direction = 'row', wrap, gap = 0, columnGap, rowGap, com
29
29
  flexWrap: wrap, columnGap, rowGap, gap,
30
30
  ...props.style
31
31
  }), children: renderChildren() }));
32
- }
32
+ });
@@ -14,7 +14,7 @@ export type FormSharedProps = {
14
14
  size?: Size;
15
15
  };
16
16
  interface FormOwnProps<V extends FormValue = FormValue> extends FormSharedProps, DescriptionsSharedProps, GridOwnProps {
17
- ref?: Ref<FormRef<V> | null>;
17
+ ref?: Ref<FormRef<V>>;
18
18
  /** 最外层元素的ref,默认{@link ref}属性已经被{@link FormRef}取代 */
19
19
  wrapperRef?: Ref<HTMLFormElement>;
20
20
  initialValue?: V;
@@ -24,14 +24,19 @@ interface FormOwnProps<V extends FormValue = FormValue> extends FormSharedProps,
24
24
  descriptionsProps?: DescriptionsProps;
25
25
  }
26
26
  export type FormProps<V extends FormValue = FormValue, C extends ElementType = 'form'> = OverridableProps<FormOwnProps<V>, C>;
27
- interface FormContext<V extends FormValue> extends FormSharedProps {
28
- formValue?: V;
29
- setFieldValue?(field: FieldPath, value: any, silent?: boolean): void;
27
+ type FormContext<V extends FormValue> = {
28
+ inForm?: boolean;
30
29
  itemsContainer?: Map<string, FormItemRef>;
31
30
  formRef?: RefObject<FormRef<V> | null>;
32
- }
31
+ };
33
32
  declare const FormContext: React.Context<FormContext<any>>;
34
33
  export declare function useFormContext<V extends FormValue>(): FormContext<V>;
34
+ type FormValueContextType<V extends FormValue> = {
35
+ formValue?: V;
36
+ setFieldValue?(field: FieldPath, value: any, silent?: boolean): void;
37
+ };
38
+ export declare function useFormValueContext<V extends FormValue>(): FormValueContextType<V>;
39
+ export declare function useFormStyleContext(): FormSharedProps;
35
40
  export type FormRef<V extends FormValue = FormValue> = {
36
41
  /** 存在校验不通过的字段时会得到`null` */
37
42
  submit(): Promise<V | null>;
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Form = void 0;
4
4
  exports.useFormContext = useFormContext;
5
+ exports.useFormValueContext = useFormValueContext;
6
+ exports.useFormStyleContext = useFormStyleContext;
5
7
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
6
8
  const react_1 = require("react");
7
9
  const utils_1 = require("../../utils");
@@ -13,11 +15,43 @@ const FormContext = (0, react_1.createContext)({});
13
15
  function useFormContext() {
14
16
  return (0, react_1.useContext)(FormContext);
15
17
  }
16
- exports.Form = (({ component: Component = 'form', ref, wrapperRef, initialValue, onChange, onFinish, items, descriptionsProps, requiredMark = '*', variant = 'grid',
18
+ const FormValueContext = (0, react_1.createContext)({});
19
+ function useFormValueContext() {
20
+ return (0, react_1.useContext)(FormValueContext);
21
+ }
22
+ const FormStyleContext = (0, react_1.createContext)({});
23
+ function useFormStyleContext() {
24
+ return (0, react_1.useContext)(FormStyleContext);
25
+ }
26
+ exports.Form = (({ component: Component = 'form', ref, wrapperRef, initialValue, onChange, onFinish, items, descriptionsProps, requiredMark, variant,
17
27
  // 以下属性从DescriptionsSharedProps继承
18
28
  labelWidth, labelPlacement = 'left', colon = ':', size, disableMargin, disablePadding,
19
29
  // 以下属性从GridOwnProps继承
20
30
  inline, columnCount = 1, gap, columnGap, rowGap, ...props }) => {
31
+ const { inForm, formRef: parentFormRef } = useFormContext();
32
+ const renderChildren = () => {
33
+ return variant === 'plain'
34
+ ? props.children
35
+ : (0, jsx_runtime_1.jsx)(descriptions_1.Descriptions, { ...descriptionsProps, size: size, labelWidth: labelWidth, colon: colon, labelPlacement: labelPlacement, disableMargin: disableMargin, disablePadding: disablePadding, variant: variant, inline: inline, columnCount: columnCount, gap: gap, columnGap: columnGap, rowGap: rowGap, items: items, itemComponent: formItem_1.FormItem, children: props.children });
36
+ };
37
+ /**
38
+ * ------------------------------------------------------------------------
39
+ * 嵌套在另个一个form中,值取最顶层的form,当前组件仅做样式处理
40
+ */
41
+ if (inForm) {
42
+ (0, react_1.useImperativeHandle)(ref, () => parentFormRef.current);
43
+ const context = useFormStyleContext();
44
+ requiredMark ??= context.requiredMark ?? '*';
45
+ variant ??= context.variant ?? 'grid';
46
+ size ??= context.size;
47
+ return ((0, jsx_runtime_1.jsx)(FormStyleContext, { value: (0, react_1.useMemo)(() => ({
48
+ requiredMark, variant, size
49
+ }), [
50
+ requiredMark, variant, size
51
+ ]), children: renderChildren() }));
52
+ }
53
+ requiredMark ??= '*';
54
+ variant ??= 'grid';
21
55
  /**
22
56
  * ------------------------------------------------------------------------
23
57
  * 表单值
@@ -46,8 +80,7 @@ inline, columnCount = 1, gap, columnGap, rowGap, ...props }) => {
46
80
  e?.preventDefault();
47
81
  try {
48
82
  await Promise.all([...itemsContainer.current].map(async ([, item]) => {
49
- const isValid = await item.validate();
50
- return isValid ? void 0 : Promise.reject();
83
+ return await item.validate() || Promise.reject();
51
84
  }));
52
85
  onFinish?.(formValue.current);
53
86
  return formValue.current;
@@ -84,7 +117,7 @@ inline, columnCount = 1, gap, columnGap, rowGap, ...props }) => {
84
117
  setFormValue(newValue);
85
118
  },
86
119
  resetField: field => {
87
- itemsContainer.current.get((0, utils_1.stringifyField)(field))?.reset();
120
+ itemsContainer.current.get((0, utils_1.stringifyField)(field))?.reset(formValue.current, initialValue);
88
121
  setFormValue(o => ({ ...o }));
89
122
  },
90
123
  isFormTouched: () => [...itemsContainer.current].some(([, item]) => item.isTouched),
@@ -92,12 +125,15 @@ inline, columnCount = 1, gap, columnGap, rowGap, ...props }) => {
92
125
  };
93
126
  (0, react_1.useImperativeHandle)(ref, () => formRef.current);
94
127
  return ((0, jsx_runtime_1.jsx)(Component, { ...props, ref: wrapperRef, css: form_style_1.style, className: (0, utils_1.clsx)(form_style_1.classes.root, props.className), onSubmit: submitHandler, children: (0, jsx_runtime_1.jsx)(FormContext, { value: (0, react_1.useMemo)(() => ({
95
- requiredMark, variant, size,
96
- formValue: formValue.current, setFieldValue,
128
+ inForm: true,
97
129
  itemsContainer: itemsContainer.current, formRef
98
- }), [requiredMark, variant, size, formValue.current]), children: variant === 'plain'
99
- ? props.children
100
- : (0, jsx_runtime_1.jsx)(descriptions_1.Descriptions, { ...descriptionsProps, size: size, labelWidth: labelWidth, colon: colon, labelPlacement: labelPlacement, disableMargin: disableMargin, disablePadding: disablePadding, items: items, variant: variant, itemComponent: formItem_1.FormItem, inline: inline, columnCount: columnCount, gap: gap, columnGap: columnGap, rowGap: rowGap, children: props.children }) }) }));
130
+ }), []), children: (0, jsx_runtime_1.jsx)(FormStyleContext, { value: (0, react_1.useMemo)(() => ({
131
+ requiredMark, variant, size
132
+ }), [
133
+ requiredMark, variant, size
134
+ ]), children: (0, jsx_runtime_1.jsx)(FormValueContext, { value: (0, react_1.useMemo)(() => ({
135
+ formValue: formValue.current, setFieldValue
136
+ }), [formValue.current]), children: renderChildren() }) }) }) }));
101
137
  });
102
138
  exports.Form.Item = formItem_1.FormItem;
103
139
  exports.Form.Relatable = formRelatable_1.FormRelatable;
@@ -3,11 +3,11 @@ import { FormRef, FormSharedProps, FormValue } from './form';
3
3
  import { ColorPropsValue, MergeProps, Size } from '../../types';
4
4
  import { FieldPath } from '../../utils';
5
5
  import { DescriptionItemProps } from '../descriptions';
6
- export type FormItemRules<I = any> = {
6
+ export type FormItemRules<I = any, R = FormRef> = {
7
7
  message?: ReactNode;
8
8
  required?: boolean;
9
9
  pattern?: RegExp;
10
- validator?(fieldValue: I | undefined, formValue: any, formRef: FormRef | null): any;
10
+ validator?(fieldValue: I | undefined, formValue: any, formRef: R | null): any;
11
11
  };
12
12
  export type FieldProps<I = any> = {
13
13
  checked?: boolean;
@@ -18,6 +18,7 @@ export type StyleProps = {
18
18
  size?: Size;
19
19
  color?: ColorPropsValue;
20
20
  };
21
+ export type FormItemChildren<T extends ReactNode = ReactNode, I = any> = T | ((fieldProps: FieldProps<I>, styleProps: StyleProps, key: string) => T);
21
22
  export interface FormItemOwnProps<I = any> extends FormSharedProps {
22
23
  ref?: Ref<FormItemRef>;
23
24
  wrapperRef?: Ref<HTMLDivElement>;
@@ -29,11 +30,13 @@ export interface FormItemOwnProps<I = any> extends FormSharedProps {
29
30
  helperText?: ReactNode;
30
31
  dependencies?: FieldPath[];
31
32
  /**
32
- * 若`children`为`function`类型时,第三个参数`key`主要用于强制重渲染,
33
- * 在没有{@link initialValue}时非常有用
33
+ * 若`children`为`function`类型时,
34
+ * 第三个参数`key`主要用于强制重渲染,在没有{@link initialValue}时非常有用
34
35
  */
35
- children?: ReactNode | ((fieldProps: FieldProps<I>, styleProps: StyleProps, key?: string) => ReactNode);
36
+ children?: FormItemChildren;
36
37
  noStyle?: boolean;
38
+ /** @private 内部使用,强制指定字段值 */
39
+ _fieldValue?: I;
37
40
  }
38
41
  export type FormItemProps<I = any, C extends ElementType = 'div'> = MergeProps<FormItemOwnProps<I>, DescriptionItemProps<C>>;
39
42
  export type FieldError = null | {
@@ -42,7 +45,9 @@ export type FieldError = null | {
42
45
  export type FormItemRef = {
43
46
  validate(): Promise<boolean>;
44
47
  error: FieldError;
45
- reset(initialValues?: FormValue): void;
46
- isTouched: boolean;
48
+ reset(): void;
49
+ /** @private */
50
+ reset(currentFormValue: FormValue, initialFormValue?: FormValue): void;
51
+ isTouched(): boolean;
47
52
  };
48
53
  export declare const FormItem: <I = any, C extends ElementType = 'div'>(props: FormItemProps<I, C>) => ReactNode;