vant 4.0.0-alpha.1 → 4.0.0-alpha.2

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 (531) hide show
  1. package/README.md +141 -0
  2. package/changelog.generated.md +39 -42
  3. package/es/address-edit/AddressEdit.d.ts +0 -17
  4. package/es/address-edit/AddressEdit.js +3 -24
  5. package/es/address-edit/index.d.ts +0 -12
  6. package/es/address-edit/types.d.ts +0 -1
  7. package/es/address-list/AddressListItem.d.ts +3 -2
  8. package/es/address-list/AddressListItem.js +1 -1
  9. package/es/badge/Badge.d.ts +4 -3
  10. package/es/badge/index.d.ts +2 -2
  11. package/es/calendar/Calendar.js +1 -1
  12. package/es/calendar/CalendarDay.js +4 -0
  13. package/es/calendar/index.css +1 -1
  14. package/es/calendar/index.less +2 -0
  15. package/es/calendar/types.d.ts +2 -1
  16. package/es/cascader/types.d.ts +2 -1
  17. package/es/checkbox/Checker.d.ts +2 -1
  18. package/es/collapse/Collapse.d.ts +7 -6
  19. package/es/collapse/index.d.ts +3 -3
  20. package/es/composables/use-touch.js +1 -1
  21. package/es/config-provider/ConfigProvider.d.ts +4 -3
  22. package/es/config-provider/index.d.ts +2 -2
  23. package/es/contact-list/ContactList.d.ts +3 -2
  24. package/es/coupon/Coupon.d.ts +2 -1
  25. package/es/coupon-list/CouponList.d.ts +3 -13
  26. package/es/coupon-list/CouponList.js +9 -7
  27. package/es/coupon-list/index.css +1 -1
  28. package/es/coupon-list/index.d.ts +2 -9
  29. package/es/coupon-list/index.less +4 -16
  30. package/es/coupon-list/style/index.js +1 -0
  31. package/es/coupon-list/style/less.js +1 -0
  32. package/es/dialog/index.css +1 -1
  33. package/es/dialog/types.d.ts +2 -2
  34. package/es/dropdown-item/types.d.ts +2 -1
  35. package/es/empty/Empty.d.ts +8 -7
  36. package/es/empty/Empty.js +2 -2
  37. package/es/empty/index.d.ts +2 -2
  38. package/es/field/Field.d.ts +4 -0
  39. package/es/field/Field.js +2 -0
  40. package/es/field/index.d.ts +2 -0
  41. package/es/form/Form.js +1 -0
  42. package/es/form/types.d.ts +1 -0
  43. package/es/icon/index.css +1 -1
  44. package/es/index-bar/IndexBar.d.ts +5 -4
  45. package/es/index-bar/index.d.ts +3 -3
  46. package/es/index-bar/types.d.ts +2 -1
  47. package/es/index.d.ts +1 -1
  48. package/es/index.js +1 -1
  49. package/es/locale/lang/bn-BD.d.ts +0 -2
  50. package/es/locale/lang/bn-BD.js +0 -2
  51. package/es/locale/lang/da-DK.d.ts +64 -0
  52. package/es/locale/lang/da-DK.js +66 -0
  53. package/es/locale/lang/de-DE-formal.d.ts +0 -2
  54. package/es/locale/lang/de-DE-formal.js +0 -2
  55. package/es/locale/lang/de-DE.d.ts +0 -2
  56. package/es/locale/lang/de-DE.js +0 -2
  57. package/es/locale/lang/en-US.d.ts +0 -2
  58. package/es/locale/lang/en-US.js +0 -2
  59. package/es/locale/lang/es-ES.d.ts +0 -2
  60. package/es/locale/lang/es-ES.js +0 -2
  61. package/es/locale/lang/fr-FR.d.ts +0 -2
  62. package/es/locale/lang/fr-FR.js +0 -2
  63. package/es/locale/lang/hi-IN.d.ts +0 -2
  64. package/es/locale/lang/hi-IN.js +0 -2
  65. package/es/locale/lang/id-ID.d.ts +0 -2
  66. package/es/locale/lang/id-ID.js +0 -2
  67. package/es/locale/lang/is-IS.d.ts +62 -0
  68. package/es/locale/lang/is-IS.js +72 -0
  69. package/es/locale/lang/it-IT.d.ts +0 -2
  70. package/es/locale/lang/it-IT.js +0 -2
  71. package/es/locale/lang/ja-JP.d.ts +0 -2
  72. package/es/locale/lang/ja-JP.js +0 -2
  73. package/es/locale/lang/ko-KR.d.ts +0 -2
  74. package/es/locale/lang/ko-KR.js +0 -2
  75. package/es/locale/lang/la-LA.d.ts +0 -2
  76. package/es/locale/lang/la-LA.js +0 -2
  77. package/es/locale/lang/nb-NO.d.ts +0 -2
  78. package/es/locale/lang/nb-NO.js +0 -2
  79. package/es/locale/lang/pt-BR.d.ts +0 -2
  80. package/es/locale/lang/pt-BR.js +0 -2
  81. package/es/locale/lang/ro-RO.d.ts +0 -2
  82. package/es/locale/lang/ro-RO.js +0 -2
  83. package/es/locale/lang/ru-RU.d.ts +0 -2
  84. package/es/locale/lang/ru-RU.js +0 -2
  85. package/es/locale/lang/sv-SE.d.ts +62 -0
  86. package/es/locale/lang/sv-SE.js +64 -0
  87. package/es/locale/lang/th-TH.d.ts +0 -2
  88. package/es/locale/lang/th-TH.js +0 -2
  89. package/es/locale/lang/tr-TR.d.ts +0 -2
  90. package/es/locale/lang/tr-TR.js +0 -2
  91. package/es/locale/lang/uk-UA.d.ts +0 -2
  92. package/es/locale/lang/uk-UA.js +0 -2
  93. package/es/locale/lang/vi-VN.d.ts +0 -2
  94. package/es/locale/lang/vi-VN.js +0 -2
  95. package/es/locale/lang/zh-CN.d.ts +0 -2
  96. package/es/locale/lang/zh-CN.js +0 -2
  97. package/es/locale/lang/zh-HK.d.ts +0 -2
  98. package/es/locale/lang/zh-HK.js +0 -2
  99. package/es/locale/lang/zh-TW.d.ts +0 -2
  100. package/es/locale/lang/zh-TW.js +0 -2
  101. package/es/notify/types.d.ts +2 -1
  102. package/es/number-keyboard/NumberKeyboard.js +10 -1
  103. package/es/picker/Picker.d.ts +5 -4
  104. package/es/picker/index.d.ts +3 -3
  105. package/es/picker/types.d.ts +4 -3
  106. package/es/picker/utils.d.ts +4 -3
  107. package/es/popup/index.css +1 -1
  108. package/es/progress/Progress.d.ts +4 -3
  109. package/es/progress/index.d.ts +2 -2
  110. package/es/rate/Rate.js +32 -10
  111. package/es/search/Search.d.ts +3 -0
  112. package/es/search/index.d.ts +2 -0
  113. package/es/share-sheet/ShareSheet.js +25 -11
  114. package/es/share-sheet/index.css +1 -1
  115. package/es/share-sheet/index.less +45 -1
  116. package/es/skeleton/Skeleton.d.ts +5 -4
  117. package/es/skeleton/index.d.ts +3 -3
  118. package/es/slider/index.css +1 -1
  119. package/es/style/animation.css +1 -1
  120. package/es/style/base.css +1 -1
  121. package/es/swipe-cell/index.css +1 -1
  122. package/es/tabbar/Tabbar.d.ts +2 -2
  123. package/es/tabs/Tabs.d.ts +1 -1
  124. package/es/tabs/Tabs.js +1 -0
  125. package/es/tabs/types.d.ts +5 -4
  126. package/es/toast/types.d.ts +3 -2
  127. package/es/tree-select/TreeSelect.d.ts +7 -6
  128. package/es/tree-select/index.d.ts +3 -3
  129. package/es/uploader/Uploader.d.ts +4 -4
  130. package/es/uploader/Uploader.js +2 -2
  131. package/es/uploader/UploaderPreviewItem.d.ts +3 -3
  132. package/es/uploader/UploaderPreviewItem.js +9 -6
  133. package/es/uploader/index.d.ts +2 -2
  134. package/es/uploader/types.d.ts +5 -5
  135. package/es/utils/basic.d.ts +1 -0
  136. package/es/utils/format.d.ts +7 -6
  137. package/es/utils/format.js +6 -0
  138. package/es/utils/validate.d.ts +2 -1
  139. package/lib/action-bar/ActionBar.js +8 -13
  140. package/lib/action-bar/index.js +9 -16
  141. package/lib/action-bar-button/ActionBarButton.js +8 -13
  142. package/lib/action-bar-button/index.js +9 -16
  143. package/lib/action-bar-icon/ActionBarIcon.js +8 -13
  144. package/lib/action-bar-icon/index.js +9 -16
  145. package/lib/action-sheet/ActionSheet.js +8 -13
  146. package/lib/action-sheet/index.js +9 -16
  147. package/lib/address-edit/AddressEdit.d.ts +0 -17
  148. package/lib/address-edit/AddressEdit.js +12 -40
  149. package/lib/address-edit/AddressEditDetail.js +8 -13
  150. package/lib/address-edit/index.d.ts +0 -12
  151. package/lib/address-edit/index.js +9 -16
  152. package/lib/address-edit/types.d.ts +0 -1
  153. package/lib/address-edit/types.js +7 -12
  154. package/lib/address-list/AddressList.js +9 -16
  155. package/lib/address-list/AddressListItem.d.ts +3 -2
  156. package/lib/address-list/AddressListItem.js +8 -13
  157. package/lib/address-list/index.js +9 -16
  158. package/lib/area/Area.js +8 -13
  159. package/lib/area/index.js +9 -16
  160. package/lib/area/types.js +7 -12
  161. package/lib/area/utils.js +8 -13
  162. package/lib/badge/Badge.d.ts +4 -3
  163. package/lib/badge/Badge.js +8 -13
  164. package/lib/badge/index.d.ts +2 -2
  165. package/lib/badge/index.js +9 -16
  166. package/lib/button/Button.js +8 -13
  167. package/lib/button/index.js +9 -16
  168. package/lib/button/types.js +7 -12
  169. package/lib/calendar/Calendar.js +10 -17
  170. package/lib/calendar/CalendarDay.js +12 -13
  171. package/lib/calendar/CalendarHeader.js +8 -13
  172. package/lib/calendar/CalendarMonth.js +9 -16
  173. package/lib/calendar/index.css +1 -1
  174. package/lib/calendar/index.js +9 -16
  175. package/lib/calendar/index.less +2 -0
  176. package/lib/calendar/types.d.ts +2 -1
  177. package/lib/calendar/types.js +7 -12
  178. package/lib/calendar/utils.js +8 -13
  179. package/lib/card/Card.js +8 -13
  180. package/lib/card/index.js +9 -16
  181. package/lib/cascader/Cascader.js +8 -13
  182. package/lib/cascader/index.js +9 -16
  183. package/lib/cascader/types.d.ts +2 -1
  184. package/lib/cascader/types.js +7 -12
  185. package/lib/cell/Cell.js +8 -13
  186. package/lib/cell/index.js +9 -16
  187. package/lib/cell-group/CellGroup.js +8 -13
  188. package/lib/cell-group/index.js +9 -16
  189. package/lib/checkbox/Checkbox.js +9 -16
  190. package/lib/checkbox/Checker.d.ts +2 -1
  191. package/lib/checkbox/Checker.js +8 -13
  192. package/lib/checkbox/index.js +9 -16
  193. package/lib/checkbox/types.js +7 -12
  194. package/lib/checkbox-group/CheckboxGroup.js +8 -13
  195. package/lib/checkbox-group/index.js +9 -16
  196. package/lib/checkbox-group/types.js +7 -12
  197. package/lib/circle/Circle.js +8 -13
  198. package/lib/circle/index.js +9 -16
  199. package/lib/col/Col.js +8 -13
  200. package/lib/col/index.js +9 -16
  201. package/lib/collapse/Collapse.d.ts +7 -6
  202. package/lib/collapse/Collapse.js +8 -13
  203. package/lib/collapse/index.d.ts +3 -3
  204. package/lib/collapse/index.js +9 -16
  205. package/lib/collapse-item/CollapseItem.js +8 -13
  206. package/lib/collapse-item/index.js +9 -16
  207. package/lib/collapse-item/types.js +7 -12
  208. package/lib/composables/on-popup-reopen.js +8 -13
  209. package/lib/composables/use-expose.js +8 -13
  210. package/lib/composables/use-height.js +8 -13
  211. package/lib/composables/use-id.js +8 -13
  212. package/lib/composables/use-lazy-render.js +8 -13
  213. package/lib/composables/use-lock-scroll.js +8 -13
  214. package/lib/composables/use-placeholder.js +8 -13
  215. package/lib/composables/use-refs.js +8 -13
  216. package/lib/composables/use-route.js +8 -13
  217. package/lib/composables/use-tab-status.js +8 -13
  218. package/lib/composables/use-touch.js +9 -14
  219. package/lib/composables/use-visibility-change.js +8 -13
  220. package/lib/config-provider/ConfigProvider.d.ts +4 -3
  221. package/lib/config-provider/ConfigProvider.js +8 -13
  222. package/lib/config-provider/index.d.ts +2 -2
  223. package/lib/config-provider/index.js +9 -16
  224. package/lib/contact-card/ContactCard.js +8 -13
  225. package/lib/contact-card/index.js +9 -16
  226. package/lib/contact-edit/ContactEdit.js +8 -13
  227. package/lib/contact-edit/index.js +9 -16
  228. package/lib/contact-list/ContactList.d.ts +3 -2
  229. package/lib/contact-list/ContactList.js +8 -13
  230. package/lib/contact-list/index.js +9 -16
  231. package/lib/count-down/CountDown.js +8 -13
  232. package/lib/count-down/index.js +9 -16
  233. package/lib/count-down/types.js +7 -12
  234. package/lib/count-down/utils.js +8 -13
  235. package/lib/coupon/Coupon.d.ts +2 -1
  236. package/lib/coupon/Coupon.js +8 -13
  237. package/lib/coupon/index.js +9 -16
  238. package/lib/coupon/utils.js +8 -13
  239. package/lib/coupon-cell/CouponCell.js +8 -13
  240. package/lib/coupon-cell/index.js +9 -16
  241. package/lib/coupon-list/CouponList.d.ts +3 -13
  242. package/lib/coupon-list/CouponList.js +17 -20
  243. package/lib/coupon-list/index.css +1 -1
  244. package/lib/coupon-list/index.d.ts +2 -9
  245. package/lib/coupon-list/index.js +9 -16
  246. package/lib/coupon-list/index.less +4 -16
  247. package/lib/coupon-list/style/index.js +1 -0
  248. package/lib/coupon-list/style/less.js +1 -0
  249. package/lib/date-picker/DatePicker.js +8 -13
  250. package/lib/date-picker/index.js +9 -16
  251. package/lib/date-picker/utils.js +8 -13
  252. package/lib/dialog/Dialog.js +8 -13
  253. package/lib/dialog/function-call.js +9 -16
  254. package/lib/dialog/index.css +1 -1
  255. package/lib/dialog/index.js +8 -13
  256. package/lib/dialog/types.d.ts +2 -2
  257. package/lib/dialog/types.js +7 -12
  258. package/lib/divider/Divider.js +8 -13
  259. package/lib/divider/index.js +9 -16
  260. package/lib/dropdown-item/DropdownItem.js +8 -13
  261. package/lib/dropdown-item/index.js +9 -16
  262. package/lib/dropdown-item/types.d.ts +2 -1
  263. package/lib/dropdown-item/types.js +7 -12
  264. package/lib/dropdown-menu/DropdownMenu.js +8 -13
  265. package/lib/dropdown-menu/index.js +9 -16
  266. package/lib/dropdown-menu/types.js +7 -12
  267. package/lib/empty/Empty.d.ts +8 -7
  268. package/lib/empty/Empty.js +9 -14
  269. package/lib/empty/Network.js +8 -13
  270. package/lib/empty/index.d.ts +2 -2
  271. package/lib/empty/index.js +9 -16
  272. package/lib/field/Field.d.ts +4 -0
  273. package/lib/field/Field.js +10 -13
  274. package/lib/field/index.d.ts +2 -0
  275. package/lib/field/index.js +9 -16
  276. package/lib/field/types.js +7 -12
  277. package/lib/field/utils.js +8 -13
  278. package/lib/form/Form.js +9 -13
  279. package/lib/form/index.js +9 -16
  280. package/lib/form/types.d.ts +1 -0
  281. package/lib/form/types.js +7 -12
  282. package/lib/grid/Grid.js +8 -13
  283. package/lib/grid/index.js +9 -16
  284. package/lib/grid-item/GridItem.js +8 -13
  285. package/lib/grid-item/index.js +9 -16
  286. package/lib/icon/Icon.js +8 -13
  287. package/lib/icon/index.css +1 -1
  288. package/lib/icon/index.js +9 -16
  289. package/lib/image/Image.js +8 -13
  290. package/lib/image/index.js +9 -16
  291. package/lib/image-preview/ImagePreview.js +9 -16
  292. package/lib/image-preview/ImagePreviewItem.js +8 -13
  293. package/lib/image-preview/function-call.js +9 -16
  294. package/lib/image-preview/index.js +8 -13
  295. package/lib/image-preview/types.js +7 -12
  296. package/lib/index-anchor/IndexAnchor.js +8 -13
  297. package/lib/index-anchor/index.js +9 -16
  298. package/lib/index-bar/IndexBar.d.ts +5 -4
  299. package/lib/index-bar/IndexBar.js +8 -13
  300. package/lib/index-bar/index.d.ts +3 -3
  301. package/lib/index-bar/index.js +9 -16
  302. package/lib/index-bar/types.d.ts +2 -1
  303. package/lib/index-bar/types.js +7 -12
  304. package/lib/index.css +1 -1
  305. package/lib/index.d.ts +1 -1
  306. package/lib/index.js +97 -101
  307. package/lib/index.less +2 -2
  308. package/lib/lazyload/index.js +8 -13
  309. package/lib/lazyload/vue-lazyload/index.js +9 -16
  310. package/lib/lazyload/vue-lazyload/lazy-component.js +8 -13
  311. package/lib/lazyload/vue-lazyload/lazy-container.js +8 -13
  312. package/lib/lazyload/vue-lazyload/lazy-image.js +8 -13
  313. package/lib/lazyload/vue-lazyload/lazy.js +9 -16
  314. package/lib/lazyload/vue-lazyload/listener.js +8 -13
  315. package/lib/lazyload/vue-lazyload/util.js +8 -13
  316. package/lib/list/List.js +8 -13
  317. package/lib/list/index.js +9 -16
  318. package/lib/list/types.js +7 -12
  319. package/lib/loading/Loading.js +8 -13
  320. package/lib/loading/index.js +9 -16
  321. package/lib/locale/index.js +9 -16
  322. package/lib/locale/lang/bn-BD.d.ts +0 -2
  323. package/lib/locale/lang/bn-BD.js +8 -15
  324. package/lib/locale/lang/da-DK.d.ts +64 -0
  325. package/lib/locale/lang/da-DK.js +85 -0
  326. package/lib/locale/lang/de-DE-formal.d.ts +0 -2
  327. package/lib/locale/lang/de-DE-formal.js +8 -15
  328. package/lib/locale/lang/de-DE.d.ts +0 -2
  329. package/lib/locale/lang/de-DE.js +8 -15
  330. package/lib/locale/lang/en-US.d.ts +0 -2
  331. package/lib/locale/lang/en-US.js +8 -15
  332. package/lib/locale/lang/es-ES.d.ts +0 -2
  333. package/lib/locale/lang/es-ES.js +8 -15
  334. package/lib/locale/lang/fr-FR.d.ts +0 -2
  335. package/lib/locale/lang/fr-FR.js +8 -15
  336. package/lib/locale/lang/hi-IN.d.ts +0 -2
  337. package/lib/locale/lang/hi-IN.js +8 -15
  338. package/lib/locale/lang/id-ID.d.ts +0 -2
  339. package/lib/locale/lang/id-ID.js +8 -15
  340. package/lib/locale/lang/is-IS.d.ts +62 -0
  341. package/lib/locale/lang/is-IS.js +91 -0
  342. package/lib/locale/lang/it-IT.d.ts +0 -2
  343. package/lib/locale/lang/it-IT.js +8 -15
  344. package/lib/locale/lang/ja-JP.d.ts +0 -2
  345. package/lib/locale/lang/ja-JP.js +8 -15
  346. package/lib/locale/lang/ko-KR.d.ts +0 -2
  347. package/lib/locale/lang/ko-KR.js +8 -15
  348. package/lib/locale/lang/la-LA.d.ts +0 -2
  349. package/lib/locale/lang/la-LA.js +8 -15
  350. package/lib/locale/lang/nb-NO.d.ts +0 -2
  351. package/lib/locale/lang/nb-NO.js +8 -15
  352. package/lib/locale/lang/pt-BR.d.ts +0 -2
  353. package/lib/locale/lang/pt-BR.js +8 -15
  354. package/lib/locale/lang/ro-RO.d.ts +0 -2
  355. package/lib/locale/lang/ro-RO.js +8 -15
  356. package/lib/locale/lang/ru-RU.d.ts +0 -2
  357. package/lib/locale/lang/ru-RU.js +8 -15
  358. package/lib/locale/lang/sv-SE.d.ts +62 -0
  359. package/lib/locale/lang/sv-SE.js +83 -0
  360. package/lib/locale/lang/th-TH.d.ts +0 -2
  361. package/lib/locale/lang/th-TH.js +8 -15
  362. package/lib/locale/lang/tr-TR.d.ts +0 -2
  363. package/lib/locale/lang/tr-TR.js +8 -15
  364. package/lib/locale/lang/uk-UA.d.ts +0 -2
  365. package/lib/locale/lang/uk-UA.js +8 -15
  366. package/lib/locale/lang/vi-VN.d.ts +0 -2
  367. package/lib/locale/lang/vi-VN.js +8 -15
  368. package/lib/locale/lang/zh-CN.d.ts +0 -2
  369. package/lib/locale/lang/zh-CN.js +8 -15
  370. package/lib/locale/lang/zh-HK.d.ts +0 -2
  371. package/lib/locale/lang/zh-HK.js +8 -15
  372. package/lib/locale/lang/zh-TW.d.ts +0 -2
  373. package/lib/locale/lang/zh-TW.js +8 -15
  374. package/lib/nav-bar/NavBar.js +8 -13
  375. package/lib/nav-bar/index.js +9 -16
  376. package/lib/notice-bar/NoticeBar.js +8 -13
  377. package/lib/notice-bar/index.js +9 -16
  378. package/lib/notice-bar/types.js +7 -12
  379. package/lib/notify/Notify.js +8 -13
  380. package/lib/notify/function-call.js +9 -16
  381. package/lib/notify/index.js +8 -13
  382. package/lib/notify/types.d.ts +2 -1
  383. package/lib/notify/types.js +7 -12
  384. package/lib/number-keyboard/NumberKeyboard.js +19 -17
  385. package/lib/number-keyboard/NumberKeyboardKey.js +8 -13
  386. package/lib/number-keyboard/index.js +9 -16
  387. package/lib/overlay/Overlay.js +8 -13
  388. package/lib/overlay/index.js +9 -16
  389. package/lib/pagination/Pagination.js +8 -13
  390. package/lib/pagination/index.js +9 -16
  391. package/lib/password-input/PasswordInput.js +8 -13
  392. package/lib/password-input/index.js +9 -16
  393. package/lib/picker/Picker.d.ts +5 -4
  394. package/lib/picker/Picker.js +9 -16
  395. package/lib/picker/PickerColumn.js +8 -13
  396. package/lib/picker/index.d.ts +3 -3
  397. package/lib/picker/index.js +9 -16
  398. package/lib/picker/types.d.ts +4 -3
  399. package/lib/picker/types.js +7 -12
  400. package/lib/picker/utils.d.ts +4 -3
  401. package/lib/picker/utils.js +8 -13
  402. package/lib/popover/Popover.js +8 -13
  403. package/lib/popover/index.js +9 -16
  404. package/lib/popover/types.js +7 -12
  405. package/lib/popup/Popup.js +8 -13
  406. package/lib/popup/index.css +1 -1
  407. package/lib/popup/index.js +9 -16
  408. package/lib/popup/shared.js +8 -13
  409. package/lib/popup/types.js +7 -12
  410. package/lib/progress/Progress.d.ts +4 -3
  411. package/lib/progress/Progress.js +8 -13
  412. package/lib/progress/index.d.ts +2 -2
  413. package/lib/progress/index.js +9 -16
  414. package/lib/progress/types.js +7 -12
  415. package/lib/pull-refresh/PullRefresh.js +8 -13
  416. package/lib/pull-refresh/index.js +9 -16
  417. package/lib/radio/Radio.js +9 -16
  418. package/lib/radio/index.js +9 -16
  419. package/lib/radio-group/RadioGroup.js +8 -13
  420. package/lib/radio-group/index.js +9 -16
  421. package/lib/rate/Rate.js +39 -22
  422. package/lib/rate/index.js +9 -16
  423. package/lib/row/Row.js +8 -13
  424. package/lib/row/index.js +9 -16
  425. package/lib/search/Search.d.ts +3 -0
  426. package/lib/search/Search.js +8 -13
  427. package/lib/search/index.d.ts +2 -0
  428. package/lib/search/index.js +9 -16
  429. package/lib/search/types.js +7 -12
  430. package/lib/share-sheet/ShareSheet.js +33 -24
  431. package/lib/share-sheet/index.css +1 -1
  432. package/lib/share-sheet/index.js +9 -16
  433. package/lib/share-sheet/index.less +45 -1
  434. package/lib/sidebar/Sidebar.js +8 -13
  435. package/lib/sidebar/index.js +9 -16
  436. package/lib/sidebar-item/SidebarItem.js +8 -13
  437. package/lib/sidebar-item/index.js +9 -16
  438. package/lib/skeleton/Skeleton.d.ts +5 -4
  439. package/lib/skeleton/Skeleton.js +8 -13
  440. package/lib/skeleton/index.d.ts +3 -3
  441. package/lib/skeleton/index.js +9 -16
  442. package/lib/slider/Slider.js +8 -13
  443. package/lib/slider/index.css +1 -1
  444. package/lib/slider/index.js +9 -16
  445. package/lib/step/Step.js +8 -13
  446. package/lib/step/index.js +9 -16
  447. package/lib/stepper/Stepper.js +8 -13
  448. package/lib/stepper/index.js +9 -16
  449. package/lib/steps/Steps.js +8 -13
  450. package/lib/steps/index.js +9 -16
  451. package/lib/sticky/Sticky.js +8 -13
  452. package/lib/sticky/index.js +9 -16
  453. package/lib/style/animation.css +1 -1
  454. package/lib/style/base.css +1 -1
  455. package/lib/submit-bar/SubmitBar.js +8 -13
  456. package/lib/submit-bar/index.js +9 -16
  457. package/lib/swipe/Swipe.js +8 -13
  458. package/lib/swipe/index.js +9 -16
  459. package/lib/swipe/types.js +7 -12
  460. package/lib/swipe-cell/SwipeCell.js +8 -13
  461. package/lib/swipe-cell/index.css +1 -1
  462. package/lib/swipe-cell/index.js +9 -16
  463. package/lib/swipe-cell/types.js +7 -12
  464. package/lib/swipe-item/SwipeItem.js +8 -13
  465. package/lib/swipe-item/index.js +9 -16
  466. package/lib/switch/Switch.js +8 -13
  467. package/lib/switch/index.js +9 -16
  468. package/lib/tab/Tab.js +8 -13
  469. package/lib/tab/index.js +9 -16
  470. package/lib/tabbar/Tabbar.d.ts +2 -2
  471. package/lib/tabbar/Tabbar.js +8 -13
  472. package/lib/tabbar/index.js +9 -16
  473. package/lib/tabbar-item/TabbarItem.js +8 -13
  474. package/lib/tabbar-item/index.js +9 -16
  475. package/lib/tabs/Tabs.d.ts +1 -1
  476. package/lib/tabs/Tabs.js +10 -16
  477. package/lib/tabs/TabsContent.js +8 -13
  478. package/lib/tabs/TabsTitle.js +8 -13
  479. package/lib/tabs/index.js +9 -16
  480. package/lib/tabs/types.d.ts +5 -4
  481. package/lib/tabs/types.js +7 -12
  482. package/lib/tabs/utils.js +8 -13
  483. package/lib/tag/Tag.js +8 -13
  484. package/lib/tag/index.js +9 -16
  485. package/lib/time-picker/TimePicker.js +8 -13
  486. package/lib/time-picker/index.js +9 -16
  487. package/lib/toast/Toast.js +8 -13
  488. package/lib/toast/function-call.js +9 -16
  489. package/lib/toast/index.js +8 -13
  490. package/lib/toast/lock-click.js +8 -13
  491. package/lib/toast/types.d.ts +3 -2
  492. package/lib/toast/types.js +7 -12
  493. package/lib/tree-select/TreeSelect.d.ts +7 -6
  494. package/lib/tree-select/TreeSelect.js +8 -13
  495. package/lib/tree-select/index.d.ts +3 -3
  496. package/lib/tree-select/index.js +9 -16
  497. package/lib/uploader/Uploader.d.ts +4 -4
  498. package/lib/uploader/Uploader.js +10 -17
  499. package/lib/uploader/UploaderPreviewItem.d.ts +3 -3
  500. package/lib/uploader/UploaderPreviewItem.js +17 -19
  501. package/lib/uploader/index.d.ts +2 -2
  502. package/lib/uploader/index.js +9 -16
  503. package/lib/uploader/types.d.ts +5 -5
  504. package/lib/uploader/types.js +7 -12
  505. package/lib/uploader/utils.js +8 -13
  506. package/lib/utils/basic.d.ts +1 -0
  507. package/lib/utils/basic.js +8 -13
  508. package/lib/utils/constant.js +8 -13
  509. package/lib/utils/create.js +9 -16
  510. package/lib/utils/deep-assign.js +8 -13
  511. package/lib/utils/deep-clone.js +8 -13
  512. package/lib/utils/dom.js +8 -13
  513. package/lib/utils/format.d.ts +7 -6
  514. package/lib/utils/format.js +14 -13
  515. package/lib/utils/index.js +17 -21
  516. package/lib/utils/interceptor.js +8 -13
  517. package/lib/utils/mount-component.js +8 -13
  518. package/lib/utils/props.js +8 -13
  519. package/lib/utils/validate.d.ts +2 -1
  520. package/lib/utils/validate.js +8 -13
  521. package/lib/utils/with-install.js +8 -13
  522. package/lib/vant.cjs.js +297 -258
  523. package/lib/vant.cjs.min.js +1 -1
  524. package/lib/vant.es.js +297 -258
  525. package/lib/vant.es.min.js +297 -258
  526. package/lib/vant.js +297 -258
  527. package/lib/vant.min.js +1 -1
  528. package/package.json +3 -3
  529. package/vetur/attributes.json +564 -636
  530. package/vetur/tags.json +178 -178
  531. package/vetur/web-types.json +2595 -1760
package/lib/vant.cjs.js CHANGED
@@ -122,6 +122,12 @@ function addUnit(value) {
122
122
  }
123
123
  function getSizeStyle(originSize) {
124
124
  if (isDef(originSize)) {
125
+ if (Array.isArray(originSize)) {
126
+ return {
127
+ width: addUnit(originSize[0]),
128
+ height: addUnit(originSize[1])
129
+ };
130
+ }
125
131
  const size = addUnit(originSize);
126
132
  return {
127
133
  width: size,
@@ -283,10 +289,8 @@ var stdin_default$1C = {
283
289
  },
284
290
  vanAddressEdit: {
285
291
  area: "\u5730\u533A",
286
- postal: "\u90AE\u653F\u7F16\u7801",
287
292
  areaEmpty: "\u8BF7\u9009\u62E9\u5730\u533A",
288
293
  addressEmpty: "\u8BF7\u586B\u5199\u8BE6\u7EC6\u5730\u5740",
289
- postalEmpty: "\u90AE\u653F\u7F16\u7801\u4E0D\u6B63\u786E",
290
294
  addressDetail: "\u8BE6\u7EC6\u5730\u5740",
291
295
  defaultAddress: "\u8BBE\u4E3A\u9ED8\u8BA4\u6536\u8D27\u5730\u5740"
292
296
  },
@@ -999,7 +1003,7 @@ function useTouch() {
999
1003
  };
1000
1004
  const move = (event) => {
1001
1005
  const touch = event.touches[0];
1002
- deltaX.value = touch.clientX < 0 ? 0 : touch.clientX - startX.value;
1006
+ deltaX.value = (touch.clientX < 0 ? 0 : touch.clientX) - startX.value;
1003
1007
  deltaY.value = touch.clientY - startY.value;
1004
1008
  offsetX.value = Math.abs(deltaX.value);
1005
1009
  offsetY.value = Math.abs(deltaY.value);
@@ -2264,6 +2268,7 @@ var stdin_default$1l = vue.defineComponent({
2264
2268
  useExpose({
2265
2269
  submit,
2266
2270
  validate,
2271
+ getValues,
2267
2272
  scrollToField,
2268
2273
  resetValidation
2269
2274
  });
@@ -2382,6 +2387,7 @@ const fieldSharedProps = {
2382
2387
  placeholder: String,
2383
2388
  autocomplete: String,
2384
2389
  errorMessage: String,
2390
+ enterkeyhint: String,
2385
2391
  clearTrigger: makeStringProp("focus"),
2386
2392
  formatTrigger: makeStringProp("onChange"),
2387
2393
  error: {
@@ -2651,6 +2657,7 @@ var stdin_default$1k = vue.defineComponent({
2651
2657
  autofocus: props.autofocus,
2652
2658
  placeholder: props.placeholder,
2653
2659
  autocomplete: props.autocomplete,
2660
+ enterkeyhint: props.enterkeyhint,
2654
2661
  "aria-labelledby": props.label ? `${id}-label` : void 0,
2655
2662
  onBlur,
2656
2663
  onFocus,
@@ -3229,10 +3236,8 @@ const DEFAULT_DATA = {
3229
3236
  province: "",
3230
3237
  areaCode: "",
3231
3238
  isDefault: false,
3232
- postalCode: "",
3233
3239
  addressDetail: ""
3234
3240
  };
3235
- const isPostal = (value) => /^\d{6}$/.test(value);
3236
3241
  const addressEditProps = {
3237
3242
  areaList: Object,
3238
3243
  isSaving: Boolean,
@@ -3241,7 +3246,6 @@ const addressEditProps = {
3241
3246
  showArea: truthProp,
3242
3247
  showDetail: truthProp,
3243
3248
  showDelete: Boolean,
3244
- showPostal: Boolean,
3245
3249
  disableArea: Boolean,
3246
3250
  searchResult: Array,
3247
3251
  telMaxlength: numericProp,
@@ -3260,10 +3264,6 @@ const addressEditProps = {
3260
3264
  telValidator: {
3261
3265
  type: Function,
3262
3266
  default: isMobile
3263
- },
3264
- postalValidator: {
3265
- type: Function,
3266
- default: isPostal
3267
3267
  }
3268
3268
  };
3269
3269
  var stdin_default$1g = vue.defineComponent({
@@ -3306,8 +3306,7 @@ var stdin_default$1g = vue.defineComponent({
3306
3306
  const rules = vue.computed(() => {
3307
3307
  const {
3308
3308
  validator,
3309
- telValidator,
3310
- postalValidator
3309
+ telValidator
3311
3310
  } = props;
3312
3311
  const makeRule = (name2, emptyMessage) => ({
3313
3312
  validator: (value) => {
@@ -3330,11 +3329,7 @@ var stdin_default$1g = vue.defineComponent({
3330
3329
  message: t$h("telInvalid")
3331
3330
  }],
3332
3331
  areaCode: [makeRule("areaCode", t$h("areaEmpty"))],
3333
- addressDetail: [makeRule("addressDetail", t$h("addressEmpty"))],
3334
- postalCode: [makeRule("addressDetail", t$h("postalEmpty")), {
3335
- validator: postalValidator,
3336
- message: t$h("postalEmpty")
3337
- }]
3332
+ addressDetail: [makeRule("addressDetail", t$h("addressEmpty"))]
3338
3333
  };
3339
3334
  });
3340
3335
  const onSave = () => emit("save", data);
@@ -3459,16 +3454,7 @@ var stdin_default$1g = vue.defineComponent({
3459
3454
  "onFocus": () => onFocus("addressDetail"),
3460
3455
  "onInput": onChangeDetail,
3461
3456
  "onSelectSearch": (event) => emit("selectSearch", event)
3462
- }, null), props.showPostal && vue.withDirectives(vue.createVNode(Field, {
3463
- "modelValue": data.postalCode,
3464
- "onUpdate:modelValue": ($event) => data.postalCode = $event,
3465
- "type": "tel",
3466
- "rules": rules.value.postalCode,
3467
- "label": t$h("postal"),
3468
- "maxlength": "6",
3469
- "placeholder": t$h("postal"),
3470
- "onFocus": () => onFocus("postalCode")
3471
- }, null), [[vue.vShow, !hideBottomFields.value]]), (_a = slots.default) == null ? void 0 : _a.call(slots)]), renderSetDefaultCell(), vue.withDirectives(vue.createVNode("div", {
3457
+ }, null), (_a = slots.default) == null ? void 0 : _a.call(slots)]), renderSetDefaultCell(), vue.withDirectives(vue.createVNode("div", {
3472
3458
  "class": bem$15("buttons")
3473
3459
  }, [vue.createVNode(Button, {
3474
3460
  "block": true,
@@ -4027,6 +4013,7 @@ var stdin_default$19 = vue.defineComponent({
4027
4013
  slots
4028
4014
  }) {
4029
4015
  const style = vue.computed(() => {
4016
+ var _a;
4030
4017
  const {
4031
4018
  item,
4032
4019
  index,
@@ -4058,6 +4045,9 @@ var stdin_default$19 = vue.defineComponent({
4058
4045
  break;
4059
4046
  }
4060
4047
  }
4048
+ if (offset + (((_a = item.date) == null ? void 0 : _a.getDate()) || 1) > 28) {
4049
+ style2.marginBottom = 0;
4050
+ }
4061
4051
  return style2;
4062
4052
  });
4063
4053
  const onClick = () => {
@@ -4565,8 +4555,8 @@ var stdin_default$16 = vue.defineComponent({
4565
4555
  }
4566
4556
  use.raf(() => {
4567
4557
  bodyHeight = Math.floor(use.useRect(bodyRef).height);
4568
- scrollToCurrentDate();
4569
4558
  });
4559
+ scrollToCurrentDate();
4570
4560
  };
4571
4561
  const reset = (date = getInitialDate()) => {
4572
4562
  currentDate.value = date;
@@ -5877,6 +5867,7 @@ var stdin_default$$ = vue.defineComponent({
5877
5867
  }
5878
5868
  };
5879
5869
  const renderNav = () => children.map((item, index) => vue.createVNode(stdin_default$12, vue.mergeProps({
5870
+ "key": item.id,
5880
5871
  "id": `${id}-${index}`,
5881
5872
  "ref": setTitleRefs(index),
5882
5873
  "type": props.type,
@@ -7466,14 +7457,152 @@ var stdin_default$K = vue.defineComponent({
7466
7457
  }
7467
7458
  });
7468
7459
  const CouponCell = withInstall(stdin_default$K);
7469
- const [name$D, bem$C, t$8] = createNamespace("coupon-list");
7470
- const EMPTY_IMAGE = "https://img.yzcdn.cn/vant/coupon-empty.png";
7460
+ const prefix = "van-empty-network-";
7461
+ const renderStop = (color, offset, opacity) => vue.createVNode("stop", {
7462
+ "stop-color": color,
7463
+ "offset": `${offset}%`,
7464
+ "stop-opacity": opacity
7465
+ }, null);
7466
+ const Network = vue.createVNode("svg", {
7467
+ "viewBox": "0 0 160 160"
7468
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
7469
+ "id": `${prefix}1`,
7470
+ "x1": "64%",
7471
+ "y1": "100%",
7472
+ "x2": "64%"
7473
+ }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)]), vue.createVNode("linearGradient", {
7474
+ "id": `${prefix}2`,
7475
+ "x1": "50%",
7476
+ "x2": "50%",
7477
+ "y2": "84%"
7478
+ }, [renderStop("#EBEDF0", 0), renderStop("#DCDEE0", 100, 0)]), vue.createVNode("linearGradient", {
7479
+ "id": `${prefix}3`,
7480
+ "x1": "100%",
7481
+ "x2": "100%",
7482
+ "y2": "100%"
7483
+ }, [renderStop("#EAEDF0", 0), renderStop("#DCDEE0", 100)]), vue.createVNode("radialGradient", {
7484
+ "id": `${prefix}4`,
7485
+ "cx": "50%",
7486
+ "cy": "0%",
7487
+ "fx": "50%",
7488
+ "fy": "0%",
7489
+ "r": "100%",
7490
+ "gradientTransform": "matrix(0 1 -.54 0 .5 -.5)"
7491
+ }, [renderStop("#EBEDF0", 0), renderStop("#FFF", 100, 0)])]), vue.createVNode("g", {
7492
+ "fill": "none"
7493
+ }, [vue.createVNode("g", {
7494
+ "opacity": ".8"
7495
+ }, [vue.createVNode("path", {
7496
+ "d": "M36 131V53H16v20H2v58h34z",
7497
+ "fill": `url(#${prefix}1)`
7498
+ }, null), vue.createVNode("path", {
7499
+ "d": "M123 15h22v14h9v77h-31V15z",
7500
+ "fill": `url(#${prefix}1)`
7501
+ }, null)]), vue.createVNode("path", {
7502
+ "fill": `url(#${prefix}4)`,
7503
+ "d": "M0 139h160v21H0z"
7504
+ }, null), vue.createVNode("path", {
7505
+ "d": "M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z",
7506
+ "fill": `url(#${prefix}2)`
7507
+ }, null), vue.createVNode("g", {
7508
+ "opacity": ".6",
7509
+ "stroke-linecap": "round",
7510
+ "stroke-width": "7"
7511
+ }, [vue.createVNode("path", {
7512
+ "d": "M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13",
7513
+ "stroke": `url(#${prefix}3)`
7514
+ }, null), vue.createVNode("path", {
7515
+ "d": "M53 36a34 34 0 0 0 0 48",
7516
+ "stroke": `url(#${prefix}3)`
7517
+ }, null), vue.createVNode("path", {
7518
+ "d": "M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13",
7519
+ "stroke": `url(#${prefix}3)`
7520
+ }, null), vue.createVNode("path", {
7521
+ "d": "M106 84a34 34 0 0 0 0-48",
7522
+ "stroke": `url(#${prefix}3)`
7523
+ }, null)]), vue.createVNode("g", {
7524
+ "transform": "translate(31 105)"
7525
+ }, [vue.createVNode("rect", {
7526
+ "fill": "#EBEDF0",
7527
+ "width": "98",
7528
+ "height": "34",
7529
+ "rx": "2"
7530
+ }, null), vue.createVNode("rect", {
7531
+ "fill": "#FFF",
7532
+ "x": "9",
7533
+ "y": "8",
7534
+ "width": "80",
7535
+ "height": "18",
7536
+ "rx": "1.1"
7537
+ }, null), vue.createVNode("rect", {
7538
+ "fill": "#EBEDF0",
7539
+ "x": "15",
7540
+ "y": "12",
7541
+ "width": "18",
7542
+ "height": "6",
7543
+ "rx": "1.1"
7544
+ }, null)])])]);
7545
+ const [name$D, bem$C] = createNamespace("empty");
7546
+ const PRESET_IMAGES = ["error", "search", "default"];
7547
+ const emptyProps = {
7548
+ image: makeStringProp("default"),
7549
+ imageSize: [Number, String, Array],
7550
+ description: String
7551
+ };
7552
+ var stdin_default$J = vue.defineComponent({
7553
+ name: name$D,
7554
+ props: emptyProps,
7555
+ setup(props, {
7556
+ slots
7557
+ }) {
7558
+ const renderImage = () => {
7559
+ if (slots.image) {
7560
+ return slots.image();
7561
+ }
7562
+ let {
7563
+ image
7564
+ } = props;
7565
+ if (image === "network") {
7566
+ return Network;
7567
+ }
7568
+ if (PRESET_IMAGES.includes(image)) {
7569
+ image = `https://img.yzcdn.cn/vant/empty-image-${image}.png`;
7570
+ }
7571
+ return vue.createVNode("img", {
7572
+ "src": image
7573
+ }, null);
7574
+ };
7575
+ const renderDescription = () => {
7576
+ const description = slots.description ? slots.description() : props.description;
7577
+ if (description) {
7578
+ return vue.createVNode("p", {
7579
+ "class": bem$C("description")
7580
+ }, [description]);
7581
+ }
7582
+ };
7583
+ const renderBottom = () => {
7584
+ if (slots.default) {
7585
+ return vue.createVNode("div", {
7586
+ "class": bem$C("bottom")
7587
+ }, [slots.default()]);
7588
+ }
7589
+ };
7590
+ return () => vue.createVNode("div", {
7591
+ "class": bem$C()
7592
+ }, [vue.createVNode("div", {
7593
+ "class": bem$C("image"),
7594
+ "style": getSizeStyle(props.imageSize)
7595
+ }, [renderImage()]), renderDescription(), renderBottom()]);
7596
+ }
7597
+ });
7598
+ const Empty = withInstall(stdin_default$J);
7599
+ const [name$C, bem$B, t$8] = createNamespace("coupon-list");
7471
7600
  const couponListProps = {
7472
7601
  code: makeStringProp(""),
7473
7602
  coupons: makeArrayProp(),
7474
7603
  currency: makeStringProp("\xA5"),
7475
7604
  showCount: truthProp,
7476
- emptyImage: makeStringProp(EMPTY_IMAGE),
7605
+ emptyImage: String,
7477
7606
  chosenCoupon: makeNumberProp(-1),
7478
7607
  enabledTitle: String,
7479
7608
  disabledTitle: String,
@@ -7488,8 +7617,8 @@ const couponListProps = {
7488
7617
  exchangeButtonLoading: Boolean,
7489
7618
  exchangeButtonDisabled: Boolean
7490
7619
  };
7491
- var stdin_default$J = vue.defineComponent({
7492
- name: name$D,
7620
+ var stdin_default$I = vue.defineComponent({
7621
+ name: name$C,
7493
7622
  props: couponListProps,
7494
7623
  emits: ["change", "exchange", "update:code"],
7495
7624
  setup(props, {
@@ -7521,28 +7650,30 @@ var stdin_default$J = vue.defineComponent({
7521
7650
  return (_a = couponRefs.value[index]) == null ? void 0 : _a.scrollIntoView();
7522
7651
  });
7523
7652
  };
7524
- const renderEmpty = () => vue.createVNode("div", {
7525
- "class": bem$C("empty")
7526
- }, [vue.createVNode("img", {
7527
- "src": props.emptyImage
7528
- }, null), vue.createVNode("p", null, [t$8("noCoupon")])]);
7653
+ const renderEmpty = () => vue.createVNode(Empty, {
7654
+ "image": props.emptyImage
7655
+ }, {
7656
+ default: () => [vue.createVNode("p", {
7657
+ "class": bem$B("empty-tip")
7658
+ }, [t$8("noCoupon")])]
7659
+ });
7529
7660
  const renderExchangeBar = () => {
7530
7661
  if (props.showExchangeBar) {
7531
7662
  return vue.createVNode("div", {
7532
7663
  "ref": barRef,
7533
- "class": bem$C("exchange-bar")
7664
+ "class": bem$B("exchange-bar")
7534
7665
  }, [vue.createVNode(Field, {
7535
7666
  "modelValue": currentCode.value,
7536
7667
  "onUpdate:modelValue": ($event) => currentCode.value = $event,
7537
7668
  "clearable": true,
7538
7669
  "border": false,
7539
- "class": bem$C("field"),
7670
+ "class": bem$B("field"),
7540
7671
  "placeholder": props.inputPlaceholder || t$8("placeholder"),
7541
7672
  "maxlength": "20"
7542
7673
  }, null), vue.createVNode(Button, {
7543
7674
  "plain": true,
7544
7675
  "type": "primary",
7545
- "class": bem$C("exchange"),
7676
+ "class": bem$B("exchange"),
7546
7677
  "text": props.exchangeButtonText || t$8("exchange"),
7547
7678
  "loading": props.exchangeButtonLoading,
7548
7679
  "disabled": buttonDisabled.value,
@@ -7562,7 +7693,7 @@ var stdin_default$J = vue.defineComponent({
7562
7693
  default: () => {
7563
7694
  var _a;
7564
7695
  return [vue.createVNode("div", {
7565
- "class": bem$C("list", {
7696
+ "class": bem$B("list", {
7566
7697
  "with-bottom": props.showCloseButton
7567
7698
  }),
7568
7699
  "style": {
@@ -7591,7 +7722,7 @@ var stdin_default$J = vue.defineComponent({
7591
7722
  default: () => {
7592
7723
  var _a;
7593
7724
  return [vue.createVNode("div", {
7594
- "class": bem$C("list", {
7725
+ "class": bem$B("list", {
7595
7726
  "with-bottom": props.showCloseButton
7596
7727
  }),
7597
7728
  "style": {
@@ -7618,28 +7749,28 @@ var stdin_default$J = vue.defineComponent({
7618
7749
  });
7619
7750
  return () => vue.createVNode("div", {
7620
7751
  "ref": root,
7621
- "class": bem$C()
7752
+ "class": bem$B()
7622
7753
  }, [renderExchangeBar(), vue.createVNode(Tabs, {
7623
7754
  "active": activeTab.value,
7624
7755
  "onUpdate:active": ($event) => activeTab.value = $event,
7625
- "class": bem$C("tab")
7756
+ "class": bem$B("tab")
7626
7757
  }, {
7627
7758
  default: () => [renderCouponTab(), renderDisabledTab()]
7628
7759
  }), vue.createVNode("div", {
7629
- "class": bem$C("bottom")
7760
+ "class": bem$B("bottom")
7630
7761
  }, [vue.withDirectives(vue.createVNode(Button, {
7631
7762
  "round": true,
7632
7763
  "block": true,
7633
7764
  "type": "primary",
7634
- "class": bem$C("close"),
7765
+ "class": bem$B("close"),
7635
7766
  "text": props.closeButtonText || t$8("close"),
7636
7767
  "onClick": () => emit("change", -1)
7637
7768
  }, null), [[vue.vShow, props.showCloseButton]])])]);
7638
7769
  }
7639
7770
  });
7640
- const CouponList = withInstall(stdin_default$J);
7771
+ const CouponList = withInstall(stdin_default$I);
7641
7772
  const currentYear = new Date().getFullYear();
7642
- const [name$C] = createNamespace("date-picker");
7773
+ const [name$B] = createNamespace("date-picker");
7643
7774
  const datePickerProps = extend({}, sharedProps, {
7644
7775
  columnsType: {
7645
7776
  type: Array,
@@ -7656,8 +7787,8 @@ const datePickerProps = extend({}, sharedProps, {
7656
7787
  validator: isDate
7657
7788
  }
7658
7789
  });
7659
- var stdin_default$I = vue.defineComponent({
7660
- name: name$C,
7790
+ var stdin_default$H = vue.defineComponent({
7791
+ name: name$B,
7661
7792
  props: datePickerProps,
7662
7793
  emits: ["confirm", "cancel", "change", "update:modelValue"],
7663
7794
  setup(props, {
@@ -7741,8 +7872,8 @@ var stdin_default$I = vue.defineComponent({
7741
7872
  }, pick(props, pickerInheritKeys)), slots);
7742
7873
  }
7743
7874
  });
7744
- const DatePicker = withInstall(stdin_default$I);
7745
- const [name$B, bem$B, t$7] = createNamespace("dialog");
7875
+ const DatePicker = withInstall(stdin_default$H);
7876
+ const [name$A, bem$A, t$7] = createNamespace("dialog");
7746
7877
  const dialogProps = extend({}, popupSharedProps, {
7747
7878
  title: String,
7748
7879
  theme: String,
@@ -7763,8 +7894,8 @@ const dialogProps = extend({}, popupSharedProps, {
7763
7894
  closeOnClickOverlay: Boolean
7764
7895
  });
7765
7896
  const popupInheritKeys$1 = [...popupSharedPropKeys, "transition", "closeOnPopstate"];
7766
- var stdin_default$H = vue.defineComponent({
7767
- name: name$B,
7897
+ var stdin_default$G = vue.defineComponent({
7898
+ name: name$A,
7768
7899
  props: dialogProps,
7769
7900
  emits: ["confirm", "cancel", "keydown", "update:show"],
7770
7901
  setup(props, {
@@ -7821,7 +7952,7 @@ var stdin_default$H = vue.defineComponent({
7821
7952
  const title = slots.title ? slots.title() : props.title;
7822
7953
  if (title) {
7823
7954
  return vue.createVNode("div", {
7824
- "class": bem$B("header", {
7955
+ "class": bem$A("header", {
7825
7956
  isolated: !props.message && !slots.default
7826
7957
  })
7827
7958
  }, [title]);
@@ -7833,7 +7964,7 @@ var stdin_default$H = vue.defineComponent({
7833
7964
  allowHtml,
7834
7965
  messageAlign
7835
7966
  } = props;
7836
- const classNames = bem$B("message", {
7967
+ const classNames = bem$A("message", {
7837
7968
  "has-title": hasTitle,
7838
7969
  [messageAlign]: messageAlign
7839
7970
  });
@@ -7851,7 +7982,7 @@ var stdin_default$H = vue.defineComponent({
7851
7982
  const renderContent = () => {
7852
7983
  if (slots.default) {
7853
7984
  return vue.createVNode("div", {
7854
- "class": bem$B("content")
7985
+ "class": bem$A("content")
7855
7986
  }, [slots.default()]);
7856
7987
  }
7857
7988
  const {
@@ -7863,18 +7994,18 @@ var stdin_default$H = vue.defineComponent({
7863
7994
  const hasTitle = !!(title || slots.title);
7864
7995
  return vue.createVNode("div", {
7865
7996
  "key": allowHtml ? 1 : 0,
7866
- "class": bem$B("content", {
7997
+ "class": bem$A("content", {
7867
7998
  isolated: !hasTitle
7868
7999
  })
7869
8000
  }, [renderMessage(hasTitle)]);
7870
8001
  }
7871
8002
  };
7872
8003
  const renderButtons = () => vue.createVNode("div", {
7873
- "class": [BORDER_TOP, bem$B("footer")]
8004
+ "class": [BORDER_TOP, bem$A("footer")]
7874
8005
  }, [props.showCancelButton && vue.createVNode(Button, {
7875
8006
  "size": "large",
7876
8007
  "text": props.cancelButtonText || t$7("cancel"),
7877
- "class": bem$B("cancel"),
8008
+ "class": bem$A("cancel"),
7878
8009
  "style": {
7879
8010
  color: props.cancelButtonColor
7880
8011
  },
@@ -7883,7 +8014,7 @@ var stdin_default$H = vue.defineComponent({
7883
8014
  }, null), props.showConfirmButton && vue.createVNode(Button, {
7884
8015
  "size": "large",
7885
8016
  "text": props.confirmButtonText || t$7("confirm"),
7886
- "class": [bem$B("confirm"), {
8017
+ "class": [bem$A("confirm"), {
7887
8018
  [BORDER_LEFT]: props.showCancelButton
7888
8019
  }],
7889
8020
  "style": {
@@ -7893,19 +8024,19 @@ var stdin_default$H = vue.defineComponent({
7893
8024
  "onClick": onConfirm
7894
8025
  }, null)]);
7895
8026
  const renderRoundButtons = () => vue.createVNode(ActionBar, {
7896
- "class": bem$B("footer")
8027
+ "class": bem$A("footer")
7897
8028
  }, {
7898
8029
  default: () => [props.showCancelButton && vue.createVNode(ActionBarButton, {
7899
8030
  "type": "warning",
7900
8031
  "text": props.cancelButtonText || t$7("cancel"),
7901
- "class": bem$B("cancel"),
8032
+ "class": bem$A("cancel"),
7902
8033
  "color": props.cancelButtonColor,
7903
8034
  "loading": loading.cancel,
7904
8035
  "onClick": onCancel
7905
8036
  }, null), props.showConfirmButton && vue.createVNode(ActionBarButton, {
7906
8037
  "type": "danger",
7907
8038
  "text": props.confirmButtonText || t$7("confirm"),
7908
- "class": bem$B("confirm"),
8039
+ "class": bem$A("confirm"),
7909
8040
  "color": props.confirmButtonColor,
7910
8041
  "loading": loading.confirm,
7911
8042
  "onClick": onConfirm
@@ -7928,7 +8059,7 @@ var stdin_default$H = vue.defineComponent({
7928
8059
  return vue.createVNode(Popup, vue.mergeProps({
7929
8060
  "ref": root,
7930
8061
  "role": "dialog",
7931
- "class": [bem$B([theme]), className],
8062
+ "class": [bem$A([theme]), className],
7932
8063
  "style": {
7933
8064
  width: addUnit(width)
7934
8065
  },
@@ -7950,7 +8081,7 @@ function initInstance$2() {
7950
8081
  state,
7951
8082
  toggle
7952
8083
  } = usePopupState();
7953
- return () => vue.createVNode(stdin_default$H, vue.mergeProps(state, {
8084
+ return () => vue.createVNode(stdin_default$G, vue.mergeProps(state, {
7954
8085
  "onUpdate:show": toggle
7955
8086
  }), null);
7956
8087
  }
@@ -8015,19 +8146,19 @@ Dialog.setDefaultOptions = (options) => {
8015
8146
  Dialog.resetDefaultOptions = () => {
8016
8147
  Dialog.currentOptions = extend({}, Dialog.defaultOptions);
8017
8148
  };
8018
- Dialog.Component = withInstall(stdin_default$H);
8149
+ Dialog.Component = withInstall(stdin_default$G);
8019
8150
  Dialog.install = (app) => {
8020
8151
  app.use(Dialog.Component);
8021
8152
  app.config.globalProperties.$dialog = Dialog;
8022
8153
  };
8023
- const [name$A, bem$A] = createNamespace("divider");
8154
+ const [name$z, bem$z] = createNamespace("divider");
8024
8155
  const dividerProps = {
8025
8156
  dashed: Boolean,
8026
8157
  hairline: truthProp,
8027
8158
  contentPosition: makeStringProp("center")
8028
8159
  };
8029
- var stdin_default$G = vue.defineComponent({
8030
- name: name$A,
8160
+ var stdin_default$F = vue.defineComponent({
8161
+ name: name$z,
8031
8162
  props: dividerProps,
8032
8163
  setup(props, {
8033
8164
  slots
@@ -8036,7 +8167,7 @@ var stdin_default$G = vue.defineComponent({
8036
8167
  var _a;
8037
8168
  return vue.createVNode("div", {
8038
8169
  "role": "separator",
8039
- "class": bem$A({
8170
+ "class": bem$z({
8040
8171
  dashed: props.dashed,
8041
8172
  hairline: props.hairline,
8042
8173
  [`content-${props.contentPosition}`]: !!slots.default
@@ -8045,8 +8176,8 @@ var stdin_default$G = vue.defineComponent({
8045
8176
  };
8046
8177
  }
8047
8178
  });
8048
- const Divider = withInstall(stdin_default$G);
8049
- const [name$z, bem$z] = createNamespace("dropdown-menu");
8179
+ const Divider = withInstall(stdin_default$F);
8180
+ const [name$y, bem$y] = createNamespace("dropdown-menu");
8050
8181
  const dropdownMenuProps = {
8051
8182
  overlay: truthProp,
8052
8183
  zIndex: numericProp,
@@ -8056,9 +8187,9 @@ const dropdownMenuProps = {
8056
8187
  closeOnClickOutside: truthProp,
8057
8188
  closeOnClickOverlay: truthProp
8058
8189
  };
8059
- const DROPDOWN_KEY = Symbol(name$z);
8060
- var stdin_default$F = vue.defineComponent({
8061
- name: name$z,
8190
+ const DROPDOWN_KEY = Symbol(name$y);
8191
+ var stdin_default$E = vue.defineComponent({
8192
+ name: name$y,
8062
8193
  props: dropdownMenuProps,
8063
8194
  setup(props, {
8064
8195
  slots
@@ -8126,7 +8257,7 @@ var stdin_default$F = vue.defineComponent({
8126
8257
  "id": `${id}-${index}`,
8127
8258
  "role": "button",
8128
8259
  "tabindex": disabled ? void 0 : 0,
8129
- "class": [bem$z("item", {
8260
+ "class": [bem$y("item", {
8130
8261
  disabled
8131
8262
  }), {
8132
8263
  [HAPTICS_FEEDBACK]: !disabled
@@ -8137,7 +8268,7 @@ var stdin_default$F = vue.defineComponent({
8137
8268
  }
8138
8269
  }
8139
8270
  }, [vue.createVNode("span", {
8140
- "class": [bem$z("title", {
8271
+ "class": [bem$y("title", {
8141
8272
  down: showPopup === (props.direction === "down"),
8142
8273
  active: showPopup
8143
8274
  }), titleClass],
@@ -8161,18 +8292,18 @@ var stdin_default$F = vue.defineComponent({
8161
8292
  var _a;
8162
8293
  return vue.createVNode("div", {
8163
8294
  "ref": root,
8164
- "class": bem$z()
8295
+ "class": bem$y()
8165
8296
  }, [vue.createVNode("div", {
8166
8297
  "ref": barRef,
8167
8298
  "style": barStyle.value,
8168
- "class": bem$z("bar", {
8299
+ "class": bem$y("bar", {
8169
8300
  opened: opened.value
8170
8301
  })
8171
8302
  }, [children.map(renderTitle)]), (_a = slots.default) == null ? void 0 : _a.call(slots)]);
8172
8303
  };
8173
8304
  }
8174
8305
  });
8175
- const [name$y, bem$y] = createNamespace("dropdown-item");
8306
+ const [name$x, bem$x] = createNamespace("dropdown-item");
8176
8307
  const dropdownItemProps = {
8177
8308
  title: String,
8178
8309
  options: makeArrayProp(),
@@ -8182,8 +8313,8 @@ const dropdownItemProps = {
8182
8313
  modelValue: unknownProp,
8183
8314
  titleClass: unknownProp
8184
8315
  };
8185
- var stdin_default$E = vue.defineComponent({
8186
- name: name$y,
8316
+ var stdin_default$D = vue.defineComponent({
8317
+ name: name$x,
8187
8318
  props: dropdownItemProps,
8188
8319
  emits: ["open", "opened", "close", "closed", "change", "update:modelValue"],
8189
8320
  setup(props, {
@@ -8250,7 +8381,7 @@ var stdin_default$E = vue.defineComponent({
8250
8381
  const renderIcon = () => {
8251
8382
  if (active) {
8252
8383
  return vue.createVNode(Icon, {
8253
- "class": bem$y("icon"),
8384
+ "class": bem$x("icon"),
8254
8385
  "color": activeColor,
8255
8386
  "name": "success"
8256
8387
  }, null);
@@ -8261,7 +8392,7 @@ var stdin_default$E = vue.defineComponent({
8261
8392
  "key": option.value,
8262
8393
  "icon": option.icon,
8263
8394
  "title": option.text,
8264
- "class": bem$y("option", {
8395
+ "class": bem$x("option", {
8265
8396
  active
8266
8397
  }),
8267
8398
  "style": {
@@ -8293,13 +8424,13 @@ var stdin_default$E = vue.defineComponent({
8293
8424
  }
8294
8425
  return vue.withDirectives(vue.createVNode("div", {
8295
8426
  "style": style,
8296
- "class": bem$y([direction]),
8427
+ "class": bem$x([direction]),
8297
8428
  "onClick": onClickWrapper
8298
8429
  }, [vue.createVNode(Popup, {
8299
8430
  "show": state.showPopup,
8300
8431
  "onUpdate:show": ($event) => state.showPopup = $event,
8301
8432
  "role": "menu",
8302
- "class": bem$y("content"),
8433
+ "class": bem$x("content"),
8303
8434
  "overlay": overlay,
8304
8435
  "position": direction === "down" ? "top" : "bottom",
8305
8436
  "duration": state.transition ? duration : 0,
@@ -8337,147 +8468,8 @@ var stdin_default$E = vue.defineComponent({
8337
8468
  };
8338
8469
  }
8339
8470
  });
8340
- const DropdownItem = withInstall(stdin_default$E);
8341
- const DropdownMenu = withInstall(stdin_default$F);
8342
- const prefix = "van-empty-network-";
8343
- const renderStop = (color, offset, opacity) => vue.createVNode("stop", {
8344
- "stop-color": color,
8345
- "offset": `${offset}%`,
8346
- "stop-opacity": opacity
8347
- }, null);
8348
- const Network = vue.createVNode("svg", {
8349
- "viewBox": "0 0 160 160"
8350
- }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8351
- "id": `${prefix}1`,
8352
- "x1": "64%",
8353
- "y1": "100%",
8354
- "x2": "64%"
8355
- }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)]), vue.createVNode("linearGradient", {
8356
- "id": `${prefix}2`,
8357
- "x1": "50%",
8358
- "x2": "50%",
8359
- "y2": "84%"
8360
- }, [renderStop("#EBEDF0", 0), renderStop("#DCDEE0", 100, 0)]), vue.createVNode("linearGradient", {
8361
- "id": `${prefix}3`,
8362
- "x1": "100%",
8363
- "x2": "100%",
8364
- "y2": "100%"
8365
- }, [renderStop("#EAEDF0", 0), renderStop("#DCDEE0", 100)]), vue.createVNode("radialGradient", {
8366
- "id": `${prefix}4`,
8367
- "cx": "50%",
8368
- "cy": "0%",
8369
- "fx": "50%",
8370
- "fy": "0%",
8371
- "r": "100%",
8372
- "gradientTransform": "matrix(0 1 -.54 0 .5 -.5)"
8373
- }, [renderStop("#EBEDF0", 0), renderStop("#FFF", 100, 0)])]), vue.createVNode("g", {
8374
- "fill": "none"
8375
- }, [vue.createVNode("g", {
8376
- "opacity": ".8"
8377
- }, [vue.createVNode("path", {
8378
- "d": "M36 131V53H16v20H2v58h34z",
8379
- "fill": `url(#${prefix}1)`
8380
- }, null), vue.createVNode("path", {
8381
- "d": "M123 15h22v14h9v77h-31V15z",
8382
- "fill": `url(#${prefix}1)`
8383
- }, null)]), vue.createVNode("path", {
8384
- "fill": `url(#${prefix}4)`,
8385
- "d": "M0 139h160v21H0z"
8386
- }, null), vue.createVNode("path", {
8387
- "d": "M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z",
8388
- "fill": `url(#${prefix}2)`
8389
- }, null), vue.createVNode("g", {
8390
- "opacity": ".6",
8391
- "stroke-linecap": "round",
8392
- "stroke-width": "7"
8393
- }, [vue.createVNode("path", {
8394
- "d": "M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13",
8395
- "stroke": `url(#${prefix}3)`
8396
- }, null), vue.createVNode("path", {
8397
- "d": "M53 36a34 34 0 0 0 0 48",
8398
- "stroke": `url(#${prefix}3)`
8399
- }, null), vue.createVNode("path", {
8400
- "d": "M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13",
8401
- "stroke": `url(#${prefix}3)`
8402
- }, null), vue.createVNode("path", {
8403
- "d": "M106 84a34 34 0 0 0 0-48",
8404
- "stroke": `url(#${prefix}3)`
8405
- }, null)]), vue.createVNode("g", {
8406
- "transform": "translate(31 105)"
8407
- }, [vue.createVNode("rect", {
8408
- "fill": "#EBEDF0",
8409
- "width": "98",
8410
- "height": "34",
8411
- "rx": "2"
8412
- }, null), vue.createVNode("rect", {
8413
- "fill": "#FFF",
8414
- "x": "9",
8415
- "y": "8",
8416
- "width": "80",
8417
- "height": "18",
8418
- "rx": "1.1"
8419
- }, null), vue.createVNode("rect", {
8420
- "fill": "#EBEDF0",
8421
- "x": "15",
8422
- "y": "12",
8423
- "width": "18",
8424
- "height": "6",
8425
- "rx": "1.1"
8426
- }, null)])])]);
8427
- const [name$x, bem$x] = createNamespace("empty");
8428
- const PRESET_IMAGES = ["error", "search", "default"];
8429
- const emptyProps = {
8430
- image: makeStringProp("default"),
8431
- imageSize: numericProp,
8432
- description: String
8433
- };
8434
- var stdin_default$D = vue.defineComponent({
8435
- name: name$x,
8436
- props: emptyProps,
8437
- setup(props, {
8438
- slots
8439
- }) {
8440
- const renderImage = () => {
8441
- if (slots.image) {
8442
- return slots.image();
8443
- }
8444
- let {
8445
- image
8446
- } = props;
8447
- if (image === "network") {
8448
- return Network;
8449
- }
8450
- if (PRESET_IMAGES.includes(image)) {
8451
- image = `https://img.yzcdn.cn/vant/empty-image-${image}.png`;
8452
- }
8453
- return vue.createVNode("img", {
8454
- "src": image
8455
- }, null);
8456
- };
8457
- const renderDescription = () => {
8458
- const description = slots.description ? slots.description() : props.description;
8459
- if (description) {
8460
- return vue.createVNode("p", {
8461
- "class": bem$x("description")
8462
- }, [description]);
8463
- }
8464
- };
8465
- const renderBottom = () => {
8466
- if (slots.default) {
8467
- return vue.createVNode("div", {
8468
- "class": bem$x("bottom")
8469
- }, [slots.default()]);
8470
- }
8471
- };
8472
- return () => vue.createVNode("div", {
8473
- "class": bem$x()
8474
- }, [vue.createVNode("div", {
8475
- "class": bem$x("image"),
8476
- "style": getSizeStyle(props.imageSize)
8477
- }, [renderImage()]), renderDescription(), renderBottom()]);
8478
- }
8479
- });
8480
- const Empty = withInstall(stdin_default$D);
8471
+ const DropdownItem = withInstall(stdin_default$D);
8472
+ const DropdownMenu = withInstall(stdin_default$E);
8481
8473
  const [name$w, bem$w] = createNamespace("grid");
8482
8474
  const gridProps = {
8483
8475
  square: Boolean,
@@ -9971,6 +9963,15 @@ const numberKeyboardProps = {
9971
9963
  default: ""
9972
9964
  }
9973
9965
  };
9966
+ function shuffle(array) {
9967
+ for (let i = array.length - 1; i > 0; i--) {
9968
+ const j = Math.floor(Math.random() * (i + 1));
9969
+ const temp = array[i];
9970
+ array[i] = array[j];
9971
+ array[j] = temp;
9972
+ }
9973
+ return array;
9974
+ }
9974
9975
  var stdin_default$r = vue.defineComponent({
9975
9976
  name: name$m,
9976
9977
  props: numberKeyboardProps,
@@ -9985,7 +9986,7 @@ var stdin_default$r = vue.defineComponent({
9985
9986
  text: i + 1
9986
9987
  }));
9987
9988
  if (props.randomKeyOrder) {
9988
- keys2.sort(() => Math.random() > 0.5 ? 1 : -1);
9989
+ shuffle(keys2);
9989
9990
  }
9990
9991
  return keys2;
9991
9992
  };
@@ -10840,33 +10841,53 @@ var stdin_default$l = vue.defineComponent({
10840
10841
  }) {
10841
10842
  const touch = useTouch();
10842
10843
  const [itemRefs, setItemRefs] = useRefs();
10844
+ const groupRef = vue.ref();
10843
10845
  const untouchable = () => props.readonly || props.disabled || !props.touchable;
10844
10846
  const list = vue.computed(() => Array(+props.count).fill("").map((_, i) => getRateStatus(props.modelValue, i + 1, props.allowHalf, props.readonly)));
10845
10847
  let ranges;
10848
+ let groupRefRect;
10849
+ let minRectTop = Number.MAX_SAFE_INTEGER;
10850
+ let maxRectTop = Number.MIN_SAFE_INTEGER;
10846
10851
  const updateRanges = () => {
10852
+ groupRefRect = use.useRect(groupRef);
10847
10853
  const rects = itemRefs.value.map(use.useRect);
10848
10854
  ranges = [];
10849
10855
  rects.forEach((rect, index) => {
10856
+ minRectTop = Math.min(rect.top, minRectTop);
10857
+ maxRectTop = Math.max(rect.top, maxRectTop);
10850
10858
  if (props.allowHalf) {
10851
10859
  ranges.push({
10852
10860
  score: index + 0.5,
10853
- left: rect.left
10861
+ left: rect.left,
10862
+ top: rect.top,
10863
+ height: rect.height
10854
10864
  }, {
10855
10865
  score: index + 1,
10856
- left: rect.left + rect.width / 2
10866
+ left: rect.left + rect.width / 2,
10867
+ top: rect.top,
10868
+ height: rect.height
10857
10869
  });
10858
10870
  } else {
10859
10871
  ranges.push({
10860
10872
  score: index + 1,
10861
- left: rect.left
10873
+ left: rect.left,
10874
+ top: rect.top,
10875
+ height: rect.height
10862
10876
  });
10863
10877
  }
10864
10878
  });
10865
10879
  };
10866
- const getScoreByPosition = (x) => {
10880
+ const getScoreByPosition = (x, y) => {
10867
10881
  for (let i = ranges.length - 1; i > 0; i--) {
10868
- if (x > ranges[i].left) {
10869
- return ranges[i].score;
10882
+ if (y >= groupRefRect.top && y <= groupRefRect.bottom) {
10883
+ if (x > ranges[i].left && y >= ranges[i].top && y <= ranges[i].top + ranges[i].height) {
10884
+ return ranges[i].score;
10885
+ }
10886
+ } else {
10887
+ const curTop = y < groupRefRect.top ? minRectTop : maxRectTop;
10888
+ if (x > ranges[i].left && ranges[i].top === curTop) {
10889
+ return ranges[i].score;
10890
+ }
10870
10891
  }
10871
10892
  }
10872
10893
  return props.allowHalf ? 0.5 : 1;
@@ -10891,10 +10912,11 @@ var stdin_default$l = vue.defineComponent({
10891
10912
  touch.move(event);
10892
10913
  if (touch.isHorizontal()) {
10893
10914
  const {
10894
- clientX
10915
+ clientX,
10916
+ clientY
10895
10917
  } = event.touches[0];
10896
10918
  preventDefault(event);
10897
- select(getScoreByPosition(clientX));
10919
+ select(getScoreByPosition(clientX, clientY));
10898
10920
  }
10899
10921
  };
10900
10922
  const renderStar = (item, index) => {
@@ -10923,7 +10945,7 @@ var stdin_default$l = vue.defineComponent({
10923
10945
  }
10924
10946
  const onClickItem = (event) => {
10925
10947
  updateRanges();
10926
- select(allowHalf ? getScoreByPosition(event.clientX) : score);
10948
+ select(allowHalf ? getScoreByPosition(event.clientX, event.clientY) : score);
10927
10949
  };
10928
10950
  return vue.createVNode("div", {
10929
10951
  "key": index,
@@ -10961,6 +10983,7 @@ var stdin_default$l = vue.defineComponent({
10961
10983
  };
10962
10984
  use.useCustomFieldValue(() => props.modelValue);
10963
10985
  return () => vue.createVNode("div", {
10986
+ "ref": groupRef,
10964
10987
  "role": "radiogroup",
10965
10988
  "class": bem$f({
10966
10989
  readonly: props.readonly,
@@ -11085,14 +11108,17 @@ var stdin_default$k = vue.defineComponent({
11085
11108
  }
11086
11109
  });
11087
11110
  const Search = withInstall(stdin_default$k);
11088
- const PRESET_ICONS = ["qq", "link", "weibo", "wechat", "poster", "qrcode", "weapp-qrcode", "wechat-moments"];
11089
11111
  const popupInheritKeys = [...popupSharedPropKeys, "round", "closeOnPopstate", "safeAreaInsetBottom"];
11090
- function getIconURL(icon) {
11091
- if (PRESET_ICONS.includes(icon)) {
11092
- return `https://img.yzcdn.cn/vant/share-sheet-${icon}.png`;
11093
- }
11094
- return icon;
11095
- }
11112
+ const iconMap = {
11113
+ qq: "qq",
11114
+ link: "link-o",
11115
+ weibo: "weibo",
11116
+ qrcode: "qr",
11117
+ poster: "photo-o",
11118
+ wechat: "wechat",
11119
+ "weapp-qrcode": "miniprogram-o",
11120
+ "wechat-moments": "wechat-moments"
11121
+ };
11096
11122
  const [name$e, bem$d, t$2] = createNamespace("share-sheet");
11097
11123
  const shareSheetProps = extend({}, popupSharedProps, {
11098
11124
  title: String,
@@ -11130,6 +11156,19 @@ var stdin_default$j = vue.defineComponent({
11130
11156
  }, [description])]);
11131
11157
  }
11132
11158
  };
11159
+ const renderIcon = (icon) => {
11160
+ if (iconMap[icon]) {
11161
+ return vue.createVNode("div", {
11162
+ "class": bem$d("icon", [icon])
11163
+ }, [vue.createVNode(Icon, {
11164
+ "name": iconMap[icon] || icon
11165
+ }, null)]);
11166
+ }
11167
+ return vue.createVNode("img", {
11168
+ "src": icon,
11169
+ "class": bem$d("image-icon")
11170
+ }, null);
11171
+ };
11133
11172
  const renderOption = (option, index) => {
11134
11173
  const {
11135
11174
  name: name2,
@@ -11142,10 +11181,7 @@ var stdin_default$j = vue.defineComponent({
11142
11181
  "tabindex": 0,
11143
11182
  "class": [bem$d("option"), className, HAPTICS_FEEDBACK],
11144
11183
  "onClick": () => onSelect(option, index)
11145
- }, [vue.createVNode("img", {
11146
- "src": getIconURL(icon),
11147
- "class": bem$d("icon")
11148
- }, null), name2 && vue.createVNode("span", {
11184
+ }, [renderIcon(icon), name2 && vue.createVNode("span", {
11149
11185
  "class": bem$d("name")
11150
11186
  }, [name2]), description && vue.createVNode("span", {
11151
11187
  "class": bem$d("option-description")
@@ -12666,7 +12702,7 @@ var stdin_default$5 = vue.defineComponent({
12666
12702
  imageFit: String,
12667
12703
  lazyLoad: Boolean,
12668
12704
  deletable: Boolean,
12669
- previewSize: numericProp,
12705
+ previewSize: [Number, String, Array],
12670
12706
  beforeDelete: Function
12671
12707
  },
12672
12708
  emits: ["delete", "preview"],
@@ -12740,16 +12776,19 @@ var stdin_default$5 = vue.defineComponent({
12740
12776
  };
12741
12777
  const renderPreview = () => {
12742
12778
  const {
12743
- item
12779
+ item,
12780
+ lazyLoad,
12781
+ imageFit,
12782
+ previewSize
12744
12783
  } = props;
12745
12784
  if (isImageFile(item)) {
12746
12785
  return vue.createVNode(Image$1, {
12747
- "fit": props.imageFit,
12786
+ "fit": imageFit,
12748
12787
  "src": item.content || item.url,
12749
12788
  "class": bem("preview-image"),
12750
- "width": props.previewSize,
12751
- "height": props.previewSize,
12752
- "lazyLoad": props.lazyLoad,
12789
+ "width": Array.isArray(previewSize) ? previewSize[0] : previewSize,
12790
+ "height": Array.isArray(previewSize) ? previewSize[1] : previewSize,
12791
+ "lazyLoad": lazyLoad,
12753
12792
  "onClick": onPreview
12754
12793
  }, {
12755
12794
  default: renderCover
@@ -12789,7 +12828,7 @@ const uploaderProps = {
12789
12828
  modelValue: makeArrayProp(),
12790
12829
  beforeRead: Function,
12791
12830
  beforeDelete: Function,
12792
- previewSize: numericProp,
12831
+ previewSize: [Number, String, Array],
12793
12832
  previewImage: truthProp,
12794
12833
  previewOptions: Object,
12795
12834
  previewFullImage: truthProp,
@@ -13856,7 +13895,7 @@ const Lazyload = {
13856
13895
  });
13857
13896
  }
13858
13897
  };
13859
- const version = "4.0.0-alpha.1";
13898
+ const version = "4.0.0-alpha.2";
13860
13899
  function install(app) {
13861
13900
  const components = [
13862
13901
  ActionBar,