amis-core 3.2.0 → 3.3.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 (297) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +3 -3
  4. package/esm/SchemaRenderer.js +5 -2
  5. package/esm/Scoped.d.ts +4 -1
  6. package/esm/Scoped.js +8 -5
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +1 -1
  10. package/esm/actions/Action.d.ts +1 -0
  11. package/esm/actions/Action.js +62 -37
  12. package/esm/actions/AjaxAction.d.ts +6 -8
  13. package/esm/actions/AjaxAction.js +20 -18
  14. package/esm/actions/BreakAction.js +1 -1
  15. package/esm/actions/BroadcastAction.js +1 -1
  16. package/esm/actions/CmptAction.d.ts +1 -2
  17. package/esm/actions/CmptAction.js +46 -31
  18. package/esm/actions/ContinueAction.js +1 -1
  19. package/esm/actions/CopyAction.js +1 -1
  20. package/esm/actions/CustomAction.js +2 -2
  21. package/esm/actions/DialogAction.js +5 -6
  22. package/esm/actions/DrawerAction.js +4 -4
  23. package/esm/actions/EmailAction.js +1 -1
  24. package/esm/actions/LinkAction.js +1 -1
  25. package/esm/actions/LoopAction.js +1 -1
  26. package/esm/actions/PageAction.js +1 -1
  27. package/esm/actions/ParallelAction.js +1 -1
  28. package/esm/actions/StatusAction.d.ts +15 -0
  29. package/esm/actions/StatusAction.js +49 -0
  30. package/esm/actions/SwitchAction.js +1 -1
  31. package/esm/actions/ToastAction.js +1 -1
  32. package/esm/actions/index.d.ts +1 -0
  33. package/esm/components/CustomStyle.js +1 -1
  34. package/esm/components/LazyComponent.js +1 -1
  35. package/esm/components/Overlay.js +2 -2
  36. package/esm/components/PopOver.js +2 -2
  37. package/esm/env.js +1 -1
  38. package/esm/envOverwrite.js +1 -1
  39. package/esm/factory.js +2 -2
  40. package/esm/index.d.ts +2 -1
  41. package/esm/index.js +13 -13
  42. package/esm/locale.js +1 -1
  43. package/esm/polyfills.js +1 -1
  44. package/esm/renderers/Form.d.ts +6 -6
  45. package/esm/renderers/Form.js +168 -124
  46. package/esm/renderers/Item.d.ts +42 -66
  47. package/esm/renderers/Item.js +11 -41
  48. package/esm/renderers/Options.js +1 -2
  49. package/esm/renderers/Placeholder.js +1 -1
  50. package/esm/renderers/builtin.js +1 -1
  51. package/esm/renderers/register.js +1 -1
  52. package/esm/renderers/wrapControl.js +101 -47
  53. package/esm/store/app.js +8 -4
  54. package/esm/store/combo.d.ts +444 -1912
  55. package/esm/store/combo.js +9 -2
  56. package/esm/store/crud.d.ts +1 -0
  57. package/esm/store/crud.js +11 -5
  58. package/esm/store/form.d.ts +132 -892
  59. package/esm/store/form.js +83 -81
  60. package/esm/store/formItem.d.ts +5 -2
  61. package/esm/store/formItem.js +13 -2
  62. package/esm/store/iRenderer.js +2 -2
  63. package/esm/store/index.js +1 -1
  64. package/esm/store/list.js +1 -1
  65. package/esm/store/manager.js +1 -1
  66. package/esm/store/modal.js +1 -1
  67. package/esm/store/node.js +1 -1
  68. package/esm/store/pagination.js +1 -1
  69. package/esm/store/root.js +2 -2
  70. package/esm/store/service.js +4 -4
  71. package/esm/store/status.js +1 -1
  72. package/esm/store/table.d.ts +503 -2040
  73. package/esm/store/table.js +79 -55
  74. package/esm/store/table2.d.ts +49 -0
  75. package/esm/store/table2.js +37 -4
  76. package/esm/theme.js +1 -1
  77. package/esm/types.d.ts +17 -3
  78. package/esm/utils/Animation.js +1 -1
  79. package/esm/utils/ColorScale.js +1 -1
  80. package/esm/utils/DataSchema.js +1 -1
  81. package/esm/utils/DataScope.js +1 -1
  82. package/esm/utils/RootClose.js +1 -1
  83. package/esm/utils/SimpleMap.js +1 -1
  84. package/esm/utils/api.d.ts +2 -2
  85. package/esm/utils/api.js +113 -81
  86. package/esm/utils/arraySlice.js +1 -1
  87. package/esm/utils/attachmentAdpator.js +1 -1
  88. package/esm/utils/autobind.js +1 -1
  89. package/esm/utils/columnsSplit.js +1 -1
  90. package/esm/utils/dataMapping.js +4 -2
  91. package/esm/utils/date.js +1 -1
  92. package/esm/utils/debug.d.ts +2 -0
  93. package/esm/utils/debug.js +34 -7
  94. package/esm/utils/decodeEntity.js +1 -1
  95. package/esm/utils/dom.js +1 -1
  96. package/esm/utils/errors.js +1 -1
  97. package/esm/utils/escapeHtml.js +1 -1
  98. package/esm/utils/filter-schema.js +1 -1
  99. package/esm/utils/filter.js +1 -1
  100. package/esm/utils/formatDuration.js +1 -1
  101. package/esm/utils/formula.d.ts +0 -1
  102. package/esm/utils/formula.js +6 -9
  103. package/esm/utils/getVariable.js +1 -1
  104. package/esm/utils/grammar.js +1 -1
  105. package/esm/utils/handleAction.js +1 -1
  106. package/esm/utils/helper.d.ts +11 -1
  107. package/esm/utils/helper.js +14 -2
  108. package/esm/utils/highlight.js +1 -1
  109. package/esm/utils/icon.d.ts +4 -2
  110. package/esm/utils/icon.js +3 -2
  111. package/esm/utils/image.js +1 -1
  112. package/esm/utils/index.d.ts +1 -0
  113. package/esm/utils/isPureVariable.js +1 -1
  114. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  115. package/esm/utils/keyToPath.js +1 -1
  116. package/esm/utils/makeSorter.js +1 -1
  117. package/esm/utils/math.d.ts +3 -0
  118. package/esm/utils/math.js +52 -0
  119. package/esm/utils/memoryParse.js +1 -1
  120. package/esm/utils/normalizeLink.js +1 -1
  121. package/esm/utils/normalizeOptions.js +1 -1
  122. package/esm/utils/object.d.ts +7 -0
  123. package/esm/utils/object.js +13 -2
  124. package/esm/utils/offset.js +1 -1
  125. package/esm/utils/offsetParent.js +1 -1
  126. package/esm/utils/optionValueCompare.js +2 -2
  127. package/esm/utils/position.js +1 -1
  128. package/esm/utils/prettyBytes.js +1 -1
  129. package/esm/utils/renderer-event.d.ts +1 -1
  130. package/esm/utils/renderer-event.js +14 -6
  131. package/esm/utils/replaceText.js +1 -1
  132. package/esm/utils/resize-sensor.js +1 -1
  133. package/esm/utils/resolveCondition.js +1 -1
  134. package/esm/utils/resolveVariable.js +1 -1
  135. package/esm/utils/resolveVariableAndFilter.js +1 -1
  136. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  137. package/esm/utils/scrollPosition.js +1 -1
  138. package/esm/utils/string2regExp.js +1 -1
  139. package/esm/utils/stripNumber.js +1 -1
  140. package/esm/utils/style-helper.js +1 -1
  141. package/esm/utils/style.js +1 -1
  142. package/esm/utils/toNumber.js +1 -1
  143. package/esm/utils/tokenize.js +1 -1
  144. package/esm/utils/tpl-builtin.js +1 -1
  145. package/esm/utils/tpl-lodash.js +1 -1
  146. package/esm/utils/tpl.js +1 -1
  147. package/esm/utils/uncontrollable.js +1 -1
  148. package/esm/utils/validations.js +1 -1
  149. package/lib/Root.js +10 -7
  150. package/lib/RootRenderer.d.ts +1 -1
  151. package/lib/RootRenderer.js +11 -8
  152. package/lib/SchemaRenderer.js +12 -6
  153. package/lib/Scoped.d.ts +4 -1
  154. package/lib/Scoped.js +18 -13
  155. package/lib/StatusScoped.js +5 -2
  156. package/lib/WithRootStore.js +5 -2
  157. package/lib/WithStore.js +5 -2
  158. package/lib/actions/Action.d.ts +1 -0
  159. package/lib/actions/Action.js +62 -37
  160. package/lib/actions/AjaxAction.d.ts +6 -8
  161. package/lib/actions/AjaxAction.js +20 -18
  162. package/lib/actions/BreakAction.js +1 -1
  163. package/lib/actions/BroadcastAction.js +1 -1
  164. package/lib/actions/CmptAction.d.ts +1 -2
  165. package/lib/actions/CmptAction.js +46 -31
  166. package/lib/actions/ContinueAction.js +1 -1
  167. package/lib/actions/CopyAction.js +1 -1
  168. package/lib/actions/CustomAction.js +8 -5
  169. package/lib/actions/DialogAction.js +5 -6
  170. package/lib/actions/DrawerAction.js +4 -4
  171. package/lib/actions/EmailAction.js +1 -1
  172. package/lib/actions/LinkAction.js +1 -1
  173. package/lib/actions/LoopAction.js +1 -1
  174. package/lib/actions/PageAction.js +1 -1
  175. package/lib/actions/ParallelAction.js +1 -1
  176. package/lib/actions/StatusAction.d.ts +15 -0
  177. package/lib/actions/StatusAction.js +53 -0
  178. package/lib/actions/SwitchAction.js +1 -1
  179. package/lib/actions/ToastAction.js +1 -1
  180. package/lib/actions/index.d.ts +1 -0
  181. package/lib/components/CustomStyle.js +1 -1
  182. package/lib/components/LazyComponent.js +12 -14
  183. package/lib/components/Overlay.js +14 -14
  184. package/lib/components/PopOver.js +11 -10
  185. package/lib/env.js +4 -1
  186. package/lib/envOverwrite.js +1 -1
  187. package/lib/factory.js +11 -9
  188. package/lib/index.d.ts +2 -1
  189. package/lib/index.js +21 -19
  190. package/lib/locale.js +6 -3
  191. package/lib/polyfills.js +1 -1
  192. package/lib/renderers/Form.d.ts +6 -6
  193. package/lib/renderers/Form.js +180 -131
  194. package/lib/renderers/Item.d.ts +42 -66
  195. package/lib/renderers/Item.js +51 -75
  196. package/lib/renderers/Options.js +10 -5
  197. package/lib/renderers/Placeholder.js +1 -1
  198. package/lib/renderers/builtin.js +1 -1
  199. package/lib/renderers/register.js +1 -1
  200. package/lib/renderers/wrapControl.js +104 -47
  201. package/lib/store/app.js +14 -7
  202. package/lib/store/combo.d.ts +444 -1912
  203. package/lib/store/combo.js +9 -2
  204. package/lib/store/crud.d.ts +1 -0
  205. package/lib/store/crud.js +11 -5
  206. package/lib/store/form.d.ts +132 -892
  207. package/lib/store/form.js +81 -79
  208. package/lib/store/formItem.d.ts +5 -2
  209. package/lib/store/formItem.js +13 -2
  210. package/lib/store/iRenderer.js +8 -5
  211. package/lib/store/index.js +1 -1
  212. package/lib/store/list.js +1 -1
  213. package/lib/store/manager.js +1 -1
  214. package/lib/store/modal.js +1 -1
  215. package/lib/store/node.js +1 -1
  216. package/lib/store/pagination.js +1 -1
  217. package/lib/store/root.js +8 -5
  218. package/lib/store/service.js +4 -4
  219. package/lib/store/status.js +1 -1
  220. package/lib/store/table.d.ts +503 -2040
  221. package/lib/store/table.js +79 -55
  222. package/lib/store/table2.d.ts +49 -0
  223. package/lib/store/table2.js +36 -3
  224. package/lib/theme.js +6 -3
  225. package/lib/types.d.ts +17 -3
  226. package/lib/utils/Animation.js +1 -1
  227. package/lib/utils/ColorScale.js +1 -1
  228. package/lib/utils/DataSchema.js +1 -1
  229. package/lib/utils/DataScope.js +1 -1
  230. package/lib/utils/RootClose.js +1 -1
  231. package/lib/utils/SimpleMap.js +1 -1
  232. package/lib/utils/api.d.ts +2 -2
  233. package/lib/utils/api.js +113 -81
  234. package/lib/utils/arraySlice.js +1 -1
  235. package/lib/utils/attachmentAdpator.js +1 -1
  236. package/lib/utils/autobind.js +1 -1
  237. package/lib/utils/columnsSplit.js +8 -6
  238. package/lib/utils/dataMapping.js +4 -2
  239. package/lib/utils/date.js +1 -1
  240. package/lib/utils/debug.d.ts +2 -0
  241. package/lib/utils/debug.js +61 -33
  242. package/lib/utils/decodeEntity.js +1 -1
  243. package/lib/utils/dom.js +7 -5
  244. package/lib/utils/errors.js +1 -1
  245. package/lib/utils/escapeHtml.js +1 -1
  246. package/lib/utils/filter-schema.js +1 -1
  247. package/lib/utils/filter.js +1 -1
  248. package/lib/utils/formatDuration.js +1 -1
  249. package/lib/utils/formula.d.ts +0 -1
  250. package/lib/utils/formula.js +6 -10
  251. package/lib/utils/getVariable.js +1 -1
  252. package/lib/utils/grammar.js +1 -1
  253. package/lib/utils/handleAction.js +1 -1
  254. package/lib/utils/helper.d.ts +11 -1
  255. package/lib/utils/helper.js +14 -1
  256. package/lib/utils/highlight.js +8 -9
  257. package/lib/utils/icon.d.ts +4 -2
  258. package/lib/utils/icon.js +12 -10
  259. package/lib/utils/image.js +1 -1
  260. package/lib/utils/index.d.ts +1 -0
  261. package/lib/utils/isPureVariable.js +1 -1
  262. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  263. package/lib/utils/keyToPath.js +1 -1
  264. package/lib/utils/makeSorter.js +1 -1
  265. package/lib/utils/math.d.ts +3 -0
  266. package/lib/utils/math.js +58 -0
  267. package/lib/utils/memoryParse.js +1 -1
  268. package/lib/utils/normalizeLink.js +1 -1
  269. package/lib/utils/normalizeOptions.js +1 -1
  270. package/lib/utils/object.d.ts +7 -0
  271. package/lib/utils/object.js +13 -1
  272. package/lib/utils/offset.js +1 -1
  273. package/lib/utils/offsetParent.js +1 -1
  274. package/lib/utils/optionValueCompare.js +7 -3
  275. package/lib/utils/position.js +1 -1
  276. package/lib/utils/prettyBytes.js +1 -1
  277. package/lib/utils/renderer-event.d.ts +1 -1
  278. package/lib/utils/renderer-event.js +13 -5
  279. package/lib/utils/replaceText.js +1 -1
  280. package/lib/utils/resize-sensor.js +1 -1
  281. package/lib/utils/resolveCondition.js +1 -1
  282. package/lib/utils/resolveVariable.js +1 -1
  283. package/lib/utils/resolveVariableAndFilter.js +1 -1
  284. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  285. package/lib/utils/scrollPosition.js +1 -1
  286. package/lib/utils/string2regExp.js +1 -1
  287. package/lib/utils/stripNumber.js +1 -1
  288. package/lib/utils/style-helper.js +1 -1
  289. package/lib/utils/style.js +1 -1
  290. package/lib/utils/toNumber.js +1 -1
  291. package/lib/utils/tokenize.js +1 -1
  292. package/lib/utils/tpl-builtin.js +1 -1
  293. package/lib/utils/tpl-lodash.js +1 -1
  294. package/lib/utils/tpl.js +1 -1
  295. package/lib/utils/uncontrollable.js +1 -1
  296. package/lib/utils/validations.js +1 -1
  297. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.2.0
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -9,7 +9,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  var tslib = require('tslib');
11
11
  var React = require('react');
12
- var extend = require('lodash/extend');
13
12
  var factory = require('../factory.js');
14
13
  var form = require('../store/form.js');
15
14
  var tpl = require('../utils/tpl.js');
@@ -22,21 +21,51 @@ var Scoped = require('../Scoped.js');
22
21
  require('amis-formula');
23
22
  require('moment');
24
23
  var object = require('../utils/object.js');
25
- var getVariable = require('../utils/getVariable.js');
26
24
  var dataMapping = require('../utils/dataMapping.js');
27
25
  require('../utils/filter.js');
28
26
  var api = require('../utils/api.js');
29
27
  var LazyComponent = require('../components/LazyComponent.js');
30
28
  var mobxStateTree = require('mobx-state-tree');
29
+ require('../utils/ColorScale.js');
30
+ require('../utils/columnsSplit.js');
31
+ require('../utils/DataSchema.js');
32
+ require('../utils/DataScope.js');
33
+ require('../utils/debug.js');
34
+ require('../utils/dom.js');
35
+ require('../utils/errors.js');
36
+ require('lodash/isObject');
37
+ require('lodash/isString');
38
+ require('lodash/isBoolean');
39
+ require('../utils/highlight.js');
40
+ require('../utils/icon.js');
41
+ require('../utils/image.js');
42
+ require('lodash/isPlainObject');
43
+ require('lodash/isEqual');
44
+ require('../actions/Action.js');
45
+ require('lodash/cloneDeep');
46
+ require('../utils/resize-sensor.js');
47
+ require('react-overlays/useRootClose');
48
+ require('react-dom');
49
+ require('../utils/SimpleMap.js');
50
+ require('lodash/mapValues');
51
+ require('lodash/camelCase');
52
+ require('uncontrollable');
53
+ require('hoist-non-react-statics');
54
+ require('../utils/validations.js');
55
+ require('../utils/resolveCondition.js');
56
+ require('mobx');
57
+ require('../utils/Animation.js');
31
58
 
32
59
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
33
60
 
34
61
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
35
- var extend__default = /*#__PURE__*/_interopDefaultLegacy(extend);
36
62
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
37
63
  var flatten__default = /*#__PURE__*/_interopDefaultLegacy(flatten);
38
64
  var find__default = /*#__PURE__*/_interopDefaultLegacy(find);
39
65
 
66
+ var __react_jsx__ = require('react');
67
+ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
68
+ (__react_jsx__["default"] || __react_jsx__).Fragment;
40
69
  var Form = /** @class */ (function (_super) {
41
70
  tslib.__extends(Form, _super);
42
71
  function Form(props) {
@@ -141,7 +170,8 @@ var Form = /** @class */ (function (_super) {
141
170
  .fetchInitData(initApi, store.data, {
142
171
  successMessage: fetchSuccess,
143
172
  errorMessage: fetchFailed,
144
- onSuccess: function () {
173
+ onSuccess: function (json, data) {
174
+ store.setValues(data);
145
175
  if (!api.isEffectiveApi(initAsyncApi, store.data) ||
146
176
  store.data[initFinishedField || 'finished']) {
147
177
  return;
@@ -263,53 +293,59 @@ var Form = /** @class */ (function (_super) {
263
293
  });
264
294
  };
265
295
  Form.prototype.reload = function (subPath, query, ctx, silent) {
266
- var _a;
267
- var _this = this;
268
- if (query) {
269
- return this.receive(query);
270
- }
271
- var _b = this.props, store = _b.store, initApi = _b.initApi, initAsyncApi = _b.initAsyncApi, initFinishedField = _b.initFinishedField, _c = _b.messages, fetchSuccess = _c.fetchSuccess, fetchFailed = _c.fetchFailed;
272
- api.isEffectiveApi(initAsyncApi, store.data) &&
273
- store.updateData((_a = {},
274
- _a[initFinishedField || 'finished'] = false,
275
- _a));
276
- api.isEffectiveApi(initApi, store.data)
277
- ? store
278
- .fetchInitData(initApi, store.data, {
279
- successMessage: fetchSuccess,
280
- errorMessage: fetchFailed,
281
- silent: silent,
282
- onSuccess: function () {
283
- if (!api.isEffectiveApi(initAsyncApi, store.data) ||
284
- store.data[initFinishedField || 'finished']) {
285
- return;
286
- }
287
- return helper.until(function () { return store.checkRemote(initAsyncApi, store.data); }, function (ret) { return ret && ret[initFinishedField || 'finished']; }, function (cancel) { return (_this.asyncCancel = cancel); });
288
- }
289
- })
290
- .then(function (result) { return tslib.__awaiter(_this, void 0, void 0, function () {
291
- return tslib.__generator(this, function (_a) {
292
- switch (_a.label) {
293
- case 0:
296
+ return tslib.__awaiter(this, void 0, void 0, function () {
297
+ var _a, store, initApi, initAsyncApi, initFinishedField, _b, fetchSuccess, fetchFailed, result;
298
+ var _c;
299
+ var _this = this;
300
+ return tslib.__generator(this, function (_d) {
301
+ switch (_d.label) {
302
+ case 0:
303
+ if (query) {
304
+ return [2 /*return*/, this.receive(query)];
305
+ }
306
+ _a = this.props, store = _a.store, initApi = _a.initApi, initAsyncApi = _a.initAsyncApi, initFinishedField = _a.initFinishedField, _b = _a.messages, fetchSuccess = _b.fetchSuccess, fetchFailed = _b.fetchFailed;
307
+ api.isEffectiveApi(initAsyncApi, store.data) &&
308
+ store.updateData((_c = {},
309
+ _c[initFinishedField || 'finished'] = false,
310
+ _c));
311
+ if (!api.isEffectiveApi(initApi, store.data)) return [3 /*break*/, 3];
312
+ return [4 /*yield*/, store.fetchInitData(initApi, store.data, {
313
+ successMessage: fetchSuccess,
314
+ errorMessage: fetchFailed,
315
+ silent: silent,
316
+ onSuccess: function (json, data) {
317
+ store.setValues(data);
318
+ if (!api.isEffectiveApi(initAsyncApi, store.data) ||
319
+ store.data[initFinishedField || 'finished']) {
320
+ return;
321
+ }
322
+ return helper.until(function () { return store.checkRemote(initAsyncApi, store.data); }, function (ret) { return ret && ret[initFinishedField || 'finished']; }, function (cancel) { return (_this.asyncCancel = cancel); });
323
+ }
324
+ })];
325
+ case 1:
326
+ result = _d.sent();
294
327
  // 派发初始化接口请求完成事件
295
328
  return [4 /*yield*/, this.dispatchInited(result)];
296
- case 1:
297
- // 派发初始化接口请求完成事件
298
- _a.sent();
299
- if (result === null || result === void 0 ? void 0 : result.ok) {
300
- this.initInterval(result);
301
- store.reset(undefined, false);
302
- }
303
- return [2 /*return*/];
304
- }
305
- });
306
- }); })
307
- : store.reset(undefined, false);
329
+ case 2:
330
+ // 派发初始化接口请求完成事件
331
+ _d.sent();
332
+ if (result === null || result === void 0 ? void 0 : result.ok) {
333
+ this.initInterval(result);
334
+ store.reset(undefined, false);
335
+ }
336
+ return [3 /*break*/, 4];
337
+ case 3:
338
+ store.reset(undefined, false);
339
+ _d.label = 4;
340
+ case 4: return [2 /*return*/];
341
+ }
342
+ });
343
+ });
308
344
  };
309
345
  Form.prototype.receive = function (values, name, replace) {
310
346
  var store = this.props.store;
311
347
  store.updateData(values, undefined, replace);
312
- this.reload();
348
+ return this.reload();
313
349
  };
314
350
  Form.prototype.silentReload = function (target, query) {
315
351
  this.reload(target, query, undefined, true);
@@ -327,11 +363,12 @@ var Form = /** @class */ (function (_super) {
327
363
  Form.prototype.isValidated = function () {
328
364
  return this.props.store.validated;
329
365
  };
330
- Form.prototype.validate = function (forceValidate) {
331
- var _a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data;
366
+ Form.prototype.validate = function (forceValidate, throwErrors) {
367
+ if (throwErrors === void 0) { throwErrors = false; }
368
+ var _a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data, messages = _a.messages, __ = _a.translate;
332
369
  this.flush();
333
370
  return store
334
- .validate(this.hooks['validate'] || [], forceValidate)
371
+ .validate(this.hooks['validate'] || [], forceValidate, throwErrors, __(messages && messages.validateFailed))
335
372
  .then(function (result) {
336
373
  if (result) {
337
374
  dispatchEvent('validateSucc', data);
@@ -361,11 +398,12 @@ var Form = /** @class */ (function (_super) {
361
398
  this.flush();
362
399
  store.setValues(value, undefined, replace);
363
400
  };
364
- Form.prototype.submit = function (fn) {
401
+ Form.prototype.submit = function (fn, throwErrors) {
402
+ if (throwErrors === void 0) { throwErrors = false; }
365
403
  var _a = this.props, store = _a.store, messages = _a.messages, __ = _a.translate, dispatchEvent = _a.dispatchEvent, data = _a.data;
366
404
  this.flush();
367
405
  var validateErrCb = function () { return dispatchEvent('validateError', data); };
368
- return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb);
406
+ return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb, throwErrors);
369
407
  };
370
408
  // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。
371
409
  Form.prototype.flush = function () {
@@ -454,27 +492,29 @@ var Form = /** @class */ (function (_super) {
454
492
  };
455
493
  Form.prototype.handleBulkChange = function (values, submit) {
456
494
  var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
457
- store.updateData(values);
458
- store.items.forEach(function (formItem) {
459
- var updatedValue = getVariable.getVariable(values, formItem.name, false);
460
- if (updatedValue !== undefined) {
461
- // 更新验证状态但保留错误信息
462
- formItem.reset(true);
463
- // 这里需要更新value,否则提交时不会使用新的字段值校验
464
- formItem.changeTmpValue(updatedValue);
465
- formItem.validateOnChange && formItem.validate(values);
466
- }
467
- });
495
+ store.setValues(values);
496
+ // store.updateData(values);
497
+ // store.items.forEach(formItem => {
498
+ // const updatedValue = getVariable(values, formItem.name, false);
499
+ // if (updatedValue !== undefined) {
500
+ // // 更新验证状态但保留错误信息
501
+ // formItem.reset(true);
502
+ // // 这里需要更新value,否则提交时不会使用新的字段值校验
503
+ // formItem.changeTmpValue(updatedValue);
504
+ // formItem.validateOnChange && formItem.validate(values);
505
+ // }
506
+ // });
468
507
  (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
469
508
  };
470
509
  Form.prototype.handleFormSubmit = function (e) {
471
- var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor;
510
+ var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor, close = _a.close;
472
511
  e.preventDefault();
473
512
  if (preventEnterSubmit) {
474
513
  return false;
475
514
  }
476
515
  var sensor = this.handleAction(e, {
477
- type: 'submit'
516
+ type: 'submit',
517
+ close: close
478
518
  }, this.props.store.data);
479
519
  // 让外层可以监控这个动作执行结果
480
520
  onActionSensor === null || onActionSensor === void 0 ? void 0 : onActionSensor(sensor);
@@ -565,7 +605,7 @@ var Form = /** @class */ (function (_super) {
565
605
  _this.reloadTarget(Scoped.filterTarget(action.target, values), values);
566
606
  }
567
607
  else if (action.actionType === 'dialog') {
568
- store.openDialog(data, undefined, action.callback);
608
+ store.openDialog(data, undefined, action.callback, delegate || _this.context);
569
609
  }
570
610
  else if (action.actionType === 'drawer') {
571
611
  store.openDrawer(data);
@@ -639,7 +679,10 @@ var Form = /** @class */ (function (_super) {
639
679
  throw new helper.SkipOperation();
640
680
  }
641
681
  _a.label = 2;
642
- case 2: return [2 /*return*/];
682
+ case 2: return [2 /*return*/, object.injectObjectChain(store.data, {
683
+ __payload: values,
684
+ __response: response
685
+ })];
643
686
  }
644
687
  });
645
688
  }); });
@@ -649,7 +692,7 @@ var Form = /** @class */ (function (_super) {
649
692
  dispatchEvent_1('submitSucc', object.createObject(_this.props.data, values));
650
693
  }
651
694
  return Promise.resolve(null);
652
- })
695
+ }, throwErrors)
653
696
  .then(function (values) {
654
697
  // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。
655
698
  if (values === false) {
@@ -688,11 +731,11 @@ var Form = /** @class */ (function (_super) {
688
731
  }
689
732
  else if (action.actionType === 'validate') {
690
733
  store.setCurrentAction(action);
691
- this.validate(true);
734
+ return [2 /*return*/, this.validate(true, throwErrors)];
692
735
  }
693
736
  else if (action.actionType === 'dialog') {
694
737
  store.setCurrentAction(action);
695
- store.openDialog(data, undefined, action.callback);
738
+ store.openDialog(data, undefined, action.callback, delegate || this.context);
696
739
  }
697
740
  else if (action.actionType === 'drawer') {
698
741
  store.setCurrentAction(action);
@@ -833,7 +876,7 @@ var Form = /** @class */ (function (_super) {
833
876
  });
834
877
  store.openDialog(ctx, undefined, function (confirmed) {
835
878
  resolve(confirmed);
836
- });
879
+ }, _this.context);
837
880
  });
838
881
  };
839
882
  Form.prototype.buildActions = function () {
@@ -905,9 +948,9 @@ var Form = /** @class */ (function (_super) {
905
948
  return null;
906
949
  }
907
950
  var cx_1 = this.props.classnames;
908
- return (React__default["default"].createElement("div", { className: cx_1('Form-row') }, children.map(function (control, key) {
951
+ return (_J$X_("div", { className: cx_1('Form-row') }, children.map(function (control, key) {
909
952
  return ~['hidden', 'formula'].indexOf(control.type) ||
910
- control.mode === 'inline' ? (_this.renderChild(control, key, otherProps)) : (React__default["default"].createElement("div", { key: key, className: cx_1("Form-col", control.columnClassName) }, _this.renderChild(control, '', tslib.__assign(tslib.__assign({}, otherProps), { mode: 'row' }))));
953
+ control.mode === 'inline' ? (_this.renderChild(control, key, otherProps)) : (_J$X_("div", { key: key, className: cx_1("Form-col", control.columnClassName) }, _this.renderChild(control, '', tslib.__assign(tslib.__assign({}, otherProps), { mode: 'row' }))));
911
954
  })));
912
955
  }
913
956
  return children.map(function (control, key) {
@@ -929,7 +972,7 @@ var Form = /** @class */ (function (_super) {
929
972
  }
930
973
  var props = tslib.__assign(tslib.__assign({}, this.props), otherProps);
931
974
  var form = this.props.store;
932
- var render = props.render, mode = props.mode, horizontal = props.horizontal, store = props.store, disabled = props.disabled, controlWidth = props.controlWidth, resolveDefinitions = props.resolveDefinitions, lazyChange = props.lazyChange; props.formLazyChange; var dispatchEvent = props.dispatchEvent, labelAlign = props.labelAlign, labelWidth = props.labelWidth, isStatic = props.static;
975
+ var render = props.render, mode = props.mode, horizontal = props.horizontal, store = props.store, disabled = props.disabled, controlWidth = props.controlWidth, resolveDefinitions = props.resolveDefinitions, lazyChange = props.lazyChange; props.formLazyChange; var dispatchEvent = props.dispatchEvent, labelAlign = props.labelAlign, labelWidth = props.labelWidth, isStatic = props.static; props.canAccessSuperData;
933
976
  var subProps = tslib.__assign(tslib.__assign({ formStore: form, data: store.data, key: "".concat(control.name || '', "-").concat(control.type, "-").concat(key), formInited: form.inited, formSubmited: form.submited, formMode: mode, formHorizontal: horizontal, formLabelAlign: labelAlign !== 'left' ? 'right' : labelAlign, formLabelWidth: labelWidth, controlWidth: controlWidth,
934
977
  /**
935
978
  * form.loading有为true时才下发disabled属性,否则不显性设置disbaled为false
@@ -952,18 +995,11 @@ var Form = /** @class */ (function (_super) {
952
995
  (/(?:\/|^)form\//.test($path) ? 'div' : 'form');
953
996
  var padDom = helper.repeatCount(columnCount && Array.isArray(body)
954
997
  ? columnCount - (body.length % columnCount)
955
- : 0, function (index) { return (React__default["default"].createElement("div", { className: cx("Form-item Form-item--".concat(mode, " is-placeholder")), key: index })); });
956
- return (React__default["default"].createElement(WrapperComponent, { className: cx("Form", "Form--".concat(mode || 'normal'), columnCount ? "Form--column Form--column-".concat(columnCount) : null, staticClassName && isStatic ? staticClassName : className, isStatic ? 'Form--isStatic' : null), onSubmit: this.handleFormSubmit, noValidate: true },
957
- React__default["default"].createElement("input", { type: "submit", style: { display: 'none' } }),
998
+ : 0, function (index) { return (_J$X_("div", { className: cx("Form-item Form-item--".concat(mode, " is-placeholder")), key: index })); });
999
+ return (_J$X_(WrapperComponent, { className: cx("Form", "Form--".concat(mode || 'normal'), columnCount ? "Form--column Form--column-".concat(columnCount) : null, staticClassName && isStatic ? staticClassName : className, isStatic ? 'Form--isStatic' : null), onSubmit: this.handleFormSubmit, noValidate: true },
1000
+ _J$X_("input", { type: "submit", style: { display: 'none' } }),
958
1001
  debug
959
- ? render('form-debug-json', extend__default["default"]({
960
- type: 'json',
961
- value: store.data,
962
- ellipsisThreshold: 120,
963
- className: cx('Form--debug')
964
- },
965
- /** 定制debug输出格式 */
966
- object.isObject(debugConfig) ? debugConfig : {}))
1002
+ ? render('form-debug-json', tslib.__assign({ type: 'json', value: store.data, ellipsisThreshold: 120, className: cx('Form--debug') }, debugConfig))
967
1003
  : null,
968
1004
  render('spinner', { type: 'spinner' }, {
969
1005
  overlay: true,
@@ -974,7 +1010,7 @@ var Form = /** @class */ (function (_super) {
974
1010
  body: body
975
1011
  }),
976
1012
  padDom,
977
- restError && restError.length ? (React__default["default"].createElement("ul", { className: cx('Form-restError', 'Form-feedback') }, restError.map(function (item, idx) { return (React__default["default"].createElement("li", { key: idx }, item)); }))) : null,
1013
+ restError && restError.length ? (_J$X_("ul", { className: cx('Form-restError', 'Form-feedback') }, restError.map(function (item, idx) { return (_J$X_("li", { key: idx }, item)); }))) : null,
978
1014
  render('modal', tslib.__assign(tslib.__assign({}, (store.action &&
979
1015
  store.action.dialog)), { type: 'dialog' }), {
980
1016
  key: 'dialog',
@@ -1019,7 +1055,7 @@ var Form = /** @class */ (function (_super) {
1019
1055
  });
1020
1056
  }
1021
1057
  if (lazyLoad) {
1022
- body = React__default["default"].createElement(LazyComponent["default"], null, body);
1058
+ body = _J$X_(LazyComponent["default"], null, body);
1023
1059
  }
1024
1060
  return body;
1025
1061
  };
@@ -1163,57 +1199,70 @@ var FormRenderer = /** @class */ (function (_super) {
1163
1199
  scoped.close(target);
1164
1200
  };
1165
1201
  FormRenderer.prototype.reload = function (target, query, ctx, silent, replace) {
1166
- if (query) {
1167
- return this.receive(query, undefined, replace);
1168
- }
1169
- var scoped = this.context;
1170
- var subPath = '';
1171
- var idx;
1172
- var subQuery = null;
1173
- if (target && ~(idx = target.indexOf('.'))) {
1174
- subPath = target.substring(idx + 1);
1175
- target = target.substring(0, idx);
1176
- }
1177
- var idx2 = target ? target.indexOf('?') : -1;
1178
- if (~idx2) {
1179
- subQuery = dataMapping.dataMapping(helper.qsparse(target.substring(idx2 + 1)), ctx);
1180
- target = target.substring(0, idx2);
1181
- }
1182
- var component;
1183
- if (target &&
1184
- (component = scoped.getComponentByName(target)) &&
1185
- component.reload) {
1186
- component.reload(subPath, subQuery, ctx);
1187
- }
1188
- else if (target === '*') {
1189
- _super.prototype.reload.call(this, target, query, ctx, silent);
1190
- var components = scoped.getComponents();
1191
- components.forEach(function (component) {
1192
- return component.reload && component.reload('', subQuery, ctx);
1202
+ return tslib.__awaiter(this, void 0, void 0, function () {
1203
+ var scoped, subPath, idx, subQuery, idx2, component, components;
1204
+ return tslib.__generator(this, function (_a) {
1205
+ switch (_a.label) {
1206
+ case 0:
1207
+ if (query) {
1208
+ return [2 /*return*/, this.receive(query, undefined, replace)];
1209
+ }
1210
+ scoped = this.context;
1211
+ subPath = '';
1212
+ subQuery = null;
1213
+ if (target && ~(idx = target.indexOf('.'))) {
1214
+ subPath = target.substring(idx + 1);
1215
+ target = target.substring(0, idx);
1216
+ }
1217
+ idx2 = target ? target.indexOf('?') : -1;
1218
+ if (~idx2) {
1219
+ subQuery = dataMapping.dataMapping(helper.qsparse(target.substring(idx2 + 1)), ctx);
1220
+ target = target.substring(0, idx2);
1221
+ }
1222
+ if (!(target &&
1223
+ (component = scoped.getComponentByName(target)) &&
1224
+ component.reload)) return [3 /*break*/, 1];
1225
+ component.reload(subPath, subQuery, ctx);
1226
+ return [3 /*break*/, 4];
1227
+ case 1:
1228
+ if (!(target === '*')) return [3 /*break*/, 3];
1229
+ return [4 /*yield*/, _super.prototype.reload.call(this, target, query, ctx, silent)];
1230
+ case 2:
1231
+ _a.sent();
1232
+ components = scoped.getComponents();
1233
+ components.forEach(function (component) {
1234
+ return component.reload && component.reload('', subQuery, ctx);
1235
+ });
1236
+ return [3 /*break*/, 4];
1237
+ case 3: return [2 /*return*/, _super.prototype.reload.call(this, target, query, ctx, silent)];
1238
+ case 4: return [2 /*return*/];
1239
+ }
1193
1240
  });
1194
- }
1195
- else {
1196
- _super.prototype.reload.call(this, target, query, ctx, silent);
1197
- }
1241
+ });
1198
1242
  };
1199
1243
  FormRenderer.prototype.receive = function (values, name, replace) {
1200
- if (name) {
1201
- var scoped = this.context;
1202
- var idx = name.indexOf('.');
1203
- var subPath = '';
1204
- if (~idx) {
1205
- subPath = name.substring(1 + idx);
1206
- name = name.substring(0, idx);
1207
- }
1208
- var component = scoped.getComponentByName(name);
1209
- component && component.receive && component.receive(values, subPath);
1210
- return;
1211
- }
1212
- return _super.prototype.receive.call(this, values, undefined, replace);
1244
+ return tslib.__awaiter(this, void 0, void 0, function () {
1245
+ var scoped, idx, subPath, component;
1246
+ return tslib.__generator(this, function (_a) {
1247
+ if (name) {
1248
+ scoped = this.context;
1249
+ idx = name.indexOf('.');
1250
+ subPath = '';
1251
+ if (~idx) {
1252
+ subPath = name.substring(1 + idx);
1253
+ name = name.substring(0, idx);
1254
+ }
1255
+ component = scoped.getComponentByName(name);
1256
+ component && component.receive && component.receive(values, subPath);
1257
+ return [2 /*return*/];
1258
+ }
1259
+ return [2 /*return*/, _super.prototype.receive.call(this, values, undefined, replace)];
1260
+ });
1261
+ });
1213
1262
  };
1214
1263
  FormRenderer.prototype.setData = function (values, replace) {
1215
1264
  var _a = this.props, onChange = _a.onChange, store = _a.store;
1216
- _super.prototype.setValues.call(this, values);
1265
+ _super.prototype.setValues.call(this, values, replace);
1217
1266
  // 触发表单change
1218
1267
  onChange &&
1219
1268
  onChange(store.data, helper.difference(store.data, store.pristine), this.props);