antd-mobile 5.0.0-rc.1 → 5.0.0-rc.5

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 (457) hide show
  1. package/2x/README.md +2 -0
  2. package/2x/cjs/components/action-sheet/action-sheet.d.ts +3 -3
  3. package/2x/cjs/components/cascader/cascader.css +40 -0
  4. package/2x/cjs/components/cascader/cascader.d.ts +20 -0
  5. package/2x/cjs/components/cascader/cascader.js +130 -0
  6. package/2x/cjs/components/cascader/index.d.ts +9 -0
  7. package/2x/cjs/components/cascader/index.js +20 -0
  8. package/2x/cjs/components/cascader/prompt.d.ts +2 -0
  9. package/2x/cjs/components/cascader/prompt.js +51 -0
  10. package/2x/cjs/components/cascader-view/cascader-view.css +40 -0
  11. package/2x/cjs/components/cascader-view/cascader-view.d.ts +20 -0
  12. package/2x/cjs/components/cascader-view/cascader-view.js +189 -0
  13. package/2x/cjs/components/cascader-view/index.d.ts +4 -0
  14. package/2x/cjs/components/cascader-view/index.js +13 -0
  15. package/2x/cjs/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  16. package/2x/cjs/components/cascader-view/use-cascader-value-extend.js +97 -0
  17. package/2x/cjs/components/collapse/collapse.d.ts +2 -0
  18. package/2x/cjs/components/collapse/collapse.js +21 -5
  19. package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +3 -2
  20. package/2x/cjs/components/date-picker/date-picker-date-utils.js +33 -12
  21. package/2x/cjs/components/date-picker/date-picker-utils.d.ts +5 -2
  22. package/2x/cjs/components/date-picker/date-picker-utils.js +3 -3
  23. package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +3 -2
  24. package/2x/cjs/components/date-picker/date-picker-week-utils.js +28 -6
  25. package/2x/cjs/components/date-picker/date-picker.d.ts +2 -1
  26. package/2x/cjs/components/date-picker/date-picker.js +5 -8
  27. package/2x/cjs/components/date-picker/index.d.ts +1 -0
  28. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  29. package/2x/cjs/components/date-picker-view/date-picker-view.js +1 -1
  30. package/2x/cjs/components/date-picker-view/index.d.ts +1 -0
  31. package/2x/cjs/components/dialog/dialog.css +1 -1
  32. package/2x/cjs/components/dialog/dialog.js +11 -4
  33. package/2x/cjs/components/dropdown/dropdown.css +13 -11
  34. package/2x/cjs/components/dropdown/dropdown.d.ts +13 -4
  35. package/2x/cjs/components/dropdown/dropdown.js +13 -11
  36. package/2x/cjs/components/dropdown/index.d.ts +14 -3
  37. package/2x/cjs/components/dropdown/index.js +8 -1
  38. package/2x/cjs/components/dropdown/item.d.ts +1 -1
  39. package/2x/cjs/components/dropdown/item.js +10 -4
  40. package/2x/cjs/components/form/form-item.css +4 -1
  41. package/2x/cjs/components/form/form.css +4 -0
  42. package/2x/cjs/components/form/form.d.ts +3 -0
  43. package/2x/cjs/components/form/form.js +3 -1
  44. package/2x/cjs/components/form/index.css +8 -1
  45. package/2x/cjs/components/form/index.d.ts +1 -0
  46. package/2x/cjs/components/image-uploader/image-uploader.d.ts +9 -6
  47. package/2x/cjs/components/image-uploader/image-uploader.js +8 -6
  48. package/2x/cjs/components/image-uploader/index.d.ts +1 -1
  49. package/2x/cjs/components/image-viewer/image-viewer.d.ts +1 -7
  50. package/2x/cjs/components/image-viewer/image-viewer.js +3 -101
  51. package/2x/cjs/components/image-viewer/index.d.ts +2 -1
  52. package/2x/cjs/components/image-viewer/index.js +5 -2
  53. package/2x/cjs/components/image-viewer/methods.d.ts +8 -1
  54. package/2x/cjs/components/image-viewer/methods.js +129 -1
  55. package/2x/cjs/components/list/list.css +7 -5
  56. package/2x/cjs/components/list/list.d.ts +1 -1
  57. package/2x/cjs/components/list/list.js +1 -3
  58. package/2x/cjs/components/mask/mask.js +5 -0
  59. package/2x/cjs/components/modal/alert.d.ts +7 -0
  60. package/2x/cjs/components/modal/alert.js +33 -0
  61. package/2x/cjs/components/modal/confirm.d.ts +9 -0
  62. package/2x/cjs/components/modal/confirm.js +116 -0
  63. package/2x/cjs/components/modal/index.d.ts +16 -0
  64. package/2x/cjs/components/modal/index.js +26 -0
  65. package/2x/cjs/components/modal/modal-action-button.d.ts +14 -0
  66. package/2x/cjs/components/modal/modal-action-button.js +109 -0
  67. package/2x/cjs/components/modal/modal.css +89 -0
  68. package/2x/cjs/components/modal/modal.d.ts +26 -0
  69. package/2x/cjs/components/modal/modal.js +193 -0
  70. package/2x/cjs/components/modal/show.d.ts +8 -0
  71. package/2x/cjs/components/modal/show.js +62 -0
  72. package/2x/cjs/components/notice-bar/notice-bar.css +1 -1
  73. package/2x/cjs/components/number-keyboard/number-keyboard.css +2 -2
  74. package/2x/cjs/components/number-keyboard/number-keyboard.js +57 -11
  75. package/2x/cjs/components/page-indicator/page-indicator.css +1 -1
  76. package/2x/cjs/components/passcode-input/index.d.ts +4 -0
  77. package/2x/cjs/components/passcode-input/index.js +13 -0
  78. package/2x/cjs/components/passcode-input/passcode-input.css +166 -0
  79. package/2x/cjs/components/passcode-input/passcode-input.d.ts +35 -0
  80. package/2x/cjs/components/passcode-input/passcode-input.js +169 -0
  81. package/2x/cjs/components/picker/picker.js +1 -0
  82. package/2x/cjs/components/picker-view/column.js +47 -3
  83. package/2x/cjs/components/picker-view/picker-view.css +45 -5
  84. package/2x/cjs/components/picker-view/picker-view.js +7 -3
  85. package/2x/cjs/components/popup/popup.js +4 -0
  86. package/2x/cjs/components/search-bar/search-bar.css +1 -1
  87. package/2x/cjs/components/swipe-action/swipe-action.css +2 -1
  88. package/2x/cjs/components/swiper/swiper.js +4 -4
  89. package/2x/cjs/components/switch/switch.css +19 -16
  90. package/2x/cjs/components/switch/switch.d.ts +1 -1
  91. package/2x/cjs/components/tag/tag.css +3 -2
  92. package/2x/cjs/components/toast/index.d.ts +2 -1
  93. package/2x/cjs/components/toast/index.js +2 -1
  94. package/2x/cjs/components/toast/methods.d.ts +1 -0
  95. package/2x/cjs/components/toast/methods.js +18 -1
  96. package/2x/cjs/components/toast/toast.css +7 -4
  97. package/2x/cjs/components/toast/toast.js +3 -1
  98. package/2x/cjs/components/virtual-input/virtual-input.css +27 -9
  99. package/2x/cjs/components/virtual-input/virtual-input.d.ts +4 -0
  100. package/2x/cjs/components/virtual-input/virtual-input.js +47 -17
  101. package/2x/cjs/index.d.ts +11 -8
  102. package/2x/cjs/index.js +43 -19
  103. package/2x/cjs/locales/base.d.ts +6 -0
  104. package/2x/cjs/locales/base.js +6 -0
  105. package/2x/cjs/locales/en-US.d.ts +6 -0
  106. package/2x/cjs/locales/zh-CN.d.ts +6 -0
  107. package/2x/cjs/locales/zh-CN.js +6 -0
  108. package/2x/cjs/utils/memo-with-event-marks.d.ts +2 -0
  109. package/2x/cjs/utils/memo-with-event-marks.js +23 -0
  110. package/2x/es/components/action-sheet/action-sheet.d.ts +3 -3
  111. package/2x/es/components/cascader/cascader.css +40 -0
  112. package/2x/es/components/cascader/cascader.d.ts +20 -0
  113. package/2x/es/components/cascader/cascader.js +104 -0
  114. package/2x/es/components/cascader/index.d.ts +9 -0
  115. package/2x/es/components/cascader/index.js +7 -0
  116. package/2x/es/components/cascader/prompt.d.ts +2 -0
  117. package/2x/es/components/cascader/prompt.js +37 -0
  118. package/2x/es/components/cascader-view/cascader-view.css +40 -0
  119. package/2x/es/components/cascader-view/cascader-view.d.ts +20 -0
  120. package/2x/es/components/cascader-view/cascader-view.js +130 -0
  121. package/2x/es/components/cascader-view/index.d.ts +4 -0
  122. package/2x/es/components/cascader-view/index.js +3 -0
  123. package/2x/es/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  124. package/2x/es/components/cascader-view/use-cascader-value-extend.js +52 -0
  125. package/2x/es/components/collapse/collapse.d.ts +2 -0
  126. package/2x/es/components/collapse/collapse.js +21 -5
  127. package/2x/es/components/date-picker/date-picker-date-utils.d.ts +3 -2
  128. package/2x/es/components/date-picker/date-picker-date-utils.js +33 -11
  129. package/2x/es/components/date-picker/date-picker-utils.d.ts +5 -2
  130. package/2x/es/components/date-picker/date-picker-utils.js +3 -3
  131. package/2x/es/components/date-picker/date-picker-week-utils.d.ts +3 -2
  132. package/2x/es/components/date-picker/date-picker-week-utils.js +28 -5
  133. package/2x/es/components/date-picker/date-picker.d.ts +2 -1
  134. package/2x/es/components/date-picker/date-picker.js +4 -7
  135. package/2x/es/components/date-picker/index.d.ts +1 -0
  136. package/2x/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  137. package/2x/es/components/date-picker-view/date-picker-view.js +1 -1
  138. package/2x/es/components/date-picker-view/index.d.ts +1 -0
  139. package/2x/es/components/dialog/dialog.css +1 -1
  140. package/2x/es/components/dialog/dialog.js +9 -4
  141. package/2x/es/components/dropdown/dropdown.css +13 -11
  142. package/2x/es/components/dropdown/dropdown.d.ts +13 -4
  143. package/2x/es/components/dropdown/dropdown.js +14 -12
  144. package/2x/es/components/dropdown/index.d.ts +14 -3
  145. package/2x/es/components/dropdown/index.js +5 -1
  146. package/2x/es/components/dropdown/item.d.ts +1 -1
  147. package/2x/es/components/dropdown/item.js +9 -4
  148. package/2x/es/components/form/form-item.css +4 -1
  149. package/2x/es/components/form/form.css +4 -0
  150. package/2x/es/components/form/form.d.ts +3 -0
  151. package/2x/es/components/form/form.js +3 -1
  152. package/2x/es/components/form/index.css +8 -1
  153. package/2x/es/components/form/index.d.ts +1 -0
  154. package/2x/es/components/image-uploader/image-uploader.d.ts +9 -6
  155. package/2x/es/components/image-uploader/image-uploader.js +8 -6
  156. package/2x/es/components/image-uploader/index.d.ts +1 -1
  157. package/2x/es/components/image-viewer/image-viewer.d.ts +1 -7
  158. package/2x/es/components/image-viewer/image-viewer.js +2 -91
  159. package/2x/es/components/image-viewer/index.d.ts +2 -1
  160. package/2x/es/components/image-viewer/index.js +4 -2
  161. package/2x/es/components/image-viewer/methods.d.ts +8 -1
  162. package/2x/es/components/image-viewer/methods.js +109 -0
  163. package/2x/es/components/list/list.css +7 -5
  164. package/2x/es/components/list/list.d.ts +1 -1
  165. package/2x/es/components/list/list.js +1 -3
  166. package/2x/es/components/mask/mask.js +4 -0
  167. package/2x/es/components/modal/alert.d.ts +7 -0
  168. package/2x/es/components/modal/alert.js +23 -0
  169. package/2x/es/components/modal/confirm.d.ts +9 -0
  170. package/2x/es/components/modal/confirm.js +106 -0
  171. package/2x/es/components/modal/index.d.ts +16 -0
  172. package/2x/es/components/modal/index.js +11 -0
  173. package/2x/es/components/modal/modal-action-button.d.ts +14 -0
  174. package/2x/es/components/modal/modal-action-button.js +90 -0
  175. package/2x/es/components/modal/modal.css +89 -0
  176. package/2x/es/components/modal/modal.d.ts +26 -0
  177. package/2x/es/components/modal/modal.js +164 -0
  178. package/2x/es/components/modal/show.d.ts +8 -0
  179. package/2x/es/components/modal/show.js +48 -0
  180. package/2x/es/components/notice-bar/notice-bar.css +1 -1
  181. package/2x/es/components/number-keyboard/number-keyboard.css +2 -2
  182. package/2x/es/components/number-keyboard/number-keyboard.js +56 -11
  183. package/2x/es/components/page-indicator/page-indicator.css +1 -1
  184. package/2x/es/components/passcode-input/index.d.ts +4 -0
  185. package/2x/es/components/passcode-input/index.js +3 -0
  186. package/2x/es/components/passcode-input/passcode-input.css +166 -0
  187. package/2x/es/components/passcode-input/passcode-input.d.ts +35 -0
  188. package/2x/es/components/passcode-input/passcode-input.js +149 -0
  189. package/2x/es/components/picker/picker.js +1 -0
  190. package/2x/es/components/picker-view/column.js +47 -3
  191. package/2x/es/components/picker-view/picker-view.css +45 -5
  192. package/2x/es/components/picker-view/picker-view.js +7 -3
  193. package/2x/es/components/popup/popup.js +3 -0
  194. package/2x/es/components/search-bar/search-bar.css +1 -1
  195. package/2x/es/components/swipe-action/swipe-action.css +2 -1
  196. package/2x/es/components/swiper/swiper.js +4 -4
  197. package/2x/es/components/switch/switch.css +19 -16
  198. package/2x/es/components/switch/switch.d.ts +1 -1
  199. package/2x/es/components/tag/tag.css +3 -2
  200. package/2x/es/components/toast/index.d.ts +2 -1
  201. package/2x/es/components/toast/index.js +3 -2
  202. package/2x/es/components/toast/methods.d.ts +1 -0
  203. package/2x/es/components/toast/methods.js +16 -1
  204. package/2x/es/components/toast/toast.css +7 -4
  205. package/2x/es/components/toast/toast.js +2 -1
  206. package/2x/es/components/virtual-input/virtual-input.css +27 -9
  207. package/2x/es/components/virtual-input/virtual-input.d.ts +4 -0
  208. package/2x/es/components/virtual-input/virtual-input.js +47 -18
  209. package/2x/es/index.d.ts +11 -8
  210. package/2x/es/index.js +11 -8
  211. package/2x/es/locales/base.d.ts +6 -0
  212. package/2x/es/locales/base.js +6 -0
  213. package/2x/es/locales/en-US.d.ts +6 -0
  214. package/2x/es/locales/zh-CN.d.ts +6 -0
  215. package/2x/es/locales/zh-CN.js +6 -0
  216. package/2x/es/utils/memo-with-event-marks.d.ts +2 -0
  217. package/2x/es/utils/memo-with-event-marks.js +15 -0
  218. package/2x/package.json +3 -3
  219. package/README.md +2 -0
  220. package/cjs/components/action-sheet/action-sheet.d.ts +3 -3
  221. package/cjs/components/cascader/cascader.css +35 -0
  222. package/cjs/components/cascader/cascader.d.ts +20 -0
  223. package/cjs/components/cascader/cascader.js +130 -0
  224. package/cjs/components/cascader/index.d.ts +9 -0
  225. package/cjs/components/cascader/index.js +20 -0
  226. package/cjs/components/cascader/prompt.d.ts +2 -0
  227. package/cjs/components/cascader/prompt.js +51 -0
  228. package/cjs/components/cascader-view/cascader-view.css +33 -0
  229. package/cjs/components/cascader-view/cascader-view.d.ts +20 -0
  230. package/cjs/components/cascader-view/cascader-view.js +189 -0
  231. package/cjs/components/cascader-view/index.d.ts +4 -0
  232. package/cjs/components/cascader-view/index.js +13 -0
  233. package/cjs/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  234. package/cjs/components/cascader-view/use-cascader-value-extend.js +97 -0
  235. package/cjs/components/collapse/collapse.d.ts +2 -0
  236. package/cjs/components/collapse/collapse.js +21 -5
  237. package/cjs/components/date-picker/date-picker-date-utils.d.ts +3 -2
  238. package/cjs/components/date-picker/date-picker-date-utils.js +33 -12
  239. package/cjs/components/date-picker/date-picker-utils.d.ts +5 -2
  240. package/cjs/components/date-picker/date-picker-utils.js +3 -3
  241. package/cjs/components/date-picker/date-picker-week-utils.d.ts +3 -2
  242. package/cjs/components/date-picker/date-picker-week-utils.js +28 -6
  243. package/cjs/components/date-picker/date-picker.d.ts +2 -1
  244. package/cjs/components/date-picker/date-picker.js +5 -8
  245. package/cjs/components/date-picker/index.d.ts +1 -0
  246. package/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
  247. package/cjs/components/date-picker-view/date-picker-view.js +1 -1
  248. package/cjs/components/date-picker-view/index.d.ts +1 -0
  249. package/cjs/components/dialog/dialog.css +1 -1
  250. package/cjs/components/dialog/dialog.js +11 -4
  251. package/cjs/components/dropdown/dropdown.css +12 -11
  252. package/cjs/components/dropdown/dropdown.d.ts +13 -4
  253. package/cjs/components/dropdown/dropdown.js +13 -11
  254. package/cjs/components/dropdown/index.d.ts +14 -3
  255. package/cjs/components/dropdown/index.js +8 -1
  256. package/cjs/components/dropdown/item.d.ts +1 -1
  257. package/cjs/components/dropdown/item.js +10 -4
  258. package/cjs/components/form/form-item.css +4 -1
  259. package/cjs/components/form/form.css +3 -0
  260. package/cjs/components/form/form.d.ts +3 -0
  261. package/cjs/components/form/form.js +3 -1
  262. package/cjs/components/form/index.css +7 -1
  263. package/cjs/components/form/index.d.ts +1 -0
  264. package/cjs/components/image-uploader/image-uploader.d.ts +9 -6
  265. package/cjs/components/image-uploader/image-uploader.js +8 -6
  266. package/cjs/components/image-uploader/index.d.ts +1 -1
  267. package/cjs/components/image-viewer/image-viewer.d.ts +1 -7
  268. package/cjs/components/image-viewer/image-viewer.js +3 -101
  269. package/cjs/components/image-viewer/index.d.ts +2 -1
  270. package/cjs/components/image-viewer/index.js +5 -2
  271. package/cjs/components/image-viewer/methods.d.ts +8 -1
  272. package/cjs/components/image-viewer/methods.js +129 -1
  273. package/cjs/components/list/list.css +6 -4
  274. package/cjs/components/list/list.d.ts +1 -1
  275. package/cjs/components/list/list.js +1 -3
  276. package/cjs/components/mask/mask.js +5 -0
  277. package/cjs/components/modal/alert.d.ts +7 -0
  278. package/cjs/components/modal/alert.js +33 -0
  279. package/cjs/components/modal/confirm.d.ts +9 -0
  280. package/cjs/components/modal/confirm.js +116 -0
  281. package/cjs/components/modal/index.d.ts +16 -0
  282. package/cjs/components/modal/index.js +26 -0
  283. package/cjs/components/modal/modal-action-button.d.ts +14 -0
  284. package/cjs/components/modal/modal-action-button.js +109 -0
  285. package/cjs/components/modal/modal.css +75 -0
  286. package/cjs/components/modal/modal.d.ts +26 -0
  287. package/cjs/components/modal/modal.js +193 -0
  288. package/cjs/components/modal/show.d.ts +8 -0
  289. package/cjs/components/modal/show.js +62 -0
  290. package/cjs/components/notice-bar/notice-bar.css +1 -1
  291. package/cjs/components/number-keyboard/number-keyboard.css +2 -2
  292. package/cjs/components/number-keyboard/number-keyboard.js +57 -11
  293. package/cjs/components/page-indicator/page-indicator.css +1 -1
  294. package/cjs/components/passcode-input/index.d.ts +4 -0
  295. package/cjs/components/passcode-input/index.js +13 -0
  296. package/cjs/components/passcode-input/passcode-input.css +136 -0
  297. package/cjs/components/passcode-input/passcode-input.d.ts +35 -0
  298. package/cjs/components/passcode-input/passcode-input.js +169 -0
  299. package/cjs/components/picker/picker.js +1 -0
  300. package/cjs/components/picker-view/column.js +47 -3
  301. package/cjs/components/picker-view/picker-view.css +39 -5
  302. package/cjs/components/picker-view/picker-view.js +7 -3
  303. package/cjs/components/popup/popup.js +4 -0
  304. package/cjs/components/search-bar/search-bar.css +1 -1
  305. package/cjs/components/swipe-action/swipe-action.css +2 -1
  306. package/cjs/components/swiper/swiper.js +4 -4
  307. package/cjs/components/switch/switch.css +19 -16
  308. package/cjs/components/switch/switch.d.ts +1 -1
  309. package/cjs/components/tag/tag.css +3 -2
  310. package/cjs/components/toast/index.d.ts +2 -1
  311. package/cjs/components/toast/index.js +2 -1
  312. package/cjs/components/toast/methods.d.ts +1 -0
  313. package/cjs/components/toast/methods.js +18 -1
  314. package/cjs/components/toast/toast.css +7 -4
  315. package/cjs/components/toast/toast.js +3 -1
  316. package/cjs/components/virtual-input/virtual-input.css +24 -8
  317. package/cjs/components/virtual-input/virtual-input.d.ts +4 -0
  318. package/cjs/components/virtual-input/virtual-input.js +47 -17
  319. package/cjs/index.d.ts +11 -8
  320. package/cjs/index.js +43 -19
  321. package/cjs/locales/base.d.ts +6 -0
  322. package/cjs/locales/base.js +6 -0
  323. package/cjs/locales/en-US.d.ts +6 -0
  324. package/cjs/locales/zh-CN.d.ts +6 -0
  325. package/cjs/locales/zh-CN.js +6 -0
  326. package/cjs/utils/memo-with-event-marks.d.ts +2 -0
  327. package/cjs/utils/memo-with-event-marks.js +23 -0
  328. package/es/components/action-sheet/action-sheet.d.ts +3 -3
  329. package/es/components/cascader/cascader.css +35 -0
  330. package/es/components/cascader/cascader.d.ts +20 -0
  331. package/es/components/cascader/cascader.js +104 -0
  332. package/es/components/cascader/index.d.ts +9 -0
  333. package/es/components/cascader/index.js +7 -0
  334. package/es/components/cascader/prompt.d.ts +2 -0
  335. package/es/components/cascader/prompt.js +37 -0
  336. package/es/components/cascader-view/cascader-view.css +33 -0
  337. package/es/components/cascader-view/cascader-view.d.ts +20 -0
  338. package/es/components/cascader-view/cascader-view.js +130 -0
  339. package/es/components/cascader-view/index.d.ts +4 -0
  340. package/es/components/cascader-view/index.js +3 -0
  341. package/es/components/cascader-view/use-cascader-value-extend.d.ts +2 -0
  342. package/es/components/cascader-view/use-cascader-value-extend.js +52 -0
  343. package/es/components/collapse/collapse.d.ts +2 -0
  344. package/es/components/collapse/collapse.js +21 -5
  345. package/es/components/date-picker/date-picker-date-utils.d.ts +3 -2
  346. package/es/components/date-picker/date-picker-date-utils.js +33 -11
  347. package/es/components/date-picker/date-picker-utils.d.ts +5 -2
  348. package/es/components/date-picker/date-picker-utils.js +3 -3
  349. package/es/components/date-picker/date-picker-week-utils.d.ts +3 -2
  350. package/es/components/date-picker/date-picker-week-utils.js +28 -5
  351. package/es/components/date-picker/date-picker.d.ts +2 -1
  352. package/es/components/date-picker/date-picker.js +4 -7
  353. package/es/components/date-picker/index.d.ts +1 -0
  354. package/es/components/date-picker-view/date-picker-view.d.ts +2 -1
  355. package/es/components/date-picker-view/date-picker-view.js +1 -1
  356. package/es/components/date-picker-view/index.d.ts +1 -0
  357. package/es/components/dialog/dialog.css +1 -1
  358. package/es/components/dialog/dialog.js +9 -4
  359. package/es/components/dropdown/dropdown.css +12 -11
  360. package/es/components/dropdown/dropdown.d.ts +13 -4
  361. package/es/components/dropdown/dropdown.js +14 -12
  362. package/es/components/dropdown/index.d.ts +14 -3
  363. package/es/components/dropdown/index.js +5 -1
  364. package/es/components/dropdown/item.d.ts +1 -1
  365. package/es/components/dropdown/item.js +9 -4
  366. package/es/components/form/form-item.css +4 -1
  367. package/es/components/form/form.css +3 -0
  368. package/es/components/form/form.d.ts +3 -0
  369. package/es/components/form/form.js +3 -1
  370. package/es/components/form/index.css +7 -1
  371. package/es/components/form/index.d.ts +1 -0
  372. package/es/components/image-uploader/image-uploader.d.ts +9 -6
  373. package/es/components/image-uploader/image-uploader.js +8 -6
  374. package/es/components/image-uploader/index.d.ts +1 -1
  375. package/es/components/image-viewer/image-viewer.d.ts +1 -7
  376. package/es/components/image-viewer/image-viewer.js +2 -91
  377. package/es/components/image-viewer/index.d.ts +2 -1
  378. package/es/components/image-viewer/index.js +4 -2
  379. package/es/components/image-viewer/methods.d.ts +8 -1
  380. package/es/components/image-viewer/methods.js +109 -0
  381. package/es/components/list/list.css +6 -4
  382. package/es/components/list/list.d.ts +1 -1
  383. package/es/components/list/list.js +1 -3
  384. package/es/components/mask/mask.js +4 -0
  385. package/es/components/modal/alert.d.ts +7 -0
  386. package/es/components/modal/alert.js +23 -0
  387. package/es/components/modal/confirm.d.ts +9 -0
  388. package/es/components/modal/confirm.js +106 -0
  389. package/es/components/modal/index.d.ts +16 -0
  390. package/es/components/modal/index.js +11 -0
  391. package/es/components/modal/modal-action-button.d.ts +14 -0
  392. package/es/components/modal/modal-action-button.js +90 -0
  393. package/es/components/modal/modal.css +75 -0
  394. package/es/components/modal/modal.d.ts +26 -0
  395. package/es/components/modal/modal.js +164 -0
  396. package/es/components/modal/show.d.ts +8 -0
  397. package/es/components/modal/show.js +48 -0
  398. package/es/components/notice-bar/notice-bar.css +1 -1
  399. package/es/components/number-keyboard/number-keyboard.css +2 -2
  400. package/es/components/number-keyboard/number-keyboard.js +56 -11
  401. package/es/components/page-indicator/page-indicator.css +1 -1
  402. package/es/components/passcode-input/index.d.ts +4 -0
  403. package/es/components/passcode-input/index.js +3 -0
  404. package/es/components/passcode-input/passcode-input.css +136 -0
  405. package/es/components/passcode-input/passcode-input.d.ts +35 -0
  406. package/es/components/passcode-input/passcode-input.js +149 -0
  407. package/es/components/picker/picker.js +1 -0
  408. package/es/components/picker-view/column.js +47 -3
  409. package/es/components/picker-view/picker-view.css +39 -5
  410. package/es/components/picker-view/picker-view.js +7 -3
  411. package/es/components/popup/popup.js +3 -0
  412. package/es/components/search-bar/search-bar.css +1 -1
  413. package/es/components/swipe-action/swipe-action.css +2 -1
  414. package/es/components/swiper/swiper.js +4 -4
  415. package/es/components/switch/switch.css +19 -16
  416. package/es/components/switch/switch.d.ts +1 -1
  417. package/es/components/tag/tag.css +3 -2
  418. package/es/components/toast/index.d.ts +2 -1
  419. package/es/components/toast/index.js +3 -2
  420. package/es/components/toast/methods.d.ts +1 -0
  421. package/es/components/toast/methods.js +16 -1
  422. package/es/components/toast/toast.css +7 -4
  423. package/es/components/toast/toast.js +2 -1
  424. package/es/components/virtual-input/virtual-input.css +24 -8
  425. package/es/components/virtual-input/virtual-input.d.ts +4 -0
  426. package/es/components/virtual-input/virtual-input.js +47 -18
  427. package/es/index.d.ts +11 -8
  428. package/es/index.js +11 -8
  429. package/es/locales/base.d.ts +6 -0
  430. package/es/locales/base.js +6 -0
  431. package/es/locales/en-US.d.ts +6 -0
  432. package/es/locales/zh-CN.d.ts +6 -0
  433. package/es/locales/zh-CN.js +6 -0
  434. package/es/utils/memo-with-event-marks.d.ts +2 -0
  435. package/es/utils/memo-with-event-marks.js +15 -0
  436. package/package.json +3 -3
  437. package/umd/antd-mobile.js +1 -1
  438. package/2x/cjs/components/desense-text/desense-text.css +0 -10
  439. package/2x/cjs/components/desense-text/desense-text.d.ts +0 -10
  440. package/2x/cjs/components/desense-text/desense-text.js +0 -50
  441. package/2x/cjs/components/desense-text/index.d.ts +0 -4
  442. package/2x/cjs/components/desense-text/index.js +0 -13
  443. package/2x/es/components/desense-text/desense-text.css +0 -10
  444. package/2x/es/components/desense-text/desense-text.d.ts +0 -10
  445. package/2x/es/components/desense-text/desense-text.js +0 -32
  446. package/2x/es/components/desense-text/index.d.ts +0 -4
  447. package/2x/es/components/desense-text/index.js +0 -3
  448. package/cjs/components/desense-text/desense-text.css +0 -9
  449. package/cjs/components/desense-text/desense-text.d.ts +0 -10
  450. package/cjs/components/desense-text/desense-text.js +0 -50
  451. package/cjs/components/desense-text/index.d.ts +0 -4
  452. package/cjs/components/desense-text/index.js +0 -13
  453. package/es/components/desense-text/desense-text.css +0 -9
  454. package/es/components/desense-text/desense-text.d.ts +0 -10
  455. package/es/components/desense-text/desense-text.js +0 -32
  456. package/es/components/desense-text/index.d.ts +0 -4
  457. package/es/components/desense-text/index.js +0 -3
@@ -1,8 +1,9 @@
1
- import React, { forwardRef, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
1
+ import React, { forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import { mergeProps } from '../../utils/with-default-props';
4
4
  import { usePropsValue } from '../../utils/use-props-value';
5
5
  import classNames from 'classnames';
6
+ import { CloseCircleFill } from 'antd-mobile-icons';
6
7
  var classPrefix = 'adm-virtual-input';
7
8
  var defaultProps = {
8
9
  defaultValue: ''
@@ -17,12 +18,13 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
17
18
  setValue = _usePropsValue[1];
18
19
 
19
20
  var rootRef = useRef(null);
21
+ var contentRef = useRef(null);
20
22
 
21
23
  var _useState = useState(false),
22
- keyboardVisible = _useState[0],
23
- setKeyboardVisible = _useState[1];
24
+ hasFocus = _useState[0],
25
+ setHasFocus = _useState[1];
24
26
 
25
- useLayoutEffect(function () {
27
+ function scrollToEnd() {
26
28
  var root = rootRef.current;
27
29
  if (!root) return;
28
30
 
@@ -30,10 +32,21 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
30
32
  return;
31
33
  }
32
34
 
33
- root.scrollTo({
34
- left: root.clientWidth
35
+ var content = contentRef.current;
36
+ if (!content) return;
37
+ content.scrollTo({
38
+ left: content.clientWidth
35
39
  });
40
+ }
41
+
42
+ useLayoutEffect(function () {
43
+ scrollToEnd();
36
44
  }, [value]);
45
+ useEffect(function () {
46
+ if (hasFocus) {
47
+ scrollToEnd();
48
+ }
49
+ }, [hasFocus]);
37
50
  useImperativeHandle(ref, function () {
38
51
  return {
39
52
  focus: function focus() {
@@ -49,10 +62,17 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
49
62
  };
50
63
  });
51
64
 
65
+ function onFocus() {
66
+ var _a;
67
+
68
+ setHasFocus(true);
69
+ (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props);
70
+ }
71
+
52
72
  function onBlur() {
53
73
  var _a;
54
74
 
55
- setKeyboardVisible(false);
75
+ setHasFocus(false);
56
76
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props);
57
77
  }
58
78
 
@@ -60,21 +80,26 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
60
80
  ref: rootRef,
61
81
  className: classNames(classPrefix, (_classNames = {}, _classNames[classPrefix + "-disabled"] = props.disabled, _classNames)),
62
82
  tabIndex: props.disabled ? undefined : 0,
63
- onFocus: function onFocus() {
64
- var _a;
65
-
66
- setKeyboardVisible(true);
67
- (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props);
68
- },
83
+ onFocus: onFocus,
69
84
  onBlur: onBlur,
70
85
  onClick: props.onClick
71
86
  }, /*#__PURE__*/React.createElement("div", {
72
- className: classPrefix + "-content"
87
+ className: classPrefix + "-content",
88
+ ref: contentRef
73
89
  }, value, /*#__PURE__*/React.createElement("div", {
74
90
  className: classPrefix + "-caret-container"
75
- }, /*#__PURE__*/React.createElement("div", {
91
+ }, hasFocus && /*#__PURE__*/React.createElement("div", {
76
92
  className: classPrefix + "-caret"
77
- }))), !value && /*#__PURE__*/React.createElement("div", {
93
+ }))), props.clearable && !!value && hasFocus && /*#__PURE__*/React.createElement("div", {
94
+ className: classPrefix + "-clear",
95
+ onClick: function onClick(e) {
96
+ var _a;
97
+
98
+ e.stopPropagation();
99
+ setValue('');
100
+ (_a = props.onClear) === null || _a === void 0 ? void 0 : _a.call(props);
101
+ }
102
+ }, /*#__PURE__*/React.createElement(CloseCircleFill, null)), !value && /*#__PURE__*/React.createElement("div", {
78
103
  className: classPrefix + "-placeholder"
79
104
  }, props.placeholder), props.keyboard && /*#__PURE__*/React.cloneElement(props.keyboard, {
80
105
  onInput: function onInput(v) {
@@ -83,7 +108,11 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
83
108
  onDelete: function onDelete() {
84
109
  setValue(value.slice(0, -1));
85
110
  },
86
- visible: keyboardVisible,
87
- onClose: onBlur
111
+ visible: hasFocus,
112
+ onClose: function onClose() {
113
+ var _a;
114
+
115
+ (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
116
+ }
88
117
  })));
89
118
  });
package/es/index.d.ts CHANGED
@@ -4,22 +4,25 @@ export { default as ActionSheet } from './components/action-sheet';
4
4
  export { default as AutoCenter } from './components/auto-center';
5
5
  export { default as Badge } from './components/badge';
6
6
  export { default as Button } from './components/button';
7
+ export { default as CapsuleTabs } from './components/capsule-tabs';
7
8
  export { default as Card } from './components/card';
8
9
  export { default as CascadePicker } from './components/cascade-picker';
9
10
  export { default as CascadePickerView } from './components/cascade-picker-view';
11
+ export { default as Cascader } from './components/cascader';
12
+ export { default as CascaderView } from './components/cascader-view';
10
13
  export { default as CheckList } from './components/check-list';
11
14
  export { default as Checkbox } from './components/checkbox';
12
15
  export { default as Collapse } from './components/collapse';
13
16
  export { default as ConfigProvider } from './components/config-provider';
14
17
  export { default as DatePicker } from './components/date-picker';
15
18
  export { default as DatePickerView } from './components/date-picker-view';
16
- export { default as DesenseText } from './components/desense-text';
17
19
  export { default as Dialog } from './components/dialog';
18
20
  export { default as Divider } from './components/divider';
19
21
  export { default as Dropdown } from './components/dropdown';
20
22
  export { default as Ellipsis } from './components/ellipsis';
21
23
  export { default as Empty } from './components/empty';
22
24
  export { default as ErrorBlock } from './components/error-block';
25
+ export { default as FloatingBubble } from './components/floating-bubble';
23
26
  export { default as FloatingPanel } from './components/floating-panel';
24
27
  export { default as Form } from './components/form';
25
28
  export { default as Grid } from './components/grid';
@@ -29,11 +32,14 @@ export { default as ImageViewer } from './components/image-viewer';
29
32
  export { default as IndexBar } from './components/index-bar';
30
33
  export { default as InfiniteScroll } from './components/infinite-scroll';
31
34
  export { default as Input } from './components/input';
35
+ export { default as JumboTabs } from './components/jumbo-tabs';
32
36
  export { default as List } from './components/list';
33
37
  export { default as Loading } from './components/loading';
34
38
  export { default as Mask } from './components/mask';
39
+ export { default as Modal } from './components/modal';
35
40
  export { default as NavBar } from './components/nav-bar';
36
41
  export { default as NoticeBar } from './components/notice-bar';
42
+ export { default as NumberKeyboard } from './components/number-keyboard';
37
43
  export { default as PageIndicator } from './components/page-indicator';
38
44
  export { default as Picker } from './components/picker';
39
45
  export { default as PickerView } from './components/picker-view';
@@ -46,9 +52,11 @@ export { default as Radio } from './components/radio';
46
52
  export { default as Rate } from './components/rate';
47
53
  export { default as Result } from './components/result';
48
54
  export { default as SafeArea } from './components/safe-area';
49
- export { default as SearchBar } from './components/search-bar';
55
+ export { default as ScrollMask } from './components/scroll-mask';
50
56
  export { default as Search } from './components/search-bar';
57
+ export { default as SearchBar } from './components/search-bar';
51
58
  export { default as Selector } from './components/selector';
59
+ export { default as SideBar } from './components/side-bar';
52
60
  export { default as Slider } from './components/slider';
53
61
  export { default as Space } from './components/space';
54
62
  export { default as Stepper } from './components//stepper';
@@ -58,15 +66,10 @@ export { default as Swiper } from './components/swiper';
58
66
  export { default as Switch } from './components/switch';
59
67
  export { default as TabBar } from './components/tab-bar';
60
68
  export { default as Tabs } from './components/tabs';
61
- export { default as CapsuleTabs } from './components/capsule-tabs';
62
- export { default as JumboTabs } from './components/jumbo-tabs';
63
69
  export { default as Tag } from './components/tag';
64
70
  export { default as TextArea } from './components/text-area';
65
71
  export { default as Toast } from './components/toast';
66
72
  export { default as TreeSelect } from './components/tree-select';
67
73
  export { default as VirtualInput } from './components/virtual-input';
68
74
  export { default as WaterMark } from './components/water-mark';
69
- export { default as NumberKeyboard } from './components/number-keyboard';
70
- export { default as SideBar } from './components/side-bar';
71
- export { default as ScrollMask } from './components/scroll-mask';
72
- export { default as FloatingBubble } from './components/floating-bubble';
75
+ export { default as PasscodeInput } from './components/passcode-input';
package/es/index.js CHANGED
@@ -4,22 +4,25 @@ export { default as ActionSheet } from './components/action-sheet';
4
4
  export { default as AutoCenter } from './components/auto-center';
5
5
  export { default as Badge } from './components/badge';
6
6
  export { default as Button } from './components/button';
7
+ export { default as CapsuleTabs } from './components/capsule-tabs';
7
8
  export { default as Card } from './components/card';
8
9
  export { default as CascadePicker } from './components/cascade-picker';
9
10
  export { default as CascadePickerView } from './components/cascade-picker-view';
11
+ export { default as Cascader } from './components/cascader';
12
+ export { default as CascaderView } from './components/cascader-view';
10
13
  export { default as CheckList } from './components/check-list';
11
14
  export { default as Checkbox } from './components/checkbox';
12
15
  export { default as Collapse } from './components/collapse';
13
16
  export { default as ConfigProvider } from './components/config-provider';
14
17
  export { default as DatePicker } from './components/date-picker';
15
18
  export { default as DatePickerView } from './components/date-picker-view';
16
- export { default as DesenseText } from './components/desense-text';
17
19
  export { default as Dialog } from './components/dialog';
18
20
  export { default as Divider } from './components/divider';
19
21
  export { default as Dropdown } from './components/dropdown';
20
22
  export { default as Ellipsis } from './components/ellipsis';
21
23
  export { default as Empty } from './components/empty';
22
24
  export { default as ErrorBlock } from './components/error-block';
25
+ export { default as FloatingBubble } from './components/floating-bubble';
23
26
  export { default as FloatingPanel } from './components/floating-panel';
24
27
  export { default as Form } from './components/form';
25
28
  export { default as Grid } from './components/grid';
@@ -29,11 +32,14 @@ export { default as ImageViewer } from './components/image-viewer';
29
32
  export { default as IndexBar } from './components/index-bar';
30
33
  export { default as InfiniteScroll } from './components/infinite-scroll';
31
34
  export { default as Input } from './components/input';
35
+ export { default as JumboTabs } from './components/jumbo-tabs';
32
36
  export { default as List } from './components/list';
33
37
  export { default as Loading } from './components/loading';
34
38
  export { default as Mask } from './components/mask';
39
+ export { default as Modal } from './components/modal';
35
40
  export { default as NavBar } from './components/nav-bar';
36
41
  export { default as NoticeBar } from './components/notice-bar';
42
+ export { default as NumberKeyboard } from './components/number-keyboard';
37
43
  export { default as PageIndicator } from './components/page-indicator';
38
44
  export { default as Picker } from './components/picker';
39
45
  export { default as PickerView } from './components/picker-view';
@@ -46,10 +52,12 @@ export { default as Radio } from './components/radio';
46
52
  export { default as Rate } from './components/rate';
47
53
  export { default as Result } from './components/result';
48
54
  export { default as SafeArea } from './components/safe-area';
49
- export { default as SearchBar } from './components/search-bar';
55
+ export { default as ScrollMask } from './components/scroll-mask';
50
56
  export { default as Search } from './components/search-bar'; // TODO: deprecated
51
57
 
58
+ export { default as SearchBar } from './components/search-bar';
52
59
  export { default as Selector } from './components/selector';
60
+ export { default as SideBar } from './components/side-bar';
53
61
  export { default as Slider } from './components/slider';
54
62
  export { default as Space } from './components/space';
55
63
  export { default as Stepper } from './components//stepper';
@@ -59,15 +67,10 @@ export { default as Swiper } from './components/swiper';
59
67
  export { default as Switch } from './components/switch';
60
68
  export { default as TabBar } from './components/tab-bar';
61
69
  export { default as Tabs } from './components/tabs';
62
- export { default as CapsuleTabs } from './components/capsule-tabs';
63
- export { default as JumboTabs } from './components/jumbo-tabs';
64
70
  export { default as Tag } from './components/tag';
65
71
  export { default as TextArea } from './components/text-area';
66
72
  export { default as Toast } from './components/toast';
67
73
  export { default as TreeSelect } from './components/tree-select';
68
74
  export { default as VirtualInput } from './components/virtual-input';
69
75
  export { default as WaterMark } from './components/water-mark';
70
- export { default as NumberKeyboard } from './components/number-keyboard';
71
- export { default as SideBar } from './components/side-bar';
72
- export { default as ScrollMask } from './components/scroll-mask';
73
- export { default as FloatingBubble } from './components/floating-bubble';
76
+ export { default as PasscodeInput } from './components/passcode-input';
@@ -3,6 +3,9 @@ export declare const base: {
3
3
  confirm: string;
4
4
  cancel: string;
5
5
  };
6
+ Cascader: {
7
+ placeholder: string;
8
+ };
6
9
  Dialog: {
7
10
  ok: string;
8
11
  };
@@ -30,5 +33,8 @@ export declare const base: {
30
33
  Mask: {
31
34
  name: string;
32
35
  };
36
+ Modal: {
37
+ ok: string;
38
+ };
33
39
  };
34
40
  export declare type Locale = typeof base;
@@ -3,6 +3,9 @@ export var base = {
3
3
  confirm: 'Confirm',
4
4
  cancel: 'Cancel'
5
5
  },
6
+ Cascader: {
7
+ placeholder: 'Selecting'
8
+ },
6
9
  Dialog: {
7
10
  ok: 'OK'
8
11
  },
@@ -29,5 +32,8 @@ export var base = {
29
32
  },
30
33
  Mask: {
31
34
  name: 'Mask'
35
+ },
36
+ Modal: {
37
+ ok: 'OK'
32
38
  }
33
39
  };
@@ -3,6 +3,9 @@ declare const enUS: {
3
3
  confirm: string;
4
4
  cancel: string;
5
5
  };
6
+ Cascader: {
7
+ placeholder: string;
8
+ };
6
9
  Dialog: {
7
10
  ok: string;
8
11
  };
@@ -30,5 +33,8 @@ declare const enUS: {
30
33
  Mask: {
31
34
  name: string;
32
35
  };
36
+ Modal: {
37
+ ok: string;
38
+ };
33
39
  };
34
40
  export default enUS;
@@ -3,6 +3,9 @@ declare const zhCN: {
3
3
  confirm: string;
4
4
  cancel: string;
5
5
  };
6
+ Cascader: {
7
+ placeholder: string;
8
+ };
6
9
  Dialog: {
7
10
  ok: string;
8
11
  };
@@ -30,5 +33,8 @@ declare const zhCN: {
30
33
  Mask: {
31
34
  name: string;
32
35
  };
36
+ Modal: {
37
+ ok: string;
38
+ };
33
39
  };
34
40
  export default zhCN;
@@ -5,6 +5,9 @@ var zhCN = mergeLocale(base, {
5
5
  confirm: '确定',
6
6
  cancel: '取消'
7
7
  },
8
+ Cascader: {
9
+ placeholder: '请选择'
10
+ },
8
11
  Dialog: {
9
12
  ok: '我知道了'
10
13
  },
@@ -31,6 +34,9 @@ var zhCN = mergeLocale(base, {
31
34
  },
32
35
  Mask: {
33
36
  name: '遮罩层'
37
+ },
38
+ Modal: {
39
+ ok: '我知道了'
34
40
  }
35
41
  });
36
42
  export default zhCN;
@@ -0,0 +1,2 @@
1
+ import { FunctionComponent } from 'react';
2
+ export declare function memoWithEventMarks<P extends object>(Component: FunctionComponent<P>, eventProps: (keyof P)[]): import("react").NamedExoticComponent<P>;
@@ -0,0 +1,15 @@
1
+ import { memo } from 'react';
2
+ export function memoWithEventMarks(Component, eventProps) {
3
+ return /*#__PURE__*/memo(Component, function (prevProps, nextProps) {
4
+ for (var k in nextProps) {
5
+ var key = k;
6
+ if (eventProps.includes(key)) continue;
7
+
8
+ if (prevProps[key] !== nextProps[key]) {
9
+ return false;
10
+ }
11
+ }
12
+
13
+ return true;
14
+ });
15
+ }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.0.0-rc.1",
3
+ "version": "5.0.0-rc.5",
4
4
  "dependencies": {
5
5
  "@react-spring/web": "^9.3.1",
6
6
  "@types/resize-observer-browser": "^0.1.6",
7
- "@use-gesture/react": "^10.1.6",
8
- "ahooks": "^2.10.12",
7
+ "@use-gesture/react": "^10.2.2",
8
+ "ahooks": "^2.10.14",
9
9
  "antd-mobile-icons": "^0.2.2",
10
10
  "antd-mobile-v5-count": "^1.0.1",
11
11
  "classnames": "^2.3.1",