antd-mobile 5.39.0 → 5.41.0-alpha.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 (312) hide show
  1. package/2x/README.md +8 -1
  2. package/2x/bundle/antd-mobile.cjs.development.js +2495 -1614
  3. package/2x/bundle/antd-mobile.cjs.js +7 -7
  4. package/2x/bundle/antd-mobile.es.development.js +1530 -649
  5. package/2x/bundle/antd-mobile.es.js +7495 -6799
  6. package/2x/bundle/antd-mobile.umd.development.js +2494 -1613
  7. package/2x/bundle/antd-mobile.umd.js +7 -7
  8. package/2x/bundle/style.css +11 -5
  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-view/calendar-picker-view.js +3 -0
  12. package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +1 -1
  13. package/2x/cjs/components/date-picker/date-picker-date-utils.js +23 -8
  14. package/2x/cjs/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  15. package/2x/cjs/components/date-picker/date-picker-quarter-utils.js +7 -2
  16. package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +3 -1
  17. package/2x/cjs/components/date-picker/date-picker-week-utils.js +12 -4
  18. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +5 -3
  19. package/2x/cjs/components/date-picker-view/date-picker-view.js +3 -3
  20. package/2x/cjs/components/date-picker-view/useRenderLabel.js +2 -2
  21. package/2x/cjs/components/ellipsis/ellipsis.d.ts +3 -0
  22. package/2x/cjs/components/ellipsis/ellipsis.js +10 -2
  23. package/2x/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  24. package/2x/cjs/components/popover/wrapper.d.ts +6 -9
  25. package/2x/cjs/components/popover/wrapper.js +32 -6
  26. package/2x/cjs/components/space/space.css +4 -4
  27. package/2x/cjs/components/swiper/swiper.js +1 -1
  28. package/2x/cjs/components/tabs/tabs.js +45 -13
  29. package/2x/cjs/components/virtual-input/virtual-input.css +7 -1
  30. package/2x/cjs/components/virtual-input/virtual-input.d.ts +6 -0
  31. package/2x/cjs/components/virtual-input/virtual-input.js +133 -7
  32. package/2x/cjs/index.d.ts +1 -0
  33. package/2x/cjs/index.js +7 -0
  34. package/2x/cjs/locales/ar-SA.d.ts +1 -0
  35. package/2x/cjs/locales/ar-SA.js +1 -0
  36. package/2x/cjs/locales/base.d.ts +1 -0
  37. package/2x/cjs/locales/base.js +1 -0
  38. package/2x/cjs/locales/cnr-ME.d.ts +1 -0
  39. package/2x/cjs/locales/cnr-ME.js +1 -0
  40. package/2x/cjs/locales/da-DK.d.ts +1 -0
  41. package/2x/cjs/locales/de-DE.d.ts +1 -0
  42. package/2x/cjs/locales/de-DE.js +1 -0
  43. package/2x/cjs/locales/en-US.d.ts +1 -0
  44. package/2x/cjs/locales/es-ES.d.ts +1 -0
  45. package/2x/cjs/locales/fa-IR.d.ts +1 -0
  46. package/2x/cjs/locales/fr-FR.d.ts +1 -0
  47. package/2x/cjs/locales/hr-HR.d.ts +1 -0
  48. package/2x/cjs/locales/hr-HR.js +1 -0
  49. package/2x/cjs/locales/hu-HU.d.ts +1 -0
  50. package/2x/cjs/locales/id-ID.d.ts +1 -0
  51. package/2x/cjs/locales/in-ID.d.ts +1 -0
  52. package/2x/cjs/locales/in-ID.js +1 -0
  53. package/2x/cjs/locales/it-IT.d.ts +1 -0
  54. package/2x/cjs/locales/ja-JP.d.ts +1 -0
  55. package/2x/cjs/locales/kk-KZ.d.ts +1 -0
  56. package/2x/cjs/locales/ko-KR.d.ts +1 -0
  57. package/2x/cjs/locales/ms-MY.d.ts +1 -0
  58. package/2x/cjs/locales/ms-MY.js +1 -0
  59. package/2x/cjs/locales/nb-NO.d.ts +1 -0
  60. package/2x/cjs/locales/nl-NL.d.ts +1 -0
  61. package/2x/cjs/locales/pt-BR.d.ts +1 -0
  62. package/2x/cjs/locales/ru-RU.d.ts +1 -0
  63. package/2x/cjs/locales/ru-RU.js +8 -2
  64. package/2x/cjs/locales/sr-RS.d.ts +1 -0
  65. package/2x/cjs/locales/sr-RS.js +1 -0
  66. package/2x/cjs/locales/th-TH.d.ts +1 -0
  67. package/2x/cjs/locales/th-TH.js +1 -0
  68. package/2x/cjs/locales/tr-TR.d.ts +1 -0
  69. package/2x/cjs/locales/vi-VN.d.ts +1 -0
  70. package/2x/cjs/locales/vi-VN.js +1 -0
  71. package/2x/cjs/locales/zh-CN.js +1 -0
  72. package/2x/cjs/locales/zh-HK.d.ts +1 -0
  73. package/2x/cjs/locales/zh-TW.d.ts +1 -0
  74. package/2x/cjs/utils/render-to-body.d.ts +1 -1
  75. package/2x/cjs/utils/render-to-body.js +2 -9
  76. package/2x/cjs/utils/render.d.ts +1 -9
  77. package/2x/cjs/utils/render.js +10 -68
  78. package/2x/cjs/utils/unstable-render.d.ts +9 -0
  79. package/2x/cjs/utils/unstable-render.js +37 -0
  80. package/2x/es/components/button/button.d.ts +2 -2
  81. package/2x/es/components/button/button.js +1 -0
  82. package/2x/es/components/calendar-picker-view/calendar-picker-view.js +3 -0
  83. package/2x/es/components/date-picker/date-picker-date-utils.d.ts +1 -1
  84. package/2x/es/components/date-picker/date-picker-date-utils.js +23 -8
  85. package/2x/es/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  86. package/2x/es/components/date-picker/date-picker-quarter-utils.js +7 -2
  87. package/2x/es/components/date-picker/date-picker-week-utils.d.ts +3 -1
  88. package/2x/es/components/date-picker/date-picker-week-utils.js +12 -4
  89. package/2x/es/components/date-picker-view/date-picker-view.d.ts +5 -3
  90. package/2x/es/components/date-picker-view/date-picker-view.js +4 -4
  91. package/2x/es/components/date-picker-view/useRenderLabel.js +2 -2
  92. package/2x/es/components/ellipsis/ellipsis.d.ts +3 -0
  93. package/2x/es/components/ellipsis/ellipsis.js +10 -2
  94. package/2x/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  95. package/2x/es/components/popover/wrapper.d.ts +6 -9
  96. package/2x/es/components/popover/wrapper.js +30 -5
  97. package/2x/es/components/space/space.css +4 -4
  98. package/2x/es/components/swiper/swiper.js +1 -1
  99. package/2x/es/components/tabs/tabs.js +44 -12
  100. package/2x/es/components/virtual-input/virtual-input.css +7 -1
  101. package/2x/es/components/virtual-input/virtual-input.d.ts +6 -0
  102. package/2x/es/components/virtual-input/virtual-input.js +133 -7
  103. package/2x/es/index.d.ts +1 -0
  104. package/2x/es/index.js +3 -1
  105. package/2x/es/locales/ar-SA.d.ts +1 -0
  106. package/2x/es/locales/ar-SA.js +1 -0
  107. package/2x/es/locales/base.d.ts +1 -0
  108. package/2x/es/locales/base.js +1 -0
  109. package/2x/es/locales/cnr-ME.d.ts +1 -0
  110. package/2x/es/locales/cnr-ME.js +1 -0
  111. package/2x/es/locales/da-DK.d.ts +1 -0
  112. package/2x/es/locales/de-DE.d.ts +1 -0
  113. package/2x/es/locales/de-DE.js +1 -0
  114. package/2x/es/locales/en-US.d.ts +1 -0
  115. package/2x/es/locales/es-ES.d.ts +1 -0
  116. package/2x/es/locales/fa-IR.d.ts +1 -0
  117. package/2x/es/locales/fr-FR.d.ts +1 -0
  118. package/2x/es/locales/hr-HR.d.ts +1 -0
  119. package/2x/es/locales/hr-HR.js +1 -0
  120. package/2x/es/locales/hu-HU.d.ts +1 -0
  121. package/2x/es/locales/id-ID.d.ts +1 -0
  122. package/2x/es/locales/in-ID.d.ts +1 -0
  123. package/2x/es/locales/in-ID.js +1 -0
  124. package/2x/es/locales/it-IT.d.ts +1 -0
  125. package/2x/es/locales/ja-JP.d.ts +1 -0
  126. package/2x/es/locales/kk-KZ.d.ts +1 -0
  127. package/2x/es/locales/ko-KR.d.ts +1 -0
  128. package/2x/es/locales/ms-MY.d.ts +1 -0
  129. package/2x/es/locales/ms-MY.js +1 -0
  130. package/2x/es/locales/nb-NO.d.ts +1 -0
  131. package/2x/es/locales/nl-NL.d.ts +1 -0
  132. package/2x/es/locales/pt-BR.d.ts +1 -0
  133. package/2x/es/locales/ru-RU.d.ts +1 -0
  134. package/2x/es/locales/ru-RU.js +8 -2
  135. package/2x/es/locales/sr-RS.d.ts +1 -0
  136. package/2x/es/locales/sr-RS.js +1 -0
  137. package/2x/es/locales/th-TH.d.ts +1 -0
  138. package/2x/es/locales/th-TH.js +1 -0
  139. package/2x/es/locales/tr-TR.d.ts +1 -0
  140. package/2x/es/locales/vi-VN.d.ts +1 -0
  141. package/2x/es/locales/vi-VN.js +1 -0
  142. package/2x/es/locales/zh-CN.js +1 -0
  143. package/2x/es/locales/zh-HK.d.ts +1 -0
  144. package/2x/es/locales/zh-TW.d.ts +1 -0
  145. package/2x/es/utils/render-to-body.d.ts +1 -1
  146. package/2x/es/utils/render-to-body.js +2 -9
  147. package/2x/es/utils/render.d.ts +1 -9
  148. package/2x/es/utils/render.js +1 -65
  149. package/2x/es/utils/unstable-render.d.ts +9 -0
  150. package/2x/es/utils/unstable-render.js +28 -0
  151. package/2x/package.json +4 -4
  152. package/README.md +8 -1
  153. package/bundle/antd-mobile.cjs.development.js +2495 -1614
  154. package/bundle/antd-mobile.cjs.js +7 -7
  155. package/bundle/antd-mobile.compatible.umd.js +1 -1
  156. package/bundle/antd-mobile.es.development.js +1530 -649
  157. package/bundle/antd-mobile.es.js +7495 -6799
  158. package/bundle/antd-mobile.umd.development.js +2494 -1613
  159. package/bundle/antd-mobile.umd.js +7 -7
  160. package/bundle/style.css +1 -1
  161. package/cjs/components/button/button.d.ts +2 -2
  162. package/cjs/components/button/button.js +1 -0
  163. package/cjs/components/calendar-picker-view/calendar-picker-view.js +3 -0
  164. package/cjs/components/date-picker/date-picker-date-utils.d.ts +1 -1
  165. package/cjs/components/date-picker/date-picker-date-utils.js +23 -8
  166. package/cjs/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  167. package/cjs/components/date-picker/date-picker-quarter-utils.js +7 -2
  168. package/cjs/components/date-picker/date-picker-week-utils.d.ts +3 -1
  169. package/cjs/components/date-picker/date-picker-week-utils.js +12 -4
  170. package/cjs/components/date-picker-view/date-picker-view.d.ts +5 -3
  171. package/cjs/components/date-picker-view/date-picker-view.js +3 -3
  172. package/cjs/components/date-picker-view/useRenderLabel.js +2 -2
  173. package/cjs/components/ellipsis/ellipsis.d.ts +3 -0
  174. package/cjs/components/ellipsis/ellipsis.js +10 -2
  175. package/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  176. package/cjs/components/popover/wrapper.d.ts +6 -9
  177. package/cjs/components/popover/wrapper.js +32 -6
  178. package/cjs/components/space/space.css +3 -3
  179. package/cjs/components/swiper/swiper.js +1 -1
  180. package/cjs/components/tabs/tabs.js +45 -13
  181. package/cjs/components/virtual-input/virtual-input.css +6 -1
  182. package/cjs/components/virtual-input/virtual-input.d.ts +6 -0
  183. package/cjs/components/virtual-input/virtual-input.js +133 -7
  184. package/cjs/index.d.ts +1 -0
  185. package/cjs/index.js +7 -0
  186. package/cjs/locales/ar-SA.d.ts +1 -0
  187. package/cjs/locales/ar-SA.js +1 -0
  188. package/cjs/locales/base.d.ts +1 -0
  189. package/cjs/locales/base.js +1 -0
  190. package/cjs/locales/cnr-ME.d.ts +1 -0
  191. package/cjs/locales/cnr-ME.js +1 -0
  192. package/cjs/locales/da-DK.d.ts +1 -0
  193. package/cjs/locales/de-DE.d.ts +1 -0
  194. package/cjs/locales/de-DE.js +1 -0
  195. package/cjs/locales/en-US.d.ts +1 -0
  196. package/cjs/locales/es-ES.d.ts +1 -0
  197. package/cjs/locales/fa-IR.d.ts +1 -0
  198. package/cjs/locales/fr-FR.d.ts +1 -0
  199. package/cjs/locales/hr-HR.d.ts +1 -0
  200. package/cjs/locales/hr-HR.js +1 -0
  201. package/cjs/locales/hu-HU.d.ts +1 -0
  202. package/cjs/locales/id-ID.d.ts +1 -0
  203. package/cjs/locales/in-ID.d.ts +1 -0
  204. package/cjs/locales/in-ID.js +1 -0
  205. package/cjs/locales/it-IT.d.ts +1 -0
  206. package/cjs/locales/ja-JP.d.ts +1 -0
  207. package/cjs/locales/kk-KZ.d.ts +1 -0
  208. package/cjs/locales/ko-KR.d.ts +1 -0
  209. package/cjs/locales/ms-MY.d.ts +1 -0
  210. package/cjs/locales/ms-MY.js +1 -0
  211. package/cjs/locales/nb-NO.d.ts +1 -0
  212. package/cjs/locales/nl-NL.d.ts +1 -0
  213. package/cjs/locales/pt-BR.d.ts +1 -0
  214. package/cjs/locales/ru-RU.d.ts +1 -0
  215. package/cjs/locales/ru-RU.js +8 -2
  216. package/cjs/locales/sr-RS.d.ts +1 -0
  217. package/cjs/locales/sr-RS.js +1 -0
  218. package/cjs/locales/th-TH.d.ts +1 -0
  219. package/cjs/locales/th-TH.js +1 -0
  220. package/cjs/locales/tr-TR.d.ts +1 -0
  221. package/cjs/locales/vi-VN.d.ts +1 -0
  222. package/cjs/locales/vi-VN.js +1 -0
  223. package/cjs/locales/zh-CN.js +1 -0
  224. package/cjs/locales/zh-HK.d.ts +1 -0
  225. package/cjs/locales/zh-TW.d.ts +1 -0
  226. package/cjs/utils/render-to-body.d.ts +1 -1
  227. package/cjs/utils/render-to-body.js +2 -9
  228. package/cjs/utils/render.d.ts +1 -9
  229. package/cjs/utils/render.js +10 -68
  230. package/cjs/utils/unstable-render.d.ts +9 -0
  231. package/cjs/utils/unstable-render.js +37 -0
  232. package/es/components/button/button.d.ts +2 -2
  233. package/es/components/button/button.js +1 -0
  234. package/es/components/calendar-picker-view/calendar-picker-view.js +3 -0
  235. package/es/components/date-picker/date-picker-date-utils.d.ts +1 -1
  236. package/es/components/date-picker/date-picker-date-utils.js +23 -8
  237. package/es/components/date-picker/date-picker-quarter-utils.d.ts +3 -1
  238. package/es/components/date-picker/date-picker-quarter-utils.js +7 -2
  239. package/es/components/date-picker/date-picker-week-utils.d.ts +3 -1
  240. package/es/components/date-picker/date-picker-week-utils.js +12 -4
  241. package/es/components/date-picker-view/date-picker-view.d.ts +5 -3
  242. package/es/components/date-picker-view/date-picker-view.js +4 -4
  243. package/es/components/date-picker-view/useRenderLabel.js +2 -2
  244. package/es/components/ellipsis/ellipsis.d.ts +3 -0
  245. package/es/components/ellipsis/ellipsis.js +10 -2
  246. package/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  247. package/es/components/popover/wrapper.d.ts +6 -9
  248. package/es/components/popover/wrapper.js +30 -5
  249. package/es/components/space/space.css +3 -3
  250. package/es/components/swiper/swiper.js +1 -1
  251. package/es/components/tabs/tabs.js +44 -12
  252. package/es/components/virtual-input/virtual-input.css +6 -1
  253. package/es/components/virtual-input/virtual-input.d.ts +6 -0
  254. package/es/components/virtual-input/virtual-input.js +133 -7
  255. package/es/index.d.ts +1 -0
  256. package/es/index.js +3 -1
  257. package/es/locales/ar-SA.d.ts +1 -0
  258. package/es/locales/ar-SA.js +1 -0
  259. package/es/locales/base.d.ts +1 -0
  260. package/es/locales/base.js +1 -0
  261. package/es/locales/cnr-ME.d.ts +1 -0
  262. package/es/locales/cnr-ME.js +1 -0
  263. package/es/locales/da-DK.d.ts +1 -0
  264. package/es/locales/de-DE.d.ts +1 -0
  265. package/es/locales/de-DE.js +1 -0
  266. package/es/locales/en-US.d.ts +1 -0
  267. package/es/locales/es-ES.d.ts +1 -0
  268. package/es/locales/fa-IR.d.ts +1 -0
  269. package/es/locales/fr-FR.d.ts +1 -0
  270. package/es/locales/hr-HR.d.ts +1 -0
  271. package/es/locales/hr-HR.js +1 -0
  272. package/es/locales/hu-HU.d.ts +1 -0
  273. package/es/locales/id-ID.d.ts +1 -0
  274. package/es/locales/in-ID.d.ts +1 -0
  275. package/es/locales/in-ID.js +1 -0
  276. package/es/locales/it-IT.d.ts +1 -0
  277. package/es/locales/ja-JP.d.ts +1 -0
  278. package/es/locales/kk-KZ.d.ts +1 -0
  279. package/es/locales/ko-KR.d.ts +1 -0
  280. package/es/locales/ms-MY.d.ts +1 -0
  281. package/es/locales/ms-MY.js +1 -0
  282. package/es/locales/nb-NO.d.ts +1 -0
  283. package/es/locales/nl-NL.d.ts +1 -0
  284. package/es/locales/pt-BR.d.ts +1 -0
  285. package/es/locales/ru-RU.d.ts +1 -0
  286. package/es/locales/ru-RU.js +8 -2
  287. package/es/locales/sr-RS.d.ts +1 -0
  288. package/es/locales/sr-RS.js +1 -0
  289. package/es/locales/th-TH.d.ts +1 -0
  290. package/es/locales/th-TH.js +1 -0
  291. package/es/locales/tr-TR.d.ts +1 -0
  292. package/es/locales/vi-VN.d.ts +1 -0
  293. package/es/locales/vi-VN.js +1 -0
  294. package/es/locales/zh-CN.js +1 -0
  295. package/es/locales/zh-HK.d.ts +1 -0
  296. package/es/locales/zh-TW.d.ts +1 -0
  297. package/es/utils/render-to-body.d.ts +1 -1
  298. package/es/utils/render-to-body.js +2 -9
  299. package/es/utils/render.d.ts +1 -9
  300. package/es/utils/render.js +1 -65
  301. package/es/utils/unstable-render.d.ts +9 -0
  302. package/es/utils/unstable-render.js +28 -0
  303. package/package.json +4 -4
  304. package/umd/antd-mobile.js +1 -1
  305. package/2x/cjs/components/ellipsis/~ellipsis.d.ts +0 -15
  306. package/2x/cjs/components/ellipsis/~ellipsis.js +0 -161
  307. package/2x/es/components/ellipsis/~ellipsis.d.ts +0 -15
  308. package/2x/es/components/ellipsis/~ellipsis.js +0 -151
  309. package/cjs/components/ellipsis/~ellipsis.d.ts +0 -15
  310. package/cjs/components/ellipsis/~ellipsis.js +0 -161
  311. package/es/components/ellipsis/~ellipsis.d.ts +0 -15
  312. package/es/components/ellipsis/~ellipsis.js +0 -151
@@ -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,
@@ -173,6 +173,9 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
173
173
  return contentWrapper(top);
174
174
  }
175
175
  if (props.selectionMode === 'range') {
176
+ if (isBegin && isEnd) {
177
+ return contentWrapper(locale.Calendar.startAndEnd);
178
+ }
176
179
  if (isBegin) {
177
180
  return contentWrapper(locale.Calendar.start);
178
181
  }
@@ -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;
@@ -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,7 @@ 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)(`${parseInt(yearString)}-01-01`).isoWeek(parseInt(weekString)).isoWeekday(parseInt(weekdayString)).hour(0).minute(0).second(0);
103
+ // See https://github.com/ant-design/ant-design-mobile/issues/6905
104
+ const day = (0, _dayjs.default)(`${parseInt(yearString)}-01-04`).isoWeek(parseInt(weekString)).isoWeekday(parseInt(weekdayString)).hour(0).minute(0).second(0);
97
105
  return day.toDate();
98
106
  }
@@ -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) {
@@ -11,5 +11,8 @@ export declare type EllipsisProps = {
11
11
  stopPropagationForActionButtons?: PropagationEvent[];
12
12
  onContentClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
13
13
  defaultExpanded?: boolean;
14
+ onExpand?: (expanded: boolean, info: {
15
+ event: React.MouseEvent<HTMLAnchorElement, MouseEvent>;
16
+ }) => void;
14
17
  } & NativeProps;
15
18
  export declare const Ellipsis: FC<EllipsisProps>;
@@ -39,13 +39,21 @@ const Ellipsis = p => {
39
39
  // ========================== Expanded ==========================
40
40
  const [expanded, setExpanded] = _react.default.useState(defaultExpanded);
41
41
  const expandNode = expandText ? (0, _withStopPropagation.withStopPropagation)(stopPropagationForActionButtons, _react.default.createElement("a", {
42
- onClick: () => {
42
+ onClick: e => {
43
+ var _a;
43
44
  setExpanded(true);
45
+ (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, true, {
46
+ event: e
47
+ });
44
48
  }
45
49
  }, expandText)) : null;
46
50
  const collapseNode = collapseText ? (0, _withStopPropagation.withStopPropagation)(stopPropagationForActionButtons, _react.default.createElement("a", {
47
- onClick: () => {
51
+ onClick: e => {
52
+ var _a;
48
53
  setExpanded(false);
54
+ (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, false, {
55
+ event: e
56
+ });
49
57
  }
50
58
  }, collapseText)) : null;
51
59
  // ========================== Ellipsis ==========================
@@ -14,5 +14,5 @@ export declare type NumberKeyboardProps = {
14
14
  onConfirm?: () => void;
15
15
  closeOnConfirm?: boolean;
16
16
  safeArea?: boolean;
17
- } & Pick<PopupProps, 'afterClose' | 'afterShow' | 'getContainer' | 'destroyOnClose' | 'forceRender' | 'stopPropagation'> & NativeProps;
17
+ } & Pick<PopupProps, 'afterClose' | 'afterShow' | 'getContainer' | 'destroyOnClose' | 'forceRender' | 'stopPropagation'> & NativeProps<'--adm-safe-area-multiple'>;
18
18
  export declare const NumberKeyboard: FC<NumberKeyboardProps>;
@@ -1,10 +1,7 @@
1
- import React from 'react';
2
- import type { ReactNode } from 'react';
3
- export declare class Wrapper extends React.Component<{
4
- children?: ReactNode;
5
- }, {}> {
6
- element: Element | null;
7
- componentDidMount(): void;
8
- componentDidUpdate(): void;
9
- render(): React.ReactNode;
1
+ import * as React from 'react';
2
+ export interface WrapperRef {
3
+ element: HTMLElement;
10
4
  }
5
+ export declare const Wrapper: React.ForwardRefExoticComponent<{
6
+ children?: React.ReactNode;
7
+ } & React.RefAttributes<WrapperRef>>;
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Wrapper = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactDom = require("react-dom");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- class Wrapper extends _react.default.Component {
7
+ var _findDOMNode = _interopRequireWildcard(require("rc-util/lib/Dom/findDOMNode"));
8
+ var _ref = require("rc-util/lib/ref");
9
+ var React = _interopRequireWildcard(require("react"));
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
+ class LegacyWrapper extends React.Component {
11
13
  constructor() {
12
14
  super(...arguments);
13
15
  this.element = null;
@@ -17,7 +19,7 @@ class Wrapper extends _react.default.Component {
17
19
  }
18
20
  componentDidUpdate() {
19
21
  // eslint-disable-next-line
20
- const node = (0, _reactDom.findDOMNode)(this);
22
+ const node = (0, _findDOMNode.default)(this);
21
23
  if (node instanceof Element) {
22
24
  this.element = node;
23
25
  } else {
@@ -25,7 +27,31 @@ class Wrapper extends _react.default.Component {
25
27
  }
26
28
  }
27
29
  render() {
28
- return _react.default.Children.only(this.props.children);
30
+ return this.props.children;
29
31
  }
30
32
  }
33
+ const Wrapper = React.forwardRef(({
34
+ children
35
+ }, ref) => {
36
+ const elementRef = React.useRef(null);
37
+ const legacyWrapperRef = React.createRef();
38
+ const child = React.Children.only(children);
39
+ const canUseRef = (0, _ref.supportRef)(children);
40
+ const getElement = () => {
41
+ var _a;
42
+ if (canUseRef) {
43
+ return (0, _findDOMNode.getDOM)(elementRef.current);
44
+ }
45
+ return (_a = legacyWrapperRef.current) === null || _a === void 0 ? void 0 : _a.element;
46
+ };
47
+ React.useImperativeHandle(ref, () => ({
48
+ element: getElement()
49
+ }));
50
+ const composedRef = (0, _ref.composeRef)(elementRef, (0, _ref.getNodeRef)(child));
51
+ return canUseRef ? React.cloneElement(child, {
52
+ ref: composedRef
53
+ }) : React.createElement(LegacyWrapper, {
54
+ ref: legacyWrapperRef
55
+ }, child);
56
+ });
31
57
  exports.Wrapper = Wrapper;
@@ -19,12 +19,12 @@
19
19
  .adm-space-horizontal {
20
20
  flex-direction: row;
21
21
  }
22
+ .adm-space-horizontal:not(:empty) {
23
+ margin-right: calc(var(--gap-horizontal) * -1);
24
+ }
22
25
  .adm-space-horizontal > .adm-space-item {
23
26
  margin-right: var(--gap-horizontal);
24
27
  }
25
- .adm-space-horizontal > .adm-space-item:last-child {
26
- margin-right: 0;
27
- }
28
28
  .adm-space-horizontal.adm-space-wrap {
29
29
  flex-wrap: wrap;
30
30
  margin-bottom: calc(var(--gap-vertical) * -1);
@@ -279,7 +279,7 @@ const Swiper = (0, _react.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
279
279
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
280
280
  className: `${classPrefix}-slide-placeholder`,
281
281
  style: {
282
- width: `${startIndex * 100}%`
282
+ [isVertical ? 'height' : 'width']: `${startIndex * 100}%`
283
283
  }
284
284
  }), items);
285
285
  }
@@ -4,22 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Tabs = exports.Tab = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _classnames = _interopRequireDefault(require("classnames"));
9
7
  var _web = require("@react-spring/web");
10
- var _nativeProps = require("../../utils/native-props");
11
- var _usePropsValue = require("../../utils/use-props-value");
12
- var _bound = require("../../utils/bound");
13
8
  var _ahooks = require("ahooks");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _bound = require("../../utils/bound");
12
+ var _nativeProps = require("../../utils/native-props");
13
+ var _shouldRender = require("../../utils/should-render");
14
+ var _traverseReactNode = require("../../utils/traverse-react-node");
15
+ var _useIsomorphicUpdateLayoutEffect = require("../../utils/use-isomorphic-update-layout-effect");
14
16
  var _useMutationEffect = require("../../utils/use-mutation-effect");
17
+ var _usePropsValue = require("../../utils/use-props-value");
15
18
  var _useResizeEffect = require("../../utils/use-resize-effect");
16
19
  var _withDefaultProps = require("../../utils/with-default-props");
17
- var _useIsomorphicUpdateLayoutEffect = require("../../utils/use-isomorphic-update-layout-effect");
18
- var _shouldRender = require("../../utils/should-render");
19
- var _traverseReactNode = require("../../utils/traverse-react-node");
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
20
  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); }
22
21
  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; }
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
  const classPrefix = `adm-tabs`;
24
24
  const Tab = () => {
25
25
  return null;
@@ -35,6 +35,7 @@ const Tabs = p => {
35
35
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
36
36
  const tabListContainerRef = (0, _react.useRef)(null);
37
37
  const activeLineRef = (0, _react.useRef)(null);
38
+ const tabRefs = (0, _react.useRef)({});
38
39
  const keyToIndexRecord = {};
39
40
  let firstActiveKey = null;
40
41
  const panes = [];
@@ -176,7 +177,7 @@ const Tabs = p => {
176
177
  });
177
178
  const {
178
179
  run: updateMask
179
- } = (0, _ahooks.useThrottleFn)((immediate = false) => {
180
+ } = (0, _ahooks.useThrottleFn)(immediate => {
180
181
  const container = tabListContainerRef.current;
181
182
  if (!container) return;
182
183
  const scrollLeft = container.scrollLeft;
@@ -207,6 +208,34 @@ const Tabs = p => {
207
208
  (0, _ahooks.useIsomorphicLayoutEffect)(() => {
208
209
  updateMask(true);
209
210
  }, []);
211
+ const handleKeyDown = e => {
212
+ const keys = Object.keys(keyToIndexRecord);
213
+ const currentIndex = keyToIndexRecord[activeKey];
214
+ const isNext = isRTL ? e.key === 'ArrowLeft' : e.key === 'ArrowRight';
215
+ const isPrev = isRTL ? e.key === 'ArrowRight' : e.key === 'ArrowLeft';
216
+ const offsetDirection = isNext ? 1 : -1;
217
+ const findNextEnabledTab = (startIndex, direction) => {
218
+ const length = keys.length;
219
+ for (let i = 0; i < length; i++) {
220
+ const index = (startIndex + direction * (i + 1) + length) % length;
221
+ const key = keys[index];
222
+ const pane = panes.find(p => p.key === key);
223
+ if (!(pane === null || pane === void 0 ? void 0 : pane.props.disabled)) return key;
224
+ }
225
+ return keys[startIndex];
226
+ };
227
+ const currentKey = findNextEnabledTab(currentIndex, offsetDirection);
228
+ if (isNext || isPrev) {
229
+ e.preventDefault();
230
+ setActiveKey(currentKey);
231
+ }
232
+ };
233
+ (0, _react.useEffect)(() => {
234
+ var _a;
235
+ if (activeKey && tabRefs.current[activeKey]) {
236
+ (_a = tabRefs.current[activeKey]) === null || _a === void 0 ? void 0 : _a.focus();
237
+ }
238
+ }, [activeKey]);
210
239
  return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
211
240
  className: classPrefix,
212
241
  style: {
@@ -229,6 +258,7 @@ const Tabs = p => {
229
258
  ref: tabListContainerRef,
230
259
  scrollLeft: scrollLeft,
231
260
  onScroll: updateMask,
261
+ onKeyDown: handleKeyDown,
232
262
  role: 'tablist'
233
263
  }, _react.default.createElement(_web.animated.div, {
234
264
  ref: activeLineRef,
@@ -243,6 +273,10 @@ const Tabs = p => {
243
273
  [`${classPrefix}-tab-wrapper-stretch`]: props.stretch
244
274
  })
245
275
  }, _react.default.createElement("div", {
276
+ role: 'tab',
277
+ "aria-selected": pane.key === activeKey,
278
+ tabIndex: pane.key === activeKey ? 0 : -1,
279
+ ref: el => tabRefs.current[pane.key] = el,
246
280
  onClick: () => {
247
281
  const {
248
282
  key
@@ -256,9 +290,7 @@ const Tabs = p => {
256
290
  className: (0, _classnames.default)(`${classPrefix}-tab`, {
257
291
  [`${classPrefix}-tab-active`]: pane.key === activeKey,
258
292
  [`${classPrefix}-tab-disabled`]: pane.props.disabled
259
- }),
260
- role: 'tab',
261
- "aria-selected": pane.key === activeKey
293
+ })
262
294
  }, pane.props.title)))))), panes.map(pane => {
263
295
  if (pane.props.children === undefined) {
264
296
  return null;
@@ -26,8 +26,10 @@
26
26
  z-index: 1;
27
27
  width: 100%;
28
28
  max-width: 100%;
29
+ min-height: 1.5em;
29
30
  overflow-y: hidden;
30
31
  overflow-x: scroll;
32
+ letter-spacing: 1px;
31
33
  scrollbar-width: none;
32
34
  }
33
35
  .adm-virtual-input-content::-webkit-scrollbar {
@@ -50,6 +52,7 @@
50
52
  height: 1.3em;
51
53
  vertical-align: top;
52
54
  margin-right: 1px;
55
+ position: absolute;
53
56
  }
54
57
  .adm-virtual-input-caret {
55
58
  width: 100%;
@@ -62,7 +65,6 @@
62
65
  outline: none;
63
66
  }
64
67
  .adm-virtual-input:focus .adm-virtual-input-caret {
65
- display: block;
66
68
  animation-name: adm-caret-blink;
67
69
  animation-duration: 1s;
68
70
  animation-timing-function: linear;
@@ -71,6 +73,9 @@
71
73
  .adm-virtual-input-disabled {
72
74
  color: var(--disabled-color);
73
75
  }
76
+ .adm-virtual-input-caret-dragging .adm-virtual-input-caret {
77
+ animation: none !important;
78
+ }
74
79
  @keyframes adm-caret-blink {
75
80
  from {
76
81
  opacity: 1;
@@ -3,6 +3,10 @@ import React from 'react';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  import type { InputProps } from '../input';
5
5
  import { NumberKeyboardProps } from '../number-keyboard';
6
+ export declare type Cursor = {
7
+ movable?: boolean;
8
+ onMove?: (position: number) => void;
9
+ };
6
10
  export declare type VirtualInputProps = {
7
11
  onFocus?: () => void;
8
12
  onBlur?: () => void;
@@ -10,6 +14,7 @@ export declare type VirtualInputProps = {
10
14
  keyboard?: ReactElement<NumberKeyboardProps>;
11
15
  clearable?: boolean;
12
16
  onClear?: () => void;
17
+ cursor?: Cursor;
13
18
  } & Pick<InputProps, 'value' | 'onChange' | 'placeholder' | 'disabled' | 'clearIcon'> & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--disabled-color' | '--text-align' | '--caret-width' | '--caret-color'>;
14
19
  export declare type VirtualInputRef = {
15
20
  focus: () => void;
@@ -22,6 +27,7 @@ export declare const VirtualInput: React.ForwardRefExoticComponent<{
22
27
  keyboard?: ReactElement<NumberKeyboardProps, string | React.JSXElementConstructor<any>> | undefined;
23
28
  clearable?: boolean | undefined;
24
29
  onClear?: (() => void) | undefined;
30
+ cursor?: Cursor | undefined;
25
31
  } & Pick<InputProps, "value" | "onChange" | "disabled" | "placeholder" | "clearIcon"> & {
26
32
  className?: string | undefined;
27
33
  style?: (React.CSSProperties & Partial<Record<"--color" | "--font-size" | "--placeholder-color" | "--text-align" | "--disabled-color" | "--caret-width" | "--caret-color", string>>) | undefined;