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
@@ -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;
@@ -55,6 +55,7 @@ const Button = (0, _react.forwardRef)((p, ref) => {
55
55
  return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("button", {
56
56
  ref: nativeButtonRef,
57
57
  type: props.type,
58
+ form: props.form,
58
59
  onClick: handleClick,
59
60
  className: (0, _classnames.default)(classPrefix, {
60
61
  [`${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;
@@ -145,7 +145,6 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
145
145
  })), _react.default.createElement("div", {
146
146
  className: `${classPrefix}-cells`
147
147
  }, presetEmptyCells, Array(monthIterator.daysInMonth()).fill(null).map((_, index) => {
148
- var _a;
149
148
  const d = monthIterator.date(index + 1);
150
149
  let isSelect = false;
151
150
  let isBegin = false;
@@ -165,21 +164,36 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
165
164
  const disabled = props.shouldDisableDate ? props.shouldDisableDate(d.toDate()) : maxDay && d.isAfter(maxDay, 'day') || minDay && d.isBefore(minDay, 'day');
166
165
  const renderTop = () => {
167
166
  var _a;
167
+ if (props.renderTop === false) return null;
168
+ const contentWrapper = content => _react.default.createElement("div", {
169
+ className: `${classPrefix}-cell-top`
170
+ }, content);
168
171
  const top = (_a = props.renderTop) === null || _a === void 0 ? void 0 : _a.call(props, d.toDate());
169
172
  if (top) {
170
- return top;
173
+ return contentWrapper(top);
171
174
  }
172
175
  if (props.selectionMode === 'range') {
176
+ if (isBegin && isEnd) {
177
+ return contentWrapper(locale.Calendar.startAndEnd);
178
+ }
173
179
  if (isBegin) {
174
- return locale.Calendar.start;
180
+ return contentWrapper(locale.Calendar.start);
175
181
  }
176
182
  if (isEnd) {
177
- return locale.Calendar.end;
183
+ return contentWrapper(locale.Calendar.end);
178
184
  }
179
185
  }
180
186
  if (d.isSame(today, 'day') && !isSelect) {
181
- return locale.Calendar.today;
187
+ return contentWrapper(locale.Calendar.today);
182
188
  }
189
+ return contentWrapper(null);
190
+ };
191
+ const renderBottom = () => {
192
+ var _a;
193
+ if (props.renderBottom === false) return null;
194
+ return _react.default.createElement("div", {
195
+ className: `${classPrefix}-cell-bottom`
196
+ }, (_a = props.renderBottom) === null || _a === void 0 ? void 0 : _a.call(props, d.toDate()));
183
197
  };
184
198
  return _react.default.createElement("div", {
185
199
  key: d.valueOf(),
@@ -229,13 +243,9 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
229
243
  }
230
244
  }
231
245
  }
232
- }, _react.default.createElement("div", {
233
- className: `${classPrefix}-cell-top`
234
- }, renderTop()), _react.default.createElement("div", {
246
+ }, renderTop(), _react.default.createElement("div", {
235
247
  className: `${classPrefix}-cell-date`
236
- }, props.renderDate ? props.renderDate(d.toDate()) : d.date()), _react.default.createElement("div", {
237
- className: `${classPrefix}-cell-bottom`
238
- }, (_a = props.renderBottom) === null || _a === void 0 ? void 0 : _a.call(props, d.toDate())));
248
+ }, props.renderDate ? props.renderDate(d.toDate()) : d.date()), renderBottom());
239
249
  }))));
240
250
  monthIterator = monthIterator.add(1, 'month');
241
251
  }
@@ -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[];
@@ -7,9 +7,9 @@ exports.convertDateToStringArray = convertDateToStringArray;
7
7
  exports.convertStringArrayToDate = convertStringArrayToDate;
8
8
  exports.generateDatePickerColumns = generateDatePickerColumns;
9
9
  var _dayjs = _interopRequireDefault(require("dayjs"));
10
+ var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
10
11
  var _isoWeek = _interopRequireDefault(require("dayjs/plugin/isoWeek"));
11
12
  var _isoWeeksInYear = _interopRequireDefault(require("dayjs/plugin/isoWeeksInYear"));
12
- var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
13
13
  var _util = require("./util");
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  _dayjs.default.extend(_isoWeek.default);
@@ -44,6 +44,7 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
44
44
  const selectedDay = parseInt(selected[2]);
45
45
  const selectedHour = parseInt(selected[3]);
46
46
  const selectedMinute = parseInt(selected[4]);
47
+ const selectedSecond = parseInt(selected[5]);
47
48
  const isInMinYear = selectedYear === minYear;
48
49
  const isInMaxYear = selectedYear === maxYear;
49
50
  const isInMinMonth = isInMinYear && selectedMonth === minMonth;
@@ -76,7 +77,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
76
77
  const upper = maxYear;
77
78
  const years = generateColumn(lower, upper, 'year');
78
79
  ret.push(years.map(v => ({
79
- label: renderLabel('year', v),
80
+ label: renderLabel('year', v, {
81
+ selected: selectedYear === v
82
+ }),
80
83
  value: v.toString()
81
84
  })));
82
85
  }
@@ -85,7 +88,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
85
88
  const upper = isInMaxYear ? maxMonth : 12;
86
89
  const months = generateColumn(lower, upper, 'month');
87
90
  ret.push(months.map(v => ({
88
- label: renderLabel('month', v),
91
+ label: renderLabel('month', v, {
92
+ selected: selectedMonth === v
93
+ }),
89
94
  value: v.toString()
90
95
  })));
91
96
  }
@@ -94,7 +99,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
94
99
  const upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
95
100
  const days = generateColumn(lower, upper, 'day');
96
101
  ret.push(days.map(v => ({
97
- label: renderLabel('day', v),
102
+ label: renderLabel('day', v, {
103
+ selected: selectedDay === v
104
+ }),
98
105
  value: v.toString()
99
106
  })));
100
107
  }
@@ -103,7 +110,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
103
110
  const upper = isInMaxDay ? maxHour : 23;
104
111
  const hours = generateColumn(lower, upper, 'hour');
105
112
  ret.push(hours.map(v => ({
106
- label: renderLabel('hour', v),
113
+ label: renderLabel('hour', v, {
114
+ selected: selectedHour === v
115
+ }),
107
116
  value: v.toString()
108
117
  })));
109
118
  }
@@ -112,7 +121,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
112
121
  const upper = isInMaxHour ? maxMinute : 59;
113
122
  const minutes = generateColumn(lower, upper, 'minute');
114
123
  ret.push(minutes.map(v => ({
115
- label: renderLabel('minute', v),
124
+ label: renderLabel('minute', v, {
125
+ selected: selectedMinute === v
126
+ }),
116
127
  value: v.toString()
117
128
  })));
118
129
  }
@@ -121,14 +132,18 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
121
132
  const upper = isInMaxMinute ? maxSecond : 59;
122
133
  const seconds = generateColumn(lower, upper, 'second');
123
134
  ret.push(seconds.map(v => ({
124
- label: renderLabel('second', v),
135
+ label: renderLabel('second', v, {
136
+ selected: selectedSecond === v
137
+ }),
125
138
  value: v.toString()
126
139
  })));
127
140
  }
128
141
  // Till Now
129
142
  if (tillNow) {
130
143
  ret[0].push({
131
- label: renderLabel('now', null),
144
+ label: renderLabel('now', null, {
145
+ selected: selected[0] === _util.TILL_NOW
146
+ }),
132
147
  value: _util.TILL_NOW
133
148
  });
134
149
  if (_util.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;
@@ -26,6 +26,7 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
26
26
  const maxDay = (0, _dayjs.default)(max);
27
27
  const minQuarter = minDay.quarter();
28
28
  const maxQuarter = maxDay.quarter();
29
+ const selectedQuarter = parseInt(selected[1]);
29
30
  const generateColumn = (from, to, precision) => {
30
31
  let column = [];
31
32
  for (let i = from; i <= to; i++) {
@@ -48,7 +49,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
48
49
  const upper = maxYear;
49
50
  const years = generateColumn(lower, upper, 'year');
50
51
  ret.push(years.map(v => ({
51
- label: renderLabel('year', v),
52
+ label: renderLabel('year', v, {
53
+ selected: selectedYear === v
54
+ }),
52
55
  value: v.toString()
53
56
  })));
54
57
  }
@@ -57,7 +60,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
57
60
  const upper = isInMaxYear ? maxQuarter : 4;
58
61
  const quarters = generateColumn(lower, upper, 'quarter');
59
62
  ret.push(quarters.map(v => ({
60
- label: renderLabel('quarter', v),
63
+ label: renderLabel('quarter', v, {
64
+ selected: selectedQuarter === v
65
+ }),
61
66
  value: v.toString()
62
67
  })));
63
68
  }
@@ -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;
@@ -7,9 +7,9 @@ exports.convertDateToStringArray = convertDateToStringArray;
7
7
  exports.convertStringArrayToDate = convertStringArrayToDate;
8
8
  exports.generateDatePickerColumns = generateDatePickerColumns;
9
9
  var _dayjs = _interopRequireDefault(require("dayjs"));
10
+ var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
10
11
  var _isoWeek = _interopRequireDefault(require("dayjs/plugin/isoWeek"));
11
12
  var _isoWeeksInYear = _interopRequireDefault(require("dayjs/plugin/isoWeeksInYear"));
12
- var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
  _dayjs.default.extend(_isoWeek.default);
15
15
  _dayjs.default.extend(_isoWeeksInYear.default);
@@ -34,6 +34,7 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
34
34
  const minWeekday = minDay.isoWeekday();
35
35
  const maxWeekday = maxDay.isoWeekday();
36
36
  const selectedWeek = parseInt(selected[1]);
37
+ const selectedWeekday = parseInt(selected[2]);
37
38
  const isInMinWeek = isInMinYear && selectedWeek === minWeek;
38
39
  const isInMaxWeek = isInMaxYear && selectedWeek === maxWeek;
39
40
  const selectedYearWeeks = (0, _dayjs.default)(`${selectedYear}-01-01`).isoWeeksInYear();
@@ -59,7 +60,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
59
60
  const upper = maxYear;
60
61
  const years = generateColumn(lower, upper, 'year');
61
62
  ret.push(years.map(v => ({
62
- label: renderLabel('year', v),
63
+ label: renderLabel('year', v, {
64
+ selected: selectedYear === v
65
+ }),
63
66
  value: v.toString()
64
67
  })));
65
68
  }
@@ -68,7 +71,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
68
71
  const upper = isInMaxYear ? maxWeek : selectedYearWeeks;
69
72
  const weeks = generateColumn(lower, upper, 'week');
70
73
  ret.push(weeks.map(v => ({
71
- label: renderLabel('week', v),
74
+ label: renderLabel('week', v, {
75
+ selected: selectedWeek === v
76
+ }),
72
77
  value: v.toString()
73
78
  })));
74
79
  }
@@ -77,7 +82,9 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
77
82
  const upper = isInMaxWeek ? maxWeekday : 7;
78
83
  const weeks = generateColumn(lower, upper, 'week-day');
79
84
  ret.push(weeks.map(v => ({
80
- label: renderLabel('week-day', v),
85
+ label: renderLabel('week-day', v, {
86
+ selected: selectedWeekday === v
87
+ }),
81
88
  value: v.toString()
82
89
  })));
83
90
  }
@@ -93,6 +100,6 @@ function convertStringArrayToDate(value) {
93
100
  const yearString = (_a = value[0]) !== null && _a !== void 0 ? _a : '1900';
94
101
  const weekString = (_b = value[1]) !== null && _b !== void 0 ? _b : '1';
95
102
  const weekdayString = (_c = value[2]) !== null && _c !== void 0 ? _c : '1';
96
- const day = (0, _dayjs.default)().year(parseInt(yearString)).isoWeek(parseInt(weekString)).isoWeekday(parseInt(weekdayString)).hour(0).minute(0).second(0);
103
+ const day = (0, _dayjs.default)(`${parseInt(yearString)}-01-01`).isoWeek(parseInt(weekString)).isoWeekday(parseInt(weekdayString)).hour(0).minute(0).second(0);
97
104
  return day.toDate();
98
105
  }
@@ -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;
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.DatePickerView = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _pickerView = _interopRequireDefault(require("../picker-view"));
9
8
  var _nativeProps = require("../../utils/native-props");
10
- var _withDefaultProps = require("../../utils/with-default-props");
11
9
  var _usePropsValue = require("../../utils/use-props-value");
10
+ var _withDefaultProps = require("../../utils/with-default-props");
12
11
  var _datePickerUtils = require("../date-picker/date-picker-utils");
13
- var _useRenderLabel = _interopRequireDefault(require("./useRenderLabel"));
14
12
  var _util = require("../date-picker/util");
13
+ var _pickerView = _interopRequireDefault(require("../picker-view"));
14
+ var _useRenderLabel = _interopRequireDefault(require("./useRenderLabel"));
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
16
  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); }
17
17
  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; }
@@ -10,9 +10,9 @@ function useRenderLabel(renderLabel) {
10
10
  const {
11
11
  locale
12
12
  } = (0, _configProvider.useConfig)();
13
- return (0, _react.useCallback)((type, data) => {
13
+ return (0, _react.useCallback)((type, data, info) => {
14
14
  if (renderLabel) {
15
- return renderLabel(type, data);
15
+ return renderLabel(type, data, info);
16
16
  }
17
17
  // Default render
18
18
  switch (type) {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = useMeasure;
7
7
  var _rcUtil = require("rc-util");
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _reactDom = require("react-dom");
9
10
  var _runes = _interopRequireDefault(require("runes2"));
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12
  const ELLIPSIS_TEXT = '...';
@@ -26,8 +27,11 @@ function useMeasure(containerRef, content, rows, direction, expanded, expandNode
26
27
  const fullMeasureRef = _react.default.useRef(null);
27
28
  const midMeasureRef = _react.default.useRef(null);
28
29
  const startMeasure = (0, _rcUtil.useEvent)(() => {
29
- setStatus(1 /* PREPARE */);
30
- setWalkingIndexes([0, direction === 'middle' ? Math.ceil(contentChars.length / 2) : contentChars.length]);
30
+ // use batch update to avoid async update trigger 2 render
31
+ (0, _reactDom.unstable_batchedUpdates)(() => {
32
+ setStatus(1 /* PREPARE */);
33
+ setWalkingIndexes([0, direction === 'middle' ? Math.ceil(contentChars.length / 2) : contentChars.length]);
34
+ });
31
35
  });
32
36
  // Initialize
33
37
  _react.default.useLayoutEffect(() => {
@@ -39,7 +43,7 @@ function useMeasure(containerRef, content, rows, direction, expanded, expandNode
39
43
  if (status === 1 /* PREPARE */) {
40
44
  const fullMeasureHeight = ((_a = fullMeasureRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;
41
45
  const singleRowMeasureHeight = ((_b = singleRowMeasureRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;
42
- const rowMeasureHeight = singleRowMeasureHeight * rows;
46
+ const rowMeasureHeight = singleRowMeasureHeight * (rows + 0.5);
43
47
  if (fullMeasureHeight <= rowMeasureHeight) {
44
48
  setStatus(100 /* STABLE_NO_ELLIPSIS */);
45
49
  } 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
+ }
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
1
  import type { ReactNode } from 'react';
2
+ import React from 'react';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  export declare type FloatingPanelRef = {
5
5
  setHeight: (height: number, options?: {
@@ -11,12 +11,14 @@ export declare type FloatingPanelProps = {
11
11
  children: ReactNode;
12
12
  onHeightChange?: (height: number, animating: boolean) => void;
13
13
  handleDraggingOfContent?: boolean;
14
+ placement?: 'bottom' | 'top';
14
15
  } & NativeProps<'--border-radius' | '--z-index' | '--header-height'>;
15
16
  export declare const FloatingPanel: React.ForwardRefExoticComponent<{
16
17
  anchors: number[];
17
18
  children: ReactNode;
18
19
  onHeightChange?: ((height: number, animating: boolean) => void) | undefined;
19
20
  handleDraggingOfContent?: boolean | undefined;
21
+ placement?: "bottom" | "top" | undefined;
20
22
  } & {
21
23
  className?: string | undefined;
22
24
  style?: (React.CSSProperties & Partial<Record<"--z-index" | "--border-radius" | "--header-height", string>>) | undefined;
@@ -4,43 +4,47 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.FloatingPanel = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _nativeProps = require("../../utils/native-props");
9
- var _react2 = require("@use-gesture/react");
10
7
  var _web = require("@react-spring/web");
11
- var _supportsPassive = require("../../utils/supports-passive");
8
+ var _react = require("@use-gesture/react");
9
+ var _ahooks = require("ahooks");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _react2 = _interopRequireWildcard(require("react"));
12
+ var _nativeProps = require("../../utils/native-props");
12
13
  var _nearest = require("../../utils/nearest");
13
- var _withDefaultProps = require("../../utils/with-default-props");
14
+ var _supportsPassive = require("../../utils/supports-passive");
14
15
  var _useLockScroll = require("../../utils/use-lock-scroll");
15
- var _ahooks = require("ahooks");
16
+ var _withDefaultProps = require("../../utils/with-default-props");
16
17
  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); }
17
18
  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; }
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
20
  const classPrefix = 'adm-floating-panel';
19
21
  const defaultProps = {
20
22
  handleDraggingOfContent: true
21
23
  };
22
- const FloatingPanel = (0, _react.forwardRef)((p, ref) => {
24
+ const FloatingPanel = (0, _react2.forwardRef)((p, ref) => {
23
25
  var _a, _b;
24
26
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
25
27
  const {
26
- anchors
28
+ anchors,
29
+ placement = 'bottom'
27
30
  } = props;
28
31
  const maxHeight = (_a = anchors[anchors.length - 1]) !== null && _a !== void 0 ? _a : window.innerHeight;
29
- const possibles = anchors.map(x => -x);
30
- const elementRef = (0, _react.useRef)(null);
31
- const headerRef = (0, _react.useRef)(null);
32
- const contentRef = (0, _react.useRef)(null);
33
- const [pulling, setPulling] = (0, _react.useState)(false);
34
- const pullingRef = (0, _react.useRef)(false);
32
+ const isBottomPlacement = placement !== 'top';
33
+ const possibles = isBottomPlacement ? anchors.map(x => -x) : anchors;
34
+ const elementRef = (0, _react2.useRef)(null);
35
+ const headerRef = (0, _react2.useRef)(null);
36
+ const contentRef = (0, _react2.useRef)(null);
37
+ const [pulling, setPulling] = (0, _react2.useState)(false);
38
+ const pullingRef = (0, _react2.useRef)(false);
35
39
  const bounds = {
36
- top: possibles[possibles.length - 1],
37
- bottom: possibles[0]
40
+ top: Math.min(...possibles),
41
+ bottom: Math.max(...possibles)
38
42
  };
39
43
  const onHeightChange = (0, _ahooks.useMemoizedFn)((_b = props.onHeightChange) !== null && _b !== void 0 ? _b : () => {});
40
44
  const [{
41
45
  y
42
46
  }, api] = (0, _web.useSpring)(() => ({
43
- y: bounds.bottom,
47
+ y: isBottomPlacement ? bounds.bottom : bounds.top,
44
48
  config: {
45
49
  tension: 300
46
50
  },
@@ -48,7 +52,7 @@ const FloatingPanel = (0, _react.forwardRef)((p, ref) => {
48
52
  onHeightChange(-result.value.y, y.isAnimating);
49
53
  }
50
54
  }));
51
- (0, _react2.useDrag)(state => {
55
+ (0, _react.useDrag)(state => {
52
56
  const [, offsetY] = state.offset;
53
57
  if (state.first) {
54
58
  const target = state.event.target;
@@ -100,7 +104,7 @@ const FloatingPanel = (0, _react.forwardRef)((p, ref) => {
100
104
  passive: false
101
105
  } : undefined
102
106
  });
103
- (0, _react.useImperativeHandle)(ref, () => ({
107
+ (0, _react2.useImperativeHandle)(ref, () => ({
104
108
  setHeight: (height, options) => {
105
109
  api.start({
106
110
  y: -height,
@@ -109,26 +113,35 @@ const FloatingPanel = (0, _react.forwardRef)((p, ref) => {
109
113
  }
110
114
  }), [api]);
111
115
  (0, _useLockScroll.useLockScroll)(elementRef, true);
112
- return (0, _nativeProps.withNativeProps)(props, _react.default.createElement(_web.animated.div, {
116
+ const HeaderNode = _react2.default.createElement("div", {
117
+ className: `${classPrefix}-header`,
118
+ ref: headerRef
119
+ }, _react2.default.createElement("div", {
120
+ className: `${classPrefix}-bar`
121
+ }));
122
+ return (0, _nativeProps.withNativeProps)(props, _react2.default.createElement(_web.animated.div, {
113
123
  ref: elementRef,
114
- className: classPrefix,
124
+ className: (0, _classnames.default)(classPrefix, `${classPrefix}-${placement}`),
115
125
  style: {
116
126
  height: Math.round(maxHeight),
117
- translateY: y.to(y => `calc(100% + (${Math.round(y)}px))`)
127
+ translateY: y.to(y => {
128
+ if (isBottomPlacement) {
129
+ return `calc(100% + (${Math.round(y)}px))`;
130
+ }
131
+ if (placement === 'top') {
132
+ return `calc(-100% + (${Math.round(y)}px))`;
133
+ }
134
+ return y;
135
+ })
118
136
  }
119
- }, _react.default.createElement("div", {
137
+ }, _react2.default.createElement("div", {
120
138
  className: `${classPrefix}-mask`,
121
139
  style: {
122
140
  display: pulling ? 'block' : 'none'
123
141
  }
124
- }), _react.default.createElement("div", {
125
- className: `${classPrefix}-header`,
126
- ref: headerRef
127
- }, _react.default.createElement("div", {
128
- className: `${classPrefix}-bar`
129
- })), _react.default.createElement("div", {
142
+ }), isBottomPlacement && HeaderNode, _react2.default.createElement("div", {
130
143
  className: `${classPrefix}-content`,
131
144
  ref: contentRef
132
- }, props.children)));
145
+ }, props.children), placement === 'top' && HeaderNode));
133
146
  });
134
147
  exports.FloatingPanel = FloatingPanel;