@chenzy-design/core 0.3.1 → 0.4.0

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 (283) hide show
  1. package/dist/ai-chat-dialogue.d.ts +300 -0
  2. package/dist/ai-chat-dialogue.d.ts.map +1 -0
  3. package/dist/ai-chat-dialogue.js +699 -0
  4. package/dist/ai-chat-dialogue.js.map +1 -0
  5. package/dist/ai-chat-dialogue.test.d.ts +2 -0
  6. package/dist/ai-chat-dialogue.test.d.ts.map +1 -0
  7. package/dist/ai-chat-dialogue.test.js +338 -0
  8. package/dist/ai-chat-dialogue.test.js.map +1 -0
  9. package/dist/ai-chat-input.d.ts +191 -0
  10. package/dist/ai-chat-input.d.ts.map +1 -0
  11. package/dist/ai-chat-input.js +274 -0
  12. package/dist/ai-chat-input.js.map +1 -0
  13. package/dist/ai-chat-input.test.d.ts +2 -0
  14. package/dist/ai-chat-input.test.d.ts.map +1 -0
  15. package/dist/ai-chat-input.test.js +339 -0
  16. package/dist/ai-chat-input.test.js.map +1 -0
  17. package/dist/audio-player.d.ts +154 -0
  18. package/dist/audio-player.d.ts.map +1 -0
  19. package/dist/audio-player.js +254 -0
  20. package/dist/audio-player.js.map +1 -0
  21. package/dist/audio-player.test.d.ts +2 -0
  22. package/dist/audio-player.test.d.ts.map +1 -0
  23. package/dist/audio-player.test.js +275 -0
  24. package/dist/audio-player.test.js.map +1 -0
  25. package/dist/back-top.d.ts +4 -1
  26. package/dist/back-top.d.ts.map +1 -1
  27. package/dist/back-top.js +5 -2
  28. package/dist/back-top.js.map +1 -1
  29. package/dist/back-top.test.js +3 -2
  30. package/dist/back-top.test.js.map +1 -1
  31. package/dist/calendar.d.ts +132 -44
  32. package/dist/calendar.d.ts.map +1 -1
  33. package/dist/calendar.js +413 -70
  34. package/dist/calendar.js.map +1 -1
  35. package/dist/calendar.test.js +160 -76
  36. package/dist/calendar.test.js.map +1 -1
  37. package/dist/chat.d.ts +172 -0
  38. package/dist/chat.d.ts.map +1 -0
  39. package/dist/chat.js +210 -0
  40. package/dist/chat.js.map +1 -0
  41. package/dist/chat.test.d.ts +2 -0
  42. package/dist/chat.test.d.ts.map +1 -0
  43. package/dist/chat.test.js +181 -0
  44. package/dist/chat.test.js.map +1 -0
  45. package/dist/code-highlight.d.ts +30 -0
  46. package/dist/code-highlight.d.ts.map +1 -0
  47. package/dist/code-highlight.js +37 -0
  48. package/dist/code-highlight.js.map +1 -0
  49. package/dist/code-highlight.test.d.ts +2 -0
  50. package/dist/code-highlight.test.d.ts.map +1 -0
  51. package/dist/code-highlight.test.js +36 -0
  52. package/dist/code-highlight.test.js.map +1 -0
  53. package/dist/collapsible.d.ts +41 -0
  54. package/dist/collapsible.d.ts.map +1 -0
  55. package/dist/collapsible.js +33 -0
  56. package/dist/collapsible.js.map +1 -0
  57. package/dist/collapsible.test.d.ts +2 -0
  58. package/dist/collapsible.test.d.ts.map +1 -0
  59. package/dist/collapsible.test.js +57 -0
  60. package/dist/collapsible.test.js.map +1 -0
  61. package/dist/color-value.d.ts +60 -0
  62. package/dist/color-value.d.ts.map +1 -0
  63. package/dist/color-value.js +165 -0
  64. package/dist/color-value.js.map +1 -0
  65. package/dist/color-value.test.d.ts +2 -0
  66. package/dist/color-value.test.d.ts.map +1 -0
  67. package/dist/color-value.test.js +104 -0
  68. package/dist/color-value.test.js.map +1 -0
  69. package/dist/config-provider.d.ts +76 -37
  70. package/dist/config-provider.d.ts.map +1 -1
  71. package/dist/config-provider.js +107 -32
  72. package/dist/config-provider.js.map +1 -1
  73. package/dist/config-provider.test.js +123 -60
  74. package/dist/config-provider.test.js.map +1 -1
  75. package/dist/cropper.d.ts +164 -0
  76. package/dist/cropper.d.ts.map +1 -0
  77. package/dist/cropper.js +841 -0
  78. package/dist/cropper.js.map +1 -0
  79. package/dist/cropper.test.d.ts +2 -0
  80. package/dist/cropper.test.d.ts.map +1 -0
  81. package/dist/cropper.test.js +259 -0
  82. package/dist/cropper.test.js.map +1 -0
  83. package/dist/drag-move.d.ts +119 -0
  84. package/dist/drag-move.d.ts.map +1 -0
  85. package/dist/drag-move.js +237 -0
  86. package/dist/drag-move.js.map +1 -0
  87. package/dist/drag-move.test.d.ts +2 -0
  88. package/dist/drag-move.test.d.ts.map +1 -0
  89. package/dist/drag-move.test.js +304 -0
  90. package/dist/drag-move.test.js.map +1 -0
  91. package/dist/editable.d.ts +24 -4
  92. package/dist/editable.d.ts.map +1 -1
  93. package/dist/editable.js +18 -0
  94. package/dist/editable.js.map +1 -1
  95. package/dist/editable.test.js +55 -2
  96. package/dist/editable.test.js.map +1 -1
  97. package/dist/ellipsis.d.ts +13 -0
  98. package/dist/ellipsis.d.ts.map +1 -1
  99. package/dist/ellipsis.js +36 -0
  100. package/dist/ellipsis.js.map +1 -1
  101. package/dist/ellipsis.test.js +37 -1
  102. package/dist/ellipsis.test.js.map +1 -1
  103. package/dist/form-path.d.ts +19 -0
  104. package/dist/form-path.d.ts.map +1 -0
  105. package/dist/form-path.js +97 -0
  106. package/dist/form-path.js.map +1 -0
  107. package/dist/form-path.test.d.ts +2 -0
  108. package/dist/form-path.test.d.ts.map +1 -0
  109. package/dist/form-path.test.js +57 -0
  110. package/dist/form-path.test.js.map +1 -0
  111. package/dist/form-validate.d.ts +13 -0
  112. package/dist/form-validate.d.ts.map +1 -0
  113. package/dist/form-validate.js +204 -0
  114. package/dist/form-validate.js.map +1 -0
  115. package/dist/form.d.ts +91 -18
  116. package/dist/form.d.ts.map +1 -1
  117. package/dist/form.js +170 -115
  118. package/dist/form.js.map +1 -1
  119. package/dist/form.test.js +349 -76
  120. package/dist/form.test.js.map +1 -1
  121. package/dist/highlight.d.ts +42 -32
  122. package/dist/highlight.d.ts.map +1 -1
  123. package/dist/highlight.js +67 -41
  124. package/dist/highlight.js.map +1 -1
  125. package/dist/highlight.test.js +73 -32
  126. package/dist/highlight.test.js.map +1 -1
  127. package/dist/hotkeys.d.ts +151 -0
  128. package/dist/hotkeys.d.ts.map +1 -0
  129. package/dist/hotkeys.js +188 -0
  130. package/dist/hotkeys.js.map +1 -0
  131. package/dist/hotkeys.test.d.ts +2 -0
  132. package/dist/hotkeys.test.d.ts.map +1 -0
  133. package/dist/hotkeys.test.js +170 -0
  134. package/dist/hotkeys.test.js.map +1 -0
  135. package/dist/index.d.ts +33 -17
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +32 -13
  138. package/dist/index.js.map +1 -1
  139. package/dist/input.d.ts +34 -0
  140. package/dist/input.d.ts.map +1 -0
  141. package/dist/input.js +54 -0
  142. package/dist/input.js.map +1 -0
  143. package/dist/input.test.d.ts +2 -0
  144. package/dist/input.test.d.ts.map +1 -0
  145. package/dist/input.test.js +56 -0
  146. package/dist/input.test.js.map +1 -0
  147. package/dist/markdown-render.d.ts +49 -0
  148. package/dist/markdown-render.d.ts.map +1 -0
  149. package/dist/markdown-render.js +61 -0
  150. package/dist/markdown-render.js.map +1 -0
  151. package/dist/markdown-render.test.d.ts +2 -0
  152. package/dist/markdown-render.test.d.ts.map +1 -0
  153. package/dist/markdown-render.test.js +106 -0
  154. package/dist/markdown-render.test.js.map +1 -0
  155. package/dist/notification.d.ts +40 -31
  156. package/dist/notification.d.ts.map +1 -1
  157. package/dist/notification.js +86 -70
  158. package/dist/notification.js.map +1 -1
  159. package/dist/notification.test.js +62 -39
  160. package/dist/notification.test.js.map +1 -1
  161. package/dist/numeral.d.ts +32 -0
  162. package/dist/numeral.d.ts.map +1 -0
  163. package/dist/numeral.js +67 -0
  164. package/dist/numeral.js.map +1 -0
  165. package/dist/numeral.test.d.ts +2 -0
  166. package/dist/numeral.test.d.ts.map +1 -0
  167. package/dist/numeral.test.js +59 -0
  168. package/dist/numeral.test.js.map +1 -0
  169. package/dist/overflow-list.d.ts +9 -40
  170. package/dist/overflow-list.d.ts.map +1 -1
  171. package/dist/overflow-list.js +9 -70
  172. package/dist/overflow-list.js.map +1 -1
  173. package/dist/overflow-list.test.js +1 -122
  174. package/dist/overflow-list.test.js.map +1 -1
  175. package/dist/pagination.d.ts +17 -0
  176. package/dist/pagination.d.ts.map +1 -1
  177. package/dist/pagination.js +48 -0
  178. package/dist/pagination.js.map +1 -1
  179. package/dist/pagination.test.js +40 -1
  180. package/dist/pagination.test.js.map +1 -1
  181. package/dist/pincode.d.ts +79 -0
  182. package/dist/pincode.d.ts.map +1 -0
  183. package/dist/pincode.js +119 -0
  184. package/dist/pincode.js.map +1 -0
  185. package/dist/pincode.test.d.ts +2 -0
  186. package/dist/pincode.test.d.ts.map +1 -0
  187. package/dist/pincode.test.js +151 -0
  188. package/dist/pincode.test.js.map +1 -0
  189. package/dist/progress.d.ts +32 -30
  190. package/dist/progress.d.ts.map +1 -1
  191. package/dist/progress.js +257 -64
  192. package/dist/progress.js.map +1 -1
  193. package/dist/progress.test.js +50 -47
  194. package/dist/progress.test.js.map +1 -1
  195. package/dist/resizable.d.ts +200 -0
  196. package/dist/resizable.d.ts.map +1 -0
  197. package/dist/resizable.js +329 -0
  198. package/dist/resizable.js.map +1 -0
  199. package/dist/resizable.test.d.ts +2 -0
  200. package/dist/resizable.test.d.ts.map +1 -0
  201. package/dist/resizable.test.js +302 -0
  202. package/dist/resizable.test.js.map +1 -0
  203. package/dist/scroll-list.d.ts +69 -62
  204. package/dist/scroll-list.d.ts.map +1 -1
  205. package/dist/scroll-list.js +103 -144
  206. package/dist/scroll-list.js.map +1 -1
  207. package/dist/scroll-list.test.js +100 -110
  208. package/dist/scroll-list.test.js.map +1 -1
  209. package/dist/sidebar.d.ts +46 -0
  210. package/dist/sidebar.d.ts.map +1 -0
  211. package/dist/sidebar.js +65 -0
  212. package/dist/sidebar.js.map +1 -0
  213. package/dist/sidebar.test.d.ts +2 -0
  214. package/dist/sidebar.test.d.ts.map +1 -0
  215. package/dist/sidebar.test.js +88 -0
  216. package/dist/sidebar.test.js.map +1 -0
  217. package/dist/spin.d.ts +5 -5
  218. package/dist/spin.d.ts.map +1 -1
  219. package/dist/spin.js +13 -39
  220. package/dist/spin.js.map +1 -1
  221. package/dist/spin.test.js +2 -26
  222. package/dist/spin.test.js.map +1 -1
  223. package/dist/toast.d.ts +33 -30
  224. package/dist/toast.d.ts.map +1 -1
  225. package/dist/toast.js +77 -72
  226. package/dist/toast.js.map +1 -1
  227. package/dist/toast.test.js +63 -37
  228. package/dist/toast.test.js.map +1 -1
  229. package/dist/tree.d.ts +22 -5
  230. package/dist/tree.d.ts.map +1 -1
  231. package/dist/tree.js +61 -9
  232. package/dist/tree.js.map +1 -1
  233. package/dist/tree.test.js +72 -1
  234. package/dist/tree.test.js.map +1 -1
  235. package/dist/user-guide.d.ts +73 -0
  236. package/dist/user-guide.d.ts.map +1 -0
  237. package/dist/user-guide.js +95 -0
  238. package/dist/user-guide.js.map +1 -0
  239. package/dist/user-guide.test.d.ts +2 -0
  240. package/dist/user-guide.test.d.ts.map +1 -0
  241. package/dist/user-guide.test.js +109 -0
  242. package/dist/user-guide.test.js.map +1 -0
  243. package/dist/video-player.d.ts +196 -0
  244. package/dist/video-player.d.ts.map +1 -0
  245. package/dist/video-player.js +461 -0
  246. package/dist/video-player.js.map +1 -0
  247. package/dist/video-player.test.d.ts +2 -0
  248. package/dist/video-player.test.d.ts.map +1 -0
  249. package/dist/video-player.test.js +435 -0
  250. package/dist/video-player.test.js.map +1 -0
  251. package/package.json +17 -1
  252. package/dist/banner.d.ts +0 -19
  253. package/dist/banner.d.ts.map +0 -1
  254. package/dist/banner.js +0 -20
  255. package/dist/banner.js.map +0 -1
  256. package/dist/banner.test.d.ts +0 -2
  257. package/dist/banner.test.d.ts.map +0 -1
  258. package/dist/banner.test.js +0 -29
  259. package/dist/banner.test.js.map +0 -1
  260. package/dist/breakpoints.d.ts +0 -30
  261. package/dist/breakpoints.d.ts.map +0 -1
  262. package/dist/breakpoints.js +0 -45
  263. package/dist/breakpoints.js.map +0 -1
  264. package/dist/breakpoints.test.d.ts +0 -2
  265. package/dist/breakpoints.test.d.ts.map +0 -1
  266. package/dist/breakpoints.test.js +0 -46
  267. package/dist/breakpoints.test.js.map +0 -1
  268. package/dist/lottie-icon.d.ts +0 -88
  269. package/dist/lottie-icon.d.ts.map +0 -1
  270. package/dist/lottie-icon.js +0 -84
  271. package/dist/lottie-icon.js.map +0 -1
  272. package/dist/lottie-icon.test.d.ts +0 -2
  273. package/dist/lottie-icon.test.d.ts.map +0 -1
  274. package/dist/lottie-icon.test.js +0 -88
  275. package/dist/lottie-icon.test.js.map +0 -1
  276. package/dist/sider.d.ts +0 -26
  277. package/dist/sider.d.ts.map +0 -1
  278. package/dist/sider.js +0 -55
  279. package/dist/sider.js.map +0 -1
  280. package/dist/sider.test.d.ts +0 -2
  281. package/dist/sider.test.d.ts.map +0 -1
  282. package/dist/sider.test.js +0 -29
  283. package/dist/sider.test.js.map +0 -1
@@ -0,0 +1,204 @@
1
+ /**
2
+ * form-validate — rule engine bridged onto `async-validator` (same library Semi
3
+ * uses). Built-in rules are converted to an async-validator schema and run; the
4
+ * `warningOnly` superset (AntD-style soft warnings, absent from async-validator)
5
+ * is layered on top by running the warning rules through the same engine but
6
+ * routing their failures to the warning channel instead of the error channel.
7
+ *
8
+ * i18n bridge: async-validator's default messages use `%s`/fullField templates.
9
+ * To keep our MessageDescriptor + resolveMessage i18n contract intact, each rule
10
+ * carries a precomputed `message` string (from `resolveMessage`) so the engine
11
+ * emits exactly our localized text.
12
+ */
13
+ import Schema from 'async-validator';
14
+ /**
15
+ * Compute the display message for a built-in rule failure (before async-validator
16
+ * runs), honoring an explicit `rule.message` override, else the i18n descriptor.
17
+ */
18
+ function builtinMessage(rule, label, resolve) {
19
+ if (rule.message !== undefined)
20
+ return rule.message;
21
+ // pick the descriptor matching the (single) built-in check this rule expresses.
22
+ if (rule.required)
23
+ return resolve({ key: 'Form.required', params: { label } });
24
+ if (rule.type === 'email' || rule.type === 'url')
25
+ return resolve({ key: 'Form.typeError', params: { label } });
26
+ if (rule.type === 'number' || rule.type === 'integer' || rule.type === 'float')
27
+ return resolve({ key: 'Form.typeError', params: { label } });
28
+ if (rule.type !== undefined)
29
+ return resolve({ key: 'Form.typeError', params: { label } });
30
+ if (rule.minLength !== undefined)
31
+ return resolve({ key: 'Form.minLength', params: { min: rule.minLength } });
32
+ if (rule.maxLength !== undefined)
33
+ return resolve({ key: 'Form.maxLength', params: { max: rule.maxLength } });
34
+ if (rule.min !== undefined)
35
+ return resolve({ key: 'Form.min', params: { min: rule.min } });
36
+ if (rule.max !== undefined)
37
+ return resolve({ key: 'Form.max', params: { max: rule.max } });
38
+ if (rule.pattern)
39
+ return resolve({ key: 'Form.pattern', params: { label } });
40
+ return undefined;
41
+ }
42
+ /** async-validator `type` alias: our `number` maps to its numeric semantics. */
43
+ function avType(t) {
44
+ // async-validator uses `number`/`integer`/`float`/`array`/`enum`/... verbatim.
45
+ return t;
46
+ }
47
+ /**
48
+ * Convert one of our Rules to an async-validator RuleItem. `value`/`values` are
49
+ * threaded so a custom `validator(value, values)` (our signature) can be adapted
50
+ * to async-validator's `validator(rule, value, callback)`.
51
+ *
52
+ * Length semantics: our `minLength`/`maxLength` are string-length checks; we
53
+ * emulate them with a `validator` (async-validator's `min`/`max` on a string
54
+ * measure string length too, but only paired with an explicit `type:'string'` —
55
+ * a custom validator keeps behavior identical to the previous hand-rolled engine).
56
+ */
57
+ function toAvRule(rule, label, values, resolve) {
58
+ const message = builtinMessage(rule, label, resolve);
59
+ const item = {};
60
+ if (message !== undefined)
61
+ item.message = message;
62
+ // custom validator: adapt (value, values) → callback. A truthy string return
63
+ // is the (overriding) error message; falsy/undefined means pass.
64
+ if (rule.validator) {
65
+ const fn = rule.validator;
66
+ item.validator = (_r, value, callback) => {
67
+ try {
68
+ const res = fn(value, values);
69
+ if (res instanceof Promise) {
70
+ res
71
+ .then((m) => callback(m ? String(m) : undefined))
72
+ .catch((e) => callback(e instanceof Error ? e.message : String(e)));
73
+ return;
74
+ }
75
+ callback(res ? String(res) : undefined);
76
+ }
77
+ catch (e) {
78
+ callback(e instanceof Error ? e.message : String(e));
79
+ }
80
+ };
81
+ return item;
82
+ }
83
+ if (rule.required)
84
+ item.required = true;
85
+ // string-length checks (our supersets of async-validator len/min/max)
86
+ if (rule.minLength !== undefined || rule.maxLength !== undefined) {
87
+ const min = rule.minLength;
88
+ const max = rule.maxLength;
89
+ item.validator = (_r, value, callback) => {
90
+ // empty values are skipped by required/other rules; length rules only fire
91
+ // on non-empty input (mirrors the previous engine's `isEmpty` short-circuit).
92
+ if (value === undefined || value === null || value === '')
93
+ return callback();
94
+ const len = String(value).length;
95
+ if (min !== undefined && len < min)
96
+ return callback(message);
97
+ if (max !== undefined && len > max)
98
+ return callback(message);
99
+ callback();
100
+ };
101
+ return item;
102
+ }
103
+ // email/url/number → our own regexes/coercion (keeps messages + edge cases
104
+ // identical to the prior engine, avoids async-validator's stricter url/email).
105
+ if (rule.type === 'email' || rule.type === 'url' || rule.type === 'number') {
106
+ const kind = rule.type;
107
+ item.validator = (_r, value, callback) => {
108
+ if (value === undefined || value === null || value === '')
109
+ return callback();
110
+ const s = String(value);
111
+ const ok = kind === 'email'
112
+ ? /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(s)
113
+ : kind === 'url'
114
+ ? /^https?:\/\/[^\s]+$/.test(s)
115
+ : !Number.isNaN(Number(s));
116
+ callback(ok ? undefined : message);
117
+ };
118
+ return item;
119
+ }
120
+ // remaining async-validator-native `type` (array/enum/integer/float/object/
121
+ // boolean/date/hex): delegate straight to async-validator's built-in type check.
122
+ if (rule.type !== undefined) {
123
+ const t = avType(rule.type);
124
+ if (t !== undefined)
125
+ item.type = t;
126
+ }
127
+ // numeric range (async-validator `min`/`max` on numbers) — emulate to keep the
128
+ // exact message + coercion the prior engine used.
129
+ if (rule.min !== undefined || rule.max !== undefined) {
130
+ const min = rule.min;
131
+ const max = rule.max;
132
+ item.validator = (_r, value, callback) => {
133
+ if (value === undefined || value === null || value === '')
134
+ return callback();
135
+ const n = Number(value);
136
+ if (min !== undefined && n < min)
137
+ return callback(message);
138
+ if (max !== undefined && n > max)
139
+ return callback(message);
140
+ callback();
141
+ };
142
+ return item;
143
+ }
144
+ // pattern
145
+ if (rule.pattern) {
146
+ const re = rule.pattern;
147
+ item.validator = (_r, value, callback) => {
148
+ if (value === undefined || value === null || value === '')
149
+ return callback();
150
+ callback(re.test(String(value)) ? undefined : message);
151
+ };
152
+ return item;
153
+ }
154
+ // async-validator-native extras that pass straight through
155
+ if (rule.len !== undefined)
156
+ item.len = rule.len;
157
+ if (rule.whitespace !== undefined)
158
+ item.whitespace = rule.whitespace;
159
+ if (rule.enum !== undefined)
160
+ item.enum = rule.enum;
161
+ return item;
162
+ }
163
+ /**
164
+ * Run one field's rules through async-validator (built-ins + custom), splitting
165
+ * `warningOnly` failures into the warning channel. Returns the first blocking
166
+ * error and the first warning, honoring `stopValidateWithError`.
167
+ */
168
+ export async function runFieldRules(field, value, values, rules, label, resolve, stopWithError) {
169
+ const blocking = rules.filter((r) => !r.warningOnly);
170
+ const warns = rules.filter((r) => r.warningOnly);
171
+ const error = await runSchema(field, value, values, blocking, label, resolve, stopWithError);
172
+ // warnings always accumulate independently (never affect blocking validity).
173
+ const warning = await runSchema(field, value, values, warns, label, resolve, true);
174
+ const out = {};
175
+ if (error !== undefined)
176
+ out.error = error;
177
+ if (warning !== undefined)
178
+ out.warning = warning;
179
+ return out;
180
+ }
181
+ async function runSchema(field, value, values, rules, label, resolve, first) {
182
+ if (rules.length === 0)
183
+ return undefined;
184
+ const descriptor = {
185
+ [field]: rules.map((r) => toAvRule(r, label, values, resolve)),
186
+ };
187
+ const schema = new Schema(descriptor);
188
+ try {
189
+ // `first: true` stops at the first failing rule (our stopValidateWithError).
190
+ await schema.validate({ [field]: value }, { first, suppressWarning: true });
191
+ return undefined;
192
+ }
193
+ catch (err) {
194
+ const e = err;
195
+ if (e.errors && e.errors.length > 0) {
196
+ // first blocking error message (empty string preserved as a real failure).
197
+ const m = e.errors[0]?.message;
198
+ return m === undefined ? '' : String(m);
199
+ }
200
+ // schema/grammar error → surface its message
201
+ return err instanceof Error ? err.message : String(err);
202
+ }
203
+ }
204
+ //# sourceMappingURL=form-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-validate.js","sourceRoot":"","sources":["../src/form-validate.ts"],"names":[],"mappings":"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"}
package/dist/form.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  export type FormValues = Record<string, unknown>;
2
2
  /** Validation message: a string, an i18n-key descriptor, or false/undefined for "no error". */
3
3
  export type ValidateResult = string | undefined;
4
+ /**
5
+ * async-validator `type` union (a superset of the old email/url/number). Any
6
+ * value here routes through async-validator; email/url/number keep our own
7
+ * regex/coercion + i18n messages for backward compatibility.
8
+ */
9
+ export type RuleType = 'string' | 'number' | 'boolean' | 'method' | 'regexp' | 'integer' | 'float' | 'array' | 'object' | 'enum' | 'date' | 'url' | 'hex' | 'email';
4
10
  export interface Rule {
5
11
  required?: boolean;
6
12
  /** numeric / string-length / value-range checks */
@@ -9,7 +15,17 @@ export interface Rule {
9
15
  minLength?: number;
10
16
  maxLength?: number;
11
17
  pattern?: RegExp;
12
- type?: 'email' | 'url' | 'number';
18
+ /**
19
+ * value type check, delegated to async-validator (Semi-aligned). Supersets the
20
+ * old email/url/number: `array`/`enum`/`integer`/`float`/`object`/... now work.
21
+ */
22
+ type?: RuleType;
23
+ /** exact length check (async-validator `len`; strings/arrays). */
24
+ len?: number;
25
+ /** reject whitespace-only strings (async-validator `whitespace`). */
26
+ whitespace?: boolean;
27
+ /** allowed values for `type: 'enum'` (async-validator `enum`). */
28
+ enum?: Array<string | number | boolean | null | undefined>;
13
29
  /** sync or async custom validator; return an error message or undefined */
14
30
  validator?: (value: unknown, values: FormValues) => ValidateResult | Promise<ValidateResult>;
15
31
  /** override message for the built-in rule on this entry */
@@ -45,7 +61,7 @@ export interface FieldConfig {
45
61
  trigger?: ValidateTrigger | ValidateTrigger[];
46
62
  /**
47
63
  * pure transform applied to the field's value when collecting values for
48
- * `getFieldsValue`/`submit` (spec §4.2 L88). Does NOT mutate state — the live
64
+ * `getValues`/`submitForm` (spec §4.2 L88). Does NOT mutate state — the live
49
65
  * `values` keep the raw value; only the collected payload is transformed.
50
66
  */
51
67
  transform?: (value: unknown, values: FormValues) => unknown;
@@ -90,38 +106,95 @@ export interface FormOptions {
90
106
  * from the collected `values` payload.
91
107
  */
92
108
  allowEmpty?: boolean;
109
+ /**
110
+ * Form-level custom validator (Semi `validator`, recommended). Called on
111
+ * submit / `validate()`. Receives all collected values; returns an errors map
112
+ * ({ [field]: message }) — an empty map (or empty return) means valid.
113
+ * May be sync or async (return a Promise). When set, per-field rules/validators
114
+ * are NOT run on submit/validate (Semi semantics: form-level validator wins).
115
+ */
116
+ validator?: (values: FormValues) => FieldErrors | Promise<FieldErrors> | void | Promise<void>;
117
+ /** deprecated alias of `validator`, kept for compatibility (Semi `validateFields`). */
118
+ validateFields?: (values: FormValues) => FieldErrors | Promise<FieldErrors> | void | Promise<void>;
119
+ }
120
+ /** options for `formApi.validate` (Semi validate options, v2.94.0+). */
121
+ export interface ValidateOptions {
122
+ /** limit validation to these fields; omit to validate all registered fields. */
123
+ fields?: string[];
124
+ /** compute the result without mutating form state (no UI error, no touched, no emit). */
125
+ silent?: boolean;
93
126
  }
94
127
  export interface FormApi {
95
- getState(): FormState;
128
+ /** the current form state snapshot (Semi getFormState). */
129
+ getFormState(): FormState;
96
130
  subscribe(listener: (state: FormState) => void): () => void;
97
131
  registerField(name: string, config?: FieldConfig): () => void;
98
132
  /**
99
133
  * resolved validation triggers for a field: its own `trigger` override, else
100
134
  * the form default. Always a normalized array (spec §4 L65/L84). The render
101
- * layer uses this to decide which DOM events to wire.
135
+ * layer uses this to decide which DOM events to wire. Headless superset —
136
+ * Semi has no equivalent; kept un-renamed.
102
137
  */
103
138
  getFieldTrigger(name: string): ValidateTrigger[];
104
- getFieldValue(name: string): unknown;
105
- setFieldValue(name: string, value: unknown, opts?: {
139
+ /**
140
+ * read a field's value, or (when `name` is omitted) a shallow snapshot of all
141
+ * values (Semi getValue(field?)).
142
+ */
143
+ getValue(name?: string): unknown;
144
+ setValue(name: string, value: unknown, opts?: {
106
145
  validate?: boolean;
107
146
  }): void;
108
- setFieldsValue(values: FormValues): void;
109
- setFieldTouched(name: string, touched?: boolean): void;
110
- getFieldError(name: string): string | undefined;
111
- /** the field's non-blocking warning (from a `warningOnly` rule), if any */
147
+ /**
148
+ * batch-write values. Default merges into existing values; `config.isOverride`
149
+ * replaces the whole values object (Semi setValues(values, {isOverride})).
150
+ */
151
+ setValues(values: FormValues, config?: {
152
+ isOverride?: boolean;
153
+ }): void;
154
+ setTouched(name: string, touched?: boolean): void;
155
+ /** read a field's touched state (Semi getTouched). */
156
+ getTouched(name: string): boolean;
157
+ /** command-imperatively set a field's error (e.g. backend validation) (Semi setError). */
158
+ setError(name: string, error: string | undefined): void;
159
+ /**
160
+ * read a field's error, or (when `name` is omitted) the whole errors map
161
+ * (Semi getError(field?)).
162
+ */
163
+ getError(name?: string): string | undefined | FieldErrors;
164
+ /** the field's non-blocking warning (from a `warningOnly` rule), if any. Headless superset. */
112
165
  getFieldWarning(name: string): string | undefined;
113
- /** validate one field; resolves to its (blocking) error (or undefined) */
166
+ /** whether a field is currently registered (Semi getFieldExist). */
167
+ getFieldExist(name: string): boolean;
168
+ /**
169
+ * a field's initial value, or (when `name` is omitted) a snapshot of all
170
+ * initial values (Semi getInitValue(field?)).
171
+ */
172
+ getInitValue(name?: string): unknown;
173
+ /** snapshot of all initial values (Semi getInitValues). */
174
+ getInitValues(): FormValues;
175
+ /** validate one field; resolves to its (blocking) error (or undefined). Headless superset. */
114
176
  validateField(name: string): Promise<string | undefined>;
115
- /** validate all (or given) fields; resolves to true when valid */
116
- validate(names?: string[]): Promise<boolean>;
117
- resetFields(): void;
177
+ /**
178
+ * validate all (or given) fields; resolves to true when valid.
179
+ * - `validate()` / `validate(['a','b'])`: validate all / named fields, surfacing errors in the UI.
180
+ * - `validate({ silent: true })` / `validate({ fields, silent: true })`: silent validation —
181
+ * compute the result WITHOUT touching form state (no error display, no `touched`, no re-render).
182
+ * Useful for "should I fire the request?" checks (Semi `validate({ silent })`, v2.94.0+).
183
+ */
184
+ validate(namesOrOptions?: string[] | ValidateOptions): Promise<boolean>;
185
+ /**
186
+ * reset fields to their initial values and clear errors/warnings/touched.
187
+ * With `fields` given, only those fields are reset; otherwise the whole form
188
+ * (Semi reset(fields?)).
189
+ */
190
+ reset(fields?: string[]): void;
118
191
  /**
119
192
  * collected values honoring `allowEmpty` (spec §4 L70): with `allowEmpty:false`
120
- * keys whose value is empty (`undefined`/`null`/`''`) are dropped.
193
+ * keys whose value is empty (`undefined`/`null`/`''`) are dropped (Semi getValues).
121
194
  */
122
- getFieldsValue(): FormValues;
123
- /** run validation then resolve { valid, values, errors } */
124
- submit(): Promise<{
195
+ getValues(): FormValues;
196
+ /** run validation then resolve { valid, values, errors } (Semi submitForm). */
197
+ submitForm(): Promise<{
125
198
  valid: boolean;
126
199
  values: FormValues;
127
200
  errors: FieldErrors;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}