antd-mobile 5.14.3 → 5.16.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 (428) hide show
  1. package/2x/README.md +31 -18
  2. package/2x/bundle/antd-mobile.cjs.js +504 -348
  3. package/2x/bundle/antd-mobile.es.js +499 -343
  4. package/2x/bundle/style.css +75 -19
  5. package/2x/cjs/components/action-sheet/action-sheet.d.ts +2 -4
  6. package/2x/cjs/components/action-sheet/action-sheet.js +6 -2
  7. package/2x/cjs/components/badge/badge.css +1 -1
  8. package/2x/cjs/components/badge/badge.d.ts +2 -0
  9. package/2x/cjs/components/badge/badge.js +2 -1
  10. package/2x/cjs/components/button/button.d.ts +5 -1
  11. package/2x/cjs/components/cascader/cascader.d.ts +29 -4
  12. package/2x/cjs/components/cascader/cascader.js +41 -19
  13. package/2x/cjs/components/cascader/index.d.ts +21 -2
  14. package/2x/cjs/components/center-popup/center-popup.css +11 -0
  15. package/2x/cjs/components/center-popup/center-popup.d.ts +4 -20
  16. package/2x/cjs/components/center-popup/center-popup.js +27 -14
  17. package/2x/cjs/components/checkbox/checkbox.d.ts +22 -2
  18. package/2x/cjs/components/checkbox/checkbox.js +14 -4
  19. package/2x/cjs/components/checkbox/index.d.ts +17 -2
  20. package/2x/cjs/components/checkbox/native-input.js +10 -8
  21. package/2x/cjs/components/date-picker/date-picker-date-utils.js +12 -15
  22. package/2x/cjs/components/date-picker/date-picker-week-utils.js +12 -15
  23. package/2x/cjs/components/date-picker/date-picker.d.ts +7 -3
  24. package/2x/cjs/components/date-picker/date-picker.js +3 -1
  25. package/2x/cjs/components/date-picker/index.d.ts +6 -2
  26. package/2x/cjs/components/dialog/dialog.js +3 -1
  27. package/2x/cjs/components/dropdown/dropdown.d.ts +5 -1
  28. package/2x/cjs/components/dropdown/index.d.ts +5 -1
  29. package/2x/cjs/components/floating-panel/floating-panel.d.ts +5 -1
  30. package/2x/cjs/components/form/form-item.js +2 -4
  31. package/2x/cjs/components/form/form-subscribe.js +3 -9
  32. package/2x/cjs/components/form/form.d.ts +5 -1
  33. package/2x/cjs/components/form/index.d.ts +5 -1
  34. package/2x/cjs/components/index-bar/index-bar.d.ts +5 -1
  35. package/2x/cjs/components/index-bar/index.d.ts +5 -1
  36. package/2x/cjs/components/infinite-scroll/infinite-scroll.js +13 -5
  37. package/2x/cjs/components/input/input.css +4 -0
  38. package/2x/cjs/components/input/input.d.ts +11 -4
  39. package/2x/cjs/components/input/input.js +5 -1
  40. package/2x/cjs/components/list/index.d.ts +10 -2
  41. package/2x/cjs/components/list/list.css +3 -0
  42. package/2x/cjs/components/list/list.d.ts +14 -3
  43. package/2x/cjs/components/list/list.js +16 -6
  44. package/2x/cjs/components/modal/modal-action-button.d.ts +2 -2
  45. package/2x/cjs/components/modal/modal.css +0 -9
  46. package/2x/cjs/components/modal/modal.js +4 -11
  47. package/2x/cjs/components/number-keyboard/number-keyboard.d.ts +1 -5
  48. package/2x/cjs/components/number-keyboard/number-keyboard.js +13 -7
  49. package/2x/cjs/components/passcode-input/passcode-input.d.ts +5 -1
  50. package/2x/cjs/components/picker/index.d.ts +10 -6
  51. package/2x/cjs/components/picker/picker.d.ts +6 -6
  52. package/2x/cjs/components/picker/picker.js +8 -7
  53. package/2x/cjs/components/picker-view/picker-view.css +1 -0
  54. package/2x/cjs/components/picker-view/wheel.js +10 -8
  55. package/2x/cjs/components/popover/index.d.ts +5 -1
  56. package/2x/cjs/components/popover/popover.d.ts +5 -1
  57. package/2x/cjs/components/popup/popup-base-props.d.ts +35 -0
  58. package/2x/cjs/components/popup/popup-base-props.js +18 -0
  59. package/2x/cjs/components/popup/popup.css +32 -0
  60. package/2x/cjs/components/popup/popup.d.ts +3 -19
  61. package/2x/cjs/components/popup/popup.js +43 -18
  62. package/2x/cjs/components/progress-bar/progress-bar.css +17 -3
  63. package/2x/cjs/components/progress-bar/progress-bar.d.ts +4 -2
  64. package/2x/cjs/components/progress-bar/progress-bar.js +27 -5
  65. package/2x/cjs/components/radio/radio.js +3 -3
  66. package/2x/cjs/components/rate/rate.css +2 -2
  67. package/2x/cjs/components/rate/rate.js +3 -3
  68. package/2x/cjs/components/rate/star.d.ts +2 -0
  69. package/2x/cjs/components/rate/star.js +37 -0
  70. package/2x/cjs/components/safe-area/safe-area.css +3 -2
  71. package/2x/cjs/components/search-bar/search-bar.d.ts +5 -1
  72. package/2x/cjs/components/slider/slider.js +2 -1
  73. package/2x/cjs/components/slider/thumb.d.ts +2 -1
  74. package/2x/cjs/components/slider/thumb.js +13 -1
  75. package/2x/cjs/components/stepper/stepper.js +14 -3
  76. package/2x/cjs/components/steps/steps.css +1 -1
  77. package/2x/cjs/components/swipe-action/swipe-action.d.ts +5 -1
  78. package/2x/cjs/components/swiper/index.d.ts +10 -2
  79. package/2x/cjs/components/swiper/swiper.d.ts +5 -1
  80. package/2x/cjs/components/switch/switch.js +10 -1
  81. package/2x/cjs/components/text-area/text-area.d.ts +6 -1
  82. package/2x/cjs/components/text-area/text-area.js +5 -0
  83. package/2x/cjs/components/toast/methods.js +32 -73
  84. package/2x/cjs/components/virtual-input/virtual-input.d.ts +5 -1
  85. package/2x/cjs/components/water-mark/water-mark.js +3 -2
  86. package/2x/cjs/global/global.css +0 -1
  87. package/2x/cjs/global/theme-default.css +0 -1
  88. package/2x/cjs/locales/base.d.ts +10 -0
  89. package/2x/cjs/locales/base.js +10 -0
  90. package/2x/cjs/locales/en-US.d.ts +10 -0
  91. package/2x/cjs/locales/es-ES.d.ts +10 -0
  92. package/2x/cjs/locales/fa-IR.d.ts +10 -0
  93. package/2x/cjs/locales/fr-FR.d.ts +10 -0
  94. package/2x/cjs/locales/id-ID.d.ts +118 -0
  95. package/2x/cjs/locales/id-ID.js +121 -0
  96. package/2x/cjs/locales/kk-KZ.d.ts +118 -0
  97. package/2x/cjs/locales/kk-KZ.js +124 -0
  98. package/2x/cjs/locales/ko-KR.d.ts +10 -0
  99. package/2x/cjs/locales/zh-CN.d.ts +10 -0
  100. package/2x/cjs/locales/zh-CN.js +10 -0
  101. package/2x/cjs/locales/zh-HK.d.ts +10 -0
  102. package/2x/cjs/locales/zh-TW.d.ts +10 -0
  103. package/2x/cjs/utils/native-props.d.ts +3 -3
  104. package/2x/cjs/utils/render-imperatively.d.ts +4 -1
  105. package/2x/cjs/utils/render-imperatively.js +23 -11
  106. package/2x/cjs/utils/use-props-value.js +2 -6
  107. package/2x/es/components/action-sheet/action-sheet.d.ts +2 -4
  108. package/2x/es/components/action-sheet/action-sheet.js +6 -2
  109. package/2x/es/components/badge/badge.css +1 -1
  110. package/2x/es/components/badge/badge.d.ts +2 -0
  111. package/2x/es/components/badge/badge.js +2 -1
  112. package/2x/es/components/button/button.d.ts +5 -1
  113. package/2x/es/components/cascader/cascader.d.ts +29 -4
  114. package/2x/es/components/cascader/cascader.js +42 -18
  115. package/2x/es/components/cascader/index.d.ts +21 -2
  116. package/2x/es/components/center-popup/center-popup.css +11 -0
  117. package/2x/es/components/center-popup/center-popup.d.ts +4 -20
  118. package/2x/es/components/center-popup/center-popup.js +25 -14
  119. package/2x/es/components/checkbox/checkbox.d.ts +22 -2
  120. package/2x/es/components/checkbox/checkbox.js +15 -3
  121. package/2x/es/components/checkbox/index.d.ts +17 -2
  122. package/2x/es/components/checkbox/native-input.js +9 -8
  123. package/2x/es/components/date-picker/date-picker-date-utils.js +12 -15
  124. package/2x/es/components/date-picker/date-picker-week-utils.js +12 -15
  125. package/2x/es/components/date-picker/date-picker.d.ts +7 -3
  126. package/2x/es/components/date-picker/date-picker.js +3 -1
  127. package/2x/es/components/date-picker/index.d.ts +6 -2
  128. package/2x/es/components/dialog/dialog.js +3 -1
  129. package/2x/es/components/dropdown/dropdown.d.ts +5 -1
  130. package/2x/es/components/dropdown/index.d.ts +5 -1
  131. package/2x/es/components/floating-panel/floating-panel.d.ts +5 -1
  132. package/2x/es/components/form/form-item.js +2 -2
  133. package/2x/es/components/form/form-subscribe.js +5 -8
  134. package/2x/es/components/form/form.d.ts +5 -1
  135. package/2x/es/components/form/index.d.ts +5 -1
  136. package/2x/es/components/index-bar/index-bar.d.ts +5 -1
  137. package/2x/es/components/index-bar/index.d.ts +5 -1
  138. package/2x/es/components/infinite-scroll/infinite-scroll.js +14 -6
  139. package/2x/es/components/input/input.css +4 -0
  140. package/2x/es/components/input/input.d.ts +11 -4
  141. package/2x/es/components/input/input.js +5 -1
  142. package/2x/es/components/list/index.d.ts +10 -2
  143. package/2x/es/components/list/list.css +3 -0
  144. package/2x/es/components/list/list.d.ts +14 -3
  145. package/2x/es/components/list/list.js +12 -4
  146. package/2x/es/components/modal/modal-action-button.d.ts +2 -2
  147. package/2x/es/components/modal/modal.css +0 -9
  148. package/2x/es/components/modal/modal.js +4 -10
  149. package/2x/es/components/number-keyboard/number-keyboard.d.ts +1 -5
  150. package/2x/es/components/number-keyboard/number-keyboard.js +13 -7
  151. package/2x/es/components/passcode-input/passcode-input.d.ts +5 -1
  152. package/2x/es/components/picker/index.d.ts +10 -6
  153. package/2x/es/components/picker/picker.d.ts +6 -6
  154. package/2x/es/components/picker/picker.js +8 -6
  155. package/2x/es/components/picker-view/picker-view.css +1 -0
  156. package/2x/es/components/picker-view/wheel.js +10 -8
  157. package/2x/es/components/popover/index.d.ts +5 -1
  158. package/2x/es/components/popover/popover.d.ts +5 -1
  159. package/2x/es/components/popup/popup-base-props.d.ts +35 -0
  160. package/2x/es/components/popup/popup-base-props.js +11 -0
  161. package/2x/es/components/popup/popup.css +32 -0
  162. package/2x/es/components/popup/popup.d.ts +3 -19
  163. package/2x/es/components/popup/popup.js +41 -19
  164. package/2x/es/components/progress-bar/progress-bar.css +17 -3
  165. package/2x/es/components/progress-bar/progress-bar.d.ts +4 -2
  166. package/2x/es/components/progress-bar/progress-bar.js +25 -5
  167. package/2x/es/components/radio/radio.js +3 -3
  168. package/2x/es/components/rate/rate.css +2 -2
  169. package/2x/es/components/rate/rate.js +2 -2
  170. package/2x/es/components/rate/star.d.ts +2 -0
  171. package/2x/es/components/rate/star.js +25 -0
  172. package/2x/es/components/safe-area/safe-area.css +3 -2
  173. package/2x/es/components/search-bar/search-bar.d.ts +5 -1
  174. package/2x/es/components/slider/slider.js +2 -1
  175. package/2x/es/components/slider/thumb.d.ts +2 -1
  176. package/2x/es/components/slider/thumb.js +12 -1
  177. package/2x/es/components/stepper/stepper.js +13 -3
  178. package/2x/es/components/steps/steps.css +1 -1
  179. package/2x/es/components/swipe-action/swipe-action.d.ts +5 -1
  180. package/2x/es/components/swiper/index.d.ts +10 -2
  181. package/2x/es/components/swiper/swiper.d.ts +5 -1
  182. package/2x/es/components/switch/switch.js +9 -1
  183. package/2x/es/components/text-area/text-area.d.ts +6 -1
  184. package/2x/es/components/text-area/text-area.js +5 -0
  185. package/2x/es/components/toast/methods.js +29 -67
  186. package/2x/es/components/virtual-input/virtual-input.d.ts +5 -1
  187. package/2x/es/components/water-mark/water-mark.js +3 -2
  188. package/2x/es/global/global.css +0 -1
  189. package/2x/es/global/theme-default.css +0 -1
  190. package/2x/es/locales/base.d.ts +10 -0
  191. package/2x/es/locales/base.js +10 -0
  192. package/2x/es/locales/en-US.d.ts +10 -0
  193. package/2x/es/locales/es-ES.d.ts +10 -0
  194. package/2x/es/locales/fa-IR.d.ts +10 -0
  195. package/2x/es/locales/fr-FR.d.ts +10 -0
  196. package/2x/es/locales/id-ID.d.ts +118 -0
  197. package/2x/es/locales/id-ID.js +111 -0
  198. package/2x/es/locales/kk-KZ.d.ts +118 -0
  199. package/2x/es/locales/kk-KZ.js +114 -0
  200. package/2x/es/locales/ko-KR.d.ts +10 -0
  201. package/2x/es/locales/zh-CN.d.ts +10 -0
  202. package/2x/es/locales/zh-CN.js +10 -0
  203. package/2x/es/locales/zh-HK.d.ts +10 -0
  204. package/2x/es/locales/zh-TW.d.ts +10 -0
  205. package/2x/es/utils/native-props.d.ts +3 -3
  206. package/2x/es/utils/render-imperatively.d.ts +4 -1
  207. package/2x/es/utils/render-imperatively.js +23 -11
  208. package/2x/es/utils/use-props-value.js +2 -6
  209. package/2x/package.json +3 -3
  210. package/2x/umd/antd-mobile.js +1 -1
  211. package/README.md +31 -18
  212. package/bundle/antd-mobile.cjs.js +504 -348
  213. package/bundle/antd-mobile.es.js +499 -343
  214. package/bundle/style.css +65 -18
  215. package/cjs/components/action-sheet/action-sheet.d.ts +2 -4
  216. package/cjs/components/action-sheet/action-sheet.js +6 -2
  217. package/cjs/components/badge/badge.css +1 -1
  218. package/cjs/components/badge/badge.d.ts +2 -0
  219. package/cjs/components/badge/badge.js +2 -1
  220. package/cjs/components/button/button.d.ts +5 -1
  221. package/cjs/components/cascader/cascader.d.ts +29 -4
  222. package/cjs/components/cascader/cascader.js +41 -19
  223. package/cjs/components/cascader/index.d.ts +21 -2
  224. package/cjs/components/center-popup/center-popup.css +10 -0
  225. package/cjs/components/center-popup/center-popup.d.ts +4 -20
  226. package/cjs/components/center-popup/center-popup.js +27 -14
  227. package/cjs/components/checkbox/checkbox.d.ts +22 -2
  228. package/cjs/components/checkbox/checkbox.js +14 -4
  229. package/cjs/components/checkbox/index.d.ts +17 -2
  230. package/cjs/components/checkbox/native-input.js +10 -8
  231. package/cjs/components/date-picker/date-picker-date-utils.js +12 -15
  232. package/cjs/components/date-picker/date-picker-week-utils.js +12 -15
  233. package/cjs/components/date-picker/date-picker.d.ts +7 -3
  234. package/cjs/components/date-picker/date-picker.js +3 -1
  235. package/cjs/components/date-picker/index.d.ts +6 -2
  236. package/cjs/components/dialog/dialog.js +3 -1
  237. package/cjs/components/dropdown/dropdown.d.ts +5 -1
  238. package/cjs/components/dropdown/index.d.ts +5 -1
  239. package/cjs/components/floating-panel/floating-panel.d.ts +5 -1
  240. package/cjs/components/form/form-item.js +2 -4
  241. package/cjs/components/form/form-subscribe.js +3 -9
  242. package/cjs/components/form/form.d.ts +5 -1
  243. package/cjs/components/form/index.d.ts +5 -1
  244. package/cjs/components/index-bar/index-bar.d.ts +5 -1
  245. package/cjs/components/index-bar/index.d.ts +5 -1
  246. package/cjs/components/infinite-scroll/infinite-scroll.js +13 -5
  247. package/cjs/components/input/input.css +3 -0
  248. package/cjs/components/input/input.d.ts +11 -4
  249. package/cjs/components/input/input.js +5 -1
  250. package/cjs/components/list/index.d.ts +10 -2
  251. package/cjs/components/list/list.css +3 -0
  252. package/cjs/components/list/list.d.ts +14 -3
  253. package/cjs/components/list/list.js +16 -6
  254. package/cjs/components/modal/modal-action-button.d.ts +2 -2
  255. package/cjs/components/modal/modal.css +0 -8
  256. package/cjs/components/modal/modal.js +4 -11
  257. package/cjs/components/number-keyboard/number-keyboard.d.ts +1 -5
  258. package/cjs/components/number-keyboard/number-keyboard.js +13 -7
  259. package/cjs/components/passcode-input/passcode-input.d.ts +5 -1
  260. package/cjs/components/picker/index.d.ts +10 -6
  261. package/cjs/components/picker/picker.d.ts +6 -6
  262. package/cjs/components/picker/picker.js +8 -7
  263. package/cjs/components/picker-view/picker-view.css +1 -0
  264. package/cjs/components/picker-view/wheel.js +10 -8
  265. package/cjs/components/popover/index.d.ts +5 -1
  266. package/cjs/components/popover/popover.d.ts +5 -1
  267. package/cjs/components/popup/popup-base-props.d.ts +35 -0
  268. package/cjs/components/popup/popup-base-props.js +18 -0
  269. package/cjs/components/popup/popup.css +26 -0
  270. package/cjs/components/popup/popup.d.ts +3 -19
  271. package/cjs/components/popup/popup.js +43 -18
  272. package/cjs/components/progress-bar/progress-bar.css +15 -3
  273. package/cjs/components/progress-bar/progress-bar.d.ts +4 -2
  274. package/cjs/components/progress-bar/progress-bar.js +27 -5
  275. package/cjs/components/radio/radio.js +3 -3
  276. package/cjs/components/rate/rate.css +2 -2
  277. package/cjs/components/rate/rate.js +3 -3
  278. package/cjs/components/rate/star.d.ts +2 -0
  279. package/cjs/components/rate/star.js +37 -0
  280. package/cjs/components/safe-area/safe-area.css +3 -2
  281. package/cjs/components/search-bar/search-bar.d.ts +5 -1
  282. package/cjs/components/slider/slider.js +2 -1
  283. package/cjs/components/slider/thumb.d.ts +2 -1
  284. package/cjs/components/slider/thumb.js +13 -1
  285. package/cjs/components/stepper/stepper.js +14 -3
  286. package/cjs/components/steps/steps.css +1 -1
  287. package/cjs/components/swipe-action/swipe-action.d.ts +5 -1
  288. package/cjs/components/swiper/index.d.ts +10 -2
  289. package/cjs/components/swiper/swiper.d.ts +5 -1
  290. package/cjs/components/switch/switch.js +10 -1
  291. package/cjs/components/text-area/text-area.d.ts +6 -1
  292. package/cjs/components/text-area/text-area.js +5 -0
  293. package/cjs/components/toast/methods.js +32 -73
  294. package/cjs/components/virtual-input/virtual-input.d.ts +5 -1
  295. package/cjs/components/water-mark/water-mark.js +3 -2
  296. package/cjs/global/global.css +0 -1
  297. package/cjs/global/theme-default.css +0 -1
  298. package/cjs/locales/base.d.ts +10 -0
  299. package/cjs/locales/base.js +10 -0
  300. package/cjs/locales/en-US.d.ts +10 -0
  301. package/cjs/locales/es-ES.d.ts +10 -0
  302. package/cjs/locales/fa-IR.d.ts +10 -0
  303. package/cjs/locales/fr-FR.d.ts +10 -0
  304. package/cjs/locales/id-ID.d.ts +118 -0
  305. package/cjs/locales/id-ID.js +121 -0
  306. package/cjs/locales/kk-KZ.d.ts +118 -0
  307. package/cjs/locales/kk-KZ.js +124 -0
  308. package/cjs/locales/ko-KR.d.ts +10 -0
  309. package/cjs/locales/zh-CN.d.ts +10 -0
  310. package/cjs/locales/zh-CN.js +10 -0
  311. package/cjs/locales/zh-HK.d.ts +10 -0
  312. package/cjs/locales/zh-TW.d.ts +10 -0
  313. package/cjs/utils/native-props.d.ts +3 -3
  314. package/cjs/utils/render-imperatively.d.ts +4 -1
  315. package/cjs/utils/render-imperatively.js +23 -11
  316. package/cjs/utils/use-props-value.js +2 -6
  317. package/es/components/action-sheet/action-sheet.d.ts +2 -4
  318. package/es/components/action-sheet/action-sheet.js +6 -2
  319. package/es/components/badge/badge.css +1 -1
  320. package/es/components/badge/badge.d.ts +2 -0
  321. package/es/components/badge/badge.js +2 -1
  322. package/es/components/button/button.d.ts +5 -1
  323. package/es/components/cascader/cascader.d.ts +29 -4
  324. package/es/components/cascader/cascader.js +42 -18
  325. package/es/components/cascader/index.d.ts +21 -2
  326. package/es/components/center-popup/center-popup.css +10 -0
  327. package/es/components/center-popup/center-popup.d.ts +4 -20
  328. package/es/components/center-popup/center-popup.js +25 -14
  329. package/es/components/checkbox/checkbox.d.ts +22 -2
  330. package/es/components/checkbox/checkbox.js +15 -3
  331. package/es/components/checkbox/index.d.ts +17 -2
  332. package/es/components/checkbox/native-input.js +9 -8
  333. package/es/components/date-picker/date-picker-date-utils.js +12 -15
  334. package/es/components/date-picker/date-picker-week-utils.js +12 -15
  335. package/es/components/date-picker/date-picker.d.ts +7 -3
  336. package/es/components/date-picker/date-picker.js +3 -1
  337. package/es/components/date-picker/index.d.ts +6 -2
  338. package/es/components/dialog/dialog.js +3 -1
  339. package/es/components/dropdown/dropdown.d.ts +5 -1
  340. package/es/components/dropdown/index.d.ts +5 -1
  341. package/es/components/floating-panel/floating-panel.d.ts +5 -1
  342. package/es/components/form/form-item.js +2 -2
  343. package/es/components/form/form-subscribe.js +5 -8
  344. package/es/components/form/form.d.ts +5 -1
  345. package/es/components/form/index.d.ts +5 -1
  346. package/es/components/index-bar/index-bar.d.ts +5 -1
  347. package/es/components/index-bar/index.d.ts +5 -1
  348. package/es/components/infinite-scroll/infinite-scroll.js +14 -6
  349. package/es/components/input/input.css +3 -0
  350. package/es/components/input/input.d.ts +11 -4
  351. package/es/components/input/input.js +5 -1
  352. package/es/components/list/index.d.ts +10 -2
  353. package/es/components/list/list.css +3 -0
  354. package/es/components/list/list.d.ts +14 -3
  355. package/es/components/list/list.js +12 -4
  356. package/es/components/modal/modal-action-button.d.ts +2 -2
  357. package/es/components/modal/modal.css +0 -8
  358. package/es/components/modal/modal.js +4 -10
  359. package/es/components/number-keyboard/number-keyboard.d.ts +1 -5
  360. package/es/components/number-keyboard/number-keyboard.js +13 -7
  361. package/es/components/passcode-input/passcode-input.d.ts +5 -1
  362. package/es/components/picker/index.d.ts +10 -6
  363. package/es/components/picker/picker.d.ts +6 -6
  364. package/es/components/picker/picker.js +8 -6
  365. package/es/components/picker-view/picker-view.css +1 -0
  366. package/es/components/picker-view/wheel.js +10 -8
  367. package/es/components/popover/index.d.ts +5 -1
  368. package/es/components/popover/popover.d.ts +5 -1
  369. package/es/components/popup/popup-base-props.d.ts +35 -0
  370. package/es/components/popup/popup-base-props.js +11 -0
  371. package/es/components/popup/popup.css +26 -0
  372. package/es/components/popup/popup.d.ts +3 -19
  373. package/es/components/popup/popup.js +41 -19
  374. package/es/components/progress-bar/progress-bar.css +15 -3
  375. package/es/components/progress-bar/progress-bar.d.ts +4 -2
  376. package/es/components/progress-bar/progress-bar.js +25 -5
  377. package/es/components/radio/radio.js +3 -3
  378. package/es/components/rate/rate.css +2 -2
  379. package/es/components/rate/rate.js +2 -2
  380. package/es/components/rate/star.d.ts +2 -0
  381. package/es/components/rate/star.js +25 -0
  382. package/es/components/safe-area/safe-area.css +3 -2
  383. package/es/components/search-bar/search-bar.d.ts +5 -1
  384. package/es/components/slider/slider.js +2 -1
  385. package/es/components/slider/thumb.d.ts +2 -1
  386. package/es/components/slider/thumb.js +12 -1
  387. package/es/components/stepper/stepper.js +13 -3
  388. package/es/components/steps/steps.css +1 -1
  389. package/es/components/swipe-action/swipe-action.d.ts +5 -1
  390. package/es/components/swiper/index.d.ts +10 -2
  391. package/es/components/swiper/swiper.d.ts +5 -1
  392. package/es/components/switch/switch.js +9 -1
  393. package/es/components/text-area/text-area.d.ts +6 -1
  394. package/es/components/text-area/text-area.js +5 -0
  395. package/es/components/toast/methods.js +29 -67
  396. package/es/components/virtual-input/virtual-input.d.ts +5 -1
  397. package/es/components/water-mark/water-mark.js +3 -2
  398. package/es/global/global.css +0 -1
  399. package/es/global/theme-default.css +0 -1
  400. package/es/locales/base.d.ts +10 -0
  401. package/es/locales/base.js +10 -0
  402. package/es/locales/en-US.d.ts +10 -0
  403. package/es/locales/es-ES.d.ts +10 -0
  404. package/es/locales/fa-IR.d.ts +10 -0
  405. package/es/locales/fr-FR.d.ts +10 -0
  406. package/es/locales/id-ID.d.ts +118 -0
  407. package/es/locales/id-ID.js +111 -0
  408. package/es/locales/kk-KZ.d.ts +118 -0
  409. package/es/locales/kk-KZ.js +114 -0
  410. package/es/locales/ko-KR.d.ts +10 -0
  411. package/es/locales/zh-CN.d.ts +10 -0
  412. package/es/locales/zh-CN.js +10 -0
  413. package/es/locales/zh-HK.d.ts +10 -0
  414. package/es/locales/zh-TW.d.ts +10 -0
  415. package/es/utils/native-props.d.ts +3 -3
  416. package/es/utils/render-imperatively.d.ts +4 -1
  417. package/es/utils/render-imperatively.js +23 -11
  418. package/es/utils/use-props-value.js +2 -6
  419. package/package.json +3 -3
  420. package/umd/antd-mobile.js +1 -1
  421. package/2x/cjs/components/form/form-imperative-item.d.ts +0 -5
  422. package/2x/cjs/components/form/form-imperative-item.js +0 -57
  423. package/2x/es/components/form/form-imperative-item.d.ts +0 -5
  424. package/2x/es/components/form/form-imperative-item.js +0 -38
  425. package/cjs/components/form/form-imperative-item.d.ts +0 -5
  426. package/cjs/components/form/form-imperative-item.js +0 -57
  427. package/es/components/form/form-imperative-item.d.ts +0 -5
  428. package/es/components/form/form-imperative-item.js +0 -38
@@ -17,6 +17,8 @@ function renderImperatively(element) {
17
17
  const Wrapper = _react.default.forwardRef((_, ref) => {
18
18
  const [visible, setVisible] = (0, _react.useState)(false);
19
19
  const closedRef = (0, _react.useRef)(false);
20
+ const [elementToRender, setElementToRender] = (0, _react.useState)(element);
21
+ const keyRef = (0, _react.useRef)(0);
20
22
  (0, _react.useEffect)(() => {
21
23
  if (!closedRef.current) {
22
24
  setVisible(true);
@@ -30,20 +32,28 @@ function renderImperatively(element) {
30
32
 
31
33
  closedRef.current = true;
32
34
  setVisible(false);
33
- (_b = (_a = element.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
35
+ (_b = (_a = elementToRender.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
34
36
  }
35
37
 
36
38
  function afterClose() {
37
39
  var _a, _b;
38
40
 
39
41
  unmount();
40
- (_b = (_a = element.props).afterClose) === null || _b === void 0 ? void 0 : _b.call(_a);
42
+ (_b = (_a = elementToRender.props).afterClose) === null || _b === void 0 ? void 0 : _b.call(_a);
41
43
  }
42
44
 
43
45
  (0, _react.useImperativeHandle)(ref, () => ({
44
- close: onClose
46
+ close: onClose,
47
+ replace: element => {
48
+ var _a, _b;
49
+
50
+ keyRef.current++;
51
+ (_b = (_a = elementToRender.props).afterClose) === null || _b === void 0 ? void 0 : _b.call(_a);
52
+ setElementToRender(element);
53
+ }
45
54
  }));
46
- return _react.default.cloneElement(element, Object.assign(Object.assign({}, element.props), {
55
+ return _react.default.cloneElement(elementToRender, Object.assign(Object.assign({}, elementToRender.props), {
56
+ key: keyRef.current,
47
57
  visible,
48
58
  onClose,
49
59
  afterClose
@@ -55,14 +65,16 @@ function renderImperatively(element) {
55
65
  const unmount = (0, _renderToBody.renderToBody)(_react.default.createElement(Wrapper, {
56
66
  ref: wrapperRef
57
67
  }));
68
+ return {
69
+ close: () => {
70
+ var _a;
58
71
 
59
- function close() {
60
- var _a;
61
-
62
- (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.close();
63
- }
72
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.close();
73
+ },
74
+ replace: element => {
75
+ var _a;
64
76
 
65
- return {
66
- close
77
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.replace(element);
78
+ }
67
79
  };
68
80
  }
@@ -24,12 +24,8 @@ function usePropsValue(options) {
24
24
 
25
25
  const setState = (0, _ahooks.useMemoizedFn)(v => {
26
26
  const nextValue = typeof v === 'function' ? v(stateRef.current) : v;
27
-
28
- if (value === undefined) {
29
- stateRef.current = nextValue;
30
- update();
31
- }
32
-
27
+ stateRef.current = nextValue;
28
+ update();
33
29
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);
34
30
  });
35
31
  return [stateRef.current, setState];
@@ -1,6 +1,6 @@
1
1
  import React, { FC, ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
- import { GetContainer } from '../../utils/render-to-container';
3
+ import { PopupProps } from '../popup';
4
4
  export declare type Action = {
5
5
  key: string | number;
6
6
  text: ReactNode;
@@ -16,15 +16,13 @@ export declare type ActionSheetProps = {
16
16
  cancelText?: React.ReactNode;
17
17
  onAction?: (action: Action, index: number) => void;
18
18
  onClose?: () => void;
19
- afterClose?: () => void;
20
19
  onMaskClick?: () => void;
21
20
  closeOnAction?: boolean;
22
21
  closeOnMaskClick?: boolean;
23
- getContainer?: GetContainer;
24
22
  safeArea?: boolean;
25
23
  popupClassName?: string;
26
24
  popupStyle?: React.CSSProperties;
27
- } & NativeProps;
25
+ } & Pick<PopupProps, 'afterClose' | 'getContainer' | 'destroyOnClose' | 'forceRender'> & NativeProps;
28
26
  export declare const ActionSheet: FC<ActionSheetProps>;
29
27
  export declare type ActionSheetShowHandler = {
30
28
  close: () => void;
@@ -12,7 +12,9 @@ const defaultProps = {
12
12
  cancelText: '',
13
13
  closeOnAction: false,
14
14
  closeOnMaskClick: true,
15
- safeArea: true
15
+ safeArea: true,
16
+ destroyOnClose: false,
17
+ forceRender: false
16
18
  };
17
19
  export const ActionSheet = p => {
18
20
  const props = mergeProps(defaultProps, p);
@@ -30,7 +32,9 @@ export const ActionSheet = p => {
30
32
  afterClose: props.afterClose,
31
33
  className: classNames(`${classPrefix}-popup`, props.popupClassName),
32
34
  style: props.popupStyle,
33
- getContainer: props.getContainer
35
+ getContainer: props.getContainer,
36
+ destroyOnClose: props.destroyOnClose,
37
+ forceRender: props.forceRender
34
38
  }, withNativeProps(props, React.createElement("div", {
35
39
  className: classPrefix
36
40
  }, props.extra && React.createElement("div", {
@@ -1,4 +1,4 @@
1
- .adm-badge-wrap {
1
+ .adm-badge-wrapper {
2
2
  display: inline-block;
3
3
  position: relative;
4
4
  }
@@ -6,5 +6,7 @@ export declare type BadgeProps = {
6
6
  color?: string;
7
7
  bordered?: boolean;
8
8
  children?: React.ReactNode;
9
+ wrapperClassName?: string;
10
+ wrapperStyle?: React.CSSProperties;
9
11
  } & NativeProps<'--right' | '--top' | '--color'>;
10
12
  export declare const Badge: FC<BadgeProps>;
@@ -20,6 +20,7 @@ export const Badge = props => {
20
20
  className: `${classPrefix}-content`
21
21
  }, content))) : null;
22
22
  return children ? React.createElement("div", {
23
- className: `${classPrefix}-wrap`
23
+ className: classNames(`${classPrefix}-wrapper`, props.wrapperClassName),
24
+ style: props.wrapperStyle
24
25
  }, children, element) : element;
25
26
  };
@@ -31,5 +31,9 @@ export declare const Button: React.ForwardRefExoticComponent<{
31
31
  type?: "reset" | "submit" | "button" | undefined;
32
32
  shape?: "default" | "rounded" | "rectangular" | undefined;
33
33
  children?: React.ReactNode;
34
- } & Pick<NativeButtonProps, "onMouseDown" | "onMouseUp" | "onTouchEnd" | "onTouchStart"> & NativeProps<"--border-radius" | "--text-color" | "--background-color" | "--border-width" | "--border-style" | "--border-color"> & React.RefAttributes<ButtonRef>>;
34
+ } & Pick<NativeButtonProps, "onMouseDown" | "onMouseUp" | "onTouchEnd" | "onTouchStart"> & {
35
+ className?: string | undefined;
36
+ style?: (React.CSSProperties & Partial<Record<"--border-radius" | "--text-color" | "--background-color" | "--border-width" | "--border-style" | "--border-color", string>>) | undefined;
37
+ tabIndex?: number | undefined;
38
+ } & React.AriaAttributes & React.RefAttributes<ButtonRef>>;
35
39
  export {};
@@ -1,7 +1,13 @@
1
- import { ReactNode, FC } from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { PopupProps } from '../popup';
3
3
  import { CascaderValue, CascaderValueExtend, CascaderOption } from '../cascader-view';
4
4
  import { NativeProps } from '../../utils/native-props';
5
+ export declare type CascaderActions = {
6
+ open: () => void;
7
+ close: () => void;
8
+ toggle: () => void;
9
+ };
10
+ export declare type CascaderRef = CascaderActions;
5
11
  export declare type CascaderProps = {
6
12
  options: CascaderOption[];
7
13
  value?: CascaderValue[];
@@ -15,7 +21,26 @@ export declare type CascaderProps = {
15
21
  title?: ReactNode;
16
22
  confirmText?: ReactNode;
17
23
  cancelText?: ReactNode;
18
- children?: (items: (CascaderOption | null)[]) => ReactNode;
24
+ children?: (items: (CascaderOption | null)[], actions: CascaderActions) => ReactNode;
19
25
  onTabsChange?: (index: number) => void;
20
- } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation'> & NativeProps;
21
- export declare const Cascader: FC<CascaderProps>;
26
+ } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation' | 'destroyOnClose' | 'forceRender'> & NativeProps;
27
+ export declare const Cascader: React.ForwardRefExoticComponent<{
28
+ options: CascaderOption[];
29
+ value?: string[] | undefined;
30
+ defaultValue?: string[] | undefined;
31
+ placeholder?: string | undefined;
32
+ onSelect?: ((value: CascaderValue[], extend: CascaderValueExtend) => void) | undefined;
33
+ onConfirm?: ((value: CascaderValue[], extend: CascaderValueExtend) => void) | undefined;
34
+ onCancel?: (() => void) | undefined;
35
+ onClose?: (() => void) | undefined;
36
+ visible?: boolean | undefined;
37
+ title?: ReactNode;
38
+ confirmText?: ReactNode;
39
+ cancelText?: ReactNode;
40
+ children?: ((items: (CascaderOption | null)[], actions: CascaderActions) => ReactNode) | undefined;
41
+ onTabsChange?: ((index: number) => void) | undefined;
42
+ } & Pick<PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
43
+ className?: string | undefined;
44
+ style?: (React.CSSProperties & Partial<Record<never, string>>) | undefined;
45
+ tabIndex?: number | undefined;
46
+ } & React.AriaAttributes & React.RefAttributes<CascaderActions>>;
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect } from 'react';
1
+ import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';
2
2
  import Popup from '../popup';
3
3
  import { mergeProps } from '../../utils/with-default-props';
4
4
  import { withNativeProps } from '../../utils/native-props';
@@ -8,9 +8,11 @@ import { useConfig } from '../config-provider';
8
8
  import { useCascaderValueExtend } from '../cascader-view/use-cascader-value-extend';
9
9
  const classPrefix = `adm-cascader`;
10
10
  const defaultProps = {
11
- defaultValue: []
11
+ defaultValue: [],
12
+ destroyOnClose: true,
13
+ forceRender: false
12
14
  };
13
- export const Cascader = p => {
15
+ export const Cascader = forwardRef((p, ref) => {
14
16
  var _a;
15
17
 
16
18
  const {
@@ -21,6 +23,29 @@ export const Cascader = p => {
21
23
  cancelText: locale.common.cancel,
22
24
  placeholder: locale.Cascader.placeholder
23
25
  }, p);
26
+ const [visible, setVisible] = usePropsValue({
27
+ value: props.visible,
28
+ defaultValue: false,
29
+ onChange: v => {
30
+ var _a;
31
+
32
+ if (v === false) {
33
+ (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
34
+ }
35
+ }
36
+ });
37
+ const actions = {
38
+ toggle: () => {
39
+ setVisible(v => !v);
40
+ },
41
+ open: () => {
42
+ setVisible(true);
43
+ },
44
+ close: () => {
45
+ setVisible(false);
46
+ }
47
+ };
48
+ useImperativeHandle(ref, () => actions);
24
49
  const [value, setValue] = usePropsValue(Object.assign(Object.assign({}, props), {
25
50
  onChange: val => {
26
51
  var _a;
@@ -31,12 +56,12 @@ export const Cascader = p => {
31
56
  const generateValueExtend = useCascaderValueExtend(props.options);
32
57
  const [innerValue, setInnerValue] = useState(value);
33
58
  useEffect(() => {
34
- if (!props.visible) {
59
+ if (!visible) {
35
60
  setInnerValue(value);
36
61
  }
37
- }, [props.visible]);
62
+ }, [visible]);
38
63
  useEffect(() => {
39
- if (!props.visible) {
64
+ if (!visible) {
40
65
  setInnerValue(value);
41
66
  }
42
67
  }, [value]);
@@ -47,20 +72,18 @@ export const Cascader = p => {
47
72
  }, React.createElement("a", {
48
73
  className: `${classPrefix}-header-button`,
49
74
  onClick: () => {
50
- var _a, _b;
75
+ var _a;
51
76
 
52
77
  (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(props);
53
- (_b = props.onClose) === null || _b === void 0 ? void 0 : _b.call(props);
78
+ setVisible(false);
54
79
  }
55
80
  }, props.cancelText), React.createElement("div", {
56
81
  className: `${classPrefix}-header-title`
57
82
  }, props.title), React.createElement("a", {
58
83
  className: `${classPrefix}-header-button`,
59
84
  onClick: () => {
60
- var _a;
61
-
62
85
  setValue(innerValue);
63
- (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
86
+ setVisible(false);
64
87
  }
65
88
  }, props.confirmText)), React.createElement("div", {
66
89
  className: `${classPrefix}-body`
@@ -71,26 +94,27 @@ export const Cascader = p => {
71
94
 
72
95
  setInnerValue(val);
73
96
 
74
- if (props.visible) {
97
+ if (visible) {
75
98
  (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, val, ext);
76
99
  }
77
100
  }
78
101
  })))));
79
102
  const popupElement = React.createElement(Popup, {
80
- visible: props.visible,
103
+ visible: visible,
81
104
  position: 'bottom',
82
105
  onMaskClick: () => {
83
- var _a, _b;
106
+ var _a;
84
107
 
85
108
  (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(props);
86
- (_b = props.onClose) === null || _b === void 0 ? void 0 : _b.call(props);
109
+ setVisible(false);
87
110
  },
88
111
  getContainer: props.getContainer,
89
- destroyOnClose: true,
112
+ destroyOnClose: props.destroyOnClose,
113
+ forceRender: props.forceRender,
90
114
  afterShow: props.afterShow,
91
115
  afterClose: props.afterClose,
92
116
  onClick: props.onClick,
93
117
  stopPropagation: props.stopPropagation
94
118
  }, cascaderElement);
95
- return React.createElement(React.Fragment, null, popupElement, (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, generateValueExtend(value).items));
96
- };
119
+ return React.createElement(React.Fragment, null, popupElement, (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, generateValueExtend(value).items, actions));
120
+ });
@@ -1,9 +1,28 @@
1
1
  /// <reference types="react" />
2
2
  import { prompt } from './prompt';
3
3
  import './cascader.less';
4
- export type { CascaderProps } from './cascader';
4
+ export type { CascaderProps, CascaderRef, CascaderActions } from './cascader';
5
5
  export type { CascaderValue, CascaderValueExtend, CascaderOption, } from '../cascader-view';
6
- declare const _default: import("react").FC<import("./cascader").CascaderProps> & {
6
+ declare const _default: import("react").ForwardRefExoticComponent<{
7
+ options: import("../cascader-view").CascaderOption[];
8
+ value?: string[] | undefined;
9
+ defaultValue?: string[] | undefined;
10
+ placeholder?: string | undefined;
11
+ onSelect?: ((value: string[], extend: import("../cascader-view").CascaderValueExtend) => void) | undefined;
12
+ onConfirm?: ((value: string[], extend: import("../cascader-view").CascaderValueExtend) => void) | undefined;
13
+ onCancel?: (() => void) | undefined;
14
+ onClose?: (() => void) | undefined;
15
+ visible?: boolean | undefined;
16
+ title?: import("react").ReactNode;
17
+ confirmText?: import("react").ReactNode;
18
+ cancelText?: import("react").ReactNode;
19
+ children?: ((items: (import("../cascader-view").CascaderOption | null)[], actions: import("./cascader").CascaderActions) => import("react").ReactNode) | undefined;
20
+ onTabsChange?: ((index: number) => void) | undefined;
21
+ } & Pick<import("../popup").PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
22
+ className?: string | undefined;
23
+ style?: (import("react").CSSProperties & Partial<Record<never, string>>) | undefined;
24
+ tabIndex?: number | undefined;
25
+ } & import("react").AriaAttributes & import("react").RefAttributes<import("./cascader").CascaderActions>> & {
7
26
  prompt: typeof prompt;
8
27
  optionSkeleton: import("../cascader-view").CascaderOption[];
9
28
  };
@@ -26,4 +26,15 @@
26
26
  .adm-center-popup-body {
27
27
  background-color: var(--background-color);
28
28
  border-radius: var(--border-radius);
29
+ }
30
+
31
+ .adm-center-popup-close {
32
+ position: absolute;
33
+ z-index: 100;
34
+ right: 16px;
35
+ top: 16px;
36
+ cursor: pointer;
37
+ padding: 8px;
38
+ font-size: 36px;
39
+ color: var(--adm-color-weak);
29
40
  }
@@ -1,23 +1,7 @@
1
- import React, { FC, PropsWithChildren } from 'react';
2
- import { GetContainer } from '../../utils/render-to-container';
3
- import { MaskProps } from '../mask';
4
- import { PropagationEvent } from '../../utils/with-stop-propagation';
1
+ import { FC, PropsWithChildren } from 'react';
5
2
  import { NativeProps } from '../../utils/native-props';
6
- export declare type CenterPopupProps = PropsWithChildren<{
7
- afterClose?: () => void;
8
- afterShow?: () => void;
9
- bodyClassName?: string;
10
- bodyStyle?: React.CSSProperties;
11
- destroyOnClose?: boolean;
12
- disableBodyScroll?: boolean;
13
- forceRender?: boolean;
14
- getContainer?: GetContainer;
15
- mask?: boolean;
16
- maskClassName?: string;
17
- maskStyle?: MaskProps['style'];
18
- onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
19
- onMaskClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
20
- stopPropagation?: PropagationEvent[];
21
- visible?: boolean;
3
+ import { PopupBaseProps } from '../popup/popup-base-props';
4
+ export declare type CenterPopupProps = PopupBaseProps & PropsWithChildren<{
5
+ role?: string;
22
6
  }> & NativeProps<'--background-color' | '--border-radius' | '--max-width' | '--min-width' | '--z-index'>;
23
7
  export declare const CenterPopup: FC<CenterPopupProps>;
@@ -10,16 +10,9 @@ import classNames from 'classnames';
10
10
  import { withNativeProps } from '../../utils/native-props';
11
11
  import { ShouldRender } from '../../utils/should-render';
12
12
  import { useLockScroll } from '../../utils/use-lock-scroll';
13
- const defaultProps = {
14
- destroyOnClose: false,
15
- disableBodyScroll: true,
16
- forceRender: false,
17
- getContainer: null,
18
- mask: true,
19
- showCloseButton: false,
20
- stopPropagation: ['click'],
21
- visible: false
22
- };
13
+ import { CloseOutline } from 'antd-mobile-icons';
14
+ import { defaultPopupBaseProps } from '../popup/popup-base-props';
15
+ const defaultProps = defaultPopupBaseProps;
23
16
  export const CenterPopup = p => {
24
17
  const props = mergeProps(defaultProps, p);
25
18
  const unmountedRef = useUnmountedRef();
@@ -68,16 +61,34 @@ export const CenterPopup = p => {
68
61
  visible: maskVisible,
69
62
  forceRender: props.forceRender,
70
63
  destroyOnClose: props.destroyOnClose,
71
- onMaskClick: props.onMaskClick,
64
+ onMaskClick: e => {
65
+ var _a, _b;
66
+
67
+ (_a = props.onMaskClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
68
+
69
+ if (props.closeOnMaskClick) {
70
+ (_b = props.onClose) === null || _b === void 0 ? void 0 : _b.call(props);
71
+ }
72
+ },
72
73
  style: props.maskStyle,
73
74
  className: classNames('adm-center-popup-mask', props.maskClassName),
74
- disableBodyScroll: false
75
+ disableBodyScroll: false,
76
+ stopPropagation: props.stopPropagation
75
77
  }), React.createElement("div", {
76
- className: 'adm-center-popup-wrap'
78
+ className: 'adm-center-popup-wrap',
79
+ role: props.role,
80
+ "aria-label": props['aria-label']
77
81
  }, React.createElement(animated.div, {
78
82
  style: style,
79
83
  ref: ref
80
- }, body)))));
84
+ }, props.showCloseButton && React.createElement("a", {
85
+ className: classNames('adm-center-popup-close', 'adm-plain-anchor'),
86
+ onClick: () => {
87
+ var _a;
88
+
89
+ (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
90
+ }
91
+ }, React.createElement(CloseOutline, null)), body)))));
81
92
  return React.createElement(ShouldRender, {
82
93
  active: active,
83
94
  forceRender: props.forceRender,
@@ -1,4 +1,4 @@
1
- import React, { FC } from 'react';
1
+ import React from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  export declare type CheckboxValue = string | number;
4
4
  export declare type CheckboxProps = {
@@ -13,4 +13,24 @@ export declare type CheckboxProps = {
13
13
  icon?: (checked: boolean, indeterminate: boolean) => React.ReactNode;
14
14
  children?: React.ReactNode;
15
15
  } & NativeProps<'--icon-size' | '--font-size' | '--gap'>;
16
- export declare const Checkbox: FC<CheckboxProps>;
16
+ export declare type CheckboxRef = {
17
+ check: () => void;
18
+ uncheck: () => void;
19
+ toggle: () => void;
20
+ };
21
+ export declare const Checkbox: React.ForwardRefExoticComponent<{
22
+ checked?: boolean | undefined;
23
+ defaultChecked?: boolean | undefined;
24
+ disabled?: boolean | undefined;
25
+ onChange?: ((checked: boolean) => void) | undefined;
26
+ value?: CheckboxValue | undefined;
27
+ indeterminate?: boolean | undefined;
28
+ block?: boolean | undefined;
29
+ id?: string | undefined;
30
+ icon?: ((checked: boolean, indeterminate: boolean) => React.ReactNode) | undefined;
31
+ children?: React.ReactNode;
32
+ } & {
33
+ className?: string | undefined;
34
+ style?: (React.CSSProperties & Partial<Record<"--font-size" | "--icon-size" | "--gap", string>>) | undefined;
35
+ tabIndex?: number | undefined;
36
+ } & React.AriaAttributes & React.RefAttributes<CheckboxRef>>;
@@ -1,4 +1,4 @@
1
- import React, { useContext } from 'react';
1
+ import React, { forwardRef, useContext, useImperativeHandle } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import classNames from 'classnames';
4
4
  import { CheckboxGroupContext } from './group-context';
@@ -14,7 +14,7 @@ const defaultProps = {
14
14
  defaultChecked: false,
15
15
  indeterminate: false
16
16
  };
17
- export const Checkbox = p => {
17
+ export const Checkbox = forwardRef((p, ref) => {
18
18
  const groupContext = useContext(CheckboxGroupContext);
19
19
  const props = mergeProps(defaultProps, p);
20
20
  let [checked, setChecked] = usePropsValue({
@@ -55,6 +55,18 @@ export const Checkbox = p => {
55
55
  disabled = disabled || groupContext.disabled;
56
56
  }
57
57
 
58
+ useImperativeHandle(ref, () => ({
59
+ check: () => {
60
+ setChecked(true);
61
+ },
62
+ uncheck: () => {
63
+ setChecked(false);
64
+ },
65
+ toggle: () => {
66
+ setChecked(!checked);
67
+ }
68
+ }));
69
+
58
70
  const renderIcon = () => {
59
71
  if (props.icon) {
60
72
  return React.createElement("div", {
@@ -83,4 +95,4 @@ export const Checkbox = p => {
83
95
  }), renderIcon(), props.children && React.createElement("div", {
84
96
  className: `${classPrefix}-content`
85
97
  }, props.children)));
86
- };
98
+ });
@@ -1,8 +1,23 @@
1
1
  /// <reference types="react" />
2
2
  import './checkbox.less';
3
- export type { CheckboxValue, CheckboxProps } from './checkbox';
3
+ export type { CheckboxValue, CheckboxProps, CheckboxRef } from './checkbox';
4
4
  export type { CheckboxGroupProps } from './group';
5
- declare const _default: import("react").FC<import("./checkbox").CheckboxProps> & {
5
+ declare const _default: import("react").ForwardRefExoticComponent<{
6
+ checked?: boolean | undefined;
7
+ defaultChecked?: boolean | undefined;
8
+ disabled?: boolean | undefined;
9
+ onChange?: ((checked: boolean) => void) | undefined;
10
+ value?: import("./checkbox").CheckboxValue | undefined;
11
+ indeterminate?: boolean | undefined;
12
+ block?: boolean | undefined;
13
+ id?: string | undefined;
14
+ icon?: ((checked: boolean, indeterminate: boolean) => import("react").ReactNode) | undefined;
15
+ children?: import("react").ReactNode;
16
+ } & {
17
+ className?: string | undefined;
18
+ style?: (import("react").CSSProperties & Partial<Record<"--font-size" | "--icon-size" | "--gap", string>>) | undefined;
19
+ tabIndex?: number | undefined;
20
+ } & import("react").AriaAttributes & import("react").RefAttributes<import("./checkbox").CheckboxRef>> & {
6
21
  Group: import("react").FC<import("./group").CheckboxGroupProps>;
7
22
  };
8
23
  export default _default;
@@ -1,17 +1,18 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
+ import { useMemoizedFn } from 'ahooks';
2
3
  export const NativeInput = props => {
3
4
  const inputRef = useRef(null);
5
+ const handleClick = useMemoizedFn(e => {
6
+ e.stopPropagation();
7
+ e.stopImmediatePropagation();
8
+ const latestChecked = e.target.checked;
9
+ if (latestChecked === props.checked) return;
10
+ props.onChange(latestChecked);
11
+ });
4
12
  useEffect(() => {
5
13
  if (props.disabled) return;
6
14
  if (!inputRef.current) return;
7
15
  const input = inputRef.current;
8
-
9
- function handleClick(e) {
10
- e.stopPropagation();
11
- e.stopImmediatePropagation();
12
- props.onChange(input.checked);
13
- }
14
-
15
16
  input.addEventListener('click', handleClick);
16
17
  return () => {
17
18
  input.removeEventListener('click', handleClick);
@@ -19,7 +20,7 @@ export const NativeInput = props => {
19
20
  }, [props.disabled, props.onChange]);
20
21
  return React.createElement("input", {
21
22
  ref: inputRef,
22
- type: 'checkbox',
23
+ type: props.type,
23
24
  checked: props.checked,
24
25
  onChange: () => {},
25
26
  disabled: props.disabled,
@@ -39,21 +39,6 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
39
39
  const maxMinute = max.getMinutes();
40
40
  const maxSecond = max.getSeconds();
41
41
  const rank = precisionRankRecord[precision];
42
-
43
- if (rank >= precisionRankRecord.year) {
44
- const years = [];
45
-
46
- for (let i = minYear; i <= maxYear; i++) {
47
- const value = i.toString();
48
- years.push({
49
- label: renderLabel ? renderLabel('year', i) : value,
50
- value
51
- });
52
- }
53
-
54
- ret.push(years);
55
- }
56
-
57
42
  const selectedYear = parseInt(selected[0]);
58
43
  const firstDayInSelectedMonth = dayjs(convertStringArrayToDate([selected[0], selected[1], '1']));
59
44
  const selectedMonth = parseInt(selected[1]);
@@ -94,6 +79,18 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
94
79
  return column;
95
80
  };
96
81
 
82
+ if (rank >= precisionRankRecord.year) {
83
+ const lower = minYear;
84
+ const upper = maxYear;
85
+ const years = generateColumn(lower, upper, 'year');
86
+ ret.push(years.map(v => {
87
+ return {
88
+ label: renderLabel('year', v),
89
+ value: v.toString()
90
+ };
91
+ }));
92
+ }
93
+
97
94
  if (rank >= precisionRankRecord.month) {
98
95
  const lower = isInMinYear ? minMonth : 1;
99
96
  const upper = isInMaxYear ? maxMonth : 12;