antd-mobile 5.0.0-rc.0 → 5.0.0-rc.4

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 (515) hide show
  1. package/2x/cjs/components/action-sheet/action-sheet.d.ts +3 -3
  2. package/2x/cjs/components/cascader/cascader.css +40 -0
  3. package/2x/cjs/components/cascader/cascader.d.ts +20 -0
  4. package/2x/cjs/components/cascader/cascader.js +130 -0
  5. package/2x/cjs/components/cascader/index.d.ts +9 -0
  6. package/2x/cjs/components/cascader/index.js +20 -0
  7. package/2x/cjs/components/cascader/prompt.d.ts +2 -0
  8. package/2x/cjs/components/cascader/prompt.js +51 -0
  9. package/2x/cjs/components/cascader-view/cascader-view.css +40 -0
  10. package/2x/cjs/components/cascader-view/cascader-view.d.ts +20 -0
  11. package/2x/cjs/components/cascader-view/cascader-view.js +189 -0
  12. package/2x/cjs/components/cascader-view/index.d.ts +4 -0
  13. package/2x/cjs/components/cascader-view/index.js +13 -0
  14. package/2x/cjs/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  15. package/2x/cjs/components/cascader-view/use-cascader-value-extend.js +97 -0
  16. package/2x/cjs/components/check-list/check-list-item.d.ts +2 -2
  17. package/2x/cjs/components/check-list/check-list.d.ts +2 -2
  18. package/2x/cjs/components/collapse/collapse.d.ts +2 -0
  19. package/2x/cjs/components/collapse/collapse.js +21 -5
  20. package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +8 -0
  21. package/2x/cjs/components/date-picker/date-picker-date-utils.js +206 -0
  22. package/2x/cjs/components/date-picker/date-picker-utils.d.ts +10 -6
  23. package/2x/cjs/components/date-picker/date-picker-utils.js +33 -151
  24. package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +8 -0
  25. package/2x/cjs/components/date-picker/date-picker-week-utils.js +140 -0
  26. package/2x/cjs/components/date-picker/date-picker.d.ts +2 -1
  27. package/2x/cjs/components/date-picker/date-picker.js +16 -16
  28. package/2x/cjs/components/date-picker/index.d.ts +1 -0
  29. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  30. package/2x/cjs/components/date-picker-view/date-picker-view.js +5 -5
  31. package/2x/cjs/components/date-picker-view/index.d.ts +1 -0
  32. package/2x/cjs/components/dialog/dialog.css +26 -15
  33. package/2x/cjs/components/dialog/dialog.js +50 -29
  34. package/2x/cjs/components/dropdown/dropdown.css +13 -11
  35. package/2x/cjs/components/dropdown/dropdown.d.ts +13 -4
  36. package/2x/cjs/components/dropdown/dropdown.js +13 -11
  37. package/2x/cjs/components/dropdown/index.d.ts +14 -3
  38. package/2x/cjs/components/dropdown/index.js +8 -1
  39. package/2x/cjs/components/dropdown/item.d.ts +1 -1
  40. package/2x/cjs/components/dropdown/item.js +10 -4
  41. package/2x/cjs/components/ellipsis/ellipsis.js +1 -1
  42. package/2x/cjs/components/floating-bubble/floating-bubble.css +2 -1
  43. package/2x/cjs/components/floating-bubble/floating-bubble.d.ts +1 -1
  44. package/2x/cjs/components/form/form-item.css +4 -1
  45. package/2x/cjs/components/form/form-item.d.ts +2 -2
  46. package/2x/cjs/components/form/form.css +4 -0
  47. package/2x/cjs/components/form/form.d.ts +3 -0
  48. package/2x/cjs/components/form/form.js +3 -1
  49. package/2x/cjs/components/form/index.css +8 -1
  50. package/2x/cjs/components/form/index.d.ts +1 -0
  51. package/2x/cjs/components/image-uploader/image-uploader.d.ts +9 -6
  52. package/2x/cjs/components/image-uploader/image-uploader.js +8 -6
  53. package/2x/cjs/components/image-uploader/index.d.ts +1 -1
  54. package/2x/cjs/components/image-viewer/image-viewer.d.ts +1 -7
  55. package/2x/cjs/components/image-viewer/image-viewer.js +3 -101
  56. package/2x/cjs/components/image-viewer/index.d.ts +2 -1
  57. package/2x/cjs/components/image-viewer/index.js +5 -2
  58. package/2x/cjs/components/image-viewer/methods.d.ts +8 -1
  59. package/2x/cjs/components/image-viewer/methods.js +129 -1
  60. package/2x/cjs/components/index-bar/index-bar.css +4 -0
  61. package/2x/cjs/components/index-bar/index-bar.js +31 -23
  62. package/2x/cjs/components/index-bar/panel.d.ts +2 -2
  63. package/2x/cjs/components/index-bar/panel.js +2 -34
  64. package/2x/cjs/components/input/input.d.ts +3 -8
  65. package/2x/cjs/components/input/input.js +11 -1
  66. package/2x/cjs/components/list/list.css +8 -5
  67. package/2x/cjs/components/list/list.d.ts +1 -1
  68. package/2x/cjs/components/mask/mask.js +7 -1
  69. package/2x/cjs/components/modal/alert.d.ts +7 -0
  70. package/2x/cjs/components/modal/alert.js +33 -0
  71. package/2x/cjs/components/modal/confirm.d.ts +9 -0
  72. package/2x/cjs/components/modal/confirm.js +116 -0
  73. package/2x/cjs/components/modal/index.d.ts +16 -0
  74. package/2x/cjs/components/modal/index.js +26 -0
  75. package/2x/cjs/components/modal/modal-action-button.d.ts +14 -0
  76. package/2x/cjs/components/modal/modal-action-button.js +109 -0
  77. package/2x/cjs/components/modal/modal.css +89 -0
  78. package/2x/cjs/components/modal/modal.d.ts +26 -0
  79. package/2x/cjs/components/modal/modal.js +193 -0
  80. package/2x/cjs/components/modal/show.d.ts +8 -0
  81. package/2x/cjs/components/modal/show.js +62 -0
  82. package/2x/cjs/components/notice-bar/notice-bar.css +1 -1
  83. package/2x/cjs/components/notice-bar/notice-bar.js +0 -1
  84. package/2x/cjs/components/number-keyboard/number-keyboard.js +57 -11
  85. package/2x/cjs/components/page-indicator/page-indicator.css +1 -1
  86. package/2x/cjs/components/picker/index.d.ts +1 -1
  87. package/2x/cjs/components/picker/picker.d.ts +2 -2
  88. package/2x/cjs/components/picker/picker.js +17 -16
  89. package/2x/cjs/components/picker-view/column.js +1 -18
  90. package/2x/cjs/components/picker-view/picker-view.d.ts +2 -2
  91. package/2x/cjs/components/picker-view/picker-view.js +42 -21
  92. package/2x/cjs/components/popup/popup.js +4 -0
  93. package/2x/cjs/components/search-bar/search-bar.css +1 -1
  94. package/2x/cjs/components/search-bar/search-bar.js +1 -0
  95. package/2x/cjs/components/space/space.d.ts +2 -1
  96. package/2x/cjs/components/space/space.js +4 -2
  97. package/2x/cjs/components/stepper/stepper.css +8 -0
  98. package/2x/cjs/components/stepper/stepper.js +2 -6
  99. package/2x/cjs/components/swipe-action/swipe-action.css +2 -1
  100. package/2x/cjs/components/swiper/swiper.js +4 -4
  101. package/2x/cjs/components/switch/switch.css +19 -16
  102. package/2x/cjs/components/switch/switch.d.ts +1 -1
  103. package/2x/cjs/components/tabs/tabs.css +2 -1
  104. package/2x/cjs/components/tabs/tabs.d.ts +1 -1
  105. package/2x/cjs/components/tabs/tabs.js +2 -4
  106. package/2x/cjs/components/tag/tag.css +8 -11
  107. package/2x/cjs/components/tag/tag.d.ts +1 -1
  108. package/2x/cjs/components/tag/tag.js +4 -2
  109. package/2x/cjs/components/toast/toast.css +7 -4
  110. package/2x/cjs/components/toast/toast.js +3 -1
  111. package/2x/cjs/components/virtual-input/virtual-input.css +27 -9
  112. package/2x/cjs/components/virtual-input/virtual-input.d.ts +4 -0
  113. package/2x/cjs/components/virtual-input/virtual-input.js +47 -17
  114. package/2x/cjs/index.d.ts +10 -8
  115. package/2x/cjs/index.js +36 -20
  116. package/2x/cjs/locales/base.d.ts +6 -0
  117. package/2x/cjs/locales/base.js +6 -0
  118. package/2x/cjs/locales/en-US.d.ts +6 -0
  119. package/2x/cjs/locales/zh-CN.d.ts +6 -0
  120. package/2x/cjs/locales/zh-CN.js +6 -0
  121. package/2x/cjs/utils/use-props-value.js +2 -2
  122. package/2x/es/components/action-sheet/action-sheet.d.ts +3 -3
  123. package/2x/es/components/cascader/cascader.css +40 -0
  124. package/2x/es/components/cascader/cascader.d.ts +20 -0
  125. package/2x/es/components/cascader/cascader.js +104 -0
  126. package/2x/es/components/cascader/index.d.ts +9 -0
  127. package/2x/es/components/cascader/index.js +7 -0
  128. package/2x/es/components/cascader/prompt.d.ts +2 -0
  129. package/2x/es/components/cascader/prompt.js +37 -0
  130. package/2x/es/components/cascader-view/cascader-view.css +40 -0
  131. package/2x/es/components/cascader-view/cascader-view.d.ts +20 -0
  132. package/2x/es/components/cascader-view/cascader-view.js +130 -0
  133. package/2x/es/components/cascader-view/index.d.ts +4 -0
  134. package/2x/es/components/cascader-view/index.js +3 -0
  135. package/2x/es/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  136. package/2x/es/components/cascader-view/use-cascader-value-extend.js +52 -0
  137. package/2x/es/components/check-list/check-list-item.d.ts +2 -2
  138. package/2x/es/components/check-list/check-list.d.ts +2 -2
  139. package/2x/es/components/collapse/collapse.d.ts +2 -0
  140. package/2x/es/components/collapse/collapse.js +21 -5
  141. package/2x/es/components/date-picker/date-picker-date-utils.d.ts +8 -0
  142. package/2x/es/components/date-picker/date-picker-date-utils.js +183 -0
  143. package/2x/es/components/date-picker/date-picker-utils.d.ts +10 -6
  144. package/2x/es/components/date-picker/date-picker-utils.js +26 -150
  145. package/2x/es/components/date-picker/date-picker-week-utils.d.ts +8 -0
  146. package/2x/es/components/date-picker/date-picker-week-utils.js +117 -0
  147. package/2x/es/components/date-picker/date-picker.d.ts +2 -1
  148. package/2x/es/components/date-picker/date-picker.js +15 -16
  149. package/2x/es/components/date-picker/index.d.ts +1 -0
  150. package/2x/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  151. package/2x/es/components/date-picker-view/date-picker-view.js +5 -5
  152. package/2x/es/components/date-picker-view/index.d.ts +1 -0
  153. package/2x/es/components/dialog/dialog.css +26 -15
  154. package/2x/es/components/dialog/dialog.js +44 -29
  155. package/2x/es/components/dropdown/dropdown.css +13 -11
  156. package/2x/es/components/dropdown/dropdown.d.ts +13 -4
  157. package/2x/es/components/dropdown/dropdown.js +14 -12
  158. package/2x/es/components/dropdown/index.d.ts +14 -3
  159. package/2x/es/components/dropdown/index.js +5 -1
  160. package/2x/es/components/dropdown/item.d.ts +1 -1
  161. package/2x/es/components/dropdown/item.js +9 -4
  162. package/2x/es/components/ellipsis/ellipsis.js +1 -1
  163. package/2x/es/components/floating-bubble/floating-bubble.css +2 -1
  164. package/2x/es/components/floating-bubble/floating-bubble.d.ts +1 -1
  165. package/2x/es/components/form/form-item.css +4 -1
  166. package/2x/es/components/form/form-item.d.ts +2 -2
  167. package/2x/es/components/form/form.css +4 -0
  168. package/2x/es/components/form/form.d.ts +3 -0
  169. package/2x/es/components/form/form.js +3 -1
  170. package/2x/es/components/form/index.css +8 -1
  171. package/2x/es/components/form/index.d.ts +1 -0
  172. package/2x/es/components/image-uploader/image-uploader.d.ts +9 -6
  173. package/2x/es/components/image-uploader/image-uploader.js +8 -6
  174. package/2x/es/components/image-uploader/index.d.ts +1 -1
  175. package/2x/es/components/image-viewer/image-viewer.d.ts +1 -7
  176. package/2x/es/components/image-viewer/image-viewer.js +2 -91
  177. package/2x/es/components/image-viewer/index.d.ts +2 -1
  178. package/2x/es/components/image-viewer/index.js +4 -2
  179. package/2x/es/components/image-viewer/methods.d.ts +8 -1
  180. package/2x/es/components/image-viewer/methods.js +109 -0
  181. package/2x/es/components/index-bar/index-bar.css +4 -0
  182. package/2x/es/components/index-bar/index-bar.js +29 -23
  183. package/2x/es/components/index-bar/panel.d.ts +2 -2
  184. package/2x/es/components/index-bar/panel.js +2 -26
  185. package/2x/es/components/input/input.d.ts +3 -8
  186. package/2x/es/components/input/input.js +12 -2
  187. package/2x/es/components/list/list.css +8 -5
  188. package/2x/es/components/list/list.d.ts +1 -1
  189. package/2x/es/components/mask/mask.js +6 -1
  190. package/2x/es/components/modal/alert.d.ts +7 -0
  191. package/2x/es/components/modal/alert.js +23 -0
  192. package/2x/es/components/modal/confirm.d.ts +9 -0
  193. package/2x/es/components/modal/confirm.js +106 -0
  194. package/2x/es/components/modal/index.d.ts +16 -0
  195. package/2x/es/components/modal/index.js +11 -0
  196. package/2x/es/components/modal/modal-action-button.d.ts +14 -0
  197. package/2x/es/components/modal/modal-action-button.js +90 -0
  198. package/2x/es/components/modal/modal.css +89 -0
  199. package/2x/es/components/modal/modal.d.ts +26 -0
  200. package/2x/es/components/modal/modal.js +164 -0
  201. package/2x/es/components/modal/show.d.ts +8 -0
  202. package/2x/es/components/modal/show.js +48 -0
  203. package/2x/es/components/notice-bar/notice-bar.css +1 -1
  204. package/2x/es/components/notice-bar/notice-bar.js +0 -1
  205. package/2x/es/components/number-keyboard/number-keyboard.js +56 -11
  206. package/2x/es/components/page-indicator/page-indicator.css +1 -1
  207. package/2x/es/components/picker/index.d.ts +1 -1
  208. package/2x/es/components/picker/picker.d.ts +2 -2
  209. package/2x/es/components/picker/picker.js +17 -15
  210. package/2x/es/components/picker-view/column.js +2 -18
  211. package/2x/es/components/picker-view/picker-view.d.ts +2 -2
  212. package/2x/es/components/picker-view/picker-view.js +38 -17
  213. package/2x/es/components/popup/popup.js +3 -0
  214. package/2x/es/components/search-bar/search-bar.css +1 -1
  215. package/2x/es/components/search-bar/search-bar.js +1 -0
  216. package/2x/es/components/space/space.d.ts +2 -1
  217. package/2x/es/components/space/space.js +4 -2
  218. package/2x/es/components/stepper/stepper.css +8 -0
  219. package/2x/es/components/stepper/stepper.js +2 -6
  220. package/2x/es/components/swipe-action/swipe-action.css +2 -1
  221. package/2x/es/components/swiper/swiper.js +4 -4
  222. package/2x/es/components/switch/switch.css +19 -16
  223. package/2x/es/components/switch/switch.d.ts +1 -1
  224. package/2x/es/components/tabs/tabs.css +2 -1
  225. package/2x/es/components/tabs/tabs.d.ts +1 -1
  226. package/2x/es/components/tabs/tabs.js +2 -4
  227. package/2x/es/components/tag/tag.css +8 -11
  228. package/2x/es/components/tag/tag.d.ts +1 -1
  229. package/2x/es/components/tag/tag.js +4 -2
  230. package/2x/es/components/toast/toast.css +7 -4
  231. package/2x/es/components/toast/toast.js +2 -1
  232. package/2x/es/components/virtual-input/virtual-input.css +27 -9
  233. package/2x/es/components/virtual-input/virtual-input.d.ts +4 -0
  234. package/2x/es/components/virtual-input/virtual-input.js +47 -18
  235. package/2x/es/index.d.ts +10 -8
  236. package/2x/es/index.js +11 -9
  237. package/2x/es/locales/base.d.ts +6 -0
  238. package/2x/es/locales/base.js +6 -0
  239. package/2x/es/locales/en-US.d.ts +6 -0
  240. package/2x/es/locales/zh-CN.d.ts +6 -0
  241. package/2x/es/locales/zh-CN.js +6 -0
  242. package/2x/es/utils/use-props-value.js +4 -4
  243. package/2x/package.json +4 -4
  244. package/cjs/components/action-sheet/action-sheet.d.ts +3 -3
  245. package/cjs/components/cascader/cascader.css +35 -0
  246. package/cjs/components/cascader/cascader.d.ts +20 -0
  247. package/cjs/components/cascader/cascader.js +130 -0
  248. package/cjs/components/cascader/index.d.ts +9 -0
  249. package/cjs/components/cascader/index.js +20 -0
  250. package/cjs/components/cascader/prompt.d.ts +2 -0
  251. package/cjs/components/cascader/prompt.js +51 -0
  252. package/cjs/components/cascader-view/cascader-view.css +33 -0
  253. package/cjs/components/cascader-view/cascader-view.d.ts +20 -0
  254. package/cjs/components/cascader-view/cascader-view.js +189 -0
  255. package/cjs/components/cascader-view/index.d.ts +4 -0
  256. package/cjs/components/cascader-view/index.js +13 -0
  257. package/cjs/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  258. package/cjs/components/cascader-view/use-cascader-value-extend.js +97 -0
  259. package/cjs/components/check-list/check-list-item.d.ts +2 -2
  260. package/cjs/components/check-list/check-list.d.ts +2 -2
  261. package/cjs/components/collapse/collapse.d.ts +2 -0
  262. package/cjs/components/collapse/collapse.js +21 -5
  263. package/cjs/components/date-picker/date-picker-date-utils.d.ts +8 -0
  264. package/cjs/components/date-picker/date-picker-date-utils.js +206 -0
  265. package/cjs/components/date-picker/date-picker-utils.d.ts +10 -6
  266. package/cjs/components/date-picker/date-picker-utils.js +33 -151
  267. package/cjs/components/date-picker/date-picker-week-utils.d.ts +8 -0
  268. package/cjs/components/date-picker/date-picker-week-utils.js +140 -0
  269. package/cjs/components/date-picker/date-picker.d.ts +2 -1
  270. package/cjs/components/date-picker/date-picker.js +16 -16
  271. package/cjs/components/date-picker/index.d.ts +1 -0
  272. package/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  273. package/cjs/components/date-picker-view/date-picker-view.js +5 -5
  274. package/cjs/components/date-picker-view/index.d.ts +1 -0
  275. package/cjs/components/dialog/dialog.css +24 -15
  276. package/cjs/components/dialog/dialog.js +50 -29
  277. package/cjs/components/dropdown/dropdown.css +12 -11
  278. package/cjs/components/dropdown/dropdown.d.ts +13 -4
  279. package/cjs/components/dropdown/dropdown.js +13 -11
  280. package/cjs/components/dropdown/index.d.ts +14 -3
  281. package/cjs/components/dropdown/index.js +8 -1
  282. package/cjs/components/dropdown/item.d.ts +1 -1
  283. package/cjs/components/dropdown/item.js +10 -4
  284. package/cjs/components/ellipsis/ellipsis.js +1 -1
  285. package/cjs/components/floating-bubble/floating-bubble.css +2 -1
  286. package/cjs/components/floating-bubble/floating-bubble.d.ts +1 -1
  287. package/cjs/components/form/form-item.css +4 -1
  288. package/cjs/components/form/form-item.d.ts +2 -2
  289. package/cjs/components/form/form.css +3 -0
  290. package/cjs/components/form/form.d.ts +3 -0
  291. package/cjs/components/form/form.js +3 -1
  292. package/cjs/components/form/index.css +7 -1
  293. package/cjs/components/form/index.d.ts +1 -0
  294. package/cjs/components/image-uploader/image-uploader.d.ts +9 -6
  295. package/cjs/components/image-uploader/image-uploader.js +8 -6
  296. package/cjs/components/image-uploader/index.d.ts +1 -1
  297. package/cjs/components/image-viewer/image-viewer.d.ts +1 -7
  298. package/cjs/components/image-viewer/image-viewer.js +3 -101
  299. package/cjs/components/image-viewer/index.d.ts +2 -1
  300. package/cjs/components/image-viewer/index.js +5 -2
  301. package/cjs/components/image-viewer/methods.d.ts +8 -1
  302. package/cjs/components/image-viewer/methods.js +129 -1
  303. package/cjs/components/index-bar/index-bar.css +3 -0
  304. package/cjs/components/index-bar/index-bar.js +31 -23
  305. package/cjs/components/index-bar/panel.d.ts +2 -2
  306. package/cjs/components/index-bar/panel.js +2 -34
  307. package/cjs/components/input/input.d.ts +3 -8
  308. package/cjs/components/input/input.js +11 -1
  309. package/cjs/components/list/list.css +8 -5
  310. package/cjs/components/list/list.d.ts +1 -1
  311. package/cjs/components/mask/mask.js +7 -1
  312. package/cjs/components/modal/alert.d.ts +7 -0
  313. package/cjs/components/modal/alert.js +33 -0
  314. package/cjs/components/modal/confirm.d.ts +9 -0
  315. package/cjs/components/modal/confirm.js +116 -0
  316. package/cjs/components/modal/index.d.ts +16 -0
  317. package/cjs/components/modal/index.js +26 -0
  318. package/cjs/components/modal/modal-action-button.d.ts +14 -0
  319. package/cjs/components/modal/modal-action-button.js +109 -0
  320. package/cjs/components/modal/modal.css +75 -0
  321. package/cjs/components/modal/modal.d.ts +26 -0
  322. package/cjs/components/modal/modal.js +193 -0
  323. package/cjs/components/modal/show.d.ts +8 -0
  324. package/cjs/components/modal/show.js +62 -0
  325. package/cjs/components/notice-bar/notice-bar.css +1 -1
  326. package/cjs/components/notice-bar/notice-bar.js +0 -1
  327. package/cjs/components/number-keyboard/number-keyboard.js +57 -11
  328. package/cjs/components/page-indicator/page-indicator.css +1 -1
  329. package/cjs/components/picker/index.d.ts +1 -1
  330. package/cjs/components/picker/picker.d.ts +2 -2
  331. package/cjs/components/picker/picker.js +17 -16
  332. package/cjs/components/picker-view/column.js +1 -18
  333. package/cjs/components/picker-view/picker-view.d.ts +2 -2
  334. package/cjs/components/picker-view/picker-view.js +42 -21
  335. package/cjs/components/popup/popup.js +4 -0
  336. package/cjs/components/search-bar/search-bar.css +1 -1
  337. package/cjs/components/search-bar/search-bar.js +1 -0
  338. package/cjs/components/space/space.d.ts +2 -1
  339. package/cjs/components/space/space.js +4 -2
  340. package/cjs/components/stepper/stepper.css +7 -0
  341. package/cjs/components/stepper/stepper.js +2 -6
  342. package/cjs/components/swipe-action/swipe-action.css +2 -1
  343. package/cjs/components/swiper/swiper.js +4 -4
  344. package/cjs/components/switch/switch.css +19 -16
  345. package/cjs/components/switch/switch.d.ts +1 -1
  346. package/cjs/components/tabs/tabs.css +2 -1
  347. package/cjs/components/tabs/tabs.d.ts +1 -1
  348. package/cjs/components/tabs/tabs.js +2 -4
  349. package/cjs/components/tag/tag.css +8 -10
  350. package/cjs/components/tag/tag.d.ts +1 -1
  351. package/cjs/components/tag/tag.js +4 -2
  352. package/cjs/components/toast/toast.css +7 -4
  353. package/cjs/components/toast/toast.js +3 -1
  354. package/cjs/components/virtual-input/virtual-input.css +24 -8
  355. package/cjs/components/virtual-input/virtual-input.d.ts +4 -0
  356. package/cjs/components/virtual-input/virtual-input.js +47 -17
  357. package/cjs/index.d.ts +10 -8
  358. package/cjs/index.js +36 -20
  359. package/cjs/locales/base.d.ts +6 -0
  360. package/cjs/locales/base.js +6 -0
  361. package/cjs/locales/en-US.d.ts +6 -0
  362. package/cjs/locales/zh-CN.d.ts +6 -0
  363. package/cjs/locales/zh-CN.js +6 -0
  364. package/cjs/utils/use-props-value.js +2 -2
  365. package/es/components/action-sheet/action-sheet.d.ts +3 -3
  366. package/es/components/cascader/cascader.css +35 -0
  367. package/es/components/cascader/cascader.d.ts +20 -0
  368. package/es/components/cascader/cascader.js +104 -0
  369. package/es/components/cascader/index.d.ts +9 -0
  370. package/es/components/cascader/index.js +7 -0
  371. package/es/components/cascader/prompt.d.ts +2 -0
  372. package/es/components/cascader/prompt.js +37 -0
  373. package/es/components/cascader-view/cascader-view.css +33 -0
  374. package/es/components/cascader-view/cascader-view.d.ts +20 -0
  375. package/es/components/cascader-view/cascader-view.js +130 -0
  376. package/es/components/cascader-view/index.d.ts +4 -0
  377. package/es/components/cascader-view/index.js +3 -0
  378. package/es/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  379. package/es/components/cascader-view/use-cascader-value-extend.js +52 -0
  380. package/es/components/check-list/check-list-item.d.ts +2 -2
  381. package/es/components/check-list/check-list.d.ts +2 -2
  382. package/es/components/collapse/collapse.d.ts +2 -0
  383. package/es/components/collapse/collapse.js +21 -5
  384. package/es/components/date-picker/date-picker-date-utils.d.ts +8 -0
  385. package/es/components/date-picker/date-picker-date-utils.js +183 -0
  386. package/es/components/date-picker/date-picker-utils.d.ts +10 -6
  387. package/es/components/date-picker/date-picker-utils.js +26 -150
  388. package/es/components/date-picker/date-picker-week-utils.d.ts +8 -0
  389. package/es/components/date-picker/date-picker-week-utils.js +117 -0
  390. package/es/components/date-picker/date-picker.d.ts +2 -1
  391. package/es/components/date-picker/date-picker.js +15 -16
  392. package/es/components/date-picker/index.d.ts +1 -0
  393. package/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  394. package/es/components/date-picker-view/date-picker-view.js +5 -5
  395. package/es/components/date-picker-view/index.d.ts +1 -0
  396. package/es/components/dialog/dialog.css +24 -15
  397. package/es/components/dialog/dialog.js +44 -29
  398. package/es/components/dropdown/dropdown.css +12 -11
  399. package/es/components/dropdown/dropdown.d.ts +13 -4
  400. package/es/components/dropdown/dropdown.js +14 -12
  401. package/es/components/dropdown/index.d.ts +14 -3
  402. package/es/components/dropdown/index.js +5 -1
  403. package/es/components/dropdown/item.d.ts +1 -1
  404. package/es/components/dropdown/item.js +9 -4
  405. package/es/components/ellipsis/ellipsis.js +1 -1
  406. package/es/components/floating-bubble/floating-bubble.css +2 -1
  407. package/es/components/floating-bubble/floating-bubble.d.ts +1 -1
  408. package/es/components/form/form-item.css +4 -1
  409. package/es/components/form/form-item.d.ts +2 -2
  410. package/es/components/form/form.css +3 -0
  411. package/es/components/form/form.d.ts +3 -0
  412. package/es/components/form/form.js +3 -1
  413. package/es/components/form/index.css +7 -1
  414. package/es/components/form/index.d.ts +1 -0
  415. package/es/components/image-uploader/image-uploader.d.ts +9 -6
  416. package/es/components/image-uploader/image-uploader.js +8 -6
  417. package/es/components/image-uploader/index.d.ts +1 -1
  418. package/es/components/image-viewer/image-viewer.d.ts +1 -7
  419. package/es/components/image-viewer/image-viewer.js +2 -91
  420. package/es/components/image-viewer/index.d.ts +2 -1
  421. package/es/components/image-viewer/index.js +4 -2
  422. package/es/components/image-viewer/methods.d.ts +8 -1
  423. package/es/components/image-viewer/methods.js +109 -0
  424. package/es/components/index-bar/index-bar.css +3 -0
  425. package/es/components/index-bar/index-bar.js +29 -23
  426. package/es/components/index-bar/panel.d.ts +2 -2
  427. package/es/components/index-bar/panel.js +2 -26
  428. package/es/components/input/input.d.ts +3 -8
  429. package/es/components/input/input.js +12 -2
  430. package/es/components/list/list.css +8 -5
  431. package/es/components/list/list.d.ts +1 -1
  432. package/es/components/mask/mask.js +6 -1
  433. package/es/components/modal/alert.d.ts +7 -0
  434. package/es/components/modal/alert.js +23 -0
  435. package/es/components/modal/confirm.d.ts +9 -0
  436. package/es/components/modal/confirm.js +106 -0
  437. package/es/components/modal/index.d.ts +16 -0
  438. package/es/components/modal/index.js +11 -0
  439. package/es/components/modal/modal-action-button.d.ts +14 -0
  440. package/es/components/modal/modal-action-button.js +90 -0
  441. package/es/components/modal/modal.css +75 -0
  442. package/es/components/modal/modal.d.ts +26 -0
  443. package/es/components/modal/modal.js +164 -0
  444. package/es/components/modal/show.d.ts +8 -0
  445. package/es/components/modal/show.js +48 -0
  446. package/es/components/notice-bar/notice-bar.css +1 -1
  447. package/es/components/notice-bar/notice-bar.js +0 -1
  448. package/es/components/number-keyboard/number-keyboard.js +56 -11
  449. package/es/components/page-indicator/page-indicator.css +1 -1
  450. package/es/components/picker/index.d.ts +1 -1
  451. package/es/components/picker/picker.d.ts +2 -2
  452. package/es/components/picker/picker.js +17 -15
  453. package/es/components/picker-view/column.js +2 -18
  454. package/es/components/picker-view/picker-view.d.ts +2 -2
  455. package/es/components/picker-view/picker-view.js +38 -17
  456. package/es/components/popup/popup.js +3 -0
  457. package/es/components/search-bar/search-bar.css +1 -1
  458. package/es/components/search-bar/search-bar.js +1 -0
  459. package/es/components/space/space.d.ts +2 -1
  460. package/es/components/space/space.js +4 -2
  461. package/es/components/stepper/stepper.css +7 -0
  462. package/es/components/stepper/stepper.js +2 -6
  463. package/es/components/swipe-action/swipe-action.css +2 -1
  464. package/es/components/swiper/swiper.js +4 -4
  465. package/es/components/switch/switch.css +19 -16
  466. package/es/components/switch/switch.d.ts +1 -1
  467. package/es/components/tabs/tabs.css +2 -1
  468. package/es/components/tabs/tabs.d.ts +1 -1
  469. package/es/components/tabs/tabs.js +2 -4
  470. package/es/components/tag/tag.css +8 -10
  471. package/es/components/tag/tag.d.ts +1 -1
  472. package/es/components/tag/tag.js +4 -2
  473. package/es/components/toast/toast.css +7 -4
  474. package/es/components/toast/toast.js +2 -1
  475. package/es/components/virtual-input/virtual-input.css +24 -8
  476. package/es/components/virtual-input/virtual-input.d.ts +4 -0
  477. package/es/components/virtual-input/virtual-input.js +47 -18
  478. package/es/index.d.ts +10 -8
  479. package/es/index.js +11 -9
  480. package/es/locales/base.d.ts +6 -0
  481. package/es/locales/base.js +6 -0
  482. package/es/locales/en-US.d.ts +6 -0
  483. package/es/locales/zh-CN.d.ts +6 -0
  484. package/es/locales/zh-CN.js +6 -0
  485. package/es/utils/use-props-value.js +4 -4
  486. package/package.json +4 -4
  487. package/umd/antd-mobile.js +1 -1
  488. package/2x/cjs/components/desense-text/desense-text.css +0 -10
  489. package/2x/cjs/components/desense-text/desense-text.d.ts +0 -10
  490. package/2x/cjs/components/desense-text/desense-text.js +0 -50
  491. package/2x/cjs/components/desense-text/index.d.ts +0 -4
  492. package/2x/cjs/components/desense-text/index.js +0 -13
  493. package/2x/cjs/components/index-bar/context.d.ts +0 -5
  494. package/2x/cjs/components/index-bar/context.js +0 -14
  495. package/2x/es/components/desense-text/desense-text.css +0 -10
  496. package/2x/es/components/desense-text/desense-text.d.ts +0 -10
  497. package/2x/es/components/desense-text/desense-text.js +0 -32
  498. package/2x/es/components/desense-text/index.d.ts +0 -4
  499. package/2x/es/components/desense-text/index.js +0 -3
  500. package/2x/es/components/index-bar/context.d.ts +0 -5
  501. package/2x/es/components/index-bar/context.js +0 -5
  502. package/cjs/components/desense-text/desense-text.css +0 -9
  503. package/cjs/components/desense-text/desense-text.d.ts +0 -10
  504. package/cjs/components/desense-text/desense-text.js +0 -50
  505. package/cjs/components/desense-text/index.d.ts +0 -4
  506. package/cjs/components/desense-text/index.js +0 -13
  507. package/cjs/components/index-bar/context.d.ts +0 -5
  508. package/cjs/components/index-bar/context.js +0 -14
  509. package/es/components/desense-text/desense-text.css +0 -9
  510. package/es/components/desense-text/desense-text.d.ts +0 -10
  511. package/es/components/desense-text/desense-text.js +0 -32
  512. package/es/components/desense-text/index.d.ts +0 -4
  513. package/es/components/desense-text/index.js +0 -3
  514. package/es/components/index-bar/context.d.ts +0 -5
  515. package/es/components/index-bar/context.js +0 -5
@@ -102,7 +102,7 @@ export var Collapse = function Collapse(props) {
102
102
  return withNativeProps(props, /*#__PURE__*/React.createElement("div", {
103
103
  className: classPrefix
104
104
  }, /*#__PURE__*/React.createElement(List, null, panels.map(function (panel) {
105
- var _classNames, _classNames2;
105
+ var _classNames2;
106
106
 
107
107
  var key = panel.key;
108
108
  var active = activeKeyList.includes(key);
@@ -129,14 +129,30 @@ export var Collapse = function Collapse(props) {
129
129
  (_b = (_a = panel.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, event);
130
130
  }
131
131
 
132
+ var renderArrow = function renderArrow() {
133
+ var _classNames;
134
+
135
+ var arrow = /*#__PURE__*/React.createElement(RightOutline, null);
136
+
137
+ if (props.arrow !== undefined) {
138
+ arrow = props.arrow;
139
+ }
140
+
141
+ if (panel.props.arrow !== undefined) {
142
+ arrow = panel.props.arrow;
143
+ }
144
+
145
+ return /*#__PURE__*/React.createElement("div", {
146
+ className: classNames(classPrefix + "-arrow", (_classNames = {}, _classNames[classPrefix + "-arrow-active"] = active, _classNames))
147
+ }, arrow);
148
+ };
149
+
132
150
  return /*#__PURE__*/React.createElement(React.Fragment, {
133
151
  key: key
134
152
  }, withNativeProps(panel.props, /*#__PURE__*/React.createElement(List.Item, {
135
- className: classNames(classPrefix + "-panel-header", (_classNames = {}, _classNames[classPrefix + "-panel-header-disabled"] = panel.props.disabled, _classNames)),
153
+ className: classNames(classPrefix + "-panel-header", (_classNames2 = {}, _classNames2[classPrefix + "-panel-header-disabled"] = panel.props.disabled, _classNames2)),
136
154
  onClick: panel.props.disabled ? undefined : handleClick,
137
- arrow: /*#__PURE__*/React.createElement("div", {
138
- className: classNames(classPrefix + "-arrow", (_classNames2 = {}, _classNames2[classPrefix + "-arrow-active"] = active, _classNames2))
139
- }, /*#__PURE__*/React.createElement(RightOutline, null))
155
+ arrow: renderArrow()
140
156
  }, panel.props.title)), /*#__PURE__*/React.createElement(CollapsePanelContent, {
141
157
  visible: active,
142
158
  forceRender: !!panel.props.forceRender,
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ import { PickerColumn } from '../picker';
3
+ import type { DatePickerFilter } from './date-picker-utils';
4
+ export declare type DatePrecision = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second';
5
+ export declare function defaultRenderLabel(type: DatePrecision, data: number): string;
6
+ export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: DatePrecision, renderLabel: (type: DatePrecision, data: number) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
7
+ export declare function convertDateToStringArray(date: Date | undefined | null): string[];
8
+ export declare function convertStringArrayToDate(value: (string | null | undefined)[]): Date;
@@ -0,0 +1,183 @@
1
+ import dayjs from 'dayjs';
2
+ import isoWeek from 'dayjs/plugin/isoWeek';
3
+ import isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';
4
+ import isLeapYear from 'dayjs/plugin/isLeapYear';
5
+ dayjs.extend(isoWeek);
6
+ dayjs.extend(isoWeeksInYear);
7
+ dayjs.extend(isLeapYear);
8
+ var precisionRankRecord = {
9
+ year: 0,
10
+ month: 1,
11
+ day: 2,
12
+ hour: 3,
13
+ minute: 4,
14
+ second: 5
15
+ };
16
+ export function defaultRenderLabel(type, data) {
17
+ switch (type) {
18
+ case 'minute':
19
+ case 'second':
20
+ case 'hour':
21
+ return ('0' + data.toString()).slice(-2);
22
+
23
+ default:
24
+ return data.toString();
25
+ }
26
+ }
27
+ export function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter) {
28
+ var ret = [];
29
+ var minYear = min.getFullYear();
30
+ var minMonth = min.getMonth() + 1;
31
+ var minDay = min.getDate();
32
+ var minHour = min.getHours();
33
+ var minMinute = min.getMinutes();
34
+ var minSecond = min.getSeconds();
35
+ var maxYear = max.getFullYear();
36
+ var maxMonth = max.getMonth() + 1;
37
+ var maxDay = max.getDate();
38
+ var maxHour = max.getHours();
39
+ var maxMinute = max.getMinutes();
40
+ var maxSecond = max.getSeconds();
41
+ var rank = precisionRankRecord[precision];
42
+
43
+ if (rank >= precisionRankRecord.year) {
44
+ var years = [];
45
+
46
+ for (var i = minYear; i <= maxYear; i++) {
47
+ var value = i.toString();
48
+ years.push({
49
+ label: renderLabel ? renderLabel('year', i) : value,
50
+ value: value
51
+ });
52
+ }
53
+
54
+ ret.push(years);
55
+ }
56
+
57
+ var selectedYear = parseInt(selected[0]);
58
+ var firstDayInSelectedMonth = dayjs(convertStringArrayToDate([selected[0], selected[1], '1']));
59
+ var selectedMonth = parseInt(selected[1]);
60
+ var selectedDay = parseInt(selected[2]);
61
+ var selectedHour = parseInt(selected[3]);
62
+ var selectedMinute = parseInt(selected[4]);
63
+ var isInMinYear = selectedYear === minYear;
64
+ var isInMaxYear = selectedYear === maxYear;
65
+ var isInMinMonth = isInMinYear && selectedMonth === minMonth;
66
+ var isInMaxMonth = isInMaxYear && selectedMonth === maxMonth;
67
+ var isInMinDay = isInMinMonth && selectedDay === minDay;
68
+ var isInMaxDay = isInMaxMonth && selectedDay === maxDay;
69
+ var isInMinHour = isInMinDay && selectedHour === minHour;
70
+ var isInMaxHour = isInMaxDay && selectedHour === maxHour;
71
+ var isInMinMinute = isInMinHour && selectedMinute === minMinute;
72
+ var isInMaxMinute = isInMaxHour && selectedMinute === maxMinute;
73
+
74
+ var generateColumn = function generateColumn(from, to, precision) {
75
+ var column = [];
76
+
77
+ for (var _i = from; _i <= to; _i++) {
78
+ column.push(_i);
79
+ }
80
+
81
+ var prefix = selected.slice(0, precisionRankRecord[precision]);
82
+ var currentFilter = filter === null || filter === void 0 ? void 0 : filter[precision];
83
+
84
+ if (currentFilter && typeof currentFilter === 'function') {
85
+ column = column.filter(function (i) {
86
+ return currentFilter(i, {
87
+ get date() {
88
+ var stringArray = [].concat(prefix, [i.toString()]);
89
+ return convertStringArrayToDate(stringArray);
90
+ }
91
+
92
+ });
93
+ });
94
+ }
95
+
96
+ return column;
97
+ };
98
+
99
+ if (rank >= precisionRankRecord.month) {
100
+ var lower = isInMinYear ? minMonth : 1;
101
+ var upper = isInMaxYear ? maxMonth : 12;
102
+ var months = generateColumn(lower, upper, 'month');
103
+ ret.push(months.map(function (v) {
104
+ return {
105
+ label: renderLabel('month', v),
106
+ value: v.toString()
107
+ };
108
+ }));
109
+ }
110
+
111
+ if (rank >= precisionRankRecord.day) {
112
+ var _lower = isInMinMonth ? minDay : 1;
113
+
114
+ var _upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
115
+
116
+ var days = generateColumn(_lower, _upper, 'day');
117
+ ret.push(days.map(function (v) {
118
+ return {
119
+ label: renderLabel('day', v),
120
+ value: v.toString()
121
+ };
122
+ }));
123
+ }
124
+
125
+ if (rank >= precisionRankRecord.hour) {
126
+ var _lower2 = isInMinDay ? minHour : 0;
127
+
128
+ var _upper2 = isInMaxDay ? maxHour : 23;
129
+
130
+ var hours = generateColumn(_lower2, _upper2, 'hour');
131
+ ret.push(hours.map(function (v) {
132
+ return {
133
+ label: renderLabel('hour', v),
134
+ value: v.toString()
135
+ };
136
+ }));
137
+ }
138
+
139
+ if (rank >= precisionRankRecord.minute) {
140
+ var _lower3 = isInMinHour ? minMinute : 0;
141
+
142
+ var _upper3 = isInMaxHour ? maxMinute : 59;
143
+
144
+ var minutes = generateColumn(_lower3, _upper3, 'minute');
145
+ ret.push(minutes.map(function (v) {
146
+ return {
147
+ label: renderLabel('minute', v),
148
+ value: v.toString()
149
+ };
150
+ }));
151
+ }
152
+
153
+ if (rank >= precisionRankRecord.second) {
154
+ var _lower4 = isInMinMinute ? minSecond : 0;
155
+
156
+ var _upper4 = isInMaxMinute ? maxSecond : 59;
157
+
158
+ var seconds = generateColumn(_lower4, _upper4, 'second');
159
+ ret.push(seconds.map(function (v) {
160
+ return {
161
+ label: renderLabel('second', v),
162
+ value: v.toString()
163
+ };
164
+ }));
165
+ }
166
+
167
+ return ret;
168
+ }
169
+ export function convertDateToStringArray(date) {
170
+ if (!date) return [];
171
+ return [date.getFullYear().toString(), (date.getMonth() + 1).toString(), date.getDate().toString(), date.getHours().toString(), date.getMinutes().toString(), date.getSeconds().toString()];
172
+ }
173
+ export function convertStringArrayToDate(value) {
174
+ var _a, _b, _c, _d, _e, _f;
175
+
176
+ var yearString = (_a = value[0]) !== null && _a !== void 0 ? _a : '1900';
177
+ var monthString = (_b = value[1]) !== null && _b !== void 0 ? _b : '1';
178
+ var dateString = (_c = value[2]) !== null && _c !== void 0 ? _c : '1';
179
+ var hourString = (_d = value[3]) !== null && _d !== void 0 ? _d : '0';
180
+ var minuteString = (_e = value[4]) !== null && _e !== void 0 ? _e : '0';
181
+ var secondString = (_f = value[5]) !== null && _f !== void 0 ? _f : '0';
182
+ return new Date(parseInt(yearString), parseInt(monthString) - 1, parseInt(dateString), parseInt(hourString), parseInt(minuteString), parseInt(secondString));
183
+ }
@@ -1,7 +1,11 @@
1
1
  import { ReactNode } from 'react';
2
- import { PickerColumn } from '../picker';
3
- export declare type Precision = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second';
4
- export declare function defaultRenderLabel(type: Precision, data: number): string;
5
- export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: Precision, renderLabel: (type: Precision, data: number) => ReactNode): PickerColumn[];
6
- export declare function convertDateToStringArray(date: Date | undefined | null): string[];
7
- export declare function convertStringArrayToDate(value: (string | null | undefined)[]): Date | null;
2
+ import type { DatePrecision } from './date-picker-date-utils';
3
+ import type { WeekPrecision } from './date-picker-week-utils';
4
+ export declare type Precision = DatePrecision | WeekPrecision;
5
+ export declare type DatePickerFilter = Partial<Record<Precision, (val: number, extend: {
6
+ date: Date;
7
+ }) => boolean>>;
8
+ export declare const convertDateToStringArray: (date: Date | undefined | null, precision: Precision) => string[];
9
+ export declare const convertStringArrayToDate: (value: (string | null | undefined)[], precision: Precision) => Date;
10
+ export declare const generateDatePickerColumns: (selected: string[], min: Date, max: Date, precision: Precision, renderLabel: (type: Precision, data: number) => ReactNode, filter: DatePickerFilter | undefined) => import("../picker-view").PickerColumn[];
11
+ export declare const defaultRenderLabel: (precision: Precision, data: number) => string;
@@ -1,154 +1,30 @@
1
- import dayjs from 'dayjs';
2
- import { generateIntArray } from '../../utils/generate-int-array';
3
- var precisionRankRecord = {
4
- year: 0,
5
- month: 1,
6
- day: 2,
7
- hour: 3,
8
- minute: 4,
9
- second: 5
10
- };
11
- export function defaultRenderLabel(type, data) {
12
- switch (type) {
13
- case 'minute':
14
- case 'second':
15
- case 'hour':
16
- return ('0' + data.toString()).slice(-2);
17
-
18
- default:
19
- return data.toString();
20
- }
21
- }
22
- export function generateDatePickerColumns(selected, min, max, precision, renderLabel) {
23
- var ret = [];
24
- var minYear = min.getFullYear();
25
- var minMonth = min.getMonth() + 1;
26
- var minDay = min.getDate();
27
- var minHour = min.getHours();
28
- var minMinute = min.getMinutes();
29
- var minSecond = min.getSeconds();
30
- var maxYear = max.getFullYear();
31
- var maxMonth = max.getMonth() + 1;
32
- var maxDay = max.getDate();
33
- var maxHour = max.getHours();
34
- var maxMinute = max.getMinutes();
35
- var maxSecond = max.getSeconds();
36
- var rank = precisionRankRecord[precision];
37
-
38
- if (rank >= precisionRankRecord.year) {
39
- var years = [];
40
-
41
- for (var i = minYear; i <= maxYear; i++) {
42
- var value = i.toString();
43
- years.push({
44
- label: renderLabel ? renderLabel('year', i) : value,
45
- value: value
46
- });
47
- }
48
-
49
- ret.push(years);
50
- }
51
-
52
- var firstDayInSelectedMonth = dayjs(convertStringArrayToDate([selected[0], selected[1], '1']));
53
- var selectedYear = parseInt(selected[0]);
54
- var selectedMonth = parseInt(selected[1]);
55
- var selectedDay = parseInt(selected[2]);
56
- var selectedHour = parseInt(selected[3]);
57
- var selectedMinute = parseInt(selected[4]);
58
- var isInMinYear = selectedYear === minYear;
59
- var isInMaxYear = selectedYear === maxYear;
60
- var isInMinMonth = isInMinYear && selectedMonth === minMonth;
61
- var isInMaxMonth = isInMaxYear && selectedMonth === maxMonth;
62
- var isInMinDay = isInMinMonth && selectedDay === minDay;
63
- var isInMaxDay = isInMaxMonth && selectedDay === maxDay;
64
- var isInMinHour = isInMinDay && selectedHour === minHour;
65
- var isInMaxHour = isInMaxDay && selectedHour === maxHour;
66
- var isInMinMinute = isInMinHour && selectedMinute === minMinute;
67
- var isInMaxMinute = isInMaxHour && selectedMinute === maxMinute;
68
-
69
- if (rank >= precisionRankRecord.month) {
70
- var lower = isInMinYear ? minMonth : 1;
71
- var upper = isInMaxYear ? maxMonth : 12;
72
- var months = generateIntArray(lower, upper);
73
- ret.push(months.map(function (v) {
74
- return {
75
- label: renderLabel('month', v),
76
- value: v.toString()
77
- };
78
- }));
79
- }
80
-
81
- if (rank >= precisionRankRecord.day) {
82
- var _lower = isInMinMonth ? minDay : 1;
83
-
84
- var _upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
85
-
86
- var days = generateIntArray(_lower, _upper);
87
- ret.push(days.map(function (v) {
88
- return {
89
- label: renderLabel('day', v),
90
- value: v.toString()
91
- };
92
- }));
1
+ import * as dateUtils from './date-picker-date-utils';
2
+ import * as weekUtils from './date-picker-week-utils';
3
+ export var convertDateToStringArray = function convertDateToStringArray(date, precision) {
4
+ if (precision.includes('week')) {
5
+ return weekUtils.convertDateToStringArray(date);
6
+ } else {
7
+ return dateUtils.convertDateToStringArray(date);
93
8
  }
94
-
95
- if (rank >= precisionRankRecord.hour) {
96
- var _lower2 = isInMinDay ? minHour : 0;
97
-
98
- var _upper2 = isInMaxDay ? maxHour : 23;
99
-
100
- var hours = generateIntArray(_lower2, _upper2);
101
- ret.push(hours.map(function (v) {
102
- return {
103
- label: renderLabel('hour', v),
104
- value: v.toString()
105
- };
106
- }));
9
+ };
10
+ export var convertStringArrayToDate = function convertStringArrayToDate(value, precision) {
11
+ if (precision.includes('week')) {
12
+ return weekUtils.convertStringArrayToDate(value);
13
+ } else {
14
+ return dateUtils.convertStringArrayToDate(value);
107
15
  }
108
-
109
- if (rank >= precisionRankRecord.minute) {
110
- var _lower3 = isInMinHour ? minMinute : 0;
111
-
112
- var _upper3 = isInMaxHour ? maxMinute : 59;
113
-
114
- var minutes = generateIntArray(_lower3, _upper3);
115
- ret.push(minutes.map(function (v) {
116
- return {
117
- label: renderLabel('minute', v),
118
- value: v.toString()
119
- };
120
- }));
16
+ };
17
+ export var generateDatePickerColumns = function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter) {
18
+ if (precision.startsWith('week')) {
19
+ return weekUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter);
20
+ } else {
21
+ return dateUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter);
121
22
  }
122
-
123
- if (rank >= precisionRankRecord.second) {
124
- var _lower4 = isInMinMinute ? minSecond : 0;
125
-
126
- var _upper4 = isInMaxMinute ? maxSecond : 59;
127
-
128
- var seconds = generateIntArray(_lower4, _upper4);
129
- ret.push(seconds.map(function (v) {
130
- return {
131
- label: renderLabel('second', v),
132
- value: v.toString()
133
- };
134
- }));
23
+ };
24
+ export var defaultRenderLabel = function defaultRenderLabel(precision, data) {
25
+ if (precision.includes('week')) {
26
+ return weekUtils.defaultRenderLabel(precision, data);
27
+ } else {
28
+ return dateUtils.defaultRenderLabel(precision, data);
135
29
  }
136
-
137
- return ret;
138
- }
139
- export function convertDateToStringArray(date) {
140
- if (!date) return [];
141
- return [date.getFullYear().toString(), (date.getMonth() + 1).toString(), date.getDate().toString(), date.getHours().toString(), date.getMinutes().toString(), date.getSeconds().toString()];
142
- }
143
- export function convertStringArrayToDate(value) {
144
- var _a, _b, _c, _d, _e, _f;
145
-
146
- if (value.length === 0) return null;
147
- var yearString = (_a = value[0]) !== null && _a !== void 0 ? _a : '1900';
148
- var monthString = (_b = value[1]) !== null && _b !== void 0 ? _b : '1';
149
- var dateString = (_c = value[2]) !== null && _c !== void 0 ? _c : '1';
150
- var hourString = (_d = value[3]) !== null && _d !== void 0 ? _d : '0';
151
- var minuteString = (_e = value[4]) !== null && _e !== void 0 ? _e : '0';
152
- var secondString = (_f = value[5]) !== null && _f !== void 0 ? _f : '0';
153
- return new Date(parseInt(yearString), parseInt(monthString) - 1, parseInt(dateString), parseInt(hourString), parseInt(minuteString), parseInt(secondString));
154
- }
30
+ };
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ import { PickerColumn } from '../picker';
3
+ import type { DatePickerFilter } from './date-picker-utils';
4
+ export declare type WeekPrecision = 'year' | 'week' | 'week-day';
5
+ export declare function defaultRenderLabel(type: WeekPrecision, data: number): string;
6
+ export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: WeekPrecision, renderLabel: (type: WeekPrecision, data: number) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
7
+ export declare function convertDateToStringArray(date: Date | undefined | null): string[];
8
+ export declare function convertStringArrayToDate(value: (string | null | undefined)[]): Date;
@@ -0,0 +1,117 @@
1
+ import dayjs from 'dayjs';
2
+ import isoWeek from 'dayjs/plugin/isoWeek';
3
+ import isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';
4
+ import isLeapYear from 'dayjs/plugin/isLeapYear';
5
+ dayjs.extend(isoWeek);
6
+ dayjs.extend(isoWeeksInYear);
7
+ dayjs.extend(isLeapYear);
8
+ var precisionRankRecord = {
9
+ year: 0,
10
+ week: 1,
11
+ 'week-day': 2
12
+ };
13
+ export function defaultRenderLabel(type, data) {
14
+ return data.toString();
15
+ }
16
+ export function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter) {
17
+ var ret = [];
18
+ var minYear = min.getFullYear();
19
+ var maxYear = max.getFullYear();
20
+ var rank = precisionRankRecord[precision];
21
+
22
+ if (rank >= precisionRankRecord.year) {
23
+ var years = [];
24
+
25
+ for (var i = minYear; i <= maxYear; i++) {
26
+ var value = i.toString();
27
+ years.push({
28
+ label: renderLabel ? renderLabel('year', i) : value,
29
+ value: value
30
+ });
31
+ }
32
+
33
+ ret.push(years);
34
+ }
35
+
36
+ var selectedYear = parseInt(selected[0]);
37
+ var isInMinYear = selectedYear === minYear;
38
+ var isInMaxYear = selectedYear === maxYear;
39
+ var minDay = dayjs(min);
40
+ var maxDay = dayjs(max);
41
+ var minWeek = minDay.isoWeek();
42
+ var maxWeek = maxDay.isoWeek();
43
+ var minWeekday = minDay.isoWeekday();
44
+ var maxWeekday = maxDay.isoWeekday();
45
+ var selectedWeek = parseInt(selected[1]);
46
+ var isInMinWeek = isInMinYear && selectedWeek === minWeek;
47
+ var isInMaxWeek = isInMaxYear && selectedWeek === maxWeek;
48
+ var selectedYearWeeks = dayjs(selectedYear + "-01-01").isoWeeksInYear();
49
+
50
+ var generateColumn = function generateColumn(from, to, precision) {
51
+ var column = [];
52
+
53
+ for (var _i = from; _i <= to; _i++) {
54
+ column.push(_i);
55
+ }
56
+
57
+ var prefix = selected.slice(0, precisionRankRecord[precision]);
58
+ var currentFilter = filter === null || filter === void 0 ? void 0 : filter[precision];
59
+
60
+ if (currentFilter && typeof currentFilter === 'function') {
61
+ column = column.filter(function (i) {
62
+ return currentFilter(i, {
63
+ get date() {
64
+ var stringArray = [].concat(prefix, [i.toString()]);
65
+ return convertStringArrayToDate(stringArray);
66
+ }
67
+
68
+ });
69
+ });
70
+ }
71
+
72
+ return column;
73
+ };
74
+
75
+ if (rank >= precisionRankRecord.week) {
76
+ var lower = isInMinYear ? minWeek : 1;
77
+ var upper = isInMaxYear ? maxWeek : selectedYearWeeks;
78
+ var weeks = generateColumn(lower, upper, 'week');
79
+ ret.push(weeks.map(function (v) {
80
+ return {
81
+ label: renderLabel('week', v),
82
+ value: v.toString()
83
+ };
84
+ }));
85
+ }
86
+
87
+ if (rank >= precisionRankRecord['week-day']) {
88
+ var _lower = isInMinWeek ? minWeekday : 1;
89
+
90
+ var _upper = isInMaxWeek ? maxWeekday : 7;
91
+
92
+ var _weeks = generateColumn(_lower, _upper, 'week-day');
93
+
94
+ ret.push(_weeks.map(function (v) {
95
+ return {
96
+ label: renderLabel('week-day', v),
97
+ value: v.toString()
98
+ };
99
+ }));
100
+ }
101
+
102
+ return ret;
103
+ }
104
+ export function convertDateToStringArray(date) {
105
+ if (!date) return [];
106
+ var day = dayjs(date);
107
+ return [day.isoWeekYear().toString(), day.isoWeek().toString(), day.isoWeekday().toString()];
108
+ }
109
+ export function convertStringArrayToDate(value) {
110
+ var _a, _b, _c;
111
+
112
+ var yearString = (_a = value[0]) !== null && _a !== void 0 ? _a : '1900';
113
+ var weekString = (_b = value[1]) !== null && _b !== void 0 ? _b : '1';
114
+ var weekdayString = (_c = value[2]) !== null && _c !== void 0 ? _c : '1';
115
+ var day = dayjs().year(parseInt(yearString)).isoWeek(parseInt(weekString)).isoWeekday(parseInt(weekdayString)).hour(0).minute(0).second(0);
116
+ return day.toDate();
117
+ }
@@ -1,7 +1,7 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { PickerProps } from '../picker';
3
3
  import { NativeProps } from '../../utils/native-props';
4
- import { Precision } from './date-picker-utils';
4
+ import type { Precision, DatePickerFilter } from './date-picker-utils';
5
5
  export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' | 'visible' | 'confirmText' | 'cancelText' | 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'title' | 'stopPropagation'> & {
6
6
  value?: Date;
7
7
  defaultValue?: Date;
@@ -12,5 +12,6 @@ export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' |
12
12
  precision?: Precision;
13
13
  children?: (value: Date | null) => ReactNode;
14
14
  renderLabel?: (type: Precision, data: number) => ReactNode;
15
+ filter?: DatePickerFilter;
15
16
  } & NativeProps;
16
17
  export declare const DatePicker: FC<DatePickerProps>;
@@ -1,4 +1,5 @@
1
1
  import React, { useCallback, useMemo } from 'react';
2
+ import { usePersistFn } from 'ahooks';
2
3
  import Picker from '../picker';
3
4
  import { withNativeProps } from '../../utils/native-props';
4
5
  import { mergeProps } from '../../utils/with-default-props';
@@ -25,24 +26,22 @@ export var DatePicker = function DatePicker(p) {
25
26
  setValue = _usePropsValue[1];
26
27
 
27
28
  var pickerValue = useMemo(function () {
28
- return convertDateToStringArray(value);
29
- }, [value]);
29
+ return convertDateToStringArray(value, props.precision);
30
+ }, [value, props.precision]);
30
31
  var onConfirm = useCallback(function (val) {
31
- setValue(convertStringArrayToDate(val));
32
- }, [setValue]);
33
- var onSelect = useCallback(function (val) {
32
+ setValue(convertStringArrayToDate(val, props.precision));
33
+ }, [setValue, props.precision]);
34
+ var onSelect = usePersistFn(function (val) {
34
35
  var _a;
35
36
 
36
- var date = convertStringArrayToDate(val);
37
-
38
- if (date) {
39
- (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, date);
40
- }
41
- }, [props.onSelect]);
37
+ var date = convertStringArrayToDate(val, props.precision);
38
+ (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, date);
39
+ });
40
+ var columns = useCallback(function (selected) {
41
+ return generateDatePickerColumns(selected, props.min, props.max, props.precision, props.renderLabel, props.filter);
42
+ }, [props.min, props.max, props.precision, props.renderLabel]);
42
43
  return withNativeProps(props, /*#__PURE__*/React.createElement(Picker, {
43
- columns: function columns(selected) {
44
- return generateDatePickerColumns(selected, props.min, props.max, props.precision, props.renderLabel);
45
- },
44
+ columns: columns,
46
45
  value: pickerValue,
47
46
  onCancel: props.onCancel,
48
47
  onClose: props.onClose,
@@ -60,8 +59,8 @@ export var DatePicker = function DatePicker(p) {
60
59
  }, function (items) {
61
60
  var _a;
62
61
 
63
- return (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, convertStringArrayToDate(items.map(function (item) {
62
+ return (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, items.length === 0 ? null : convertStringArrayToDate(items.map(function (item) {
64
63
  return item === null || item === void 0 ? void 0 : item.value;
65
- })));
64
+ }), props.precision));
66
65
  }));
67
66
  };
@@ -2,6 +2,7 @@
2
2
  import './date-picker.less';
3
3
  import { prompt } from './prompt';
4
4
  export type { DatePickerProps } from './date-picker';
5
+ export type { DatePickerFilter } from './date-picker-utils';
5
6
  declare const _default: import("react").FC<import("./date-picker").DatePickerProps> & {
6
7
  prompt: typeof prompt;
7
8
  };
@@ -1,6 +1,6 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
- import { Precision } from '../date-picker/date-picker-utils';
3
+ import type { Precision, DatePickerFilter } from '../date-picker/date-picker-utils';
4
4
  export declare type DatePickerViewProps = {
5
5
  value?: Date;
6
6
  defaultValue?: Date;
@@ -9,5 +9,6 @@ export declare type DatePickerViewProps = {
9
9
  max?: Date;
10
10
  precision?: Precision;
11
11
  renderLabel?: (type: Precision, data: number) => ReactNode;
12
+ filter?: DatePickerFilter;
12
13
  } & NativeProps<'--height'>;
13
14
  export declare const DatePickerView: FC<DatePickerViewProps>;