vant 3.6.10 → 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,6 +187,13 @@ 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;
@@ -193,22 +201,47 @@ var stdin_default = defineComponent({
193
201
  const updateValue = (value, trigger = "onChange") => {
194
202
  const originalValue = value;
195
203
  value = limitValueLength(value);
196
- const isExceedLimit = value !== originalValue;
204
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
197
205
  if (props.type === "number" || props.type === "digit") {
198
206
  const isNumber = props.type === "number";
199
207
  value = formatNumber(value, isNumber, isNumber);
200
208
  }
209
+ let formatterDiffLen = 0;
201
210
  if (props.formatter && trigger === props.formatTrigger) {
202
- 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
+ }
203
226
  }
204
227
  if (inputRef.value && inputRef.value.value !== value) {
205
- if (state.focused && isExceedLimit) {
206
- const {
228
+ if (state.focused) {
229
+ let {
207
230
  selectionStart,
208
231
  selectionEnd
209
232
  } = inputRef.value;
210
233
  inputRef.value.value = value;
211
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
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
+ }
212
245
  } else {
213
246
  inputRef.value.value = value;
214
247
  }
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.10";
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.10";
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,6 +210,13 @@ 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;
@@ -216,22 +224,47 @@ var stdin_default = (0, import_vue2.defineComponent)({
216
224
  const updateValue = (value, trigger = "onChange") => {
217
225
  const originalValue = value;
218
226
  value = limitValueLength(value);
219
- const isExceedLimit = value !== originalValue;
227
+ const limitDiffLen = (0, import_utils2.getStringLength)(originalValue) - (0, import_utils2.getStringLength)(value);
220
228
  if (props.type === "number" || props.type === "digit") {
221
229
  const isNumber = props.type === "number";
222
230
  value = (0, import_utils.formatNumber)(value, isNumber, isNumber);
223
231
  }
232
+ let formatterDiffLen = 0;
224
233
  if (props.formatter && trigger === props.formatTrigger) {
225
- 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
+ }
226
249
  }
227
250
  if (inputRef.value && inputRef.value.value !== value) {
228
- if (state.focused && isExceedLimit) {
229
- const {
251
+ if (state.focused) {
252
+ let {
230
253
  selectionStart,
231
254
  selectionEnd
232
255
  } = inputRef.value;
233
256
  inputRef.value.value = value;
234
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
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
+ }
235
268
  } else {
236
269
  inputRef.value.value = value;
237
270
  }
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.10";
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.10";
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,6 +2841,13 @@ 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;
@@ -2847,22 +2855,47 @@ var stdin_default$1m = vue.defineComponent({
2847
2855
  const updateValue = (value, trigger = "onChange") => {
2848
2856
  const originalValue = value;
2849
2857
  value = limitValueLength(value);
2850
- const isExceedLimit = value !== originalValue;
2858
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
2851
2859
  if (props.type === "number" || props.type === "digit") {
2852
2860
  const isNumber = props.type === "number";
2853
2861
  value = formatNumber(value, isNumber, isNumber);
2854
2862
  }
2863
+ let formatterDiffLen = 0;
2855
2864
  if (props.formatter && trigger === props.formatTrigger) {
2856
- 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
+ }
2857
2880
  }
2858
2881
  if (inputRef.value && inputRef.value.value !== value) {
2859
- if (state.focused && isExceedLimit) {
2860
- const {
2882
+ if (state.focused) {
2883
+ let {
2861
2884
  selectionStart,
2862
2885
  selectionEnd
2863
2886
  } = inputRef.value;
2864
2887
  inputRef.value.value = value;
2865
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
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
+ }
2866
2899
  } else {
2867
2900
  inputRef.value.value = value;
2868
2901
  }
@@ -14967,7 +15000,7 @@ const Lazyload = {
14967
15000
  });
14968
15001
  }
14969
15002
  };
14970
- const version = "3.6.10";
15003
+ const version = "3.6.11";
14971
15004
  function install(app) {
14972
15005
  const components = [
14973
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,6 +2839,13 @@ 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;
@@ -2845,22 +2853,47 @@ var stdin_default$1m = defineComponent({
2845
2853
  const updateValue = (value, trigger = "onChange") => {
2846
2854
  const originalValue = value;
2847
2855
  value = limitValueLength(value);
2848
- const isExceedLimit = value !== originalValue;
2856
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
2849
2857
  if (props.type === "number" || props.type === "digit") {
2850
2858
  const isNumber = props.type === "number";
2851
2859
  value = formatNumber(value, isNumber, isNumber);
2852
2860
  }
2861
+ let formatterDiffLen = 0;
2853
2862
  if (props.formatter && trigger === props.formatTrigger) {
2854
- 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
+ }
2855
2878
  }
2856
2879
  if (inputRef.value && inputRef.value.value !== value) {
2857
- if (state.focused && isExceedLimit) {
2858
- const {
2880
+ if (state.focused) {
2881
+ let {
2859
2882
  selectionStart,
2860
2883
  selectionEnd
2861
2884
  } = inputRef.value;
2862
2885
  inputRef.value.value = value;
2863
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
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
+ }
2864
2897
  } else {
2865
2898
  inputRef.value.value = value;
2866
2899
  }
@@ -14965,7 +14998,7 @@ const Lazyload = {
14965
14998
  });
14966
14999
  }
14967
15000
  };
14968
- const version = "3.6.10";
15001
+ const version = "3.6.11";
14969
15002
  function install(app) {
14970
15003
  const components = [
14971
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,6 +3197,13 @@
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;
@@ -3203,22 +3211,47 @@
3203
3211
  const updateValue = (value, trigger = "onChange") => {
3204
3212
  const originalValue = value;
3205
3213
  value = limitValueLength(value);
3206
- const isExceedLimit = value !== originalValue;
3214
+ const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
3207
3215
  if (props.type === "number" || props.type === "digit") {
3208
3216
  const isNumber = props.type === "number";
3209
3217
  value = formatNumber(value, isNumber, isNumber);
3210
3218
  }
3219
+ let formatterDiffLen = 0;
3211
3220
  if (props.formatter && trigger === props.formatTrigger) {
3212
- 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
+ }
3213
3236
  }
3214
3237
  if (inputRef.value && inputRef.value.value !== value) {
3215
- if (state.focused && isExceedLimit) {
3216
- const {
3238
+ if (state.focused) {
3239
+ let {
3217
3240
  selectionStart,
3218
3241
  selectionEnd
3219
3242
  } = inputRef.value;
3220
3243
  inputRef.value.value = value;
3221
- inputRef.value.setSelectionRange(selectionStart - 1, selectionEnd - 1);
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
+ }
3222
3255
  } else {
3223
3256
  inputRef.value.value = value;
3224
3257
  }
@@ -16164,7 +16197,7 @@
16164
16197
  });
16165
16198
  }
16166
16199
  };
16167
- const version = "3.6.10";
16200
+ const version = "3.6.11";
16168
16201
  function install(app) {
16169
16202
  const components = [
16170
16203
  ActionBar,