vant 4.0.3 → 4.0.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.
package/README.md CHANGED
@@ -8,7 +8,6 @@
8
8
 
9
9
  <p align="center">
10
10
  <img src="https://img.shields.io/npm/v/vant?style=flat-square" alt="npm version" />
11
- <img src="https://img.shields.io/github/workflow/status/vant-ui/vant/CI/dev?style=flat-square" alt="CI Status" />
12
11
  <img src="https://img.shields.io/codecov/c/github/vant-ui/vant/dev.svg?style=flat-square&color=#4fc08d" alt="Coverage Status" />
13
12
  <img src="https://img.shields.io/npm/dm/vant.svg?style=flat-square&color=#4fc08d" alt="downloads" />
14
13
  <img src="https://img.badgesize.io/https://unpkg.com/vant/lib/vant.min.js?compression=gzip&style=flat-square&label=gzip%20size&color=#4fc08d" alt="Gzip Size" />
@@ -179,6 +179,7 @@ var stdin_default = defineComponent({
179
179
  }
180
180
  };
181
181
  const limitValueLength = (value) => {
182
+ var _a;
182
183
  const {
183
184
  maxlength
184
185
  } = props;
@@ -187,6 +188,13 @@ var stdin_default = defineComponent({
187
188
  if (modelValue && getStringLength(modelValue) === +maxlength) {
188
189
  return modelValue;
189
190
  }
191
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
192
+ if (state.focused && selectionEnd) {
193
+ const valueArr = [...value];
194
+ const exceededLength = valueArr.length - +maxlength;
195
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
196
+ return valueArr.join("");
197
+ }
190
198
  return cutString(value, +maxlength);
191
199
  }
192
200
  return value;
@@ -194,22 +202,47 @@ var stdin_default = defineComponent({
194
202
  const updateValue = (value, trigger = "onChange") => {
195
203
  const originalValue = value;
196
204
  value = limitValueLength(value);
197
- const isExceedLimit = value !== originalValue;
205
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
198
206
  if (props.type === "number" || props.type === "digit") {
199
207
  const isNumber = props.type === "number";
200
208
  value = formatNumber(value, isNumber, isNumber);
201
209
  }
210
+ let formatterDiffLen = 0;
202
211
  if (props.formatter && trigger === props.formatTrigger) {
203
- value = props.formatter(value);
212
+ const {
213
+ formatter,
214
+ maxlength
215
+ } = props;
216
+ value = formatter(value);
217
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
218
+ value = cutString(value, +maxlength);
219
+ }
220
+ if (inputRef.value && state.focused) {
221
+ const {
222
+ selectionEnd
223
+ } = inputRef.value;
224
+ const bcoVal = cutString(originalValue, selectionEnd);
225
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
226
+ }
204
227
  }
205
228
  if (inputRef.value && inputRef.value.value !== value) {
206
- if (state.focused && isExceedLimit) {
207
- const {
229
+ if (state.focused) {
230
+ let {
208
231
  selectionStart,
209
232
  selectionEnd
210
233
  } = inputRef.value;
211
234
  inputRef.value.value = value;
212
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
235
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
236
+ const valueLen = getStringLength(value);
237
+ if (limitDiffLen) {
238
+ selectionStart -= limitDiffLen;
239
+ selectionEnd -= limitDiffLen;
240
+ } else if (formatterDiffLen) {
241
+ selectionStart += formatterDiffLen;
242
+ selectionEnd += formatterDiffLen;
243
+ }
244
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
245
+ }
213
246
  } else {
214
247
  inputRef.value.value = value;
215
248
  }
@@ -56,6 +56,14 @@ var stdin_default = defineComponent({
56
56
  emit("load", event);
57
57
  }
58
58
  };
59
+ const triggerLoad = () => {
60
+ const loadEvent = new Event("load");
61
+ Object.defineProperty(loadEvent, "target", {
62
+ value: imageRef.value,
63
+ enumerable: true
64
+ });
65
+ onLoad(loadEvent);
66
+ };
59
67
  const onError = (event) => {
60
68
  error.value = true;
61
69
  loading.value = false;
@@ -113,7 +121,7 @@ var stdin_default = defineComponent({
113
121
  }) => {
114
122
  const check = () => {
115
123
  if (el === imageRef.value && loading.value) {
116
- onLoad();
124
+ triggerLoad();
117
125
  }
118
126
  };
119
127
  if (imageRef.value) {
@@ -141,7 +149,7 @@ var stdin_default = defineComponent({
141
149
  nextTick(() => {
142
150
  var _a;
143
151
  if ((_a = imageRef.value) == null ? void 0 : _a.complete) {
144
- onLoad();
152
+ triggerLoad();
145
153
  }
146
154
  });
147
155
  });
package/es/index.d.ts CHANGED
@@ -94,4 +94,4 @@ declare namespace _default {
94
94
  }
95
95
  export default _default;
96
96
  export function install(app: any): void;
97
- export const version: "4.0.3";
97
+ export const version: "4.0.4";
package/es/index.mjs CHANGED
@@ -87,7 +87,7 @@ import { TimePicker } from "./time-picker/index.mjs";
87
87
  import { Toast } from "./toast/index.mjs";
88
88
  import { TreeSelect } from "./tree-select/index.mjs";
89
89
  import { Uploader } from "./uploader/index.mjs";
90
- const version = "4.0.3";
90
+ const version = "4.0.4";
91
91
  function install(app) {
92
92
  const components = [
93
93
  ActionBar,
@@ -203,6 +203,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
203
203
  }
204
204
  };
205
205
  const limitValueLength = (value) => {
206
+ var _a;
206
207
  const {
207
208
  maxlength
208
209
  } = props;
@@ -211,6 +212,13 @@ var stdin_default = (0, import_vue2.defineComponent)({
211
212
  if (modelValue && (0, import_utils2.getStringLength)(modelValue) === +maxlength) {
212
213
  return modelValue;
213
214
  }
215
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
216
+ if (state.focused && selectionEnd) {
217
+ const valueArr = [...value];
218
+ const exceededLength = valueArr.length - +maxlength;
219
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
220
+ return valueArr.join("");
221
+ }
214
222
  return (0, import_utils2.cutString)(value, +maxlength);
215
223
  }
216
224
  return value;
@@ -218,22 +226,47 @@ var stdin_default = (0, import_vue2.defineComponent)({
218
226
  const updateValue = (value, trigger = "onChange") => {
219
227
  const originalValue = value;
220
228
  value = limitValueLength(value);
221
- const isExceedLimit = value !== originalValue;
229
+ const limitDiffLen = (0, import_utils2.getStringLength)(originalValue) - (0, import_utils2.getStringLength)(value);
222
230
  if (props.type === "number" || props.type === "digit") {
223
231
  const isNumber = props.type === "number";
224
232
  value = (0, import_utils.formatNumber)(value, isNumber, isNumber);
225
233
  }
234
+ let formatterDiffLen = 0;
226
235
  if (props.formatter && trigger === props.formatTrigger) {
227
- value = props.formatter(value);
236
+ const {
237
+ formatter,
238
+ maxlength
239
+ } = props;
240
+ value = formatter(value);
241
+ if ((0, import_utils.isDef)(maxlength) && (0, import_utils2.getStringLength)(value) > maxlength) {
242
+ value = (0, import_utils2.cutString)(value, +maxlength);
243
+ }
244
+ if (inputRef.value && state.focused) {
245
+ const {
246
+ selectionEnd
247
+ } = inputRef.value;
248
+ const bcoVal = (0, import_utils2.cutString)(originalValue, selectionEnd);
249
+ formatterDiffLen = (0, import_utils2.getStringLength)(formatter(bcoVal)) - (0, import_utils2.getStringLength)(bcoVal);
250
+ }
228
251
  }
229
252
  if (inputRef.value && inputRef.value.value !== value) {
230
- if (state.focused && isExceedLimit) {
231
- const {
253
+ if (state.focused) {
254
+ let {
232
255
  selectionStart,
233
256
  selectionEnd
234
257
  } = inputRef.value;
235
258
  inputRef.value.value = value;
236
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
259
+ if ((0, import_utils.isDef)(selectionStart) && (0, import_utils.isDef)(selectionEnd)) {
260
+ const valueLen = (0, import_utils2.getStringLength)(value);
261
+ if (limitDiffLen) {
262
+ selectionStart -= limitDiffLen;
263
+ selectionEnd -= limitDiffLen;
264
+ } else if (formatterDiffLen) {
265
+ selectionStart += formatterDiffLen;
266
+ selectionEnd += formatterDiffLen;
267
+ }
268
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
269
+ }
237
270
  } else {
238
271
  inputRef.value.value = value;
239
272
  }
@@ -79,6 +79,14 @@ var stdin_default = (0, import_vue2.defineComponent)({
79
79
  emit("load", event);
80
80
  }
81
81
  };
82
+ const triggerLoad = () => {
83
+ const loadEvent = new Event("load");
84
+ Object.defineProperty(loadEvent, "target", {
85
+ value: imageRef.value,
86
+ enumerable: true
87
+ });
88
+ onLoad(loadEvent);
89
+ };
82
90
  const onError = (event) => {
83
91
  error.value = true;
84
92
  loading.value = false;
@@ -136,7 +144,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
136
144
  }) => {
137
145
  const check = () => {
138
146
  if (el === imageRef.value && loading.value) {
139
- onLoad();
147
+ triggerLoad();
140
148
  }
141
149
  };
142
150
  if (imageRef.value) {
@@ -164,7 +172,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
164
172
  (0, import_vue2.nextTick)(() => {
165
173
  var _a;
166
174
  if ((_a = imageRef.value) == null ? void 0 : _a.complete) {
167
- onLoad();
175
+ triggerLoad();
168
176
  }
169
177
  });
170
178
  });
package/lib/index.d.ts CHANGED
@@ -94,4 +94,4 @@ declare namespace _default {
94
94
  }
95
95
  export default _default;
96
96
  export function install(app: any): void;
97
- export const version: "4.0.3";
97
+ export const version: "4.0.4";
package/lib/index.js CHANGED
@@ -202,7 +202,7 @@ __reExport(stdin_exports, require("./time-picker"), module.exports);
202
202
  __reExport(stdin_exports, require("./toast"), module.exports);
203
203
  __reExport(stdin_exports, require("./tree-select"), module.exports);
204
204
  __reExport(stdin_exports, require("./uploader"), module.exports);
205
- const version = "4.0.3";
205
+ const version = "4.0.4";
206
206
  function install(app) {
207
207
  const components = [
208
208
  import_action_bar.ActionBar,
package/lib/vant.cjs.js CHANGED
@@ -3969,6 +3969,7 @@ var stdin_default$1j = vue.defineComponent({
3969
3969
  }
3970
3970
  };
3971
3971
  const limitValueLength = (value) => {
3972
+ var _a;
3972
3973
  const {
3973
3974
  maxlength
3974
3975
  } = props;
@@ -3977,6 +3978,13 @@ var stdin_default$1j = vue.defineComponent({
3977
3978
  if (modelValue && getStringLength(modelValue) === +maxlength) {
3978
3979
  return modelValue;
3979
3980
  }
3981
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
3982
+ if (state.focused && selectionEnd) {
3983
+ const valueArr = [...value];
3984
+ const exceededLength = valueArr.length - +maxlength;
3985
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
3986
+ return valueArr.join("");
3987
+ }
3980
3988
  return cutString(value, +maxlength);
3981
3989
  }
3982
3990
  return value;
@@ -3984,22 +3992,47 @@ var stdin_default$1j = vue.defineComponent({
3984
3992
  const updateValue = (value, trigger = "onChange") => {
3985
3993
  const originalValue = value;
3986
3994
  value = limitValueLength(value);
3987
- const isExceedLimit = value !== originalValue;
3995
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
3988
3996
  if (props.type === "number" || props.type === "digit") {
3989
3997
  const isNumber = props.type === "number";
3990
3998
  value = formatNumber(value, isNumber, isNumber);
3991
3999
  }
4000
+ let formatterDiffLen = 0;
3992
4001
  if (props.formatter && trigger === props.formatTrigger) {
3993
- value = props.formatter(value);
4002
+ const {
4003
+ formatter,
4004
+ maxlength
4005
+ } = props;
4006
+ value = formatter(value);
4007
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
4008
+ value = cutString(value, +maxlength);
4009
+ }
4010
+ if (inputRef.value && state.focused) {
4011
+ const {
4012
+ selectionEnd
4013
+ } = inputRef.value;
4014
+ const bcoVal = cutString(originalValue, selectionEnd);
4015
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
4016
+ }
3994
4017
  }
3995
4018
  if (inputRef.value && inputRef.value.value !== value) {
3996
- if (state.focused && isExceedLimit) {
3997
- const {
4019
+ if (state.focused) {
4020
+ let {
3998
4021
  selectionStart,
3999
4022
  selectionEnd
4000
4023
  } = inputRef.value;
4001
4024
  inputRef.value.value = value;
4002
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
4025
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
4026
+ const valueLen = getStringLength(value);
4027
+ if (limitDiffLen) {
4028
+ selectionStart -= limitDiffLen;
4029
+ selectionEnd -= limitDiffLen;
4030
+ } else if (formatterDiffLen) {
4031
+ selectionStart += formatterDiffLen;
4032
+ selectionEnd += formatterDiffLen;
4033
+ }
4034
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
4035
+ }
4003
4036
  } else {
4004
4037
  inputRef.value.value = value;
4005
4038
  }
@@ -6522,6 +6555,14 @@ var stdin_default$13 = vue.defineComponent({
6522
6555
  emit("load", event);
6523
6556
  }
6524
6557
  };
6558
+ const triggerLoad = () => {
6559
+ const loadEvent = new Event("load");
6560
+ Object.defineProperty(loadEvent, "target", {
6561
+ value: imageRef.value,
6562
+ enumerable: true
6563
+ });
6564
+ onLoad(loadEvent);
6565
+ };
6525
6566
  const onError = (event) => {
6526
6567
  error.value = true;
6527
6568
  loading.value = false;
@@ -6579,7 +6620,7 @@ var stdin_default$13 = vue.defineComponent({
6579
6620
  }) => {
6580
6621
  const check = () => {
6581
6622
  if (el === imageRef.value && loading.value) {
6582
- onLoad();
6623
+ triggerLoad();
6583
6624
  }
6584
6625
  };
6585
6626
  if (imageRef.value) {
@@ -6607,7 +6648,7 @@ var stdin_default$13 = vue.defineComponent({
6607
6648
  vue.nextTick(() => {
6608
6649
  var _a;
6609
6650
  if ((_a = imageRef.value) == null ? void 0 : _a.complete) {
6610
- onLoad();
6651
+ triggerLoad();
6611
6652
  }
6612
6653
  });
6613
6654
  });
@@ -14847,7 +14888,7 @@ const Lazyload = {
14847
14888
  });
14848
14889
  }
14849
14890
  };
14850
- const version = "4.0.3";
14891
+ const version = "4.0.4";
14851
14892
  function install(app) {
14852
14893
  const components = [
14853
14894
  ActionBar,
package/lib/vant.es.js CHANGED
@@ -3967,6 +3967,7 @@ var stdin_default$1j = defineComponent({
3967
3967
  }
3968
3968
  };
3969
3969
  const limitValueLength = (value) => {
3970
+ var _a;
3970
3971
  const {
3971
3972
  maxlength
3972
3973
  } = props;
@@ -3975,6 +3976,13 @@ var stdin_default$1j = defineComponent({
3975
3976
  if (modelValue && getStringLength(modelValue) === +maxlength) {
3976
3977
  return modelValue;
3977
3978
  }
3979
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
3980
+ if (state.focused && selectionEnd) {
3981
+ const valueArr = [...value];
3982
+ const exceededLength = valueArr.length - +maxlength;
3983
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
3984
+ return valueArr.join("");
3985
+ }
3978
3986
  return cutString(value, +maxlength);
3979
3987
  }
3980
3988
  return value;
@@ -3982,22 +3990,47 @@ var stdin_default$1j = defineComponent({
3982
3990
  const updateValue = (value, trigger = "onChange") => {
3983
3991
  const originalValue = value;
3984
3992
  value = limitValueLength(value);
3985
- const isExceedLimit = value !== originalValue;
3993
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
3986
3994
  if (props.type === "number" || props.type === "digit") {
3987
3995
  const isNumber = props.type === "number";
3988
3996
  value = formatNumber(value, isNumber, isNumber);
3989
3997
  }
3998
+ let formatterDiffLen = 0;
3990
3999
  if (props.formatter && trigger === props.formatTrigger) {
3991
- value = props.formatter(value);
4000
+ const {
4001
+ formatter,
4002
+ maxlength
4003
+ } = props;
4004
+ value = formatter(value);
4005
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
4006
+ value = cutString(value, +maxlength);
4007
+ }
4008
+ if (inputRef.value && state.focused) {
4009
+ const {
4010
+ selectionEnd
4011
+ } = inputRef.value;
4012
+ const bcoVal = cutString(originalValue, selectionEnd);
4013
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
4014
+ }
3992
4015
  }
3993
4016
  if (inputRef.value && inputRef.value.value !== value) {
3994
- if (state.focused && isExceedLimit) {
3995
- const {
4017
+ if (state.focused) {
4018
+ let {
3996
4019
  selectionStart,
3997
4020
  selectionEnd
3998
4021
  } = inputRef.value;
3999
4022
  inputRef.value.value = value;
4000
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
4023
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
4024
+ const valueLen = getStringLength(value);
4025
+ if (limitDiffLen) {
4026
+ selectionStart -= limitDiffLen;
4027
+ selectionEnd -= limitDiffLen;
4028
+ } else if (formatterDiffLen) {
4029
+ selectionStart += formatterDiffLen;
4030
+ selectionEnd += formatterDiffLen;
4031
+ }
4032
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
4033
+ }
4001
4034
  } else {
4002
4035
  inputRef.value.value = value;
4003
4036
  }
@@ -6520,6 +6553,14 @@ var stdin_default$13 = defineComponent({
6520
6553
  emit("load", event);
6521
6554
  }
6522
6555
  };
6556
+ const triggerLoad = () => {
6557
+ const loadEvent = new Event("load");
6558
+ Object.defineProperty(loadEvent, "target", {
6559
+ value: imageRef.value,
6560
+ enumerable: true
6561
+ });
6562
+ onLoad(loadEvent);
6563
+ };
6523
6564
  const onError = (event) => {
6524
6565
  error.value = true;
6525
6566
  loading.value = false;
@@ -6577,7 +6618,7 @@ var stdin_default$13 = defineComponent({
6577
6618
  }) => {
6578
6619
  const check = () => {
6579
6620
  if (el === imageRef.value && loading.value) {
6580
- onLoad();
6621
+ triggerLoad();
6581
6622
  }
6582
6623
  };
6583
6624
  if (imageRef.value) {
@@ -6605,7 +6646,7 @@ var stdin_default$13 = defineComponent({
6605
6646
  nextTick(() => {
6606
6647
  var _a;
6607
6648
  if ((_a = imageRef.value) == null ? void 0 : _a.complete) {
6608
- onLoad();
6649
+ triggerLoad();
6609
6650
  }
6610
6651
  });
6611
6652
  });
@@ -14845,7 +14886,7 @@ const Lazyload = {
14845
14886
  });
14846
14887
  }
14847
14888
  };
14848
- const version = "4.0.3";
14889
+ const version = "4.0.4";
14849
14890
  function install(app) {
14850
14891
  const components = [
14851
14892
  ActionBar,
package/lib/vant.js CHANGED
@@ -4327,6 +4327,7 @@
4327
4327
  }
4328
4328
  };
4329
4329
  const limitValueLength = (value) => {
4330
+ var _a;
4330
4331
  const {
4331
4332
  maxlength
4332
4333
  } = props;
@@ -4335,6 +4336,13 @@
4335
4336
  if (modelValue && getStringLength(modelValue) === +maxlength) {
4336
4337
  return modelValue;
4337
4338
  }
4339
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
4340
+ if (state.focused && selectionEnd) {
4341
+ const valueArr = [...value];
4342
+ const exceededLength = valueArr.length - +maxlength;
4343
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
4344
+ return valueArr.join("");
4345
+ }
4338
4346
  return cutString(value, +maxlength);
4339
4347
  }
4340
4348
  return value;
@@ -4342,22 +4350,47 @@
4342
4350
  const updateValue = (value, trigger = "onChange") => {
4343
4351
  const originalValue = value;
4344
4352
  value = limitValueLength(value);
4345
- const isExceedLimit = value !== originalValue;
4353
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
4346
4354
  if (props.type === "number" || props.type === "digit") {
4347
4355
  const isNumber = props.type === "number";
4348
4356
  value = formatNumber(value, isNumber, isNumber);
4349
4357
  }
4358
+ let formatterDiffLen = 0;
4350
4359
  if (props.formatter && trigger === props.formatTrigger) {
4351
- value = props.formatter(value);
4360
+ const {
4361
+ formatter,
4362
+ maxlength
4363
+ } = props;
4364
+ value = formatter(value);
4365
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
4366
+ value = cutString(value, +maxlength);
4367
+ }
4368
+ if (inputRef.value && state.focused) {
4369
+ const {
4370
+ selectionEnd
4371
+ } = inputRef.value;
4372
+ const bcoVal = cutString(originalValue, selectionEnd);
4373
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
4374
+ }
4352
4375
  }
4353
4376
  if (inputRef.value && inputRef.value.value !== value) {
4354
- if (state.focused && isExceedLimit) {
4355
- const {
4377
+ if (state.focused) {
4378
+ let {
4356
4379
  selectionStart,
4357
4380
  selectionEnd
4358
4381
  } = inputRef.value;
4359
4382
  inputRef.value.value = value;
4360
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
4383
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
4384
+ const valueLen = getStringLength(value);
4385
+ if (limitDiffLen) {
4386
+ selectionStart -= limitDiffLen;
4387
+ selectionEnd -= limitDiffLen;
4388
+ } else if (formatterDiffLen) {
4389
+ selectionStart += formatterDiffLen;
4390
+ selectionEnd += formatterDiffLen;
4391
+ }
4392
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
4393
+ }
4361
4394
  } else {
4362
4395
  inputRef.value.value = value;
4363
4396
  }
@@ -6877,6 +6910,14 @@
6877
6910
  emit("load", event);
6878
6911
  }
6879
6912
  };
6913
+ const triggerLoad = () => {
6914
+ const loadEvent = new Event("load");
6915
+ Object.defineProperty(loadEvent, "target", {
6916
+ value: imageRef.value,
6917
+ enumerable: true
6918
+ });
6919
+ onLoad(loadEvent);
6920
+ };
6880
6921
  const onError = (event) => {
6881
6922
  error.value = true;
6882
6923
  loading.value = false;
@@ -6934,7 +6975,7 @@
6934
6975
  }) => {
6935
6976
  const check = () => {
6936
6977
  if (el === imageRef.value && loading.value) {
6937
- onLoad();
6978
+ triggerLoad();
6938
6979
  }
6939
6980
  };
6940
6981
  if (imageRef.value) {
@@ -6962,7 +7003,7 @@
6962
7003
  vue.nextTick(() => {
6963
7004
  var _a;
6964
7005
  if ((_a = imageRef.value) == null ? void 0 : _a.complete) {
6965
- onLoad();
7006
+ triggerLoad();
6966
7007
  }
6967
7008
  });
6968
7009
  });
@@ -16053,7 +16094,7 @@
16053
16094
  });
16054
16095
  }
16055
16096
  };
16056
- const version = "4.0.3";
16097
+ const version = "4.0.4";
16057
16098
  function install(app) {
16058
16099
  const components = [
16059
16100
  ActionBar,