vant 3.4.8 → 3.4.9

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 (47) hide show
  1. package/changelog.generated.md +31 -39
  2. package/es/empty/Empty.js +10 -13
  3. package/es/empty/Images.d.ts +4 -0
  4. package/es/empty/Images.js +271 -0
  5. package/es/field/Field.js +6 -3
  6. package/es/field/types.d.ts +1 -1
  7. package/es/form/Form.d.ts +13 -13
  8. package/es/form/Form.js +6 -3
  9. package/es/form/index.d.ts +9 -9
  10. package/es/index.d.ts +1 -1
  11. package/es/index.js +1 -1
  12. package/es/loading/Loading.js +3 -1
  13. package/es/uploader/Uploader.js +2 -2
  14. package/es/uploader/utils.d.ts +0 -1
  15. package/es/uploader/utils.js +2 -4
  16. package/es/utils/basic.d.ts +1 -0
  17. package/es/utils/basic.js +3 -1
  18. package/lib/empty/Empty.js +10 -13
  19. package/lib/empty/Images.d.ts +4 -0
  20. package/lib/empty/Images.js +290 -0
  21. package/lib/field/Field.js +5 -2
  22. package/lib/field/types.d.ts +1 -1
  23. package/lib/form/Form.d.ts +13 -13
  24. package/lib/form/Form.js +5 -2
  25. package/lib/form/index.d.ts +9 -9
  26. package/lib/index.d.ts +1 -1
  27. package/lib/index.js +1 -1
  28. package/lib/loading/Loading.js +3 -1
  29. package/lib/uploader/Uploader.js +1 -1
  30. package/lib/uploader/utils.d.ts +0 -1
  31. package/lib/uploader/utils.js +2 -4
  32. package/lib/utils/basic.d.ts +1 -0
  33. package/lib/utils/basic.js +3 -1
  34. package/lib/vant.cjs.js +233 -49
  35. package/lib/vant.cjs.min.js +1 -1
  36. package/lib/vant.es.js +233 -49
  37. package/lib/vant.es.min.js +233 -49
  38. package/lib/vant.js +233 -49
  39. package/lib/vant.min.js +1 -1
  40. package/package.json +1 -1
  41. package/vetur/attributes.json +276 -276
  42. package/vetur/tags.json +90 -90
  43. package/vetur/web-types.json +1070 -1070
  44. package/es/empty/Network.d.ts +0 -1
  45. package/es/empty/Network.js +0 -89
  46. package/lib/empty/Network.d.ts +0 -1
  47. package/lib/empty/Network.js +0 -108
package/lib/vant.js CHANGED
@@ -23,6 +23,7 @@
23
23
  return ret;
24
24
  }, {});
25
25
  }
26
+ const toArray = (item) => Array.isArray(item) ? item : [item];
26
27
  const unknownProp = null;
27
28
  const numericProp = [Number, String];
28
29
  const truthProp = {
@@ -668,10 +669,10 @@
668
669
  };
669
670
  var stdin_default$1C = Locale;
670
671
  function createTranslate(name2) {
671
- const prefix2 = camelize(name2) + ".";
672
+ const prefix = camelize(name2) + ".";
672
673
  return (path, ...args) => {
673
674
  const messages2 = stdin_default$1C.messages();
674
- const message = get(messages2, prefix2 + path) || get(messages2, path);
675
+ const message = get(messages2, prefix + path) || get(messages2, path);
675
676
  return isFunction(message) ? message(...args) : message;
676
677
  };
677
678
  }
@@ -1028,7 +1029,9 @@
1028
1029
  return vue.createVNode("div", {
1029
1030
  "class": bem$1m([type, {
1030
1031
  vertical
1031
- }])
1032
+ }]),
1033
+ "aria-live": "polite",
1034
+ "aria-busy": true
1032
1035
  }, [vue.createVNode("span", {
1033
1036
  "class": bem$1m("spinner", type),
1034
1037
  "style": spinnerStyle.value
@@ -2685,9 +2688,12 @@
2685
2688
  scrollToError: Boolean,
2686
2689
  validateFirst: Boolean,
2687
2690
  submitOnEnter: truthProp,
2688
- validateTrigger: makeStringProp("onBlur"),
2689
2691
  showErrorMessage: truthProp,
2690
- errorMessageAlign: String
2692
+ errorMessageAlign: String,
2693
+ validateTrigger: {
2694
+ type: [String, Array],
2695
+ default: "onBlur"
2696
+ }
2691
2697
  };
2692
2698
  var stdin_default$1m = vue.defineComponent({
2693
2699
  name: name$1f,
@@ -2900,7 +2906,7 @@
2900
2906
  return [...str].slice(0, maxlength).join("");
2901
2907
  }
2902
2908
  let current = 0;
2903
- function useId() {
2909
+ function useId$1() {
2904
2910
  const vm = vue.getCurrentInstance();
2905
2911
  const { name: name2 = "unknown" } = (vm == null ? void 0 : vm.type) || {};
2906
2912
  return `${name2}-${++current}`;
@@ -2960,7 +2966,7 @@
2960
2966
  emit,
2961
2967
  slots
2962
2968
  }) {
2963
- const id = useId();
2969
+ const id = useId$1();
2964
2970
  const state = vue.reactive({
2965
2971
  focused: false,
2966
2972
  validateFailed: false,
@@ -3050,10 +3056,13 @@
3050
3056
  });
3051
3057
  const validateWithTrigger = (trigger) => {
3052
3058
  if (form && props.rules) {
3053
- const defaultTrigger = form.props.validateTrigger === trigger;
3059
+ const {
3060
+ validateTrigger
3061
+ } = form.props;
3062
+ const defaultTrigger = toArray(validateTrigger).includes(trigger);
3054
3063
  const rules = props.rules.filter((rule) => {
3055
3064
  if (rule.trigger) {
3056
- return rule.trigger === trigger;
3065
+ return toArray(rule.trigger).includes(trigger);
3057
3066
  }
3058
3067
  return defaultTrigger;
3059
3068
  });
@@ -6291,7 +6300,7 @@
6291
6300
  const root = vue.ref();
6292
6301
  const navRef = vue.ref();
6293
6302
  const wrapRef = vue.ref();
6294
- const id = useId();
6303
+ const id = useId$1();
6295
6304
  const scroller = useScrollParent(root);
6296
6305
  const [titleRefs, setTitleRefs] = useRefs();
6297
6306
  const {
@@ -6681,7 +6690,7 @@
6681
6690
  setup(props, {
6682
6691
  slots
6683
6692
  }) {
6684
- const id = useId();
6693
+ const id = useId$1();
6685
6694
  const inited = vue.ref(false);
6686
6695
  const {
6687
6696
  parent,
@@ -8052,31 +8061,78 @@
8052
8061
  }
8053
8062
  });
8054
8063
  const CouponCell = withInstall(stdin_default$L);
8055
- const prefix = "van-empty-network-";
8064
+ const getId = (num) => `van-empty-${num}`;
8065
+ const useId = (num) => `url(#${getId(num)})`;
8056
8066
  const renderStop = (color, offset2, opacity) => vue.createVNode("stop", {
8057
8067
  "stop-color": color,
8058
8068
  "offset": `${offset2}%`,
8059
8069
  "stop-opacity": opacity
8060
8070
  }, null);
8061
- const Network = vue.createVNode("svg", {
8071
+ const renderStops = (fromColor, toColor) => [renderStop(fromColor, 0), renderStop(toColor, 100)];
8072
+ const renderShadow = (id) => [vue.createVNode("defs", null, [vue.createVNode("radialGradient", {
8073
+ "id": getId(id),
8074
+ "cx": "50%",
8075
+ "cy": "54%",
8076
+ "fx": "50%",
8077
+ "fy": "54%",
8078
+ "r": "297%",
8079
+ "gradientTransform": "matrix(-.16 0 0 -.33 .58 .72)"
8080
+ }, [renderStop("#EBEDF0", 0), renderStop("#F2F3F5", 100, 0.3)])]), vue.createVNode("ellipse", {
8081
+ "fill": useId(id),
8082
+ "opacity": ".8",
8083
+ "cx": "80",
8084
+ "cy": "140",
8085
+ "rx": "46",
8086
+ "ry": "8"
8087
+ }, null)];
8088
+ const renderBuilding = () => [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8089
+ "id": getId("a"),
8090
+ "x1": "64%",
8091
+ "y1": "100%",
8092
+ "x2": "64%"
8093
+ }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)])]), vue.createVNode("g", {
8094
+ "opacity": ".8"
8095
+ }, [vue.createVNode("path", {
8096
+ "d": "M36 131V53H16v20H2v58h34z",
8097
+ "fill": useId("a")
8098
+ }, null), vue.createVNode("path", {
8099
+ "d": "M123 15h22v14h9v77h-31V15z",
8100
+ "fill": useId("a")
8101
+ }, null)])];
8102
+ const renderCloud = () => [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8103
+ "id": getId("b"),
8104
+ "x1": "64%",
8105
+ "y1": "97%",
8106
+ "x2": "64%",
8107
+ "y2": "0%"
8108
+ }, [renderStop("#F2F3F5", 0, 0.3), renderStop("#F2F3F5", 100)])]), vue.createVNode("g", {
8109
+ "opacity": ".8"
8110
+ }, [vue.createVNode("path", {
8111
+ "d": "M87 6c3 0 7 3 8 6a8 8 0 1 1-1 16H80a7 7 0 0 1-8-6c0-4 3-7 6-7 0-5 4-9 9-9Z",
8112
+ "fill": useId("b")
8113
+ }, null), vue.createVNode("path", {
8114
+ "d": "M19 23c2 0 3 1 4 3 2 0 4 2 4 4a4 4 0 0 1-4 3v1h-7v-1l-1 1c-2 0-3-2-3-4 0-1 1-3 3-3 0-2 2-4 4-4Z",
8115
+ "fill": useId("b")
8116
+ }, null)])];
8117
+ const renderNetwork = () => vue.createVNode("svg", {
8062
8118
  "viewBox": "0 0 160 160"
8063
8119
  }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8064
- "id": `${prefix}1`,
8120
+ "id": getId(1),
8065
8121
  "x1": "64%",
8066
8122
  "y1": "100%",
8067
8123
  "x2": "64%"
8068
8124
  }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)]), vue.createVNode("linearGradient", {
8069
- "id": `${prefix}2`,
8125
+ "id": getId(2),
8070
8126
  "x1": "50%",
8071
8127
  "x2": "50%",
8072
8128
  "y2": "84%"
8073
8129
  }, [renderStop("#EBEDF0", 0), renderStop("#DCDEE0", 100, 0)]), vue.createVNode("linearGradient", {
8074
- "id": `${prefix}3`,
8130
+ "id": getId(3),
8075
8131
  "x1": "100%",
8076
8132
  "x2": "100%",
8077
8133
  "y2": "100%"
8078
- }, [renderStop("#EAEDF0", 0), renderStop("#DCDEE0", 100)]), vue.createVNode("radialGradient", {
8079
- "id": `${prefix}4`,
8134
+ }, [renderStops("#EAEDF0", "#DCDEE0")]), vue.createVNode("radialGradient", {
8135
+ "id": getId(4),
8080
8136
  "cx": "50%",
8081
8137
  "cy": "0%",
8082
8138
  "fx": "50%",
@@ -8085,36 +8141,28 @@
8085
8141
  "gradientTransform": "matrix(0 1 -.54 0 .5 -.5)"
8086
8142
  }, [renderStop("#EBEDF0", 0), renderStop("#FFF", 100, 0)])]), vue.createVNode("g", {
8087
8143
  "fill": "none"
8088
- }, [vue.createVNode("g", {
8089
- "opacity": ".8"
8090
- }, [vue.createVNode("path", {
8091
- "d": "M36 131V53H16v20H2v58h34z",
8092
- "fill": `url(#${prefix}1)`
8093
- }, null), vue.createVNode("path", {
8094
- "d": "M123 15h22v14h9v77h-31V15z",
8095
- "fill": `url(#${prefix}1)`
8096
- }, null)]), vue.createVNode("path", {
8097
- "fill": `url(#${prefix}4)`,
8144
+ }, [renderBuilding(), vue.createVNode("path", {
8145
+ "fill": useId(4),
8098
8146
  "d": "M0 139h160v21H0z"
8099
8147
  }, null), vue.createVNode("path", {
8100
8148
  "d": "M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z",
8101
- "fill": `url(#${prefix}2)`
8149
+ "fill": useId(2)
8102
8150
  }, null), vue.createVNode("g", {
8103
8151
  "opacity": ".6",
8104
8152
  "stroke-linecap": "round",
8105
8153
  "stroke-width": "7"
8106
8154
  }, [vue.createVNode("path", {
8107
8155
  "d": "M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13",
8108
- "stroke": `url(#${prefix}3)`
8156
+ "stroke": useId(3)
8109
8157
  }, null), vue.createVNode("path", {
8110
8158
  "d": "M53 36a34 34 0 0 0 0 48",
8111
- "stroke": `url(#${prefix}3)`
8159
+ "stroke": useId(3)
8112
8160
  }, null), vue.createVNode("path", {
8113
8161
  "d": "M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13",
8114
- "stroke": `url(#${prefix}3)`
8162
+ "stroke": useId(3)
8115
8163
  }, null), vue.createVNode("path", {
8116
8164
  "d": "M106 84a34 34 0 0 0 0-48",
8117
- "stroke": `url(#${prefix}3)`
8165
+ "stroke": useId(3)
8118
8166
  }, null)]), vue.createVNode("g", {
8119
8167
  "transform": "translate(31 105)"
8120
8168
  }, [vue.createVNode("rect", {
@@ -8137,8 +8185,153 @@
8137
8185
  "height": "6",
8138
8186
  "rx": "1.1"
8139
8187
  }, null)])])]);
8188
+ const renderMaterial = () => vue.createVNode("svg", {
8189
+ "viewBox": "0 0 160 160"
8190
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8191
+ "x1": "50%",
8192
+ "x2": "50%",
8193
+ "y2": "100%",
8194
+ "id": getId(5)
8195
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), vue.createVNode("linearGradient", {
8196
+ "x1": "95%",
8197
+ "y1": "48%",
8198
+ "x2": "5.5%",
8199
+ "y2": "51%",
8200
+ "id": getId(6)
8201
+ }, [renderStops("#EAEDF1", "#DCDEE0")]), vue.createVNode("linearGradient", {
8202
+ "y1": "45%",
8203
+ "x2": "100%",
8204
+ "y2": "54%",
8205
+ "id": getId(7)
8206
+ }, [renderStops("#EAEDF1", "#DCDEE0")])]), renderBuilding(), renderCloud(), vue.createVNode("g", {
8207
+ "transform": "translate(36 50)",
8208
+ "fill": "none"
8209
+ }, [vue.createVNode("g", {
8210
+ "transform": "translate(8)"
8211
+ }, [vue.createVNode("rect", {
8212
+ "fill": "#EBEDF0",
8213
+ "opacity": ".6",
8214
+ "x": "38",
8215
+ "y": "13",
8216
+ "width": "36",
8217
+ "height": "53",
8218
+ "rx": "2"
8219
+ }, null), vue.createVNode("rect", {
8220
+ "fill": useId(5),
8221
+ "width": "64",
8222
+ "height": "66",
8223
+ "rx": "2"
8224
+ }, null), vue.createVNode("rect", {
8225
+ "fill": "#FFF",
8226
+ "x": "6",
8227
+ "y": "6",
8228
+ "width": "52",
8229
+ "height": "55",
8230
+ "rx": "1"
8231
+ }, null), vue.createVNode("g", {
8232
+ "transform": "translate(15 17)",
8233
+ "fill": useId(6)
8234
+ }, [vue.createVNode("rect", {
8235
+ "width": "34",
8236
+ "height": "6",
8237
+ "rx": "1"
8238
+ }, null), vue.createVNode("path", {
8239
+ "d": "M0 14h34v6H0z"
8240
+ }, null), vue.createVNode("rect", {
8241
+ "y": "28",
8242
+ "width": "34",
8243
+ "height": "6",
8244
+ "rx": "1"
8245
+ }, null)])]), vue.createVNode("rect", {
8246
+ "fill": useId(7),
8247
+ "y": "61",
8248
+ "width": "88",
8249
+ "height": "28",
8250
+ "rx": "1"
8251
+ }, null), vue.createVNode("rect", {
8252
+ "fill": "#F7F8FA",
8253
+ "x": "29",
8254
+ "y": "72",
8255
+ "width": "30",
8256
+ "height": "6",
8257
+ "rx": "1"
8258
+ }, null)])]);
8259
+ const renderError = () => vue.createVNode("svg", {
8260
+ "viewBox": "0 0 160 160"
8261
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8262
+ "x1": "50%",
8263
+ "x2": "50%",
8264
+ "y2": "100%",
8265
+ "id": getId(8)
8266
+ }, [renderStops("#EAEDF1", "#DCDEE0")])]), renderBuilding(), renderCloud(), renderShadow("c"), vue.createVNode("path", {
8267
+ "d": "m59 60 21 21 21-21h3l9 9v3L92 93l21 21v3l-9 9h-3l-21-21-21 21h-3l-9-9v-3l21-21-21-21v-3l9-9h3Z",
8268
+ "fill": useId(8)
8269
+ }, null)]);
8270
+ const renderSearch = () => vue.createVNode("svg", {
8271
+ "viewBox": "0 0 160 160"
8272
+ }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
8273
+ "x1": "50%",
8274
+ "y1": "100%",
8275
+ "x2": "50%",
8276
+ "id": getId(9)
8277
+ }, [renderStops("#EEE", "#D8D8D8")]), vue.createVNode("linearGradient", {
8278
+ "x1": "100%",
8279
+ "y1": "50%",
8280
+ "y2": "50%",
8281
+ "id": getId(10)
8282
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), vue.createVNode("linearGradient", {
8283
+ "x1": "50%",
8284
+ "x2": "50%",
8285
+ "y2": "100%",
8286
+ "id": getId(11)
8287
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), vue.createVNode("linearGradient", {
8288
+ "x1": "50%",
8289
+ "x2": "50%",
8290
+ "y2": "100%",
8291
+ "id": getId(12)
8292
+ }, [renderStops("#FFF", "#F7F8FA")])]), renderBuilding(), renderCloud(), renderShadow("d"), vue.createVNode("g", {
8293
+ "transform": "rotate(-45 113 -4)",
8294
+ "fill": "none"
8295
+ }, [vue.createVNode("rect", {
8296
+ "fill": useId(9),
8297
+ "x": "24",
8298
+ "y": "52.8",
8299
+ "width": "5.8",
8300
+ "height": "19",
8301
+ "rx": "1"
8302
+ }, null), vue.createVNode("rect", {
8303
+ "fill": useId(10),
8304
+ "x": "22.1",
8305
+ "y": "67.3",
8306
+ "width": "9.9",
8307
+ "height": "28",
8308
+ "rx": "1"
8309
+ }, null), vue.createVNode("circle", {
8310
+ "stroke": useId(11),
8311
+ "stroke-width": "8",
8312
+ "cx": "27",
8313
+ "cy": "27",
8314
+ "r": "27"
8315
+ }, null), vue.createVNode("circle", {
8316
+ "fill": useId(12),
8317
+ "cx": "27",
8318
+ "cy": "27",
8319
+ "r": "16"
8320
+ }, null), vue.createVNode("path", {
8321
+ "d": "M37 7c-8 0-15 5-16 12",
8322
+ "stroke": useId(11),
8323
+ "stroke-width": "3",
8324
+ "opacity": ".5",
8325
+ "stroke-linecap": "round",
8326
+ "transform": "rotate(45 29 13)"
8327
+ }, null)])]);
8140
8328
  const [name$E, bem$D] = createNamespace("empty");
8141
- const PRESET_IMAGES = ["error", "search", "default"];
8329
+ const PRESET_IMAGES = {
8330
+ error: renderError,
8331
+ search: renderSearch,
8332
+ network: renderNetwork,
8333
+ default: renderMaterial
8334
+ };
8142
8335
  const emptyProps = {
8143
8336
  image: makeStringProp("default"),
8144
8337
  imageSize: [Number, String, Array],
@@ -8151,20 +8344,12 @@
8151
8344
  slots
8152
8345
  }) {
8153
8346
  const renderImage = () => {
8347
+ var _a;
8154
8348
  if (slots.image) {
8155
8349
  return slots.image();
8156
8350
  }
8157
- let {
8158
- image
8159
- } = props;
8160
- if (image === "network") {
8161
- return Network;
8162
- }
8163
- if (PRESET_IMAGES.includes(image)) {
8164
- image = `https://img.yzcdn.cn/vant/empty-image-${image}.png`;
8165
- }
8166
- return vue.createVNode("img", {
8167
- "src": image
8351
+ return ((_a = PRESET_IMAGES[props.image]) == null ? void 0 : _a.call(PRESET_IMAGES)) || vue.createVNode("img", {
8352
+ "src": props.image
8168
8353
  }, null);
8169
8354
  };
8170
8355
  const renderDescription = () => {
@@ -9066,7 +9251,7 @@
9066
9251
  setup(props, {
9067
9252
  slots
9068
9253
  }) {
9069
- const id = useId();
9254
+ const id = useId$1();
9070
9255
  const root = vue.ref();
9071
9256
  const barRef = vue.ref();
9072
9257
  const offset2 = vue.ref(0);
@@ -12747,7 +12932,7 @@
12747
12932
  slots,
12748
12933
  attrs
12749
12934
  }) {
12750
- const id = useId();
12935
+ const id = useId$1();
12751
12936
  const filedRef = vue.ref();
12752
12937
  const onCancel = () => {
12753
12938
  if (!slots.action) {
@@ -14302,7 +14487,6 @@
14302
14487
  });
14303
14488
  const TreeSelect = withInstall(stdin_default$6);
14304
14489
  const [name, bem, t] = createNamespace("uploader");
14305
- const toArray = (item) => Array.isArray(item) ? item : [item];
14306
14490
  function readFileContent(file, resultType) {
14307
14491
  return new Promise((resolve) => {
14308
14492
  if (resultType === "file") {
@@ -15561,7 +15745,7 @@
15561
15745
  });
15562
15746
  }
15563
15747
  };
15564
- const version = "3.4.8";
15748
+ const version = "3.4.9";
15565
15749
  function install(app) {
15566
15750
  const components = [
15567
15751
  ActionBar,