antd-mobile 5.25.1 → 5.27.0

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 (376) hide show
  1. package/2x/README.md +6 -22
  2. package/2x/bundle/antd-mobile.cjs.development.js +1342 -1142
  3. package/2x/bundle/antd-mobile.cjs.js +9 -8
  4. package/2x/bundle/antd-mobile.es.development.js +1186 -986
  5. package/2x/bundle/antd-mobile.es.js +8576 -8366
  6. package/2x/bundle/antd-mobile.umd.development.js +1342 -1142
  7. package/2x/bundle/antd-mobile.umd.js +9 -8
  8. package/2x/bundle/style.css +29 -5
  9. package/2x/cjs/components/action-sheet/index.d.ts +0 -1
  10. package/2x/cjs/components/badge/index.d.ts +0 -1
  11. package/2x/cjs/components/calendar/calendar.js +9 -1
  12. package/2x/cjs/components/capsule-tabs/index.d.ts +0 -1
  13. package/2x/cjs/components/cascade-picker/index.d.ts +0 -1
  14. package/2x/cjs/components/cascader/index.d.ts +0 -1
  15. package/2x/cjs/components/cascader-view/index.d.ts +0 -1
  16. package/2x/cjs/components/check-list/index.d.ts +0 -1
  17. package/2x/cjs/components/checkbox/group-context.d.ts +0 -1
  18. package/2x/cjs/components/checkbox/index.d.ts +0 -1
  19. package/2x/cjs/components/collapse/index.d.ts +0 -1
  20. package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +2 -3
  21. package/2x/cjs/components/date-picker/date-picker-date-utils.js +14 -12
  22. package/2x/cjs/components/date-picker/date-picker-utils.d.ts +2 -3
  23. package/2x/cjs/components/date-picker/date-picker-utils.js +11 -12
  24. package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +0 -1
  25. package/2x/cjs/components/date-picker/date-picker-week-utils.js +0 -4
  26. package/2x/cjs/components/date-picker/date-picker.d.ts +20 -16
  27. package/2x/cjs/components/date-picker/date-picker.js +12 -3
  28. package/2x/cjs/components/date-picker/index.d.ts +10 -9
  29. package/2x/cjs/components/date-picker/index.js +3 -1
  30. package/2x/cjs/components/date-picker/prompt.d.ts +2 -1
  31. package/2x/cjs/components/date-picker/util.d.ts +4 -0
  32. package/2x/cjs/components/date-picker/util.js +8 -0
  33. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  34. package/2x/cjs/components/date-picker-view/date-picker-view.js +7 -3
  35. package/2x/cjs/components/date-picker-view/useRenderLabel.d.ts +2 -0
  36. package/2x/cjs/components/date-picker-view/useRenderLabel.js +29 -0
  37. package/2x/cjs/components/dialog/index.d.ts +0 -1
  38. package/2x/cjs/components/dropdown/index.d.ts +0 -1
  39. package/2x/cjs/components/error-block/error-block.d.ts +0 -1
  40. package/2x/cjs/components/error-block/images/busy.d.ts +0 -1
  41. package/2x/cjs/components/error-block/images/default.d.ts +0 -1
  42. package/2x/cjs/components/error-block/images/disconnected.d.ts +0 -1
  43. package/2x/cjs/components/error-block/images/empty.d.ts +0 -1
  44. package/2x/cjs/components/floating-bubble/floating-bubble.d.ts +8 -0
  45. package/2x/cjs/components/floating-bubble/floating-bubble.js +25 -5
  46. package/2x/cjs/components/form/form.d.ts +1 -1
  47. package/2x/cjs/components/form/index.d.ts +0 -1
  48. package/2x/cjs/components/grid/index.d.ts +0 -1
  49. package/2x/cjs/components/image-uploader/image-uploader.css +16 -1
  50. package/2x/cjs/components/image-uploader/image-uploader.d.ts +4 -1
  51. package/2x/cjs/components/image-uploader/image-uploader.js +52 -12
  52. package/2x/cjs/components/image-uploader/preview-item.d.ts +2 -1
  53. package/2x/cjs/components/image-uploader/preview-item.js +5 -7
  54. package/2x/cjs/components/image-viewer/index.d.ts +0 -1
  55. package/2x/cjs/components/index-bar/index.d.ts +0 -1
  56. package/2x/cjs/components/jumbo-tabs/index.d.ts +0 -1
  57. package/2x/cjs/components/list/index.d.ts +0 -1
  58. package/2x/cjs/components/mask/mask.d.ts +1 -1
  59. package/2x/cjs/components/mask/mask.js +6 -2
  60. package/2x/cjs/components/modal/index.d.ts +0 -1
  61. package/2x/cjs/components/notice-bar/notice-bar.css +13 -4
  62. package/2x/cjs/components/notice-bar/notice-bar.d.ts +10 -8
  63. package/2x/cjs/components/notice-bar/notice-bar.js +5 -2
  64. package/2x/cjs/components/popover/index.d.ts +0 -1
  65. package/2x/cjs/components/radio/group-context.d.ts +0 -1
  66. package/2x/cjs/components/radio/index.d.ts +0 -1
  67. package/2x/cjs/components/result-page/index.d.ts +0 -1
  68. package/2x/cjs/components/side-bar/index.d.ts +0 -1
  69. package/2x/cjs/components/skeleton/index.d.ts +0 -1
  70. package/2x/cjs/components/slider/slider.js +8 -3
  71. package/2x/cjs/components/stepper/stepper.d.ts +23 -14
  72. package/2x/cjs/components/stepper/stepper.js +111 -54
  73. package/2x/cjs/components/steps/index.d.ts +0 -1
  74. package/2x/cjs/components/swiper/index.d.ts +0 -1
  75. package/2x/cjs/components/tab-bar/index.d.ts +0 -1
  76. package/2x/cjs/components/tabs/index.d.ts +0 -1
  77. package/2x/cjs/components/tree-select/index.d.ts +0 -1
  78. package/2x/cjs/components/water-mark/water-mark.d.ts +1 -1
  79. package/2x/cjs/components/water-mark/water-mark.js +5 -1
  80. package/2x/cjs/locales/base.d.ts +3 -0
  81. package/2x/cjs/locales/base.js +3 -0
  82. package/2x/cjs/locales/en-US.d.ts +3 -0
  83. package/2x/cjs/locales/es-ES.d.ts +3 -0
  84. package/2x/cjs/locales/fa-IR.d.ts +3 -0
  85. package/2x/cjs/locales/fr-FR.d.ts +3 -0
  86. package/2x/cjs/locales/id-ID.d.ts +3 -0
  87. package/2x/cjs/locales/ja-JP.d.ts +3 -0
  88. package/2x/cjs/locales/kk-KZ.d.ts +3 -0
  89. package/2x/cjs/locales/ko-KR.d.ts +3 -0
  90. package/2x/cjs/locales/zh-CN.d.ts +3 -0
  91. package/2x/cjs/locales/zh-CN.js +3 -0
  92. package/2x/cjs/locales/zh-HK.d.ts +3 -0
  93. package/2x/cjs/locales/zh-TW.d.ts +3 -0
  94. package/2x/cjs/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  95. package/2x/cjs/utils/use-ref-state.d.ts +0 -1
  96. package/2x/es/components/action-sheet/index.d.ts +0 -1
  97. package/2x/es/components/badge/index.d.ts +0 -1
  98. package/2x/es/components/calendar/calendar.js +9 -1
  99. package/2x/es/components/capsule-tabs/index.d.ts +0 -1
  100. package/2x/es/components/cascade-picker/index.d.ts +0 -1
  101. package/2x/es/components/cascader/index.d.ts +0 -1
  102. package/2x/es/components/cascader-view/index.d.ts +0 -1
  103. package/2x/es/components/check-list/index.d.ts +0 -1
  104. package/2x/es/components/checkbox/group-context.d.ts +0 -1
  105. package/2x/es/components/checkbox/index.d.ts +0 -1
  106. package/2x/es/components/collapse/index.d.ts +0 -1
  107. package/2x/es/components/date-picker/date-picker-date-utils.d.ts +2 -3
  108. package/2x/es/components/date-picker/date-picker-date-utils.js +14 -11
  109. package/2x/es/components/date-picker/date-picker-utils.d.ts +2 -3
  110. package/2x/es/components/date-picker/date-picker-utils.js +9 -9
  111. package/2x/es/components/date-picker/date-picker-week-utils.d.ts +0 -1
  112. package/2x/es/components/date-picker/date-picker-week-utils.js +0 -3
  113. package/2x/es/components/date-picker/date-picker.d.ts +20 -16
  114. package/2x/es/components/date-picker/date-picker.js +13 -4
  115. package/2x/es/components/date-picker/index.d.ts +10 -9
  116. package/2x/es/components/date-picker/index.js +3 -1
  117. package/2x/es/components/date-picker/prompt.d.ts +2 -1
  118. package/2x/es/components/date-picker/util.d.ts +4 -0
  119. package/2x/es/components/date-picker/util.js +1 -0
  120. package/2x/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  121. package/2x/es/components/date-picker-view/date-picker-view.js +8 -4
  122. package/2x/es/components/date-picker-view/useRenderLabel.d.ts +2 -0
  123. package/2x/es/components/date-picker-view/useRenderLabel.js +23 -0
  124. package/2x/es/components/dialog/index.d.ts +0 -1
  125. package/2x/es/components/dropdown/index.d.ts +0 -1
  126. package/2x/es/components/error-block/error-block.d.ts +0 -1
  127. package/2x/es/components/error-block/images/busy.d.ts +0 -1
  128. package/2x/es/components/error-block/images/default.d.ts +0 -1
  129. package/2x/es/components/error-block/images/disconnected.d.ts +0 -1
  130. package/2x/es/components/error-block/images/empty.d.ts +0 -1
  131. package/2x/es/components/floating-bubble/floating-bubble.d.ts +8 -0
  132. package/2x/es/components/floating-bubble/floating-bubble.js +26 -6
  133. package/2x/es/components/form/form.d.ts +1 -1
  134. package/2x/es/components/form/index.d.ts +0 -1
  135. package/2x/es/components/grid/index.d.ts +0 -1
  136. package/2x/es/components/image-uploader/image-uploader.css +16 -1
  137. package/2x/es/components/image-uploader/image-uploader.d.ts +4 -1
  138. package/2x/es/components/image-uploader/image-uploader.js +54 -14
  139. package/2x/es/components/image-uploader/preview-item.d.ts +2 -1
  140. package/2x/es/components/image-uploader/preview-item.js +6 -8
  141. package/2x/es/components/image-viewer/index.d.ts +0 -1
  142. package/2x/es/components/index-bar/index.d.ts +0 -1
  143. package/2x/es/components/jumbo-tabs/index.d.ts +0 -1
  144. package/2x/es/components/list/index.d.ts +0 -1
  145. package/2x/es/components/mask/mask.d.ts +1 -1
  146. package/2x/es/components/mask/mask.js +6 -2
  147. package/2x/es/components/modal/index.d.ts +0 -1
  148. package/2x/es/components/notice-bar/notice-bar.css +13 -4
  149. package/2x/es/components/notice-bar/notice-bar.d.ts +10 -8
  150. package/2x/es/components/notice-bar/notice-bar.js +5 -2
  151. package/2x/es/components/popover/index.d.ts +0 -1
  152. package/2x/es/components/radio/group-context.d.ts +0 -1
  153. package/2x/es/components/radio/index.d.ts +0 -1
  154. package/2x/es/components/result-page/index.d.ts +0 -1
  155. package/2x/es/components/side-bar/index.d.ts +0 -1
  156. package/2x/es/components/skeleton/index.d.ts +0 -1
  157. package/2x/es/components/slider/slider.js +8 -3
  158. package/2x/es/components/stepper/stepper.d.ts +23 -14
  159. package/2x/es/components/stepper/stepper.js +110 -52
  160. package/2x/es/components/steps/index.d.ts +0 -1
  161. package/2x/es/components/swiper/index.d.ts +0 -1
  162. package/2x/es/components/tab-bar/index.d.ts +0 -1
  163. package/2x/es/components/tabs/index.d.ts +0 -1
  164. package/2x/es/components/tree-select/index.d.ts +0 -1
  165. package/2x/es/components/water-mark/water-mark.d.ts +1 -1
  166. package/2x/es/components/water-mark/water-mark.js +5 -1
  167. package/2x/es/locales/base.d.ts +3 -0
  168. package/2x/es/locales/base.js +3 -0
  169. package/2x/es/locales/en-US.d.ts +3 -0
  170. package/2x/es/locales/es-ES.d.ts +3 -0
  171. package/2x/es/locales/fa-IR.d.ts +3 -0
  172. package/2x/es/locales/fr-FR.d.ts +3 -0
  173. package/2x/es/locales/id-ID.d.ts +3 -0
  174. package/2x/es/locales/ja-JP.d.ts +3 -0
  175. package/2x/es/locales/kk-KZ.d.ts +3 -0
  176. package/2x/es/locales/ko-KR.d.ts +3 -0
  177. package/2x/es/locales/zh-CN.d.ts +3 -0
  178. package/2x/es/locales/zh-CN.js +3 -0
  179. package/2x/es/locales/zh-HK.d.ts +3 -0
  180. package/2x/es/locales/zh-TW.d.ts +3 -0
  181. package/2x/es/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  182. package/2x/es/utils/use-ref-state.d.ts +0 -1
  183. package/2x/package.json +11 -10
  184. package/README.md +6 -22
  185. package/bundle/antd-mobile.cjs.development.js +1342 -1142
  186. package/bundle/antd-mobile.cjs.js +9 -8
  187. package/bundle/antd-mobile.compatible.umd.js +1 -1
  188. package/bundle/antd-mobile.es.development.js +1186 -986
  189. package/bundle/antd-mobile.es.js +8576 -8366
  190. package/bundle/antd-mobile.umd.development.js +1342 -1142
  191. package/bundle/antd-mobile.umd.js +9 -8
  192. package/bundle/style.css +1 -1
  193. package/cjs/components/action-sheet/index.d.ts +0 -1
  194. package/cjs/components/badge/index.d.ts +0 -1
  195. package/cjs/components/calendar/calendar.js +9 -1
  196. package/cjs/components/capsule-tabs/index.d.ts +0 -1
  197. package/cjs/components/cascade-picker/index.d.ts +0 -1
  198. package/cjs/components/cascader/index.d.ts +0 -1
  199. package/cjs/components/cascader-view/index.d.ts +0 -1
  200. package/cjs/components/check-list/index.d.ts +0 -1
  201. package/cjs/components/checkbox/group-context.d.ts +0 -1
  202. package/cjs/components/checkbox/index.d.ts +0 -1
  203. package/cjs/components/collapse/index.d.ts +0 -1
  204. package/cjs/components/date-picker/date-picker-date-utils.d.ts +2 -3
  205. package/cjs/components/date-picker/date-picker-date-utils.js +14 -12
  206. package/cjs/components/date-picker/date-picker-utils.d.ts +2 -3
  207. package/cjs/components/date-picker/date-picker-utils.js +11 -12
  208. package/cjs/components/date-picker/date-picker-week-utils.d.ts +0 -1
  209. package/cjs/components/date-picker/date-picker-week-utils.js +0 -4
  210. package/cjs/components/date-picker/date-picker.d.ts +20 -16
  211. package/cjs/components/date-picker/date-picker.js +12 -3
  212. package/cjs/components/date-picker/index.d.ts +10 -9
  213. package/cjs/components/date-picker/index.js +3 -1
  214. package/cjs/components/date-picker/prompt.d.ts +2 -1
  215. package/cjs/components/date-picker/util.d.ts +4 -0
  216. package/cjs/components/date-picker/util.js +8 -0
  217. package/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  218. package/cjs/components/date-picker-view/date-picker-view.js +7 -3
  219. package/cjs/components/date-picker-view/useRenderLabel.d.ts +2 -0
  220. package/cjs/components/date-picker-view/useRenderLabel.js +29 -0
  221. package/cjs/components/dialog/index.d.ts +0 -1
  222. package/cjs/components/dropdown/index.d.ts +0 -1
  223. package/cjs/components/error-block/error-block.d.ts +0 -1
  224. package/cjs/components/error-block/images/busy.d.ts +0 -1
  225. package/cjs/components/error-block/images/default.d.ts +0 -1
  226. package/cjs/components/error-block/images/disconnected.d.ts +0 -1
  227. package/cjs/components/error-block/images/empty.d.ts +0 -1
  228. package/cjs/components/floating-bubble/floating-bubble.d.ts +8 -0
  229. package/cjs/components/floating-bubble/floating-bubble.js +25 -5
  230. package/cjs/components/form/form.d.ts +1 -1
  231. package/cjs/components/form/index.d.ts +0 -1
  232. package/cjs/components/grid/index.d.ts +0 -1
  233. package/cjs/components/image-uploader/image-uploader.css +15 -1
  234. package/cjs/components/image-uploader/image-uploader.d.ts +4 -1
  235. package/cjs/components/image-uploader/image-uploader.js +52 -12
  236. package/cjs/components/image-uploader/preview-item.d.ts +2 -1
  237. package/cjs/components/image-uploader/preview-item.js +5 -7
  238. package/cjs/components/image-viewer/index.d.ts +0 -1
  239. package/cjs/components/index-bar/index.d.ts +0 -1
  240. package/cjs/components/jumbo-tabs/index.d.ts +0 -1
  241. package/cjs/components/list/index.d.ts +0 -1
  242. package/cjs/components/mask/mask.d.ts +1 -1
  243. package/cjs/components/mask/mask.js +6 -2
  244. package/cjs/components/modal/index.d.ts +0 -1
  245. package/cjs/components/notice-bar/notice-bar.css +11 -4
  246. package/cjs/components/notice-bar/notice-bar.d.ts +10 -8
  247. package/cjs/components/notice-bar/notice-bar.js +5 -2
  248. package/cjs/components/popover/index.d.ts +0 -1
  249. package/cjs/components/radio/group-context.d.ts +0 -1
  250. package/cjs/components/radio/index.d.ts +0 -1
  251. package/cjs/components/result-page/index.d.ts +0 -1
  252. package/cjs/components/side-bar/index.d.ts +0 -1
  253. package/cjs/components/skeleton/index.d.ts +0 -1
  254. package/cjs/components/slider/slider.js +8 -3
  255. package/cjs/components/stepper/stepper.d.ts +23 -14
  256. package/cjs/components/stepper/stepper.js +111 -54
  257. package/cjs/components/steps/index.d.ts +0 -1
  258. package/cjs/components/swiper/index.d.ts +0 -1
  259. package/cjs/components/tab-bar/index.d.ts +0 -1
  260. package/cjs/components/tabs/index.d.ts +0 -1
  261. package/cjs/components/tree-select/index.d.ts +0 -1
  262. package/cjs/components/water-mark/water-mark.d.ts +1 -1
  263. package/cjs/components/water-mark/water-mark.js +5 -1
  264. package/cjs/locales/base.d.ts +3 -0
  265. package/cjs/locales/base.js +3 -0
  266. package/cjs/locales/en-US.d.ts +3 -0
  267. package/cjs/locales/es-ES.d.ts +3 -0
  268. package/cjs/locales/fa-IR.d.ts +3 -0
  269. package/cjs/locales/fr-FR.d.ts +3 -0
  270. package/cjs/locales/id-ID.d.ts +3 -0
  271. package/cjs/locales/ja-JP.d.ts +3 -0
  272. package/cjs/locales/kk-KZ.d.ts +3 -0
  273. package/cjs/locales/ko-KR.d.ts +3 -0
  274. package/cjs/locales/zh-CN.d.ts +3 -0
  275. package/cjs/locales/zh-CN.js +3 -0
  276. package/cjs/locales/zh-HK.d.ts +3 -0
  277. package/cjs/locales/zh-TW.d.ts +3 -0
  278. package/cjs/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  279. package/cjs/utils/use-ref-state.d.ts +0 -1
  280. package/es/components/action-sheet/index.d.ts +0 -1
  281. package/es/components/badge/index.d.ts +0 -1
  282. package/es/components/calendar/calendar.js +9 -1
  283. package/es/components/capsule-tabs/index.d.ts +0 -1
  284. package/es/components/cascade-picker/index.d.ts +0 -1
  285. package/es/components/cascader/index.d.ts +0 -1
  286. package/es/components/cascader-view/index.d.ts +0 -1
  287. package/es/components/check-list/index.d.ts +0 -1
  288. package/es/components/checkbox/group-context.d.ts +0 -1
  289. package/es/components/checkbox/index.d.ts +0 -1
  290. package/es/components/collapse/index.d.ts +0 -1
  291. package/es/components/date-picker/date-picker-date-utils.d.ts +2 -3
  292. package/es/components/date-picker/date-picker-date-utils.js +14 -11
  293. package/es/components/date-picker/date-picker-utils.d.ts +2 -3
  294. package/es/components/date-picker/date-picker-utils.js +9 -9
  295. package/es/components/date-picker/date-picker-week-utils.d.ts +0 -1
  296. package/es/components/date-picker/date-picker-week-utils.js +0 -3
  297. package/es/components/date-picker/date-picker.d.ts +20 -16
  298. package/es/components/date-picker/date-picker.js +13 -4
  299. package/es/components/date-picker/index.d.ts +10 -9
  300. package/es/components/date-picker/index.js +3 -1
  301. package/es/components/date-picker/prompt.d.ts +2 -1
  302. package/es/components/date-picker/util.d.ts +4 -0
  303. package/es/components/date-picker/util.js +1 -0
  304. package/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  305. package/es/components/date-picker-view/date-picker-view.js +8 -4
  306. package/es/components/date-picker-view/useRenderLabel.d.ts +2 -0
  307. package/es/components/date-picker-view/useRenderLabel.js +23 -0
  308. package/es/components/dialog/index.d.ts +0 -1
  309. package/es/components/dropdown/index.d.ts +0 -1
  310. package/es/components/error-block/error-block.d.ts +0 -1
  311. package/es/components/error-block/images/busy.d.ts +0 -1
  312. package/es/components/error-block/images/default.d.ts +0 -1
  313. package/es/components/error-block/images/disconnected.d.ts +0 -1
  314. package/es/components/error-block/images/empty.d.ts +0 -1
  315. package/es/components/floating-bubble/floating-bubble.d.ts +8 -0
  316. package/es/components/floating-bubble/floating-bubble.js +26 -6
  317. package/es/components/form/form.d.ts +1 -1
  318. package/es/components/form/index.d.ts +0 -1
  319. package/es/components/grid/index.d.ts +0 -1
  320. package/es/components/image-uploader/image-uploader.css +15 -1
  321. package/es/components/image-uploader/image-uploader.d.ts +4 -1
  322. package/es/components/image-uploader/image-uploader.js +54 -14
  323. package/es/components/image-uploader/preview-item.d.ts +2 -1
  324. package/es/components/image-uploader/preview-item.js +6 -8
  325. package/es/components/image-viewer/index.d.ts +0 -1
  326. package/es/components/index-bar/index.d.ts +0 -1
  327. package/es/components/jumbo-tabs/index.d.ts +0 -1
  328. package/es/components/list/index.d.ts +0 -1
  329. package/es/components/mask/mask.d.ts +1 -1
  330. package/es/components/mask/mask.js +6 -2
  331. package/es/components/modal/index.d.ts +0 -1
  332. package/es/components/notice-bar/notice-bar.css +11 -4
  333. package/es/components/notice-bar/notice-bar.d.ts +10 -8
  334. package/es/components/notice-bar/notice-bar.js +5 -2
  335. package/es/components/popover/index.d.ts +0 -1
  336. package/es/components/radio/group-context.d.ts +0 -1
  337. package/es/components/radio/index.d.ts +0 -1
  338. package/es/components/result-page/index.d.ts +0 -1
  339. package/es/components/side-bar/index.d.ts +0 -1
  340. package/es/components/skeleton/index.d.ts +0 -1
  341. package/es/components/slider/slider.js +8 -3
  342. package/es/components/stepper/stepper.d.ts +23 -14
  343. package/es/components/stepper/stepper.js +110 -52
  344. package/es/components/steps/index.d.ts +0 -1
  345. package/es/components/swiper/index.d.ts +0 -1
  346. package/es/components/tab-bar/index.d.ts +0 -1
  347. package/es/components/tabs/index.d.ts +0 -1
  348. package/es/components/tree-select/index.d.ts +0 -1
  349. package/es/components/water-mark/water-mark.d.ts +1 -1
  350. package/es/components/water-mark/water-mark.js +5 -1
  351. package/es/locales/base.d.ts +3 -0
  352. package/es/locales/base.js +3 -0
  353. package/es/locales/en-US.d.ts +3 -0
  354. package/es/locales/es-ES.d.ts +3 -0
  355. package/es/locales/fa-IR.d.ts +3 -0
  356. package/es/locales/fr-FR.d.ts +3 -0
  357. package/es/locales/id-ID.d.ts +3 -0
  358. package/es/locales/ja-JP.d.ts +3 -0
  359. package/es/locales/kk-KZ.d.ts +3 -0
  360. package/es/locales/ko-KR.d.ts +3 -0
  361. package/es/locales/zh-CN.d.ts +3 -0
  362. package/es/locales/zh-CN.js +3 -0
  363. package/es/locales/zh-HK.d.ts +3 -0
  364. package/es/locales/zh-TW.d.ts +3 -0
  365. package/es/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  366. package/es/utils/use-ref-state.d.ts +0 -1
  367. package/package.json +11 -10
  368. package/umd/antd-mobile.js +1 -1
  369. package/2x/cjs/components/image/test/image.test.d.ts +0 -1
  370. package/2x/cjs/components/image/test/image.test.js +0 -73
  371. package/2x/es/components/image/test/image.test.d.ts +0 -1
  372. package/2x/es/components/image/test/image.test.js +0 -70
  373. package/cjs/components/image/test/image.test.d.ts +0 -1
  374. package/cjs/components/image/test/image.test.js +0 -73
  375. package/es/components/image/test/image.test.d.ts +0 -1
  376. package/es/components/image/test/image.test.js +0 -70
@@ -1,5 +1,6 @@
1
1
  import * as dateUtils from './date-picker-date-utils';
2
2
  import * as weekUtils from './date-picker-week-utils';
3
+ import { TILL_NOW } from './util';
3
4
  const precisionLengthRecord = {
4
5
  year: 1,
5
6
  month: 2,
@@ -18,23 +19,22 @@ export const convertDateToStringArray = (date, precision) => {
18
19
  }
19
20
  };
20
21
  export const convertStringArrayToDate = (value, precision) => {
22
+ // Special case for DATE_NOW
23
+ if ((value === null || value === void 0 ? void 0 : value[0]) === TILL_NOW) {
24
+ const now = new Date();
25
+ now.tillNow = true;
26
+ return now;
27
+ }
21
28
  if (precision.includes('week')) {
22
29
  return weekUtils.convertStringArrayToDate(value);
23
30
  } else {
24
31
  return dateUtils.convertStringArrayToDate(value);
25
32
  }
26
33
  };
27
- export const generateDatePickerColumns = (selected, min, max, precision, renderLabel, filter) => {
34
+ export const generateDatePickerColumns = (selected, min, max, precision, renderLabel, filter, tillNow) => {
28
35
  if (precision.startsWith('week')) {
29
36
  return weekUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter);
30
37
  } else {
31
- return dateUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter);
32
- }
33
- };
34
- export const defaultRenderLabel = (precision, data) => {
35
- if (precision.includes('week')) {
36
- return weekUtils.defaultRenderLabel(precision, data);
37
- } else {
38
- return dateUtils.defaultRenderLabel(precision, data);
38
+ return dateUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter, tillNow);
39
39
  }
40
40
  };
@@ -2,7 +2,6 @@ import { ReactNode } from 'react';
2
2
  import { PickerColumn } from '../picker';
3
3
  import type { DatePickerFilter } from './date-picker-utils';
4
4
  export declare type WeekPrecision = 'year' | 'week' | 'week-day';
5
- export declare function defaultRenderLabel(type: WeekPrecision, data: number): string;
6
5
  export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: WeekPrecision, renderLabel: (type: WeekPrecision, data: number) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
7
6
  export declare function convertDateToStringArray(date: Date | undefined | null): string[];
8
7
  export declare function convertStringArrayToDate(value: (string | null | undefined)[]): Date;
@@ -10,9 +10,6 @@ const precisionRankRecord = {
10
10
  week: 1,
11
11
  'week-day': 2
12
12
  };
13
- export function defaultRenderLabel(type, data) {
14
- return data.toString();
15
- }
16
13
  export function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter) {
17
14
  const ret = [];
18
15
  const minYear = min.getFullYear();
@@ -2,32 +2,36 @@ import React, { ReactNode } from 'react';
2
2
  import type { PickerProps, PickerRef, PickerActions } from '../picker';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  import type { Precision, DatePickerFilter } from './date-picker-utils';
5
+ import type { RenderLabel } from '../date-picker-view/date-picker-view';
6
+ import type { PickerDate } from './util';
5
7
  export declare type DatePickerRef = PickerRef;
6
8
  export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' | 'closeOnMaskClick' | 'visible' | 'confirmText' | 'cancelText' | 'getContainer' | 'loading' | 'loadingContent' | 'afterShow' | 'afterClose' | 'onClick' | 'title' | 'stopPropagation' | 'style' | 'mouseWheel' | 'forceRender' | 'destroyOnClose'> & {
7
- value?: Date | null;
8
- defaultValue?: Date | null;
9
- onSelect?: (value: Date) => void;
10
- onConfirm?: (value: Date) => void;
11
- min?: Date;
12
- max?: Date;
9
+ value?: PickerDate | null;
10
+ defaultValue?: PickerDate | null;
11
+ onSelect?: (value: PickerDate) => void;
12
+ onConfirm?: (value: PickerDate) => void;
13
+ min?: PickerDate;
14
+ max?: PickerDate;
13
15
  precision?: Precision;
14
- children?: (value: Date | null, actions: PickerActions) => ReactNode;
15
- renderLabel?: (type: Precision, data: number) => ReactNode;
16
+ children?: (value: PickerDate | null, actions: PickerActions) => ReactNode;
17
+ renderLabel?: RenderLabel;
16
18
  filter?: DatePickerFilter;
19
+ tillNow?: boolean;
17
20
  } & NativeProps;
18
21
  export declare const DatePicker: React.ForwardRefExoticComponent<Pick<PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "mouseWheel" | "loadingContent" | "confirmText"> & {
19
- value?: Date | null | undefined;
20
- defaultValue?: Date | null | undefined;
21
- onSelect?: ((value: Date) => void) | undefined;
22
- onConfirm?: ((value: Date) => void) | undefined;
23
- min?: Date | undefined;
24
- max?: Date | undefined;
22
+ value?: PickerDate | null | undefined;
23
+ defaultValue?: PickerDate | null | undefined;
24
+ onSelect?: ((value: PickerDate) => void) | undefined;
25
+ onConfirm?: ((value: PickerDate) => void) | undefined;
26
+ min?: PickerDate | undefined;
27
+ max?: PickerDate | undefined;
25
28
  precision?: Precision | undefined;
26
- children?: ((value: Date | null, actions: PickerActions) => ReactNode) | undefined;
27
- renderLabel?: ((type: Precision, data: number) => ReactNode) | undefined;
29
+ children?: ((value: PickerDate | null, actions: PickerActions) => ReactNode) | undefined;
30
+ renderLabel?: RenderLabel | undefined;
28
31
  filter?: Partial<Record<Precision, (val: number, extend: {
29
32
  date: Date;
30
33
  }) => boolean>> | undefined;
34
+ tillNow?: boolean | undefined;
31
35
  } & {
32
36
  className?: string | undefined;
33
37
  style?: (React.CSSProperties & Partial<Record<never, string>>) | undefined;
@@ -4,18 +4,22 @@ import Picker from '../picker';
4
4
  import { withNativeProps } from '../../utils/native-props';
5
5
  import { mergeProps } from '../../utils/with-default-props';
6
6
  import { usePropsValue } from '../../utils/use-props-value';
7
- import { convertDateToStringArray, convertStringArrayToDate, generateDatePickerColumns, defaultRenderLabel } from './date-picker-utils';
7
+ import { convertDateToStringArray, convertStringArrayToDate, generateDatePickerColumns } from './date-picker-utils';
8
8
  import { bound } from '../../utils/bound';
9
+ import useRenderLabel from '../date-picker-view/useRenderLabel';
10
+ import { TILL_NOW } from './util';
9
11
  const thisYear = new Date().getFullYear();
10
12
  const defaultProps = {
11
13
  min: new Date(new Date().setFullYear(thisYear - 10)),
12
14
  max: new Date(new Date().setFullYear(thisYear + 10)),
13
15
  precision: 'day',
14
- renderLabel: defaultRenderLabel,
15
16
  defaultValue: null
16
17
  };
17
18
  export const DatePicker = forwardRef((p, ref) => {
18
19
  const props = mergeProps(defaultProps, p);
20
+ const {
21
+ renderLabel
22
+ } = props;
19
23
  const [value, setValue] = usePropsValue({
20
24
  value: props.value,
21
25
  defaultValue: props.defaultValue,
@@ -26,20 +30,25 @@ export const DatePicker = forwardRef((p, ref) => {
26
30
  }
27
31
  });
28
32
  const now = useMemo(() => new Date(), []);
33
+ const mergedRenderLabel = useRenderLabel(renderLabel);
29
34
  const pickerValue = useMemo(() => {
30
35
  let date = value !== null && value !== void 0 ? value : now;
36
+ if (date.tillNow) {
37
+ return [TILL_NOW];
38
+ }
31
39
  date = new Date(bound(date.getTime(), props.min.getTime(), props.max.getTime()));
32
40
  return convertDateToStringArray(date, props.precision);
33
41
  }, [value, props.precision, props.min, props.max]);
34
42
  const onConfirm = useCallback(val => {
35
- setValue(convertStringArrayToDate(val, props.precision), true);
43
+ const date = convertStringArrayToDate(val, props.precision);
44
+ setValue(date, true);
36
45
  }, [setValue, props.precision]);
37
46
  const onSelect = useMemoizedFn(val => {
38
47
  var _a;
39
48
  const date = convertStringArrayToDate(val, props.precision);
40
49
  (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, date);
41
50
  });
42
- const columns = useCallback(selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, props.renderLabel, props.filter), [props.min, props.max, props.precision, props.renderLabel]);
51
+ const columns = useCallback(selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter, props.tillNow), [props.min, props.max, props.precision, mergedRenderLabel, props.tillNow]);
43
52
  return withNativeProps(props, React.createElement(Picker, {
44
53
  ref: ref,
45
54
  columns: columns,
@@ -1,26 +1,27 @@
1
- /// <reference types="react" />
2
1
  import './date-picker.less';
3
2
  import { prompt } from './prompt';
4
3
  export type { DatePickerProps, DatePickerRef } from './date-picker';
5
4
  export type { DatePickerFilter } from './date-picker-utils';
6
5
  declare const _default: import("react").ForwardRefExoticComponent<Pick<import("../picker").PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "mouseWheel" | "loadingContent" | "confirmText"> & {
7
- value?: Date | null | undefined;
8
- defaultValue?: Date | null | undefined;
9
- onSelect?: ((value: Date) => void) | undefined;
10
- onConfirm?: ((value: Date) => void) | undefined;
11
- min?: Date | undefined;
12
- max?: Date | undefined;
6
+ value?: import("./util").PickerDate | null | undefined;
7
+ defaultValue?: import("./util").PickerDate | null | undefined;
8
+ onSelect?: ((value: import("./util").PickerDate) => void) | undefined;
9
+ onConfirm?: ((value: import("./util").PickerDate) => void) | undefined;
10
+ min?: import("./util").PickerDate | undefined;
11
+ max?: import("./util").PickerDate | undefined;
13
12
  precision?: import("./date-picker-utils").Precision | undefined;
14
- children?: ((value: Date | null, actions: import("../picker").PickerActions) => import("react").ReactNode) | undefined;
15
- renderLabel?: ((type: import("./date-picker-utils").Precision, data: number) => import("react").ReactNode) | undefined;
13
+ children?: ((value: import("./util").PickerDate | null, actions: import("../picker").PickerActions) => import("react").ReactNode) | undefined;
14
+ renderLabel?: import("../date-picker-view/date-picker-view").RenderLabel | undefined;
16
15
  filter?: Partial<Record<import("./date-picker-utils").Precision, (val: number, extend: {
17
16
  date: Date;
18
17
  }) => boolean>> | undefined;
18
+ tillNow?: boolean | undefined;
19
19
  } & {
20
20
  className?: string | undefined;
21
21
  style?: (import("react").CSSProperties & Partial<Record<never, string>>) | undefined;
22
22
  tabIndex?: number | undefined;
23
23
  } & import("react").AriaAttributes & import("react").RefAttributes<import("../picker").PickerActions>> & {
24
24
  prompt: typeof prompt;
25
+ DATE_NOW: string;
25
26
  };
26
27
  export default _default;
@@ -1,7 +1,9 @@
1
1
  import "./date-picker.css";
2
2
  import { attachPropertiesToComponent } from '../../utils/attach-properties-to-component';
3
3
  import { DatePicker } from './date-picker';
4
+ import { TILL_NOW } from './util';
4
5
  import { prompt } from './prompt';
5
6
  export default attachPropertiesToComponent(DatePicker, {
6
- prompt
7
+ prompt,
8
+ DATE_NOW: TILL_NOW
7
9
  });
@@ -1,2 +1,3 @@
1
1
  import { DatePickerProps } from './date-picker';
2
- export declare function prompt(props: Omit<DatePickerProps, 'value' | 'visible' | 'children'>): Promise<Date | null>;
2
+ import type { PickerDate } from './util';
3
+ export declare function prompt(props: Omit<DatePickerProps, 'value' | 'visible' | 'children'>): Promise<PickerDate | null>;
@@ -0,0 +1,4 @@
1
+ export declare const TILL_NOW = "TILL_NOW";
2
+ export declare type PickerDate = Date & {
3
+ tillNow?: boolean;
4
+ };
@@ -0,0 +1 @@
1
+ export const TILL_NOW = 'TILL_NOW';
@@ -2,6 +2,7 @@ import { FC, ReactNode } from 'react';
2
2
  import type { PickerViewProps } from '../picker-view';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  import type { Precision, DatePickerFilter } from '../date-picker/date-picker-utils';
5
+ export declare type RenderLabel = (type: Precision | 'now', data: number) => ReactNode;
5
6
  export declare type DatePickerViewProps = Pick<PickerViewProps, 'style' | 'mouseWheel' | 'loading' | 'loadingContent'> & {
6
7
  value?: Date;
7
8
  defaultValue?: Date;
@@ -9,7 +10,7 @@ export declare type DatePickerViewProps = Pick<PickerViewProps, 'style' | 'mouse
9
10
  min?: Date;
10
11
  max?: Date;
11
12
  precision?: Precision;
12
- renderLabel?: (type: Precision, data: number) => ReactNode;
13
+ renderLabel?: RenderLabel;
13
14
  filter?: DatePickerFilter;
14
15
  } & NativeProps;
15
16
  export declare const DatePickerView: FC<DatePickerViewProps>;
@@ -3,21 +3,25 @@ import PickerView from '../picker-view';
3
3
  import { withNativeProps } from '../../utils/native-props';
4
4
  import { mergeProps } from '../../utils/with-default-props';
5
5
  import { usePropsValue } from '../../utils/use-props-value';
6
- import { generateDatePickerColumns, convertDateToStringArray, convertStringArrayToDate, defaultRenderLabel } from '../date-picker/date-picker-utils';
6
+ import { generateDatePickerColumns, convertDateToStringArray, convertStringArrayToDate } from '../date-picker/date-picker-utils';
7
+ import useRenderLabel from './useRenderLabel';
7
8
  const thisYear = new Date().getFullYear();
8
9
  const defaultProps = {
9
10
  min: new Date(new Date().setFullYear(thisYear - 10)),
10
11
  max: new Date(new Date().setFullYear(thisYear + 10)),
11
- precision: 'day',
12
- renderLabel: defaultRenderLabel
12
+ precision: 'day'
13
13
  };
14
14
  export const DatePickerView = p => {
15
15
  var _a;
16
16
  const props = mergeProps(defaultProps, p);
17
+ const {
18
+ renderLabel
19
+ } = props;
17
20
  const [value, setValue] = usePropsValue({
18
21
  value: props.value,
19
22
  defaultValue: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null
20
23
  });
24
+ const mergedRenderLabel = useRenderLabel(renderLabel);
21
25
  const pickerValue = useMemo(() => convertDateToStringArray(value, props.precision), [value, props.precision]);
22
26
  const onChange = useCallback(val => {
23
27
  var _a;
@@ -28,7 +32,7 @@ export const DatePickerView = p => {
28
32
  }
29
33
  }, [props.onChange, props.precision]);
30
34
  return withNativeProps(props, React.createElement(PickerView, {
31
- columns: selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, props.renderLabel, props.filter),
35
+ columns: selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter),
32
36
  loading: props.loading,
33
37
  loadingContent: props.loadingContent,
34
38
  value: pickerValue,
@@ -0,0 +1,2 @@
1
+ import type { RenderLabel } from './date-picker-view';
2
+ export default function useRenderLabel(renderLabel?: RenderLabel): RenderLabel;
@@ -0,0 +1,23 @@
1
+ import { useCallback } from 'react';
2
+ import { useConfig } from '../config-provider';
3
+ export default function useRenderLabel(renderLabel) {
4
+ const {
5
+ locale
6
+ } = useConfig();
7
+ return useCallback((type, data) => {
8
+ if (renderLabel) {
9
+ return renderLabel(type, data);
10
+ }
11
+ // Default render
12
+ switch (type) {
13
+ case 'minute':
14
+ case 'second':
15
+ case 'hour':
16
+ return ('0' + data.toString()).slice(-2);
17
+ case 'now':
18
+ return locale.DatePicker.tillNow;
19
+ default:
20
+ return data.toString();
21
+ }
22
+ }, [renderLabel]);
23
+ }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './dialog.less';
3
2
  import { show } from './show';
4
3
  import { alert } from './alert';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './dropdown.less';
3
2
  export type { DropdownProps, DropdownRef } from './dropdown';
4
3
  export type { DropdownItemProps } from './item';
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const ErrorBlock: import("react").FC<import("./create-error-block").ErrorBlockProps>;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const busyImage: JSX.Element;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const defaultImage: JSX.Element;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const disconnectedImage: JSX.Element;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const emptyImage: JSX.Element;
@@ -1,9 +1,17 @@
1
1
  import React, { FC } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
+ declare type Offset = {
4
+ x: number;
5
+ y: number;
6
+ };
3
7
  export declare type FloatingBubbleProps = {
4
8
  onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
5
9
  axis?: 'x' | 'y' | 'xy' | 'lock';
6
10
  magnetic?: 'x' | 'y';
7
11
  children?: React.ReactNode;
12
+ offset?: Offset;
13
+ defaultOffset?: Offset;
14
+ onOffsetChange?: (offset: Offset) => void;
8
15
  } & NativeProps<'--initial-position-left' | '--initial-position-right' | '--initial-position-top' | '--initial-position-bottom' | '--z-index' | '--edge-distance' | '--size' | '--border-radius' | '--background'>;
9
16
  export declare const FloatingBubble: FC<FloatingBubbleProps>;
17
+ export {};
@@ -1,16 +1,28 @@
1
- import React, { useRef } from 'react';
1
+ import React, { useRef, useEffect, useState } from 'react';
2
2
  import { useSpring, animated, to } from '@react-spring/web';
3
3
  import { useDrag } from '@use-gesture/react';
4
4
  import { mergeProps } from '../../utils/with-default-props';
5
5
  import { withNativeProps } from '../../utils/native-props';
6
6
  const classPrefix = `adm-floating-bubble`;
7
7
  const defaultProps = {
8
- axis: 'y'
8
+ axis: 'y',
9
+ defaultOffset: {
10
+ x: 0,
11
+ y: 0
12
+ }
9
13
  };
10
14
  export const FloatingBubble = p => {
11
15
  const props = mergeProps(defaultProps, p);
12
16
  const boundaryRef = useRef(null);
13
17
  const buttonRef = useRef(null);
18
+ const [innerValue, setInnerValue] = useState(props.offset === undefined ? props.defaultOffset : props.offset);
19
+ useEffect(() => {
20
+ if (props.offset === undefined) return;
21
+ api.start({
22
+ x: props.offset.x,
23
+ y: props.offset.y
24
+ });
25
+ }, [props.offset]);
14
26
  /**
15
27
  * memoize the `to` function
16
28
  * inside a component that renders frequently
@@ -21,11 +33,12 @@ export const FloatingBubble = p => {
21
33
  y,
22
34
  opacity
23
35
  }, api] = useSpring(() => ({
24
- x: 0,
25
- y: 0,
36
+ x: innerValue.x,
37
+ y: innerValue.y,
26
38
  opacity: 1
27
39
  }));
28
40
  const bind = useDrag(state => {
41
+ var _a;
29
42
  let nextX = state.offset[0];
30
43
  let nextY = state.offset[1];
31
44
  if (state.last && props.magnetic) {
@@ -54,10 +67,17 @@ export const FloatingBubble = p => {
54
67
  }
55
68
  }
56
69
  }
57
- api.start({
70
+ const nextOffest = {
58
71
  x: nextX,
59
72
  y: nextY
60
- });
73
+ };
74
+ if (props.offset === undefined) {
75
+ // Uncontrolled mode
76
+ api.start(nextOffest);
77
+ } else {
78
+ setInnerValue(nextOffest);
79
+ }
80
+ (_a = props.onOffsetChange) === null || _a === void 0 ? void 0 : _a.call(props, nextOffest);
61
81
  // active status
62
82
  api.start({
63
83
  opacity: state.active ? 0.8 : 1
@@ -3,7 +3,7 @@ import { NativeProps } from '../../utils/native-props';
3
3
  import { ListProps } from '../list';
4
4
  import type { FormProps as RcFormProps, FormInstance as RCFormInstance } from 'rc-field-form';
5
5
  import { FormContextType } from './context';
6
- export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldsValue' | 'submit' | 'validateFields'>;
6
+ export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldValue' | 'setFieldsValue' | 'submit' | 'validateFields'>;
7
7
  export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps<'--border-inner' | '--border-top' | '--border-bottom' | '--prefix-width'> & Partial<FormContextType> & {
8
8
  footer?: ReactNode;
9
9
  mode?: ListProps['mode'];
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './index.less';
3
2
  import { useWatch, useForm } from 'rc-field-form';
4
3
  export declare type FormLayout = 'vertical' | 'horizontal';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './grid.less';
3
2
  export type { GridProps, GridItemProps } from './grid';
4
3
  declare const _default: import("react").FC<import("./grid").GridProps> & {
@@ -1,8 +1,15 @@
1
1
  .adm-image-uploader {
2
2
  --cell-size: 80px;
3
+ --gap: 12px;
4
+ ---gap: var(--gap);
5
+ ---gap-horizontal: var(--gap-horizontal, var(--gap));
6
+ ---gap-vertical: var(--gap-vertical, var(--gap));
3
7
  }
8
+ .adm-image-uploader-grid,
4
9
  .adm-image-uploader-space {
5
- --gap: 12px;
10
+ --gap: var(---gap);
11
+ --gap-horizontal: var(---gap-horizontal);
12
+ --gap-vertical: var(---gap-vertical);
6
13
  }
7
14
  .adm-image-uploader-cell {
8
15
  position: relative;
@@ -82,3 +89,10 @@
82
89
  height: 100%;
83
90
  border-radius: 4px;
84
91
  }
92
+ .adm-image-uploader .adm-image-uploader-gap-measure {
93
+ position: absolute;
94
+ left: 0;
95
+ top: 0;
96
+ height: var(--gap-horizontal);
97
+ width: 0;
98
+ }
@@ -1,6 +1,7 @@
1
1
  import React, { FC, InputHTMLAttributes } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  import type { ImageProps } from '../image';
4
+ import { GridProps } from '../grid';
4
5
  export declare type TaskStatus = 'pending' | 'fail' | 'success';
5
6
  export interface ImageUploadItem {
6
7
  key?: string | number;
@@ -18,6 +19,7 @@ export declare type UploadTask = Pick<Task, 'id' | 'status'>;
18
19
  export declare type ImageUploaderProps = {
19
20
  defaultValue?: ImageUploadItem[];
20
21
  value?: ImageUploadItem[];
22
+ columns?: GridProps['columns'];
21
23
  onChange?: (items: ImageUploadItem[]) => void;
22
24
  onUploadQueueChange?: (tasks: UploadTask[]) => void;
23
25
  accept?: string;
@@ -27,6 +29,7 @@ export declare type ImageUploaderProps = {
27
29
  disableUpload?: boolean;
28
30
  showUpload?: boolean;
29
31
  deletable?: boolean;
32
+ deleteIcon?: React.ReactNode;
30
33
  capture?: InputHTMLAttributes<unknown>['capture'];
31
34
  onPreview?: (index: number, item: ImageUploadItem) => void;
32
35
  beforeUpload?: (file: File, files: File[]) => Promise<File | null> | File | null;
@@ -37,6 +40,6 @@ export declare type ImageUploaderProps = {
37
40
  imageFit?: ImageProps['fit'];
38
41
  children?: React.ReactNode;
39
42
  renderItem?: (originNode: React.ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => React.ReactNode;
40
- } & NativeProps<'--cell-size'>;
43
+ } & NativeProps<'--cell-size' | '--gap' | '--gap-vertical' | '--gap-horizontal'>;
41
44
  export declare const ImageUploader: FC<ImageUploaderProps>;
42
45
  export {};
@@ -1,18 +1,23 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import React, { useRef, useState } from 'react';
3
- import { AddOutline } from 'antd-mobile-icons';
3
+ import { AddOutline, CloseOutline } from 'antd-mobile-icons';
4
4
  import { mergeProps } from '../../utils/with-default-props';
5
5
  import ImageViewer from '../image-viewer';
6
6
  import PreviewItem from './preview-item';
7
7
  import { usePropsValue } from '../../utils/use-props-value';
8
- import { useIsomorphicLayoutEffect, useUnmount } from 'ahooks';
8
+ import { useIsomorphicLayoutEffect, useUnmount, useSize } from 'ahooks';
9
9
  import Space from '../space';
10
10
  import { withNativeProps } from '../../utils/native-props';
11
+ import { measureCSSLength } from '../../utils/measure-css-length';
11
12
  import { useConfig } from '../config-provider';
13
+ import Grid from '../grid';
12
14
  const classPrefix = `adm-image-uploader`;
13
15
  const defaultProps = {
14
16
  disableUpload: false,
15
17
  deletable: true,
18
+ deleteIcon: React.createElement(CloseOutline, {
19
+ className: `${classPrefix}-cell-delete-icon`
20
+ }),
16
21
  showUpload: true,
17
22
  multiple: false,
18
23
  maxCount: 0,
@@ -27,8 +32,26 @@ export const ImageUploader = p => {
27
32
  locale
28
33
  } = useConfig();
29
34
  const props = mergeProps(defaultProps, p);
35
+ const {
36
+ columns
37
+ } = props;
30
38
  const [value, setValue] = usePropsValue(props);
31
39
  const [tasks, setTasks] = useState([]);
40
+ const containerRef = useRef(null);
41
+ const containerSize = useSize(containerRef);
42
+ const gapMeasureRef = useRef(null);
43
+ const [cellSize, setCellSize] = useState(80);
44
+ useIsomorphicLayoutEffect(() => {
45
+ const gapMeasure = gapMeasureRef.current;
46
+ if (columns && containerSize && gapMeasure) {
47
+ const width = containerSize.width;
48
+ const gap = measureCSSLength(window.getComputedStyle(gapMeasure).getPropertyValue('height'));
49
+ setCellSize((width - gap * (columns - 1)) / columns);
50
+ }
51
+ }, [containerSize === null || containerSize === void 0 ? void 0 : containerSize.width]);
52
+ const style = {
53
+ '--cell-size': cellSize + 'px'
54
+ };
32
55
  useIsomorphicLayoutEffect(() => {
33
56
  setTasks(prev => prev.filter(task => {
34
57
  if (task.url === undefined) return true;
@@ -152,6 +175,7 @@ export const ImageUploader = p => {
152
175
  key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
153
176
  url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
154
177
  deletable: props.deletable,
178
+ deleteIcon: props.deleteIcon,
155
179
  imageFit: props.imageFit,
156
180
  onClick: () => {
157
181
  if (props.preview) {
@@ -169,26 +193,27 @@ export const ImageUploader = p => {
169
193
  return renderItem ? renderItem(originNode, fileItem, value) : originNode;
170
194
  });
171
195
  };
172
- return withNativeProps(props, React.createElement("div", {
173
- className: classPrefix
174
- }, React.createElement(Space, {
175
- className: `${classPrefix}-space`,
176
- wrap: true,
177
- block: true
178
- }, renderImages(), finalTasks.map(task => {
196
+ const contentNode = React.createElement(React.Fragment, null, renderImages(), tasks.map(task => {
197
+ if (!props.showFailed && task.status === 'fail') {
198
+ return null;
199
+ }
179
200
  return React.createElement(PreviewItem, {
180
201
  key: task.id,
181
202
  file: task.file,
182
203
  deletable: task.status !== 'pending',
204
+ deleteIcon: props.deleteIcon,
183
205
  status: task.status,
184
206
  imageFit: props.imageFit,
185
207
  onDelete: () => {
186
- setTasks(prev => prev.filter(x => x.id !== task.id));
208
+ setTasks(tasks.filter(x => x.id !== task.id));
187
209
  }
188
210
  });
189
- }), showUpload && React.createElement("div", {
190
- className: `${classPrefix}-upload-button-wrap`
191
- }, props.children ? props.children : React.createElement("span", {
211
+ }), React.createElement("div", {
212
+ className: `${classPrefix}-upload-button-wrap`,
213
+ style: showUpload ? undefined : {
214
+ display: 'none'
215
+ }
216
+ }, props.children || React.createElement("span", {
192
217
  className: `${classPrefix}-cell ${classPrefix}-upload-button`,
193
218
  role: 'button',
194
219
  "aria-label": locale.ImageUploader.upload
@@ -202,5 +227,20 @@ export const ImageUploader = p => {
202
227
  className: `${classPrefix}-input`,
203
228
  onChange: onChange,
204
229
  "aria-hidden": true
205
- })))));
230
+ })));
231
+ return withNativeProps(props, React.createElement("div", {
232
+ className: classPrefix,
233
+ ref: containerRef
234
+ }, columns ? React.createElement(Grid, {
235
+ className: `${classPrefix}-grid`,
236
+ columns: columns,
237
+ style: style
238
+ }, React.createElement("div", {
239
+ className: `${classPrefix}-gap-measure`,
240
+ ref: gapMeasureRef
241
+ }), contentNode.props.children) : React.createElement(Space, {
242
+ className: `${classPrefix}-space`,
243
+ wrap: true,
244
+ block: true
245
+ }, contentNode.props.children)));
206
246
  };