vant 3.2.8 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/address-edit/AddressEdit.js +155 -180
- package/es/address-edit/AddressEditDetail.d.ts +10 -9
- package/es/address-edit/AddressEditDetail.js +6 -6
- package/es/button/Button.js +2 -2
- package/es/calendar/CalendarHeader.js +1 -3
- package/es/cascader/Cascader.js +10 -2
- package/es/checkbox/Checker.js +1 -1
- package/es/checkbox/types.d.ts +2 -6
- package/es/composables/use-id.d.ts +1 -0
- package/es/composables/use-id.js +14 -0
- package/es/composables/use-route.d.ts +1 -1
- package/es/composables/use-route.js +4 -4
- package/es/count-down/CountDown.js +1 -0
- package/es/coupon-list/CouponList.js +40 -24
- package/es/coupon-list/index.css +1 -1
- package/es/coupon-list/index.less +0 -5
- package/es/dropdown-item/DropdownItem.js +7 -2
- package/es/dropdown-item/types.d.ts +2 -6
- package/es/dropdown-menu/DropdownMenu.js +7 -3
- package/es/dropdown-menu/types.d.ts +1 -0
- package/es/empty/Network.js +22 -34
- package/es/field/Field.d.ts +1 -1
- package/es/field/Field.js +13 -5
- package/es/field/index.d.ts +2 -2
- package/es/field/types.d.ts +7 -6
- package/es/form/Form.js +2 -2
- package/es/image/Image.js +4 -9
- package/es/image-preview/ImagePreview.js +3 -4
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/lazyload/index.d.ts +1 -1
- package/es/lazyload/index.js +1 -1
- package/es/lazyload/vue-lazyload/index.d.ts +55 -0
- package/es/lazyload/vue-lazyload/index.js +46 -0
- package/es/lazyload/vue-lazyload/lazy-component.js +53 -0
- package/es/lazyload/vue-lazyload/lazy-container.js +98 -0
- package/es/lazyload/vue-lazyload/lazy-image.js +115 -0
- package/es/lazyload/vue-lazyload/lazy.js +507 -0
- package/es/lazyload/vue-lazyload/listener.js +241 -0
- package/es/lazyload/vue-lazyload/util.js +183 -0
- package/es/list/List.js +3 -1
- package/es/number-keyboard/NumberKeyboardKey.js +4 -4
- package/es/pagination/Pagination.js +67 -49
- package/es/pagination/index.css +1 -1
- package/es/pagination/index.less +32 -31
- package/es/password-input/PasswordInput.d.ts +1 -1
- package/es/password-input/index.d.ts +1 -1
- package/es/popover/Popover.js +2 -0
- package/es/popup/Popup.d.ts +1 -2
- package/es/popup/Popup.js +2 -5
- package/es/popup/index.d.ts +1 -2
- package/es/rate/Rate.js +5 -3
- package/es/search/Search.js +8 -2
- package/es/sidebar/Sidebar.js +1 -0
- package/es/sidebar-item/SidebarItem.js +4 -1
- package/es/slider/Slider.js +5 -3
- package/es/stepper/Stepper.js +11 -8
- package/es/swipe/Swipe.js +3 -4
- package/es/swipe/types.d.ts +1 -3
- package/es/switch/Switch.js +1 -0
- package/es/switch/index.css +1 -1
- package/es/switch/index.less +2 -0
- package/es/tab/Tab.js +17 -4
- package/es/tab/index.css +1 -1
- package/es/tab/index.less +1 -1
- package/es/tabbar/Tabbar.d.ts +1 -1
- package/es/tabbar/Tabbar.js +10 -10
- package/es/tabbar-item/TabbarItem.js +11 -4
- package/es/tabs/Tabs.js +10 -5
- package/es/tabs/TabsTitle.d.ts +6 -0
- package/es/tabs/TabsTitle.js +7 -1
- package/es/tabs/types.d.ts +1 -0
- package/es/uploader/UploaderPreviewItem.js +4 -1
- package/es/uploader/utils.d.ts +2 -2
- package/es/uploader/utils.js +2 -2
- package/es/utils/dom.d.ts +1 -0
- package/es/utils/dom.js +6 -2
- package/es/utils/format.js +6 -5
- package/es/vue-tsx-shim.d.ts +1 -0
- package/lib/address-edit/AddressEdit.js +156 -180
- package/lib/address-edit/AddressEditDetail.d.ts +10 -9
- package/lib/address-edit/AddressEditDetail.js +6 -6
- package/lib/button/Button.js +1 -1
- package/lib/calendar/CalendarHeader.js +1 -3
- package/lib/cascader/Cascader.js +10 -2
- package/lib/checkbox/Checker.js +1 -1
- package/lib/checkbox/types.d.ts +2 -6
- package/lib/composables/use-id.d.ts +1 -0
- package/lib/composables/use-id.js +21 -0
- package/lib/composables/use-route.d.ts +1 -1
- package/lib/composables/use-route.js +4 -4
- package/lib/count-down/CountDown.js +1 -0
- package/lib/coupon-list/CouponList.js +39 -22
- package/lib/coupon-list/index.css +1 -1
- package/lib/coupon-list/index.less +0 -5
- package/lib/dropdown-item/DropdownItem.js +7 -2
- package/lib/dropdown-item/types.d.ts +2 -6
- package/lib/dropdown-menu/DropdownMenu.js +7 -2
- package/lib/dropdown-menu/types.d.ts +1 -0
- package/lib/empty/Network.js +22 -34
- package/lib/field/Field.d.ts +1 -1
- package/lib/field/Field.js +14 -5
- package/lib/field/index.d.ts +2 -2
- package/lib/field/types.d.ts +7 -6
- package/lib/form/Form.js +1 -1
- package/lib/image/Image.js +4 -9
- package/lib/image-preview/ImagePreview.js +1 -2
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/lazyload/index.d.ts +1 -1
- package/lib/lazyload/index.js +3 -3
- package/lib/lazyload/vue-lazyload/index.d.ts +55 -0
- package/lib/lazyload/vue-lazyload/index.js +58 -0
- package/lib/lazyload/vue-lazyload/lazy-component.js +62 -0
- package/lib/lazyload/vue-lazyload/lazy-container.js +106 -0
- package/lib/lazyload/vue-lazyload/lazy-image.js +125 -0
- package/lib/lazyload/vue-lazyload/lazy.js +520 -0
- package/lib/lazyload/vue-lazyload/listener.js +251 -0
- package/lib/lazyload/vue-lazyload/util.js +213 -0
- package/lib/list/List.js +3 -1
- package/lib/number-keyboard/NumberKeyboardKey.js +3 -3
- package/lib/pagination/Pagination.js +65 -47
- package/lib/pagination/index.css +1 -1
- package/lib/pagination/index.less +32 -31
- package/lib/password-input/PasswordInput.d.ts +1 -1
- package/lib/password-input/index.d.ts +1 -1
- package/lib/popover/Popover.js +2 -0
- package/lib/popup/Popup.d.ts +1 -2
- package/lib/popup/Popup.js +2 -5
- package/lib/popup/index.d.ts +1 -2
- package/lib/rate/Rate.js +5 -3
- package/lib/search/Search.js +9 -2
- package/lib/sidebar/Sidebar.js +1 -0
- package/lib/sidebar-item/SidebarItem.js +4 -1
- package/lib/slider/Slider.js +5 -3
- package/lib/stepper/Stepper.js +11 -8
- package/lib/swipe/Swipe.js +1 -2
- package/lib/swipe/types.d.ts +1 -3
- package/lib/switch/Switch.js +1 -0
- package/lib/switch/index.css +1 -1
- package/lib/switch/index.less +2 -0
- package/lib/tab/Tab.js +19 -4
- package/lib/tab/index.css +1 -1
- package/lib/tab/index.less +1 -1
- package/lib/tabbar/Tabbar.d.ts +1 -1
- package/lib/tabbar/Tabbar.js +10 -10
- package/lib/tabbar-item/TabbarItem.js +11 -4
- package/lib/tabs/Tabs.js +9 -3
- package/lib/tabs/TabsTitle.d.ts +6 -0
- package/lib/tabs/TabsTitle.js +7 -1
- package/lib/tabs/types.d.ts +1 -0
- package/lib/uploader/UploaderPreviewItem.js +3 -0
- package/lib/uploader/utils.d.ts +2 -2
- package/lib/uploader/utils.js +3 -2
- package/lib/utils/dom.d.ts +1 -0
- package/lib/utils/dom.js +9 -2
- package/lib/utils/format.js +7 -5
- package/lib/vant.es.js +1086 -1068
- package/lib/vant.es.min.js +1086 -1068
- package/lib/vant.js +1085 -1067
- package/lib/vant.min.js +1 -1
- package/lib/vue-tsx-shim.d.ts +1 -0
- package/package.json +4 -4
- package/vetur/attributes.json +340 -340
- package/vetur/tags.json +119 -119
- package/vetur/web-types.json +1143 -1143
- package/es/composables/use-link-field.d.ts +0 -0
- package/es/composables/use-link-field.js +0 -0
- package/lib/composables/use-link-field.d.ts +0 -0
- package/lib/composables/use-link-field.js +0 -1
package/es/tabs/Tabs.js
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
2
2
|
import { ref, watch, computed, reactive, nextTick, onActivated, defineComponent, getCurrentInstance } from 'vue'; // Utils
|
3
3
|
|
4
|
-
import { pick, isDef, addUnit, isHidden, unitToPx, truthProp, numericProp, getElementTop, makeStringProp, callInterceptor, createNamespace, makeNumericProp, setRootScrollTop, BORDER_TOP_BOTTOM } from '../utils';
|
4
|
+
import { pick, isDef, addUnit, isHidden, unitToPx, truthProp, numericProp, windowWidth, getElementTop, makeStringProp, callInterceptor, createNamespace, makeNumericProp, setRootScrollTop, BORDER_TOP_BOTTOM } from '../utils';
|
5
5
|
import { scrollLeftTo, scrollTopTo } from './utils'; // Composables
|
6
6
|
|
7
|
-
import { useRect, useChildren,
|
7
|
+
import { useRect, useChildren, useScrollParent, useEventListener, onMountedOrActivated } from '@vant/use';
|
8
|
+
import { useId } from '../composables/use-id';
|
8
9
|
import { route } from '../composables/use-route';
|
9
10
|
import { useRefs } from '../composables/use-refs';
|
10
11
|
import { useExpose } from '../composables/use-expose';
|
@@ -68,7 +69,7 @@ export default defineComponent({
|
|
68
69
|
var root = ref();
|
69
70
|
var navRef = ref();
|
70
71
|
var wrapRef = ref();
|
71
|
-
var
|
72
|
+
var id = useId();
|
72
73
|
var scroller = useScrollParent(root);
|
73
74
|
var [titleRefs, setTitleRefs] = useRefs();
|
74
75
|
var {
|
@@ -285,12 +286,14 @@ export default defineComponent({
|
|
285
286
|
};
|
286
287
|
|
287
288
|
var renderNav = () => children.map((item, index) => _createVNode(TabsTitle, _mergeProps({
|
289
|
+
"id": id + "-" + index,
|
288
290
|
"ref": setTitleRefs(index),
|
289
291
|
"type": props.type,
|
290
292
|
"color": props.color,
|
291
293
|
"style": item.titleStyle,
|
292
294
|
"class": item.titleClass,
|
293
295
|
"isActive": index === state.currentIndex,
|
296
|
+
"controls": item.id,
|
294
297
|
"scrollable": scrollable.value,
|
295
298
|
"renderTitle": item.$slots.title,
|
296
299
|
"activeColor": props.titleActiveColor,
|
@@ -318,14 +321,15 @@ export default defineComponent({
|
|
318
321
|
"class": bem('nav', [type, {
|
319
322
|
complete: scrollable.value
|
320
323
|
}]),
|
321
|
-
"style": navStyle.value
|
324
|
+
"style": navStyle.value,
|
325
|
+
"aria-orientation": "horizontal"
|
322
326
|
}, [(_slots$navLeft = slots['nav-left']) == null ? void 0 : _slots$navLeft.call(slots), renderNav(), type === 'line' && _createVNode("div", {
|
323
327
|
"class": bem('line'),
|
324
328
|
"style": state.lineStyle
|
325
329
|
}, null), (_slots$navRight = slots['nav-right']) == null ? void 0 : _slots$navRight.call(slots)])]);
|
326
330
|
};
|
327
331
|
|
328
|
-
watch([() => props.color,
|
332
|
+
watch([() => props.color, windowWidth], setLine);
|
329
333
|
watch(() => props.active, value => {
|
330
334
|
if (value !== currentName.value) {
|
331
335
|
setCurrentIndexByName(value);
|
@@ -375,6 +379,7 @@ export default defineComponent({
|
|
375
379
|
target: scroller
|
376
380
|
});
|
377
381
|
linkChildren({
|
382
|
+
id,
|
378
383
|
props,
|
379
384
|
setLine,
|
380
385
|
onRendered,
|
package/es/tabs/TabsTitle.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{
|
2
|
+
id: StringConstructor;
|
2
3
|
dot: BooleanConstructor;
|
3
4
|
type: StringConstructor;
|
4
5
|
color: StringConstructor;
|
@@ -6,6 +7,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
6
7
|
badge: (NumberConstructor | StringConstructor)[];
|
7
8
|
isActive: BooleanConstructor;
|
8
9
|
disabled: BooleanConstructor;
|
10
|
+
controls: StringConstructor;
|
9
11
|
scrollable: BooleanConstructor;
|
10
12
|
activeColor: StringConstructor;
|
11
13
|
renderTitle: FunctionConstructor;
|
@@ -15,6 +17,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
15
17
|
default: true;
|
16
18
|
};
|
17
19
|
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("@vue/runtime-core").ComponentCustomProps, Readonly<{
|
20
|
+
id?: unknown;
|
18
21
|
dot?: unknown;
|
19
22
|
type?: unknown;
|
20
23
|
color?: unknown;
|
@@ -22,6 +25,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
22
25
|
badge?: unknown;
|
23
26
|
isActive?: unknown;
|
24
27
|
disabled?: unknown;
|
28
|
+
controls?: unknown;
|
25
29
|
scrollable?: unknown;
|
26
30
|
activeColor?: unknown;
|
27
31
|
renderTitle?: unknown;
|
@@ -38,6 +42,8 @@ declare const _default: import("vue").DefineComponent<{
|
|
38
42
|
badge?: string | number | undefined;
|
39
43
|
title?: string | undefined;
|
40
44
|
color?: string | undefined;
|
45
|
+
controls?: string | undefined;
|
46
|
+
id?: string | undefined;
|
41
47
|
activeColor?: string | undefined;
|
42
48
|
inactiveColor?: string | undefined;
|
43
49
|
renderTitle?: Function | undefined;
|
package/es/tabs/TabsTitle.js
CHANGED
@@ -6,6 +6,7 @@ var [name, bem] = createNamespace('tab');
|
|
6
6
|
export default defineComponent({
|
7
7
|
name,
|
8
8
|
props: {
|
9
|
+
id: String,
|
9
10
|
dot: Boolean,
|
10
11
|
type: String,
|
11
12
|
color: String,
|
@@ -13,6 +14,7 @@ export default defineComponent({
|
|
13
14
|
badge: numericProp,
|
14
15
|
isActive: Boolean,
|
15
16
|
disabled: Boolean,
|
17
|
+
controls: String,
|
16
18
|
scrollable: Boolean,
|
17
19
|
activeColor: String,
|
18
20
|
renderTitle: Function,
|
@@ -75,13 +77,17 @@ export default defineComponent({
|
|
75
77
|
};
|
76
78
|
|
77
79
|
return () => _createVNode("div", {
|
80
|
+
"id": props.id,
|
78
81
|
"role": "tab",
|
79
82
|
"class": [bem({
|
80
83
|
active: props.isActive,
|
81
84
|
disabled: props.disabled
|
82
85
|
})],
|
83
86
|
"style": style.value,
|
84
|
-
"
|
87
|
+
"tabindex": props.disabled ? undefined : props.isActive ? 0 : -1,
|
88
|
+
"aria-selected": props.isActive,
|
89
|
+
"aria-disabled": props.disabled || undefined,
|
90
|
+
"aria-controls": props.controls
|
85
91
|
}, [renderText()]);
|
86
92
|
}
|
87
93
|
|
package/es/tabs/types.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
|
2
2
|
import { defineComponent } from 'vue'; // Utils
|
3
3
|
|
4
|
-
import { bem, isImageFile } from './utils';
|
4
|
+
import { t, bem, isImageFile } from './utils';
|
5
5
|
import { isDef, extend, numericProp, getSizeStyle, callInterceptor, makeRequiredProp } from '../utils'; // Components
|
6
6
|
|
7
7
|
import { Icon } from '../icon';
|
@@ -71,7 +71,10 @@ export default defineComponent({
|
|
71
71
|
var renderDeleteIcon = () => {
|
72
72
|
if (props.deletable && props.item.status !== 'uploading') {
|
73
73
|
return _createVNode("div", {
|
74
|
+
"role": "button",
|
74
75
|
"class": bem('preview-delete'),
|
76
|
+
"tabindex": 0,
|
77
|
+
"aria-label": t('delete'),
|
75
78
|
"onClick": onDelete
|
76
79
|
}, [_createVNode(Icon, {
|
77
80
|
"name": "cross",
|
package/es/uploader/utils.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { UploaderMaxSize, UploaderResultType, UploaderFileListItem } from './types';
|
2
|
-
declare const name: string, bem: (el?: import("../utils").Mods | undefined, mods?: import("../utils").Mods | undefined) => import("../utils").Mods;
|
3
|
-
export { name, bem };
|
2
|
+
declare const name: string, bem: (el?: import("../utils").Mods | undefined, mods?: import("../utils").Mods | undefined) => import("../utils").Mods, t: (path: string, ...args: unknown[]) => any;
|
3
|
+
export { name, bem, t };
|
4
4
|
export declare const toArray: <T>(item: T | T[]) => T[];
|
5
5
|
export declare function readFileContent(file: File, resultType: UploaderResultType): Promise<string | void>;
|
6
6
|
export declare function isOversize(items: UploaderFileListItem | UploaderFileListItem[], maxSize: UploaderMaxSize): boolean;
|
package/es/uploader/utils.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { createNamespace, isFunction } from '../utils';
|
2
|
-
var [name, bem] = createNamespace('uploader');
|
3
|
-
export { name, bem };
|
2
|
+
var [name, bem, t] = createNamespace('uploader');
|
3
|
+
export { name, bem, t };
|
4
4
|
export var toArray = item => Array.isArray(item) ? item : [item];
|
5
5
|
export function readFileContent(file, resultType) {
|
6
6
|
return new Promise(resolve => {
|
package/es/utils/dom.d.ts
CHANGED
@@ -9,3 +9,4 @@ export declare function resetScroll(): void;
|
|
9
9
|
export declare const stopPropagation: (event: Event) => void;
|
10
10
|
export declare function preventDefault(event: Event, isStopPropagation?: boolean): void;
|
11
11
|
export declare function isHidden(elementRef: HTMLElement | Ref<HTMLElement | undefined>): boolean;
|
12
|
+
export declare const windowWidth: Ref<number>, windowHeight: Ref<number>;
|
package/es/utils/dom.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { useRect } from '@vant/use';
|
1
|
+
import { useRect, useWindowSize } from '@vant/use';
|
2
2
|
import { unref } from 'vue';
|
3
3
|
import { isIOS as checkIsIOS } from './validate';
|
4
4
|
export function getScrollTop(el) {
|
@@ -62,4 +62,8 @@ export function isHidden(elementRef) {
|
|
62
62
|
|
63
63
|
var parentHidden = el.offsetParent === null && style.position !== 'fixed';
|
64
64
|
return hidden || parentHidden;
|
65
|
-
}
|
65
|
+
}
|
66
|
+
export var {
|
67
|
+
width: windowWidth,
|
68
|
+
height: windowHeight
|
69
|
+
} = useWindowSize();
|
package/es/utils/format.js
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
import { inBrowser } from './basic';
|
2
|
+
import { windowWidth, windowHeight } from './dom';
|
2
3
|
import { isDef, isNumeric } from './validate';
|
3
4
|
export function addUnit(value) {
|
4
|
-
if (
|
5
|
-
return
|
5
|
+
if (isDef(value)) {
|
6
|
+
return isNumeric(value) ? value + "px" : String(value);
|
6
7
|
}
|
7
8
|
|
8
|
-
return
|
9
|
+
return undefined;
|
9
10
|
}
|
10
11
|
export function getSizeStyle(originSize) {
|
11
12
|
if (isDef(originSize)) {
|
@@ -45,12 +46,12 @@ function convertRem(value) {
|
|
45
46
|
|
46
47
|
function convertVw(value) {
|
47
48
|
value = value.replace(/vw/g, '');
|
48
|
-
return +value *
|
49
|
+
return +value * windowWidth.value / 100;
|
49
50
|
}
|
50
51
|
|
51
52
|
function convertVh(value) {
|
52
53
|
value = value.replace(/vh/g, '');
|
53
|
-
return +value *
|
54
|
+
return +value * windowHeight.value / 100;
|
54
55
|
}
|
55
56
|
|
56
57
|
export function unitToPx(value) {
|