antd-mobile 5.26.0 → 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 (306) hide show
  1. package/2x/README.md +6 -22
  2. package/2x/bundle/antd-mobile.cjs.development.js +1174 -1041
  3. package/2x/bundle/antd-mobile.cjs.js +9 -8
  4. package/2x/bundle/antd-mobile.es.development.js +1012 -879
  5. package/2x/bundle/antd-mobile.es.js +8133 -7949
  6. package/2x/bundle/antd-mobile.umd.development.js +1174 -1041
  7. package/2x/bundle/antd-mobile.umd.js +9 -8
  8. package/2x/cjs/components/action-sheet/index.d.ts +0 -1
  9. package/2x/cjs/components/badge/index.d.ts +0 -1
  10. package/2x/cjs/components/capsule-tabs/index.d.ts +0 -1
  11. package/2x/cjs/components/cascade-picker/index.d.ts +0 -1
  12. package/2x/cjs/components/cascader/index.d.ts +0 -1
  13. package/2x/cjs/components/cascader-view/index.d.ts +0 -1
  14. package/2x/cjs/components/check-list/index.d.ts +0 -1
  15. package/2x/cjs/components/checkbox/group-context.d.ts +0 -1
  16. package/2x/cjs/components/checkbox/index.d.ts +0 -1
  17. package/2x/cjs/components/collapse/index.d.ts +0 -1
  18. package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +2 -3
  19. package/2x/cjs/components/date-picker/date-picker-date-utils.js +14 -12
  20. package/2x/cjs/components/date-picker/date-picker-utils.d.ts +2 -3
  21. package/2x/cjs/components/date-picker/date-picker-utils.js +11 -12
  22. package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +0 -1
  23. package/2x/cjs/components/date-picker/date-picker-week-utils.js +0 -4
  24. package/2x/cjs/components/date-picker/date-picker.d.ts +20 -16
  25. package/2x/cjs/components/date-picker/date-picker.js +12 -3
  26. package/2x/cjs/components/date-picker/index.d.ts +10 -9
  27. package/2x/cjs/components/date-picker/index.js +3 -1
  28. package/2x/cjs/components/date-picker/prompt.d.ts +2 -1
  29. package/2x/cjs/components/date-picker/util.d.ts +4 -0
  30. package/2x/cjs/components/date-picker/util.js +8 -0
  31. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  32. package/2x/cjs/components/date-picker-view/date-picker-view.js +7 -3
  33. package/2x/cjs/components/date-picker-view/useRenderLabel.d.ts +2 -0
  34. package/2x/cjs/components/date-picker-view/useRenderLabel.js +29 -0
  35. package/2x/cjs/components/dialog/index.d.ts +0 -1
  36. package/2x/cjs/components/dropdown/index.d.ts +0 -1
  37. package/2x/cjs/components/error-block/error-block.d.ts +0 -1
  38. package/2x/cjs/components/error-block/images/busy.d.ts +0 -1
  39. package/2x/cjs/components/error-block/images/default.d.ts +0 -1
  40. package/2x/cjs/components/error-block/images/disconnected.d.ts +0 -1
  41. package/2x/cjs/components/error-block/images/empty.d.ts +0 -1
  42. package/2x/cjs/components/form/index.d.ts +0 -1
  43. package/2x/cjs/components/grid/index.d.ts +0 -1
  44. package/2x/cjs/components/image-uploader/image-uploader.js +6 -3
  45. package/2x/cjs/components/image-viewer/index.d.ts +0 -1
  46. package/2x/cjs/components/index-bar/index.d.ts +0 -1
  47. package/2x/cjs/components/jumbo-tabs/index.d.ts +0 -1
  48. package/2x/cjs/components/list/index.d.ts +0 -1
  49. package/2x/cjs/components/modal/index.d.ts +0 -1
  50. package/2x/cjs/components/popover/index.d.ts +0 -1
  51. package/2x/cjs/components/radio/group-context.d.ts +0 -1
  52. package/2x/cjs/components/radio/index.d.ts +0 -1
  53. package/2x/cjs/components/result-page/index.d.ts +0 -1
  54. package/2x/cjs/components/side-bar/index.d.ts +0 -1
  55. package/2x/cjs/components/skeleton/index.d.ts +0 -1
  56. package/2x/cjs/components/slider/slider.js +8 -3
  57. package/2x/cjs/components/stepper/stepper.d.ts +23 -16
  58. package/2x/cjs/components/stepper/stepper.js +69 -35
  59. package/2x/cjs/components/steps/index.d.ts +0 -1
  60. package/2x/cjs/components/swiper/index.d.ts +0 -1
  61. package/2x/cjs/components/tab-bar/index.d.ts +0 -1
  62. package/2x/cjs/components/tabs/index.d.ts +0 -1
  63. package/2x/cjs/components/tree-select/index.d.ts +0 -1
  64. package/2x/cjs/locales/base.d.ts +3 -0
  65. package/2x/cjs/locales/base.js +3 -0
  66. package/2x/cjs/locales/en-US.d.ts +3 -0
  67. package/2x/cjs/locales/es-ES.d.ts +3 -0
  68. package/2x/cjs/locales/fa-IR.d.ts +3 -0
  69. package/2x/cjs/locales/fr-FR.d.ts +3 -0
  70. package/2x/cjs/locales/id-ID.d.ts +3 -0
  71. package/2x/cjs/locales/ja-JP.d.ts +3 -0
  72. package/2x/cjs/locales/kk-KZ.d.ts +3 -0
  73. package/2x/cjs/locales/ko-KR.d.ts +3 -0
  74. package/2x/cjs/locales/zh-CN.d.ts +3 -0
  75. package/2x/cjs/locales/zh-CN.js +3 -0
  76. package/2x/cjs/locales/zh-HK.d.ts +3 -0
  77. package/2x/cjs/locales/zh-TW.d.ts +3 -0
  78. package/2x/cjs/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  79. package/2x/cjs/utils/use-ref-state.d.ts +0 -1
  80. package/2x/es/components/action-sheet/index.d.ts +0 -1
  81. package/2x/es/components/badge/index.d.ts +0 -1
  82. package/2x/es/components/capsule-tabs/index.d.ts +0 -1
  83. package/2x/es/components/cascade-picker/index.d.ts +0 -1
  84. package/2x/es/components/cascader/index.d.ts +0 -1
  85. package/2x/es/components/cascader-view/index.d.ts +0 -1
  86. package/2x/es/components/check-list/index.d.ts +0 -1
  87. package/2x/es/components/checkbox/group-context.d.ts +0 -1
  88. package/2x/es/components/checkbox/index.d.ts +0 -1
  89. package/2x/es/components/collapse/index.d.ts +0 -1
  90. package/2x/es/components/date-picker/date-picker-date-utils.d.ts +2 -3
  91. package/2x/es/components/date-picker/date-picker-date-utils.js +14 -11
  92. package/2x/es/components/date-picker/date-picker-utils.d.ts +2 -3
  93. package/2x/es/components/date-picker/date-picker-utils.js +9 -9
  94. package/2x/es/components/date-picker/date-picker-week-utils.d.ts +0 -1
  95. package/2x/es/components/date-picker/date-picker-week-utils.js +0 -3
  96. package/2x/es/components/date-picker/date-picker.d.ts +20 -16
  97. package/2x/es/components/date-picker/date-picker.js +13 -4
  98. package/2x/es/components/date-picker/index.d.ts +10 -9
  99. package/2x/es/components/date-picker/index.js +3 -1
  100. package/2x/es/components/date-picker/prompt.d.ts +2 -1
  101. package/2x/es/components/date-picker/util.d.ts +4 -0
  102. package/2x/es/components/date-picker/util.js +1 -0
  103. package/2x/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  104. package/2x/es/components/date-picker-view/date-picker-view.js +8 -4
  105. package/2x/es/components/date-picker-view/useRenderLabel.d.ts +2 -0
  106. package/2x/es/components/date-picker-view/useRenderLabel.js +23 -0
  107. package/2x/es/components/dialog/index.d.ts +0 -1
  108. package/2x/es/components/dropdown/index.d.ts +0 -1
  109. package/2x/es/components/error-block/error-block.d.ts +0 -1
  110. package/2x/es/components/error-block/images/busy.d.ts +0 -1
  111. package/2x/es/components/error-block/images/default.d.ts +0 -1
  112. package/2x/es/components/error-block/images/disconnected.d.ts +0 -1
  113. package/2x/es/components/error-block/images/empty.d.ts +0 -1
  114. package/2x/es/components/form/index.d.ts +0 -1
  115. package/2x/es/components/grid/index.d.ts +0 -1
  116. package/2x/es/components/image-uploader/image-uploader.js +6 -3
  117. package/2x/es/components/image-viewer/index.d.ts +0 -1
  118. package/2x/es/components/index-bar/index.d.ts +0 -1
  119. package/2x/es/components/jumbo-tabs/index.d.ts +0 -1
  120. package/2x/es/components/list/index.d.ts +0 -1
  121. package/2x/es/components/modal/index.d.ts +0 -1
  122. package/2x/es/components/popover/index.d.ts +0 -1
  123. package/2x/es/components/radio/group-context.d.ts +0 -1
  124. package/2x/es/components/radio/index.d.ts +0 -1
  125. package/2x/es/components/result-page/index.d.ts +0 -1
  126. package/2x/es/components/side-bar/index.d.ts +0 -1
  127. package/2x/es/components/skeleton/index.d.ts +0 -1
  128. package/2x/es/components/slider/slider.js +8 -3
  129. package/2x/es/components/stepper/stepper.d.ts +23 -16
  130. package/2x/es/components/stepper/stepper.js +68 -33
  131. package/2x/es/components/steps/index.d.ts +0 -1
  132. package/2x/es/components/swiper/index.d.ts +0 -1
  133. package/2x/es/components/tab-bar/index.d.ts +0 -1
  134. package/2x/es/components/tabs/index.d.ts +0 -1
  135. package/2x/es/components/tree-select/index.d.ts +0 -1
  136. package/2x/es/locales/base.d.ts +3 -0
  137. package/2x/es/locales/base.js +3 -0
  138. package/2x/es/locales/en-US.d.ts +3 -0
  139. package/2x/es/locales/es-ES.d.ts +3 -0
  140. package/2x/es/locales/fa-IR.d.ts +3 -0
  141. package/2x/es/locales/fr-FR.d.ts +3 -0
  142. package/2x/es/locales/id-ID.d.ts +3 -0
  143. package/2x/es/locales/ja-JP.d.ts +3 -0
  144. package/2x/es/locales/kk-KZ.d.ts +3 -0
  145. package/2x/es/locales/ko-KR.d.ts +3 -0
  146. package/2x/es/locales/zh-CN.d.ts +3 -0
  147. package/2x/es/locales/zh-CN.js +3 -0
  148. package/2x/es/locales/zh-HK.d.ts +3 -0
  149. package/2x/es/locales/zh-TW.d.ts +3 -0
  150. package/2x/es/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  151. package/2x/es/utils/use-ref-state.d.ts +0 -1
  152. package/2x/package.json +3 -2
  153. package/README.md +6 -22
  154. package/bundle/antd-mobile.cjs.development.js +1174 -1041
  155. package/bundle/antd-mobile.cjs.js +9 -8
  156. package/bundle/antd-mobile.compatible.umd.js +1 -1
  157. package/bundle/antd-mobile.es.development.js +1012 -879
  158. package/bundle/antd-mobile.es.js +8133 -7949
  159. package/bundle/antd-mobile.umd.development.js +1174 -1041
  160. package/bundle/antd-mobile.umd.js +9 -8
  161. package/cjs/components/action-sheet/index.d.ts +0 -1
  162. package/cjs/components/badge/index.d.ts +0 -1
  163. package/cjs/components/capsule-tabs/index.d.ts +0 -1
  164. package/cjs/components/cascade-picker/index.d.ts +0 -1
  165. package/cjs/components/cascader/index.d.ts +0 -1
  166. package/cjs/components/cascader-view/index.d.ts +0 -1
  167. package/cjs/components/check-list/index.d.ts +0 -1
  168. package/cjs/components/checkbox/group-context.d.ts +0 -1
  169. package/cjs/components/checkbox/index.d.ts +0 -1
  170. package/cjs/components/collapse/index.d.ts +0 -1
  171. package/cjs/components/date-picker/date-picker-date-utils.d.ts +2 -3
  172. package/cjs/components/date-picker/date-picker-date-utils.js +14 -12
  173. package/cjs/components/date-picker/date-picker-utils.d.ts +2 -3
  174. package/cjs/components/date-picker/date-picker-utils.js +11 -12
  175. package/cjs/components/date-picker/date-picker-week-utils.d.ts +0 -1
  176. package/cjs/components/date-picker/date-picker-week-utils.js +0 -4
  177. package/cjs/components/date-picker/date-picker.d.ts +20 -16
  178. package/cjs/components/date-picker/date-picker.js +12 -3
  179. package/cjs/components/date-picker/index.d.ts +10 -9
  180. package/cjs/components/date-picker/index.js +3 -1
  181. package/cjs/components/date-picker/prompt.d.ts +2 -1
  182. package/cjs/components/date-picker/util.d.ts +4 -0
  183. package/cjs/components/date-picker/util.js +8 -0
  184. package/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  185. package/cjs/components/date-picker-view/date-picker-view.js +7 -3
  186. package/cjs/components/date-picker-view/useRenderLabel.d.ts +2 -0
  187. package/cjs/components/date-picker-view/useRenderLabel.js +29 -0
  188. package/cjs/components/dialog/index.d.ts +0 -1
  189. package/cjs/components/dropdown/index.d.ts +0 -1
  190. package/cjs/components/error-block/error-block.d.ts +0 -1
  191. package/cjs/components/error-block/images/busy.d.ts +0 -1
  192. package/cjs/components/error-block/images/default.d.ts +0 -1
  193. package/cjs/components/error-block/images/disconnected.d.ts +0 -1
  194. package/cjs/components/error-block/images/empty.d.ts +0 -1
  195. package/cjs/components/form/index.d.ts +0 -1
  196. package/cjs/components/grid/index.d.ts +0 -1
  197. package/cjs/components/image-uploader/image-uploader.js +6 -3
  198. package/cjs/components/image-viewer/index.d.ts +0 -1
  199. package/cjs/components/index-bar/index.d.ts +0 -1
  200. package/cjs/components/jumbo-tabs/index.d.ts +0 -1
  201. package/cjs/components/list/index.d.ts +0 -1
  202. package/cjs/components/modal/index.d.ts +0 -1
  203. package/cjs/components/popover/index.d.ts +0 -1
  204. package/cjs/components/radio/group-context.d.ts +0 -1
  205. package/cjs/components/radio/index.d.ts +0 -1
  206. package/cjs/components/result-page/index.d.ts +0 -1
  207. package/cjs/components/side-bar/index.d.ts +0 -1
  208. package/cjs/components/skeleton/index.d.ts +0 -1
  209. package/cjs/components/slider/slider.js +8 -3
  210. package/cjs/components/stepper/stepper.d.ts +23 -16
  211. package/cjs/components/stepper/stepper.js +69 -35
  212. package/cjs/components/steps/index.d.ts +0 -1
  213. package/cjs/components/swiper/index.d.ts +0 -1
  214. package/cjs/components/tab-bar/index.d.ts +0 -1
  215. package/cjs/components/tabs/index.d.ts +0 -1
  216. package/cjs/components/tree-select/index.d.ts +0 -1
  217. package/cjs/locales/base.d.ts +3 -0
  218. package/cjs/locales/base.js +3 -0
  219. package/cjs/locales/en-US.d.ts +3 -0
  220. package/cjs/locales/es-ES.d.ts +3 -0
  221. package/cjs/locales/fa-IR.d.ts +3 -0
  222. package/cjs/locales/fr-FR.d.ts +3 -0
  223. package/cjs/locales/id-ID.d.ts +3 -0
  224. package/cjs/locales/ja-JP.d.ts +3 -0
  225. package/cjs/locales/kk-KZ.d.ts +3 -0
  226. package/cjs/locales/ko-KR.d.ts +3 -0
  227. package/cjs/locales/zh-CN.d.ts +3 -0
  228. package/cjs/locales/zh-CN.js +3 -0
  229. package/cjs/locales/zh-HK.d.ts +3 -0
  230. package/cjs/locales/zh-TW.d.ts +3 -0
  231. package/cjs/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  232. package/cjs/utils/use-ref-state.d.ts +0 -1
  233. package/es/components/action-sheet/index.d.ts +0 -1
  234. package/es/components/badge/index.d.ts +0 -1
  235. package/es/components/capsule-tabs/index.d.ts +0 -1
  236. package/es/components/cascade-picker/index.d.ts +0 -1
  237. package/es/components/cascader/index.d.ts +0 -1
  238. package/es/components/cascader-view/index.d.ts +0 -1
  239. package/es/components/check-list/index.d.ts +0 -1
  240. package/es/components/checkbox/group-context.d.ts +0 -1
  241. package/es/components/checkbox/index.d.ts +0 -1
  242. package/es/components/collapse/index.d.ts +0 -1
  243. package/es/components/date-picker/date-picker-date-utils.d.ts +2 -3
  244. package/es/components/date-picker/date-picker-date-utils.js +14 -11
  245. package/es/components/date-picker/date-picker-utils.d.ts +2 -3
  246. package/es/components/date-picker/date-picker-utils.js +9 -9
  247. package/es/components/date-picker/date-picker-week-utils.d.ts +0 -1
  248. package/es/components/date-picker/date-picker-week-utils.js +0 -3
  249. package/es/components/date-picker/date-picker.d.ts +20 -16
  250. package/es/components/date-picker/date-picker.js +13 -4
  251. package/es/components/date-picker/index.d.ts +10 -9
  252. package/es/components/date-picker/index.js +3 -1
  253. package/es/components/date-picker/prompt.d.ts +2 -1
  254. package/es/components/date-picker/util.d.ts +4 -0
  255. package/es/components/date-picker/util.js +1 -0
  256. package/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  257. package/es/components/date-picker-view/date-picker-view.js +8 -4
  258. package/es/components/date-picker-view/useRenderLabel.d.ts +2 -0
  259. package/es/components/date-picker-view/useRenderLabel.js +23 -0
  260. package/es/components/dialog/index.d.ts +0 -1
  261. package/es/components/dropdown/index.d.ts +0 -1
  262. package/es/components/error-block/error-block.d.ts +0 -1
  263. package/es/components/error-block/images/busy.d.ts +0 -1
  264. package/es/components/error-block/images/default.d.ts +0 -1
  265. package/es/components/error-block/images/disconnected.d.ts +0 -1
  266. package/es/components/error-block/images/empty.d.ts +0 -1
  267. package/es/components/form/index.d.ts +0 -1
  268. package/es/components/grid/index.d.ts +0 -1
  269. package/es/components/image-uploader/image-uploader.js +6 -3
  270. package/es/components/image-viewer/index.d.ts +0 -1
  271. package/es/components/index-bar/index.d.ts +0 -1
  272. package/es/components/jumbo-tabs/index.d.ts +0 -1
  273. package/es/components/list/index.d.ts +0 -1
  274. package/es/components/modal/index.d.ts +0 -1
  275. package/es/components/popover/index.d.ts +0 -1
  276. package/es/components/radio/group-context.d.ts +0 -1
  277. package/es/components/radio/index.d.ts +0 -1
  278. package/es/components/result-page/index.d.ts +0 -1
  279. package/es/components/side-bar/index.d.ts +0 -1
  280. package/es/components/skeleton/index.d.ts +0 -1
  281. package/es/components/slider/slider.js +8 -3
  282. package/es/components/stepper/stepper.d.ts +23 -16
  283. package/es/components/stepper/stepper.js +68 -33
  284. package/es/components/steps/index.d.ts +0 -1
  285. package/es/components/swiper/index.d.ts +0 -1
  286. package/es/components/tab-bar/index.d.ts +0 -1
  287. package/es/components/tabs/index.d.ts +0 -1
  288. package/es/components/tree-select/index.d.ts +0 -1
  289. package/es/locales/base.d.ts +3 -0
  290. package/es/locales/base.js +3 -0
  291. package/es/locales/en-US.d.ts +3 -0
  292. package/es/locales/es-ES.d.ts +3 -0
  293. package/es/locales/fa-IR.d.ts +3 -0
  294. package/es/locales/fr-FR.d.ts +3 -0
  295. package/es/locales/id-ID.d.ts +3 -0
  296. package/es/locales/ja-JP.d.ts +3 -0
  297. package/es/locales/kk-KZ.d.ts +3 -0
  298. package/es/locales/ko-KR.d.ts +3 -0
  299. package/es/locales/zh-CN.d.ts +3 -0
  300. package/es/locales/zh-CN.js +3 -0
  301. package/es/locales/zh-HK.d.ts +3 -0
  302. package/es/locales/zh-TW.d.ts +3 -0
  303. package/es/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
  304. package/es/utils/use-ref-state.d.ts +0 -1
  305. package/package.json +3 -2
  306. package/umd/antd-mobile.js +1 -1
@@ -1,30 +1,32 @@
1
1
  import classNames from 'classnames';
2
2
  import React, { useEffect, useState } from 'react';
3
3
  import { MinusOutline, AddOutline } from 'antd-mobile-icons';
4
+ import useMergedState from 'rc-util/lib/hooks/useMergedState';
5
+ import getMiniDecimal, { toFixed } from '@rc-component/mini-decimal';
4
6
  import { withNativeProps } from '../../utils/native-props';
5
- import { usePropsValue } from '../../utils/use-props-value';
6
7
  import { mergeProps } from '../../utils/with-default-props';
7
- import { bound } from '../../utils/bound';
8
8
  import Input from '../input';
9
9
  import Button from '../button';
10
- import Big from 'big.js';
11
10
  import { useConfig } from '../config-provider';
12
11
  const classPrefix = `adm-stepper`;
13
12
  const defaultProps = {
14
- defaultValue: 0,
15
13
  step: 1,
16
14
  disabled: false,
17
15
  allowEmpty: false
18
16
  };
19
- export const Stepper = p => {
17
+ export function Stepper(p) {
20
18
  const props = mergeProps(defaultProps, p);
21
19
  const {
20
+ defaultValue = 0,
21
+ value,
22
+ onChange,
22
23
  disabled,
23
24
  step,
24
25
  max,
25
26
  min,
26
27
  inputReadOnly,
27
28
  digits,
29
+ stringMode,
28
30
  formatter,
29
31
  parser
30
32
  } = props;
@@ -32,44 +34,70 @@ export const Stepper = p => {
32
34
  locale
33
35
  } = useConfig();
34
36
  // ========================== Parse / Format ==========================
37
+ const fixedValue = value => {
38
+ const fixedValue = digits !== undefined ? toFixed(value.toString(), '.', digits) : value;
39
+ return fixedValue.toString();
40
+ };
41
+ const getValueAsType = value => stringMode ? value.toString() : value.toNumber();
35
42
  const parseValue = text => {
36
43
  if (text === '') return null;
37
- return parser ? parser(text) : parseFloat(text);
44
+ if (parser) {
45
+ return String(parser(text));
46
+ }
47
+ const decimal = getMiniDecimal(text);
48
+ return decimal.isInvalidate() ? null : decimal.toString();
38
49
  };
39
50
  const formatValue = value => {
40
51
  if (value === null) return '';
41
52
  if (formatter) {
42
53
  return formatter(value);
43
- } else if (digits !== undefined) {
44
- return value.toFixed(digits);
45
54
  } else {
46
- return value.toString();
55
+ return fixedValue(value);
47
56
  }
48
57
  };
49
58
  // ======================== Value & InputValue ========================
50
- const [value, setValue] = usePropsValue(props);
51
- const [inputValue, setInputValue] = useState(() => formatValue(value));
59
+ const [mergedValue, setMergedValue] = useMergedState(defaultValue, {
60
+ value,
61
+ onChange: nextValue => {
62
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);
63
+ }
64
+ });
65
+ const [inputValue, setInputValue] = useState(() => formatValue(mergedValue));
52
66
  // >>>>> Value
53
- function setValueWithCheck(v) {
54
- if (isNaN(v)) return;
55
- let target = bound(v, props.min, props.max);
67
+ function setValueWithCheck(nextValue) {
68
+ if (nextValue.isNaN()) return;
69
+ let target = nextValue;
70
+ // Put into range
71
+ if (min !== undefined) {
72
+ const minDecimal = getMiniDecimal(min);
73
+ if (target.lessEquals(minDecimal)) {
74
+ target = minDecimal;
75
+ }
76
+ }
77
+ if (max !== undefined) {
78
+ const maxDecimal = getMiniDecimal(max);
79
+ if (maxDecimal.lessEquals(target)) {
80
+ target = maxDecimal;
81
+ }
82
+ }
83
+ // Fix digits
56
84
  if (digits !== undefined) {
57
- target = parseFloat(target.toFixed(digits));
85
+ target = getMiniDecimal(fixedValue(getValueAsType(target)));
58
86
  }
59
- setValue(target);
87
+ setMergedValue(getValueAsType(target));
60
88
  }
61
89
  // >>>>> Input
62
90
  const handleInputChange = v => {
63
91
  setInputValue(v);
64
- const value = parseValue(v);
65
- if (value === null) {
92
+ const valueStr = parseValue(v);
93
+ if (valueStr === null) {
66
94
  if (props.allowEmpty) {
67
- setValue(null);
95
+ setMergedValue(null);
68
96
  } else {
69
- setValue(props.defaultValue);
97
+ setMergedValue(defaultValue);
70
98
  }
71
99
  } else {
72
- setValueWithCheck(value);
100
+ setValueWithCheck(getMiniDecimal(valueStr));
73
101
  }
74
102
  };
75
103
  // ============================== Focus ===============================
@@ -79,7 +107,7 @@ export const Stepper = p => {
79
107
  setFocused(nextFocus);
80
108
  // We will convert value to original text when focus
81
109
  if (nextFocus) {
82
- setInputValue(typeof value === 'number' ? String(value) : '');
110
+ setInputValue(mergedValue !== null && mergedValue !== undefined ? String(mergedValue) : '');
83
111
  }
84
112
  }
85
113
  useEffect(() => {
@@ -91,29 +119,36 @@ export const Stepper = p => {
91
119
  // Focus change to format value
92
120
  useEffect(() => {
93
121
  if (!focused) {
94
- setInputValue(formatValue(value));
122
+ setInputValue(formatValue(mergedValue));
95
123
  }
96
- }, [focused, value, digits]);
124
+ }, [focused, mergedValue, digits]);
97
125
  // ============================ Operations ============================
126
+ const handleOffset = positive => {
127
+ let stepValue = getMiniDecimal(step);
128
+ if (!positive) {
129
+ stepValue = stepValue.negate();
130
+ }
131
+ setValueWithCheck(getMiniDecimal(mergedValue !== null && mergedValue !== void 0 ? mergedValue : 0).add(stepValue.toString()));
132
+ };
98
133
  const handleMinus = () => {
99
- setValueWithCheck(Big(value !== null && value !== void 0 ? value : 0).minus(step).toNumber());
134
+ handleOffset(false);
100
135
  };
101
136
  const handlePlus = () => {
102
- setValueWithCheck(Big(value !== null && value !== void 0 ? value : 0).add(step).toNumber());
137
+ handleOffset(true);
103
138
  };
104
139
  const minusDisabled = () => {
105
140
  if (disabled) return true;
106
- if (value === null) return false;
141
+ if (mergedValue === null) return false;
107
142
  if (min !== undefined) {
108
- return value <= min;
143
+ return mergedValue <= min;
109
144
  }
110
145
  return false;
111
146
  };
112
147
  const plusDisabled = () => {
113
148
  if (disabled) return true;
114
- if (value === null) return false;
149
+ if (mergedValue === null) return false;
115
150
  if (max !== undefined) {
116
- return value >= max;
151
+ return mergedValue >= max;
117
152
  }
118
153
  return false;
119
154
  };
@@ -153,8 +188,8 @@ export const Stepper = p => {
153
188
  readOnly: inputReadOnly,
154
189
  role: 'spinbutton',
155
190
  "aria-valuenow": Number(inputValue),
156
- "aria-valuemax": max,
157
- "aria-valuemin": min,
191
+ "aria-valuemax": Number(max),
192
+ "aria-valuemin": Number(min),
158
193
  inputMode: 'decimal'
159
194
  })), React.createElement(Button, {
160
195
  className: `${classPrefix}-plus`,
@@ -165,4 +200,4 @@ export const Stepper = p => {
165
200
  color: 'primary',
166
201
  "aria-label": locale.Stepper.increase
167
202
  }, React.createElement(AddOutline, null))));
168
- };
203
+ }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './steps.less';
3
2
  export type { StepsProps } from './steps';
4
3
  export type { StepProps } from './step';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './swiper.less';
3
2
  export type { SwiperProps, SwiperRef } from './swiper';
4
3
  declare const _default: import("react").ForwardRefExoticComponent<{
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './tab-bar.less';
3
2
  export type { TabBarProps, TabBarItemProps } from './tab-bar';
4
3
  declare const _default: import("react").FC<import("./tab-bar").TabBarProps> & {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './tabs.less';
3
2
  export type { TabsProps, TabProps } from './tabs';
4
3
  declare const _default: import("react").FC<import("./tabs").TabsProps> & {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './tree-select.less';
3
2
  export type { TreeSelectProps, TreeSelectOption } from './tree-select';
4
3
  export type { MultipleProps } from './multiple';
@@ -15,6 +15,9 @@ export declare const base: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -16,6 +16,9 @@ export const base = {
16
16
  Dialog: {
17
17
  ok: 'OK'
18
18
  },
19
+ DatePicker: {
20
+ tillNow: 'Till Now'
21
+ },
19
22
  ErrorBlock: {
20
23
  default: {
21
24
  title: 'Oops, something went wrong',
@@ -15,6 +15,9 @@ declare const enUS: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const esES: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const faIR: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const frFR: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const idID: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const jaJP: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const kkKZ: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const koKR: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const zhCN: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -18,6 +18,9 @@ const zhCN = mergeLocale(base, {
18
18
  Dialog: {
19
19
  ok: '我知道了'
20
20
  },
21
+ DatePicker: {
22
+ tillNow: '至今'
23
+ },
21
24
  ErrorBlock: {
22
25
  default: {
23
26
  title: '页面遇到一些小问题',
@@ -15,6 +15,9 @@ declare const zhHK: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -15,6 +15,9 @@ declare const zhTW: {
15
15
  Dialog: {
16
16
  ok: string;
17
17
  };
18
+ DatePicker: {
19
+ tillNow: string;
20
+ };
18
21
  ErrorBlock: {
19
22
  default: {
20
23
  title: string;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const useIsomorphicUpdateLayoutEffect: typeof import("react").useEffect | typeof import("react").useLayoutEffect;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function useRefState<T>(initialState: T | (() => T)): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>, import("react").MutableRefObject<T>];
package/2x/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.26.0",
3
+ "version": "5.27.0",
4
4
  "dependencies": {
5
5
  "@floating-ui/dom": "^1.0.6",
6
+ "@rc-component/mini-decimal": "^1.0.1",
6
7
  "@react-spring/web": "^9.5.5",
7
8
  "@use-gesture/react": "10.2.20",
8
9
  "ahooks": "^3.7.2",
9
10
  "antd-mobile-icons": "^0.3.0",
10
11
  "antd-mobile-v5-count": "^1.0.1",
11
- "big.js": "^6.2.1",
12
12
  "classnames": "^2.3.2",
13
13
  "dayjs": "^1.11.6",
14
14
  "lodash": "^4.17.21",
15
15
  "rc-field-form": "~1.27.3",
16
+ "rc-util": "^5.24.8",
16
17
  "react-is": "^17.0.2",
17
18
  "runes": "^0.4.3",
18
19
  "staged-components": "^1.1.3",
package/README.md CHANGED
@@ -7,17 +7,7 @@
7
7
  Essential UI blocks for building mobile web apps.
8
8
  </p>
9
9
 
10
- [![npm (tag)](https://img.shields.io/npm/v/antd-mobile)](https://www.npmjs.com/package/antd-mobile)
11
- [![GitHub Release Date](https://img.shields.io/github/release-date/ant-design/ant-design-mobile)](https://github.com/ant-design/ant-design-mobile/releases)
12
- [![npm](https://img.shields.io/npm/dw/antd-mobile)](https://www.npmjs.com/package/antd-mobile)
13
- [![npm](https://img.shields.io/npm/dw/antd-mobile-v5-count?label=downloads%285.x%29)](https://www.npmjs.com/package/antd-mobile)
14
- [![jsdelivr](https://img.shields.io/jsdelivr/npm/hm/antd-mobile)](https://www.jsdelivr.com/package/npm/antd-mobile)
15
- [![gzip size](https://img.badgesize.io/https:/unpkg.com/antd-mobile/umd/antd-mobile.js?label=gzip%20size&compression=gzip)](https://unpkg.com/browse/antd-mobile@5/umd/antd-mobile.js)
16
- [![Commit Activity](https://img.shields.io/github/commit-activity/m/ant-design/ant-design-mobile/master)](https://github.com/ant-design/ant-design-mobile/graphs/contributors)
17
- [![Issues help wanted](https://img.shields.io/github/issues-raw/ant-design/ant-design-mobile/help%20wanted?label=help%20wanted)](https://github.com/ant-design/ant-design-mobile/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
18
- ![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/ant-design/ant-design-mobile/Check/v5)
19
- [![codecov](https://img.shields.io/codecov/c/gh/ant-design/ant-design-mobile?token=2kJyJBg1nK)](https://codecov.io/gh/ant-design/ant-design-mobile)
20
- [![GitHub](https://img.shields.io/github/license/ant-design/ant-design-mobile)](https://github.com/ant-design/ant-design-mobile)
10
+ [![npm (tag)](https://img.shields.io/npm/v/antd-mobile)](https://www.npmjs.com/package/antd-mobile) [![GitHub Release Date](https://img.shields.io/github/release-date/ant-design/ant-design-mobile)](https://github.com/ant-design/ant-design-mobile/releases) [![npm](https://img.shields.io/npm/dw/antd-mobile)](https://www.npmjs.com/package/antd-mobile) [![npm](https://img.shields.io/npm/dw/antd-mobile-v5-count?label=downloads%285.x%29)](https://www.npmjs.com/package/antd-mobile) [![jsdelivr](https://img.shields.io/jsdelivr/npm/hm/antd-mobile)](https://www.jsdelivr.com/package/npm/antd-mobile) [![gzip size](https://img.badgesize.io/https:/unpkg.com/antd-mobile/umd/antd-mobile.js?label=gzip%20size&compression=gzip)](https://unpkg.com/browse/antd-mobile@5/umd/antd-mobile.js) [![Commit Activity](https://img.shields.io/github/commit-activity/m/ant-design/ant-design-mobile/master)](https://github.com/ant-design/ant-design-mobile/graphs/contributors) [![Issues help wanted](https://img.shields.io/github/issues-raw/ant-design/ant-design-mobile/help%20wanted?label=help%20wanted)](https://github.com/ant-design/ant-design-mobile/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) ![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/ant-design/ant-design-mobile/Check/v5) [![codecov](https://img.shields.io/codecov/c/gh/ant-design/ant-design-mobile?token=2kJyJBg1nK)](https://codecov.io/gh/ant-design/ant-design-mobile) [![GitHub](https://img.shields.io/github/license/ant-design/ant-design-mobile)](https://github.com/ant-design/ant-design-mobile)
21
11
 
22
12
  <h4>
23
13
  <a href="https://mobile.ant.design">English Doc</a>
@@ -38,22 +28,16 @@ $ yarn add antd-mobile
38
28
  $ pnpm add antd-mobile
39
29
  ```
40
30
 
41
- - **Fast**: It is carefully optimized for harsh scenes, without configuration, you can have the best package size and
42
- ultimate performance.
43
- - **Customizable**: Based on CSS variables, you can reliably and efficiently adjust the appearance of components or
44
- create your own themes.
31
+ - **Fast**: It is carefully optimized for harsh scenes, without configuration, you can have the best package size and ultimate performance.
32
+ - **Customizable**: Based on CSS variables, you can reliably and efficiently adjust the appearance of components or create your own themes.
45
33
  - **Atomic**: The function of each component, neither more nor less, is exactly what you need.
46
34
  - **Fluent**: With smooth gestures and delicate animation, it helps the product create the ultimate experience.
47
35
 
48
- You can also play with antd-mobile just in browser
49
- with [Codesandbox](https://codesandbox.io/s/antd-mobile-snrxr?file=/package.json). No need to prepare development
50
- environment.
36
+ You can also play with antd-mobile just in browser with [Codesandbox](https://codesandbox.io/s/antd-mobile-snrxr?file=/package.json). No need to prepare development environment.
51
37
 
52
- If you found bugs or would like to request some new features, please consider opening
53
- an [issue](https://github.com/ant-design/ant-design-mobile/issues/new).
38
+ If you found bugs or would like to request some new features, please consider opening an [issue](https://github.com/ant-design/ant-design-mobile/issues/new).
54
39
 
55
- If you have some question about how to use ant-mobile, you can start
56
- a [discussion thread](https://github.com/ant-design/ant-design-mobile/discussions).
40
+ If you have some question about how to use ant-mobile, you can start a [discussion thread](https://github.com/ant-design/ant-design-mobile/discussions).
57
41
 
58
42
  ---
59
43