vant 3.6.9 → 3.6.11

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.
@@ -178,6 +178,7 @@ var stdin_default = defineComponent({
178
178
  }
179
179
  };
180
180
  const limitValueLength = (value) => {
181
+ var _a;
181
182
  const {
182
183
  maxlength
183
184
  } = props;
@@ -186,27 +187,63 @@ var stdin_default = defineComponent({
186
187
  if (modelValue && getStringLength(modelValue) === +maxlength) {
187
188
  return modelValue;
188
189
  }
190
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
191
+ if (state.focused && selectionEnd) {
192
+ const valueArr = [...value];
193
+ const exceededLength = valueArr.length - +maxlength;
194
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
195
+ return valueArr.join("");
196
+ }
189
197
  return cutString(value, +maxlength);
190
198
  }
191
199
  return value;
192
200
  };
193
201
  const updateValue = (value, trigger = "onChange") => {
202
+ const originalValue = value;
194
203
  value = limitValueLength(value);
204
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
195
205
  if (props.type === "number" || props.type === "digit") {
196
206
  const isNumber = props.type === "number";
197
207
  value = formatNumber(value, isNumber, isNumber);
198
208
  }
209
+ let formatterDiffLen = 0;
199
210
  if (props.formatter && trigger === props.formatTrigger) {
200
- value = props.formatter(value);
211
+ const {
212
+ formatter,
213
+ maxlength
214
+ } = props;
215
+ value = formatter(value);
216
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
217
+ value = cutString(value, +maxlength);
218
+ }
219
+ if (inputRef.value && state.focused) {
220
+ const {
221
+ selectionEnd
222
+ } = inputRef.value;
223
+ const bcoVal = cutString(originalValue, selectionEnd);
224
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
225
+ }
201
226
  }
202
227
  if (inputRef.value && inputRef.value.value !== value) {
203
- const {
204
- selectionStart,
205
- selectionEnd
206
- } = inputRef.value;
207
- inputRef.value.value = value;
208
228
  if (state.focused) {
209
- inputRef.value.setSelectionRange(selectionStart, selectionEnd);
229
+ let {
230
+ selectionStart,
231
+ selectionEnd
232
+ } = inputRef.value;
233
+ inputRef.value.value = value;
234
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
235
+ const valueLen = getStringLength(value);
236
+ if (limitDiffLen) {
237
+ selectionStart -= limitDiffLen;
238
+ selectionEnd -= limitDiffLen;
239
+ } else if (formatterDiffLen) {
240
+ selectionStart += formatterDiffLen;
241
+ selectionEnd += formatterDiffLen;
242
+ }
243
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
244
+ }
245
+ } else {
246
+ inputRef.value.value = value;
210
247
  }
211
248
  }
212
249
  if (value !== props.modelValue) {
package/es/index.d.ts CHANGED
@@ -91,4 +91,4 @@ declare namespace _default {
91
91
  }
92
92
  export default _default;
93
93
  export function install(app: any): void;
94
- export const version: "3.6.9";
94
+ export const version: "3.6.11";
package/es/index.mjs CHANGED
@@ -84,7 +84,7 @@ import { Tag } from "./tag/index.mjs";
84
84
  import { Toast } from "./toast/index.mjs";
85
85
  import { TreeSelect } from "./tree-select/index.mjs";
86
86
  import { Uploader } from "./uploader/index.mjs";
87
- const version = "3.6.9";
87
+ const version = "3.6.11";
88
88
  function install(app) {
89
89
  const components = [
90
90
  ActionBar,
@@ -201,6 +201,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
201
201
  }
202
202
  };
203
203
  const limitValueLength = (value) => {
204
+ var _a;
204
205
  const {
205
206
  maxlength
206
207
  } = props;
@@ -209,27 +210,63 @@ var stdin_default = (0, import_vue2.defineComponent)({
209
210
  if (modelValue && (0, import_utils2.getStringLength)(modelValue) === +maxlength) {
210
211
  return modelValue;
211
212
  }
213
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
214
+ if (state.focused && selectionEnd) {
215
+ const valueArr = [...value];
216
+ const exceededLength = valueArr.length - +maxlength;
217
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
218
+ return valueArr.join("");
219
+ }
212
220
  return (0, import_utils2.cutString)(value, +maxlength);
213
221
  }
214
222
  return value;
215
223
  };
216
224
  const updateValue = (value, trigger = "onChange") => {
225
+ const originalValue = value;
217
226
  value = limitValueLength(value);
227
+ const limitDiffLen = (0, import_utils2.getStringLength)(originalValue) - (0, import_utils2.getStringLength)(value);
218
228
  if (props.type === "number" || props.type === "digit") {
219
229
  const isNumber = props.type === "number";
220
230
  value = (0, import_utils.formatNumber)(value, isNumber, isNumber);
221
231
  }
232
+ let formatterDiffLen = 0;
222
233
  if (props.formatter && trigger === props.formatTrigger) {
223
- value = props.formatter(value);
234
+ const {
235
+ formatter,
236
+ maxlength
237
+ } = props;
238
+ value = formatter(value);
239
+ if ((0, import_utils.isDef)(maxlength) && (0, import_utils2.getStringLength)(value) > maxlength) {
240
+ value = (0, import_utils2.cutString)(value, +maxlength);
241
+ }
242
+ if (inputRef.value && state.focused) {
243
+ const {
244
+ selectionEnd
245
+ } = inputRef.value;
246
+ const bcoVal = (0, import_utils2.cutString)(originalValue, selectionEnd);
247
+ formatterDiffLen = (0, import_utils2.getStringLength)(formatter(bcoVal)) - (0, import_utils2.getStringLength)(bcoVal);
248
+ }
224
249
  }
225
250
  if (inputRef.value && inputRef.value.value !== value) {
226
- const {
227
- selectionStart,
228
- selectionEnd
229
- } = inputRef.value;
230
- inputRef.value.value = value;
231
251
  if (state.focused) {
232
- inputRef.value.setSelectionRange(selectionStart, selectionEnd);
252
+ let {
253
+ selectionStart,
254
+ selectionEnd
255
+ } = inputRef.value;
256
+ inputRef.value.value = value;
257
+ if ((0, import_utils.isDef)(selectionStart) && (0, import_utils.isDef)(selectionEnd)) {
258
+ const valueLen = (0, import_utils2.getStringLength)(value);
259
+ if (limitDiffLen) {
260
+ selectionStart -= limitDiffLen;
261
+ selectionEnd -= limitDiffLen;
262
+ } else if (formatterDiffLen) {
263
+ selectionStart += formatterDiffLen;
264
+ selectionEnd += formatterDiffLen;
265
+ }
266
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
267
+ }
268
+ } else {
269
+ inputRef.value.value = value;
233
270
  }
234
271
  }
235
272
  if (value !== props.modelValue) {
package/lib/index.d.ts CHANGED
@@ -91,4 +91,4 @@ declare namespace _default {
91
91
  }
92
92
  export default _default;
93
93
  export function install(app: any): void;
94
- export const version: "3.6.9";
94
+ export const version: "3.6.11";
package/lib/index.js CHANGED
@@ -196,7 +196,7 @@ __reExport(stdin_exports, require("./tag"), module.exports);
196
196
  __reExport(stdin_exports, require("./toast"), module.exports);
197
197
  __reExport(stdin_exports, require("./tree-select"), module.exports);
198
198
  __reExport(stdin_exports, require("./uploader"), module.exports);
199
- const version = "3.6.9";
199
+ const version = "3.6.11";
200
200
  function install(app) {
201
201
  const components = [
202
202
  import_action_bar.ActionBar,
package/lib/vant.cjs.js CHANGED
@@ -2832,6 +2832,7 @@ var stdin_default$1m = vue.defineComponent({
2832
2832
  }
2833
2833
  };
2834
2834
  const limitValueLength = (value) => {
2835
+ var _a;
2835
2836
  const {
2836
2837
  maxlength
2837
2838
  } = props;
@@ -2840,27 +2841,63 @@ var stdin_default$1m = vue.defineComponent({
2840
2841
  if (modelValue && getStringLength(modelValue) === +maxlength) {
2841
2842
  return modelValue;
2842
2843
  }
2844
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
2845
+ if (state.focused && selectionEnd) {
2846
+ const valueArr = [...value];
2847
+ const exceededLength = valueArr.length - +maxlength;
2848
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
2849
+ return valueArr.join("");
2850
+ }
2843
2851
  return cutString(value, +maxlength);
2844
2852
  }
2845
2853
  return value;
2846
2854
  };
2847
2855
  const updateValue = (value, trigger = "onChange") => {
2856
+ const originalValue = value;
2848
2857
  value = limitValueLength(value);
2858
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
2849
2859
  if (props.type === "number" || props.type === "digit") {
2850
2860
  const isNumber = props.type === "number";
2851
2861
  value = formatNumber(value, isNumber, isNumber);
2852
2862
  }
2863
+ let formatterDiffLen = 0;
2853
2864
  if (props.formatter && trigger === props.formatTrigger) {
2854
- value = props.formatter(value);
2865
+ const {
2866
+ formatter,
2867
+ maxlength
2868
+ } = props;
2869
+ value = formatter(value);
2870
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
2871
+ value = cutString(value, +maxlength);
2872
+ }
2873
+ if (inputRef.value && state.focused) {
2874
+ const {
2875
+ selectionEnd
2876
+ } = inputRef.value;
2877
+ const bcoVal = cutString(originalValue, selectionEnd);
2878
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
2879
+ }
2855
2880
  }
2856
2881
  if (inputRef.value && inputRef.value.value !== value) {
2857
- const {
2858
- selectionStart,
2859
- selectionEnd
2860
- } = inputRef.value;
2861
- inputRef.value.value = value;
2862
2882
  if (state.focused) {
2863
- inputRef.value.setSelectionRange(selectionStart, selectionEnd);
2883
+ let {
2884
+ selectionStart,
2885
+ selectionEnd
2886
+ } = inputRef.value;
2887
+ inputRef.value.value = value;
2888
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
2889
+ const valueLen = getStringLength(value);
2890
+ if (limitDiffLen) {
2891
+ selectionStart -= limitDiffLen;
2892
+ selectionEnd -= limitDiffLen;
2893
+ } else if (formatterDiffLen) {
2894
+ selectionStart += formatterDiffLen;
2895
+ selectionEnd += formatterDiffLen;
2896
+ }
2897
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
2898
+ }
2899
+ } else {
2900
+ inputRef.value.value = value;
2864
2901
  }
2865
2902
  }
2866
2903
  if (value !== props.modelValue) {
@@ -14963,7 +15000,7 @@ const Lazyload = {
14963
15000
  });
14964
15001
  }
14965
15002
  };
14966
- const version = "3.6.9";
15003
+ const version = "3.6.11";
14967
15004
  function install(app) {
14968
15005
  const components = [
14969
15006
  ActionBar,
package/lib/vant.es.js CHANGED
@@ -2830,6 +2830,7 @@ var stdin_default$1m = defineComponent({
2830
2830
  }
2831
2831
  };
2832
2832
  const limitValueLength = (value) => {
2833
+ var _a;
2833
2834
  const {
2834
2835
  maxlength
2835
2836
  } = props;
@@ -2838,27 +2839,63 @@ var stdin_default$1m = defineComponent({
2838
2839
  if (modelValue && getStringLength(modelValue) === +maxlength) {
2839
2840
  return modelValue;
2840
2841
  }
2842
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
2843
+ if (state.focused && selectionEnd) {
2844
+ const valueArr = [...value];
2845
+ const exceededLength = valueArr.length - +maxlength;
2846
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
2847
+ return valueArr.join("");
2848
+ }
2841
2849
  return cutString(value, +maxlength);
2842
2850
  }
2843
2851
  return value;
2844
2852
  };
2845
2853
  const updateValue = (value, trigger = "onChange") => {
2854
+ const originalValue = value;
2846
2855
  value = limitValueLength(value);
2856
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
2847
2857
  if (props.type === "number" || props.type === "digit") {
2848
2858
  const isNumber = props.type === "number";
2849
2859
  value = formatNumber(value, isNumber, isNumber);
2850
2860
  }
2861
+ let formatterDiffLen = 0;
2851
2862
  if (props.formatter && trigger === props.formatTrigger) {
2852
- value = props.formatter(value);
2863
+ const {
2864
+ formatter,
2865
+ maxlength
2866
+ } = props;
2867
+ value = formatter(value);
2868
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
2869
+ value = cutString(value, +maxlength);
2870
+ }
2871
+ if (inputRef.value && state.focused) {
2872
+ const {
2873
+ selectionEnd
2874
+ } = inputRef.value;
2875
+ const bcoVal = cutString(originalValue, selectionEnd);
2876
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
2877
+ }
2853
2878
  }
2854
2879
  if (inputRef.value && inputRef.value.value !== value) {
2855
- const {
2856
- selectionStart,
2857
- selectionEnd
2858
- } = inputRef.value;
2859
- inputRef.value.value = value;
2860
2880
  if (state.focused) {
2861
- inputRef.value.setSelectionRange(selectionStart, selectionEnd);
2881
+ let {
2882
+ selectionStart,
2883
+ selectionEnd
2884
+ } = inputRef.value;
2885
+ inputRef.value.value = value;
2886
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
2887
+ const valueLen = getStringLength(value);
2888
+ if (limitDiffLen) {
2889
+ selectionStart -= limitDiffLen;
2890
+ selectionEnd -= limitDiffLen;
2891
+ } else if (formatterDiffLen) {
2892
+ selectionStart += formatterDiffLen;
2893
+ selectionEnd += formatterDiffLen;
2894
+ }
2895
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
2896
+ }
2897
+ } else {
2898
+ inputRef.value.value = value;
2862
2899
  }
2863
2900
  }
2864
2901
  if (value !== props.modelValue) {
@@ -14961,7 +14998,7 @@ const Lazyload = {
14961
14998
  });
14962
14999
  }
14963
15000
  };
14964
- const version = "3.6.9";
15001
+ const version = "3.6.11";
14965
15002
  function install(app) {
14966
15003
  const components = [
14967
15004
  ActionBar,
package/lib/vant.js CHANGED
@@ -3188,6 +3188,7 @@
3188
3188
  }
3189
3189
  };
3190
3190
  const limitValueLength = (value) => {
3191
+ var _a;
3191
3192
  const {
3192
3193
  maxlength
3193
3194
  } = props;
@@ -3196,27 +3197,63 @@
3196
3197
  if (modelValue && getStringLength(modelValue) === +maxlength) {
3197
3198
  return modelValue;
3198
3199
  }
3200
+ const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
3201
+ if (state.focused && selectionEnd) {
3202
+ const valueArr = [...value];
3203
+ const exceededLength = valueArr.length - +maxlength;
3204
+ valueArr.splice(selectionEnd - exceededLength, exceededLength);
3205
+ return valueArr.join("");
3206
+ }
3199
3207
  return cutString(value, +maxlength);
3200
3208
  }
3201
3209
  return value;
3202
3210
  };
3203
3211
  const updateValue = (value, trigger = "onChange") => {
3212
+ const originalValue = value;
3204
3213
  value = limitValueLength(value);
3214
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
3205
3215
  if (props.type === "number" || props.type === "digit") {
3206
3216
  const isNumber = props.type === "number";
3207
3217
  value = formatNumber(value, isNumber, isNumber);
3208
3218
  }
3219
+ let formatterDiffLen = 0;
3209
3220
  if (props.formatter && trigger === props.formatTrigger) {
3210
- value = props.formatter(value);
3221
+ const {
3222
+ formatter,
3223
+ maxlength
3224
+ } = props;
3225
+ value = formatter(value);
3226
+ if (isDef(maxlength) && getStringLength(value) > maxlength) {
3227
+ value = cutString(value, +maxlength);
3228
+ }
3229
+ if (inputRef.value && state.focused) {
3230
+ const {
3231
+ selectionEnd
3232
+ } = inputRef.value;
3233
+ const bcoVal = cutString(originalValue, selectionEnd);
3234
+ formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
3235
+ }
3211
3236
  }
3212
3237
  if (inputRef.value && inputRef.value.value !== value) {
3213
- const {
3214
- selectionStart,
3215
- selectionEnd
3216
- } = inputRef.value;
3217
- inputRef.value.value = value;
3218
3238
  if (state.focused) {
3219
- inputRef.value.setSelectionRange(selectionStart, selectionEnd);
3239
+ let {
3240
+ selectionStart,
3241
+ selectionEnd
3242
+ } = inputRef.value;
3243
+ inputRef.value.value = value;
3244
+ if (isDef(selectionStart) && isDef(selectionEnd)) {
3245
+ const valueLen = getStringLength(value);
3246
+ if (limitDiffLen) {
3247
+ selectionStart -= limitDiffLen;
3248
+ selectionEnd -= limitDiffLen;
3249
+ } else if (formatterDiffLen) {
3250
+ selectionStart += formatterDiffLen;
3251
+ selectionEnd += formatterDiffLen;
3252
+ }
3253
+ inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));
3254
+ }
3255
+ } else {
3256
+ inputRef.value.value = value;
3220
3257
  }
3221
3258
  }
3222
3259
  if (value !== props.modelValue) {
@@ -16160,7 +16197,7 @@
16160
16197
  });
16161
16198
  }
16162
16199
  };
16163
- const version = "3.6.9";
16200
+ const version = "3.6.11";
16164
16201
  function install(app) {
16165
16202
  const components = [
16166
16203
  ActionBar,