vant 4.8.2 → 4.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/es/dropdown-menu/DropdownMenu.mjs +2 -2
  2. package/es/icon/index.css +1 -1
  3. package/es/image/Image.d.ts +6 -8
  4. package/es/image/index.d.ts +6 -6
  5. package/es/image/types.d.ts +3 -0
  6. package/es/image-preview/ImagePreview.d.ts +13 -0
  7. package/es/image-preview/ImagePreview.mjs +2 -0
  8. package/es/image-preview/ImagePreviewItem.d.ts +4 -0
  9. package/es/image-preview/ImagePreviewItem.mjs +7 -1
  10. package/es/image-preview/index.d.ts +9 -0
  11. package/es/image-preview/types.d.ts +1 -0
  12. package/es/index.d.ts +1 -1
  13. package/es/index.mjs +1 -1
  14. package/es/notify/Notify.mjs +5 -8
  15. package/es/picker/PickerToolbar.mjs +10 -2
  16. package/es/tab/TabTitle.d.ts +1 -1
  17. package/es/tabs/index.css +1 -1
  18. package/es/text-ellipsis/TextEllipsis.mjs +11 -5
  19. package/es/toast/Toast.d.ts +3 -0
  20. package/es/toast/Toast.mjs +3 -2
  21. package/es/toast/index.d.ts +2 -0
  22. package/es/toast/types.d.ts +3 -2
  23. package/es/uploader/Uploader.d.ts +7 -8
  24. package/es/uploader/UploaderPreviewItem.d.ts +2 -3
  25. package/es/uploader/index.d.ts +5 -5
  26. package/es/utils/constant.d.ts +7 -7
  27. package/lib/dropdown-menu/DropdownMenu.js +1 -1
  28. package/lib/icon/index.css +1 -1
  29. package/lib/image/Image.d.ts +6 -8
  30. package/lib/image/index.d.ts +6 -6
  31. package/lib/image/types.d.ts +3 -0
  32. package/lib/image-preview/ImagePreview.d.ts +13 -0
  33. package/lib/image-preview/ImagePreview.js +2 -0
  34. package/lib/image-preview/ImagePreviewItem.d.ts +4 -0
  35. package/lib/image-preview/ImagePreviewItem.js +7 -1
  36. package/lib/image-preview/index.d.ts +9 -0
  37. package/lib/image-preview/types.d.ts +1 -0
  38. package/lib/index.css +1 -1
  39. package/lib/index.d.ts +1 -1
  40. package/lib/index.js +1 -1
  41. package/lib/notify/Notify.js +3 -6
  42. package/lib/picker/PickerToolbar.js +10 -2
  43. package/lib/tab/TabTitle.d.ts +1 -1
  44. package/lib/tabs/index.css +1 -1
  45. package/lib/text-ellipsis/TextEllipsis.js +11 -5
  46. package/lib/toast/Toast.d.ts +3 -0
  47. package/lib/toast/Toast.js +3 -2
  48. package/lib/toast/index.d.ts +2 -0
  49. package/lib/toast/types.d.ts +3 -2
  50. package/lib/uploader/Uploader.d.ts +7 -8
  51. package/lib/uploader/UploaderPreviewItem.d.ts +2 -3
  52. package/lib/uploader/index.d.ts +5 -5
  53. package/lib/utils/constant.d.ts +7 -7
  54. package/lib/vant.cjs.js +39 -19
  55. package/lib/vant.es.js +40 -20
  56. package/lib/vant.js +45 -22
  57. package/lib/vant.min.js +6 -1
  58. package/lib/web-types.json +1 -1
  59. package/package.json +10 -9
package/lib/index.d.ts CHANGED
@@ -106,4 +106,4 @@ declare namespace _default {
106
106
  }
107
107
  export default _default;
108
108
  export function install(app: any): void;
109
- export const version: "4.8.2";
109
+ export const version: "4.8.4";
package/lib/index.js CHANGED
@@ -226,7 +226,7 @@ __reExport(stdin_exports, require("./toast"), module.exports);
226
226
  __reExport(stdin_exports, require("./tree-select"), module.exports);
227
227
  __reExport(stdin_exports, require("./uploader"), module.exports);
228
228
  __reExport(stdin_exports, require("./watermark"), module.exports);
229
- const version = "4.8.2";
229
+ const version = "4.8.4";
230
230
  function install(app) {
231
231
  const components = [
232
232
  import_action_bar.ActionBar,
@@ -27,6 +27,7 @@ var import_utils = require("../utils");
27
27
  var import_popup = require("../popup");
28
28
  var import_shared = require("../popup/shared");
29
29
  const [name, bem] = (0, import_utils.createNamespace)("notify");
30
+ const popupInheritProps = ["lockScroll", "position", "show", "teleport", "zIndex"];
30
31
  const notifyProps = (0, import_utils.extend)({}, import_shared.popupSharedProps, {
31
32
  type: (0, import_utils.makeStringProp)("danger"),
32
33
  color: String,
@@ -45,20 +46,16 @@ var stdin_default = (0, import_vue2.defineComponent)({
45
46
  slots
46
47
  }) {
47
48
  const updateShow = (show) => emit("update:show", show);
48
- return () => (0, import_vue.createVNode)(import_popup.Popup, {
49
- "show": props.show,
49
+ return () => (0, import_vue.createVNode)(import_popup.Popup, (0, import_vue.mergeProps)({
50
50
  "class": [bem([props.type]), props.className],
51
51
  "style": {
52
52
  color: props.color,
53
53
  background: props.background
54
54
  },
55
55
  "overlay": false,
56
- "zIndex": props.zIndex,
57
- "position": props.position,
58
56
  "duration": 0.2,
59
- "lockScroll": props.lockScroll,
60
57
  "onUpdate:show": updateShow
61
- }, {
58
+ }, (0, import_utils.pick)(props, popupInheritProps)), {
62
59
  default: () => [slots.default ? slots.default() : props.message]
63
60
  });
64
61
  }
@@ -56,7 +56,11 @@ var stdin_default = (0, import_vue2.defineComponent)({
56
56
  const onCancel = () => emit("cancel");
57
57
  const onConfirm = () => emit("confirm");
58
58
  const renderCancel = () => {
59
- const text = props.cancelButtonText || (0, import_utils.t)("cancel");
59
+ var _a;
60
+ const text = (_a = props.cancelButtonText) != null ? _a : (0, import_utils.t)("cancel");
61
+ if (!slots.cancel && !text) {
62
+ return;
63
+ }
60
64
  return (0, import_vue.createVNode)("button", {
61
65
  "type": "button",
62
66
  "class": [(0, import_utils.bem)("cancel"), import_utils2.HAPTICS_FEEDBACK],
@@ -64,7 +68,11 @@ var stdin_default = (0, import_vue2.defineComponent)({
64
68
  }, [slots.cancel ? slots.cancel() : text]);
65
69
  };
66
70
  const renderConfirm = () => {
67
- const text = props.confirmButtonText || (0, import_utils.t)("confirm");
71
+ var _a;
72
+ const text = (_a = props.confirmButtonText) != null ? _a : (0, import_utils.t)("confirm");
73
+ if (!slots.confirm && !text) {
74
+ return;
75
+ }
68
76
  return (0, import_vue.createVNode)("button", {
69
77
  "type": "button",
70
78
  "class": [(0, import_utils.bem)("confirm"), import_utils2.HAPTICS_FEEDBACK],
@@ -38,7 +38,7 @@ export declare const TabTitle: import("vue").DefineComponent<{
38
38
  dot: boolean;
39
39
  disabled: boolean;
40
40
  shrink: boolean;
41
- isActive: boolean;
42
41
  scrollable: boolean;
42
+ isActive: boolean;
43
43
  showZeroBadge: boolean;
44
44
  }, {}>;
@@ -1 +1 @@
1
- :root,:host{--van-tab-text-color: var(--van-gray-7);--van-tab-active-text-color: var(--van-text-color);--van-tab-disabled-text-color: var(--van-text-color-3);--van-tab-font-size: var(--van-font-size-md);--van-tab-line-height: var(--van-line-height-md);--van-tabs-default-color: var(--van-primary-color);--van-tabs-line-height: 44px;--van-tabs-card-height: 30px;--van-tabs-nav-background: var(--van-background-2);--van-tabs-bottom-bar-width: 40px;--van-tabs-bottom-bar-height: 3px;--van-tabs-bottom-bar-color: var(--van-primary-color)}.van-tab{position:relative;display:flex;flex:1;align-items:center;justify-content:center;box-sizing:border-box;padding:0 var(--van-padding-base);color:var(--van-tab-text-color);font-size:var(--van-tab-font-size);line-height:var(--van-tab-line-height);cursor:pointer}.van-tab--active{color:var(--van-tab-active-text-color);font-weight:var(--van-font-bold)}.van-tab--disabled{color:var(--van-tab-disabled-text-color);cursor:not-allowed}.van-tab--grow{flex:1 0 auto;padding:0 var(--van-padding-sm)}.van-tab--shrink{flex:none;padding:0 var(--van-padding-xs)}.van-tab--card{color:var(--van-tabs-default-color);border-right:var(--van-border-width) solid var(--van-tabs-default-color)}.van-tab--card:last-child{border-right:none}.van-tab--card.van-tab--active{color:var(--van-white);background-color:var(--van-tabs-default-color)}.van-tab--card--disabled{color:var(--van-tab-disabled-text-color)}.van-tab__text--ellipsis{display:-webkit-box;overflow:hidden;-webkit-line-clamp:1;-webkit-box-orient:vertical}.van-tabs{position:relative}.van-tabs__wrap{overflow:hidden}.van-tabs__wrap--page-top{position:fixed}.van-tabs__wrap--content-bottom{top:auto;bottom:0}.van-tabs__nav{position:relative;display:flex;background:var(--van-tabs-nav-background);-webkit-user-select:none;user-select:none}.van-tabs__nav--complete{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.van-tabs__nav--complete::-webkit-scrollbar{display:none}.van-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:15px}.van-tabs__nav--line.van-tabs__nav--shrink,.van-tabs__nav--line.van-tabs__nav--complete{padding-right:var(--van-padding-xs);padding-left:var(--van-padding-xs)}.van-tabs__nav--card{box-sizing:border-box;height:var(--van-tabs-card-height);margin:0 var(--van-padding-md);border:var(--van-border-width) solid var(--van-tabs-default-color);border-radius:var(--van-border-radius-sm)}.van-tabs__nav--card.van-tabs__nav--shrink{display:inline-flex}.van-tabs__line{position:absolute;bottom:15px;left:0;z-index:1;width:var(--van-tabs-bottom-bar-width);height:var(--van-tabs-bottom-bar-height);background:var(--van-tabs-bottom-bar-color);border-radius:var(--van-tabs-bottom-bar-height)}.van-tabs__track{position:relative;display:flex;width:100%;height:100%;will-change:left}.van-tabs__content--animated{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:var(--van-tabs-line-height)}.van-tabs--card>.van-tabs__wrap{height:var(--van-tabs-card-height)}
1
+ :root,:host{--van-tab-text-color: var(--van-gray-7);--van-tab-active-text-color: var(--van-text-color);--van-tab-disabled-text-color: var(--van-text-color-3);--van-tab-font-size: var(--van-font-size-md);--van-tab-line-height: var(--van-line-height-md);--van-tabs-default-color: var(--van-primary-color);--van-tabs-line-height: 44px;--van-tabs-card-height: 30px;--van-tabs-nav-background: var(--van-background-2);--van-tabs-bottom-bar-width: 40px;--van-tabs-bottom-bar-height: 3px;--van-tabs-bottom-bar-color: var(--van-primary-color)}.van-tab{position:relative;display:flex;flex:1;align-items:center;justify-content:center;box-sizing:border-box;padding:0 var(--van-padding-base);color:var(--van-tab-text-color);font-size:var(--van-tab-font-size);line-height:var(--van-tab-line-height);cursor:pointer}.van-tab--active{color:var(--van-tab-active-text-color);font-weight:var(--van-font-bold)}.van-tab--disabled{color:var(--van-tab-disabled-text-color);cursor:not-allowed}.van-tab--grow{flex:1 0 auto;padding:0 var(--van-padding-sm)}.van-tab--shrink{flex:none;padding:0 var(--van-padding-xs)}.van-tab--card{color:var(--van-tabs-default-color);border-right:var(--van-border-width) solid var(--van-tabs-default-color)}.van-tab--card:last-child{border-right:none}.van-tab--card.van-tab--active{color:var(--van-white);background-color:var(--van-tabs-default-color)}.van-tab--card--disabled{color:var(--van-tab-disabled-text-color)}.van-tab__text--ellipsis{display:-webkit-box;overflow:hidden;-webkit-line-clamp:1;-webkit-box-orient:vertical}.van-tabs{position:relative}.van-tabs__wrap{overflow:hidden}.van-tabs__wrap--page-top{position:fixed}.van-tabs__wrap--content-bottom{top:auto;bottom:0}.van-tabs__nav{position:relative;display:flex;background:var(--van-tabs-nav-background);-webkit-user-select:none;user-select:none}.van-tabs__nav--complete{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.van-tabs__nav--complete::-webkit-scrollbar{display:none}.van-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:15px}.van-tabs__nav--line.van-tabs__nav--shrink,.van-tabs__nav--line.van-tabs__nav--complete{padding-right:var(--van-padding-xs);padding-left:var(--van-padding-xs)}.van-tabs__nav--card{box-sizing:border-box;height:var(--van-tabs-card-height);margin:0 var(--van-padding-md);border:var(--van-border-width) solid var(--van-tabs-default-color);border-radius:var(--van-radius-sm)}.van-tabs__nav--card.van-tabs__nav--shrink{display:inline-flex}.van-tabs__line{position:absolute;bottom:15px;left:0;z-index:1;width:var(--van-tabs-bottom-bar-width);height:var(--van-tabs-bottom-bar-height);background:var(--van-tabs-bottom-bar-color);border-radius:var(--van-tabs-bottom-bar-height)}.van-tabs__track{position:relative;display:flex;width:100%;height:100%;will-change:left}.van-tabs__content--animated{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:var(--van-tabs-line-height)}.van-tabs--card>.van-tabs__wrap{height:var(--van-tabs-card-height)}
@@ -39,7 +39,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
39
39
  props: textEllipsisProps,
40
40
  emits: ["clickAction"],
41
41
  setup(props, {
42
- emit
42
+ emit,
43
+ slots
43
44
  }) {
44
45
  const text = (0, import_vue2.ref)("");
45
46
  const expanded = (0, import_vue2.ref)(false);
@@ -147,10 +148,15 @@ var stdin_default = (0, import_vue2.defineComponent)({
147
148
  toggle();
148
149
  emit("clickAction", event);
149
150
  };
150
- const renderAction = () => (0, import_vue.createVNode)("span", {
151
- "class": bem("action"),
152
- "onClick": onClickAction
153
- }, [actionText.value]);
151
+ const renderAction = () => {
152
+ const action = slots.action ? slots.action({
153
+ expanded: expanded.value
154
+ }) : actionText.value;
155
+ return (0, import_vue.createVNode)("span", {
156
+ "class": bem("action"),
157
+ "onClick": onClickAction
158
+ }, [action]);
159
+ };
154
160
  (0, import_vue2.onMounted)(calcEllipsised);
155
161
  (0, import_vue2.watch)([import_utils.windowWidth, () => [props.content, props.rows, props.position]], calcEllipsised);
156
162
  (0, import_use_expose.useExpose)({
@@ -33,6 +33,7 @@ export declare const toastProps: {
33
33
  overlayStyle: PropType<CSSProperties>;
34
34
  closeOnClick: BooleanConstructor;
35
35
  closeOnClickOverlay: BooleanConstructor;
36
+ zIndex: (NumberConstructor | StringConstructor)[];
36
37
  };
37
38
  export type ToastProps = ExtractPropTypes<typeof toastProps>;
38
39
  declare const _default: import("vue").DefineComponent<{
@@ -67,6 +68,7 @@ declare const _default: import("vue").DefineComponent<{
67
68
  overlayStyle: PropType<CSSProperties>;
68
69
  closeOnClick: BooleanConstructor;
69
70
  closeOnClickOverlay: BooleanConstructor;
71
+ zIndex: (NumberConstructor | StringConstructor)[];
70
72
  }, () => import("vue/jsx-runtime").JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:show"[], "update:show", import("vue").PublicProps, Readonly<ExtractPropTypes<{
71
73
  icon: StringConstructor;
72
74
  show: BooleanConstructor;
@@ -99,6 +101,7 @@ declare const _default: import("vue").DefineComponent<{
99
101
  overlayStyle: PropType<CSSProperties>;
100
102
  closeOnClick: BooleanConstructor;
101
103
  closeOnClickOverlay: BooleanConstructor;
104
+ zIndex: (NumberConstructor | StringConstructor)[];
102
105
  }>> & {
103
106
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
104
107
  }, {
@@ -29,7 +29,7 @@ var import_icon = require("../icon");
29
29
  var import_popup = require("../popup");
30
30
  var import_loading = require("../loading");
31
31
  const [name, bem] = (0, import_utils.createNamespace)("toast");
32
- const popupInheritProps = ["show", "overlay", "teleport", "transition", "overlayClass", "overlayStyle", "closeOnClickOverlay"];
32
+ const popupInheritProps = ["show", "overlay", "teleport", "transition", "overlayClass", "overlayStyle", "closeOnClickOverlay", "zIndex"];
33
33
  const toastProps = {
34
34
  icon: String,
35
35
  show: Boolean,
@@ -49,7 +49,8 @@ const toastProps = {
49
49
  overlayClass: import_utils.unknownProp,
50
50
  overlayStyle: Object,
51
51
  closeOnClick: Boolean,
52
- closeOnClickOverlay: Boolean
52
+ closeOnClickOverlay: Boolean,
53
+ zIndex: import_utils.numericProp
53
54
  };
54
55
  var stdin_default = (0, import_vue2.defineComponent)({
55
56
  name,
@@ -30,6 +30,7 @@ export declare const Toast: import("../utils").WithInstall<import("vue").DefineC
30
30
  overlayStyle: import("vue").PropType<import("vue").CSSProperties>;
31
31
  closeOnClick: BooleanConstructor;
32
32
  closeOnClickOverlay: BooleanConstructor;
33
+ zIndex: (NumberConstructor | StringConstructor)[];
33
34
  }, () => import("vue/jsx-runtime").JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:show"[], "update:show", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
34
35
  icon: StringConstructor;
35
36
  show: BooleanConstructor;
@@ -62,6 +63,7 @@ export declare const Toast: import("../utils").WithInstall<import("vue").DefineC
62
63
  overlayStyle: import("vue").PropType<import("vue").CSSProperties>;
63
64
  closeOnClick: BooleanConstructor;
64
65
  closeOnClickOverlay: BooleanConstructor;
66
+ zIndex: (NumberConstructor | StringConstructor)[];
65
67
  }>> & {
66
68
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
67
69
  }, {
@@ -9,8 +9,6 @@ export type ToastOptions = {
9
9
  type?: ToastType;
10
10
  mask?: boolean;
11
11
  message?: Numeric;
12
- onClose?: () => void;
13
- onOpened?: () => void;
14
12
  overlay?: boolean;
15
13
  duration?: number;
16
14
  teleport?: TeleportProps['to'];
@@ -26,6 +24,9 @@ export type ToastOptions = {
26
24
  overlayClass?: unknown;
27
25
  overlayStyle?: Record<string, any>;
28
26
  closeOnClickOverlay?: boolean;
27
+ zIndex?: Numeric;
28
+ onClose?: () => void;
29
+ onOpened?: () => void;
29
30
  };
30
31
  export type ToastWrapperInstance = ComponentPublicInstance<{
31
32
  message: Numeric;
@@ -1,7 +1,6 @@
1
1
  import { type PropType, type ExtractPropTypes } from 'vue';
2
2
  import { Interceptor, type Numeric } from '../utils';
3
3
  import { type ImagePreviewOptions } from '../image-preview';
4
- import type { ImageFit } from '../image';
5
4
  import type { UploaderMaxSize, UploaderAfterRead, UploaderBeforeRead, UploaderResultType, UploaderFileListItem } from './types';
6
5
  export declare const uploaderProps: {
7
6
  name: {
@@ -22,8 +21,8 @@ export declare const uploaderProps: {
22
21
  default: number;
23
22
  };
24
23
  imageFit: {
25
- type: PropType<ImageFit>;
26
- default: ImageFit;
24
+ type: PropType<import("csstype").Property.ObjectFit | undefined>;
25
+ default: import("csstype").Property.ObjectFit | undefined;
27
26
  };
28
27
  resultType: {
29
28
  type: PropType<UploaderResultType>;
@@ -85,8 +84,8 @@ declare const _default: import("vue").DefineComponent<{
85
84
  default: number;
86
85
  };
87
86
  imageFit: {
88
- type: PropType<ImageFit>;
89
- default: ImageFit;
87
+ type: PropType<import("csstype").Property.ObjectFit | undefined>;
88
+ default: import("csstype").Property.ObjectFit | undefined;
90
89
  };
91
90
  resultType: {
92
91
  type: PropType<UploaderResultType>;
@@ -146,8 +145,8 @@ declare const _default: import("vue").DefineComponent<{
146
145
  default: number;
147
146
  };
148
147
  imageFit: {
149
- type: PropType<ImageFit>;
150
- default: ImageFit;
148
+ type: PropType<import("csstype").Property.ObjectFit | undefined>;
149
+ default: import("csstype").Property.ObjectFit | undefined;
151
150
  };
152
151
  resultType: {
153
152
  type: PropType<UploaderResultType>;
@@ -205,7 +204,7 @@ declare const _default: import("vue").DefineComponent<{
205
204
  readonly: boolean;
206
205
  lazyLoad: boolean;
207
206
  maxCount: string | number;
208
- imageFit: ImageFit;
207
+ imageFit: import("csstype").Property.ObjectFit | undefined;
209
208
  resultType: UploaderResultType;
210
209
  uploadIcon: string;
211
210
  deletable: boolean;
@@ -1,6 +1,5 @@
1
1
  import { type PropType } from 'vue';
2
2
  import { type Numeric, type Interceptor } from '../utils';
3
- import { ImageFit } from '../image';
4
3
  import type { UploaderFileListItem } from './types';
5
4
  declare const _default: import("vue").DefineComponent<{
6
5
  name: (NumberConstructor | StringConstructor)[];
@@ -9,7 +8,7 @@ declare const _default: import("vue").DefineComponent<{
9
8
  required: true;
10
9
  };
11
10
  index: NumberConstructor;
12
- imageFit: PropType<ImageFit>;
11
+ imageFit: PropType<import("csstype").Property.ObjectFit | undefined>;
13
12
  lazyLoad: BooleanConstructor;
14
13
  deletable: BooleanConstructor;
15
14
  reupload: BooleanConstructor;
@@ -22,7 +21,7 @@ declare const _default: import("vue").DefineComponent<{
22
21
  required: true;
23
22
  };
24
23
  index: NumberConstructor;
25
- imageFit: PropType<ImageFit>;
24
+ imageFit: PropType<import("csstype").Property.ObjectFit | undefined>;
26
25
  lazyLoad: BooleanConstructor;
27
26
  deletable: BooleanConstructor;
28
27
  reupload: BooleanConstructor;
@@ -18,8 +18,8 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
18
18
  default: number;
19
19
  };
20
20
  imageFit: {
21
- type: import("vue").PropType<import("..").ImageFit>;
22
- default: import("..").ImageFit;
21
+ type: import("vue").PropType<import("csstype").Property.ObjectFit | undefined>;
22
+ default: import("csstype").Property.ObjectFit | undefined;
23
23
  };
24
24
  resultType: {
25
25
  type: import("vue").PropType<import("./types").UploaderResultType>;
@@ -79,8 +79,8 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
79
79
  default: number;
80
80
  };
81
81
  imageFit: {
82
- type: import("vue").PropType<import("..").ImageFit>;
83
- default: import("..").ImageFit;
82
+ type: import("vue").PropType<import("csstype").Property.ObjectFit | undefined>;
83
+ default: import("csstype").Property.ObjectFit | undefined;
84
84
  };
85
85
  resultType: {
86
86
  type: import("vue").PropType<import("./types").UploaderResultType>;
@@ -138,7 +138,7 @@ export declare const Uploader: import("../utils").WithInstall<import("vue").Defi
138
138
  readonly: boolean;
139
139
  lazyLoad: boolean;
140
140
  maxCount: string | number;
141
- imageFit: import("..").ImageFit;
141
+ imageFit: import("csstype").Property.ObjectFit | undefined;
142
142
  resultType: import("./types").UploaderResultType;
143
143
  uploadIcon: string;
144
144
  deletable: boolean;
@@ -1,13 +1,13 @@
1
1
  import type { InjectionKey } from 'vue';
2
2
  import type { FormProvide } from '../form/types';
3
3
  export declare const BORDER = "van-hairline";
4
- export declare const BORDER_TOP: string;
5
- export declare const BORDER_LEFT: string;
6
- export declare const BORDER_RIGHT: string;
7
- export declare const BORDER_BOTTOM: string;
8
- export declare const BORDER_SURROUND: string;
9
- export declare const BORDER_TOP_BOTTOM: string;
10
- export declare const BORDER_UNSET_TOP_BOTTOM: string;
4
+ export declare const BORDER_TOP = "van-hairline--top";
5
+ export declare const BORDER_LEFT = "van-hairline--left";
6
+ export declare const BORDER_RIGHT = "van-hairline--right";
7
+ export declare const BORDER_BOTTOM = "van-hairline--bottom";
8
+ export declare const BORDER_SURROUND = "van-hairline--surround";
9
+ export declare const BORDER_TOP_BOTTOM = "van-hairline--top-bottom";
10
+ export declare const BORDER_UNSET_TOP_BOTTOM = "van-hairline-unset--top-bottom";
11
11
  export declare const HAPTICS_FEEDBACK = "van-haptics-feedback";
12
12
  export declare const FORM_KEY: InjectionKey<FormProvide>;
13
13
  export declare const LONG_PRESS_START_TIME = 500;
package/lib/vant.cjs.js CHANGED
@@ -1929,7 +1929,11 @@ var stdin_default$1H = vue.defineComponent({
1929
1929
  const onCancel = () => emit("cancel");
1930
1930
  const onConfirm = () => emit("confirm");
1931
1931
  const renderCancel = () => {
1932
- const text = props2.cancelButtonText || t$k("cancel");
1932
+ var _a;
1933
+ const text = (_a = props2.cancelButtonText) != null ? _a : t$k("cancel");
1934
+ if (!slots.cancel && !text) {
1935
+ return;
1936
+ }
1933
1937
  return vue.createVNode("button", {
1934
1938
  "type": "button",
1935
1939
  "class": [bem$1u("cancel"), HAPTICS_FEEDBACK],
@@ -1937,7 +1941,11 @@ var stdin_default$1H = vue.defineComponent({
1937
1941
  }, [slots.cancel ? slots.cancel() : text]);
1938
1942
  };
1939
1943
  const renderConfirm = () => {
1940
- const text = props2.confirmButtonText || t$k("confirm");
1944
+ var _a;
1945
+ const text = (_a = props2.confirmButtonText) != null ? _a : t$k("confirm");
1946
+ if (!slots.confirm && !text) {
1947
+ return;
1948
+ }
1941
1949
  return vue.createVNode("button", {
1942
1950
  "type": "button",
1943
1951
  "class": [bem$1u("confirm"), HAPTICS_FEEDBACK],
@@ -4564,7 +4572,7 @@ function lockClick(lock) {
4564
4572
  }
4565
4573
  }
4566
4574
  const [name$1k, bem$1g] = createNamespace("toast");
4567
- const popupInheritProps = ["show", "overlay", "teleport", "transition", "overlayClass", "overlayStyle", "closeOnClickOverlay"];
4575
+ const popupInheritProps$1 = ["show", "overlay", "teleport", "transition", "overlayClass", "overlayStyle", "closeOnClickOverlay", "zIndex"];
4568
4576
  const toastProps = {
4569
4577
  icon: String,
4570
4578
  show: Boolean,
@@ -4584,7 +4592,8 @@ const toastProps = {
4584
4592
  overlayClass: unknownProp,
4585
4593
  overlayStyle: Object,
4586
4594
  closeOnClick: Boolean,
4587
- closeOnClickOverlay: Boolean
4595
+ closeOnClickOverlay: Boolean,
4596
+ zIndex: numericProp
4588
4597
  };
4589
4598
  var stdin_default$1u = vue.defineComponent({
4590
4599
  name: name$1k,
@@ -4674,7 +4683,7 @@ var stdin_default$1u = vue.defineComponent({
4674
4683
  "onClick": onClick,
4675
4684
  "onClosed": clearTimer,
4676
4685
  "onUpdate:show": updateShow
4677
- }, pick(props2, popupInheritProps)), {
4686
+ }, pick(props2, popupInheritProps$1)), {
4678
4687
  default: () => [renderIcon(), renderMessage()]
4679
4688
  });
4680
4689
  }
@@ -9632,7 +9641,7 @@ var stdin_default$U = vue.defineComponent({
9632
9641
  const {
9633
9642
  disabled,
9634
9643
  titleClass
9635
- } = item;
9644
+ } = vue.toRaw(item.$props);
9636
9645
  return vue.createVNode("div", {
9637
9646
  "id": `${id}-${index}`,
9638
9647
  "role": "button",
@@ -10472,6 +10481,7 @@ const imagePreviewItemProps = {
10472
10481
  rootHeight: makeRequiredProp(Number),
10473
10482
  disableZoom: Boolean,
10474
10483
  doubleScale: Boolean,
10484
+ closeOnClickImage: Boolean,
10475
10485
  closeOnClickOverlay: Boolean
10476
10486
  };
10477
10487
  var stdin_default$N = vue.defineComponent({
@@ -10636,7 +10646,12 @@ var stdin_default$N = vue.defineComponent({
10636
10646
  };
10637
10647
  const checkClose = (event) => {
10638
10648
  var _a;
10639
- const isClickOverlay = event.target === ((_a = swipeItem.value) == null ? void 0 : _a.$el);
10649
+ const swipeItemEl = (_a = swipeItem.value) == null ? void 0 : _a.$el;
10650
+ const imageEl = swipeItemEl.firstElementChild;
10651
+ const isClickOverlay = event.target === swipeItemEl;
10652
+ const isClickImage = imageEl == null ? void 0 : imageEl.contains(event.target);
10653
+ if (!props2.closeOnClickImage && isClickImage)
10654
+ return;
10640
10655
  if (!props2.closeOnClickOverlay && isClickOverlay)
10641
10656
  return;
10642
10657
  emit("close");
@@ -10796,6 +10811,7 @@ const imagePreviewProps = {
10796
10811
  startPosition: makeNumericProp(0),
10797
10812
  showIndicators: Boolean,
10798
10813
  closeOnPopstate: truthProp,
10814
+ closeOnClickImage: truthProp,
10799
10815
  closeOnClickOverlay: truthProp,
10800
10816
  closeIconPosition: makeStringProp("top-right"),
10801
10817
  teleport: [String, Object]
@@ -10888,6 +10904,7 @@ var stdin_default$M = vue.defineComponent({
10888
10904
  "rootHeight": state.rootHeight,
10889
10905
  "disableZoom": state.disableZoom,
10890
10906
  "doubleScale": props2.doubleScale,
10907
+ "closeOnClickImage": props2.closeOnClickImage,
10891
10908
  "closeOnClickOverlay": props2.closeOnClickOverlay,
10892
10909
  "onScale": emitScale,
10893
10910
  "onClose": emitClose,
@@ -11697,6 +11714,7 @@ var stdin_default$H = vue.defineComponent({
11697
11714
  });
11698
11715
  const NoticeBar = withInstall(stdin_default$H);
11699
11716
  const [name$y, bem$x] = createNamespace("notify");
11717
+ const popupInheritProps = ["lockScroll", "position", "show", "teleport", "zIndex"];
11700
11718
  const notifyProps = extend({}, popupSharedProps, {
11701
11719
  type: makeStringProp("danger"),
11702
11720
  color: String,
@@ -11715,20 +11733,16 @@ var stdin_default$G = vue.defineComponent({
11715
11733
  slots
11716
11734
  }) {
11717
11735
  const updateShow = (show) => emit("update:show", show);
11718
- return () => vue.createVNode(Popup, {
11719
- "show": props2.show,
11736
+ return () => vue.createVNode(Popup, vue.mergeProps({
11720
11737
  "class": [bem$x([props2.type]), props2.className],
11721
11738
  "style": {
11722
11739
  color: props2.color,
11723
11740
  background: props2.background
11724
11741
  },
11725
11742
  "overlay": false,
11726
- "zIndex": props2.zIndex,
11727
- "position": props2.position,
11728
11743
  "duration": 0.2,
11729
- "lockScroll": props2.lockScroll,
11730
11744
  "onUpdate:show": updateShow
11731
- }, {
11745
+ }, pick(props2, popupInheritProps)), {
11732
11746
  default: () => [slots.default ? slots.default() : props2.message]
11733
11747
  });
11734
11748
  }
@@ -14973,7 +14987,8 @@ var stdin_default$9 = vue.defineComponent({
14973
14987
  props: textEllipsisProps,
14974
14988
  emits: ["clickAction"],
14975
14989
  setup(props2, {
14976
- emit
14990
+ emit,
14991
+ slots
14977
14992
  }) {
14978
14993
  const text = vue.ref("");
14979
14994
  const expanded = vue.ref(false);
@@ -15081,10 +15096,15 @@ var stdin_default$9 = vue.defineComponent({
15081
15096
  toggle();
15082
15097
  emit("clickAction", event);
15083
15098
  };
15084
- const renderAction = () => vue.createVNode("span", {
15085
- "class": bem$3("action"),
15086
- "onClick": onClickAction
15087
- }, [actionText.value]);
15099
+ const renderAction = () => {
15100
+ const action = slots.action ? slots.action({
15101
+ expanded: expanded.value
15102
+ }) : actionText.value;
15103
+ return vue.createVNode("span", {
15104
+ "class": bem$3("action"),
15105
+ "onClick": onClickAction
15106
+ }, [action]);
15107
+ };
15088
15108
  vue.onMounted(calcEllipsised);
15089
15109
  vue.watch([windowWidth, () => [props2.content, props2.rows, props2.position]], calcEllipsised);
15090
15110
  useExpose({
@@ -16756,7 +16776,7 @@ const Lazyload = {
16756
16776
  });
16757
16777
  }
16758
16778
  };
16759
- const version = "4.8.2";
16779
+ const version = "4.8.4";
16760
16780
  function install(app) {
16761
16781
  const components = [
16762
16782
  ActionBar,