@rainbow-oh/yee-c 0.4.4 → 0.5.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 (272) hide show
  1. package/dist/cjs/Button/button.d.ts +1 -1
  2. package/dist/cjs/CSV/download.d.ts +1 -1
  3. package/dist/cjs/Carousel/carousel.d.ts +2 -2
  4. package/dist/cjs/Carousel/carousel.js +9 -2
  5. package/dist/cjs/Carousel/interface.d.ts +5 -0
  6. package/dist/cjs/Dialog/demo/basic.js +1 -1
  7. package/dist/cjs/Dialog/dialog.js +1 -1
  8. package/dist/cjs/Drawer/style/index.less +4 -0
  9. package/dist/cjs/Field/demo/validation.js +23 -3
  10. package/dist/cjs/Field/field.js +1 -1
  11. package/dist/cjs/FloatButton/float-button.d.ts +1 -1
  12. package/dist/cjs/Form/Field.js +1 -4
  13. package/dist/cjs/Form/Form.js +1 -1
  14. package/dist/cjs/Form/Group.js +36 -14
  15. package/dist/cjs/Form/List.js +23 -3
  16. package/dist/cjs/Form/demo/async-validate.d.ts +3 -0
  17. package/dist/cjs/Form/demo/async-validate.js +108 -0
  18. package/dist/cjs/Form/demo/basic.js +2 -2
  19. package/dist/cjs/Form/demo/virtual.js +1 -1
  20. package/dist/cjs/Form/form-store.d.ts +4 -4
  21. package/dist/cjs/Form/form-store.js +55 -25
  22. package/dist/cjs/Form/interface.d.ts +10 -7
  23. package/dist/cjs/Form/style/index.less +15 -0
  24. package/dist/cjs/Form/utils/validate.d.ts +23 -2
  25. package/dist/cjs/Form/utils/validate.js +59 -10
  26. package/dist/cjs/Input/style/index.less +0 -17
  27. package/dist/cjs/InputNumber/style/index.less +0 -29
  28. package/dist/cjs/PickerPanel/interface.d.ts +44 -2
  29. package/dist/cjs/PickerPanel/panels/DatePanel/DateBody.d.ts +2 -1
  30. package/dist/cjs/PickerPanel/panels/DatePanel/DateHeader.d.ts +2 -1
  31. package/dist/cjs/PickerPanel/panels/DatePanel/DateHeader.js +1 -1
  32. package/dist/cjs/PickerPanel/panels/DatePanel/index.d.ts +2 -1
  33. package/dist/cjs/PickerPanel/panels/DateTimePanel/index.d.ts +7 -1
  34. package/dist/cjs/PickerPanel/panels/DateTimePanel/index.js +18 -4
  35. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeBody.d.ts +2 -1
  36. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeBody.js +1 -1
  37. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeHeader.d.ts +2 -1
  38. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeHeader.js +1 -1
  39. package/dist/cjs/PickerPanel/panels/DecadePanel/index.d.ts +2 -1
  40. package/dist/cjs/PickerPanel/panels/DecadePanel/index.js +1 -1
  41. package/dist/cjs/PickerPanel/panels/Header.d.ts +13 -1
  42. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthBody.d.ts +2 -1
  43. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthHeader.d.ts +2 -1
  44. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthHeader.js +1 -1
  45. package/dist/cjs/PickerPanel/panels/MonthPanel/index.d.ts +2 -1
  46. package/dist/cjs/PickerPanel/panels/MonthPanel/index.js +1 -1
  47. package/dist/cjs/PickerPanel/panels/PanelBody.d.ts +21 -1
  48. package/dist/cjs/PickerPanel/panels/PanelBody.js +3 -3
  49. package/dist/cjs/PickerPanel/panels/QuarterPanel/QuarterBody.d.ts +2 -1
  50. package/dist/cjs/PickerPanel/panels/QuarterPanel/QuarterHeader.d.ts +2 -1
  51. package/dist/cjs/PickerPanel/panels/QuarterPanel/index.d.ts +2 -1
  52. package/dist/cjs/PickerPanel/panels/RangePanel/index.d.ts +2 -1
  53. package/dist/cjs/PickerPanel/panels/RangePanel/index.js +2 -2
  54. package/dist/cjs/PickerPanel/panels/RangePanel/interface.d.ts +5 -5
  55. package/dist/cjs/PickerPanel/panels/TimePanel/TimeBody.d.ts +17 -1
  56. package/dist/cjs/PickerPanel/panels/TimePanel/TimeCell.d.ts +7 -1
  57. package/dist/cjs/PickerPanel/panels/TimePanel/TimeCell.js +1 -1
  58. package/dist/cjs/PickerPanel/panels/TimePanel/TimeColumn.d.ts +14 -1
  59. package/dist/cjs/PickerPanel/panels/TimePanel/TimeColumn.js +1 -1
  60. package/dist/cjs/PickerPanel/panels/TimePanel/TimeHeader.d.ts +4 -1
  61. package/dist/cjs/PickerPanel/panels/TimePanel/index.d.ts +9 -1
  62. package/dist/cjs/PickerPanel/panels/WeekPanel/WeekBody.d.ts +2 -1
  63. package/dist/cjs/PickerPanel/panels/WeekPanel/WeekHeader.d.ts +2 -1
  64. package/dist/cjs/PickerPanel/panels/WeekPanel/index.d.ts +2 -1
  65. package/dist/cjs/PickerPanel/panels/YearPanel/YearBody.d.ts +2 -1
  66. package/dist/cjs/PickerPanel/panels/YearPanel/YearBody.js +2 -2
  67. package/dist/cjs/PickerPanel/panels/YearPanel/YearHeader.d.ts +2 -1
  68. package/dist/cjs/PickerPanel/panels/YearPanel/YearHeader.js +7 -1
  69. package/dist/cjs/PickerPanel/panels/YearPanel/index.d.ts +2 -1
  70. package/dist/cjs/PickerPanel/panels/YearPanel/index.js +1 -1
  71. package/dist/cjs/PickerPanel/utils/pickerUtils.d.ts +7 -7
  72. package/dist/cjs/PickerPanel/utils/pickerUtils.js +2 -2
  73. package/dist/cjs/Select/demo/basic.js +1 -1
  74. package/dist/cjs/Select/demo/virtual.d.ts +3 -0
  75. package/dist/cjs/Select/demo/virtual.js +55 -0
  76. package/dist/cjs/Select/hooks/useSelectKeyboard.d.ts +7 -1
  77. package/dist/cjs/Select/hooks/useSelectKeyboard.js +16 -6
  78. package/dist/cjs/Select/interface.d.ts +44 -0
  79. package/dist/cjs/Select/option.js +3 -2
  80. package/dist/cjs/Select/options.js +115 -15
  81. package/dist/cjs/Select/select.js +20 -4
  82. package/dist/cjs/Select/style/index.less +17 -13
  83. package/dist/cjs/Selector/style/index.less +2 -137
  84. package/dist/cjs/Table/style/index.less +19 -0
  85. package/dist/cjs/TextArea/style/index.less +0 -17
  86. package/dist/cjs/hooks/index.d.ts +2 -1
  87. package/dist/cjs/hooks/index.js +3 -1
  88. package/dist/cjs/hooks/useEvent.js +4 -1
  89. package/dist/cjs/hooks/useVirtualList.d.ts +71 -0
  90. package/dist/cjs/hooks/useVirtualList.js +117 -0
  91. package/dist/cjs/style/size.css +1 -0
  92. package/dist/cjs/style/themes.css +1 -1
  93. package/dist/cjs/style/variables.css +2 -1
  94. package/dist/cjs/version.d.ts +1 -1
  95. package/dist/cjs/version.js +1 -1
  96. package/dist/esm/Button/button.d.ts +1 -1
  97. package/dist/esm/CSV/download.d.ts +1 -1
  98. package/dist/esm/Carousel/carousel.d.ts +2 -2
  99. package/dist/esm/Carousel/carousel.js +5 -1
  100. package/dist/esm/Carousel/interface.d.ts +5 -0
  101. package/dist/esm/Dialog/demo/basic.js +1 -1
  102. package/dist/esm/Dialog/dialog.js +1 -1
  103. package/dist/esm/Drawer/style/index.less +4 -0
  104. package/dist/esm/Field/demo/validation.js +30 -9
  105. package/dist/esm/Field/field.js +2 -1
  106. package/dist/esm/FloatButton/float-button.d.ts +1 -1
  107. package/dist/esm/Form/Field.js +3 -4
  108. package/dist/esm/Form/Form.js +1 -1
  109. package/dist/esm/Form/Group.js +142 -53
  110. package/dist/esm/Form/List.js +61 -42
  111. package/dist/esm/Form/demo/async-validate.d.ts +3 -0
  112. package/dist/esm/Form/demo/async-validate.js +95 -0
  113. package/dist/esm/Form/demo/basic.js +4 -2
  114. package/dist/esm/Form/demo/virtual.js +1 -1
  115. package/dist/esm/Form/form-store.d.ts +4 -4
  116. package/dist/esm/Form/form-store.js +187 -93
  117. package/dist/esm/Form/interface.d.ts +10 -7
  118. package/dist/esm/Form/style/index.less +15 -0
  119. package/dist/esm/Form/utils/validate.d.ts +23 -2
  120. package/dist/esm/Form/utils/validate.js +122 -17
  121. package/dist/esm/Input/style/index.less +0 -17
  122. package/dist/esm/InputNumber/style/index.less +0 -29
  123. package/dist/esm/PickerPanel/interface.d.ts +44 -2
  124. package/dist/esm/PickerPanel/panels/DatePanel/DateBody.d.ts +2 -1
  125. package/dist/esm/PickerPanel/panels/DatePanel/DateHeader.d.ts +2 -1
  126. package/dist/esm/PickerPanel/panels/DatePanel/DateHeader.js +1 -1
  127. package/dist/esm/PickerPanel/panels/DatePanel/index.d.ts +2 -1
  128. package/dist/esm/PickerPanel/panels/DateTimePanel/index.d.ts +7 -1
  129. package/dist/esm/PickerPanel/panels/DateTimePanel/index.js +11 -7
  130. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeBody.d.ts +2 -1
  131. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeBody.js +2 -1
  132. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeHeader.d.ts +2 -1
  133. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeHeader.js +2 -1
  134. package/dist/esm/PickerPanel/panels/DecadePanel/index.d.ts +2 -1
  135. package/dist/esm/PickerPanel/panels/DecadePanel/index.js +1 -1
  136. package/dist/esm/PickerPanel/panels/Header.d.ts +13 -1
  137. package/dist/esm/PickerPanel/panels/MonthPanel/MonthBody.d.ts +2 -1
  138. package/dist/esm/PickerPanel/panels/MonthPanel/MonthHeader.d.ts +2 -1
  139. package/dist/esm/PickerPanel/panels/MonthPanel/MonthHeader.js +2 -1
  140. package/dist/esm/PickerPanel/panels/MonthPanel/index.d.ts +2 -1
  141. package/dist/esm/PickerPanel/panels/MonthPanel/index.js +1 -1
  142. package/dist/esm/PickerPanel/panels/PanelBody.d.ts +21 -1
  143. package/dist/esm/PickerPanel/panels/PanelBody.js +2 -4
  144. package/dist/esm/PickerPanel/panels/QuarterPanel/QuarterBody.d.ts +2 -1
  145. package/dist/esm/PickerPanel/panels/QuarterPanel/QuarterHeader.d.ts +2 -1
  146. package/dist/esm/PickerPanel/panels/QuarterPanel/index.d.ts +2 -1
  147. package/dist/esm/PickerPanel/panels/RangePanel/index.d.ts +2 -1
  148. package/dist/esm/PickerPanel/panels/RangePanel/index.js +2 -2
  149. package/dist/esm/PickerPanel/panels/RangePanel/interface.d.ts +5 -5
  150. package/dist/esm/PickerPanel/panels/TimePanel/TimeBody.d.ts +17 -1
  151. package/dist/esm/PickerPanel/panels/TimePanel/TimeCell.d.ts +7 -1
  152. package/dist/esm/PickerPanel/panels/TimePanel/TimeCell.js +1 -1
  153. package/dist/esm/PickerPanel/panels/TimePanel/TimeColumn.d.ts +14 -1
  154. package/dist/esm/PickerPanel/panels/TimePanel/TimeColumn.js +1 -1
  155. package/dist/esm/PickerPanel/panels/TimePanel/TimeHeader.d.ts +4 -1
  156. package/dist/esm/PickerPanel/panels/TimePanel/index.d.ts +9 -1
  157. package/dist/esm/PickerPanel/panels/WeekPanel/WeekBody.d.ts +2 -1
  158. package/dist/esm/PickerPanel/panels/WeekPanel/WeekHeader.d.ts +2 -1
  159. package/dist/esm/PickerPanel/panels/WeekPanel/index.d.ts +2 -1
  160. package/dist/esm/PickerPanel/panels/YearPanel/YearBody.d.ts +2 -1
  161. package/dist/esm/PickerPanel/panels/YearPanel/YearBody.js +3 -2
  162. package/dist/esm/PickerPanel/panels/YearPanel/YearHeader.d.ts +2 -1
  163. package/dist/esm/PickerPanel/panels/YearPanel/YearHeader.js +2 -1
  164. package/dist/esm/PickerPanel/panels/YearPanel/index.d.ts +2 -1
  165. package/dist/esm/PickerPanel/panels/YearPanel/index.js +1 -1
  166. package/dist/esm/PickerPanel/picker-panel.js +3 -0
  167. package/dist/esm/PickerPanel/utils/pickerUtils.d.ts +7 -7
  168. package/dist/esm/PickerPanel/utils/pickerUtils.js +4 -10
  169. package/dist/esm/Select/demo/basic.js +1 -1
  170. package/dist/esm/Select/demo/virtual.d.ts +3 -0
  171. package/dist/esm/Select/demo/virtual.js +38 -0
  172. package/dist/esm/Select/hooks/useSelectKeyboard.d.ts +7 -1
  173. package/dist/esm/Select/hooks/useSelectKeyboard.js +25 -9
  174. package/dist/esm/Select/interface.d.ts +44 -0
  175. package/dist/esm/Select/option.js +4 -2
  176. package/dist/esm/Select/options.js +132 -13
  177. package/dist/esm/Select/select.js +19 -4
  178. package/dist/esm/Select/style/index.less +17 -13
  179. package/dist/esm/Selector/style/index.less +2 -137
  180. package/dist/esm/Table/style/index.less +19 -0
  181. package/dist/esm/TextArea/style/index.less +0 -17
  182. package/dist/esm/hooks/index.d.ts +2 -1
  183. package/dist/esm/hooks/index.js +2 -1
  184. package/dist/esm/hooks/useVirtualList.d.ts +71 -0
  185. package/dist/esm/hooks/useVirtualList.js +129 -0
  186. package/dist/esm/style/size.css +1 -0
  187. package/dist/esm/style/themes.css +1 -1
  188. package/dist/esm/style/variables.css +2 -1
  189. package/dist/esm/version.d.ts +1 -1
  190. package/dist/esm/version.js +1 -1
  191. package/dist/umd/yee-c.min.css +2 -2
  192. package/dist/umd/yee-c.min.js +1 -1
  193. package/package.json +1 -1
  194. package/src/Carousel/carousel.tsx +14 -3
  195. package/src/Carousel/interface.ts +6 -0
  196. package/src/Cascader/cascader.tsx +3 -1
  197. package/src/Cascader/column.tsx +1 -1
  198. package/src/Dialog/demo/basic.tsx +1 -1
  199. package/src/Dialog/dialog.tsx +1 -1
  200. package/src/Drawer/style/index.less +4 -0
  201. package/src/Dropdown/dropdown.tsx +1 -1
  202. package/src/Field/demo/validation.tsx +2 -2
  203. package/src/Field/field.tsx +2 -1
  204. package/src/Field/index.en-US.md +1 -1
  205. package/src/Field/index.zh-CN.md +1 -1
  206. package/src/FloatButton/float-button.tsx +5 -3
  207. package/src/Form/Field.tsx +3 -4
  208. package/src/Form/Form.tsx +1 -1
  209. package/src/Form/Group.tsx +15 -12
  210. package/src/Form/List.tsx +3 -3
  211. package/src/Form/demo/async-validate.tsx +71 -0
  212. package/src/Form/demo/basic.tsx +2 -2
  213. package/src/Form/demo/virtual.tsx +1 -1
  214. package/src/Form/form-store.ts +37 -21
  215. package/src/Form/index.en-US.md +6 -5
  216. package/src/Form/index.zh-CN.md +6 -5
  217. package/src/Form/interface.ts +13 -7
  218. package/src/Form/style/index.less +15 -0
  219. package/src/Form/utils/validate.ts +65 -13
  220. package/src/Input/style/index.less +0 -17
  221. package/src/InputNumber/style/index.less +0 -29
  222. package/src/PickerPanel/interface.ts +43 -2
  223. package/src/PickerPanel/panels/DatePanel/DateBody.tsx +2 -1
  224. package/src/PickerPanel/panels/DatePanel/DateHeader.tsx +3 -2
  225. package/src/PickerPanel/panels/DatePanel/index.tsx +2 -1
  226. package/src/PickerPanel/panels/DateTimePanel/index.tsx +12 -5
  227. package/src/PickerPanel/panels/DecadePanel/DecadeBody.tsx +3 -2
  228. package/src/PickerPanel/panels/DecadePanel/DecadeHeader.tsx +3 -2
  229. package/src/PickerPanel/panels/DecadePanel/index.tsx +3 -2
  230. package/src/PickerPanel/panels/Header.tsx +14 -1
  231. package/src/PickerPanel/panels/MonthPanel/MonthBody.tsx +2 -1
  232. package/src/PickerPanel/panels/MonthPanel/MonthHeader.tsx +3 -2
  233. package/src/PickerPanel/panels/MonthPanel/index.tsx +3 -2
  234. package/src/PickerPanel/panels/PanelBody.tsx +27 -5
  235. package/src/PickerPanel/panels/QuarterPanel/QuarterBody.tsx +2 -1
  236. package/src/PickerPanel/panels/QuarterPanel/QuarterHeader.tsx +2 -1
  237. package/src/PickerPanel/panels/QuarterPanel/index.tsx +2 -1
  238. package/src/PickerPanel/panels/RangePanel/index.tsx +11 -9
  239. package/src/PickerPanel/panels/RangePanel/interface.ts +5 -5
  240. package/src/PickerPanel/panels/TimePanel/TimeBody.tsx +21 -5
  241. package/src/PickerPanel/panels/TimePanel/TimeCell.tsx +9 -2
  242. package/src/PickerPanel/panels/TimePanel/TimeColumn.tsx +15 -2
  243. package/src/PickerPanel/panels/TimePanel/TimeHeader.tsx +5 -1
  244. package/src/PickerPanel/panels/TimePanel/index.tsx +10 -1
  245. package/src/PickerPanel/panels/WeekPanel/WeekBody.tsx +2 -1
  246. package/src/PickerPanel/panels/WeekPanel/WeekHeader.tsx +2 -1
  247. package/src/PickerPanel/panels/WeekPanel/index.tsx +2 -1
  248. package/src/PickerPanel/panels/YearPanel/YearBody.tsx +4 -3
  249. package/src/PickerPanel/panels/YearPanel/YearHeader.tsx +9 -3
  250. package/src/PickerPanel/panels/YearPanel/index.tsx +3 -2
  251. package/src/PickerPanel/picker-panel.tsx +5 -3
  252. package/src/PickerPanel/utils/pickerUtils.ts +17 -8
  253. package/src/Select/demo/basic.tsx +1 -1
  254. package/src/Select/demo/virtual.tsx +25 -0
  255. package/src/Select/hooks/useSelectKeyboard.ts +30 -6
  256. package/src/Select/index.en-US.md +4 -0
  257. package/src/Select/index.zh-CN.md +4 -0
  258. package/src/Select/interface.ts +48 -2
  259. package/src/Select/option.tsx +2 -1
  260. package/src/Select/options.tsx +139 -8
  261. package/src/Select/select.tsx +23 -1
  262. package/src/Select/style/index.less +17 -13
  263. package/src/Selector/style/index.less +2 -137
  264. package/src/Splitter/hooks/useMove.ts +2 -2
  265. package/src/Table/style/index.less +19 -0
  266. package/src/TextArea/style/index.less +0 -17
  267. package/src/hooks/index.ts +2 -0
  268. package/src/hooks/useEvent.ts +7 -4
  269. package/src/hooks/useMergedState.ts +6 -4
  270. package/src/hooks/useVirtualList.ts +169 -0
  271. package/src/style/size.css +1 -0
  272. package/src/version.ts +1 -1
@@ -0,0 +1,95 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ import { Button, Form, Grid, Input, Space } from "../..";
12
+ import React from 'react';
13
+
14
+ // Simulate an async uniqueness check against a backend API.
15
+ var TAKEN_USERNAMES = new Set(['admin', 'root', 'test']);
16
+ function checkUsernameUnique(username) {
17
+ return new Promise(function (resolve) {
18
+ setTimeout(function () {
19
+ return resolve(!TAKEN_USERNAMES.has(username));
20
+ }, 600);
21
+ });
22
+ }
23
+ export default (function () {
24
+ var _Form$useForm = Form.useForm(),
25
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
26
+ form = _Form$useForm2[0];
27
+ var onFinish = function onFinish(values) {
28
+ console.log('Received values:', values);
29
+ };
30
+ var onFinishFailed = function onFinishFailed(errorInfo) {
31
+ console.log('Failed:', errorInfo);
32
+ };
33
+ return /*#__PURE__*/React.createElement(Form, {
34
+ form: form,
35
+ onFinish: onFinish,
36
+ onFinishFailed: onFinishFailed
37
+ }, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Form.Field, {
38
+ name: "username",
39
+ label: "Username",
40
+ rules: [{
41
+ required: true,
42
+ message: 'Please input your username!'
43
+ }, {
44
+ // Async validator: resolve to pass, throw / reject to fail.
45
+ // The thrown Error's message overrides rule.message.
46
+ validator: function () {
47
+ var _validator = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(value) {
48
+ var isUnique;
49
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
50
+ while (1) switch (_context.prev = _context.next) {
51
+ case 0:
52
+ _context.next = 2;
53
+ return checkUsernameUnique(String(value));
54
+ case 2:
55
+ isUnique = _context.sent;
56
+ if (isUnique) {
57
+ _context.next = 5;
58
+ break;
59
+ }
60
+ throw new Error('This username is already taken');
61
+ case 5:
62
+ case "end":
63
+ return _context.stop();
64
+ }
65
+ }, _callee);
66
+ }));
67
+ function validator(_x) {
68
+ return _validator.apply(this, arguments);
69
+ }
70
+ return validator;
71
+ }(),
72
+ // Validate on blur so we don't hit the "API" on every keystroke.
73
+ validateTrigger: 'onBlur'
74
+ }]
75
+ }, /*#__PURE__*/React.createElement(Input, {
76
+ placeholder: "Try admin / root / test (already taken)"
77
+ })), /*#__PURE__*/React.createElement(Form.Field, {
78
+ name: "email",
79
+ label: "Email",
80
+ rules: [{
81
+ required: true,
82
+ message: 'Please input your email!'
83
+ }, {
84
+ regexp: /^[\w.+-]+@[\w-]+\.[\w.-]+$/,
85
+ message: 'Please enter a valid email!'
86
+ }]
87
+ }, /*#__PURE__*/React.createElement(Input, {
88
+ placeholder: "Please input your email"
89
+ }))), /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement(Button, {
90
+ type: "primary",
91
+ htmlType: "submit"
92
+ }, "Submit"), /*#__PURE__*/React.createElement(Button, {
93
+ htmlType: "reset"
94
+ }, "Reset")));
95
+ });
@@ -53,7 +53,8 @@ export default (function () {
53
53
  }))), /*#__PURE__*/React.createElement(Grid.Item, null, /*#__PURE__*/React.createElement(Form.Field, {
54
54
  name: "gender",
55
55
  label: "Gender",
56
- initialValue: "male"
56
+ initialValue: "male",
57
+ required: true
57
58
  }, /*#__PURE__*/React.createElement(Select, {
58
59
  options: [{
59
60
  label: 'male',
@@ -67,7 +68,8 @@ export default (function () {
67
68
  }]
68
69
  }))), /*#__PURE__*/React.createElement(Grid.Item, null, /*#__PURE__*/React.createElement(Form.Field, {
69
70
  name: "birthday",
70
- label: "Birthday"
71
+ label: "Birthday",
72
+ required: true
71
73
  }, /*#__PURE__*/React.createElement(DatePicker, null))), /*#__PURE__*/React.createElement(Grid.Item, null, /*#__PURE__*/React.createElement(Form.Field, {
72
74
  name: ['address', 0, 'one'],
73
75
  label: "Address",
@@ -42,7 +42,7 @@ export default function Virtual() {
42
42
  type: "primary",
43
43
  onClick: function onClick() {
44
44
  var form = getForm('form');
45
- form.submit();
45
+ void form.submit();
46
46
  }
47
47
  }, "Submit"));
48
48
  }
@@ -26,13 +26,13 @@ export declare class FormStore {
26
26
  setFieldsValue: (newStore: Store, trigger?: TRIGGER) => void;
27
27
  resetFields: (name?: Name[]) => void;
28
28
  clearFields: (name?: Name[]) => void;
29
- validateField: (name: Name, trigger?: TRIGGER) => ValidateMessage[];
30
- validateFields: (names?: string[], trigger?: TRIGGER) => ValidateMessage[];
29
+ validateField: (name: Name, trigger?: TRIGGER) => Promise<ValidateMessage[]>;
30
+ validateFields: (names?: string[], trigger?: TRIGGER) => Promise<ValidateMessage[]>;
31
31
  refreshField: (newStore?: Store) => void;
32
32
  subscribe: (namePath?: NamePath, callback?: () => void) => (() => void);
33
33
  private notifyWatchers;
34
34
  registerGroupEntity: (id: string, entity: GroupEntity) => (() => void);
35
- validateGroups: (force?: boolean) => ValidateMessage[];
35
+ validateGroups: (force?: boolean) => Promise<ValidateMessage[]>;
36
36
  setCallbacks: (callbacks: Callbacks) => void;
37
37
  getCallbacks: () => Callbacks<any>;
38
38
  /**
@@ -53,6 +53,6 @@ export declare class FormStore {
53
53
  */
54
54
  private setListValue;
55
55
  registerFieldEntities: (entity: FieldEntity) => () => void;
56
- submit: () => ValidateMessage[];
56
+ submit: () => Promise<ValidateMessage[]>;
57
57
  getForm(): FormInstance;
58
58
  }
@@ -1,4 +1,7 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
2
5
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
3
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -134,9 +137,10 @@ export var FormStore = /*#__PURE__*/function () {
134
137
  });
135
138
  }
136
139
 
137
- // Validate on onChange and onBlur
140
+ // Validate on onChange and onBlur (async — fire-and-forget so setFieldsValue
141
+ // stays synchronous for its callers; results surface via onStoreChange).
138
142
  if (trigger === 'onChange' || trigger === 'onBlur' || trigger === 'onSubmit') {
139
- _this.validateFields(Object.keys(newStore), trigger);
143
+ void _this.validateFields(Object.keys(newStore), trigger);
140
144
  }
141
145
  _this.refreshField(newStore);
142
146
  });
@@ -194,68 +198,130 @@ export var FormStore = /*#__PURE__*/function () {
194
198
  }, {});
195
199
  _this.setFieldsValue(clearStore, 'clear');
196
200
  });
197
- _defineProperty(this, "validateField", function (name, trigger) {
198
- var entity = _this.fieldMap.get(name);
199
- if (!entity) {
200
- return [];
201
- }
202
- var err = [];
203
- var _entity$props = entity.props,
204
- rules = _entity$props.rules,
205
- required = _entity$props.required;
206
- var mergedRules = rules || [];
207
- if (required) {
208
- mergedRules.push({
209
- required: true,
210
- message: _this.defaultValidateMessage,
211
- validateTrigger: ['onChange', 'onSubmit']
212
- });
213
- }
214
- if (trigger) {
215
- mergedRules = mergedRules.filter(function (rule) {
216
- var t = rule.validateTrigger;
217
- if (!t) {
218
- return true;
219
- }
220
- if (t === trigger || t.includes(trigger)) {
221
- return true;
201
+ _defineProperty(this, "validateField", /*#__PURE__*/function () {
202
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(name, trigger) {
203
+ var entity, err, _entity$props, rules, required, mergedRules, value, _iterator3, _step3, rule, result, _result$message;
204
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
205
+ while (1) switch (_context.prev = _context.next) {
206
+ case 0:
207
+ entity = _this.fieldMap.get(name);
208
+ if (entity) {
209
+ _context.next = 3;
210
+ break;
211
+ }
212
+ return _context.abrupt("return", []);
213
+ case 3:
214
+ err = [];
215
+ _entity$props = entity.props, rules = _entity$props.rules, required = _entity$props.required;
216
+ mergedRules = rules || [];
217
+ if (required) {
218
+ mergedRules.push({
219
+ required: true,
220
+ message: _this.defaultValidateMessage,
221
+ validateTrigger: ['onChange', 'onSubmit']
222
+ });
223
+ }
224
+ if (trigger) {
225
+ mergedRules = mergedRules.filter(function (rule) {
226
+ var t = rule.validateTrigger;
227
+ if (!t) {
228
+ return true;
229
+ }
230
+ if (t === trigger || t.includes(trigger)) {
231
+ return true;
232
+ }
233
+ return false;
234
+ });
235
+ }
236
+ value = _this.getFieldValue(name);
237
+ _iterator3 = _createForOfIteratorHelper(mergedRules);
238
+ _context.prev = 10;
239
+ _iterator3.s();
240
+ case 12:
241
+ if ((_step3 = _iterator3.n()).done) {
242
+ _context.next = 20;
243
+ break;
244
+ }
245
+ rule = _step3.value;
246
+ _context.next = 16;
247
+ return validate(rule, value);
248
+ case 16:
249
+ result = _context.sent;
250
+ if (name && !result.passed) {
251
+ err.push(_objectSpread(_objectSpread({}, rule), {}, {
252
+ name: name,
253
+ status: 'error',
254
+ value: value,
255
+ message: (_result$message = result.message) !== null && _result$message !== void 0 ? _result$message : rule.message
256
+ }));
257
+ }
258
+ case 18:
259
+ _context.next = 12;
260
+ break;
261
+ case 20:
262
+ _context.next = 25;
263
+ break;
264
+ case 22:
265
+ _context.prev = 22;
266
+ _context.t0 = _context["catch"](10);
267
+ _iterator3.e(_context.t0);
268
+ case 25:
269
+ _context.prev = 25;
270
+ _iterator3.f();
271
+ return _context.finish(25);
272
+ case 28:
273
+ if (err.length > 0) {
274
+ _this.validateMessages.set(name, err);
275
+ } else if (_this.validateMessages.has(name)) {
276
+ _this.validateMessages.delete(name);
277
+ }
278
+ // Notify the field to re-render so async validation results surface in the UI.
279
+ entity === null || entity === void 0 || entity.onStoreChange();
280
+ return _context.abrupt("return", err);
281
+ case 31:
282
+ case "end":
283
+ return _context.stop();
222
284
  }
223
- return false;
224
- });
225
- }
226
- var value = _this.getFieldValue(name);
227
- mergedRules.forEach(function (rule) {
228
- var mark = validate(rule, value);
229
- if (name && !mark) {
230
- err.push(_objectSpread({
231
- name: name,
232
- status: 'error',
233
- value: value
234
- }, rule));
235
- }
236
- });
237
- if (err.length > 0) {
238
- _this.validateMessages.set(name, err);
239
- } else if (_this.validateMessages.has(name)) {
240
- _this.validateMessages.delete(name);
241
- }
242
- return err;
243
- });
244
- _defineProperty(this, "validateFields", function () {
245
- var names = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Array.from(_this.fieldMap.keys());
246
- var trigger = arguments.length > 1 ? arguments[1] : undefined;
247
- var err = [];
248
- names.forEach(function (name) {
249
- var messages = _this.validateField(name, trigger);
250
- err = err.concat(messages);
251
- if (messages.length > 0) {
252
- _this.validateMessages.set(name, messages);
253
- } else {
254
- _this.validateMessages.delete(name);
285
+ }, _callee, null, [[10, 22, 25, 28]]);
286
+ }));
287
+ return function (_x, _x2) {
288
+ return _ref4.apply(this, arguments);
289
+ };
290
+ }());
291
+ _defineProperty(this, "validateFields", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
292
+ var names,
293
+ trigger,
294
+ results,
295
+ err,
296
+ _args2 = arguments;
297
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
298
+ while (1) switch (_context2.prev = _context2.next) {
299
+ case 0:
300
+ names = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : Array.from(_this.fieldMap.keys());
301
+ trigger = _args2.length > 1 ? _args2[1] : undefined;
302
+ _context2.next = 4;
303
+ return Promise.all(names.map(function (name) {
304
+ return _this.validateField(name, trigger);
305
+ }));
306
+ case 4:
307
+ results = _context2.sent;
308
+ err = [];
309
+ names.forEach(function (name, index) {
310
+ var messages = results[index];
311
+ err = err.concat(messages);
312
+ if (messages.length > 0) {
313
+ _this.validateMessages.set(name, messages);
314
+ } else {
315
+ _this.validateMessages.delete(name);
316
+ }
317
+ });
318
+ return _context2.abrupt("return", err);
319
+ case 8:
320
+ case "end":
321
+ return _context2.stop();
255
322
  }
256
- });
257
- return err;
258
- });
323
+ }, _callee2);
324
+ })));
259
325
  _defineProperty(this, "refreshField", function (newStore) {
260
326
  if (newStore) {
261
327
  var keys = Object.keys(newStore);
@@ -308,14 +374,29 @@ export var FormStore = /*#__PURE__*/function () {
308
374
  _this.groupEntities.delete(id);
309
375
  };
310
376
  });
311
- _defineProperty(this, "validateGroups", function () {
312
- var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
313
- var err = [];
314
- _this.groupEntities.forEach(function (entity) {
315
- err = err.concat(entity.validate(force));
316
- });
317
- return err;
318
- });
377
+ _defineProperty(this, "validateGroups", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
378
+ var force,
379
+ results,
380
+ _args3 = arguments;
381
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
382
+ while (1) switch (_context3.prev = _context3.next) {
383
+ case 0:
384
+ force = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
385
+ _context3.next = 3;
386
+ return Promise.all(Array.from(_this.groupEntities.values()).map(function (entity) {
387
+ return entity.validate(force);
388
+ }));
389
+ case 3:
390
+ results = _context3.sent;
391
+ return _context3.abrupt("return", results.reduce(function (acc, messages) {
392
+ return acc.concat(messages);
393
+ }, []));
394
+ case 5:
395
+ case "end":
396
+ return _context3.stop();
397
+ }
398
+ }, _callee3);
399
+ })));
319
400
  _defineProperty(this, "setCallbacks", function (callbacks) {
320
401
  _this.callbacks = _objectSpread(_objectSpread({}, _this.callbacks), callbacks);
321
402
  });
@@ -416,30 +497,30 @@ export var FormStore = /*#__PURE__*/function () {
416
497
  // Check if value already exists (supports nested paths)
417
498
  var hasValue = isNested ? _this.getValueByPath(parsedPath) !== undefined : normalizedName in _this.store;
418
499
  if (!hasValue) {
419
- var _ref4;
500
+ var _ref7;
420
501
  var initialValue = entity.props.initialValue;
421
502
  // Read from initialValues (supports nested paths)
422
503
  var initialFromForm;
423
504
  if (isNested) {
424
505
  var current = _this.initialValues;
425
- var _iterator3 = _createForOfIteratorHelper(parsedPath),
426
- _step3;
506
+ var _iterator4 = _createForOfIteratorHelper(parsedPath),
507
+ _step4;
427
508
  try {
428
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
429
- var key = _step3.value;
509
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
510
+ var key = _step4.value;
430
511
  if (current == null) break; // eslint-disable-line eqeqeq
431
512
  current = current[key];
432
513
  }
433
514
  } catch (err) {
434
- _iterator3.e(err);
515
+ _iterator4.e(err);
435
516
  } finally {
436
- _iterator3.f();
517
+ _iterator4.f();
437
518
  }
438
519
  initialFromForm = current;
439
520
  } else {
440
521
  initialFromForm = _this.initialValues[normalizedName];
441
522
  }
442
- var value = (_ref4 = initialValue !== null && initialValue !== void 0 ? initialValue : initialFromForm) !== null && _ref4 !== void 0 ? _ref4 : undefined;
523
+ var value = (_ref7 = initialValue !== null && initialValue !== void 0 ? initialValue : initialFromForm) !== null && _ref7 !== void 0 ? _ref7 : undefined;
443
524
  if (isNested) {
444
525
  _this.store = setValueByPath(_this.store, parsedPath, value);
445
526
  } else {
@@ -466,21 +547,34 @@ export var FormStore = /*#__PURE__*/function () {
466
547
  // }
467
548
  };
468
549
  });
469
- _defineProperty(this, "submit", function () {
470
- var _this$callbacks5 = _this.callbacks,
471
- onFinish = _this$callbacks5.onFinish,
472
- onFinishFailed = _this$callbacks5.onFinishFailed;
473
- var fieldErrors = _this.validateFields();
474
- var groupErrors = _this.validateGroups(true);
475
- var allErrors = [].concat(_toConsumableArray(fieldErrors), _toConsumableArray(groupErrors));
476
- if (allErrors.length === 0) {
477
- onFinish === null || onFinish === void 0 || onFinish(_this.getFieldsValue());
478
- } else {
479
- onFinishFailed === null || onFinishFailed === void 0 || onFinishFailed(allErrors);
480
- }
481
- _this.refreshField();
482
- return allErrors;
483
- });
550
+ _defineProperty(this, "submit", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
551
+ var _this$callbacks5, onFinish, onFinishFailed, fieldErrors, groupErrors, allErrors;
552
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
553
+ while (1) switch (_context4.prev = _context4.next) {
554
+ case 0:
555
+ _this$callbacks5 = _this.callbacks, onFinish = _this$callbacks5.onFinish, onFinishFailed = _this$callbacks5.onFinishFailed;
556
+ _context4.next = 3;
557
+ return _this.validateFields();
558
+ case 3:
559
+ fieldErrors = _context4.sent;
560
+ _context4.next = 6;
561
+ return _this.validateGroups(true);
562
+ case 6:
563
+ groupErrors = _context4.sent;
564
+ allErrors = [].concat(_toConsumableArray(fieldErrors), _toConsumableArray(groupErrors));
565
+ if (allErrors.length === 0) {
566
+ onFinish === null || onFinish === void 0 || onFinish(_this.getFieldsValue());
567
+ } else {
568
+ onFinishFailed === null || onFinishFailed === void 0 || onFinishFailed(allErrors);
569
+ }
570
+ _this.refreshField();
571
+ return _context4.abrupt("return", allErrors);
572
+ case 11:
573
+ case "end":
574
+ return _context4.stop();
575
+ }
576
+ }, _callee4);
577
+ })));
484
578
  }
485
579
  _createClass(FormStore, [{
486
580
  key: "setDefaultValidateMessage",
@@ -103,7 +103,7 @@ export interface FormInstance<Values = any> {
103
103
  /**
104
104
  * Submit form
105
105
  */
106
- submit: () => ValidateMessage[];
106
+ submit: () => Promise<ValidateMessage[]>;
107
107
  /**
108
108
  * Get all field values
109
109
  */
@@ -127,7 +127,7 @@ export interface FormInstance<Values = any> {
127
127
  /**
128
128
  * Validate field
129
129
  */
130
- validateField: (name: Name, trigger?: 'onChange' | 'onBlur') => ValidateMessage[];
130
+ validateField: (name: Name, trigger?: 'onChange' | 'onBlur') => Promise<ValidateMessage[]>;
131
131
  /**
132
132
  * Get callback functions
133
133
  */
@@ -139,7 +139,7 @@ export interface FormInstance<Values = any> {
139
139
  /**
140
140
  * Validate fields and get error messages
141
141
  */
142
- validateFields: (names?: Name[], trigger?: TRIGGER) => ValidateMessage[];
142
+ validateFields: (names?: Name[], trigger?: TRIGGER) => Promise<ValidateMessage[]>;
143
143
  /**
144
144
  * Initialize form - mainly used to set initial values and callbacks
145
145
  */
@@ -214,9 +214,12 @@ export type Rule = {
214
214
  */
215
215
  message?: string;
216
216
  /**
217
- * Custom validation function, returns true for pass, false or throw for fail
217
+ * Custom validation function. Supports sync and async:
218
+ * - sync: return true/undefined to pass, return false or throw to fail
219
+ * - async: return a Promise (resolve to pass, reject/throw to fail)
220
+ * When throwing/rejecting with an Error, its message overrides rule.message.
218
221
  */
219
- validator?: (value: unknown) => boolean;
222
+ validator?: (value: unknown) => boolean | void | Promise<boolean | void>;
220
223
  /**
221
224
  * Validation trigger timing
222
225
  */
@@ -314,7 +317,7 @@ export type FormListField<T = any> = {
314
317
  value: T;
315
318
  };
316
319
  export type FormListOperation = {
317
- add: (defaultValue?: any, insertIndex?: number) => void;
320
+ add: (defaultValue?: any, insertIndex?: number) => void | Promise<void>;
318
321
  remove: (index: number | number[]) => void;
319
322
  move: (from: number, to: number) => void;
320
323
  };
@@ -357,6 +360,6 @@ export type FieldGroupProps = {
357
360
  className?: string;
358
361
  };
359
362
  export interface GroupEntity {
360
- validate: (force: boolean) => ValidateMessage[];
363
+ validate: (force: boolean) => Promise<ValidateMessage[]>;
361
364
  reset: () => void;
362
365
  }
@@ -56,5 +56,20 @@
56
56
  color: var(--yee-error-color);
57
57
  }
58
58
  }
59
+
60
+ // 表单校验态:在此重定义控件读取的 border / box-shadow 变量,
61
+ // 后代里的 Input / Selector / InputNumber / TextArea 等通过 CSS 变量继承自动变色,
62
+ // 无需在每个组件里重复 .yee-form-item-error 块,也不存在 specificity / !important 问题。
63
+ &&-error {
64
+ --yee-input-border-color: var(--yee-error-color);
65
+ --yee-input-hover-border-color: var(--yee-error-color-hover);
66
+ --yee-input-focus-bs-color: var(--yee-error-color-border);
67
+ }
68
+
69
+ &&-warning {
70
+ --yee-input-border-color: var(--yee-warning-color);
71
+ --yee-input-hover-border-color: var(--yee-warning-color-hover);
72
+ --yee-input-focus-bs-color: var(--yee-warning-color-border);
73
+ }
59
74
  }
60
75
  }
@@ -1,3 +1,24 @@
1
- import { Rule } from '../interface';
2
- declare function validate(rule: Rule, value: unknown): boolean;
1
+ import type { Rule } from '../interface';
2
+ export interface ValidateResult {
3
+ passed: boolean;
4
+ message?: string;
5
+ }
6
+ /**
7
+ * Run a custom validator, dispatching between sync and async at runtime.
8
+ *
9
+ * Supports all of the following shapes (backwards compatible):
10
+ * - sync `return true` / `return undefined` → pass
11
+ * - sync `return false` → fail (use rule.message)
12
+ * - sync `throw new Error(msg)` → fail (use msg)
13
+ * - async `return Promise.resolve()` → pass
14
+ * - async `return Promise.resolve(false)` → fail (use rule.message)
15
+ * - async `throw` / `return Promise.reject(new Error(msg))` → fail (use msg)
16
+ */
17
+ export declare function runValidator(validator: NonNullable<Rule['validator']>, value: unknown): Promise<ValidateResult>;
18
+ /**
19
+ * Validate a single rule against a value.
20
+ * Returns { passed, message? }. Sync rules short-circuit; the custom validator
21
+ * is awaited so async validators are supported.
22
+ */
23
+ declare function validate(rule: Rule, value: unknown): Promise<ValidateResult>;
3
24
  export default validate;