vant 4.3.1 → 4.4.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.
Files changed (113) hide show
  1. package/es/address-edit/AddressEdit.mjs +1 -0
  2. package/es/area/Area.d.ts +6 -8
  3. package/es/area/Area.mjs +1 -1
  4. package/es/area/index.d.ts +4 -6
  5. package/es/back-top/BackTop.d.ts +1 -1
  6. package/es/back-top/BackTop.mjs +6 -3
  7. package/es/back-top/index.css +1 -1
  8. package/es/back-top/index.d.ts +1 -1
  9. package/es/barrage/Barrage.d.ts +93 -0
  10. package/es/barrage/Barrage.mjs +134 -0
  11. package/es/barrage/index.css +1 -0
  12. package/es/barrage/index.d.ts +69 -0
  13. package/es/barrage/index.mjs +10 -0
  14. package/es/barrage/style/index.d.ts +1 -0
  15. package/es/barrage/style/index.mjs +2 -0
  16. package/es/barrage/types.d.ts +7 -0
  17. package/es/barrage/types.mjs +0 -0
  18. package/es/cascader/Cascader.mjs +14 -0
  19. package/es/checkbox/Checker.d.ts +2 -0
  20. package/es/checkbox/Checker.mjs +13 -1
  21. package/es/contact-list/ContactList.mjs +1 -1
  22. package/es/contact-list/index.css +1 -1
  23. package/es/date-picker/DatePicker.mjs +5 -2
  24. package/es/date-picker/utils.d.ts +1 -1
  25. package/es/dialog/index.css +1 -1
  26. package/es/divider/Divider.d.ts +4 -0
  27. package/es/divider/Divider.mjs +4 -2
  28. package/es/divider/index.css +1 -1
  29. package/es/divider/index.d.ts +3 -0
  30. package/es/field/Field.mjs +4 -0
  31. package/es/image-preview/ImagePreviewItem.mjs +60 -26
  32. package/es/index.d.ts +2 -1
  33. package/es/index.mjs +4 -1
  34. package/es/notice-bar/NoticeBar.d.ts +1 -1
  35. package/es/notice-bar/index.d.ts +1 -1
  36. package/es/picker-group/PickerGroup.d.ts +15 -1
  37. package/es/picker-group/PickerGroup.mjs +8 -6
  38. package/es/picker-group/index.d.ts +11 -1
  39. package/es/signature/Signature.d.ts +13 -0
  40. package/es/signature/Signature.mjs +24 -8
  41. package/es/signature/index.css +1 -1
  42. package/es/signature/index.d.ts +9 -0
  43. package/es/step/index.css +1 -1
  44. package/es/submit-bar/index.css +1 -1
  45. package/es/tabs/Tabs.mjs +8 -2
  46. package/es/tabs/utils.d.ts +2 -2
  47. package/es/tabs/utils.mjs +14 -4
  48. package/es/uploader/Uploader.d.ts +6 -1
  49. package/es/uploader/Uploader.mjs +25 -10
  50. package/es/uploader/UploaderPreviewItem.d.ts +5 -1
  51. package/es/uploader/UploaderPreviewItem.mjs +6 -3
  52. package/es/uploader/index.d.ts +5 -1
  53. package/es/uploader/types.d.ts +1 -0
  54. package/lib/address-edit/AddressEdit.js +1 -0
  55. package/lib/area/Area.d.ts +6 -8
  56. package/lib/area/Area.js +1 -1
  57. package/lib/area/index.d.ts +4 -6
  58. package/lib/back-top/BackTop.d.ts +1 -1
  59. package/lib/back-top/BackTop.js +6 -3
  60. package/lib/back-top/index.css +1 -1
  61. package/lib/back-top/index.d.ts +1 -1
  62. package/lib/barrage/Barrage.d.ts +93 -0
  63. package/lib/barrage/Barrage.js +153 -0
  64. package/lib/barrage/index.css +1 -0
  65. package/lib/barrage/index.d.ts +69 -0
  66. package/lib/barrage/index.js +39 -0
  67. package/lib/barrage/style/index.d.ts +1 -0
  68. package/lib/barrage/style/index.js +2 -0
  69. package/lib/barrage/types.d.ts +7 -0
  70. package/lib/barrage/types.js +15 -0
  71. package/lib/cascader/Cascader.js +14 -0
  72. package/lib/checkbox/Checker.d.ts +2 -0
  73. package/lib/checkbox/Checker.js +13 -1
  74. package/lib/contact-list/ContactList.js +1 -1
  75. package/lib/contact-list/index.css +1 -1
  76. package/lib/date-picker/DatePicker.js +5 -2
  77. package/lib/date-picker/utils.d.ts +1 -1
  78. package/lib/dialog/index.css +1 -1
  79. package/lib/divider/Divider.d.ts +4 -0
  80. package/lib/divider/Divider.js +4 -2
  81. package/lib/divider/index.css +1 -1
  82. package/lib/divider/index.d.ts +3 -0
  83. package/lib/field/Field.js +4 -0
  84. package/lib/image-preview/ImagePreviewItem.js +59 -25
  85. package/lib/index.css +1 -1
  86. package/lib/index.d.ts +2 -1
  87. package/lib/index.js +4 -1
  88. package/lib/notice-bar/NoticeBar.d.ts +1 -1
  89. package/lib/notice-bar/index.d.ts +1 -1
  90. package/lib/picker-group/PickerGroup.d.ts +15 -1
  91. package/lib/picker-group/PickerGroup.js +6 -4
  92. package/lib/picker-group/index.d.ts +11 -1
  93. package/lib/signature/Signature.d.ts +13 -0
  94. package/lib/signature/Signature.js +23 -7
  95. package/lib/signature/index.css +1 -1
  96. package/lib/signature/index.d.ts +9 -0
  97. package/lib/step/index.css +1 -1
  98. package/lib/submit-bar/index.css +1 -1
  99. package/lib/tabs/Tabs.js +8 -2
  100. package/lib/tabs/utils.d.ts +2 -2
  101. package/lib/tabs/utils.js +13 -3
  102. package/lib/uploader/Uploader.d.ts +6 -1
  103. package/lib/uploader/Uploader.js +25 -10
  104. package/lib/uploader/UploaderPreviewItem.d.ts +5 -1
  105. package/lib/uploader/UploaderPreviewItem.js +6 -3
  106. package/lib/uploader/index.d.ts +5 -1
  107. package/lib/uploader/types.d.ts +1 -0
  108. package/lib/vant.cjs.js +611 -358
  109. package/lib/vant.es.js +612 -359
  110. package/lib/vant.js +611 -358
  111. package/lib/vant.min.js +1 -1
  112. package/lib/web-types.json +1 -1
  113. package/package.json +1 -1
package/lib/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from "./address-list";
7
7
  export * from "./area";
8
8
  export * from "./back-top";
9
9
  export * from "./badge";
10
+ export * from "./barrage";
10
11
  export * from "./button";
11
12
  export * from "./calendar";
12
13
  export * from "./card";
@@ -101,4 +102,4 @@ declare namespace _default {
101
102
  }
102
103
  export default _default;
103
104
  export function install(app: any): void;
104
- export const version: "4.3.1";
105
+ export const version: "4.4.0";
package/lib/index.js CHANGED
@@ -32,6 +32,7 @@ var import_address_list = require("./address-list");
32
32
  var import_area = require("./area");
33
33
  var import_back_top = require("./back-top");
34
34
  var import_badge = require("./badge");
35
+ var import_barrage = require("./barrage");
35
36
  var import_button = require("./button");
36
37
  var import_calendar = require("./calendar");
37
38
  var import_card = require("./card");
@@ -128,6 +129,7 @@ __reExport(stdin_exports, require("./address-list"), module.exports);
128
129
  __reExport(stdin_exports, require("./area"), module.exports);
129
130
  __reExport(stdin_exports, require("./back-top"), module.exports);
130
131
  __reExport(stdin_exports, require("./badge"), module.exports);
132
+ __reExport(stdin_exports, require("./barrage"), module.exports);
131
133
  __reExport(stdin_exports, require("./button"), module.exports);
132
134
  __reExport(stdin_exports, require("./calendar"), module.exports);
133
135
  __reExport(stdin_exports, require("./card"), module.exports);
@@ -216,7 +218,7 @@ __reExport(stdin_exports, require("./toast"), module.exports);
216
218
  __reExport(stdin_exports, require("./tree-select"), module.exports);
217
219
  __reExport(stdin_exports, require("./uploader"), module.exports);
218
220
  __reExport(stdin_exports, require("./watermark"), module.exports);
219
- const version = "4.3.1";
221
+ const version = "4.4.0";
220
222
  function install(app) {
221
223
  const components = [
222
224
  import_action_bar.ActionBar,
@@ -228,6 +230,7 @@ function install(app) {
228
230
  import_area.Area,
229
231
  import_back_top.BackTop,
230
232
  import_badge.Badge,
233
+ import_barrage.Barrage,
231
234
  import_button.Button,
232
235
  import_calendar.Calendar,
233
236
  import_card.Card,
@@ -64,8 +64,8 @@ declare const _default: import("vue").DefineComponent<{
64
64
  onReplay?: ((...args: any[]) => any) | undefined;
65
65
  }, {
66
66
  scrollable: boolean | null;
67
- speed: string | number;
68
67
  delay: string | number;
68
+ speed: string | number;
69
69
  wrapable: boolean;
70
70
  }>;
71
71
  export default _default;
@@ -42,8 +42,8 @@ export declare const NoticeBar: import("../utils").WithInstall<import("vue").Def
42
42
  onReplay?: ((...args: any[]) => any) | undefined;
43
43
  }, {
44
44
  scrollable: boolean | null;
45
- speed: string | number;
46
45
  delay: string | number;
46
+ speed: string | number;
47
47
  wrapable: boolean;
48
48
  }>>;
49
49
  export default NoticeBar;
@@ -6,6 +6,10 @@ export declare const pickerGroupProps: {
6
6
  type: import("vue").PropType<string[]>;
7
7
  default: () => never[];
8
8
  };
9
+ activeTab: {
10
+ type: (NumberConstructor | StringConstructor)[];
11
+ default: number;
12
+ };
9
13
  nextStepText: StringConstructor;
10
14
  } & {
11
15
  title: StringConstructor;
@@ -18,16 +22,24 @@ declare const _default: import("vue").DefineComponent<{
18
22
  type: import("vue").PropType<string[]>;
19
23
  default: () => never[];
20
24
  };
25
+ activeTab: {
26
+ type: (NumberConstructor | StringConstructor)[];
27
+ default: number;
28
+ };
21
29
  nextStepText: StringConstructor;
22
30
  } & {
23
31
  title: StringConstructor;
24
32
  cancelButtonText: StringConstructor;
25
33
  confirmButtonText: StringConstructor;
26
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm")[], "cancel" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
34
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm" | "update:activeTab")[], "cancel" | "confirm" | "update:activeTab", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
27
35
  tabs: {
28
36
  type: import("vue").PropType<string[]>;
29
37
  default: () => never[];
30
38
  };
39
+ activeTab: {
40
+ type: (NumberConstructor | StringConstructor)[];
41
+ default: number;
42
+ };
31
43
  nextStepText: StringConstructor;
32
44
  } & {
33
45
  title: StringConstructor;
@@ -36,7 +48,9 @@ declare const _default: import("vue").DefineComponent<{
36
48
  }>> & {
37
49
  onCancel?: ((...args: any[]) => any) | undefined;
38
50
  onConfirm?: ((...args: any[]) => any) | undefined;
51
+ "onUpdate:activeTab"?: ((...args: any[]) => any) | undefined;
39
52
  }, {
40
53
  tabs: string[];
54
+ activeTab: string | number;
41
55
  }>;
42
56
  export default _default;
@@ -36,6 +36,7 @@ var import_vue = require("vue");
36
36
  var import_vue2 = require("vue");
37
37
  var import_utils = require("../utils");
38
38
  var import_use = require("@vant/use");
39
+ var import_use_sync_prop_ref = require("../composables/use-sync-prop-ref");
39
40
  var import_tab = require("../tab");
40
41
  var import_tabs = require("../tabs");
41
42
  var import_PickerToolbar = __toESM(require("../picker/PickerToolbar"));
@@ -43,26 +44,27 @@ const [name, bem] = (0, import_utils.createNamespace)("picker-group");
43
44
  const PICKER_GROUP_KEY = Symbol(name);
44
45
  const pickerGroupProps = (0, import_utils.extend)({
45
46
  tabs: (0, import_utils.makeArrayProp)(),
47
+ activeTab: (0, import_utils.makeNumericProp)(0),
46
48
  nextStepText: String
47
49
  }, import_PickerToolbar.pickerToolbarProps);
48
50
  var stdin_default = (0, import_vue2.defineComponent)({
49
51
  name,
50
52
  props: pickerGroupProps,
51
- emits: ["confirm", "cancel"],
53
+ emits: ["confirm", "cancel", "update:activeTab"],
52
54
  setup(props, {
53
55
  emit,
54
56
  slots
55
57
  }) {
56
- const activeTab = (0, import_vue2.ref)(0);
58
+ const activeTab = (0, import_use_sync_prop_ref.useSyncPropRef)(() => props.activeTab, (value) => emit("update:activeTab", value));
57
59
  const {
58
60
  children,
59
61
  linkChildren
60
62
  } = (0, import_use.useChildren)(PICKER_GROUP_KEY);
61
63
  linkChildren();
62
- const showNextButton = () => activeTab.value < props.tabs.length - 1 && props.nextStepText;
64
+ const showNextButton = () => +activeTab.value < props.tabs.length - 1 && props.nextStepText;
63
65
  const onConfirm = () => {
64
66
  if (showNextButton()) {
65
- activeTab.value++;
67
+ activeTab.value = +activeTab.value + 1;
66
68
  } else {
67
69
  emit("confirm", children.map((item) => item.confirm()));
68
70
  }
@@ -4,16 +4,24 @@ export declare const PickerGroup: import("../utils").WithInstall<import("vue").D
4
4
  type: import("vue").PropType<string[]>;
5
5
  default: () => never[];
6
6
  };
7
+ activeTab: {
8
+ type: (NumberConstructor | StringConstructor)[];
9
+ default: number;
10
+ };
7
11
  nextStepText: StringConstructor;
8
12
  } & {
9
13
  title: StringConstructor;
10
14
  cancelButtonText: StringConstructor;
11
15
  confirmButtonText: StringConstructor;
12
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm")[], "cancel" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
16
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "confirm" | "update:activeTab")[], "cancel" | "confirm" | "update:activeTab", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
13
17
  tabs: {
14
18
  type: import("vue").PropType<string[]>;
15
19
  default: () => never[];
16
20
  };
21
+ activeTab: {
22
+ type: (NumberConstructor | StringConstructor)[];
23
+ default: number;
24
+ };
17
25
  nextStepText: StringConstructor;
18
26
  } & {
19
27
  title: StringConstructor;
@@ -22,8 +30,10 @@ export declare const PickerGroup: import("../utils").WithInstall<import("vue").D
22
30
  }>> & {
23
31
  onCancel?: ((...args: any[]) => any) | undefined;
24
32
  onConfirm?: ((...args: any[]) => any) | undefined;
33
+ "onUpdate:activeTab"?: ((...args: any[]) => any) | undefined;
25
34
  }, {
26
35
  tabs: string[];
36
+ activeTab: string | number;
27
37
  }>>;
28
38
  export default PickerGroup;
29
39
  export { pickerGroupProps } from './PickerGroup';
@@ -14,6 +14,10 @@ export declare const signatureProps: {
14
14
  default: number;
15
15
  };
16
16
  clearButtonText: StringConstructor;
17
+ backgroundColor: {
18
+ type: import("vue").PropType<string>;
19
+ default: string;
20
+ };
17
21
  confirmButtonText: StringConstructor;
18
22
  };
19
23
  export type SignatureProps = ExtractPropTypes<typeof signatureProps>;
@@ -32,6 +36,10 @@ declare const _default: import("vue").DefineComponent<{
32
36
  default: number;
33
37
  };
34
38
  clearButtonText: StringConstructor;
39
+ backgroundColor: {
40
+ type: import("vue").PropType<string>;
41
+ default: string;
42
+ };
35
43
  confirmButtonText: StringConstructor;
36
44
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "start" | "clear" | "end" | "signing")[], "submit" | "start" | "clear" | "end" | "signing", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
37
45
  tips: StringConstructor;
@@ -48,6 +56,10 @@ declare const _default: import("vue").DefineComponent<{
48
56
  default: number;
49
57
  };
50
58
  clearButtonText: StringConstructor;
59
+ backgroundColor: {
60
+ type: import("vue").PropType<string>;
61
+ default: string;
62
+ };
51
63
  confirmButtonText: StringConstructor;
52
64
  }>> & {
53
65
  onSubmit?: ((...args: any[]) => any) | undefined;
@@ -57,6 +69,7 @@ declare const _default: import("vue").DefineComponent<{
57
69
  onSigning?: ((...args: any[]) => any) | undefined;
58
70
  }, {
59
71
  type: string;
72
+ backgroundColor: string;
60
73
  lineWidth: number;
61
74
  penColor: string;
62
75
  }>;
@@ -33,6 +33,7 @@ const signatureProps = {
33
33
  penColor: (0, import_utils.makeStringProp)("#000"),
34
34
  lineWidth: (0, import_utils.makeNumberProp)(3),
35
35
  clearButtonText: String,
36
+ backgroundColor: (0, import_utils.makeStringProp)(""),
36
37
  confirmButtonText: String
37
38
  };
38
39
  const hasCanvasSupport = () => {
@@ -52,7 +53,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
52
53
  const state = (0, import_vue2.reactive)({
53
54
  width: 0,
54
55
  height: 0,
55
- ctx: null
56
+ ctx: null,
57
+ ratio: import_utils.inBrowser ? window.devicePixelRatio : 1
56
58
  });
57
59
  let canvasRect;
58
60
  const isRenderCanvas = import_utils.inBrowser ? hasCanvasSupport() : true;
@@ -61,7 +63,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
61
63
  return false;
62
64
  }
63
65
  state.ctx.beginPath();
64
- state.ctx.lineWidth = props.lineWidth;
66
+ state.ctx.lineWidth = props.lineWidth * state.ratio;
65
67
  state.ctx.strokeStyle = props.penColor;
66
68
  canvasRect = (0, import_use.useRect)(canvasRef);
67
69
  emit("start");
@@ -73,8 +75,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
73
75
  }
74
76
  (0, import_utils.preventDefault)(event);
75
77
  const touch = event.touches[0];
76
- const mouseX = touch.clientX - ((canvasRect == null ? void 0 : canvasRect.left) || 0);
77
- const mouseY = touch.clientY - ((canvasRect == null ? void 0 : canvasRect.top) || 0);
78
+ const mouseX = (touch.clientX - ((canvasRect == null ? void 0 : canvasRect.left) || 0)) * state.ratio;
79
+ const mouseY = (touch.clientY - ((canvasRect == null ? void 0 : canvasRect.top) || 0)) * state.ratio;
78
80
  state.ctx.lineCap = "round";
79
81
  state.ctx.lineJoin = "round";
80
82
  (_a = state.ctx) == null ? void 0 : _a.lineTo(mouseX, mouseY);
@@ -91,13 +93,23 @@ var stdin_default = (0, import_vue2.defineComponent)({
91
93
  empty.height = canvas.height;
92
94
  return canvas.toDataURL() === empty.toDataURL();
93
95
  };
96
+ const setCanvasBgColor = () => {
97
+ if (state.ctx && props.backgroundColor) {
98
+ state.ctx.fillStyle = props.backgroundColor;
99
+ state.ctx.fillRect(0, 0, state.width, state.height);
100
+ }
101
+ };
94
102
  const submit = () => {
103
+ var _a, _b;
95
104
  const canvas = canvasRef.value;
96
105
  if (!canvas) {
97
106
  return;
98
107
  }
99
108
  const isEmpty = isCanvasEmpty(canvas);
100
- const image = isEmpty ? "" : canvas.toDataURL(`image/${props.type}`, props.type === "jpg" ? 0.9 : null);
109
+ const image = isEmpty ? "" : ((_b = (_a = {
110
+ jpg: () => canvas.toDataURL("image/jpeg", 0.8),
111
+ jpeg: () => canvas.toDataURL("image/jpeg", 0.8)
112
+ })[props.type]) == null ? void 0 : _b.call(_a)) || canvas.toDataURL(`image/${props.type}`);
101
113
  emit("submit", {
102
114
  image,
103
115
  canvas
@@ -107,6 +119,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
107
119
  if (state.ctx) {
108
120
  state.ctx.clearRect(0, 0, state.width, state.height);
109
121
  state.ctx.closePath();
122
+ setCanvasBgColor();
110
123
  }
111
124
  emit("clear");
112
125
  };
@@ -114,8 +127,11 @@ var stdin_default = (0, import_vue2.defineComponent)({
114
127
  var _a, _b, _c;
115
128
  if (isRenderCanvas) {
116
129
  state.ctx = (_a = canvasRef.value) == null ? void 0 : _a.getContext("2d");
117
- state.width = ((_b = wrapRef.value) == null ? void 0 : _b.offsetWidth) || 0;
118
- state.height = ((_c = wrapRef.value) == null ? void 0 : _c.offsetHeight) || 0;
130
+ state.width = (((_b = wrapRef.value) == null ? void 0 : _b.offsetWidth) || 0) * state.ratio;
131
+ state.height = (((_c = wrapRef.value) == null ? void 0 : _c.offsetHeight) || 0) * state.ratio;
132
+ (0, import_vue2.nextTick)(() => {
133
+ setCanvasBgColor();
134
+ });
119
135
  }
120
136
  });
121
137
  return () => (0, import_vue.createVNode)("div", {
@@ -1 +1 @@
1
- :root{--van-signature-padding: var(--van-padding-xs);--van-signature-content-height: 200px;--van-signature-content-background: var(--van-background-2);--van-signature-content-border: 1px dotted #dadada}.van-signature{padding:var(--van-signature-padding)}.van-signature__content{display:flex;justify-content:center;align-items:center;height:var(--van-signature-content-height);background-color:var(--van-signature-content-background);border:var(--van-signature-content-border);border-radius:var(--van-radius-lg);overflow:hidden}.van-signature__footer{display:flex;justify-content:flex-end}.van-signature__footer .van-button{padding:0 var(--van-padding-md);margin-top:var(--van-padding-xs);margin-left:var(--van-padding-xs)}
1
+ :root{--van-signature-padding: var(--van-padding-xs);--van-signature-content-height: 200px;--van-signature-content-background: var(--van-background-2);--van-signature-content-border: 1px dotted #dadada}.van-signature{padding:var(--van-signature-padding)}.van-signature__content{display:flex;justify-content:center;align-items:center;height:var(--van-signature-content-height);background-color:var(--van-signature-content-background);border:var(--van-signature-content-border);border-radius:var(--van-radius-lg);overflow:hidden}.van-signature__content canvas{width:100%;height:100%}.van-signature__footer{display:flex;justify-content:flex-end}.van-signature__footer .van-button{padding:0 var(--van-padding-md);margin-top:var(--van-padding-xs);margin-left:var(--van-padding-xs)}
@@ -13,6 +13,10 @@ export declare const Signature: import("../utils").WithInstall<import("vue").Def
13
13
  default: number;
14
14
  };
15
15
  clearButtonText: StringConstructor;
16
+ backgroundColor: {
17
+ type: import("vue").PropType<string>;
18
+ default: string;
19
+ };
16
20
  confirmButtonText: StringConstructor;
17
21
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "start" | "clear" | "end" | "signing")[], "submit" | "start" | "clear" | "end" | "signing", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
18
22
  tips: StringConstructor;
@@ -29,6 +33,10 @@ export declare const Signature: import("../utils").WithInstall<import("vue").Def
29
33
  default: number;
30
34
  };
31
35
  clearButtonText: StringConstructor;
36
+ backgroundColor: {
37
+ type: import("vue").PropType<string>;
38
+ default: string;
39
+ };
32
40
  confirmButtonText: StringConstructor;
33
41
  }>> & {
34
42
  onSubmit?: ((...args: any[]) => any) | undefined;
@@ -38,6 +46,7 @@ export declare const Signature: import("../utils").WithInstall<import("vue").Def
38
46
  onSigning?: ((...args: any[]) => any) | undefined;
39
47
  }, {
40
48
  type: string;
49
+ backgroundColor: string;
41
50
  lineWidth: number;
42
51
  penColor: string;
43
52
  }>>;
@@ -1 +1 @@
1
- :root{--van-step-text-color: var(--van-text-color-2);--van-step-active-color: var(--van-primary-color);--van-step-process-text-color: var(--van-text-color);--van-step-font-size: var(--van-font-size-md);--van-step-line-color: var(--van-border-color);--van-step-finish-line-color: var(--van-primary-color);--van-step-finish-text-color: var(--van-text-color);--van-step-icon-size: 12px;--van-step-circle-size: 5px;--van-step-circle-color: var(--van-gray-6);--van-step-horizontal-title-font-size: var(--van-font-size-sm)}.van-step{position:relative;flex:1;color:var(--van-step-text-color);font-size:var(--van-step-font-size)}.van-step__circle{display:block;width:var(--van-step-circle-size);height:var(--van-step-circle-size);background-color:var(--van-step-circle-color);border-radius:50%}.van-step__line{position:absolute;background-color:var(--van-step-line-color);transition:background-color var(--van-duration-base)}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child{position:absolute;right:1px;width:auto}.van-step--horizontal:last-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child .van-step__circle-container{right:-9px;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:30px;left:calc(var(--van-padding-xs) * -1);z-index:1;padding:0 var(--van-padding-xs);background-color:var(--van-background-2);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:3px;font-size:var(--van-step-horizontal-title-font-size);transform:translate(-50%)}.van-step--horizontal .van-step__line{top:30px;left:0;width:100%;height:1px}.van-step--horizontal .van-step__icon{display:block;font-size:var(--van-step-icon-size)}.van-step--horizontal .van-step--process{color:var(--van-step-process-text-color)}.van-step--vertical{display:block;float:none;padding:10px 10px 10px 0;line-height:var(--van-line-height-sm)}.van-step--vertical:not(:last-child):after{border-bottom-width:1px}.van-step--vertical .van-step__circle-container{position:absolute;top:19px;left:-15px;z-index:1;font-size:var(--van-step-icon-size);line-height:1;transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:16px;left:-15px;width:1px;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:var(--van-step-finish-text-color)}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:var(--van-step-finish-line-color)}.van-step__icon,.van-step__title{transition:color var(--van-duration-base)}.van-step__icon--active,.van-step__title--active,.van-step__icon--finish,.van-step__title--finish{color:var(--van-step-active-color)}
1
+ :root{--van-step-text-color: var(--van-text-color-2);--van-step-active-color: var(--van-primary-color);--van-step-process-text-color: var(--van-text-color);--van-step-font-size: var(--van-font-size-md);--van-step-line-color: var(--van-border-color);--van-step-finish-line-color: var(--van-primary-color);--van-step-finish-text-color: var(--van-text-color);--van-step-icon-size: 12px;--van-step-circle-size: 5px;--van-step-circle-color: var(--van-gray-6);--van-step-horizontal-title-font-size: var(--van-font-size-sm)}.van-step{position:relative;flex:1;color:var(--van-step-text-color);font-size:var(--van-step-font-size)}.van-step__circle{display:block;width:var(--van-step-circle-size);height:var(--van-step-circle-size);background-color:var(--van-step-circle-color);border-radius:50%}.van-step__line{position:absolute;background-color:var(--van-step-line-color);transition:background-color var(--van-duration-base)}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child:not(:first-child){position:absolute;right:1px;width:auto}.van-step--horizontal:last-child:not(:first-child) .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child:not(:first-child) .van-step__circle-container{right:-9px;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:30px;left:calc(var(--van-padding-xs) * -1);z-index:1;padding:0 var(--van-padding-xs);background-color:var(--van-background-2);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:3px;font-size:var(--van-step-horizontal-title-font-size);transform:translate(-50%)}.van-step--horizontal .van-step__line{top:30px;left:0;width:100%;height:1px}.van-step--horizontal .van-step__icon{display:block;font-size:var(--van-step-icon-size)}.van-step--horizontal .van-step--process{color:var(--van-step-process-text-color)}.van-step--vertical{display:block;float:none;padding:10px 10px 10px 0;line-height:var(--van-line-height-sm)}.van-step--vertical:not(:last-child):after{border-bottom-width:1px}.van-step--vertical .van-step__circle-container{position:absolute;top:19px;left:-15px;z-index:1;font-size:var(--van-step-icon-size);line-height:1;transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:16px;left:-15px;width:1px;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:var(--van-step-finish-text-color)}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:var(--van-step-finish-line-color)}.van-step__icon,.van-step__title{transition:color var(--van-duration-base)}.van-step__icon--active,.van-step__title--active,.van-step__icon--finish,.van-step__title--finish{color:var(--van-step-active-color)}
@@ -1 +1 @@
1
- :root{--van-submit-bar-height: 50px;--van-submit-bar-z-index: 100;--van-submit-bar-background: var(--van-background-2);--van-submit-bar-button-width: 110px;--van-submit-bar-price-color: var(--van-danger-color);--van-submit-bar-price-font-size: var(--van-font-size-sm);--van-submit-bar-price-integer-font-size: 20px;--van-submit-bar-price-font: var(--van-price-font);--van-submit-bar-currency-font-size: var(--van-font-size-md);--van-submit-bar-text-color: var(--van-text-color);--van-submit-bar-text-font-size: var(--van-font-size-md);--van-submit-bar-tip-padding: var(--van-padding-xs) var(--van-padding-sm);--van-submit-bar-tip-font-size: var(--van-font-size-sm);--van-submit-bar-tip-line-height: 1.5;--van-submit-bar-tip-color: var(--van-orange-dark);--van-submit-bar-tip-background: var(--van-orange-light);--van-submit-bar-tip-icon-size: 12px;--van-submit-bar-button-height: 40px;--van-submit-bar-padding: 0 var(--van-padding-md)}.van-submit-bar{position:fixed;bottom:0;left:0;z-index:var(--van-submit-bar-z-index);width:100%;background:var(--van-submit-bar-background);-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:var(--van-submit-bar-tip-padding);color:var(--van-submit-bar-tip-color);font-size:var(--van-submit-bar-tip-font-size);line-height:var(--van-submit-bar-tip-line-height);background:var(--van-submit-bar-tip-background)}.van-submit-bar__tip-icon{margin-right:var(--van-padding-base);font-size:var(--van-submit-bar-tip-icon-size);vertical-align:middle}.van-submit-bar__tip-text{vertical-align:middle}.van-submit-bar__bar{display:flex;align-items:center;justify-content:flex-end;height:var(--van-submit-bar-height);padding:var(--van-submit-bar-padding);font-size:var(--van-submit-bar-text-font-size)}.van-submit-bar__text{flex:1;padding-right:var(--van-padding-sm);color:var(--van-submit-bar-text-color);text-align:right}.van-submit-bar__text span{display:inline-block}.van-submit-bar__suffix-label{margin-left:var(--van-padding-base);font-weight:var(--van-font-bold)}.van-submit-bar__price{color:var(--van-submit-bar-price-color);font-weight:var(--van-font-bold);font-size:var(--van-submit-bar-price-font-size);margin-left:var(--van-padding-base)}.van-submit-bar__price-integer{font-size:var(--van-submit-bar-price-integer-font-size);font-family:var(--van-submit-bar-price-font)}.van-submit-bar__button{width:var(--van-submit-bar-button-width);height:var(--van-submit-bar-button-height);font-weight:var(--van-font-bold);border:none}.van-submit-bar__button--danger{background:var(--van-gradient-red)}
1
+ :root{--van-submit-bar-height: 50px;--van-submit-bar-z-index: 100;--van-submit-bar-background: var(--van-background-2);--van-submit-bar-button-width: 110px;--van-submit-bar-price-color: var(--van-danger-color);--van-submit-bar-price-font-size: var(--van-font-size-sm);--van-submit-bar-price-integer-font-size: 20px;--van-submit-bar-price-font: var(--van-price-font);--van-submit-bar-text-color: var(--van-text-color);--van-submit-bar-text-font-size: var(--van-font-size-md);--van-submit-bar-tip-padding: var(--van-padding-xs) var(--van-padding-sm);--van-submit-bar-tip-font-size: var(--van-font-size-sm);--van-submit-bar-tip-line-height: 1.5;--van-submit-bar-tip-color: var(--van-orange-dark);--van-submit-bar-tip-background: var(--van-orange-light);--van-submit-bar-tip-icon-size: 12px;--van-submit-bar-button-height: 40px;--van-submit-bar-padding: 0 var(--van-padding-md)}.van-submit-bar{position:fixed;bottom:0;left:0;z-index:var(--van-submit-bar-z-index);width:100%;background:var(--van-submit-bar-background);-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:var(--van-submit-bar-tip-padding);color:var(--van-submit-bar-tip-color);font-size:var(--van-submit-bar-tip-font-size);line-height:var(--van-submit-bar-tip-line-height);background:var(--van-submit-bar-tip-background)}.van-submit-bar__tip-icon{margin-right:var(--van-padding-base);font-size:var(--van-submit-bar-tip-icon-size);vertical-align:middle}.van-submit-bar__tip-text{vertical-align:middle}.van-submit-bar__bar{display:flex;align-items:center;justify-content:flex-end;height:var(--van-submit-bar-height);padding:var(--van-submit-bar-padding);font-size:var(--van-submit-bar-text-font-size)}.van-submit-bar__text{flex:1;padding-right:var(--van-padding-sm);color:var(--van-submit-bar-text-color);text-align:right}.van-submit-bar__text span{display:inline-block}.van-submit-bar__suffix-label{margin-left:var(--van-padding-base);font-weight:var(--van-font-bold)}.van-submit-bar__price{color:var(--van-submit-bar-price-color);font-weight:var(--van-font-bold);font-size:var(--van-submit-bar-price-font-size);margin-left:var(--van-padding-base)}.van-submit-bar__price-integer{font-size:var(--van-submit-bar-price-integer-font-size);font-family:var(--van-submit-bar-price-font)}.van-submit-bar__button{width:var(--van-submit-bar-button-width);height:var(--van-submit-bar-button-height);font-weight:var(--van-font-bold);border:none}.van-submit-bar__button--danger{background:var(--van-gradient-red)}
package/lib/tabs/Tabs.js CHANGED
@@ -80,6 +80,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
80
80
  let tabHeight;
81
81
  let lockScroll;
82
82
  let stickyFixed;
83
+ let cancelScrollLeftToRaf;
84
+ let cancelScrollTopToRaf;
83
85
  const root = (0, import_vue2.ref)();
84
86
  const navRef = (0, import_vue2.ref)();
85
87
  const wrapRef = (0, import_vue2.ref)();
@@ -127,7 +129,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
127
129
  }
128
130
  const title = titles[state.currentIndex].$el;
129
131
  const to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;
130
- (0, import_utils2.scrollLeftTo)(nav, to, immediate ? 0 : +props.duration);
132
+ if (cancelScrollLeftToRaf)
133
+ cancelScrollLeftToRaf();
134
+ cancelScrollLeftToRaf = (0, import_utils2.scrollLeftTo)(nav, to, immediate ? 0 : +props.duration);
131
135
  };
132
136
  const setLine = () => {
133
137
  const shouldAnimate = state.inited;
@@ -203,7 +207,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
203
207
  if (target && scroller.value) {
204
208
  const to = (0, import_utils.getElementTop)(target, scroller.value) - scrollOffset.value;
205
209
  lockScroll = true;
206
- (0, import_utils2.scrollTopTo)(scroller.value, to, immediate ? 0 : +props.duration, () => {
210
+ if (cancelScrollTopToRaf)
211
+ cancelScrollTopToRaf();
212
+ cancelScrollTopToRaf = (0, import_utils2.scrollTopTo)(scroller.value, to, immediate ? 0 : +props.duration, () => {
207
213
  lockScroll = false;
208
214
  });
209
215
  }
@@ -1,3 +1,3 @@
1
1
  import { ScrollElement } from '../utils';
2
- export declare function scrollLeftTo(scroller: HTMLElement, to: number, duration: number): void;
3
- export declare function scrollTopTo(scroller: ScrollElement, to: number, duration: number, callback: () => void): void;
2
+ export declare function scrollLeftTo(scroller: HTMLElement, to: number, duration: number): () => void;
3
+ export declare function scrollTopTo(scroller: ScrollElement, to: number, duration: number, callback: () => void): () => void;
package/lib/tabs/utils.js CHANGED
@@ -24,22 +24,31 @@ module.exports = __toCommonJS(stdin_exports);
24
24
  var import_use = require("@vant/use");
25
25
  var import_utils = require("../utils");
26
26
  function scrollLeftTo(scroller, to, duration) {
27
+ let rafId;
27
28
  let count = 0;
28
29
  const from = scroller.scrollLeft;
29
30
  const frames = duration === 0 ? 1 : Math.round(duration * 1e3 / 16);
31
+ function cancel() {
32
+ (0, import_use.cancelRaf)(rafId);
33
+ }
30
34
  function animate() {
31
35
  scroller.scrollLeft += (to - from) / frames;
32
36
  if (++count < frames) {
33
- (0, import_use.raf)(animate);
37
+ rafId = (0, import_use.raf)(animate);
34
38
  }
35
39
  }
36
40
  animate();
41
+ return cancel;
37
42
  }
38
43
  function scrollTopTo(scroller, to, duration, callback) {
44
+ let rafId;
39
45
  let current = (0, import_utils.getScrollTop)(scroller);
40
46
  const isDown = current < to;
41
47
  const frames = duration === 0 ? 1 : Math.round(duration * 1e3 / 16);
42
48
  const step = (to - current) / frames;
49
+ function cancel() {
50
+ (0, import_use.cancelRaf)(rafId);
51
+ }
43
52
  function animate() {
44
53
  current += step;
45
54
  if (isDown && current > to || !isDown && current < to) {
@@ -47,10 +56,11 @@ function scrollTopTo(scroller, to, duration, callback) {
47
56
  }
48
57
  (0, import_utils.setScrollTop)(scroller, current);
49
58
  if (isDown && current < to || !isDown && current > to) {
50
- (0, import_use.raf)(animate);
59
+ rafId = (0, import_use.raf)(animate);
51
60
  } else if (callback) {
52
- (0, import_use.raf)(callback);
61
+ rafId = (0, import_use.raf)(callback);
53
62
  }
54
63
  }
55
64
  animate();
65
+ return cancel;
56
66
  }
@@ -38,6 +38,7 @@ export declare const uploaderProps: {
38
38
  type: BooleanConstructor;
39
39
  default: true;
40
40
  };
41
+ reupload: BooleanConstructor;
41
42
  afterRead: PropType<UploaderAfterRead>;
42
43
  showUpload: {
43
44
  type: BooleanConstructor;
@@ -100,6 +101,7 @@ declare const _default: import("vue").DefineComponent<{
100
101
  type: BooleanConstructor;
101
102
  default: true;
102
103
  };
104
+ reupload: BooleanConstructor;
103
105
  afterRead: PropType<UploaderAfterRead>;
104
106
  showUpload: {
105
107
  type: BooleanConstructor;
@@ -125,7 +127,7 @@ declare const _default: import("vue").DefineComponent<{
125
127
  type: PropType<UploaderMaxSize>;
126
128
  default: number;
127
129
  };
128
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview")[], "update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
130
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview" | "clickReupload")[], "update:modelValue" | "delete" | "oversize" | "clickUpload" | "closePreview" | "clickPreview" | "clickReupload", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
129
131
  name: {
130
132
  type: (NumberConstructor | StringConstructor)[];
131
133
  default: string;
@@ -160,6 +162,7 @@ declare const _default: import("vue").DefineComponent<{
160
162
  type: BooleanConstructor;
161
163
  default: true;
162
164
  };
165
+ reupload: BooleanConstructor;
163
166
  afterRead: PropType<UploaderAfterRead>;
164
167
  showUpload: {
165
168
  type: BooleanConstructor;
@@ -192,6 +195,7 @@ declare const _default: import("vue").DefineComponent<{
192
195
  onClickUpload?: ((...args: any[]) => any) | undefined;
193
196
  onClosePreview?: ((...args: any[]) => any) | undefined;
194
197
  onClickPreview?: ((...args: any[]) => any) | undefined;
198
+ onClickReupload?: ((...args: any[]) => any) | undefined;
195
199
  }, {
196
200
  name: string | number;
197
201
  accept: string;
@@ -205,6 +209,7 @@ declare const _default: import("vue").DefineComponent<{
205
209
  resultType: UploaderResultType;
206
210
  uploadIcon: string;
207
211
  deletable: boolean;
212
+ reupload: boolean;
208
213
  showUpload: boolean;
209
214
  previewImage: boolean;
210
215
  previewFullImage: boolean;
@@ -54,6 +54,7 @@ const uploaderProps = {
54
54
  uploadIcon: (0, import_utils.makeStringProp)("photograph"),
55
55
  uploadText: String,
56
56
  deletable: import_utils.truthProp,
57
+ reupload: Boolean,
57
58
  afterRead: Function,
58
59
  showUpload: import_utils.truthProp,
59
60
  modelValue: (0, import_utils.makeArrayProp)(),
@@ -71,13 +72,14 @@ const uploaderProps = {
71
72
  var stdin_default = (0, import_vue2.defineComponent)({
72
73
  name: import_utils2.name,
73
74
  props: uploaderProps,
74
- emits: ["delete", "oversize", "clickUpload", "closePreview", "clickPreview", "update:modelValue"],
75
+ emits: ["delete", "oversize", "clickUpload", "closePreview", "clickPreview", "clickReupload", "update:modelValue"],
75
76
  setup(props, {
76
77
  emit,
77
78
  slots
78
79
  }) {
79
80
  const inputRef = (0, import_vue2.ref)();
80
81
  const urls = [];
82
+ const reuploadIndex = (0, import_vue2.ref)(-1);
81
83
  const getDetail = (index = props.modelValue.length) => ({
82
84
  name: props.name,
83
85
  index
@@ -103,7 +105,14 @@ var stdin_default = (0, import_vue2.defineComponent)({
103
105
  }
104
106
  }
105
107
  items = (0, import_vue2.reactive)(items);
106
- emit("update:modelValue", [...props.modelValue, ...(0, import_utils.toArray)(items)]);
108
+ if (reuploadIndex.value > -1) {
109
+ const arr = [...props.modelValue];
110
+ arr.splice(reuploadIndex.value, 1, items);
111
+ emit("update:modelValue", arr);
112
+ reuploadIndex.value = -1;
113
+ } else {
114
+ emit("update:modelValue", [...props.modelValue, ...(0, import_utils.toArray)(items)]);
115
+ }
107
116
  if (props.afterRead) {
108
117
  props.afterRead(items, getDetail());
109
118
  }
@@ -204,15 +213,20 @@ var stdin_default = (0, import_vue2.defineComponent)({
204
213
  emit("update:modelValue", fileList);
205
214
  emit("delete", item, getDetail(index));
206
215
  };
216
+ const reuploadImage = (index) => {
217
+ chooseFile();
218
+ reuploadIndex.value = index;
219
+ };
207
220
  const renderPreviewItem = (item, index) => {
208
- const needPickData = ["imageFit", "deletable", "previewSize", "beforeDelete"];
221
+ const needPickData = ["imageFit", "deletable", "reupload", "previewSize", "beforeDelete"];
209
222
  const previewData = (0, import_utils.extend)((0, import_utils.pick)(props, needPickData), (0, import_utils.pick)(item, needPickData, true));
210
223
  return (0, import_vue.createVNode)(import_UploaderPreviewItem.default, (0, import_vue.mergeProps)({
211
224
  "item": item,
212
225
  "index": index,
213
- "onClick": () => emit("clickPreview", item, getDetail(index)),
226
+ "onClick": () => emit(props.reupload ? "clickReupload" : "clickPreview", item, getDetail(index)),
214
227
  "onDelete": () => deleteFile(item, index),
215
- "onPreview": () => previewImage(item)
228
+ "onPreview": () => previewImage(item),
229
+ "onReupload": () => reuploadImage(index)
216
230
  }, (0, import_utils.pick)(props, ["name", "lazyLoad"]), previewData), (0, import_utils.pick)(slots, ["preview-cover", "preview-delete"]));
217
231
  };
218
232
  const renderPreviewList = () => {
@@ -222,24 +236,25 @@ var stdin_default = (0, import_vue2.defineComponent)({
222
236
  };
223
237
  const onClickUpload = (event) => emit("clickUpload", event);
224
238
  const renderUpload = () => {
225
- if (props.modelValue.length >= +props.maxCount) {
239
+ if (props.modelValue.length >= +props.maxCount && !props.reupload) {
226
240
  return;
227
241
  }
242
+ const hideUploader = props.modelValue.length >= +props.maxCount && props.reupload;
228
243
  const Input = props.readonly ? null : (0, import_vue.createVNode)("input", {
229
244
  "ref": inputRef,
230
245
  "type": "file",
231
246
  "class": (0, import_utils2.bem)("input"),
232
247
  "accept": props.accept,
233
248
  "capture": props.capture,
234
- "multiple": props.multiple,
249
+ "multiple": props.multiple && reuploadIndex.value === -1,
235
250
  "disabled": props.disabled,
236
251
  "onChange": onChange
237
252
  }, null);
238
253
  if (slots.default) {
239
- return (0, import_vue.createVNode)("div", {
254
+ return (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", {
240
255
  "class": (0, import_utils2.bem)("input-wrapper"),
241
256
  "onClick": onClickUpload
242
- }, [slots.default(), Input]);
257
+ }, [slots.default(), Input]), [[import_vue.vShow, !hideUploader]]);
243
258
  }
244
259
  return (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", {
245
260
  "class": (0, import_utils2.bem)("upload", {
@@ -252,7 +267,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
252
267
  "class": (0, import_utils2.bem)("upload-icon")
253
268
  }, null), props.uploadText && (0, import_vue.createVNode)("span", {
254
269
  "class": (0, import_utils2.bem)("upload-text")
255
- }, [props.uploadText]), Input]), [[import_vue.vShow, props.showUpload]]);
270
+ }, [props.uploadText]), Input]), [[import_vue.vShow, props.showUpload && !hideUploader]]);
256
271
  };
257
272
  const chooseFile = () => {
258
273
  if (inputRef.value && !props.disabled) {
@@ -12,9 +12,10 @@ declare const _default: import("vue").DefineComponent<{
12
12
  imageFit: PropType<ImageFit>;
13
13
  lazyLoad: BooleanConstructor;
14
14
  deletable: BooleanConstructor;
15
+ reupload: BooleanConstructor;
15
16
  previewSize: PropType<Numeric | [Numeric, Numeric]>;
16
17
  beforeDelete: PropType<Interceptor>;
17
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "preview")[], "delete" | "preview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
18
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "reupload" | "preview")[], "delete" | "reupload" | "preview", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
18
19
  name: (NumberConstructor | StringConstructor)[];
19
20
  item: {
20
21
  type: PropType<UploaderFileListItem>;
@@ -24,13 +25,16 @@ declare const _default: import("vue").DefineComponent<{
24
25
  imageFit: PropType<ImageFit>;
25
26
  lazyLoad: BooleanConstructor;
26
27
  deletable: BooleanConstructor;
28
+ reupload: BooleanConstructor;
27
29
  previewSize: PropType<Numeric | [Numeric, Numeric]>;
28
30
  beforeDelete: PropType<Interceptor>;
29
31
  }>> & {
30
32
  onDelete?: ((...args: any[]) => any) | undefined;
33
+ onReupload?: ((...args: any[]) => any) | undefined;
31
34
  onPreview?: ((...args: any[]) => any) | undefined;
32
35
  }, {
33
36
  lazyLoad: boolean;
34
37
  deletable: boolean;
38
+ reupload: boolean;
35
39
  }>;
36
40
  export default _default;