vant 4.9.2 → 4.9.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.
@@ -0,0 +1,100 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ default: () => stdin_default
21
+ });
22
+ module.exports = __toCommonJS(stdin_exports);
23
+ var stdin_default = {
24
+ name: "\u0410\u0442\u044B",
25
+ tel: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D",
26
+ save: "\u0421\u0430\u049B\u0442\u0430\u0443",
27
+ clear: "\u0422\u0430\u0437\u0430\u0440\u0442\u0443",
28
+ cancel: "\u0411\u0430\u0441\u0442\u0430\u0440\u0442\u0443",
29
+ confirm: "\u0420\u0430\u0441\u0442\u0430\u0443",
30
+ delete: "\u0416\u043E\u044E",
31
+ loading: "\u0416\u04AF\u043A\u0442\u0435\u043B\u0443\u0434\u0435...",
32
+ noCoupon: "\u041A\u0443\u043F\u043E\u043D\u0434\u0430\u0440 \u0436\u043E\u049B",
33
+ nameEmpty: "\u0410\u0442\u044B-\u0436\u04E9\u043D\u0456\u04A3\u0456\u0437\u0434\u0456 \u0442\u043E\u043B\u0442\u044B\u0440\u044B\u04A3\u044B\u0437",
34
+ addContact: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u0456 \u049B\u043E\u0441\u0443",
35
+ telInvalid: "\u0414\u04B1\u0440\u044B\u0441 \u0442\u0435\u043B\u0435\u0444\u043E\u043D \u043D\u04E9\u043C\u0456\u0440\u0456\u043D \u0442\u043E\u043B\u0442\u044B\u0440\u044B\u04A3\u044B\u0437",
36
+ vanCalendar: {
37
+ end: "\u0410\u044F\u049B\u0442\u0430\u043B\u0443 \u0443\u0430\u049B\u044B\u0442\u044B",
38
+ start: "\u0411\u0430\u0441\u0442\u0430\u0443 \u0443\u0430\u049B\u044B\u0442\u044B",
39
+ title: "\u041A\u04AF\u043D\u0434\u0456 \u0442\u0430\u04A3\u0434\u0430\u0443",
40
+ weekdays: ["\u0416\u0421", "\u0414\u0421", "\u0421\u0421", "\u0421\u0420", "\u0411\u0421", "\u0416\u041C", "\u0421\u0411"],
41
+ monthTitle: (year, month) => {
42
+ const monthNames = [
43
+ "\u049A\u0430\u04A3\u0442\u0430\u0440",
44
+ "\u0410\u049B\u043F\u0430\u043D",
45
+ "\u041D\u0430\u0443\u0440\u044B\u0437",
46
+ "\u0421\u04D9\u0443\u0456\u0440",
47
+ "\u041C\u0430\u043C\u044B\u0440",
48
+ "\u041C\u0430\u0443\u0441\u044B\u043C",
49
+ "\u0428\u0456\u043B\u0434\u0435",
50
+ "\u0422\u0430\u043C\u044B\u0437",
51
+ "\u049A\u044B\u0440\u043A\u04AF\u0439\u0435\u043A",
52
+ "\u049A\u0430\u0437\u0430\u043D",
53
+ "\u049A\u0430\u0440\u0430\u0448\u0430",
54
+ "\u0416\u0435\u043B\u0442\u043E\u049B\u0441\u0430\u043D"
55
+ ];
56
+ return `${year} ${monthNames[month - 1]}`;
57
+ },
58
+ rangePrompt: (maxRange) => `\u0422\u0435\u043A ${maxRange} \u043A\u04AF\u043D\u0433\u0435 \u0434\u0435\u0439\u0456\u043D \u0442\u0430\u04A3\u0434\u0430\u0439 \u0430\u043B\u0430\u0441\u044B\u0437`
59
+ },
60
+ vanCascader: {
61
+ select: "\u0422\u0430\u04A3\u0434\u0430\u04A3\u044B\u0437"
62
+ },
63
+ vanPagination: {
64
+ prev: "\u0410\u0440\u0442\u049B\u0430",
65
+ next: "\u0410\u043B\u0493\u0430"
66
+ },
67
+ vanPullRefresh: {
68
+ pulling: "\u0416\u0430\u04A3\u0430\u0440\u0442\u0443 \u04AF\u0448\u0456\u043D \u0442\u0430\u0440\u0442\u044B\u04A3\u044B\u0437...",
69
+ loosing: "\u0416\u0430\u04A3\u0430\u0440\u0442\u0443 \u04AF\u0448\u0456\u043D \u0436\u0456\u0431\u0435\u0440\u0456\u04A3\u0456\u0437..."
70
+ },
71
+ vanSubmitBar: {
72
+ label: "\u0416\u0430\u043B\u043F\u044B:"
73
+ },
74
+ vanCoupon: {
75
+ unlimited: "\u0422\u0430\u043B\u0430\u043F \u0436\u043E\u049B",
76
+ discount: (discount) => `${discount * 10}% \u0436\u0435\u04A3\u0456\u043B\u0434\u0456\u043A`,
77
+ condition: (condition) => `${condition} \u0442\u0435\u04A3\u0433\u0435\u0433\u0435 \u0436\u0435\u0442\u043A\u0435\u043D\u0434\u0435 \u049B\u043E\u043B \u0436\u0435\u0442\u0456\u043C\u0434\u0456`
78
+ },
79
+ vanCouponCell: {
80
+ title: "\u041A\u0443\u043F\u043E\u043D",
81
+ count: (count) => `${count} \u049B\u043E\u043B \u0436\u0435\u0442\u0456\u043C\u0434\u0456 \u043A\u0443\u043F\u043E\u043D`
82
+ },
83
+ vanCouponList: {
84
+ exchange: "\u0410\u0439\u044B\u0440\u0431\u0430\u0441\u0442\u0430\u0443",
85
+ close: "\u049A\u043E\u043B\u0434\u0430\u043D\u0431\u0430\u0443",
86
+ enable: "\u049A\u043E\u043B \u0436\u0435\u0442\u0456\u043C\u0434\u0456",
87
+ disabled: "\u049A\u043E\u043B\u0436\u0435\u0442\u0456\u043C\u0441\u0456\u0437",
88
+ placeholder: "\u0416\u0435\u04A3\u0456\u043B\u0434\u0456\u043A \u043A\u043E\u0434\u044B\u043D \u0435\u043D\u0433\u0456\u0437\u0456\u04A3\u0456\u0437"
89
+ },
90
+ vanAddressEdit: {
91
+ area: "\u0410\u0443\u043C\u0430\u049B",
92
+ areaEmpty: "\u0410\u0439\u043C\u0430\u049B\u0442\u044B \u0442\u0430\u04A3\u0434\u0430\u04A3\u044B\u0437",
93
+ addressEmpty: "\u0422\u043E\u043B\u044B\u049B \u043C\u0435\u043A\u0435\u043D-\u0436\u0430\u0439\u0434\u044B \u0442\u043E\u043B\u0442\u044B\u0440\u044B\u04A3\u044B\u0437",
94
+ addressDetail: "\u041C\u0435\u043A\u0435\u043D\u0436\u0430\u0439",
95
+ defaultAddress: "\u04D8\u0434\u0435\u043F\u043A\u0456 \u0436\u0435\u0442\u043A\u0456\u0437\u0443 \u043C\u0435\u043A\u0435\u043D\u0436\u0430\u0439\u044B \u0440\u0435\u0442\u0456\u043D\u0434\u0435 \u043E\u0440\u043D\u0430\u0442\u0443"
96
+ },
97
+ vanAddressList: {
98
+ add: "\u041C\u0435\u043A\u0435\u043D\u0436\u0430\u0439 \u049B\u043E\u0441\u0443"
99
+ }
100
+ };
@@ -123,7 +123,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
123
123
  }, 0);
124
124
  }
125
125
  };
126
- const onClick = (position = "outside") => {
126
+ const onClick = (position = "outside", event) => {
127
127
  if (isInBeforeClosing)
128
128
  return;
129
129
  emit("click", position);
@@ -131,6 +131,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
131
131
  isInBeforeClosing = true;
132
132
  (0, import_utils.callInterceptor)(props.beforeClose, {
133
133
  args: [{
134
+ event,
134
135
  name: props.name,
135
136
  position
136
137
  }],
@@ -147,7 +148,10 @@ var stdin_default = (0, import_vue2.defineComponent)({
147
148
  if (stop) {
148
149
  event.stopPropagation();
149
150
  }
150
- onClick(position);
151
+ if (lockClick) {
152
+ return;
153
+ }
154
+ onClick(position, event);
151
155
  };
152
156
  const renderSideContent = (side, ref2) => {
153
157
  const contentSlot = slots[side];
@@ -163,7 +167,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
163
167
  open,
164
168
  close
165
169
  });
166
- (0, import_use.useClickAway)(root, () => onClick("outside"), {
170
+ (0, import_use.useClickAway)(root, (event) => onClick("outside", event), {
167
171
  eventName: "touchstart"
168
172
  });
169
173
  (0, import_use.useEventListener)("touchmove", onTouchMove, {
@@ -42,10 +42,11 @@ var stdin_default = (0, import_vue2.defineComponent)({
42
42
  emit,
43
43
  slots
44
44
  }) {
45
- const text = (0, import_vue2.ref)("");
45
+ const text = (0, import_vue2.ref)(props.content);
46
46
  const expanded = (0, import_vue2.ref)(false);
47
47
  const hasAction = (0, import_vue2.ref)(false);
48
48
  const root = (0, import_vue2.ref)();
49
+ const actionRef = (0, import_vue2.ref)();
49
50
  let needRecalculate = false;
50
51
  const actionText = (0, import_vue2.computed)(() => expanded.value ? props.collapseText : props.expandText);
51
52
  const pxToNum = (value) => {
@@ -73,57 +74,60 @@ var stdin_default = (0, import_vue2.defineComponent)({
73
74
  document.body.appendChild(container);
74
75
  return container;
75
76
  };
76
- const calcEllipsised = () => {
77
- const calcEllipsisText = (container2, maxHeight2) => {
78
- const {
79
- content,
80
- position,
81
- dots
82
- } = props;
83
- const end = content.length;
84
- const calcEllipse = () => {
85
- const tail = (left, right) => {
86
- if (right - left <= 1) {
87
- if (position === "end") {
88
- return content.slice(0, left) + dots;
89
- }
90
- return dots + content.slice(right, end);
91
- }
92
- const middle2 = Math.round((left + right) / 2);
77
+ const calcEllipsisText = (container, maxHeight) => {
78
+ var _a, _b;
79
+ const {
80
+ content,
81
+ position,
82
+ dots
83
+ } = props;
84
+ const end = content.length;
85
+ const middle = 0 + end >> 1;
86
+ const actionHTML = slots.action ? (_b = (_a = actionRef.value) == null ? void 0 : _a.outerHTML) != null ? _b : "" : props.expandText;
87
+ const calcEllipse = () => {
88
+ const tail = (left, right) => {
89
+ if (right - left <= 1) {
93
90
  if (position === "end") {
94
- container2.innerText = content.slice(0, middle2) + dots + actionText.value;
95
- } else {
96
- container2.innerText = dots + content.slice(middle2, end) + actionText.value;
97
- }
98
- if (container2.offsetHeight > maxHeight2) {
99
- if (position === "end") {
100
- return tail(left, middle2);
101
- }
102
- return tail(middle2, right);
91
+ return content.slice(0, left) + dots;
103
92
  }
93
+ return dots + content.slice(right, end);
94
+ }
95
+ const middle2 = Math.round((left + right) / 2);
96
+ if (position === "end") {
97
+ container.innerText = content.slice(0, middle2) + dots;
98
+ } else {
99
+ container.innerText = dots + content.slice(middle2, end);
100
+ }
101
+ container.innerHTML += actionHTML;
102
+ if (container.offsetHeight > maxHeight) {
104
103
  if (position === "end") {
105
- return tail(middle2, right);
104
+ return tail(left, middle2);
106
105
  }
107
- return tail(left, middle2);
108
- };
109
- container2.innerText = tail(0, end);
110
- };
111
- const middleTail = (leftPart, rightPart) => {
112
- if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
113
- return content.slice(0, leftPart[0]) + dots + content.slice(rightPart[1], end);
106
+ return tail(middle2, right);
114
107
  }
115
- const leftMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);
116
- const rightMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);
117
- container2.innerText = props.content.slice(0, leftMiddle) + props.dots + props.content.slice(rightMiddle, end) + props.expandText;
118
- if (container2.offsetHeight >= maxHeight2) {
119
- return middleTail([leftPart[0], leftMiddle], [rightMiddle, rightPart[1]]);
108
+ if (position === "end") {
109
+ return tail(middle2, right);
120
110
  }
121
- return middleTail([leftMiddle, leftPart[1]], [rightPart[0], rightMiddle]);
111
+ return tail(left, middle2);
122
112
  };
123
- const middle = 0 + end >> 1;
124
- props.position === "middle" ? container2.innerText = middleTail([0, middle], [middle, end]) : calcEllipse();
125
- return container2.innerText;
113
+ return tail(0, end);
114
+ };
115
+ const middleTail = (leftPart, rightPart) => {
116
+ if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
117
+ return content.slice(0, leftPart[0]) + dots + content.slice(rightPart[1], end);
118
+ }
119
+ const leftMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);
120
+ const rightMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);
121
+ container.innerText = props.content.slice(0, leftMiddle) + props.dots + props.content.slice(rightMiddle, end);
122
+ container.innerHTML += actionHTML;
123
+ if (container.offsetHeight >= maxHeight) {
124
+ return middleTail([leftPart[0], leftMiddle], [rightMiddle, rightPart[1]]);
125
+ }
126
+ return middleTail([leftMiddle, leftPart[1]], [rightPart[0], rightMiddle]);
126
127
  };
128
+ return props.position === "middle" ? middleTail([0, middle], [middle, end]) : calcEllipse();
129
+ };
130
+ const calcEllipsised = () => {
127
131
  const container = cloneContainer();
128
132
  if (!container) {
129
133
  needRecalculate = true;
@@ -156,11 +160,17 @@ var stdin_default = (0, import_vue2.defineComponent)({
156
160
  expanded: expanded.value
157
161
  }) : actionText.value;
158
162
  return (0, import_vue.createVNode)("span", {
163
+ "ref": actionRef,
159
164
  "class": bem("action"),
160
165
  "onClick": onClickAction
161
166
  }, [action]);
162
167
  };
163
- (0, import_vue2.onMounted)(calcEllipsised);
168
+ (0, import_vue2.onMounted)(() => {
169
+ calcEllipsised();
170
+ if (slots.action) {
171
+ (0, import_vue2.nextTick)(calcEllipsised);
172
+ }
173
+ });
164
174
  (0, import_vue2.onActivated)(() => {
165
175
  if (needRecalculate) {
166
176
  needRecalculate = false;
@@ -216,7 +216,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
216
216
  emit("update:modelValue", fileList);
217
217
  emit("delete", item, getDetail(index));
218
218
  };
219
- const reuploadImage = (index) => {
219
+ const reuploadFile = (index) => {
220
220
  isReuploading.value = true;
221
221
  reuploadIndex.value = index;
222
222
  (0, import_vue2.nextTick)(() => chooseFile());
@@ -236,7 +236,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
236
236
  "onClick": () => emit(props.reupload ? "clickReupload" : "clickPreview", item, getDetail(index)),
237
237
  "onDelete": () => deleteFile(item, index),
238
238
  "onPreview": () => previewImage(item),
239
- "onReupload": () => reuploadImage(index)
239
+ "onReupload": () => reuploadFile(index)
240
240
  }, (0, import_utils.pick)(props, ["name", "lazyLoad"]), previewData), (0, import_utils.pick)(slots, ["preview-cover", "preview-delete"]));
241
241
  };
242
242
  const renderPreviewList = () => {
@@ -246,10 +246,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
246
246
  };
247
247
  const onClickUpload = (event) => emit("clickUpload", event);
248
248
  const renderUpload = () => {
249
- if (props.modelValue.length >= +props.maxCount && !props.reupload) {
250
- return;
251
- }
252
- const hideUploader = props.modelValue.length >= +props.maxCount && props.reupload;
249
+ const lessThanMax = props.modelValue.length < +props.maxCount;
253
250
  const Input = props.readonly ? null : (0, import_vue.createVNode)("input", {
254
251
  "ref": inputRef,
255
252
  "type": "file",
@@ -265,7 +262,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
265
262
  return (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", {
266
263
  "class": (0, import_utils2.bem)("input-wrapper"),
267
264
  "onClick": onClickUpload
268
- }, [slots.default(), Input]), [[import_vue.vShow, !hideUploader]]);
265
+ }, [slots.default(), Input]), [[import_vue.vShow, lessThanMax]]);
269
266
  }
270
267
  return (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", {
271
268
  "class": (0, import_utils2.bem)("upload", {
@@ -278,7 +275,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
278
275
  "class": (0, import_utils2.bem)("upload-icon")
279
276
  }, null), props.uploadText && (0, import_vue.createVNode)("span", {
280
277
  "class": (0, import_utils2.bem)("upload-text")
281
- }, [props.uploadText]), Input]), [[import_vue.vShow, props.showUpload && !hideUploader]]);
278
+ }, [props.uploadText]), Input]), [[import_vue.vShow, props.showUpload && lessThanMax]]);
282
279
  };
283
280
  const chooseFile = () => {
284
281
  if (inputRef.value && !props.disabled) {
@@ -290,6 +287,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
290
287
  });
291
288
  (0, import_use_expose.useExpose)({
292
289
  chooseFile,
290
+ reuploadFile,
293
291
  closeImagePreview
294
292
  });
295
293
  (0, import_use.useCustomFieldValue)(() => props.modelValue);
@@ -29,6 +29,7 @@ export type UploaderAfterRead = (items: UploaderFileListItem | UploaderFileListI
29
29
  export type UploaderExpose = {
30
30
  chooseFile: () => void;
31
31
  closeImagePreview: () => void;
32
+ reuploadFile: (index: number) => void;
32
33
  };
33
34
  export type UploaderInstance = ComponentPublicInstance<UploaderProps, UploaderExpose>;
34
35
  export type UploaderThemeVars = {
package/lib/vant.cjs.js CHANGED
@@ -6339,11 +6339,17 @@ function getDayByOffset(date, offset) {
6339
6339
  function getMonthByOffset(date, offset) {
6340
6340
  const cloned = cloneDate(date);
6341
6341
  cloned.setMonth(cloned.getMonth() + offset);
6342
+ if (cloned.getDate() !== date.getDate()) {
6343
+ cloned.setDate(0);
6344
+ }
6342
6345
  return cloned;
6343
6346
  }
6344
6347
  function getYearByOffset(date, offset) {
6345
6348
  const cloned = cloneDate(date);
6346
6349
  cloned.setFullYear(cloned.getFullYear() + offset);
6350
+ if (cloned.getDate() !== date.getDate()) {
6351
+ cloned.setDate(0);
6352
+ }
6347
6353
  return cloned;
6348
6354
  }
6349
6355
  const getPrevDay = (date) => getDayByOffset(date, -1);
@@ -6747,22 +6753,10 @@ var stdin_default$1e = vue.defineComponent({
6747
6753
  slots,
6748
6754
  emit
6749
6755
  }) {
6750
- const prevMonthDisabled = vue.computed(() => {
6751
- const prevMonth = getPrevMonth(props2.date);
6752
- return props2.minDate && prevMonth < props2.minDate;
6753
- });
6754
- const prevYearDisabled = vue.computed(() => {
6755
- const prevYear = getPrevYear(props2.date);
6756
- return props2.minDate && prevYear < props2.minDate;
6757
- });
6758
- const nextMonthDisabled = vue.computed(() => {
6759
- const nextMonth = getNextMonth(props2.date);
6760
- return props2.maxDate && nextMonth > props2.maxDate;
6761
- });
6762
- const nextYearDisabled = vue.computed(() => {
6763
- const nextYear = getNextYear(props2.date);
6764
- return props2.maxDate && nextYear > props2.maxDate;
6765
- });
6756
+ const prevMonthDisabled = vue.computed(() => props2.date && props2.minDate && compareMonth(getPrevMonth(props2.date), props2.minDate) < 0);
6757
+ const prevYearDisabled = vue.computed(() => props2.date && props2.minDate && compareMonth(getPrevYear(props2.date), props2.minDate) < 0);
6758
+ const nextMonthDisabled = vue.computed(() => props2.date && props2.maxDate && compareMonth(getNextMonth(props2.date), props2.maxDate) > 0);
6759
+ const nextYearDisabled = vue.computed(() => props2.date && props2.maxDate && compareMonth(getNextYear(props2.date), props2.maxDate) > 0);
6766
6760
  const renderTitle = () => {
6767
6761
  if (props2.showTitle) {
6768
6762
  const text = props2.title || t$g("title");
@@ -14967,7 +14961,7 @@ var stdin_default$c = vue.defineComponent({
14967
14961
  }, 0);
14968
14962
  }
14969
14963
  };
14970
- const onClick = (position = "outside") => {
14964
+ const onClick = (position = "outside", event) => {
14971
14965
  if (isInBeforeClosing)
14972
14966
  return;
14973
14967
  emit("click", position);
@@ -14975,6 +14969,7 @@ var stdin_default$c = vue.defineComponent({
14975
14969
  isInBeforeClosing = true;
14976
14970
  callInterceptor(props2.beforeClose, {
14977
14971
  args: [{
14972
+ event,
14978
14973
  name: props2.name,
14979
14974
  position
14980
14975
  }],
@@ -14991,7 +14986,10 @@ var stdin_default$c = vue.defineComponent({
14991
14986
  if (stop) {
14992
14987
  event.stopPropagation();
14993
14988
  }
14994
- onClick(position);
14989
+ if (lockClick2) {
14990
+ return;
14991
+ }
14992
+ onClick(position, event);
14995
14993
  };
14996
14994
  const renderSideContent = (side, ref2) => {
14997
14995
  const contentSlot = slots[side];
@@ -15007,7 +15005,7 @@ var stdin_default$c = vue.defineComponent({
15007
15005
  open,
15008
15006
  close
15009
15007
  });
15010
- use.useClickAway(root, () => onClick("outside"), {
15008
+ use.useClickAway(root, (event) => onClick("outside", event), {
15011
15009
  eventName: "touchstart"
15012
15010
  });
15013
15011
  use.useEventListener("touchmove", onTouchMove, {
@@ -15237,10 +15235,11 @@ var stdin_default$9 = vue.defineComponent({
15237
15235
  emit,
15238
15236
  slots
15239
15237
  }) {
15240
- const text = vue.ref("");
15238
+ const text = vue.ref(props2.content);
15241
15239
  const expanded = vue.ref(false);
15242
15240
  const hasAction = vue.ref(false);
15243
15241
  const root = vue.ref();
15242
+ const actionRef = vue.ref();
15244
15243
  let needRecalculate = false;
15245
15244
  const actionText = vue.computed(() => expanded.value ? props2.collapseText : props2.expandText);
15246
15245
  const pxToNum = (value) => {
@@ -15268,57 +15267,60 @@ var stdin_default$9 = vue.defineComponent({
15268
15267
  document.body.appendChild(container);
15269
15268
  return container;
15270
15269
  };
15271
- const calcEllipsised = () => {
15272
- const calcEllipsisText = (container2, maxHeight2) => {
15273
- const {
15274
- content,
15275
- position,
15276
- dots
15277
- } = props2;
15278
- const end = content.length;
15279
- const calcEllipse = () => {
15280
- const tail = (left, right) => {
15281
- if (right - left <= 1) {
15282
- if (position === "end") {
15283
- return content.slice(0, left) + dots;
15284
- }
15285
- return dots + content.slice(right, end);
15286
- }
15287
- const middle2 = Math.round((left + right) / 2);
15270
+ const calcEllipsisText = (container, maxHeight) => {
15271
+ var _a, _b;
15272
+ const {
15273
+ content,
15274
+ position,
15275
+ dots
15276
+ } = props2;
15277
+ const end = content.length;
15278
+ const middle = 0 + end >> 1;
15279
+ const actionHTML = slots.action ? (_b = (_a = actionRef.value) == null ? void 0 : _a.outerHTML) != null ? _b : "" : props2.expandText;
15280
+ const calcEllipse = () => {
15281
+ const tail = (left, right) => {
15282
+ if (right - left <= 1) {
15288
15283
  if (position === "end") {
15289
- container2.innerText = content.slice(0, middle2) + dots + actionText.value;
15290
- } else {
15291
- container2.innerText = dots + content.slice(middle2, end) + actionText.value;
15292
- }
15293
- if (container2.offsetHeight > maxHeight2) {
15294
- if (position === "end") {
15295
- return tail(left, middle2);
15296
- }
15297
- return tail(middle2, right);
15284
+ return content.slice(0, left) + dots;
15298
15285
  }
15286
+ return dots + content.slice(right, end);
15287
+ }
15288
+ const middle2 = Math.round((left + right) / 2);
15289
+ if (position === "end") {
15290
+ container.innerText = content.slice(0, middle2) + dots;
15291
+ } else {
15292
+ container.innerText = dots + content.slice(middle2, end);
15293
+ }
15294
+ container.innerHTML += actionHTML;
15295
+ if (container.offsetHeight > maxHeight) {
15299
15296
  if (position === "end") {
15300
- return tail(middle2, right);
15297
+ return tail(left, middle2);
15301
15298
  }
15302
- return tail(left, middle2);
15303
- };
15304
- container2.innerText = tail(0, end);
15305
- };
15306
- const middleTail = (leftPart, rightPart) => {
15307
- if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
15308
- return content.slice(0, leftPart[0]) + dots + content.slice(rightPart[1], end);
15299
+ return tail(middle2, right);
15309
15300
  }
15310
- const leftMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);
15311
- const rightMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);
15312
- container2.innerText = props2.content.slice(0, leftMiddle) + props2.dots + props2.content.slice(rightMiddle, end) + props2.expandText;
15313
- if (container2.offsetHeight >= maxHeight2) {
15314
- return middleTail([leftPart[0], leftMiddle], [rightMiddle, rightPart[1]]);
15301
+ if (position === "end") {
15302
+ return tail(middle2, right);
15315
15303
  }
15316
- return middleTail([leftMiddle, leftPart[1]], [rightPart[0], rightMiddle]);
15304
+ return tail(left, middle2);
15317
15305
  };
15318
- const middle = 0 + end >> 1;
15319
- props2.position === "middle" ? container2.innerText = middleTail([0, middle], [middle, end]) : calcEllipse();
15320
- return container2.innerText;
15306
+ return tail(0, end);
15307
+ };
15308
+ const middleTail = (leftPart, rightPart) => {
15309
+ if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
15310
+ return content.slice(0, leftPart[0]) + dots + content.slice(rightPart[1], end);
15311
+ }
15312
+ const leftMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);
15313
+ const rightMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);
15314
+ container.innerText = props2.content.slice(0, leftMiddle) + props2.dots + props2.content.slice(rightMiddle, end);
15315
+ container.innerHTML += actionHTML;
15316
+ if (container.offsetHeight >= maxHeight) {
15317
+ return middleTail([leftPart[0], leftMiddle], [rightMiddle, rightPart[1]]);
15318
+ }
15319
+ return middleTail([leftMiddle, leftPart[1]], [rightPart[0], rightMiddle]);
15321
15320
  };
15321
+ return props2.position === "middle" ? middleTail([0, middle], [middle, end]) : calcEllipse();
15322
+ };
15323
+ const calcEllipsised = () => {
15322
15324
  const container = cloneContainer();
15323
15325
  if (!container) {
15324
15326
  needRecalculate = true;
@@ -15351,11 +15353,17 @@ var stdin_default$9 = vue.defineComponent({
15351
15353
  expanded: expanded.value
15352
15354
  }) : actionText.value;
15353
15355
  return vue.createVNode("span", {
15356
+ "ref": actionRef,
15354
15357
  "class": bem$3("action"),
15355
15358
  "onClick": onClickAction
15356
15359
  }, [action]);
15357
15360
  };
15358
- vue.onMounted(calcEllipsised);
15361
+ vue.onMounted(() => {
15362
+ calcEllipsised();
15363
+ if (slots.action) {
15364
+ vue.nextTick(calcEllipsised);
15365
+ }
15366
+ });
15359
15367
  vue.onActivated(() => {
15360
15368
  if (needRecalculate) {
15361
15369
  needRecalculate = false;
@@ -15954,7 +15962,7 @@ var stdin_default$5 = vue.defineComponent({
15954
15962
  emit("update:modelValue", fileList);
15955
15963
  emit("delete", item, getDetail(index));
15956
15964
  };
15957
- const reuploadImage = (index) => {
15965
+ const reuploadFile = (index) => {
15958
15966
  isReuploading.value = true;
15959
15967
  reuploadIndex.value = index;
15960
15968
  vue.nextTick(() => chooseFile());
@@ -15974,7 +15982,7 @@ var stdin_default$5 = vue.defineComponent({
15974
15982
  "onClick": () => emit(props2.reupload ? "clickReupload" : "clickPreview", item, getDetail(index)),
15975
15983
  "onDelete": () => deleteFile(item, index),
15976
15984
  "onPreview": () => previewImage(item),
15977
- "onReupload": () => reuploadImage(index)
15985
+ "onReupload": () => reuploadFile(index)
15978
15986
  }, pick(props2, ["name", "lazyLoad"]), previewData), pick(slots, ["preview-cover", "preview-delete"]));
15979
15987
  };
15980
15988
  const renderPreviewList = () => {
@@ -15984,10 +15992,7 @@ var stdin_default$5 = vue.defineComponent({
15984
15992
  };
15985
15993
  const onClickUpload = (event) => emit("clickUpload", event);
15986
15994
  const renderUpload = () => {
15987
- if (props2.modelValue.length >= +props2.maxCount && !props2.reupload) {
15988
- return;
15989
- }
15990
- const hideUploader = props2.modelValue.length >= +props2.maxCount && props2.reupload;
15995
+ const lessThanMax = props2.modelValue.length < +props2.maxCount;
15991
15996
  const Input = props2.readonly ? null : vue.createVNode("input", {
15992
15997
  "ref": inputRef,
15993
15998
  "type": "file",
@@ -16003,7 +16008,7 @@ var stdin_default$5 = vue.defineComponent({
16003
16008
  return vue.withDirectives(vue.createVNode("div", {
16004
16009
  "class": bem$1("input-wrapper"),
16005
16010
  "onClick": onClickUpload
16006
- }, [slots.default(), Input]), [[vue.vShow, !hideUploader]]);
16011
+ }, [slots.default(), Input]), [[vue.vShow, lessThanMax]]);
16007
16012
  }
16008
16013
  return vue.withDirectives(vue.createVNode("div", {
16009
16014
  "class": bem$1("upload", {
@@ -16016,7 +16021,7 @@ var stdin_default$5 = vue.defineComponent({
16016
16021
  "class": bem$1("upload-icon")
16017
16022
  }, null), props2.uploadText && vue.createVNode("span", {
16018
16023
  "class": bem$1("upload-text")
16019
- }, [props2.uploadText]), Input]), [[vue.vShow, props2.showUpload && !hideUploader]]);
16024
+ }, [props2.uploadText]), Input]), [[vue.vShow, props2.showUpload && lessThanMax]]);
16020
16025
  };
16021
16026
  const chooseFile = () => {
16022
16027
  if (inputRef.value && !props2.disabled) {
@@ -16028,6 +16033,7 @@ var stdin_default$5 = vue.defineComponent({
16028
16033
  });
16029
16034
  useExpose({
16030
16035
  chooseFile,
16036
+ reuploadFile,
16031
16037
  closeImagePreview
16032
16038
  });
16033
16039
  use.useCustomFieldValue(() => props2.modelValue);
@@ -17043,7 +17049,7 @@ const Lazyload = {
17043
17049
  });
17044
17050
  }
17045
17051
  };
17046
- const version = "4.9.2";
17052
+ const version = "4.9.4";
17047
17053
  function install(app) {
17048
17054
  const components = [
17049
17055
  ActionBar,