vant 4.0.0-alpha.2 → 4.0.0-alpha.3

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 (52) hide show
  1. package/changelog.generated.md +33 -29
  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/search/index.css +1 -1
  14. package/es/search/index.less +1 -1
  15. package/es/uploader/Uploader.js +2 -2
  16. package/es/uploader/utils.d.ts +0 -1
  17. package/es/uploader/utils.js +2 -4
  18. package/es/utils/basic.d.ts +1 -0
  19. package/es/utils/basic.js +3 -1
  20. package/lib/empty/Empty.js +10 -13
  21. package/lib/empty/Images.d.ts +4 -0
  22. package/lib/empty/Images.js +290 -0
  23. package/lib/field/Field.js +5 -2
  24. package/lib/field/types.d.ts +1 -1
  25. package/lib/form/Form.d.ts +13 -13
  26. package/lib/form/Form.js +5 -2
  27. package/lib/form/index.d.ts +9 -9
  28. package/lib/index.css +1 -1
  29. package/lib/index.d.ts +1 -1
  30. package/lib/index.js +1 -1
  31. package/lib/loading/Loading.js +3 -1
  32. package/lib/search/index.css +1 -1
  33. package/lib/search/index.less +1 -1
  34. package/lib/uploader/Uploader.js +1 -1
  35. package/lib/uploader/utils.d.ts +0 -1
  36. package/lib/uploader/utils.js +2 -4
  37. package/lib/utils/basic.d.ts +1 -0
  38. package/lib/utils/basic.js +3 -1
  39. package/lib/vant.cjs.js +233 -49
  40. package/lib/vant.cjs.min.js +1 -1
  41. package/lib/vant.es.js +233 -49
  42. package/lib/vant.es.min.js +233 -49
  43. package/lib/vant.js +233 -49
  44. package/lib/vant.min.js +1 -1
  45. package/package.json +1 -1
  46. package/vetur/attributes.json +551 -551
  47. package/vetur/tags.json +200 -200
  48. package/vetur/web-types.json +1778 -1778
  49. package/es/empty/Network.d.ts +0 -1
  50. package/es/empty/Network.js +0 -89
  51. package/lib/empty/Network.d.ts +0 -1
  52. package/lib/empty/Network.js +0 -108
@@ -1,13 +1,28 @@
1
+ ### [v4.0.0-alpha.3](https://github.com/youzan/vant/compare/v3.4.9...v4.0.0-alpha.3)
2
+
3
+ `2022-05-02`
4
+
5
+ **Bug Fixes**
6
+
7
+ - Search: style error in dark mode [#10527](https://github.com/youzan/vant/issues/10527)
8
+
9
+ **Document**
10
+
11
+ - changelog: 3.4.9 [851dab](https://github.com/youzan/vant/commit/851dab4dafc8ee77aa6b6a8b01db2202f5d4f7e3)
12
+ - changelog: 4.0.0-alpha.2 [912a5f](https://github.com/youzan/vant/commit/912a5f17b1b429baa063de91c68a8bf6650b1189)
1
13
  ### [v4.0.0-alpha.2](https://github.com/youzan/vant/compare/v3.4.8...v4.0.0-alpha.2)
2
14
 
3
15
  `2022-04-16`
4
16
 
5
17
  **Document**
6
18
 
7
- - changelog: 3.4.8 [666089](https://github.com/youzan/vant/commit/666089edbb2b894fec5e8f023c0037ca5c7dbe41)
8
19
  - changelog: 4.0.0-alpha.1 [5bff9e](https://github.com/youzan/vant/commit/5bff9e8c5ff4716740c7555ef185163569f7576c)
9
20
 
10
21
  - breaking change(AddressEdit): remove postal [e08e98](https://github.com/youzan/vant/commit/e08e9845a29b8d5587f02eff84368e32157678f4)
22
+
23
+ **release**
24
+
25
+ - 4.0.0-alpha.2 [ea57c9](https://github.com/youzan/vant/commit/ea57c9e9ffc10847ac31e1c6b6dac8f81c4abb22)
11
26
  ### [v4.0.0-alpha.1](https://github.com/youzan/vant/compare/v3.4.6...v4.0.0-alpha.1)
12
27
 
13
28
  `2022-03-19`
@@ -151,44 +166,33 @@
151
166
  - Picker: fix columns prop typing [6c64bc](https://github.com/youzan/vant/commit/6c64bc33c1ba537b7951dcbc02d6deec3aaab093)
152
167
  - Picker: fix return type of getSelectedOptions [967cb5](https://github.com/youzan/vant/commit/967cb56c181cc145189a868f49c4666a75f85b00)
153
168
  - TimePicker: export TimePickerColumnType [b608fb](https://github.com/youzan/vant/commit/b608fb23f031cf09a474039cd9cd23f8bc7811d3)
154
- ### [v3.4.8](https://github.com/youzan/vant/compare/v3.4.7...v3.4.8)
169
+ ### [v3.4.9](https://github.com/youzan/vant/compare/v4.0.0-alpha.2...v3.4.9)
155
170
 
156
- `2022-04-16`
171
+ `2022-05-02`
157
172
 
158
173
  **Bug Fixes**
159
174
 
160
- - datetime-picker: modeValue is inconsistent with the selected data. [#10448](https://github.com/youzan/vant/issues/10448)
161
- - Rate: support precisely selected [#10500](https://github.com/youzan/vant/issues/10500)
162
-
163
- **doc**
164
-
165
- - update readme add sfc-playground-vant to Community Ecosystem [#10475](https://github.com/youzan/vant/issues/10475)
175
+ - @vant/area-data: only publish dist folder to npm [f927f6](https://github.com/youzan/vant/commit/f927f6a7518cf7d08ec8abc5dd35019685c19e3a)
176
+ - remove default license in vant cli template [#10546](https://github.com/youzan/vant/issues/10546)
166
177
 
167
178
  **Document**
168
179
 
169
- - @vant/cli: changelog v4.0.1 [#10473](https://github.com/youzan/vant/issues/10473)
170
- - @vant/icons: changelog v1.8.0 [#10472](https://github.com/youzan/vant/issues/10472)
171
- - Badge: add show-zero tip [#10506](https://github.com/youzan/vant/issues/10506)
172
- - changelog: 3.4.7 [99876c](https://github.com/youzan/vant/commit/99876cfb7c203b5a37fcef1220eeee55d02772cd)
173
- - ContactCard: fix missing editable prop [#10507](https://github.com/youzan/vant/issues/10507)
174
- - fix ContactCard return error [#10460](https://github.com/youzan/vant/issues/10460)
175
- - fix Lazyload register multilple times [#10456](https://github.com/youzan/vant/issues/10456)
176
- - Icons: update contribution guide [#10471](https://github.com/youzan/vant/issues/10471)
177
- - List: add en FAQ [#10508](https://github.com/youzan/vant/issues/10508)
180
+ - @vant/cli: optimize links and fix typos [#10545](https://github.com/youzan/vant/issues/10545)
181
+ - translate docs of composables [#10561](https://github.com/youzan/vant/issues/10561)
182
+ - update the composables content [#10560](https://github.com/youzan/vant/issues/10560)
183
+ - vant-cli: translate README to en [#10519](https://github.com/youzan/vant/issues/10519)
184
+ - vant-cli: translate vant-cli docs to en [#10537](https://github.com/youzan/vant/issues/10537)
185
+ - vant: keep the doc consistent with the demo code [#10554](https://github.com/youzan/vant/issues/10554)
178
186
 
179
187
  **Feature**
180
188
 
181
- - CalendarDay: add default margin-bottom [#10441](https://github.com/youzan/vant/issues/10441)
182
- - Empty: support set the image size separately [#10465](https://github.com/youzan/vant/issues/10465)
183
- - Field: add enterkeyhint prop [#10478](https://github.com/youzan/vant/issues/10478)
184
- - Form: add getValues method [#10511](https://github.com/youzan/vant/issues/10511)
185
- - Icon: add some icons for ShareSheet [#10468](https://github.com/youzan/vant/issues/10468)
186
- - Locale: add Danish lang [#10513](https://github.com/youzan/vant/issues/10513)
187
- - ShareSheet: no longer rely on CDN images [#10469](https://github.com/youzan/vant/issues/10469)
188
- - VantMarkdownVetur: support arguments of events [#10474](https://github.com/youzan/vant/issues/10474)
189
+ - Form: support setting multile validate-trigger [#10544](https://github.com/youzan/vant/issues/10544)
190
+ - Image: localize default image [#10514](https://github.com/youzan/vant/issues/10514)
191
+ - Image: localize error image [#10515](https://github.com/youzan/vant/issues/10515)
192
+ - Image: localize search image [#10516](https://github.com/youzan/vant/issues/10516)
193
+ - Loading: add aria to improve a11y [#10568](https://github.com/youzan/vant/issues/10568)
189
194
 
190
195
  **release**
191
196
 
192
- - @vant/icons 1.8.0 [e461ab](https://github.com/youzan/vant/commit/e461abaafaea45ee6ba5eb06145618867a3ff7cf)
193
- - @vant/markdown-vetur v2.3.0 [#10480](https://github.com/youzan/vant/issues/10480)
194
- - 3.4.8 [f525be](https://github.com/youzan/vant/commit/f525be1e0db180bda4da4245f48f74b1e4b1ed78)
197
+ - @vant/area-data 1.2.4 [c378f4](https://github.com/youzan/vant/commit/c378f4ead14176e371ce1e80074244268fbc5769)
198
+ - 3.4.9 [948863](https://github.com/youzan/vant/commit/9488631862446a6b1e2bd3ce90bf5da008e93beb)
package/es/empty/Empty.js CHANGED
@@ -1,9 +1,14 @@
1
1
  import { createVNode as _createVNode } from "vue";
2
2
  import { defineComponent } from "vue";
3
3
  import { getSizeStyle, makeStringProp, createNamespace } from "../utils";
4
- import { Network } from "./Network";
4
+ import { renderError, renderSearch, renderNetwork, renderMaterial } from "./Images";
5
5
  const [name, bem] = createNamespace("empty");
6
- const PRESET_IMAGES = ["error", "search", "default"];
6
+ const PRESET_IMAGES = {
7
+ error: renderError,
8
+ search: renderSearch,
9
+ network: renderNetwork,
10
+ default: renderMaterial
11
+ };
7
12
  const emptyProps = {
8
13
  image: makeStringProp("default"),
9
14
  imageSize: [Number, String, Array],
@@ -16,20 +21,12 @@ var stdin_default = defineComponent({
16
21
  slots
17
22
  }) {
18
23
  const renderImage = () => {
24
+ var _a;
19
25
  if (slots.image) {
20
26
  return slots.image();
21
27
  }
22
- let {
23
- image
24
- } = props;
25
- if (image === "network") {
26
- return Network;
27
- }
28
- if (PRESET_IMAGES.includes(image)) {
29
- image = `https://img.yzcdn.cn/vant/empty-image-${image}.png`;
30
- }
31
- return _createVNode("img", {
32
- "src": image
28
+ return ((_a = PRESET_IMAGES[props.image]) == null ? void 0 : _a.call(PRESET_IMAGES)) || _createVNode("img", {
29
+ "src": props.image
33
30
  }, null);
34
31
  };
35
32
  const renderDescription = () => {
@@ -0,0 +1,4 @@
1
+ export declare const renderNetwork: () => JSX.Element;
2
+ export declare const renderMaterial: () => JSX.Element;
3
+ export declare const renderError: () => JSX.Element;
4
+ export declare const renderSearch: () => JSX.Element;
@@ -0,0 +1,271 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ const getId = (num) => `van-empty-${num}`;
3
+ const useId = (num) => `url(#${getId(num)})`;
4
+ const renderStop = (color, offset, opacity) => _createVNode("stop", {
5
+ "stop-color": color,
6
+ "offset": `${offset}%`,
7
+ "stop-opacity": opacity
8
+ }, null);
9
+ const renderStops = (fromColor, toColor) => [renderStop(fromColor, 0), renderStop(toColor, 100)];
10
+ const renderShadow = (id) => [_createVNode("defs", null, [_createVNode("radialGradient", {
11
+ "id": getId(id),
12
+ "cx": "50%",
13
+ "cy": "54%",
14
+ "fx": "50%",
15
+ "fy": "54%",
16
+ "r": "297%",
17
+ "gradientTransform": "matrix(-.16 0 0 -.33 .58 .72)"
18
+ }, [renderStop("#EBEDF0", 0), renderStop("#F2F3F5", 100, 0.3)])]), _createVNode("ellipse", {
19
+ "fill": useId(id),
20
+ "opacity": ".8",
21
+ "cx": "80",
22
+ "cy": "140",
23
+ "rx": "46",
24
+ "ry": "8"
25
+ }, null)];
26
+ const renderBuilding = () => [_createVNode("defs", null, [_createVNode("linearGradient", {
27
+ "id": getId("a"),
28
+ "x1": "64%",
29
+ "y1": "100%",
30
+ "x2": "64%"
31
+ }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)])]), _createVNode("g", {
32
+ "opacity": ".8"
33
+ }, [_createVNode("path", {
34
+ "d": "M36 131V53H16v20H2v58h34z",
35
+ "fill": useId("a")
36
+ }, null), _createVNode("path", {
37
+ "d": "M123 15h22v14h9v77h-31V15z",
38
+ "fill": useId("a")
39
+ }, null)])];
40
+ const renderCloud = () => [_createVNode("defs", null, [_createVNode("linearGradient", {
41
+ "id": getId("b"),
42
+ "x1": "64%",
43
+ "y1": "97%",
44
+ "x2": "64%",
45
+ "y2": "0%"
46
+ }, [renderStop("#F2F3F5", 0, 0.3), renderStop("#F2F3F5", 100)])]), _createVNode("g", {
47
+ "opacity": ".8"
48
+ }, [_createVNode("path", {
49
+ "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",
50
+ "fill": useId("b")
51
+ }, null), _createVNode("path", {
52
+ "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",
53
+ "fill": useId("b")
54
+ }, null)])];
55
+ const renderNetwork = () => _createVNode("svg", {
56
+ "viewBox": "0 0 160 160"
57
+ }, [_createVNode("defs", null, [_createVNode("linearGradient", {
58
+ "id": getId(1),
59
+ "x1": "64%",
60
+ "y1": "100%",
61
+ "x2": "64%"
62
+ }, [renderStop("#FFF", 0, 0.5), renderStop("#F2F3F5", 100)]), _createVNode("linearGradient", {
63
+ "id": getId(2),
64
+ "x1": "50%",
65
+ "x2": "50%",
66
+ "y2": "84%"
67
+ }, [renderStop("#EBEDF0", 0), renderStop("#DCDEE0", 100, 0)]), _createVNode("linearGradient", {
68
+ "id": getId(3),
69
+ "x1": "100%",
70
+ "x2": "100%",
71
+ "y2": "100%"
72
+ }, [renderStops("#EAEDF0", "#DCDEE0")]), _createVNode("radialGradient", {
73
+ "id": getId(4),
74
+ "cx": "50%",
75
+ "cy": "0%",
76
+ "fx": "50%",
77
+ "fy": "0%",
78
+ "r": "100%",
79
+ "gradientTransform": "matrix(0 1 -.54 0 .5 -.5)"
80
+ }, [renderStop("#EBEDF0", 0), renderStop("#FFF", 100, 0)])]), _createVNode("g", {
81
+ "fill": "none"
82
+ }, [renderBuilding(), _createVNode("path", {
83
+ "fill": useId(4),
84
+ "d": "M0 139h160v21H0z"
85
+ }, null), _createVNode("path", {
86
+ "d": "M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z",
87
+ "fill": useId(2)
88
+ }, null), _createVNode("g", {
89
+ "opacity": ".6",
90
+ "stroke-linecap": "round",
91
+ "stroke-width": "7"
92
+ }, [_createVNode("path", {
93
+ "d": "M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13",
94
+ "stroke": useId(3)
95
+ }, null), _createVNode("path", {
96
+ "d": "M53 36a34 34 0 0 0 0 48",
97
+ "stroke": useId(3)
98
+ }, null), _createVNode("path", {
99
+ "d": "M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13",
100
+ "stroke": useId(3)
101
+ }, null), _createVNode("path", {
102
+ "d": "M106 84a34 34 0 0 0 0-48",
103
+ "stroke": useId(3)
104
+ }, null)]), _createVNode("g", {
105
+ "transform": "translate(31 105)"
106
+ }, [_createVNode("rect", {
107
+ "fill": "#EBEDF0",
108
+ "width": "98",
109
+ "height": "34",
110
+ "rx": "2"
111
+ }, null), _createVNode("rect", {
112
+ "fill": "#FFF",
113
+ "x": "9",
114
+ "y": "8",
115
+ "width": "80",
116
+ "height": "18",
117
+ "rx": "1.1"
118
+ }, null), _createVNode("rect", {
119
+ "fill": "#EBEDF0",
120
+ "x": "15",
121
+ "y": "12",
122
+ "width": "18",
123
+ "height": "6",
124
+ "rx": "1.1"
125
+ }, null)])])]);
126
+ const renderMaterial = () => _createVNode("svg", {
127
+ "viewBox": "0 0 160 160"
128
+ }, [_createVNode("defs", null, [_createVNode("linearGradient", {
129
+ "x1": "50%",
130
+ "x2": "50%",
131
+ "y2": "100%",
132
+ "id": getId(5)
133
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), _createVNode("linearGradient", {
134
+ "x1": "95%",
135
+ "y1": "48%",
136
+ "x2": "5.5%",
137
+ "y2": "51%",
138
+ "id": getId(6)
139
+ }, [renderStops("#EAEDF1", "#DCDEE0")]), _createVNode("linearGradient", {
140
+ "y1": "45%",
141
+ "x2": "100%",
142
+ "y2": "54%",
143
+ "id": getId(7)
144
+ }, [renderStops("#EAEDF1", "#DCDEE0")])]), renderBuilding(), renderCloud(), _createVNode("g", {
145
+ "transform": "translate(36 50)",
146
+ "fill": "none"
147
+ }, [_createVNode("g", {
148
+ "transform": "translate(8)"
149
+ }, [_createVNode("rect", {
150
+ "fill": "#EBEDF0",
151
+ "opacity": ".6",
152
+ "x": "38",
153
+ "y": "13",
154
+ "width": "36",
155
+ "height": "53",
156
+ "rx": "2"
157
+ }, null), _createVNode("rect", {
158
+ "fill": useId(5),
159
+ "width": "64",
160
+ "height": "66",
161
+ "rx": "2"
162
+ }, null), _createVNode("rect", {
163
+ "fill": "#FFF",
164
+ "x": "6",
165
+ "y": "6",
166
+ "width": "52",
167
+ "height": "55",
168
+ "rx": "1"
169
+ }, null), _createVNode("g", {
170
+ "transform": "translate(15 17)",
171
+ "fill": useId(6)
172
+ }, [_createVNode("rect", {
173
+ "width": "34",
174
+ "height": "6",
175
+ "rx": "1"
176
+ }, null), _createVNode("path", {
177
+ "d": "M0 14h34v6H0z"
178
+ }, null), _createVNode("rect", {
179
+ "y": "28",
180
+ "width": "34",
181
+ "height": "6",
182
+ "rx": "1"
183
+ }, null)])]), _createVNode("rect", {
184
+ "fill": useId(7),
185
+ "y": "61",
186
+ "width": "88",
187
+ "height": "28",
188
+ "rx": "1"
189
+ }, null), _createVNode("rect", {
190
+ "fill": "#F7F8FA",
191
+ "x": "29",
192
+ "y": "72",
193
+ "width": "30",
194
+ "height": "6",
195
+ "rx": "1"
196
+ }, null)])]);
197
+ const renderError = () => _createVNode("svg", {
198
+ "viewBox": "0 0 160 160"
199
+ }, [_createVNode("defs", null, [_createVNode("linearGradient", {
200
+ "x1": "50%",
201
+ "x2": "50%",
202
+ "y2": "100%",
203
+ "id": getId(8)
204
+ }, [renderStops("#EAEDF1", "#DCDEE0")])]), renderBuilding(), renderCloud(), renderShadow("c"), _createVNode("path", {
205
+ "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",
206
+ "fill": useId(8)
207
+ }, null)]);
208
+ const renderSearch = () => _createVNode("svg", {
209
+ "viewBox": "0 0 160 160"
210
+ }, [_createVNode("defs", null, [_createVNode("linearGradient", {
211
+ "x1": "50%",
212
+ "y1": "100%",
213
+ "x2": "50%",
214
+ "id": getId(9)
215
+ }, [renderStops("#EEE", "#D8D8D8")]), _createVNode("linearGradient", {
216
+ "x1": "100%",
217
+ "y1": "50%",
218
+ "y2": "50%",
219
+ "id": getId(10)
220
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), _createVNode("linearGradient", {
221
+ "x1": "50%",
222
+ "x2": "50%",
223
+ "y2": "100%",
224
+ "id": getId(11)
225
+ }, [renderStops("#F2F3F5", "#DCDEE0")]), _createVNode("linearGradient", {
226
+ "x1": "50%",
227
+ "x2": "50%",
228
+ "y2": "100%",
229
+ "id": getId(12)
230
+ }, [renderStops("#FFF", "#F7F8FA")])]), renderBuilding(), renderCloud(), renderShadow("d"), _createVNode("g", {
231
+ "transform": "rotate(-45 113 -4)",
232
+ "fill": "none"
233
+ }, [_createVNode("rect", {
234
+ "fill": useId(9),
235
+ "x": "24",
236
+ "y": "52.8",
237
+ "width": "5.8",
238
+ "height": "19",
239
+ "rx": "1"
240
+ }, null), _createVNode("rect", {
241
+ "fill": useId(10),
242
+ "x": "22.1",
243
+ "y": "67.3",
244
+ "width": "9.9",
245
+ "height": "28",
246
+ "rx": "1"
247
+ }, null), _createVNode("circle", {
248
+ "stroke": useId(11),
249
+ "stroke-width": "8",
250
+ "cx": "27",
251
+ "cy": "27",
252
+ "r": "27"
253
+ }, null), _createVNode("circle", {
254
+ "fill": useId(12),
255
+ "cx": "27",
256
+ "cy": "27",
257
+ "r": "16"
258
+ }, null), _createVNode("path", {
259
+ "d": "M37 7c-8 0-15 5-16 12",
260
+ "stroke": useId(11),
261
+ "stroke-width": "3",
262
+ "opacity": ".5",
263
+ "stroke-linecap": "round",
264
+ "transform": "rotate(45 29 13)"
265
+ }, null)])]);
266
+ export {
267
+ renderError,
268
+ renderMaterial,
269
+ renderNetwork,
270
+ renderSearch
271
+ };
package/es/field/Field.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  import { ref, watch, provide, computed, nextTick, reactive, onMounted, defineComponent } from "vue";
3
- import { isDef, extend, addUnit, FORM_KEY, numericProp, unknownProp, resetScroll, formatNumber, preventDefault, makeStringProp, makeNumericProp, createNamespace } from "../utils";
3
+ import { isDef, extend, addUnit, toArray, FORM_KEY, numericProp, unknownProp, resetScroll, formatNumber, preventDefault, makeStringProp, makeNumericProp, createNamespace } from "../utils";
4
4
  import { cutString, runSyncRule, endComposing, mapInputType, startComposing, getRuleMessage, resizeTextarea, getStringLength, runRuleValidator } from "./utils";
5
5
  import { cellSharedProps } from "../cell/Cell";
6
6
  import { CUSTOM_FIELD_INJECTION_KEY, useParent } from "@vant/use";
@@ -153,10 +153,13 @@ var stdin_default = defineComponent({
153
153
  });
154
154
  const validateWithTrigger = (trigger) => {
155
155
  if (form && props.rules) {
156
- const defaultTrigger = form.props.validateTrigger === trigger;
156
+ const {
157
+ validateTrigger
158
+ } = form.props;
159
+ const defaultTrigger = toArray(validateTrigger).includes(trigger);
157
160
  const rules = props.rules.filter((rule) => {
158
161
  if (rule.trigger) {
159
- return rule.trigger === trigger;
162
+ return toArray(rule.trigger).includes(trigger);
160
163
  }
161
164
  return defaultTrigger;
162
165
  });
@@ -18,7 +18,7 @@ export declare type FieldRuleValidator = (value: any, rule: FieldRule) => boolea
18
18
  export declare type FiledRuleFormatter = (value: any, rule: FieldRule) => string;
19
19
  export declare type FieldRule = {
20
20
  pattern?: RegExp;
21
- trigger?: FieldValidateTrigger;
21
+ trigger?: FieldValidateTrigger | FieldValidateTrigger[];
22
22
  message?: FieldRuleMessage;
23
23
  required?: boolean;
24
24
  validator?: FieldRuleValidator;
package/es/form/Form.d.ts CHANGED
@@ -14,15 +14,15 @@ declare const formProps: {
14
14
  type: BooleanConstructor;
15
15
  default: true;
16
16
  };
17
- validateTrigger: {
18
- type: PropType<FieldValidateTrigger>;
19
- default: FieldValidateTrigger;
20
- };
21
17
  showErrorMessage: {
22
18
  type: BooleanConstructor;
23
19
  default: true;
24
20
  };
25
21
  errorMessageAlign: PropType<FieldTextAlign>;
22
+ validateTrigger: {
23
+ type: PropType<FieldValidateTrigger | FieldValidateTrigger[]>;
24
+ default: string;
25
+ };
26
26
  };
27
27
  export declare type FormProps = ExtractPropTypes<typeof formProps>;
28
28
  declare const _default: import("vue").DefineComponent<{
@@ -39,15 +39,15 @@ declare const _default: import("vue").DefineComponent<{
39
39
  type: BooleanConstructor;
40
40
  default: true;
41
41
  };
42
- validateTrigger: {
43
- type: PropType<FieldValidateTrigger>;
44
- default: FieldValidateTrigger;
45
- };
46
42
  showErrorMessage: {
47
43
  type: BooleanConstructor;
48
44
  default: true;
49
45
  };
50
46
  errorMessageAlign: PropType<FieldTextAlign>;
47
+ validateTrigger: {
48
+ type: PropType<FieldValidateTrigger | FieldValidateTrigger[]>;
49
+ default: string;
50
+ };
51
51
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "failed")[], "submit" | "failed", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
52
52
  colon: BooleanConstructor;
53
53
  disabled: BooleanConstructor;
@@ -62,15 +62,15 @@ declare const _default: import("vue").DefineComponent<{
62
62
  type: BooleanConstructor;
63
63
  default: true;
64
64
  };
65
- validateTrigger: {
66
- type: PropType<FieldValidateTrigger>;
67
- default: FieldValidateTrigger;
68
- };
69
65
  showErrorMessage: {
70
66
  type: BooleanConstructor;
71
67
  default: true;
72
68
  };
73
69
  errorMessageAlign: PropType<FieldTextAlign>;
70
+ validateTrigger: {
71
+ type: PropType<FieldValidateTrigger | FieldValidateTrigger[]>;
72
+ default: string;
73
+ };
74
74
  }>> & {
75
75
  onSubmit?: ((...args: any[]) => any) | undefined;
76
76
  onFailed?: ((...args: any[]) => any) | undefined;
@@ -82,7 +82,7 @@ declare const _default: import("vue").DefineComponent<{
82
82
  scrollToError: boolean;
83
83
  validateFirst: boolean;
84
84
  submitOnEnter: boolean;
85
- validateTrigger: FieldValidateTrigger;
86
85
  showErrorMessage: boolean;
86
+ validateTrigger: FieldValidateTrigger | FieldValidateTrigger[];
87
87
  }>;
88
88
  export default _default;
package/es/form/Form.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createVNode as _createVNode } from "vue";
2
2
  import { defineComponent } from "vue";
3
- import { FORM_KEY, truthProp, numericProp, preventDefault, makeStringProp, createNamespace } from "../utils";
3
+ import { FORM_KEY, truthProp, numericProp, preventDefault, createNamespace } from "../utils";
4
4
  import { useChildren } from "@vant/use";
5
5
  import { useExpose } from "../composables/use-expose";
6
6
  const [name, bem] = createNamespace("form");
@@ -15,9 +15,12 @@ const formProps = {
15
15
  scrollToError: Boolean,
16
16
  validateFirst: Boolean,
17
17
  submitOnEnter: truthProp,
18
- validateTrigger: makeStringProp("onBlur"),
19
18
  showErrorMessage: truthProp,
20
- errorMessageAlign: String
19
+ errorMessageAlign: String,
20
+ validateTrigger: {
21
+ type: [String, Array],
22
+ default: "onBlur"
23
+ }
21
24
  };
22
25
  var stdin_default = defineComponent({
23
26
  name,
@@ -13,15 +13,15 @@ export declare const Form: import("../utils").WithInstall<import("vue").DefineCo
13
13
  type: BooleanConstructor;
14
14
  default: true;
15
15
  };
16
- validateTrigger: {
17
- type: import("vue").PropType<import("..").FieldValidateTrigger>;
18
- default: import("..").FieldValidateTrigger;
19
- };
20
16
  showErrorMessage: {
21
17
  type: BooleanConstructor;
22
18
  default: true;
23
19
  };
24
20
  errorMessageAlign: import("vue").PropType<import("..").FieldTextAlign>;
21
+ validateTrigger: {
22
+ type: import("vue").PropType<import("..").FieldValidateTrigger | import("..").FieldValidateTrigger[]>;
23
+ default: string;
24
+ };
25
25
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "failed")[], "submit" | "failed", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
26
26
  colon: BooleanConstructor;
27
27
  disabled: BooleanConstructor;
@@ -36,15 +36,15 @@ export declare const Form: import("../utils").WithInstall<import("vue").DefineCo
36
36
  type: BooleanConstructor;
37
37
  default: true;
38
38
  };
39
- validateTrigger: {
40
- type: import("vue").PropType<import("..").FieldValidateTrigger>;
41
- default: import("..").FieldValidateTrigger;
42
- };
43
39
  showErrorMessage: {
44
40
  type: BooleanConstructor;
45
41
  default: true;
46
42
  };
47
43
  errorMessageAlign: import("vue").PropType<import("..").FieldTextAlign>;
44
+ validateTrigger: {
45
+ type: import("vue").PropType<import("..").FieldValidateTrigger | import("..").FieldValidateTrigger[]>;
46
+ default: string;
47
+ };
48
48
  }>> & {
49
49
  onSubmit?: ((...args: any[]) => any) | undefined;
50
50
  onFailed?: ((...args: any[]) => any) | undefined;
@@ -56,8 +56,8 @@ export declare const Form: import("../utils").WithInstall<import("vue").DefineCo
56
56
  scrollToError: boolean;
57
57
  validateFirst: boolean;
58
58
  submitOnEnter: boolean;
59
- validateTrigger: import("..").FieldValidateTrigger;
60
59
  showErrorMessage: boolean;
60
+ validateTrigger: import("..").FieldValidateTrigger | import("..").FieldValidateTrigger[];
61
61
  }>>;
62
62
  export default Form;
63
63
  export type { FormProps };
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: "4.0.0-alpha.2";
94
+ export const version: "4.0.0-alpha.3";
package/es/index.js CHANGED
@@ -84,7 +84,7 @@ import { TimePicker } from "./time-picker";
84
84
  import { Toast } from "./toast";
85
85
  import { TreeSelect } from "./tree-select";
86
86
  import { Uploader } from "./uploader";
87
- const version = "4.0.0-alpha.2";
87
+ const version = "4.0.0-alpha.3";
88
88
  function install(app) {
89
89
  const components = [
90
90
  ActionBar,
@@ -51,7 +51,9 @@ var stdin_default = defineComponent({
51
51
  return _createVNode("div", {
52
52
  "class": bem([type, {
53
53
  vertical
54
- }])
54
+ }]),
55
+ "aria-live": "polite",
56
+ "aria-busy": true
55
57
  }, [_createVNode("span", {
56
58
  "class": bem("spinner", type),
57
59
  "style": spinnerStyle.value
@@ -1 +1 @@
1
- body{--van-search-padding: 10px var(--van-padding-sm);--van-search-background: var(--van-background-2);--van-search-content-background: var(--van-gray-1);--van-search-input-height: 34px;--van-search-label-padding: 0 5px;--van-search-label-color: var(--van-text-color);--van-search-label-font-size: var(--van-font-size-md);--van-search-left-icon-color: var(--van-gray-6);--van-search-action-padding: 0 var(--van-padding-xs);--van-search-action-text-color: var(--van-text-color);--van-search-action-font-size: var(--van-font-size-md)}.van-search{display:flex;align-items:center;box-sizing:border-box;padding:var(--van-search-padding);background:var(--van-search-background)}.van-search__content{display:flex;flex:1;padding-left:var(--van-padding-sm);background:var(--van-search-content-background);border-radius:var(--van-radius-sm)}.van-search__content--round{border-radius:var(--van-radius-max)}.van-search__label{padding:var(--van-search-label-padding);color:var(--van-search-label-color);font-size:var(--van-search-label-font-size);line-height:var(--van-search-input-height)}.van-search__field{flex:1;padding:5px var(--van-padding-xs) 5px 0;background-color:transparent}.van-search__field .van-field__left-icon{color:var(--van-search-left-icon-color)}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:var(--van-search-action-padding);color:var(--van-search-action-text-color);font-size:var(--van-search-action-font-size);line-height:var(--van-search-input-height);cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:var(--van-active-color)}
1
+ body{--van-search-padding: 10px var(--van-padding-sm);--van-search-background: var(--van-background-2);--van-search-content-background: var(--van-background);--van-search-input-height: 34px;--van-search-label-padding: 0 5px;--van-search-label-color: var(--van-text-color);--van-search-label-font-size: var(--van-font-size-md);--van-search-left-icon-color: var(--van-gray-6);--van-search-action-padding: 0 var(--van-padding-xs);--van-search-action-text-color: var(--van-text-color);--van-search-action-font-size: var(--van-font-size-md)}.van-search{display:flex;align-items:center;box-sizing:border-box;padding:var(--van-search-padding);background:var(--van-search-background)}.van-search__content{display:flex;flex:1;padding-left:var(--van-padding-sm);background:var(--van-search-content-background);border-radius:var(--van-radius-sm)}.van-search__content--round{border-radius:var(--van-radius-max)}.van-search__label{padding:var(--van-search-label-padding);color:var(--van-search-label-color);font-size:var(--van-search-label-font-size);line-height:var(--van-search-input-height)}.van-search__field{flex:1;padding:5px var(--van-padding-xs) 5px 0;background-color:transparent}.van-search__field .van-field__left-icon{color:var(--van-search-left-icon-color)}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:var(--van-search-action-padding);color:var(--van-search-action-text-color);font-size:var(--van-search-action-font-size);line-height:var(--van-search-input-height);cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:var(--van-active-color)}
@@ -1,7 +1,7 @@
1
1
  body {
2
2
  --van-search-padding: 10px var(--van-padding-sm);
3
3
  --van-search-background: var(--van-background-2);
4
- --van-search-content-background: var(--van-gray-1);
4
+ --van-search-content-background: var(--van-background);
5
5
  --van-search-input-height: 34px;
6
6
  --van-search-label-padding: 0 5px;
7
7
  --van-search-label-color: var(--van-text-color);
@@ -1,7 +1,7 @@
1
1
  import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  import { ref, reactive, defineComponent, onBeforeUnmount } from "vue";
3
- import { pick, extend, isPromise, truthProp, getSizeStyle, makeArrayProp, makeStringProp, makeNumericProp } from "../utils";
4
- import { bem, name, toArray, isOversize, filterFiles, isImageFile, readFileContent } from "./utils";
3
+ import { pick, extend, toArray, isPromise, truthProp, getSizeStyle, makeArrayProp, makeStringProp, makeNumericProp } from "../utils";
4
+ import { bem, name, isOversize, filterFiles, isImageFile, readFileContent } from "./utils";
5
5
  import { useCustomFieldValue } from "@vant/use";
6
6
  import { useExpose } from "../composables/use-expose";
7
7
  import { Icon } from "../icon";
@@ -1,7 +1,6 @@
1
1
  import type { UploaderMaxSize, UploaderResultType, UploaderFileListItem } from './types';
2
2
  declare const name: string, bem: (el?: import("../utils").Mods | undefined, mods?: import("../utils").Mods | undefined) => import("../utils").Mods, t: (path: string, ...args: unknown[]) => any;
3
3
  export { name, bem, t };
4
- export declare const toArray: <T>(item: T | T[]) => T[];
5
4
  export declare function readFileContent(file: File, resultType: UploaderResultType): Promise<string | void>;
6
5
  export declare function isOversize(items: UploaderFileListItem | UploaderFileListItem[], maxSize: UploaderMaxSize): boolean;
7
6
  export declare function filterFiles(items: UploaderFileListItem[], maxSize: UploaderMaxSize): {