antd-mobile 5.38.1 → 5.40.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 (368) hide show
  1. package/2x/README.md +8 -1
  2. package/2x/bundle/antd-mobile.cjs.development.js +2518 -1737
  3. package/2x/bundle/antd-mobile.cjs.js +7 -7
  4. package/2x/bundle/antd-mobile.es.development.js +1564 -783
  5. package/2x/bundle/antd-mobile.es.js +7316 -6670
  6. package/2x/bundle/antd-mobile.umd.development.js +2517 -1736
  7. package/2x/bundle/antd-mobile.umd.js +7 -7
  8. package/2x/bundle/style.css +23 -6
  9. package/2x/cjs/components/button/button.d.ts +2 -2
  10. package/2x/cjs/components/button/button.js +1 -0
  11. package/2x/cjs/components/calendar-picker/calendar-picker.d.ts +9 -9
  12. package/2x/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
  13. package/2x/cjs/components/calendar-picker-view/calendar-picker-view.js +21 -11
  14. package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +1 -1
  15. package/2x/cjs/components/date-picker/date-picker-date-utils.js +23 -8
  16. package/2x/cjs/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  17. package/2x/cjs/components/date-picker/date-picker-quarter-utils.js +7 -2
  18. package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +3 -1
  19. package/2x/cjs/components/date-picker/date-picker-week-utils.js +12 -5
  20. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +5 -3
  21. package/2x/cjs/components/date-picker-view/date-picker-view.js +3 -3
  22. package/2x/cjs/components/date-picker-view/useRenderLabel.js +2 -2
  23. package/2x/cjs/components/ellipsis/useMeasure.js +7 -3
  24. package/2x/cjs/components/floating-panel/floating-panel.css +16 -2
  25. package/2x/cjs/components/floating-panel/floating-panel.d.ts +3 -1
  26. package/2x/cjs/components/floating-panel/floating-panel.js +43 -30
  27. package/2x/cjs/components/image-uploader/image-uploader.d.ts +3 -3
  28. package/2x/cjs/components/image-uploader/image-uploader.js +11 -11
  29. package/2x/cjs/components/image-viewer/image-viewer.d.ts +13 -4
  30. package/2x/cjs/components/image-viewer/image-viewer.js +8 -6
  31. package/2x/cjs/components/image-viewer/index.d.ts +4 -1
  32. package/2x/cjs/components/image-viewer/slide.d.ts +5 -1
  33. package/2x/cjs/components/image-viewer/slide.js +10 -5
  34. package/2x/cjs/components/image-viewer/slides.d.ts +4 -1
  35. package/2x/cjs/components/image-viewer/slides.js +14 -12
  36. package/2x/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  37. package/2x/cjs/components/passcode-input/passcode-input.d.ts +7 -5
  38. package/2x/cjs/components/passcode-input/passcode-input.js +7 -6
  39. package/2x/cjs/components/popover/popover.d.ts +2 -2
  40. package/2x/cjs/components/popover/popover.js +11 -11
  41. package/2x/cjs/components/popover/wrapper.d.ts +6 -9
  42. package/2x/cjs/components/popover/wrapper.js +32 -6
  43. package/2x/cjs/components/space/space.css +4 -4
  44. package/2x/cjs/components/swipe-action/swipe-action.d.ts +3 -1
  45. package/2x/cjs/components/swipe-action/swipe-action.js +25 -23
  46. package/2x/cjs/components/virtual-input/virtual-input.css +3 -0
  47. package/2x/cjs/components/virtual-input/virtual-input.js +34 -5
  48. package/2x/cjs/index.d.ts +1 -0
  49. package/2x/cjs/index.js +7 -0
  50. package/2x/cjs/locales/ar-SA.d.ts +1 -0
  51. package/2x/cjs/locales/ar-SA.js +1 -0
  52. package/2x/cjs/locales/base.d.ts +1 -0
  53. package/2x/cjs/locales/base.js +1 -0
  54. package/2x/cjs/locales/cnr-ME.d.ts +1 -0
  55. package/2x/cjs/locales/cnr-ME.js +1 -0
  56. package/2x/cjs/locales/da-DK.d.ts +1 -0
  57. package/2x/cjs/locales/de-DE.d.ts +1 -0
  58. package/2x/cjs/locales/de-DE.js +1 -0
  59. package/2x/cjs/locales/en-US.d.ts +1 -0
  60. package/2x/cjs/locales/es-ES.d.ts +1 -0
  61. package/2x/cjs/locales/fa-IR.d.ts +1 -0
  62. package/2x/cjs/locales/fr-FR.d.ts +1 -0
  63. package/2x/cjs/locales/hr-HR.d.ts +1 -0
  64. package/2x/cjs/locales/hr-HR.js +1 -0
  65. package/2x/cjs/locales/hu-HU.d.ts +1 -0
  66. package/2x/cjs/locales/id-ID.d.ts +1 -0
  67. package/2x/cjs/locales/in-ID.d.ts +1 -0
  68. package/2x/cjs/locales/in-ID.js +1 -0
  69. package/2x/cjs/locales/it-IT.d.ts +1 -0
  70. package/2x/cjs/locales/ja-JP.d.ts +1 -0
  71. package/2x/cjs/locales/kk-KZ.d.ts +1 -0
  72. package/2x/cjs/locales/ko-KR.d.ts +1 -0
  73. package/2x/cjs/locales/ms-MY.d.ts +1 -0
  74. package/2x/cjs/locales/ms-MY.js +1 -0
  75. package/2x/cjs/locales/nb-NO.d.ts +1 -0
  76. package/2x/cjs/locales/nl-NL.d.ts +1 -0
  77. package/2x/cjs/locales/pt-BR.d.ts +1 -0
  78. package/2x/cjs/locales/ru-RU.d.ts +1 -0
  79. package/2x/cjs/locales/ru-RU.js +8 -2
  80. package/2x/cjs/locales/sr-RS.d.ts +1 -0
  81. package/2x/cjs/locales/sr-RS.js +1 -0
  82. package/2x/cjs/locales/th-TH.d.ts +1 -0
  83. package/2x/cjs/locales/th-TH.js +1 -0
  84. package/2x/cjs/locales/tr-TR.d.ts +1 -0
  85. package/2x/cjs/locales/vi-VN.d.ts +1 -0
  86. package/2x/cjs/locales/vi-VN.js +1 -0
  87. package/2x/cjs/locales/zh-CN.js +1 -0
  88. package/2x/cjs/locales/zh-HK.d.ts +1 -0
  89. package/2x/cjs/locales/zh-TW.d.ts +1 -0
  90. package/2x/cjs/utils/render-to-body.d.ts +1 -1
  91. package/2x/cjs/utils/render-to-body.js +2 -9
  92. package/2x/cjs/utils/render.d.ts +1 -9
  93. package/2x/cjs/utils/render.js +10 -68
  94. package/2x/cjs/utils/unstable-render.d.ts +9 -0
  95. package/2x/cjs/utils/unstable-render.js +37 -0
  96. package/2x/es/components/button/button.d.ts +2 -2
  97. package/2x/es/components/button/button.js +1 -0
  98. package/2x/es/components/calendar-picker/calendar-picker.d.ts +9 -9
  99. package/2x/es/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
  100. package/2x/es/components/calendar-picker-view/calendar-picker-view.js +21 -11
  101. package/2x/es/components/date-picker/date-picker-date-utils.d.ts +1 -1
  102. package/2x/es/components/date-picker/date-picker-date-utils.js +23 -8
  103. package/2x/es/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  104. package/2x/es/components/date-picker/date-picker-quarter-utils.js +7 -2
  105. package/2x/es/components/date-picker/date-picker-week-utils.d.ts +3 -1
  106. package/2x/es/components/date-picker/date-picker-week-utils.js +12 -5
  107. package/2x/es/components/date-picker-view/date-picker-view.d.ts +5 -3
  108. package/2x/es/components/date-picker-view/date-picker-view.js +4 -4
  109. package/2x/es/components/date-picker-view/useRenderLabel.js +2 -2
  110. package/2x/es/components/ellipsis/useMeasure.js +7 -3
  111. package/2x/es/components/floating-panel/floating-panel.css +16 -2
  112. package/2x/es/components/floating-panel/floating-panel.d.ts +3 -1
  113. package/2x/es/components/floating-panel/floating-panel.js +31 -19
  114. package/2x/es/components/image-uploader/image-uploader.d.ts +3 -3
  115. package/2x/es/components/image-uploader/image-uploader.js +11 -11
  116. package/2x/es/components/image-viewer/image-viewer.d.ts +13 -4
  117. package/2x/es/components/image-viewer/image-viewer.js +8 -6
  118. package/2x/es/components/image-viewer/index.d.ts +4 -1
  119. package/2x/es/components/image-viewer/slide.d.ts +5 -1
  120. package/2x/es/components/image-viewer/slide.js +11 -6
  121. package/2x/es/components/image-viewer/slides.d.ts +4 -1
  122. package/2x/es/components/image-viewer/slides.js +6 -4
  123. package/2x/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  124. package/2x/es/components/passcode-input/passcode-input.d.ts +7 -5
  125. package/2x/es/components/passcode-input/passcode-input.js +6 -5
  126. package/2x/es/components/popover/popover.d.ts +2 -2
  127. package/2x/es/components/popover/popover.js +10 -10
  128. package/2x/es/components/popover/wrapper.d.ts +6 -9
  129. package/2x/es/components/popover/wrapper.js +30 -5
  130. package/2x/es/components/space/space.css +4 -4
  131. package/2x/es/components/swipe-action/swipe-action.d.ts +3 -1
  132. package/2x/es/components/swipe-action/swipe-action.js +9 -7
  133. package/2x/es/components/virtual-input/virtual-input.css +3 -0
  134. package/2x/es/components/virtual-input/virtual-input.js +34 -5
  135. package/2x/es/index.d.ts +1 -0
  136. package/2x/es/index.js +3 -1
  137. package/2x/es/locales/ar-SA.d.ts +1 -0
  138. package/2x/es/locales/ar-SA.js +1 -0
  139. package/2x/es/locales/base.d.ts +1 -0
  140. package/2x/es/locales/base.js +1 -0
  141. package/2x/es/locales/cnr-ME.d.ts +1 -0
  142. package/2x/es/locales/cnr-ME.js +1 -0
  143. package/2x/es/locales/da-DK.d.ts +1 -0
  144. package/2x/es/locales/de-DE.d.ts +1 -0
  145. package/2x/es/locales/de-DE.js +1 -0
  146. package/2x/es/locales/en-US.d.ts +1 -0
  147. package/2x/es/locales/es-ES.d.ts +1 -0
  148. package/2x/es/locales/fa-IR.d.ts +1 -0
  149. package/2x/es/locales/fr-FR.d.ts +1 -0
  150. package/2x/es/locales/hr-HR.d.ts +1 -0
  151. package/2x/es/locales/hr-HR.js +1 -0
  152. package/2x/es/locales/hu-HU.d.ts +1 -0
  153. package/2x/es/locales/id-ID.d.ts +1 -0
  154. package/2x/es/locales/in-ID.d.ts +1 -0
  155. package/2x/es/locales/in-ID.js +1 -0
  156. package/2x/es/locales/it-IT.d.ts +1 -0
  157. package/2x/es/locales/ja-JP.d.ts +1 -0
  158. package/2x/es/locales/kk-KZ.d.ts +1 -0
  159. package/2x/es/locales/ko-KR.d.ts +1 -0
  160. package/2x/es/locales/ms-MY.d.ts +1 -0
  161. package/2x/es/locales/ms-MY.js +1 -0
  162. package/2x/es/locales/nb-NO.d.ts +1 -0
  163. package/2x/es/locales/nl-NL.d.ts +1 -0
  164. package/2x/es/locales/pt-BR.d.ts +1 -0
  165. package/2x/es/locales/ru-RU.d.ts +1 -0
  166. package/2x/es/locales/ru-RU.js +8 -2
  167. package/2x/es/locales/sr-RS.d.ts +1 -0
  168. package/2x/es/locales/sr-RS.js +1 -0
  169. package/2x/es/locales/th-TH.d.ts +1 -0
  170. package/2x/es/locales/th-TH.js +1 -0
  171. package/2x/es/locales/tr-TR.d.ts +1 -0
  172. package/2x/es/locales/vi-VN.d.ts +1 -0
  173. package/2x/es/locales/vi-VN.js +1 -0
  174. package/2x/es/locales/zh-CN.js +1 -0
  175. package/2x/es/locales/zh-HK.d.ts +1 -0
  176. package/2x/es/locales/zh-TW.d.ts +1 -0
  177. package/2x/es/utils/render-to-body.d.ts +1 -1
  178. package/2x/es/utils/render-to-body.js +2 -9
  179. package/2x/es/utils/render.d.ts +1 -9
  180. package/2x/es/utils/render.js +1 -65
  181. package/2x/es/utils/unstable-render.d.ts +9 -0
  182. package/2x/es/utils/unstable-render.js +28 -0
  183. package/2x/package.json +2 -2
  184. package/README.md +8 -1
  185. package/bundle/antd-mobile.cjs.development.js +2518 -1737
  186. package/bundle/antd-mobile.cjs.js +7 -7
  187. package/bundle/antd-mobile.compatible.umd.js +1 -1
  188. package/bundle/antd-mobile.es.development.js +1564 -783
  189. package/bundle/antd-mobile.es.js +7316 -6670
  190. package/bundle/antd-mobile.umd.development.js +2517 -1736
  191. package/bundle/antd-mobile.umd.js +7 -7
  192. package/bundle/style.css +1 -1
  193. package/cjs/components/button/button.d.ts +2 -2
  194. package/cjs/components/button/button.js +1 -0
  195. package/cjs/components/calendar-picker/calendar-picker.d.ts +9 -9
  196. package/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
  197. package/cjs/components/calendar-picker-view/calendar-picker-view.js +21 -11
  198. package/cjs/components/date-picker/date-picker-date-utils.d.ts +1 -1
  199. package/cjs/components/date-picker/date-picker-date-utils.js +23 -8
  200. package/cjs/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  201. package/cjs/components/date-picker/date-picker-quarter-utils.js +7 -2
  202. package/cjs/components/date-picker/date-picker-week-utils.d.ts +3 -1
  203. package/cjs/components/date-picker/date-picker-week-utils.js +12 -5
  204. package/cjs/components/date-picker-view/date-picker-view.d.ts +5 -3
  205. package/cjs/components/date-picker-view/date-picker-view.js +3 -3
  206. package/cjs/components/date-picker-view/useRenderLabel.js +2 -2
  207. package/cjs/components/ellipsis/useMeasure.js +7 -3
  208. package/cjs/components/floating-panel/floating-panel.css +12 -2
  209. package/cjs/components/floating-panel/floating-panel.d.ts +3 -1
  210. package/cjs/components/floating-panel/floating-panel.js +43 -30
  211. package/cjs/components/image-uploader/image-uploader.d.ts +3 -3
  212. package/cjs/components/image-uploader/image-uploader.js +11 -11
  213. package/cjs/components/image-viewer/image-viewer.d.ts +13 -4
  214. package/cjs/components/image-viewer/image-viewer.js +8 -6
  215. package/cjs/components/image-viewer/index.d.ts +4 -1
  216. package/cjs/components/image-viewer/slide.d.ts +5 -1
  217. package/cjs/components/image-viewer/slide.js +10 -5
  218. package/cjs/components/image-viewer/slides.d.ts +4 -1
  219. package/cjs/components/image-viewer/slides.js +14 -12
  220. package/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  221. package/cjs/components/passcode-input/passcode-input.d.ts +7 -5
  222. package/cjs/components/passcode-input/passcode-input.js +7 -6
  223. package/cjs/components/popover/popover.d.ts +2 -2
  224. package/cjs/components/popover/popover.js +11 -11
  225. package/cjs/components/popover/wrapper.d.ts +6 -9
  226. package/cjs/components/popover/wrapper.js +32 -6
  227. package/cjs/components/space/space.css +3 -3
  228. package/cjs/components/swipe-action/swipe-action.d.ts +3 -1
  229. package/cjs/components/swipe-action/swipe-action.js +25 -23
  230. package/cjs/components/virtual-input/virtual-input.css +3 -0
  231. package/cjs/components/virtual-input/virtual-input.js +34 -5
  232. package/cjs/index.d.ts +1 -0
  233. package/cjs/index.js +7 -0
  234. package/cjs/locales/ar-SA.d.ts +1 -0
  235. package/cjs/locales/ar-SA.js +1 -0
  236. package/cjs/locales/base.d.ts +1 -0
  237. package/cjs/locales/base.js +1 -0
  238. package/cjs/locales/cnr-ME.d.ts +1 -0
  239. package/cjs/locales/cnr-ME.js +1 -0
  240. package/cjs/locales/da-DK.d.ts +1 -0
  241. package/cjs/locales/de-DE.d.ts +1 -0
  242. package/cjs/locales/de-DE.js +1 -0
  243. package/cjs/locales/en-US.d.ts +1 -0
  244. package/cjs/locales/es-ES.d.ts +1 -0
  245. package/cjs/locales/fa-IR.d.ts +1 -0
  246. package/cjs/locales/fr-FR.d.ts +1 -0
  247. package/cjs/locales/hr-HR.d.ts +1 -0
  248. package/cjs/locales/hr-HR.js +1 -0
  249. package/cjs/locales/hu-HU.d.ts +1 -0
  250. package/cjs/locales/id-ID.d.ts +1 -0
  251. package/cjs/locales/in-ID.d.ts +1 -0
  252. package/cjs/locales/in-ID.js +1 -0
  253. package/cjs/locales/it-IT.d.ts +1 -0
  254. package/cjs/locales/ja-JP.d.ts +1 -0
  255. package/cjs/locales/kk-KZ.d.ts +1 -0
  256. package/cjs/locales/ko-KR.d.ts +1 -0
  257. package/cjs/locales/ms-MY.d.ts +1 -0
  258. package/cjs/locales/ms-MY.js +1 -0
  259. package/cjs/locales/nb-NO.d.ts +1 -0
  260. package/cjs/locales/nl-NL.d.ts +1 -0
  261. package/cjs/locales/pt-BR.d.ts +1 -0
  262. package/cjs/locales/ru-RU.d.ts +1 -0
  263. package/cjs/locales/ru-RU.js +8 -2
  264. package/cjs/locales/sr-RS.d.ts +1 -0
  265. package/cjs/locales/sr-RS.js +1 -0
  266. package/cjs/locales/th-TH.d.ts +1 -0
  267. package/cjs/locales/th-TH.js +1 -0
  268. package/cjs/locales/tr-TR.d.ts +1 -0
  269. package/cjs/locales/vi-VN.d.ts +1 -0
  270. package/cjs/locales/vi-VN.js +1 -0
  271. package/cjs/locales/zh-CN.js +1 -0
  272. package/cjs/locales/zh-HK.d.ts +1 -0
  273. package/cjs/locales/zh-TW.d.ts +1 -0
  274. package/cjs/utils/render-to-body.d.ts +1 -1
  275. package/cjs/utils/render-to-body.js +2 -9
  276. package/cjs/utils/render.d.ts +1 -9
  277. package/cjs/utils/render.js +10 -68
  278. package/cjs/utils/unstable-render.d.ts +9 -0
  279. package/cjs/utils/unstable-render.js +37 -0
  280. package/es/components/button/button.d.ts +2 -2
  281. package/es/components/button/button.js +1 -0
  282. package/es/components/calendar-picker/calendar-picker.d.ts +9 -9
  283. package/es/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
  284. package/es/components/calendar-picker-view/calendar-picker-view.js +21 -11
  285. package/es/components/date-picker/date-picker-date-utils.d.ts +1 -1
  286. package/es/components/date-picker/date-picker-date-utils.js +23 -8
  287. package/es/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  288. package/es/components/date-picker/date-picker-quarter-utils.js +7 -2
  289. package/es/components/date-picker/date-picker-week-utils.d.ts +3 -1
  290. package/es/components/date-picker/date-picker-week-utils.js +12 -5
  291. package/es/components/date-picker-view/date-picker-view.d.ts +5 -3
  292. package/es/components/date-picker-view/date-picker-view.js +4 -4
  293. package/es/components/date-picker-view/useRenderLabel.js +2 -2
  294. package/es/components/ellipsis/useMeasure.js +7 -3
  295. package/es/components/floating-panel/floating-panel.css +12 -2
  296. package/es/components/floating-panel/floating-panel.d.ts +3 -1
  297. package/es/components/floating-panel/floating-panel.js +31 -19
  298. package/es/components/image-uploader/image-uploader.d.ts +3 -3
  299. package/es/components/image-uploader/image-uploader.js +11 -11
  300. package/es/components/image-viewer/image-viewer.d.ts +13 -4
  301. package/es/components/image-viewer/image-viewer.js +8 -6
  302. package/es/components/image-viewer/index.d.ts +4 -1
  303. package/es/components/image-viewer/slide.d.ts +5 -1
  304. package/es/components/image-viewer/slide.js +11 -6
  305. package/es/components/image-viewer/slides.d.ts +4 -1
  306. package/es/components/image-viewer/slides.js +6 -4
  307. package/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  308. package/es/components/passcode-input/passcode-input.d.ts +7 -5
  309. package/es/components/passcode-input/passcode-input.js +6 -5
  310. package/es/components/popover/popover.d.ts +2 -2
  311. package/es/components/popover/popover.js +10 -10
  312. package/es/components/popover/wrapper.d.ts +6 -9
  313. package/es/components/popover/wrapper.js +30 -5
  314. package/es/components/space/space.css +3 -3
  315. package/es/components/swipe-action/swipe-action.d.ts +3 -1
  316. package/es/components/swipe-action/swipe-action.js +9 -7
  317. package/es/components/virtual-input/virtual-input.css +3 -0
  318. package/es/components/virtual-input/virtual-input.js +34 -5
  319. package/es/index.d.ts +1 -0
  320. package/es/index.js +3 -1
  321. package/es/locales/ar-SA.d.ts +1 -0
  322. package/es/locales/ar-SA.js +1 -0
  323. package/es/locales/base.d.ts +1 -0
  324. package/es/locales/base.js +1 -0
  325. package/es/locales/cnr-ME.d.ts +1 -0
  326. package/es/locales/cnr-ME.js +1 -0
  327. package/es/locales/da-DK.d.ts +1 -0
  328. package/es/locales/de-DE.d.ts +1 -0
  329. package/es/locales/de-DE.js +1 -0
  330. package/es/locales/en-US.d.ts +1 -0
  331. package/es/locales/es-ES.d.ts +1 -0
  332. package/es/locales/fa-IR.d.ts +1 -0
  333. package/es/locales/fr-FR.d.ts +1 -0
  334. package/es/locales/hr-HR.d.ts +1 -0
  335. package/es/locales/hr-HR.js +1 -0
  336. package/es/locales/hu-HU.d.ts +1 -0
  337. package/es/locales/id-ID.d.ts +1 -0
  338. package/es/locales/in-ID.d.ts +1 -0
  339. package/es/locales/in-ID.js +1 -0
  340. package/es/locales/it-IT.d.ts +1 -0
  341. package/es/locales/ja-JP.d.ts +1 -0
  342. package/es/locales/kk-KZ.d.ts +1 -0
  343. package/es/locales/ko-KR.d.ts +1 -0
  344. package/es/locales/ms-MY.d.ts +1 -0
  345. package/es/locales/ms-MY.js +1 -0
  346. package/es/locales/nb-NO.d.ts +1 -0
  347. package/es/locales/nl-NL.d.ts +1 -0
  348. package/es/locales/pt-BR.d.ts +1 -0
  349. package/es/locales/ru-RU.d.ts +1 -0
  350. package/es/locales/ru-RU.js +8 -2
  351. package/es/locales/sr-RS.d.ts +1 -0
  352. package/es/locales/sr-RS.js +1 -0
  353. package/es/locales/th-TH.d.ts +1 -0
  354. package/es/locales/th-TH.js +1 -0
  355. package/es/locales/tr-TR.d.ts +1 -0
  356. package/es/locales/vi-VN.d.ts +1 -0
  357. package/es/locales/vi-VN.js +1 -0
  358. package/es/locales/zh-CN.js +1 -0
  359. package/es/locales/zh-HK.d.ts +1 -0
  360. package/es/locales/zh-TW.d.ts +1 -0
  361. package/es/utils/render-to-body.d.ts +1 -1
  362. package/es/utils/render-to-body.js +2 -9
  363. package/es/utils/render.d.ts +1 -9
  364. package/es/utils/render.js +1 -65
  365. package/es/utils/unstable-render.d.ts +9 -0
  366. package/es/utils/unstable-render.js +28 -0
  367. package/package.json +2 -2
  368. package/umd/antd-mobile.js +1 -1
@@ -1,2 +1,2 @@
1
1
  import type { ReactElement } from 'react';
2
- export declare function renderToBody(element: ReactElement): () => void;
2
+ export declare function renderToBody(element: ReactElement): import("./unstable-render").UnmountType;
@@ -4,16 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.renderToBody = renderToBody;
7
- var _render = require("./render");
7
+ var _unstableRender = require("./unstable-render");
8
8
  function renderToBody(element) {
9
9
  const container = document.createElement('div');
10
10
  document.body.appendChild(container);
11
- function unmount() {
12
- const unmountResult = (0, _render.unmount)(container);
13
- if (unmountResult && container.parentNode) {
14
- container.parentNode.removeChild(container);
15
- }
16
- }
17
- (0, _render.render)(element, container);
18
- return unmount;
11
+ return (0, _unstableRender.unstableSetRender)()(element, container);
19
12
  }
@@ -1,9 +1 @@
1
- import type { ReactElement } from 'react';
2
- import type { Root } from 'react-dom/client';
3
- declare const MARK = "__antd_mobile_root__";
4
- declare type ContainerType = (Element | DocumentFragment) & {
5
- [MARK]?: Root;
6
- };
7
- export declare function render(node: ReactElement, container: ContainerType): void;
8
- export declare function unmount(container: ContainerType): boolean | Promise<void>;
9
- export {};
1
+ export * from 'rc-util/lib/React/render';
@@ -3,72 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.render = render;
7
- exports.unmount = unmount;
8
- var _tslib = require("tslib");
9
- var ReactDOM = _interopRequireWildcard(require("react-dom"));
10
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
- // Let compiler not to search module usage
13
- const fullClone = Object.assign({}, ReactDOM);
14
- const {
15
- version,
16
- render: reactRender,
17
- unmountComponentAtNode
18
- } = fullClone;
19
- let createRoot;
20
- try {
21
- const mainVersion = Number((version || '').split('.')[0]);
22
- if (mainVersion >= 18 && fullClone.createRoot) {
23
- // eslint-disable-next-line @typescript-eslint/no-var-requires
24
- createRoot = fullClone.createRoot;
25
- }
26
- } catch (e) {
27
- // Do nothing;
28
- }
29
- function toggleWarning(skip) {
30
- const {
31
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
32
- } = fullClone;
33
- if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && typeof __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === 'object') {
34
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;
35
- }
36
- }
37
- const MARK = '__antd_mobile_root__';
38
- function legacyRender(node, container) {
39
- reactRender(node, container);
40
- }
41
- function concurrentRender(node, container) {
42
- toggleWarning(true);
43
- const root = container[MARK] || createRoot(container);
44
- toggleWarning(false);
45
- root.render(node);
46
- container[MARK] = root;
47
- }
48
- function render(node, container) {
49
- if (createRoot) {
50
- concurrentRender(node, container);
51
- return;
52
- }
53
- legacyRender(node, container);
54
- }
55
- // ========================== Unmount =========================
56
- function legacyUnmount(container) {
57
- return unmountComponentAtNode(container);
58
- }
59
- function concurrentUnmount(container) {
60
- return (0, _tslib.__awaiter)(this, void 0, void 0, function* () {
61
- // Delay to unmount to avoid React 18 sync warning
62
- return Promise.resolve().then(() => {
63
- var _a;
64
- (_a = container[MARK]) === null || _a === void 0 ? void 0 : _a.unmount();
65
- delete container[MARK];
66
- });
6
+ var _render = require("rc-util/lib/React/render");
7
+ Object.keys(_render).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _render[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _render[key];
14
+ }
67
15
  });
68
- }
69
- function unmount(container) {
70
- if (createRoot) {
71
- return concurrentUnmount(container);
72
- }
73
- return legacyUnmount(container);
74
- }
16
+ });
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export declare type UnmountType = () => Promise<void>;
3
+ export declare type RenderType = (node: React.ReactElement, container: Element | DocumentFragment) => UnmountType;
4
+ /**
5
+ * @deprecated Set React render function for compatible usage.
6
+ * This is internal usage only compatible with React 19.
7
+ * And will be removed in next major version.
8
+ */
9
+ export declare function unstableSetRender(render?: RenderType): RenderType;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.unstableSetRender = unstableSetRender;
7
+ var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var ReactDOM = _interopRequireWildcard(require("react-dom"));
10
+ var _render = require("./render");
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ const defaultReactRender = (node, container) => {
15
+ // Warning for React 19
16
+ if (process.env.NODE_ENV !== 'production') {
17
+ const majorVersion = parseInt(React.version.split('.')[0], 10);
18
+ const fullKeys = Object.keys(ReactDOM);
19
+ (0, _warning.default)(majorVersion < 19 || fullKeys.includes('createRoot'), `[Compatible] antd-mobile v5 support React is 16 ~ 18. see https://mobile.ant.design/guide/v5-for-19 for compatible.`);
20
+ }
21
+ (0, _render.render)(node, container);
22
+ return () => {
23
+ return (0, _render.unmount)(container);
24
+ };
25
+ };
26
+ let unstableRender = defaultReactRender;
27
+ /**
28
+ * @deprecated Set React render function for compatible usage.
29
+ * This is internal usage only compatible with React 19.
30
+ * And will be removed in next major version.
31
+ */
32
+ function unstableSetRender(render) {
33
+ if (render) {
34
+ unstableRender = render;
35
+ }
36
+ return unstableRender;
37
+ }
@@ -15,7 +15,7 @@ export declare type ButtonProps = {
15
15
  type?: 'submit' | 'reset' | 'button';
16
16
  shape?: 'default' | 'rounded' | 'rectangular';
17
17
  children?: ReactNode;
18
- } & Pick<NativeButtonProps, 'onMouseDown' | 'onMouseUp' | 'onTouchStart' | 'onTouchEnd' | 'id'> & NativeProps<'--text-color' | '--background-color' | '--border-radius' | '--border-width' | '--border-style' | '--border-color'>;
18
+ } & Pick<NativeButtonProps, 'onMouseDown' | 'onMouseUp' | 'onTouchStart' | 'onTouchEnd' | 'id' | 'form'> & NativeProps<'--text-color' | '--background-color' | '--border-radius' | '--border-width' | '--border-style' | '--border-color'>;
19
19
  export declare type ButtonRef = {
20
20
  nativeElement: HTMLButtonElement | null;
21
21
  };
@@ -32,7 +32,7 @@ export declare const Button: React.ForwardRefExoticComponent<{
32
32
  type?: "reset" | "submit" | "button" | undefined;
33
33
  shape?: "default" | "rounded" | "rectangular" | undefined;
34
34
  children?: ReactNode;
35
- } & Pick<NativeButtonProps, "id" | "onTouchStart" | "onMouseDown" | "onMouseUp" | "onTouchEnd"> & {
35
+ } & Pick<NativeButtonProps, "form" | "id" | "onTouchStart" | "onMouseDown" | "onMouseUp" | "onTouchEnd"> & {
36
36
  className?: string | undefined;
37
37
  style?: (React.CSSProperties & Partial<Record<"--border-radius" | "--text-color" | "--background-color" | "--border-width" | "--border-style" | "--border-color", string>>) | undefined;
38
38
  tabIndex?: number | undefined;
@@ -46,6 +46,7 @@ export const Button = forwardRef((p, ref) => {
46
46
  return withNativeProps(props, React.createElement("button", {
47
47
  ref: nativeButtonRef,
48
48
  type: props.type,
49
+ form: props.form,
49
50
  onClick: handleClick,
50
51
  className: classNames(classPrefix, {
51
52
  [`${classPrefix}-${props.color}`]: props.color,
@@ -27,9 +27,9 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
27
27
  title?: React.ReactNode;
28
28
  confirmText?: string | undefined;
29
29
  weekStartsOn?: "Monday" | "Sunday" | undefined;
30
- renderTop?: ((date: Date) => React.ReactNode) | undefined;
31
- renderDate?: ((date: Date) => React.ReactNode) | undefined;
32
- renderBottom?: ((date: Date) => React.ReactNode) | undefined;
30
+ renderTop?: false | import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
31
+ renderDate?: import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
32
+ renderBottom?: false | import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
33
33
  allowClear?: boolean | undefined;
34
34
  max?: Date | undefined;
35
35
  min?: Date | undefined;
@@ -61,9 +61,9 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
61
61
  title?: React.ReactNode;
62
62
  confirmText?: string | undefined;
63
63
  weekStartsOn?: "Monday" | "Sunday" | undefined;
64
- renderTop?: ((date: Date) => React.ReactNode) | undefined;
65
- renderDate?: ((date: Date) => React.ReactNode) | undefined;
66
- renderBottom?: ((date: Date) => React.ReactNode) | undefined;
64
+ renderTop?: false | import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
65
+ renderDate?: import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
66
+ renderBottom?: false | import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
67
67
  allowClear?: boolean | undefined;
68
68
  max?: Date | undefined;
69
69
  min?: Date | undefined;
@@ -95,9 +95,9 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
95
95
  title?: React.ReactNode;
96
96
  confirmText?: string | undefined;
97
97
  weekStartsOn?: "Monday" | "Sunday" | undefined;
98
- renderTop?: ((date: Date) => React.ReactNode) | undefined;
99
- renderDate?: ((date: Date) => React.ReactNode) | undefined;
100
- renderBottom?: ((date: Date) => React.ReactNode) | undefined;
98
+ renderTop?: false | import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
99
+ renderDate?: import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
100
+ renderBottom?: false | import("../calendar-picker-view/calendar-picker-view").CalendarPickerViewColumRender | undefined;
101
101
  allowClear?: boolean | undefined;
102
102
  max?: Date | undefined;
103
103
  min?: Date | undefined;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  import { DateRange, Page } from './convert';
4
4
  export declare const Context: React.Context<{
@@ -9,13 +9,14 @@ export declare type CalendarPickerViewRef = {
9
9
  jumpToToday: () => void;
10
10
  getDateRange: () => DateRange;
11
11
  };
12
+ export declare type CalendarPickerViewColumRender = (date: Date) => ReactNode;
12
13
  export declare type CalendarPickerViewProps = {
13
14
  title?: React.ReactNode | false;
14
15
  confirmText?: string;
15
16
  weekStartsOn?: 'Monday' | 'Sunday';
16
- renderTop?: (date: Date) => React.ReactNode;
17
- renderDate?: (date: Date) => React.ReactNode;
18
- renderBottom?: (date: Date) => React.ReactNode;
17
+ renderTop?: CalendarPickerViewColumRender | false;
18
+ renderDate?: CalendarPickerViewColumRender;
19
+ renderBottom?: CalendarPickerViewColumRender | false;
19
20
  allowClear?: boolean;
20
21
  max?: Date;
21
22
  min?: Date;
@@ -135,7 +135,6 @@ export const CalendarPickerView = forwardRef((p, ref) => {
135
135
  })), React.createElement("div", {
136
136
  className: `${classPrefix}-cells`
137
137
  }, presetEmptyCells, Array(monthIterator.daysInMonth()).fill(null).map((_, index) => {
138
- var _a;
139
138
  const d = monthIterator.date(index + 1);
140
139
  let isSelect = false;
141
140
  let isBegin = false;
@@ -155,21 +154,36 @@ export const CalendarPickerView = forwardRef((p, ref) => {
155
154
  const disabled = props.shouldDisableDate ? props.shouldDisableDate(d.toDate()) : maxDay && d.isAfter(maxDay, 'day') || minDay && d.isBefore(minDay, 'day');
156
155
  const renderTop = () => {
157
156
  var _a;
157
+ if (props.renderTop === false) return null;
158
+ const contentWrapper = content => React.createElement("div", {
159
+ className: `${classPrefix}-cell-top`
160
+ }, content);
158
161
  const top = (_a = props.renderTop) === null || _a === void 0 ? void 0 : _a.call(props, d.toDate());
159
162
  if (top) {
160
- return top;
163
+ return contentWrapper(top);
161
164
  }
162
165
  if (props.selectionMode === 'range') {
166
+ if (isBegin && isEnd) {
167
+ return contentWrapper(locale.Calendar.startAndEnd);
168
+ }
163
169
  if (isBegin) {
164
- return locale.Calendar.start;
170
+ return contentWrapper(locale.Calendar.start);
165
171
  }
166
172
  if (isEnd) {
167
- return locale.Calendar.end;
173
+ return contentWrapper(locale.Calendar.end);
168
174
  }
169
175
  }
170
176
  if (d.isSame(today, 'day') && !isSelect) {
171
- return locale.Calendar.today;
177
+ return contentWrapper(locale.Calendar.today);
172
178
  }
179
+ return contentWrapper(null);
180
+ };
181
+ const renderBottom = () => {
182
+ var _a;
183
+ if (props.renderBottom === false) return null;
184
+ return React.createElement("div", {
185
+ className: `${classPrefix}-cell-bottom`
186
+ }, (_a = props.renderBottom) === null || _a === void 0 ? void 0 : _a.call(props, d.toDate()));
173
187
  };
174
188
  return React.createElement("div", {
175
189
  key: d.valueOf(),
@@ -219,13 +233,9 @@ export const CalendarPickerView = forwardRef((p, ref) => {
219
233
  }
220
234
  }
221
235
  }
222
- }, React.createElement("div", {
223
- className: `${classPrefix}-cell-top`
224
- }, renderTop()), React.createElement("div", {
236
+ }, renderTop(), React.createElement("div", {
225
237
  className: `${classPrefix}-cell-date`
226
- }, props.renderDate ? props.renderDate(d.toDate()) : d.date()), React.createElement("div", {
227
- className: `${classPrefix}-cell-bottom`
228
- }, (_a = props.renderBottom) === null || _a === void 0 ? void 0 : _a.call(props, d.toDate())));
238
+ }, props.renderDate ? props.renderDate(d.toDate()) : d.date()), renderBottom());
229
239
  }))));
230
240
  monthIterator = monthIterator.add(1, 'month');
231
241
  }
@@ -1,6 +1,6 @@
1
+ import { RenderLabel } from '../date-picker-view/date-picker-view';
1
2
  import { PickerColumn } from '../picker';
2
3
  import type { DatePickerFilter } from './date-picker-utils';
3
- import { RenderLabel } from '../date-picker-view/date-picker-view';
4
4
  export declare type DatePrecision = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second';
5
5
  export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: DatePrecision, renderLabel: RenderLabel, filter: DatePickerFilter | undefined, tillNow?: boolean): PickerColumn[];
6
6
  export declare function convertDateToStringArray(date: Date | undefined | null): string[];
@@ -1,7 +1,7 @@
1
1
  import dayjs from 'dayjs';
2
+ import isLeapYear from 'dayjs/plugin/isLeapYear';
2
3
  import isoWeek from 'dayjs/plugin/isoWeek';
3
4
  import isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';
4
- import isLeapYear from 'dayjs/plugin/isLeapYear';
5
5
  import { TILL_NOW } from './util';
6
6
  dayjs.extend(isoWeek);
7
7
  dayjs.extend(isoWeeksInYear);
@@ -35,6 +35,7 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
35
35
  const selectedDay = parseInt(selected[2]);
36
36
  const selectedHour = parseInt(selected[3]);
37
37
  const selectedMinute = parseInt(selected[4]);
38
+ const selectedSecond = parseInt(selected[5]);
38
39
  const isInMinYear = selectedYear === minYear;
39
40
  const isInMaxYear = selectedYear === maxYear;
40
41
  const isInMinMonth = isInMinYear && selectedMonth === minMonth;
@@ -67,7 +68,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
67
68
  const upper = maxYear;
68
69
  const years = generateColumn(lower, upper, 'year');
69
70
  ret.push(years.map(v => ({
70
- label: renderLabel('year', v),
71
+ label: renderLabel('year', v, {
72
+ selected: selectedYear === v
73
+ }),
71
74
  value: v.toString()
72
75
  })));
73
76
  }
@@ -76,7 +79,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
76
79
  const upper = isInMaxYear ? maxMonth : 12;
77
80
  const months = generateColumn(lower, upper, 'month');
78
81
  ret.push(months.map(v => ({
79
- label: renderLabel('month', v),
82
+ label: renderLabel('month', v, {
83
+ selected: selectedMonth === v
84
+ }),
80
85
  value: v.toString()
81
86
  })));
82
87
  }
@@ -85,7 +90,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
85
90
  const upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
86
91
  const days = generateColumn(lower, upper, 'day');
87
92
  ret.push(days.map(v => ({
88
- label: renderLabel('day', v),
93
+ label: renderLabel('day', v, {
94
+ selected: selectedDay === v
95
+ }),
89
96
  value: v.toString()
90
97
  })));
91
98
  }
@@ -94,7 +101,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
94
101
  const upper = isInMaxDay ? maxHour : 23;
95
102
  const hours = generateColumn(lower, upper, 'hour');
96
103
  ret.push(hours.map(v => ({
97
- label: renderLabel('hour', v),
104
+ label: renderLabel('hour', v, {
105
+ selected: selectedHour === v
106
+ }),
98
107
  value: v.toString()
99
108
  })));
100
109
  }
@@ -103,7 +112,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
103
112
  const upper = isInMaxHour ? maxMinute : 59;
104
113
  const minutes = generateColumn(lower, upper, 'minute');
105
114
  ret.push(minutes.map(v => ({
106
- label: renderLabel('minute', v),
115
+ label: renderLabel('minute', v, {
116
+ selected: selectedMinute === v
117
+ }),
107
118
  value: v.toString()
108
119
  })));
109
120
  }
@@ -112,14 +123,18 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
112
123
  const upper = isInMaxMinute ? maxSecond : 59;
113
124
  const seconds = generateColumn(lower, upper, 'second');
114
125
  ret.push(seconds.map(v => ({
115
- label: renderLabel('second', v),
126
+ label: renderLabel('second', v, {
127
+ selected: selectedSecond === v
128
+ }),
116
129
  value: v.toString()
117
130
  })));
118
131
  }
119
132
  // Till Now
120
133
  if (tillNow) {
121
134
  ret[0].push({
122
- label: renderLabel('now', null),
135
+ label: renderLabel('now', null, {
136
+ selected: selected[0] === TILL_NOW
137
+ }),
123
138
  value: TILL_NOW
124
139
  });
125
140
  if (TILL_NOW === (selected === null || selected === void 0 ? void 0 : selected[0])) {
@@ -2,6 +2,8 @@ import type { ReactNode } from 'react';
2
2
  import { PickerColumn } from '../picker';
3
3
  import type { DatePickerFilter } from './date-picker-utils';
4
4
  export declare type QuarterPrecision = 'year' | 'quarter';
5
- export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: QuarterPrecision, renderLabel: (type: QuarterPrecision, data: number) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
5
+ export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: QuarterPrecision, renderLabel: (type: QuarterPrecision, data: number, info: {
6
+ selected: boolean;
7
+ }) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
6
8
  export declare function convertDateToStringArray(date: Date | undefined | null): string[];
7
9
  export declare function convertStringArrayToDate<T extends string | number | null | undefined>(value: T[]): Date;
@@ -17,6 +17,7 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
17
17
  const maxDay = dayjs(max);
18
18
  const minQuarter = minDay.quarter();
19
19
  const maxQuarter = maxDay.quarter();
20
+ const selectedQuarter = parseInt(selected[1]);
20
21
  const generateColumn = (from, to, precision) => {
21
22
  let column = [];
22
23
  for (let i = from; i <= to; i++) {
@@ -39,7 +40,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
39
40
  const upper = maxYear;
40
41
  const years = generateColumn(lower, upper, 'year');
41
42
  ret.push(years.map(v => ({
42
- label: renderLabel('year', v),
43
+ label: renderLabel('year', v, {
44
+ selected: selectedYear === v
45
+ }),
43
46
  value: v.toString()
44
47
  })));
45
48
  }
@@ -48,7 +51,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
48
51
  const upper = isInMaxYear ? maxQuarter : 4;
49
52
  const quarters = generateColumn(lower, upper, 'quarter');
50
53
  ret.push(quarters.map(v => ({
51
- label: renderLabel('quarter', v),
54
+ label: renderLabel('quarter', v, {
55
+ selected: selectedQuarter === v
56
+ }),
52
57
  value: v.toString()
53
58
  })));
54
59
  }
@@ -2,6 +2,8 @@ import type { 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 generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: WeekPrecision, renderLabel: (type: WeekPrecision, data: number) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
5
+ export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: WeekPrecision, renderLabel: (type: WeekPrecision, data: number, info: {
6
+ selected: boolean;
7
+ }) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
6
8
  export declare function convertDateToStringArray(date: Date | undefined | null): string[];
7
9
  export declare function convertStringArrayToDate<T extends string | number | null | undefined>(value: T[]): Date;
@@ -1,7 +1,7 @@
1
1
  import dayjs from 'dayjs';
2
+ import isLeapYear from 'dayjs/plugin/isLeapYear';
2
3
  import isoWeek from 'dayjs/plugin/isoWeek';
3
4
  import isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';
4
- import isLeapYear from 'dayjs/plugin/isLeapYear';
5
5
  dayjs.extend(isoWeek);
6
6
  dayjs.extend(isoWeeksInYear);
7
7
  dayjs.extend(isLeapYear);
@@ -25,6 +25,7 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
25
25
  const minWeekday = minDay.isoWeekday();
26
26
  const maxWeekday = maxDay.isoWeekday();
27
27
  const selectedWeek = parseInt(selected[1]);
28
+ const selectedWeekday = parseInt(selected[2]);
28
29
  const isInMinWeek = isInMinYear && selectedWeek === minWeek;
29
30
  const isInMaxWeek = isInMaxYear && selectedWeek === maxWeek;
30
31
  const selectedYearWeeks = dayjs(`${selectedYear}-01-01`).isoWeeksInYear();
@@ -50,7 +51,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
50
51
  const upper = maxYear;
51
52
  const years = generateColumn(lower, upper, 'year');
52
53
  ret.push(years.map(v => ({
53
- label: renderLabel('year', v),
54
+ label: renderLabel('year', v, {
55
+ selected: selectedYear === v
56
+ }),
54
57
  value: v.toString()
55
58
  })));
56
59
  }
@@ -59,7 +62,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
59
62
  const upper = isInMaxYear ? maxWeek : selectedYearWeeks;
60
63
  const weeks = generateColumn(lower, upper, 'week');
61
64
  ret.push(weeks.map(v => ({
62
- label: renderLabel('week', v),
65
+ label: renderLabel('week', v, {
66
+ selected: selectedWeek === v
67
+ }),
63
68
  value: v.toString()
64
69
  })));
65
70
  }
@@ -68,7 +73,9 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
68
73
  const upper = isInMaxWeek ? maxWeekday : 7;
69
74
  const weeks = generateColumn(lower, upper, 'week-day');
70
75
  ret.push(weeks.map(v => ({
71
- label: renderLabel('week-day', v),
76
+ label: renderLabel('week-day', v, {
77
+ selected: selectedWeekday === v
78
+ }),
72
79
  value: v.toString()
73
80
  })));
74
81
  }
@@ -84,6 +91,6 @@ export function convertStringArrayToDate(value) {
84
91
  const yearString = (_a = value[0]) !== null && _a !== void 0 ? _a : '1900';
85
92
  const weekString = (_b = value[1]) !== null && _b !== void 0 ? _b : '1';
86
93
  const weekdayString = (_c = value[2]) !== null && _c !== void 0 ? _c : '1';
87
- const day = dayjs().year(parseInt(yearString)).isoWeek(parseInt(weekString)).isoWeekday(parseInt(weekdayString)).hour(0).minute(0).second(0);
94
+ const day = dayjs(`${parseInt(yearString)}-01-01`).isoWeek(parseInt(weekString)).isoWeekday(parseInt(weekdayString)).hour(0).minute(0).second(0);
88
95
  return day.toDate();
89
96
  }
@@ -1,9 +1,11 @@
1
1
  import type { FC, ReactNode } from 'react';
2
- import type { PickerViewProps } from '../picker-view';
3
2
  import { NativeProps } from '../../utils/native-props';
4
- import type { Precision, DatePickerFilter } from '../date-picker/date-picker-utils';
3
+ import type { DatePickerFilter, Precision } from '../date-picker/date-picker-utils';
5
4
  import type { PickerDate } from '../date-picker/util';
6
- export declare type RenderLabel = (type: Precision | 'now', data: number) => ReactNode;
5
+ import type { PickerViewProps } from '../picker-view';
6
+ export declare type RenderLabel = (type: Precision | 'now', data: number, info: {
7
+ selected: boolean;
8
+ }) => ReactNode;
7
9
  export declare type DatePickerViewProps = Pick<PickerViewProps, 'style' | 'mouseWheel' | 'loading' | 'loadingContent'> & {
8
10
  value?: PickerDate;
9
11
  defaultValue?: PickerDate;
@@ -1,11 +1,11 @@
1
1
  import React, { useCallback, useMemo } from 'react';
2
- import PickerView from '../picker-view';
3
2
  import { withNativeProps } from '../../utils/native-props';
4
- import { mergeProps } from '../../utils/with-default-props';
5
3
  import { usePropsValue } from '../../utils/use-props-value';
6
- import { generateDatePickerColumns, convertDateToStringArray, convertStringArrayToDate } from '../date-picker/date-picker-utils';
7
- import useRenderLabel from './useRenderLabel';
4
+ import { mergeProps } from '../../utils/with-default-props';
5
+ import { convertDateToStringArray, convertStringArrayToDate, generateDatePickerColumns } from '../date-picker/date-picker-utils';
8
6
  import { TILL_NOW } from '../date-picker/util';
7
+ import PickerView from '../picker-view';
8
+ import useRenderLabel from './useRenderLabel';
9
9
  const thisYear = new Date().getFullYear();
10
10
  const defaultProps = {
11
11
  min: new Date(new Date().setFullYear(thisYear - 10)),
@@ -4,9 +4,9 @@ export default function useRenderLabel(renderLabel) {
4
4
  const {
5
5
  locale
6
6
  } = useConfig();
7
- return useCallback((type, data) => {
7
+ return useCallback((type, data, info) => {
8
8
  if (renderLabel) {
9
- return renderLabel(type, data);
9
+ return renderLabel(type, data, info);
10
10
  }
11
11
  // Default render
12
12
  switch (type) {
@@ -1,5 +1,6 @@
1
1
  import { useEvent } from 'rc-util';
2
2
  import React from 'react';
3
+ import { unstable_batchedUpdates } from 'react-dom';
3
4
  import runes from 'runes2';
4
5
  const ELLIPSIS_TEXT = '...';
5
6
  const measureStyle = {
@@ -19,8 +20,11 @@ export default function useMeasure(containerRef, content, rows, direction, expan
19
20
  const fullMeasureRef = React.useRef(null);
20
21
  const midMeasureRef = React.useRef(null);
21
22
  const startMeasure = useEvent(() => {
22
- setStatus(1 /* PREPARE */);
23
- setWalkingIndexes([0, direction === 'middle' ? Math.ceil(contentChars.length / 2) : contentChars.length]);
23
+ // use batch update to avoid async update trigger 2 render
24
+ unstable_batchedUpdates(() => {
25
+ setStatus(1 /* PREPARE */);
26
+ setWalkingIndexes([0, direction === 'middle' ? Math.ceil(contentChars.length / 2) : contentChars.length]);
27
+ });
24
28
  });
25
29
  // Initialize
26
30
  React.useLayoutEffect(() => {
@@ -32,7 +36,7 @@ export default function useMeasure(containerRef, content, rows, direction, expan
32
36
  if (status === 1 /* PREPARE */) {
33
37
  const fullMeasureHeight = ((_a = fullMeasureRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;
34
38
  const singleRowMeasureHeight = ((_b = singleRowMeasureRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;
35
- const rowMeasureHeight = singleRowMeasureHeight * rows;
39
+ const rowMeasureHeight = singleRowMeasureHeight * (rows + 0.5);
36
40
  if (fullMeasureHeight <= rowMeasureHeight) {
37
41
  setStatus(100 /* STABLE_NO_ELLIPSIS */);
38
42
  } else {
@@ -4,7 +4,6 @@
4
4
  --z-index: var(--adm-floating-panel-z-index, 900);
5
5
  position: fixed;
6
6
  z-index: var(--z-index);
7
- bottom: 0;
8
7
  left: 0;
9
8
  width: 100vw;
10
9
  display: flex;
@@ -24,7 +23,6 @@
24
23
  content: '';
25
24
  display: block;
26
25
  position: absolute;
27
- bottom: -100vh;
28
26
  height: 100vh;
29
27
  width: 100vw;
30
28
  background: var(--adm-color-background);
@@ -54,3 +52,15 @@
54
52
  overflow-y: scroll;
55
53
  background: var(--adm-color-background);
56
54
  }
55
+ .adm-floating-panel-top {
56
+ top: 0;
57
+ }
58
+ .adm-floating-panel-top::after {
59
+ top: -100vh;
60
+ }
61
+ .adm-floating-panel-bottom {
62
+ bottom: 0;
63
+ }
64
+ .adm-floating-panel-bottom::after {
65
+ bottom: -100vh;
66
+ }