vant 3.4.6 → 3.4.9

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 (475) hide show
  1. package/README.md +141 -0
  2. package/changelog.generated.md +44 -65
  3. package/es/address-list/AddressListItem.d.ts +3 -2
  4. package/es/address-list/AddressListItem.js +1 -1
  5. package/es/badge/Badge.d.ts +4 -3
  6. package/es/badge/index.d.ts +2 -2
  7. package/es/calendar/Calendar.js +1 -1
  8. package/es/calendar/CalendarDay.js +4 -0
  9. package/es/calendar/index.css +1 -1
  10. package/es/calendar/index.less +2 -0
  11. package/es/calendar/types.d.ts +2 -1
  12. package/es/calendar/var.less +1 -0
  13. package/es/cascader/types.d.ts +2 -1
  14. package/es/checkbox/Checker.d.ts +2 -1
  15. package/es/collapse/Collapse.d.ts +7 -6
  16. package/es/collapse/index.d.ts +3 -3
  17. package/es/composables/use-touch.js +1 -1
  18. package/es/config-provider/ConfigProvider.d.ts +4 -3
  19. package/es/config-provider/index.d.ts +2 -2
  20. package/es/contact-list/ContactList.d.ts +3 -2
  21. package/es/coupon/Coupon.d.ts +2 -1
  22. package/es/coupon-list/CouponList.d.ts +3 -13
  23. package/es/coupon-list/CouponList.js +9 -7
  24. package/es/coupon-list/index.css +1 -1
  25. package/es/coupon-list/index.d.ts +2 -9
  26. package/es/coupon-list/index.less +4 -16
  27. package/es/coupon-list/style/index.js +1 -0
  28. package/es/coupon-list/style/less.js +1 -0
  29. package/es/coupon-list/var.less +0 -1
  30. package/es/datetime-picker/DatePicker.js +2 -2
  31. package/es/dialog/index.css +1 -1
  32. package/es/dialog/types.d.ts +2 -2
  33. package/es/dropdown-item/types.d.ts +2 -1
  34. package/es/empty/Empty.d.ts +8 -7
  35. package/es/empty/Empty.js +12 -15
  36. package/es/empty/Images.d.ts +4 -0
  37. package/es/empty/Images.js +271 -0
  38. package/es/empty/index.d.ts +2 -2
  39. package/es/field/Field.d.ts +4 -0
  40. package/es/field/Field.js +8 -3
  41. package/es/field/index.d.ts +2 -0
  42. package/es/field/types.d.ts +1 -1
  43. package/es/form/Form.d.ts +13 -13
  44. package/es/form/Form.js +7 -3
  45. package/es/form/index.d.ts +9 -9
  46. package/es/form/types.d.ts +1 -0
  47. package/es/icon/index.css +1 -1
  48. package/es/index-bar/IndexBar.d.ts +5 -4
  49. package/es/index-bar/IndexBar.js +25 -4
  50. package/es/index-bar/index.d.ts +3 -3
  51. package/es/index-bar/types.d.ts +2 -1
  52. package/es/index.d.ts +1 -1
  53. package/es/index.js +1 -1
  54. package/es/loading/Loading.js +3 -1
  55. package/es/locale/lang/da-DK.d.ts +64 -0
  56. package/es/locale/lang/da-DK.js +66 -0
  57. package/es/locale/lang/is-IS.d.ts +64 -0
  58. package/es/locale/lang/is-IS.js +74 -0
  59. package/es/locale/lang/la-LA.d.ts +64 -0
  60. package/es/locale/lang/la-LA.js +66 -0
  61. package/es/locale/lang/sv-SE.d.ts +64 -0
  62. package/es/locale/lang/sv-SE.js +66 -0
  63. package/es/notify/types.d.ts +2 -1
  64. package/es/number-keyboard/NumberKeyboard.js +10 -1
  65. package/es/picker/types.d.ts +3 -2
  66. package/es/popup/index.css +1 -1
  67. package/es/progress/Progress.d.ts +4 -3
  68. package/es/progress/index.d.ts +2 -2
  69. package/es/rate/Rate.js +32 -10
  70. package/es/search/Search.d.ts +3 -0
  71. package/es/search/index.d.ts +2 -0
  72. package/es/share-sheet/ShareSheet.js +25 -11
  73. package/es/share-sheet/index.css +1 -1
  74. package/es/share-sheet/index.less +45 -1
  75. package/es/skeleton/Skeleton.d.ts +5 -4
  76. package/es/skeleton/index.d.ts +3 -3
  77. package/es/slider/index.css +1 -1
  78. package/es/style/animation.css +1 -1
  79. package/es/style/base.css +1 -1
  80. package/es/swipe-cell/index.css +1 -1
  81. package/es/tabbar/Tabbar.d.ts +2 -2
  82. package/es/tabs/Tabs.d.ts +1 -1
  83. package/es/tabs/Tabs.js +1 -0
  84. package/es/tabs/types.d.ts +5 -4
  85. package/es/toast/types.d.ts +3 -2
  86. package/es/tree-select/TreeSelect.d.ts +7 -6
  87. package/es/tree-select/index.d.ts +3 -3
  88. package/es/uploader/Uploader.d.ts +4 -4
  89. package/es/uploader/Uploader.js +3 -3
  90. package/es/uploader/UploaderPreviewItem.d.ts +3 -3
  91. package/es/uploader/UploaderPreviewItem.js +9 -6
  92. package/es/uploader/index.d.ts +2 -2
  93. package/es/uploader/types.d.ts +5 -5
  94. package/es/uploader/utils.d.ts +0 -1
  95. package/es/uploader/utils.js +2 -4
  96. package/es/utils/basic.d.ts +2 -0
  97. package/es/utils/basic.js +3 -1
  98. package/es/utils/format.d.ts +7 -6
  99. package/es/utils/format.js +6 -0
  100. package/es/utils/validate.d.ts +2 -1
  101. package/lib/action-bar/ActionBar.js +8 -13
  102. package/lib/action-bar/index.js +9 -16
  103. package/lib/action-bar-button/ActionBarButton.js +8 -13
  104. package/lib/action-bar-button/index.js +9 -16
  105. package/lib/action-bar-icon/ActionBarIcon.js +8 -13
  106. package/lib/action-bar-icon/index.js +9 -16
  107. package/lib/action-sheet/ActionSheet.js +8 -13
  108. package/lib/action-sheet/index.js +9 -16
  109. package/lib/address-edit/AddressEdit.js +9 -16
  110. package/lib/address-edit/AddressEditDetail.js +8 -13
  111. package/lib/address-edit/index.js +9 -16
  112. package/lib/address-edit/types.js +7 -12
  113. package/lib/address-list/AddressList.js +9 -16
  114. package/lib/address-list/AddressListItem.d.ts +3 -2
  115. package/lib/address-list/AddressListItem.js +8 -13
  116. package/lib/address-list/index.js +9 -16
  117. package/lib/area/Area.js +8 -13
  118. package/lib/area/index.js +9 -16
  119. package/lib/area/types.js +7 -12
  120. package/lib/badge/Badge.d.ts +4 -3
  121. package/lib/badge/Badge.js +8 -13
  122. package/lib/badge/index.d.ts +2 -2
  123. package/lib/badge/index.js +9 -16
  124. package/lib/button/Button.js +8 -13
  125. package/lib/button/index.js +9 -16
  126. package/lib/button/types.js +7 -12
  127. package/lib/calendar/Calendar.js +10 -17
  128. package/lib/calendar/CalendarDay.js +12 -13
  129. package/lib/calendar/CalendarHeader.js +8 -13
  130. package/lib/calendar/CalendarMonth.js +9 -16
  131. package/lib/calendar/index.css +1 -1
  132. package/lib/calendar/index.js +9 -16
  133. package/lib/calendar/index.less +2 -0
  134. package/lib/calendar/types.d.ts +2 -1
  135. package/lib/calendar/types.js +7 -12
  136. package/lib/calendar/utils.js +8 -13
  137. package/lib/calendar/var.less +1 -0
  138. package/lib/card/Card.js +8 -13
  139. package/lib/card/index.js +9 -16
  140. package/lib/cascader/Cascader.js +8 -13
  141. package/lib/cascader/index.js +9 -16
  142. package/lib/cascader/types.d.ts +2 -1
  143. package/lib/cascader/types.js +7 -12
  144. package/lib/cell/Cell.js +8 -13
  145. package/lib/cell/index.js +9 -16
  146. package/lib/cell-group/CellGroup.js +8 -13
  147. package/lib/cell-group/index.js +9 -16
  148. package/lib/checkbox/Checkbox.js +9 -16
  149. package/lib/checkbox/Checker.d.ts +2 -1
  150. package/lib/checkbox/Checker.js +8 -13
  151. package/lib/checkbox/index.js +9 -16
  152. package/lib/checkbox/types.js +7 -12
  153. package/lib/checkbox-group/CheckboxGroup.js +8 -13
  154. package/lib/checkbox-group/index.js +9 -16
  155. package/lib/checkbox-group/types.js +7 -12
  156. package/lib/circle/Circle.js +8 -13
  157. package/lib/circle/index.js +9 -16
  158. package/lib/col/Col.js +8 -13
  159. package/lib/col/index.js +9 -16
  160. package/lib/collapse/Collapse.d.ts +7 -6
  161. package/lib/collapse/Collapse.js +8 -13
  162. package/lib/collapse/index.d.ts +3 -3
  163. package/lib/collapse/index.js +9 -16
  164. package/lib/collapse-item/CollapseItem.js +8 -13
  165. package/lib/collapse-item/index.js +9 -16
  166. package/lib/collapse-item/types.js +7 -12
  167. package/lib/composables/on-popup-reopen.js +8 -13
  168. package/lib/composables/use-expose.js +8 -13
  169. package/lib/composables/use-height.js +8 -13
  170. package/lib/composables/use-id.js +8 -13
  171. package/lib/composables/use-lazy-render.js +8 -13
  172. package/lib/composables/use-lock-scroll.js +8 -13
  173. package/lib/composables/use-placeholder.js +8 -13
  174. package/lib/composables/use-refs.js +8 -13
  175. package/lib/composables/use-route.js +8 -13
  176. package/lib/composables/use-tab-status.js +8 -13
  177. package/lib/composables/use-touch.js +9 -14
  178. package/lib/composables/use-visibility-change.js +8 -13
  179. package/lib/config-provider/ConfigProvider.d.ts +4 -3
  180. package/lib/config-provider/ConfigProvider.js +8 -13
  181. package/lib/config-provider/index.d.ts +2 -2
  182. package/lib/config-provider/index.js +9 -16
  183. package/lib/contact-card/ContactCard.js +8 -13
  184. package/lib/contact-card/index.js +9 -16
  185. package/lib/contact-edit/ContactEdit.js +8 -13
  186. package/lib/contact-edit/index.js +9 -16
  187. package/lib/contact-list/ContactList.d.ts +3 -2
  188. package/lib/contact-list/ContactList.js +8 -13
  189. package/lib/contact-list/index.js +9 -16
  190. package/lib/count-down/CountDown.js +8 -13
  191. package/lib/count-down/index.js +9 -16
  192. package/lib/count-down/types.js +7 -12
  193. package/lib/count-down/utils.js +8 -13
  194. package/lib/coupon/Coupon.d.ts +2 -1
  195. package/lib/coupon/Coupon.js +8 -13
  196. package/lib/coupon/index.js +9 -16
  197. package/lib/coupon/utils.js +8 -13
  198. package/lib/coupon-cell/CouponCell.js +8 -13
  199. package/lib/coupon-cell/index.js +9 -16
  200. package/lib/coupon-list/CouponList.d.ts +3 -13
  201. package/lib/coupon-list/CouponList.js +17 -20
  202. package/lib/coupon-list/index.css +1 -1
  203. package/lib/coupon-list/index.d.ts +2 -9
  204. package/lib/coupon-list/index.js +9 -16
  205. package/lib/coupon-list/index.less +4 -16
  206. package/lib/coupon-list/style/index.js +1 -0
  207. package/lib/coupon-list/style/less.js +1 -0
  208. package/lib/coupon-list/var.less +0 -1
  209. package/lib/datetime-picker/DatePicker.js +10 -15
  210. package/lib/datetime-picker/DatetimePicker.js +9 -16
  211. package/lib/datetime-picker/TimePicker.js +8 -13
  212. package/lib/datetime-picker/index.js +9 -16
  213. package/lib/datetime-picker/types.js +7 -12
  214. package/lib/datetime-picker/utils.js +8 -13
  215. package/lib/dialog/Dialog.js +8 -13
  216. package/lib/dialog/function-call.js +9 -16
  217. package/lib/dialog/index.css +1 -1
  218. package/lib/dialog/index.js +8 -13
  219. package/lib/dialog/types.d.ts +2 -2
  220. package/lib/dialog/types.js +7 -12
  221. package/lib/divider/Divider.js +8 -13
  222. package/lib/divider/index.js +9 -16
  223. package/lib/dropdown-item/DropdownItem.js +8 -13
  224. package/lib/dropdown-item/index.js +9 -16
  225. package/lib/dropdown-item/types.d.ts +2 -1
  226. package/lib/dropdown-item/types.js +7 -12
  227. package/lib/dropdown-menu/DropdownMenu.js +8 -13
  228. package/lib/dropdown-menu/index.js +9 -16
  229. package/lib/dropdown-menu/types.js +7 -12
  230. package/lib/empty/Empty.d.ts +8 -7
  231. package/lib/empty/Empty.js +19 -27
  232. package/lib/empty/Images.d.ts +4 -0
  233. package/lib/empty/Images.js +290 -0
  234. package/lib/empty/index.d.ts +2 -2
  235. package/lib/empty/index.js +9 -16
  236. package/lib/field/Field.d.ts +4 -0
  237. package/lib/field/Field.js +15 -15
  238. package/lib/field/index.d.ts +2 -0
  239. package/lib/field/index.js +9 -16
  240. package/lib/field/types.d.ts +1 -1
  241. package/lib/field/types.js +7 -12
  242. package/lib/field/utils.js +8 -13
  243. package/lib/form/Form.d.ts +13 -13
  244. package/lib/form/Form.js +14 -15
  245. package/lib/form/index.d.ts +9 -9
  246. package/lib/form/index.js +9 -16
  247. package/lib/form/types.d.ts +1 -0
  248. package/lib/form/types.js +7 -12
  249. package/lib/grid/Grid.js +8 -13
  250. package/lib/grid/index.js +9 -16
  251. package/lib/grid-item/GridItem.js +8 -13
  252. package/lib/grid-item/index.js +9 -16
  253. package/lib/icon/Icon.js +8 -13
  254. package/lib/icon/index.css +1 -1
  255. package/lib/icon/index.js +9 -16
  256. package/lib/image/Image.js +8 -13
  257. package/lib/image/index.js +9 -16
  258. package/lib/image-preview/ImagePreview.js +9 -16
  259. package/lib/image-preview/ImagePreviewItem.js +8 -13
  260. package/lib/image-preview/function-call.js +9 -16
  261. package/lib/image-preview/index.js +8 -13
  262. package/lib/image-preview/types.js +7 -12
  263. package/lib/index-anchor/IndexAnchor.js +8 -13
  264. package/lib/index-anchor/index.js +9 -16
  265. package/lib/index-bar/IndexBar.d.ts +5 -4
  266. package/lib/index-bar/IndexBar.js +33 -17
  267. package/lib/index-bar/index.d.ts +3 -3
  268. package/lib/index-bar/index.js +9 -16
  269. package/lib/index-bar/types.d.ts +2 -1
  270. package/lib/index-bar/types.js +7 -12
  271. package/lib/index.css +1 -1
  272. package/lib/index.d.ts +1 -1
  273. package/lib/index.js +96 -100
  274. package/lib/index.less +2 -2
  275. package/lib/lazyload/index.js +8 -13
  276. package/lib/lazyload/vue-lazyload/index.js +9 -16
  277. package/lib/lazyload/vue-lazyload/lazy-component.js +8 -13
  278. package/lib/lazyload/vue-lazyload/lazy-container.js +8 -13
  279. package/lib/lazyload/vue-lazyload/lazy-image.js +8 -13
  280. package/lib/lazyload/vue-lazyload/lazy.js +9 -16
  281. package/lib/lazyload/vue-lazyload/listener.js +8 -13
  282. package/lib/lazyload/vue-lazyload/util.js +8 -13
  283. package/lib/list/List.js +8 -13
  284. package/lib/list/index.js +9 -16
  285. package/lib/list/types.js +7 -12
  286. package/lib/loading/Loading.js +11 -14
  287. package/lib/loading/index.js +9 -16
  288. package/lib/locale/index.js +9 -16
  289. package/lib/locale/lang/bn-BD.js +8 -13
  290. package/lib/locale/lang/da-DK.d.ts +64 -0
  291. package/lib/locale/lang/da-DK.js +85 -0
  292. package/lib/locale/lang/de-DE-formal.js +8 -13
  293. package/lib/locale/lang/de-DE.js +8 -13
  294. package/lib/locale/lang/en-US.js +8 -13
  295. package/lib/locale/lang/es-ES.js +8 -13
  296. package/lib/locale/lang/fr-FR.js +8 -13
  297. package/lib/locale/lang/hi-IN.js +8 -13
  298. package/lib/locale/lang/id-ID.js +8 -13
  299. package/lib/locale/lang/is-IS.d.ts +64 -0
  300. package/lib/locale/lang/is-IS.js +93 -0
  301. package/lib/locale/lang/it-IT.js +8 -13
  302. package/lib/locale/lang/ja-JP.js +8 -13
  303. package/lib/locale/lang/ko-KR.js +8 -13
  304. package/lib/locale/lang/la-LA.d.ts +64 -0
  305. package/lib/locale/lang/la-LA.js +85 -0
  306. package/lib/locale/lang/nb-NO.js +8 -13
  307. package/lib/locale/lang/pt-BR.js +8 -13
  308. package/lib/locale/lang/ro-RO.js +8 -13
  309. package/lib/locale/lang/ru-RU.js +8 -13
  310. package/lib/locale/lang/sv-SE.d.ts +64 -0
  311. package/lib/locale/lang/sv-SE.js +85 -0
  312. package/lib/locale/lang/th-TH.js +8 -13
  313. package/lib/locale/lang/tr-TR.js +8 -13
  314. package/lib/locale/lang/uk-UA.js +8 -13
  315. package/lib/locale/lang/vi-VN.js +8 -13
  316. package/lib/locale/lang/zh-CN.js +8 -13
  317. package/lib/locale/lang/zh-HK.js +8 -13
  318. package/lib/locale/lang/zh-TW.js +8 -13
  319. package/lib/nav-bar/NavBar.js +8 -13
  320. package/lib/nav-bar/index.js +9 -16
  321. package/lib/notice-bar/NoticeBar.js +8 -13
  322. package/lib/notice-bar/index.js +9 -16
  323. package/lib/notice-bar/types.js +7 -12
  324. package/lib/notify/Notify.js +8 -13
  325. package/lib/notify/function-call.js +9 -16
  326. package/lib/notify/index.js +8 -13
  327. package/lib/notify/types.d.ts +2 -1
  328. package/lib/notify/types.js +7 -12
  329. package/lib/number-keyboard/NumberKeyboard.js +19 -17
  330. package/lib/number-keyboard/NumberKeyboardKey.js +8 -13
  331. package/lib/number-keyboard/index.js +9 -16
  332. package/lib/overlay/Overlay.js +8 -13
  333. package/lib/overlay/index.js +9 -16
  334. package/lib/pagination/Pagination.js +8 -13
  335. package/lib/pagination/index.js +9 -16
  336. package/lib/password-input/PasswordInput.js +8 -13
  337. package/lib/password-input/index.js +9 -16
  338. package/lib/picker/Picker.js +9 -16
  339. package/lib/picker/PickerColumn.js +8 -13
  340. package/lib/picker/index.js +9 -16
  341. package/lib/picker/types.d.ts +3 -2
  342. package/lib/picker/types.js +7 -12
  343. package/lib/popover/Popover.js +8 -13
  344. package/lib/popover/index.js +9 -16
  345. package/lib/popover/types.js +7 -12
  346. package/lib/popup/Popup.js +8 -13
  347. package/lib/popup/index.css +1 -1
  348. package/lib/popup/index.js +9 -16
  349. package/lib/popup/shared.js +8 -13
  350. package/lib/popup/types.js +7 -12
  351. package/lib/progress/Progress.d.ts +4 -3
  352. package/lib/progress/Progress.js +8 -13
  353. package/lib/progress/index.d.ts +2 -2
  354. package/lib/progress/index.js +9 -16
  355. package/lib/progress/types.js +7 -12
  356. package/lib/pull-refresh/PullRefresh.js +8 -13
  357. package/lib/pull-refresh/index.js +9 -16
  358. package/lib/radio/Radio.js +9 -16
  359. package/lib/radio/index.js +9 -16
  360. package/lib/radio-group/RadioGroup.js +8 -13
  361. package/lib/radio-group/index.js +9 -16
  362. package/lib/rate/Rate.js +39 -22
  363. package/lib/rate/index.js +9 -16
  364. package/lib/row/Row.js +8 -13
  365. package/lib/row/index.js +9 -16
  366. package/lib/search/Search.d.ts +3 -0
  367. package/lib/search/Search.js +8 -13
  368. package/lib/search/index.d.ts +2 -0
  369. package/lib/search/index.js +9 -16
  370. package/lib/search/types.js +7 -12
  371. package/lib/share-sheet/ShareSheet.js +33 -24
  372. package/lib/share-sheet/index.css +1 -1
  373. package/lib/share-sheet/index.js +9 -16
  374. package/lib/share-sheet/index.less +45 -1
  375. package/lib/sidebar/Sidebar.js +8 -13
  376. package/lib/sidebar/index.js +9 -16
  377. package/lib/sidebar-item/SidebarItem.js +8 -13
  378. package/lib/sidebar-item/index.js +9 -16
  379. package/lib/skeleton/Skeleton.d.ts +5 -4
  380. package/lib/skeleton/Skeleton.js +8 -13
  381. package/lib/skeleton/index.d.ts +3 -3
  382. package/lib/skeleton/index.js +9 -16
  383. package/lib/slider/Slider.js +8 -13
  384. package/lib/slider/index.css +1 -1
  385. package/lib/slider/index.js +9 -16
  386. package/lib/step/Step.js +8 -13
  387. package/lib/step/index.js +9 -16
  388. package/lib/stepper/Stepper.js +8 -13
  389. package/lib/stepper/index.js +9 -16
  390. package/lib/steps/Steps.js +8 -13
  391. package/lib/steps/index.js +9 -16
  392. package/lib/sticky/Sticky.js +8 -13
  393. package/lib/sticky/index.js +9 -16
  394. package/lib/style/animation.css +1 -1
  395. package/lib/style/base.css +1 -1
  396. package/lib/submit-bar/SubmitBar.js +8 -13
  397. package/lib/submit-bar/index.js +9 -16
  398. package/lib/swipe/Swipe.js +8 -13
  399. package/lib/swipe/index.js +9 -16
  400. package/lib/swipe/types.js +7 -12
  401. package/lib/swipe-cell/SwipeCell.js +8 -13
  402. package/lib/swipe-cell/index.css +1 -1
  403. package/lib/swipe-cell/index.js +9 -16
  404. package/lib/swipe-cell/types.js +7 -12
  405. package/lib/swipe-item/SwipeItem.js +8 -13
  406. package/lib/swipe-item/index.js +9 -16
  407. package/lib/switch/Switch.js +8 -13
  408. package/lib/switch/index.js +9 -16
  409. package/lib/tab/Tab.js +8 -13
  410. package/lib/tab/index.js +9 -16
  411. package/lib/tabbar/Tabbar.d.ts +2 -2
  412. package/lib/tabbar/Tabbar.js +8 -13
  413. package/lib/tabbar/index.js +9 -16
  414. package/lib/tabbar-item/TabbarItem.js +8 -13
  415. package/lib/tabbar-item/index.js +9 -16
  416. package/lib/tabs/Tabs.d.ts +1 -1
  417. package/lib/tabs/Tabs.js +10 -16
  418. package/lib/tabs/TabsContent.js +8 -13
  419. package/lib/tabs/TabsTitle.js +8 -13
  420. package/lib/tabs/index.js +9 -16
  421. package/lib/tabs/types.d.ts +5 -4
  422. package/lib/tabs/types.js +7 -12
  423. package/lib/tabs/utils.js +8 -13
  424. package/lib/tag/Tag.js +8 -13
  425. package/lib/tag/index.js +9 -16
  426. package/lib/toast/Toast.js +8 -13
  427. package/lib/toast/function-call.js +9 -16
  428. package/lib/toast/index.js +8 -13
  429. package/lib/toast/lock-click.js +8 -13
  430. package/lib/toast/types.d.ts +3 -2
  431. package/lib/toast/types.js +7 -12
  432. package/lib/tree-select/TreeSelect.d.ts +7 -6
  433. package/lib/tree-select/TreeSelect.js +8 -13
  434. package/lib/tree-select/index.d.ts +3 -3
  435. package/lib/tree-select/index.js +9 -16
  436. package/lib/uploader/Uploader.d.ts +4 -4
  437. package/lib/uploader/Uploader.js +11 -18
  438. package/lib/uploader/UploaderPreviewItem.d.ts +3 -3
  439. package/lib/uploader/UploaderPreviewItem.js +17 -19
  440. package/lib/uploader/index.d.ts +2 -2
  441. package/lib/uploader/index.js +9 -16
  442. package/lib/uploader/types.d.ts +5 -5
  443. package/lib/uploader/types.js +7 -12
  444. package/lib/uploader/utils.d.ts +0 -1
  445. package/lib/uploader/utils.js +10 -17
  446. package/lib/utils/basic.d.ts +2 -0
  447. package/lib/utils/basic.js +11 -14
  448. package/lib/utils/constant.js +8 -13
  449. package/lib/utils/create.js +9 -16
  450. package/lib/utils/deep-assign.js +8 -13
  451. package/lib/utils/deep-clone.js +8 -13
  452. package/lib/utils/dom.js +8 -13
  453. package/lib/utils/format.d.ts +7 -6
  454. package/lib/utils/format.js +14 -13
  455. package/lib/utils/index.js +17 -21
  456. package/lib/utils/interceptor.js +8 -13
  457. package/lib/utils/mount-component.js +8 -13
  458. package/lib/utils/props.js +8 -13
  459. package/lib/utils/validate.d.ts +2 -1
  460. package/lib/utils/validate.js +8 -13
  461. package/lib/utils/with-install.js +8 -13
  462. package/lib/vant.cjs.js +530 -263
  463. package/lib/vant.cjs.min.js +1 -1
  464. package/lib/vant.es.js +530 -263
  465. package/lib/vant.es.min.js +530 -263
  466. package/lib/vant.js +530 -263
  467. package/lib/vant.min.js +1 -1
  468. package/package.json +3 -3
  469. package/vetur/attributes.json +423 -487
  470. package/vetur/tags.json +112 -110
  471. package/vetur/web-types.json +2200 -1345
  472. package/es/empty/Network.d.ts +0 -1
  473. package/es/empty/Network.js +0 -89
  474. package/lib/empty/Network.d.ts +0 -1
  475. package/lib/empty/Network.js +0 -113
package/lib/vant.js CHANGED
@@ -23,6 +23,7 @@
23
23
  return ret;
24
24
  }, {});
25
25
  }
26
+ const toArray = (item) => Array.isArray(item) ? item : [item];
26
27
  const unknownProp = null;
27
28
  const numericProp = [Number, String];
28
29
  const truthProp = {
@@ -472,6 +473,12 @@
472
473
  }
473
474
  function getSizeStyle(originSize) {
474
475
  if (isDef(originSize)) {
476
+ if (Array.isArray(originSize)) {
477
+ return {
478
+ width: addUnit(originSize[0]),
479
+ height: addUnit(originSize[1])
480
+ };
481
+ }
475
482
  const size = addUnit(originSize);
476
483
  return {
477
484
  width: size,
@@ -662,10 +669,10 @@
662
669
  };
663
670
  var stdin_default$1C = Locale;
664
671
  function createTranslate(name2) {
665
- const prefix2 = camelize(name2) + ".";
672
+ const prefix = camelize(name2) + ".";
666
673
  return (path, ...args) => {
667
674
  const messages2 = stdin_default$1C.messages();
668
- const message = get(messages2, prefix2 + path) || get(messages2, path);
675
+ const message = get(messages2, prefix + path) || get(messages2, path);
669
676
  return isFunction(message) ? message(...args) : message;
670
677
  };
671
678
  }
@@ -1022,7 +1029,9 @@
1022
1029
  return vue.createVNode("div", {
1023
1030
  "class": bem$1m([type, {
1024
1031
  vertical
1025
- }])
1032
+ }]),
1033
+ "aria-live": "polite",
1034
+ "aria-busy": true
1026
1035
  }, [vue.createVNode("span", {
1027
1036
  "class": bem$1m("spinner", type),
1028
1037
  "style": spinnerStyle.value
@@ -1340,7 +1349,7 @@
1340
1349
  };
1341
1350
  const move = (event) => {
1342
1351
  const touch = event.touches[0];
1343
- deltaX.value = touch.clientX < 0 ? 0 : touch.clientX - startX.value;
1352
+ deltaX.value = (touch.clientX < 0 ? 0 : touch.clientX) - startX.value;
1344
1353
  deltaY.value = touch.clientY - startY.value;
1345
1354
  offsetX.value = Math.abs(deltaX.value);
1346
1355
  offsetY.value = Math.abs(deltaY.value);
@@ -2679,9 +2688,12 @@
2679
2688
  scrollToError: Boolean,
2680
2689
  validateFirst: Boolean,
2681
2690
  submitOnEnter: truthProp,
2682
- validateTrigger: makeStringProp("onBlur"),
2683
2691
  showErrorMessage: truthProp,
2684
- errorMessageAlign: String
2692
+ errorMessageAlign: String,
2693
+ validateTrigger: {
2694
+ type: [String, Array],
2695
+ default: "onBlur"
2696
+ }
2685
2697
  };
2686
2698
  var stdin_default$1m = vue.defineComponent({
2687
2699
  name: name$1f,
@@ -2796,6 +2808,7 @@
2796
2808
  useExpose({
2797
2809
  submit,
2798
2810
  validate,
2811
+ getValues,
2799
2812
  scrollToField,
2800
2813
  resetValidation
2801
2814
  });
@@ -2893,7 +2906,7 @@
2893
2906
  return [...str].slice(0, maxlength).join("");
2894
2907
  }
2895
2908
  let current = 0;
2896
- function useId() {
2909
+ function useId$1() {
2897
2910
  const vm = vue.getCurrentInstance();
2898
2911
  const { name: name2 = "unknown" } = (vm == null ? void 0 : vm.type) || {};
2899
2912
  return `${name2}-${++current}`;
@@ -2914,6 +2927,7 @@
2914
2927
  placeholder: String,
2915
2928
  autocomplete: String,
2916
2929
  errorMessage: String,
2930
+ enterkeyhint: String,
2917
2931
  clearTrigger: makeStringProp("focus"),
2918
2932
  formatTrigger: makeStringProp("onChange"),
2919
2933
  error: {
@@ -2952,7 +2966,7 @@
2952
2966
  emit,
2953
2967
  slots
2954
2968
  }) {
2955
- const id = useId();
2969
+ const id = useId$1();
2956
2970
  const state = vue.reactive({
2957
2971
  focused: false,
2958
2972
  validateFailed: false,
@@ -3042,10 +3056,13 @@
3042
3056
  });
3043
3057
  const validateWithTrigger = (trigger) => {
3044
3058
  if (form && props.rules) {
3045
- const defaultTrigger = form.props.validateTrigger === trigger;
3059
+ const {
3060
+ validateTrigger
3061
+ } = form.props;
3062
+ const defaultTrigger = toArray(validateTrigger).includes(trigger);
3046
3063
  const rules = props.rules.filter((rule) => {
3047
3064
  if (rule.trigger) {
3048
- return rule.trigger === trigger;
3065
+ return toArray(rule.trigger).includes(trigger);
3049
3066
  }
3050
3067
  return defaultTrigger;
3051
3068
  });
@@ -3183,6 +3200,7 @@
3183
3200
  autofocus: props.autofocus,
3184
3201
  placeholder: props.placeholder,
3185
3202
  autocomplete: props.autocomplete,
3203
+ enterkeyhint: props.enterkeyhint,
3186
3204
  "aria-labelledby": props.label ? `${id}-label` : void 0,
3187
3205
  onBlur,
3188
3206
  onFocus,
@@ -4595,6 +4613,7 @@
4595
4613
  slots
4596
4614
  }) {
4597
4615
  const style = vue.computed(() => {
4616
+ var _a;
4598
4617
  const {
4599
4618
  item,
4600
4619
  index,
@@ -4626,6 +4645,9 @@
4626
4645
  break;
4627
4646
  }
4628
4647
  }
4648
+ if (offset2 + (((_a = item.date) == null ? void 0 : _a.getDate()) || 1) > 28) {
4649
+ style2.marginBottom = 0;
4650
+ }
4629
4651
  return style2;
4630
4652
  });
4631
4653
  const onClick = () => {
@@ -5133,8 +5155,8 @@
5133
5155
  }
5134
5156
  raf(() => {
5135
5157
  bodyHeight = Math.floor(useRect(bodyRef).height);
5136
- scrollToCurrentDate();
5137
5158
  });
5159
+ scrollToCurrentDate();
5138
5160
  };
5139
5161
  const reset = (date = getInitialDate()) => {
5140
5162
  currentDate.value = date;
@@ -6278,7 +6300,7 @@
6278
6300
  const root = vue.ref();
6279
6301
  const navRef = vue.ref();
6280
6302
  const wrapRef = vue.ref();
6281
- const id = useId();
6303
+ const id = useId$1();
6282
6304
  const scroller = useScrollParent(root);
6283
6305
  const [titleRefs, setTitleRefs] = useRefs();
6284
6306
  const {
@@ -6448,6 +6470,7 @@
6448
6470
  }
6449
6471
  };
6450
6472
  const renderNav = () => children.map((item, index) => vue.createVNode(stdin_default$13, vue.mergeProps({
6473
+ "key": item.id,
6451
6474
  "id": `${id}-${index}`,
6452
6475
  "ref": setTitleRefs(index),
6453
6476
  "type": props.type,
@@ -6667,7 +6690,7 @@
6667
6690
  setup(props, {
6668
6691
  slots
6669
6692
  }) {
6670
- const id = useId();
6693
+ const id = useId$1();
6671
6694
  const inited = vue.ref(false);
6672
6695
  const {
6673
6696
  parent,
@@ -8038,14 +8061,328 @@
8038
8061
  }
8039
8062
  });
8040
8063
  const CouponCell = withInstall(stdin_default$L);
8041
- const [name$E, bem$D, t$8] = createNamespace("coupon-list");
8042
- const EMPTY_IMAGE = "https://img.yzcdn.cn/vant/coupon-empty.png";
8064
+ const getId = (num) => `van-empty-${num}`;
8065
+ const useId = (num) => `url(#${getId(num)})`;
8066
+ const renderStop = (color, offset2, opacity) => vue.createVNode("stop", {
8067
+ "stop-color": color,
8068
+ "offset": `${offset2}%`,
8069
+ "stop-opacity": opacity
8070
+ }, null);
8071
+ const renderStops = (fromColor, toColor) => [renderStop(fromColor, 0), renderStop(toColor, 100)];
8072
+ const renderShadow = (id) => [vue.createVNode("defs", null, [vue.createVNode("radialGradient", {
8073
+ "id": getId(id),
8074
+ "cx": "50%",
8075
+ "cy": "54%",
8076
+ "fx": "50%",
8077
+ "fy": "54%",
8078
+ "r": "297%",
8079
+ "gradientTransform": "matrix(-.16 0 0 -.33 .58 .72)"
8080
+ }, [renderStop("#EBEDF0", 0), renderStop("#F2F3F5", 100, 0.3)])]), vue.createVNode("ellipse", {
8081
+ "fill": useId(id),
8082
+ "opacity": ".8",
8083
+ "cx": "80",
8084
+ "cy": "140",
8085
+ "rx": "46",
8086
+ "ry": "8"
8087
+ }, null)];
8088
+ const renderBuilding = () => [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8089
+ "id": getId("a"),
8090
+ "x1": "64%",
8091
+ "y1": "100%",
8092
+ "x2": "64%"
8093
+ }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)])]), vue.createVNode("g", {
8094
+ "opacity": ".8"
8095
+ }, [vue.createVNode("path", {
8096
+ "d": "M36 131V53H16v20H2v58h34z",
8097
+ "fill": useId("a")
8098
+ }, null), vue.createVNode("path", {
8099
+ "d": "M123 15h22v14h9v77h-31V15z",
8100
+ "fill": useId("a")
8101
+ }, null)])];
8102
+ const renderCloud = () => [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8103
+ "id": getId("b"),
8104
+ "x1": "64%",
8105
+ "y1": "97%",
8106
+ "x2": "64%",
8107
+ "y2": "0%"
8108
+ }, [renderStop("#F2F3F5", 0, 0.3), renderStop("#F2F3F5", 100)])]), vue.createVNode("g", {
8109
+ "opacity": ".8"
8110
+ }, [vue.createVNode("path", {
8111
+ "d": "M87 6c3 0 7 3 8 6a8 8 0 1 1-1 16H80a7 7 0 0 1-8-6c0-4 3-7 6-7 0-5 4-9 9-9Z",
8112
+ "fill": useId("b")
8113
+ }, null), vue.createVNode("path", {
8114
+ "d": "M19 23c2 0 3 1 4 3 2 0 4 2 4 4a4 4 0 0 1-4 3v1h-7v-1l-1 1c-2 0-3-2-3-4 0-1 1-3 3-3 0-2 2-4 4-4Z",
8115
+ "fill": useId("b")
8116
+ }, null)])];
8117
+ const renderNetwork = () => vue.createVNode("svg", {
8118
+ "viewBox": "0 0 160 160"
8119
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8120
+ "id": getId(1),
8121
+ "x1": "64%",
8122
+ "y1": "100%",
8123
+ "x2": "64%"
8124
+ }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)]), vue.createVNode("linearGradient", {
8125
+ "id": getId(2),
8126
+ "x1": "50%",
8127
+ "x2": "50%",
8128
+ "y2": "84%"
8129
+ }, [renderStop("#EBEDF0", 0), renderStop("#DCDEE0", 100, 0)]), vue.createVNode("linearGradient", {
8130
+ "id": getId(3),
8131
+ "x1": "100%",
8132
+ "x2": "100%",
8133
+ "y2": "100%"
8134
+ }, [renderStops("#EAEDF0", "#DCDEE0")]), vue.createVNode("radialGradient", {
8135
+ "id": getId(4),
8136
+ "cx": "50%",
8137
+ "cy": "0%",
8138
+ "fx": "50%",
8139
+ "fy": "0%",
8140
+ "r": "100%",
8141
+ "gradientTransform": "matrix(0 1 -.54 0 .5 -.5)"
8142
+ }, [renderStop("#EBEDF0", 0), renderStop("#FFF", 100, 0)])]), vue.createVNode("g", {
8143
+ "fill": "none"
8144
+ }, [renderBuilding(), vue.createVNode("path", {
8145
+ "fill": useId(4),
8146
+ "d": "M0 139h160v21H0z"
8147
+ }, null), vue.createVNode("path", {
8148
+ "d": "M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z",
8149
+ "fill": useId(2)
8150
+ }, null), vue.createVNode("g", {
8151
+ "opacity": ".6",
8152
+ "stroke-linecap": "round",
8153
+ "stroke-width": "7"
8154
+ }, [vue.createVNode("path", {
8155
+ "d": "M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13",
8156
+ "stroke": useId(3)
8157
+ }, null), vue.createVNode("path", {
8158
+ "d": "M53 36a34 34 0 0 0 0 48",
8159
+ "stroke": useId(3)
8160
+ }, null), vue.createVNode("path", {
8161
+ "d": "M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13",
8162
+ "stroke": useId(3)
8163
+ }, null), vue.createVNode("path", {
8164
+ "d": "M106 84a34 34 0 0 0 0-48",
8165
+ "stroke": useId(3)
8166
+ }, null)]), vue.createVNode("g", {
8167
+ "transform": "translate(31 105)"
8168
+ }, [vue.createVNode("rect", {
8169
+ "fill": "#EBEDF0",
8170
+ "width": "98",
8171
+ "height": "34",
8172
+ "rx": "2"
8173
+ }, null), vue.createVNode("rect", {
8174
+ "fill": "#FFF",
8175
+ "x": "9",
8176
+ "y": "8",
8177
+ "width": "80",
8178
+ "height": "18",
8179
+ "rx": "1.1"
8180
+ }, null), vue.createVNode("rect", {
8181
+ "fill": "#EBEDF0",
8182
+ "x": "15",
8183
+ "y": "12",
8184
+ "width": "18",
8185
+ "height": "6",
8186
+ "rx": "1.1"
8187
+ }, null)])])]);
8188
+ const renderMaterial = () => vue.createVNode("svg", {
8189
+ "viewBox": "0 0 160 160"
8190
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8191
+ "x1": "50%",
8192
+ "x2": "50%",
8193
+ "y2": "100%",
8194
+ "id": getId(5)
8195
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), vue.createVNode("linearGradient", {
8196
+ "x1": "95%",
8197
+ "y1": "48%",
8198
+ "x2": "5.5%",
8199
+ "y2": "51%",
8200
+ "id": getId(6)
8201
+ }, [renderStops("#EAEDF1", "#DCDEE0")]), vue.createVNode("linearGradient", {
8202
+ "y1": "45%",
8203
+ "x2": "100%",
8204
+ "y2": "54%",
8205
+ "id": getId(7)
8206
+ }, [renderStops("#EAEDF1", "#DCDEE0")])]), renderBuilding(), renderCloud(), vue.createVNode("g", {
8207
+ "transform": "translate(36 50)",
8208
+ "fill": "none"
8209
+ }, [vue.createVNode("g", {
8210
+ "transform": "translate(8)"
8211
+ }, [vue.createVNode("rect", {
8212
+ "fill": "#EBEDF0",
8213
+ "opacity": ".6",
8214
+ "x": "38",
8215
+ "y": "13",
8216
+ "width": "36",
8217
+ "height": "53",
8218
+ "rx": "2"
8219
+ }, null), vue.createVNode("rect", {
8220
+ "fill": useId(5),
8221
+ "width": "64",
8222
+ "height": "66",
8223
+ "rx": "2"
8224
+ }, null), vue.createVNode("rect", {
8225
+ "fill": "#FFF",
8226
+ "x": "6",
8227
+ "y": "6",
8228
+ "width": "52",
8229
+ "height": "55",
8230
+ "rx": "1"
8231
+ }, null), vue.createVNode("g", {
8232
+ "transform": "translate(15 17)",
8233
+ "fill": useId(6)
8234
+ }, [vue.createVNode("rect", {
8235
+ "width": "34",
8236
+ "height": "6",
8237
+ "rx": "1"
8238
+ }, null), vue.createVNode("path", {
8239
+ "d": "M0 14h34v6H0z"
8240
+ }, null), vue.createVNode("rect", {
8241
+ "y": "28",
8242
+ "width": "34",
8243
+ "height": "6",
8244
+ "rx": "1"
8245
+ }, null)])]), vue.createVNode("rect", {
8246
+ "fill": useId(7),
8247
+ "y": "61",
8248
+ "width": "88",
8249
+ "height": "28",
8250
+ "rx": "1"
8251
+ }, null), vue.createVNode("rect", {
8252
+ "fill": "#F7F8FA",
8253
+ "x": "29",
8254
+ "y": "72",
8255
+ "width": "30",
8256
+ "height": "6",
8257
+ "rx": "1"
8258
+ }, null)])]);
8259
+ const renderError = () => vue.createVNode("svg", {
8260
+ "viewBox": "0 0 160 160"
8261
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8262
+ "x1": "50%",
8263
+ "x2": "50%",
8264
+ "y2": "100%",
8265
+ "id": getId(8)
8266
+ }, [renderStops("#EAEDF1", "#DCDEE0")])]), renderBuilding(), renderCloud(), renderShadow("c"), vue.createVNode("path", {
8267
+ "d": "m59 60 21 21 21-21h3l9 9v3L92 93l21 21v3l-9 9h-3l-21-21-21 21h-3l-9-9v-3l21-21-21-21v-3l9-9h3Z",
8268
+ "fill": useId(8)
8269
+ }, null)]);
8270
+ const renderSearch = () => vue.createVNode("svg", {
8271
+ "viewBox": "0 0 160 160"
8272
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8273
+ "x1": "50%",
8274
+ "y1": "100%",
8275
+ "x2": "50%",
8276
+ "id": getId(9)
8277
+ }, [renderStops("#EEE", "#D8D8D8")]), vue.createVNode("linearGradient", {
8278
+ "x1": "100%",
8279
+ "y1": "50%",
8280
+ "y2": "50%",
8281
+ "id": getId(10)
8282
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), vue.createVNode("linearGradient", {
8283
+ "x1": "50%",
8284
+ "x2": "50%",
8285
+ "y2": "100%",
8286
+ "id": getId(11)
8287
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), vue.createVNode("linearGradient", {
8288
+ "x1": "50%",
8289
+ "x2": "50%",
8290
+ "y2": "100%",
8291
+ "id": getId(12)
8292
+ }, [renderStops("#FFF", "#F7F8FA")])]), renderBuilding(), renderCloud(), renderShadow("d"), vue.createVNode("g", {
8293
+ "transform": "rotate(-45 113 -4)",
8294
+ "fill": "none"
8295
+ }, [vue.createVNode("rect", {
8296
+ "fill": useId(9),
8297
+ "x": "24",
8298
+ "y": "52.8",
8299
+ "width": "5.8",
8300
+ "height": "19",
8301
+ "rx": "1"
8302
+ }, null), vue.createVNode("rect", {
8303
+ "fill": useId(10),
8304
+ "x": "22.1",
8305
+ "y": "67.3",
8306
+ "width": "9.9",
8307
+ "height": "28",
8308
+ "rx": "1"
8309
+ }, null), vue.createVNode("circle", {
8310
+ "stroke": useId(11),
8311
+ "stroke-width": "8",
8312
+ "cx": "27",
8313
+ "cy": "27",
8314
+ "r": "27"
8315
+ }, null), vue.createVNode("circle", {
8316
+ "fill": useId(12),
8317
+ "cx": "27",
8318
+ "cy": "27",
8319
+ "r": "16"
8320
+ }, null), vue.createVNode("path", {
8321
+ "d": "M37 7c-8 0-15 5-16 12",
8322
+ "stroke": useId(11),
8323
+ "stroke-width": "3",
8324
+ "opacity": ".5",
8325
+ "stroke-linecap": "round",
8326
+ "transform": "rotate(45 29 13)"
8327
+ }, null)])]);
8328
+ const [name$E, bem$D] = createNamespace("empty");
8329
+ const PRESET_IMAGES = {
8330
+ error: renderError,
8331
+ search: renderSearch,
8332
+ network: renderNetwork,
8333
+ default: renderMaterial
8334
+ };
8335
+ const emptyProps = {
8336
+ image: makeStringProp("default"),
8337
+ imageSize: [Number, String, Array],
8338
+ description: String
8339
+ };
8340
+ var stdin_default$K = vue.defineComponent({
8341
+ name: name$E,
8342
+ props: emptyProps,
8343
+ setup(props, {
8344
+ slots
8345
+ }) {
8346
+ const renderImage = () => {
8347
+ var _a;
8348
+ if (slots.image) {
8349
+ return slots.image();
8350
+ }
8351
+ return ((_a = PRESET_IMAGES[props.image]) == null ? void 0 : _a.call(PRESET_IMAGES)) || vue.createVNode("img", {
8352
+ "src": props.image
8353
+ }, null);
8354
+ };
8355
+ const renderDescription = () => {
8356
+ const description = slots.description ? slots.description() : props.description;
8357
+ if (description) {
8358
+ return vue.createVNode("p", {
8359
+ "class": bem$D("description")
8360
+ }, [description]);
8361
+ }
8362
+ };
8363
+ const renderBottom = () => {
8364
+ if (slots.default) {
8365
+ return vue.createVNode("div", {
8366
+ "class": bem$D("bottom")
8367
+ }, [slots.default()]);
8368
+ }
8369
+ };
8370
+ return () => vue.createVNode("div", {
8371
+ "class": bem$D()
8372
+ }, [vue.createVNode("div", {
8373
+ "class": bem$D("image"),
8374
+ "style": getSizeStyle(props.imageSize)
8375
+ }, [renderImage()]), renderDescription(), renderBottom()]);
8376
+ }
8377
+ });
8378
+ const Empty = withInstall(stdin_default$K);
8379
+ const [name$D, bem$C, t$8] = createNamespace("coupon-list");
8043
8380
  const couponListProps = {
8044
8381
  code: makeStringProp(""),
8045
8382
  coupons: makeArrayProp(),
8046
8383
  currency: makeStringProp("\xA5"),
8047
8384
  showCount: truthProp,
8048
- emptyImage: makeStringProp(EMPTY_IMAGE),
8385
+ emptyImage: String,
8049
8386
  chosenCoupon: makeNumberProp(-1),
8050
8387
  enabledTitle: String,
8051
8388
  disabledTitle: String,
@@ -8060,8 +8397,8 @@
8060
8397
  exchangeButtonLoading: Boolean,
8061
8398
  exchangeButtonDisabled: Boolean
8062
8399
  };
8063
- var stdin_default$K = vue.defineComponent({
8064
- name: name$E,
8400
+ var stdin_default$J = vue.defineComponent({
8401
+ name: name$D,
8065
8402
  props: couponListProps,
8066
8403
  emits: ["change", "exchange", "update:code"],
8067
8404
  setup(props, {
@@ -8093,28 +8430,30 @@
8093
8430
  return (_a = couponRefs.value[index]) == null ? void 0 : _a.scrollIntoView();
8094
8431
  });
8095
8432
  };
8096
- const renderEmpty = () => vue.createVNode("div", {
8097
- "class": bem$D("empty")
8098
- }, [vue.createVNode("img", {
8099
- "src": props.emptyImage
8100
- }, null), vue.createVNode("p", null, [t$8("noCoupon")])]);
8433
+ const renderEmpty = () => vue.createVNode(Empty, {
8434
+ "image": props.emptyImage
8435
+ }, {
8436
+ default: () => [vue.createVNode("p", {
8437
+ "class": bem$C("empty-tip")
8438
+ }, [t$8("noCoupon")])]
8439
+ });
8101
8440
  const renderExchangeBar = () => {
8102
8441
  if (props.showExchangeBar) {
8103
8442
  return vue.createVNode("div", {
8104
8443
  "ref": barRef,
8105
- "class": bem$D("exchange-bar")
8444
+ "class": bem$C("exchange-bar")
8106
8445
  }, [vue.createVNode(Field, {
8107
8446
  "modelValue": currentCode.value,
8108
8447
  "onUpdate:modelValue": ($event) => currentCode.value = $event,
8109
8448
  "clearable": true,
8110
8449
  "border": false,
8111
- "class": bem$D("field"),
8450
+ "class": bem$C("field"),
8112
8451
  "placeholder": props.inputPlaceholder || t$8("placeholder"),
8113
8452
  "maxlength": "20"
8114
8453
  }, null), vue.createVNode(Button, {
8115
8454
  "plain": true,
8116
8455
  "type": "danger",
8117
- "class": bem$D("exchange"),
8456
+ "class": bem$C("exchange"),
8118
8457
  "text": props.exchangeButtonText || t$8("exchange"),
8119
8458
  "loading": props.exchangeButtonLoading,
8120
8459
  "disabled": buttonDisabled.value,
@@ -8134,7 +8473,7 @@
8134
8473
  default: () => {
8135
8474
  var _a;
8136
8475
  return [vue.createVNode("div", {
8137
- "class": bem$D("list", {
8476
+ "class": bem$C("list", {
8138
8477
  "with-bottom": props.showCloseButton
8139
8478
  }),
8140
8479
  "style": {
@@ -8163,7 +8502,7 @@
8163
8502
  default: () => {
8164
8503
  var _a;
8165
8504
  return [vue.createVNode("div", {
8166
- "class": bem$D("list", {
8505
+ "class": bem$C("list", {
8167
8506
  "with-bottom": props.showCloseButton
8168
8507
  }),
8169
8508
  "style": {
@@ -8190,29 +8529,29 @@
8190
8529
  });
8191
8530
  return () => vue.createVNode("div", {
8192
8531
  "ref": root,
8193
- "class": bem$D()
8532
+ "class": bem$C()
8194
8533
  }, [renderExchangeBar(), vue.createVNode(Tabs, {
8195
8534
  "active": activeTab.value,
8196
8535
  "onUpdate:active": ($event) => activeTab.value = $event,
8197
- "class": bem$D("tab")
8536
+ "class": bem$C("tab")
8198
8537
  }, {
8199
8538
  default: () => [renderCouponTab(), renderDisabledTab()]
8200
8539
  }), vue.createVNode("div", {
8201
- "class": bem$D("bottom")
8540
+ "class": bem$C("bottom")
8202
8541
  }, [vue.withDirectives(vue.createVNode(Button, {
8203
8542
  "round": true,
8204
8543
  "block": true,
8205
8544
  "type": "danger",
8206
- "class": bem$D("close"),
8545
+ "class": bem$C("close"),
8207
8546
  "text": props.closeButtonText || t$8("close"),
8208
8547
  "onClick": () => emit("change", -1)
8209
8548
  }, null), [[vue.vShow, props.showCloseButton]])])]);
8210
8549
  }
8211
8550
  });
8212
- const CouponList = withInstall(stdin_default$K);
8213
- const [name$D] = createNamespace("time-picker");
8214
- var stdin_default$J = vue.defineComponent({
8215
- name: name$D,
8551
+ const CouponList = withInstall(stdin_default$J);
8552
+ const [name$C] = createNamespace("time-picker");
8553
+ var stdin_default$I = vue.defineComponent({
8554
+ name: name$C,
8216
8555
  props: extend({}, sharedProps, {
8217
8556
  minHour: makeNumericProp(0),
8218
8557
  maxHour: makeNumericProp(23),
@@ -8319,9 +8658,9 @@
8319
8658
  }
8320
8659
  });
8321
8660
  const currentYear = new Date().getFullYear();
8322
- const [name$C] = createNamespace("date-picker");
8323
- var stdin_default$I = vue.defineComponent({
8324
- name: name$C,
8661
+ const [name$B] = createNamespace("date-picker");
8662
+ var stdin_default$H = vue.defineComponent({
8663
+ name: name$B,
8325
8664
  props: extend({}, sharedProps, {
8326
8665
  type: makeStringProp("datetime"),
8327
8666
  modelValue: Date,
@@ -8527,6 +8866,7 @@
8527
8866
  const onChange = () => {
8528
8867
  updateInnerValue();
8529
8868
  vue.nextTick(() => {
8869
+ updateInnerValue();
8530
8870
  vue.nextTick(() => emit("change", currentDate.value));
8531
8871
  });
8532
8872
  };
@@ -8536,8 +8876,7 @@
8536
8876
  });
8537
8877
  vue.watch(columns, updateColumnValue);
8538
8878
  vue.watch(currentDate, (value, oldValue) => emit("update:modelValue", oldValue ? value : null));
8539
- vue.watch(() => [props.filter, props.maxDate], updateInnerValue);
8540
- vue.watch(() => props.minDate, () => {
8879
+ vue.watch(() => [props.filter, props.minDate, props.maxDate], () => {
8541
8880
  vue.nextTick(updateInnerValue);
8542
8881
  });
8543
8882
  vue.watch(() => props.modelValue, (value) => {
@@ -8559,14 +8898,14 @@
8559
8898
  }, pick(props, pickerInheritKeys)), slots);
8560
8899
  }
8561
8900
  });
8562
- const [name$B, bem$C] = createNamespace("datetime-picker");
8563
- const timePickerPropKeys = Object.keys(stdin_default$J.props);
8564
- const datePickerPropKeys = Object.keys(stdin_default$I.props);
8565
- const datetimePickerProps = extend({}, stdin_default$J.props, stdin_default$I.props, {
8901
+ const [name$A, bem$B] = createNamespace("datetime-picker");
8902
+ const timePickerPropKeys = Object.keys(stdin_default$I.props);
8903
+ const datePickerPropKeys = Object.keys(stdin_default$H.props);
8904
+ const datetimePickerProps = extend({}, stdin_default$I.props, stdin_default$H.props, {
8566
8905
  modelValue: [String, Date]
8567
8906
  });
8568
- var stdin_default$H = vue.defineComponent({
8569
- name: name$B,
8907
+ var stdin_default$G = vue.defineComponent({
8908
+ name: name$A,
8570
8909
  props: datetimePickerProps,
8571
8910
  setup(props, {
8572
8911
  attrs,
@@ -8581,17 +8920,17 @@
8581
8920
  });
8582
8921
  return () => {
8583
8922
  const isTimePicker = props.type === "time";
8584
- const Component = isTimePicker ? stdin_default$J : stdin_default$I;
8923
+ const Component = isTimePicker ? stdin_default$I : stdin_default$H;
8585
8924
  const inheritProps = pick(props, isTimePicker ? timePickerPropKeys : datePickerPropKeys);
8586
8925
  return vue.createVNode(Component, vue.mergeProps({
8587
8926
  "ref": root,
8588
- "class": bem$C()
8927
+ "class": bem$B()
8589
8928
  }, inheritProps, attrs), slots);
8590
8929
  };
8591
8930
  }
8592
8931
  });
8593
- const DatetimePicker = withInstall(stdin_default$H);
8594
- const [name$A, bem$B, t$7] = createNamespace("dialog");
8932
+ const DatetimePicker = withInstall(stdin_default$G);
8933
+ const [name$z, bem$A, t$7] = createNamespace("dialog");
8595
8934
  const dialogProps = extend({}, popupSharedProps, {
8596
8935
  title: String,
8597
8936
  theme: String,
@@ -8612,8 +8951,8 @@
8612
8951
  closeOnClickOverlay: Boolean
8613
8952
  });
8614
8953
  const popupInheritKeys$1 = [...popupSharedPropKeys, "transition", "closeOnPopstate"];
8615
- var stdin_default$G = vue.defineComponent({
8616
- name: name$A,
8954
+ var stdin_default$F = vue.defineComponent({
8955
+ name: name$z,
8617
8956
  props: dialogProps,
8618
8957
  emits: ["confirm", "cancel", "keydown", "update:show"],
8619
8958
  setup(props, {
@@ -8670,7 +9009,7 @@
8670
9009
  const title = slots.title ? slots.title() : props.title;
8671
9010
  if (title) {
8672
9011
  return vue.createVNode("div", {
8673
- "class": bem$B("header", {
9012
+ "class": bem$A("header", {
8674
9013
  isolated: !props.message && !slots.default
8675
9014
  })
8676
9015
  }, [title]);
@@ -8682,7 +9021,7 @@
8682
9021
  allowHtml,
8683
9022
  messageAlign
8684
9023
  } = props;
8685
- const classNames = bem$B("message", {
9024
+ const classNames = bem$A("message", {
8686
9025
  "has-title": hasTitle,
8687
9026
  [messageAlign]: messageAlign
8688
9027
  });
@@ -8700,7 +9039,7 @@
8700
9039
  const renderContent = () => {
8701
9040
  if (slots.default) {
8702
9041
  return vue.createVNode("div", {
8703
- "class": bem$B("content")
9042
+ "class": bem$A("content")
8704
9043
  }, [slots.default()]);
8705
9044
  }
8706
9045
  const {
@@ -8712,18 +9051,18 @@
8712
9051
  const hasTitle = !!(title || slots.title);
8713
9052
  return vue.createVNode("div", {
8714
9053
  "key": allowHtml ? 1 : 0,
8715
- "class": bem$B("content", {
9054
+ "class": bem$A("content", {
8716
9055
  isolated: !hasTitle
8717
9056
  })
8718
9057
  }, [renderMessage(hasTitle)]);
8719
9058
  }
8720
9059
  };
8721
9060
  const renderButtons = () => vue.createVNode("div", {
8722
- "class": [BORDER_TOP, bem$B("footer")]
9061
+ "class": [BORDER_TOP, bem$A("footer")]
8723
9062
  }, [props.showCancelButton && vue.createVNode(Button, {
8724
9063
  "size": "large",
8725
9064
  "text": props.cancelButtonText || t$7("cancel"),
8726
- "class": bem$B("cancel"),
9065
+ "class": bem$A("cancel"),
8727
9066
  "style": {
8728
9067
  color: props.cancelButtonColor
8729
9068
  },
@@ -8732,7 +9071,7 @@
8732
9071
  }, null), props.showConfirmButton && vue.createVNode(Button, {
8733
9072
  "size": "large",
8734
9073
  "text": props.confirmButtonText || t$7("confirm"),
8735
- "class": [bem$B("confirm"), {
9074
+ "class": [bem$A("confirm"), {
8736
9075
  [BORDER_LEFT]: props.showCancelButton
8737
9076
  }],
8738
9077
  "style": {
@@ -8742,19 +9081,19 @@
8742
9081
  "onClick": onConfirm
8743
9082
  }, null)]);
8744
9083
  const renderRoundButtons = () => vue.createVNode(ActionBar, {
8745
- "class": bem$B("footer")
9084
+ "class": bem$A("footer")
8746
9085
  }, {
8747
9086
  default: () => [props.showCancelButton && vue.createVNode(ActionBarButton, {
8748
9087
  "type": "warning",
8749
9088
  "text": props.cancelButtonText || t$7("cancel"),
8750
- "class": bem$B("cancel"),
9089
+ "class": bem$A("cancel"),
8751
9090
  "color": props.cancelButtonColor,
8752
9091
  "loading": loading.cancel,
8753
9092
  "onClick": onCancel
8754
9093
  }, null), props.showConfirmButton && vue.createVNode(ActionBarButton, {
8755
9094
  "type": "danger",
8756
9095
  "text": props.confirmButtonText || t$7("confirm"),
8757
- "class": bem$B("confirm"),
9096
+ "class": bem$A("confirm"),
8758
9097
  "color": props.confirmButtonColor,
8759
9098
  "loading": loading.confirm,
8760
9099
  "onClick": onConfirm
@@ -8777,7 +9116,7 @@
8777
9116
  return vue.createVNode(Popup, vue.mergeProps({
8778
9117
  "ref": root,
8779
9118
  "role": "dialog",
8780
- "class": [bem$B([theme]), className],
9119
+ "class": [bem$A([theme]), className],
8781
9120
  "style": {
8782
9121
  width: addUnit(width2)
8783
9122
  },
@@ -8799,7 +9138,7 @@
8799
9138
  state,
8800
9139
  toggle
8801
9140
  } = usePopupState();
8802
- return () => vue.createVNode(stdin_default$G, vue.mergeProps(state, {
9141
+ return () => vue.createVNode(stdin_default$F, vue.mergeProps(state, {
8803
9142
  "onUpdate:show": toggle
8804
9143
  }), null);
8805
9144
  }
@@ -8864,19 +9203,19 @@
8864
9203
  Dialog.resetDefaultOptions = () => {
8865
9204
  Dialog.currentOptions = extend({}, Dialog.defaultOptions);
8866
9205
  };
8867
- Dialog.Component = withInstall(stdin_default$G);
9206
+ Dialog.Component = withInstall(stdin_default$F);
8868
9207
  Dialog.install = (app) => {
8869
9208
  app.use(Dialog.Component);
8870
9209
  app.config.globalProperties.$dialog = Dialog;
8871
9210
  };
8872
- const [name$z, bem$A] = createNamespace("divider");
9211
+ const [name$y, bem$z] = createNamespace("divider");
8873
9212
  const dividerProps = {
8874
9213
  dashed: Boolean,
8875
9214
  hairline: truthProp,
8876
9215
  contentPosition: makeStringProp("center")
8877
9216
  };
8878
- var stdin_default$F = vue.defineComponent({
8879
- name: name$z,
9217
+ var stdin_default$E = vue.defineComponent({
9218
+ name: name$y,
8880
9219
  props: dividerProps,
8881
9220
  setup(props, {
8882
9221
  slots
@@ -8885,7 +9224,7 @@
8885
9224
  var _a;
8886
9225
  return vue.createVNode("div", {
8887
9226
  "role": "separator",
8888
- "class": bem$A({
9227
+ "class": bem$z({
8889
9228
  dashed: props.dashed,
8890
9229
  hairline: props.hairline,
8891
9230
  [`content-${props.contentPosition}`]: !!slots.default
@@ -8894,8 +9233,8 @@
8894
9233
  };
8895
9234
  }
8896
9235
  });
8897
- const Divider = withInstall(stdin_default$F);
8898
- const [name$y, bem$z] = createNamespace("dropdown-menu");
9236
+ const Divider = withInstall(stdin_default$E);
9237
+ const [name$x, bem$y] = createNamespace("dropdown-menu");
8899
9238
  const dropdownMenuProps = {
8900
9239
  overlay: truthProp,
8901
9240
  zIndex: numericProp,
@@ -8905,14 +9244,14 @@
8905
9244
  closeOnClickOutside: truthProp,
8906
9245
  closeOnClickOverlay: truthProp
8907
9246
  };
8908
- const DROPDOWN_KEY = Symbol(name$y);
8909
- var stdin_default$E = vue.defineComponent({
8910
- name: name$y,
9247
+ const DROPDOWN_KEY = Symbol(name$x);
9248
+ var stdin_default$D = vue.defineComponent({
9249
+ name: name$x,
8911
9250
  props: dropdownMenuProps,
8912
9251
  setup(props, {
8913
9252
  slots
8914
9253
  }) {
8915
- const id = useId();
9254
+ const id = useId$1();
8916
9255
  const root = vue.ref();
8917
9256
  const barRef = vue.ref();
8918
9257
  const offset2 = vue.ref(0);
@@ -8975,7 +9314,7 @@
8975
9314
  "id": `${id}-${index}`,
8976
9315
  "role": "button",
8977
9316
  "tabindex": disabled ? void 0 : 0,
8978
- "class": [bem$z("item", {
9317
+ "class": [bem$y("item", {
8979
9318
  disabled
8980
9319
  }), {
8981
9320
  [HAPTICS_FEEDBACK]: !disabled
@@ -8986,7 +9325,7 @@
8986
9325
  }
8987
9326
  }
8988
9327
  }, [vue.createVNode("span", {
8989
- "class": [bem$z("title", {
9328
+ "class": [bem$y("title", {
8990
9329
  down: showPopup === (props.direction === "down"),
8991
9330
  active: showPopup
8992
9331
  }), titleClass],
@@ -9010,18 +9349,18 @@
9010
9349
  var _a;
9011
9350
  return vue.createVNode("div", {
9012
9351
  "ref": root,
9013
- "class": bem$z()
9352
+ "class": bem$y()
9014
9353
  }, [vue.createVNode("div", {
9015
9354
  "ref": barRef,
9016
9355
  "style": barStyle.value,
9017
- "class": bem$z("bar", {
9356
+ "class": bem$y("bar", {
9018
9357
  opened: opened.value
9019
9358
  })
9020
9359
  }, [children.map(renderTitle)]), (_a = slots.default) == null ? void 0 : _a.call(slots)]);
9021
9360
  };
9022
9361
  }
9023
9362
  });
9024
- const [name$x, bem$y] = createNamespace("dropdown-item");
9363
+ const [name$w, bem$x] = createNamespace("dropdown-item");
9025
9364
  const dropdownItemProps = {
9026
9365
  title: String,
9027
9366
  options: makeArrayProp(),
@@ -9031,8 +9370,8 @@
9031
9370
  modelValue: unknownProp,
9032
9371
  titleClass: unknownProp
9033
9372
  };
9034
- var stdin_default$D = vue.defineComponent({
9035
- name: name$x,
9373
+ var stdin_default$C = vue.defineComponent({
9374
+ name: name$w,
9036
9375
  props: dropdownItemProps,
9037
9376
  emits: ["open", "opened", "close", "closed", "change", "update:modelValue"],
9038
9377
  setup(props, {
@@ -9099,7 +9438,7 @@
9099
9438
  const renderIcon = () => {
9100
9439
  if (active) {
9101
9440
  return vue.createVNode(Icon, {
9102
- "class": bem$y("icon"),
9441
+ "class": bem$x("icon"),
9103
9442
  "color": activeColor,
9104
9443
  "name": "success"
9105
9444
  }, null);
@@ -9110,7 +9449,7 @@
9110
9449
  "key": option.value,
9111
9450
  "icon": option.icon,
9112
9451
  "title": option.text,
9113
- "class": bem$y("option", {
9452
+ "class": bem$x("option", {
9114
9453
  active
9115
9454
  }),
9116
9455
  "style": {
@@ -9142,13 +9481,13 @@
9142
9481
  }
9143
9482
  return vue.withDirectives(vue.createVNode("div", {
9144
9483
  "style": style,
9145
- "class": bem$y([direction]),
9484
+ "class": bem$x([direction]),
9146
9485
  "onClick": onClickWrapper
9147
9486
  }, [vue.createVNode(Popup, {
9148
9487
  "show": state.showPopup,
9149
9488
  "onUpdate:show": ($event) => state.showPopup = $event,
9150
9489
  "role": "menu",
9151
- "class": bem$y("content"),
9490
+ "class": bem$x("content"),
9152
9491
  "overlay": overlay,
9153
9492
  "position": direction === "down" ? "top" : "bottom",
9154
9493
  "duration": state.transition ? duration : 0,
@@ -9186,147 +9525,8 @@
9186
9525
  };
9187
9526
  }
9188
9527
  });
9189
- const DropdownItem = withInstall(stdin_default$D);
9190
- const DropdownMenu = withInstall(stdin_default$E);
9191
- const prefix = "van-empty-network-";
9192
- const renderStop = (color, offset2, opacity) => vue.createVNode("stop", {
9193
- "stop-color": color,
9194
- "offset": `${offset2}%`,
9195
- "stop-opacity": opacity
9196
- }, null);
9197
- const Network = vue.createVNode("svg", {
9198
- "viewBox": "0 0 160 160"
9199
- }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
9200
- "id": `${prefix}1`,
9201
- "x1": "64%",
9202
- "y1": "100%",
9203
- "x2": "64%"
9204
- }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)]), vue.createVNode("linearGradient", {
9205
- "id": `${prefix}2`,
9206
- "x1": "50%",
9207
- "x2": "50%",
9208
- "y2": "84%"
9209
- }, [renderStop("#EBEDF0", 0), renderStop("#DCDEE0", 100, 0)]), vue.createVNode("linearGradient", {
9210
- "id": `${prefix}3`,
9211
- "x1": "100%",
9212
- "x2": "100%",
9213
- "y2": "100%"
9214
- }, [renderStop("#EAEDF0", 0), renderStop("#DCDEE0", 100)]), vue.createVNode("radialGradient", {
9215
- "id": `${prefix}4`,
9216
- "cx": "50%",
9217
- "cy": "0%",
9218
- "fx": "50%",
9219
- "fy": "0%",
9220
- "r": "100%",
9221
- "gradientTransform": "matrix(0 1 -.54 0 .5 -.5)"
9222
- }, [renderStop("#EBEDF0", 0), renderStop("#FFF", 100, 0)])]), vue.createVNode("g", {
9223
- "fill": "none"
9224
- }, [vue.createVNode("g", {
9225
- "opacity": ".8"
9226
- }, [vue.createVNode("path", {
9227
- "d": "M36 131V53H16v20H2v58h34z",
9228
- "fill": `url(#${prefix}1)`
9229
- }, null), vue.createVNode("path", {
9230
- "d": "M123 15h22v14h9v77h-31V15z",
9231
- "fill": `url(#${prefix}1)`
9232
- }, null)]), vue.createVNode("path", {
9233
- "fill": `url(#${prefix}4)`,
9234
- "d": "M0 139h160v21H0z"
9235
- }, null), vue.createVNode("path", {
9236
- "d": "M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z",
9237
- "fill": `url(#${prefix}2)`
9238
- }, null), vue.createVNode("g", {
9239
- "opacity": ".6",
9240
- "stroke-linecap": "round",
9241
- "stroke-width": "7"
9242
- }, [vue.createVNode("path", {
9243
- "d": "M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13",
9244
- "stroke": `url(#${prefix}3)`
9245
- }, null), vue.createVNode("path", {
9246
- "d": "M53 36a34 34 0 0 0 0 48",
9247
- "stroke": `url(#${prefix}3)`
9248
- }, null), vue.createVNode("path", {
9249
- "d": "M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13",
9250
- "stroke": `url(#${prefix}3)`
9251
- }, null), vue.createVNode("path", {
9252
- "d": "M106 84a34 34 0 0 0 0-48",
9253
- "stroke": `url(#${prefix}3)`
9254
- }, null)]), vue.createVNode("g", {
9255
- "transform": "translate(31 105)"
9256
- }, [vue.createVNode("rect", {
9257
- "fill": "#EBEDF0",
9258
- "width": "98",
9259
- "height": "34",
9260
- "rx": "2"
9261
- }, null), vue.createVNode("rect", {
9262
- "fill": "#FFF",
9263
- "x": "9",
9264
- "y": "8",
9265
- "width": "80",
9266
- "height": "18",
9267
- "rx": "1.1"
9268
- }, null), vue.createVNode("rect", {
9269
- "fill": "#EBEDF0",
9270
- "x": "15",
9271
- "y": "12",
9272
- "width": "18",
9273
- "height": "6",
9274
- "rx": "1.1"
9275
- }, null)])])]);
9276
- const [name$w, bem$x] = createNamespace("empty");
9277
- const PRESET_IMAGES = ["error", "search", "default"];
9278
- const emptyProps = {
9279
- image: makeStringProp("default"),
9280
- imageSize: numericProp,
9281
- description: String
9282
- };
9283
- var stdin_default$C = vue.defineComponent({
9284
- name: name$w,
9285
- props: emptyProps,
9286
- setup(props, {
9287
- slots
9288
- }) {
9289
- const renderImage = () => {
9290
- if (slots.image) {
9291
- return slots.image();
9292
- }
9293
- let {
9294
- image
9295
- } = props;
9296
- if (image === "network") {
9297
- return Network;
9298
- }
9299
- if (PRESET_IMAGES.includes(image)) {
9300
- image = `https://img.yzcdn.cn/vant/empty-image-${image}.png`;
9301
- }
9302
- return vue.createVNode("img", {
9303
- "src": image
9304
- }, null);
9305
- };
9306
- const renderDescription = () => {
9307
- const description = slots.description ? slots.description() : props.description;
9308
- if (description) {
9309
- return vue.createVNode("p", {
9310
- "class": bem$x("description")
9311
- }, [description]);
9312
- }
9313
- };
9314
- const renderBottom = () => {
9315
- if (slots.default) {
9316
- return vue.createVNode("div", {
9317
- "class": bem$x("bottom")
9318
- }, [slots.default()]);
9319
- }
9320
- };
9321
- return () => vue.createVNode("div", {
9322
- "class": bem$x()
9323
- }, [vue.createVNode("div", {
9324
- "class": bem$x("image"),
9325
- "style": getSizeStyle(props.imageSize)
9326
- }, [renderImage()]), renderDescription(), renderBottom()]);
9327
- }
9328
- });
9329
- const Empty = withInstall(stdin_default$C);
9528
+ const DropdownItem = withInstall(stdin_default$C);
9529
+ const DropdownMenu = withInstall(stdin_default$D);
9330
9530
  const [name$v, bem$w] = createNamespace("grid");
9331
9531
  const gridProps = {
9332
9532
  square: Boolean,
@@ -9980,6 +10180,7 @@
9980
10180
  children,
9981
10181
  linkChildren
9982
10182
  } = useChildren(INDEX_BAR_KEY);
10183
+ let selectActiveIndex;
9983
10184
  linkChildren({
9984
10185
  props
9985
10186
  });
@@ -10007,6 +10208,7 @@
10007
10208
  }
10008
10209
  return -1;
10009
10210
  };
10211
+ const getMatchAnchor = (index) => children.find((item) => String(item.index) === index);
10010
10212
  const onScroll = () => {
10011
10213
  if (isHidden(root)) {
10012
10214
  return;
@@ -10018,7 +10220,16 @@
10018
10220
  const scrollTop = getScrollTop(scrollParent.value);
10019
10221
  const scrollParentRect = useRect(scrollParent);
10020
10222
  const rects = children.map((item) => item.getRect(scrollParent.value, scrollParentRect));
10021
- const active = getActiveAnchor(scrollTop, rects);
10223
+ let active = -1;
10224
+ if (selectActiveIndex) {
10225
+ const match = getMatchAnchor(selectActiveIndex);
10226
+ if (match) {
10227
+ const rect = match.getRect(scrollParent.value, scrollParentRect);
10228
+ active = getActiveAnchor(rect.top, rects);
10229
+ }
10230
+ } else {
10231
+ active = getActiveAnchor(scrollTop, rects);
10232
+ }
10022
10233
  activeAnchor.value = indexList[active];
10023
10234
  if (sticky) {
10024
10235
  children.forEach((item, index) => {
@@ -10037,7 +10248,7 @@
10037
10248
  if (index === active) {
10038
10249
  state.active = true;
10039
10250
  state.top = Math.max(props.stickyOffsetTop, rects[index].top - scrollTop) + scrollParentRect.top;
10040
- } else if (index === active - 1) {
10251
+ } else if (index === active - 1 && selectActiveIndex === "") {
10041
10252
  const activeItemTop = rects[active].top - scrollTop;
10042
10253
  state.active = activeItemTop > 0;
10043
10254
  state.top = activeItemTop + scrollParentRect.top - rects[index].height;
@@ -10046,6 +10257,7 @@
10046
10257
  }
10047
10258
  });
10048
10259
  }
10260
+ selectActiveIndex = "";
10049
10261
  };
10050
10262
  const init = () => {
10051
10263
  vue.nextTick(onScroll);
@@ -10071,9 +10283,18 @@
10071
10283
  }, [index]);
10072
10284
  });
10073
10285
  const scrollTo = (index) => {
10074
- index = String(index);
10075
- const match = children.find((item) => String(item.index) === index);
10286
+ selectActiveIndex = String(index);
10287
+ const match = getMatchAnchor(selectActiveIndex);
10076
10288
  if (match) {
10289
+ const scrollTop = getScrollTop(scrollParent.value);
10290
+ const scrollParentRect = useRect(scrollParent);
10291
+ const {
10292
+ offsetHeight
10293
+ } = document.documentElement;
10294
+ if (scrollTop === offsetHeight - scrollParentRect.height) {
10295
+ onScroll();
10296
+ return;
10297
+ }
10077
10298
  match.$el.scrollIntoView();
10078
10299
  if (props.sticky && props.stickyOffsetTop) {
10079
10300
  setRootScrollTop(getRootScrollTop() - props.stickyOffsetTop);
@@ -10799,6 +11020,15 @@
10799
11020
  default: ""
10800
11021
  }
10801
11022
  };
11023
+ function shuffle(array) {
11024
+ for (let i = array.length - 1; i > 0; i--) {
11025
+ const j = Math.floor(Math.random() * (i + 1));
11026
+ const temp = array[i];
11027
+ array[i] = array[j];
11028
+ array[j] = temp;
11029
+ }
11030
+ return array;
11031
+ }
10802
11032
  var stdin_default$q = vue.defineComponent({
10803
11033
  name: name$l,
10804
11034
  props: numberKeyboardProps,
@@ -10813,7 +11043,7 @@
10813
11043
  text: i + 1
10814
11044
  }));
10815
11045
  if (props.randomKeyOrder) {
10816
- keys2.sort(() => Math.random() > 0.5 ? 1 : -1);
11046
+ shuffle(keys2);
10817
11047
  }
10818
11048
  return keys2;
10819
11049
  };
@@ -12525,33 +12755,53 @@
12525
12755
  }) {
12526
12756
  const touch = useTouch();
12527
12757
  const [itemRefs, setItemRefs] = useRefs();
12758
+ const groupRef = vue.ref();
12528
12759
  const untouchable = () => props.readonly || props.disabled || !props.touchable;
12529
12760
  const list = vue.computed(() => Array(+props.count).fill("").map((_, i) => getRateStatus(props.modelValue, i + 1, props.allowHalf, props.readonly)));
12530
12761
  let ranges;
12762
+ let groupRefRect;
12763
+ let minRectTop = Number.MAX_SAFE_INTEGER;
12764
+ let maxRectTop = Number.MIN_SAFE_INTEGER;
12531
12765
  const updateRanges = () => {
12766
+ groupRefRect = useRect(groupRef);
12532
12767
  const rects = itemRefs.value.map(useRect);
12533
12768
  ranges = [];
12534
12769
  rects.forEach((rect, index) => {
12770
+ minRectTop = Math.min(rect.top, minRectTop);
12771
+ maxRectTop = Math.max(rect.top, maxRectTop);
12535
12772
  if (props.allowHalf) {
12536
12773
  ranges.push({
12537
12774
  score: index + 0.5,
12538
- left: rect.left
12775
+ left: rect.left,
12776
+ top: rect.top,
12777
+ height: rect.height
12539
12778
  }, {
12540
12779
  score: index + 1,
12541
- left: rect.left + rect.width / 2
12780
+ left: rect.left + rect.width / 2,
12781
+ top: rect.top,
12782
+ height: rect.height
12542
12783
  });
12543
12784
  } else {
12544
12785
  ranges.push({
12545
12786
  score: index + 1,
12546
- left: rect.left
12787
+ left: rect.left,
12788
+ top: rect.top,
12789
+ height: rect.height
12547
12790
  });
12548
12791
  }
12549
12792
  });
12550
12793
  };
12551
- const getScoreByPosition = (x) => {
12794
+ const getScoreByPosition = (x, y) => {
12552
12795
  for (let i = ranges.length - 1; i > 0; i--) {
12553
- if (x > ranges[i].left) {
12554
- return ranges[i].score;
12796
+ if (y >= groupRefRect.top && y <= groupRefRect.bottom) {
12797
+ if (x > ranges[i].left && y >= ranges[i].top && y <= ranges[i].top + ranges[i].height) {
12798
+ return ranges[i].score;
12799
+ }
12800
+ } else {
12801
+ const curTop = y < groupRefRect.top ? minRectTop : maxRectTop;
12802
+ if (x > ranges[i].left && ranges[i].top === curTop) {
12803
+ return ranges[i].score;
12804
+ }
12555
12805
  }
12556
12806
  }
12557
12807
  return props.allowHalf ? 0.5 : 1;
@@ -12576,10 +12826,11 @@
12576
12826
  touch.move(event);
12577
12827
  if (touch.isHorizontal()) {
12578
12828
  const {
12579
- clientX
12829
+ clientX,
12830
+ clientY
12580
12831
  } = event.touches[0];
12581
12832
  preventDefault(event);
12582
- select(getScoreByPosition(clientX));
12833
+ select(getScoreByPosition(clientX, clientY));
12583
12834
  }
12584
12835
  };
12585
12836
  const renderStar = (item, index) => {
@@ -12608,7 +12859,7 @@
12608
12859
  }
12609
12860
  const onClickItem = (event) => {
12610
12861
  updateRanges();
12611
- select(allowHalf ? getScoreByPosition(event.clientX) : score);
12862
+ select(allowHalf ? getScoreByPosition(event.clientX, event.clientY) : score);
12612
12863
  };
12613
12864
  return vue.createVNode("div", {
12614
12865
  "key": index,
@@ -12646,6 +12897,7 @@
12646
12897
  };
12647
12898
  useCustomFieldValue(() => props.modelValue);
12648
12899
  return () => vue.createVNode("div", {
12900
+ "ref": groupRef,
12649
12901
  "role": "radiogroup",
12650
12902
  "class": bem$f({
12651
12903
  readonly: props.readonly,
@@ -12680,7 +12932,7 @@
12680
12932
  slots,
12681
12933
  attrs
12682
12934
  }) {
12683
- const id = useId();
12935
+ const id = useId$1();
12684
12936
  const filedRef = vue.ref();
12685
12937
  const onCancel = () => {
12686
12938
  if (!slots.action) {
@@ -12770,14 +13022,17 @@
12770
13022
  }
12771
13023
  });
12772
13024
  const Search = withInstall(stdin_default$j);
12773
- const PRESET_ICONS = ["qq", "link", "weibo", "wechat", "poster", "qrcode", "weapp-qrcode", "wechat-moments"];
12774
13025
  const popupInheritKeys = [...popupSharedPropKeys, "round", "closeOnPopstate", "safeAreaInsetBottom"];
12775
- function getIconURL(icon) {
12776
- if (PRESET_ICONS.includes(icon)) {
12777
- return `https://img.yzcdn.cn/vant/share-sheet-${icon}.png`;
12778
- }
12779
- return icon;
12780
- }
13026
+ const iconMap = {
13027
+ qq: "qq",
13028
+ link: "link-o",
13029
+ weibo: "weibo",
13030
+ qrcode: "qr",
13031
+ poster: "photo-o",
13032
+ wechat: "wechat",
13033
+ "weapp-qrcode": "miniprogram-o",
13034
+ "wechat-moments": "wechat-moments"
13035
+ };
12781
13036
  const [name$d, bem$d, t$2] = createNamespace("share-sheet");
12782
13037
  const shareSheetProps = extend({}, popupSharedProps, {
12783
13038
  title: String,
@@ -12815,6 +13070,19 @@
12815
13070
  }, [description])]);
12816
13071
  }
12817
13072
  };
13073
+ const renderIcon = (icon) => {
13074
+ if (iconMap[icon]) {
13075
+ return vue.createVNode("div", {
13076
+ "class": bem$d("icon", [icon])
13077
+ }, [vue.createVNode(Icon, {
13078
+ "name": iconMap[icon] || icon
13079
+ }, null)]);
13080
+ }
13081
+ return vue.createVNode("img", {
13082
+ "src": icon,
13083
+ "class": bem$d("image-icon")
13084
+ }, null);
13085
+ };
12818
13086
  const renderOption = (option, index) => {
12819
13087
  const {
12820
13088
  name: name2,
@@ -12827,10 +13095,7 @@
12827
13095
  "tabindex": 0,
12828
13096
  "class": [bem$d("option"), className, HAPTICS_FEEDBACK],
12829
13097
  "onClick": () => onSelect(option, index)
12830
- }, [vue.createVNode("img", {
12831
- "src": getIconURL(icon),
12832
- "class": bem$d("icon")
12833
- }, null), name2 && vue.createVNode("span", {
13098
+ }, [renderIcon(icon), name2 && vue.createVNode("span", {
12834
13099
  "class": bem$d("name")
12835
13100
  }, [name2]), description && vue.createVNode("span", {
12836
13101
  "class": bem$d("option-description")
@@ -14222,7 +14487,6 @@
14222
14487
  });
14223
14488
  const TreeSelect = withInstall(stdin_default$6);
14224
14489
  const [name, bem, t] = createNamespace("uploader");
14225
- const toArray = (item) => Array.isArray(item) ? item : [item];
14226
14490
  function readFileContent(file, resultType) {
14227
14491
  return new Promise((resolve) => {
14228
14492
  if (resultType === "file") {
@@ -14288,7 +14552,7 @@
14288
14552
  imageFit: String,
14289
14553
  lazyLoad: Boolean,
14290
14554
  deletable: Boolean,
14291
- previewSize: numericProp,
14555
+ previewSize: [Number, String, Array],
14292
14556
  beforeDelete: Function
14293
14557
  },
14294
14558
  emits: ["delete", "preview"],
@@ -14362,16 +14626,19 @@
14362
14626
  };
14363
14627
  const renderPreview = () => {
14364
14628
  const {
14365
- item
14629
+ item,
14630
+ lazyLoad,
14631
+ imageFit,
14632
+ previewSize
14366
14633
  } = props;
14367
14634
  if (isImageFile(item)) {
14368
14635
  return vue.createVNode(Image$1, {
14369
- "fit": props.imageFit,
14636
+ "fit": imageFit,
14370
14637
  "src": item.content || item.url,
14371
14638
  "class": bem("preview-image"),
14372
- "width": props.previewSize,
14373
- "height": props.previewSize,
14374
- "lazyLoad": props.lazyLoad,
14639
+ "width": Array.isArray(previewSize) ? previewSize[0] : previewSize,
14640
+ "height": Array.isArray(previewSize) ? previewSize[1] : previewSize,
14641
+ "lazyLoad": lazyLoad,
14375
14642
  "onClick": onPreview
14376
14643
  }, {
14377
14644
  default: renderCover
@@ -14411,7 +14678,7 @@
14411
14678
  modelValue: makeArrayProp(),
14412
14679
  beforeRead: Function,
14413
14680
  beforeDelete: Function,
14414
- previewSize: numericProp,
14681
+ previewSize: [Number, String, Array],
14415
14682
  previewImage: truthProp,
14416
14683
  previewOptions: Object,
14417
14684
  previewFullImage: truthProp,
@@ -15478,7 +15745,7 @@
15478
15745
  });
15479
15746
  }
15480
15747
  };
15481
- const version = "3.4.6";
15748
+ const version = "3.4.9";
15482
15749
  function install(app) {
15483
15750
  const components = [
15484
15751
  ActionBar,