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,11 +1,10 @@
1
1
  /**
2
- * amis-core v3.2.0
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
6
  import { __extends, __awaiter, __generator, __assign, __decorate, __metadata } from 'tslib';
7
7
  import React from 'react';
8
- import extend from 'lodash/extend';
9
8
  import { Renderer } from '../factory.js';
10
9
  import { FormStore } from '../store/form.js';
11
10
  import { evalExpression, filter } from '../utils/tpl.js';
@@ -17,13 +16,38 @@ import find from 'lodash/find';
17
16
  import { filterTarget, ScopedContext } from '../Scoped.js';
18
17
  import 'amis-formula';
19
18
  import 'moment';
20
- import { isObject, createObject, cloneObject } from '../utils/object.js';
21
- import { getVariable } from '../utils/getVariable.js';
19
+ import { isObject, createObject, cloneObject, injectObjectChain } from '../utils/object.js';
22
20
  import { dataMapping } from '../utils/dataMapping.js';
23
21
  import '../utils/filter.js';
24
22
  import { isEffectiveApi, isApiOutdated } from '../utils/api.js';
25
23
  import LazyComponent from '../components/LazyComponent.js';
26
24
  import { isAlive } from 'mobx-state-tree';
25
+ import '../utils/ColorScale.js';
26
+ import 'lodash/chunk';
27
+ import '../utils/DataSchema.js';
28
+ import '../utils/DataScope.js';
29
+ import '../utils/debug.js';
30
+ import 'react-dom';
31
+ import '../utils/errors.js';
32
+ import 'lodash/isObject';
33
+ import 'lodash/isString';
34
+ import 'lodash/isBoolean';
35
+ import '../utils/image.js';
36
+ import 'lodash/isPlainObject';
37
+ import 'lodash/isEqual';
38
+ import '../actions/Action.js';
39
+ import 'lodash/cloneDeep';
40
+ import '../utils/resize-sensor.js';
41
+ import 'react-overlays/useRootClose';
42
+ import '../utils/SimpleMap.js';
43
+ import 'lodash/mapValues';
44
+ import 'lodash/camelCase';
45
+ import 'uncontrollable';
46
+ import 'hoist-non-react-statics';
47
+ import '../utils/validations.js';
48
+ import '../utils/resolveCondition.js';
49
+ import 'mobx';
50
+ import '../utils/Animation.js';
27
51
 
28
52
  var Form = /** @class */ (function (_super) {
29
53
  __extends(Form, _super);
@@ -129,7 +153,8 @@ var Form = /** @class */ (function (_super) {
129
153
  .fetchInitData(initApi, store.data, {
130
154
  successMessage: fetchSuccess,
131
155
  errorMessage: fetchFailed,
132
- onSuccess: function () {
156
+ onSuccess: function (json, data) {
157
+ store.setValues(data);
133
158
  if (!isEffectiveApi(initAsyncApi, store.data) ||
134
159
  store.data[initFinishedField || 'finished']) {
135
160
  return;
@@ -251,53 +276,59 @@ var Form = /** @class */ (function (_super) {
251
276
  });
252
277
  };
253
278
  Form.prototype.reload = function (subPath, query, ctx, silent) {
254
- var _a;
255
- var _this = this;
256
- if (query) {
257
- return this.receive(query);
258
- }
259
- 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;
260
- isEffectiveApi(initAsyncApi, store.data) &&
261
- store.updateData((_a = {},
262
- _a[initFinishedField || 'finished'] = false,
263
- _a));
264
- isEffectiveApi(initApi, store.data)
265
- ? store
266
- .fetchInitData(initApi, store.data, {
267
- successMessage: fetchSuccess,
268
- errorMessage: fetchFailed,
269
- silent: silent,
270
- onSuccess: function () {
271
- if (!isEffectiveApi(initAsyncApi, store.data) ||
272
- store.data[initFinishedField || 'finished']) {
273
- return;
274
- }
275
- return until(function () { return store.checkRemote(initAsyncApi, store.data); }, function (ret) { return ret && ret[initFinishedField || 'finished']; }, function (cancel) { return (_this.asyncCancel = cancel); });
276
- }
277
- })
278
- .then(function (result) { return __awaiter(_this, void 0, void 0, function () {
279
- return __generator(this, function (_a) {
280
- switch (_a.label) {
281
- case 0:
279
+ return __awaiter(this, void 0, void 0, function () {
280
+ var _a, store, initApi, initAsyncApi, initFinishedField, _b, fetchSuccess, fetchFailed, result;
281
+ var _c;
282
+ var _this = this;
283
+ return __generator(this, function (_d) {
284
+ switch (_d.label) {
285
+ case 0:
286
+ if (query) {
287
+ return [2 /*return*/, this.receive(query)];
288
+ }
289
+ _a = this.props, store = _a.store, initApi = _a.initApi, initAsyncApi = _a.initAsyncApi, initFinishedField = _a.initFinishedField, _b = _a.messages, fetchSuccess = _b.fetchSuccess, fetchFailed = _b.fetchFailed;
290
+ isEffectiveApi(initAsyncApi, store.data) &&
291
+ store.updateData((_c = {},
292
+ _c[initFinishedField || 'finished'] = false,
293
+ _c));
294
+ if (!isEffectiveApi(initApi, store.data)) return [3 /*break*/, 3];
295
+ return [4 /*yield*/, store.fetchInitData(initApi, store.data, {
296
+ successMessage: fetchSuccess,
297
+ errorMessage: fetchFailed,
298
+ silent: silent,
299
+ onSuccess: function (json, data) {
300
+ store.setValues(data);
301
+ if (!isEffectiveApi(initAsyncApi, store.data) ||
302
+ store.data[initFinishedField || 'finished']) {
303
+ return;
304
+ }
305
+ return until(function () { return store.checkRemote(initAsyncApi, store.data); }, function (ret) { return ret && ret[initFinishedField || 'finished']; }, function (cancel) { return (_this.asyncCancel = cancel); });
306
+ }
307
+ })];
308
+ case 1:
309
+ result = _d.sent();
282
310
  // 派发初始化接口请求完成事件
283
311
  return [4 /*yield*/, this.dispatchInited(result)];
284
- case 1:
285
- // 派发初始化接口请求完成事件
286
- _a.sent();
287
- if (result === null || result === void 0 ? void 0 : result.ok) {
288
- this.initInterval(result);
289
- store.reset(undefined, false);
290
- }
291
- return [2 /*return*/];
292
- }
293
- });
294
- }); })
295
- : store.reset(undefined, false);
312
+ case 2:
313
+ // 派发初始化接口请求完成事件
314
+ _d.sent();
315
+ if (result === null || result === void 0 ? void 0 : result.ok) {
316
+ this.initInterval(result);
317
+ store.reset(undefined, false);
318
+ }
319
+ return [3 /*break*/, 4];
320
+ case 3:
321
+ store.reset(undefined, false);
322
+ _d.label = 4;
323
+ case 4: return [2 /*return*/];
324
+ }
325
+ });
326
+ });
296
327
  };
297
328
  Form.prototype.receive = function (values, name, replace) {
298
329
  var store = this.props.store;
299
330
  store.updateData(values, undefined, replace);
300
- this.reload();
331
+ return this.reload();
301
332
  };
302
333
  Form.prototype.silentReload = function (target, query) {
303
334
  this.reload(target, query, undefined, true);
@@ -315,11 +346,12 @@ var Form = /** @class */ (function (_super) {
315
346
  Form.prototype.isValidated = function () {
316
347
  return this.props.store.validated;
317
348
  };
318
- Form.prototype.validate = function (forceValidate) {
319
- var _a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data;
349
+ Form.prototype.validate = function (forceValidate, throwErrors) {
350
+ if (throwErrors === void 0) { throwErrors = false; }
351
+ var _a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data, messages = _a.messages, __ = _a.translate;
320
352
  this.flush();
321
353
  return store
322
- .validate(this.hooks['validate'] || [], forceValidate)
354
+ .validate(this.hooks['validate'] || [], forceValidate, throwErrors, __(messages && messages.validateFailed))
323
355
  .then(function (result) {
324
356
  if (result) {
325
357
  dispatchEvent('validateSucc', data);
@@ -349,11 +381,12 @@ var Form = /** @class */ (function (_super) {
349
381
  this.flush();
350
382
  store.setValues(value, undefined, replace);
351
383
  };
352
- Form.prototype.submit = function (fn) {
384
+ Form.prototype.submit = function (fn, throwErrors) {
385
+ if (throwErrors === void 0) { throwErrors = false; }
353
386
  var _a = this.props, store = _a.store, messages = _a.messages, __ = _a.translate, dispatchEvent = _a.dispatchEvent, data = _a.data;
354
387
  this.flush();
355
388
  var validateErrCb = function () { return dispatchEvent('validateError', data); };
356
- return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb);
389
+ return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb, throwErrors);
357
390
  };
358
391
  // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。
359
392
  Form.prototype.flush = function () {
@@ -442,27 +475,29 @@ var Form = /** @class */ (function (_super) {
442
475
  };
443
476
  Form.prototype.handleBulkChange = function (values, submit) {
444
477
  var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
445
- store.updateData(values);
446
- store.items.forEach(function (formItem) {
447
- var updatedValue = getVariable(values, formItem.name, false);
448
- if (updatedValue !== undefined) {
449
- // 更新验证状态但保留错误信息
450
- formItem.reset(true);
451
- // 这里需要更新value,否则提交时不会使用新的字段值校验
452
- formItem.changeTmpValue(updatedValue);
453
- formItem.validateOnChange && formItem.validate(values);
454
- }
455
- });
478
+ store.setValues(values);
479
+ // store.updateData(values);
480
+ // store.items.forEach(formItem => {
481
+ // const updatedValue = getVariable(values, formItem.name, false);
482
+ // if (updatedValue !== undefined) {
483
+ // // 更新验证状态但保留错误信息
484
+ // formItem.reset(true);
485
+ // // 这里需要更新value,否则提交时不会使用新的字段值校验
486
+ // formItem.changeTmpValue(updatedValue);
487
+ // formItem.validateOnChange && formItem.validate(values);
488
+ // }
489
+ // });
456
490
  (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
457
491
  };
458
492
  Form.prototype.handleFormSubmit = function (e) {
459
- var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor;
493
+ var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor, close = _a.close;
460
494
  e.preventDefault();
461
495
  if (preventEnterSubmit) {
462
496
  return false;
463
497
  }
464
498
  var sensor = this.handleAction(e, {
465
- type: 'submit'
499
+ type: 'submit',
500
+ close: close
466
501
  }, this.props.store.data);
467
502
  // 让外层可以监控这个动作执行结果
468
503
  onActionSensor === null || onActionSensor === void 0 ? void 0 : onActionSensor(sensor);
@@ -553,7 +588,7 @@ var Form = /** @class */ (function (_super) {
553
588
  _this.reloadTarget(filterTarget(action.target, values), values);
554
589
  }
555
590
  else if (action.actionType === 'dialog') {
556
- store.openDialog(data, undefined, action.callback);
591
+ store.openDialog(data, undefined, action.callback, delegate || _this.context);
557
592
  }
558
593
  else if (action.actionType === 'drawer') {
559
594
  store.openDrawer(data);
@@ -627,7 +662,10 @@ var Form = /** @class */ (function (_super) {
627
662
  throw new SkipOperation();
628
663
  }
629
664
  _a.label = 2;
630
- case 2: return [2 /*return*/];
665
+ case 2: return [2 /*return*/, injectObjectChain(store.data, {
666
+ __payload: values,
667
+ __response: response
668
+ })];
631
669
  }
632
670
  });
633
671
  }); });
@@ -637,7 +675,7 @@ var Form = /** @class */ (function (_super) {
637
675
  dispatchEvent_1('submitSucc', createObject(_this.props.data, values));
638
676
  }
639
677
  return Promise.resolve(null);
640
- })
678
+ }, throwErrors)
641
679
  .then(function (values) {
642
680
  // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。
643
681
  if (values === false) {
@@ -676,11 +714,11 @@ var Form = /** @class */ (function (_super) {
676
714
  }
677
715
  else if (action.actionType === 'validate') {
678
716
  store.setCurrentAction(action);
679
- this.validate(true);
717
+ return [2 /*return*/, this.validate(true, throwErrors)];
680
718
  }
681
719
  else if (action.actionType === 'dialog') {
682
720
  store.setCurrentAction(action);
683
- store.openDialog(data, undefined, action.callback);
721
+ store.openDialog(data, undefined, action.callback, delegate || this.context);
684
722
  }
685
723
  else if (action.actionType === 'drawer') {
686
724
  store.setCurrentAction(action);
@@ -821,7 +859,7 @@ var Form = /** @class */ (function (_super) {
821
859
  });
822
860
  store.openDialog(ctx, undefined, function (confirmed) {
823
861
  resolve(confirmed);
824
- });
862
+ }, _this.context);
825
863
  });
826
864
  };
827
865
  Form.prototype.buildActions = function () {
@@ -917,7 +955,7 @@ var Form = /** @class */ (function (_super) {
917
955
  }
918
956
  var props = __assign(__assign({}, this.props), otherProps);
919
957
  var form = this.props.store;
920
- 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;
958
+ 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;
921
959
  var subProps = __assign(__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,
922
960
  /**
923
961
  * form.loading有为true时才下发disabled属性,否则不显性设置disbaled为false
@@ -944,14 +982,7 @@ var Form = /** @class */ (function (_super) {
944
982
  return (React.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 },
945
983
  React.createElement("input", { type: "submit", style: { display: 'none' } }),
946
984
  debug
947
- ? render('form-debug-json', extend({
948
- type: 'json',
949
- value: store.data,
950
- ellipsisThreshold: 120,
951
- className: cx('Form--debug')
952
- },
953
- /** 定制debug输出格式 */
954
- isObject(debugConfig) ? debugConfig : {}))
985
+ ? render('form-debug-json', __assign({ type: 'json', value: store.data, ellipsisThreshold: 120, className: cx('Form--debug') }, debugConfig))
955
986
  : null,
956
987
  render('spinner', { type: 'spinner' }, {
957
988
  overlay: true,
@@ -1151,57 +1182,70 @@ var FormRenderer = /** @class */ (function (_super) {
1151
1182
  scoped.close(target);
1152
1183
  };
1153
1184
  FormRenderer.prototype.reload = function (target, query, ctx, silent, replace) {
1154
- if (query) {
1155
- return this.receive(query, undefined, replace);
1156
- }
1157
- var scoped = this.context;
1158
- var subPath = '';
1159
- var idx;
1160
- var subQuery = null;
1161
- if (target && ~(idx = target.indexOf('.'))) {
1162
- subPath = target.substring(idx + 1);
1163
- target = target.substring(0, idx);
1164
- }
1165
- var idx2 = target ? target.indexOf('?') : -1;
1166
- if (~idx2) {
1167
- subQuery = dataMapping(qsparse(target.substring(idx2 + 1)), ctx);
1168
- target = target.substring(0, idx2);
1169
- }
1170
- var component;
1171
- if (target &&
1172
- (component = scoped.getComponentByName(target)) &&
1173
- component.reload) {
1174
- component.reload(subPath, subQuery, ctx);
1175
- }
1176
- else if (target === '*') {
1177
- _super.prototype.reload.call(this, target, query, ctx, silent);
1178
- var components = scoped.getComponents();
1179
- components.forEach(function (component) {
1180
- return component.reload && component.reload('', subQuery, ctx);
1185
+ return __awaiter(this, void 0, void 0, function () {
1186
+ var scoped, subPath, idx, subQuery, idx2, component, components;
1187
+ return __generator(this, function (_a) {
1188
+ switch (_a.label) {
1189
+ case 0:
1190
+ if (query) {
1191
+ return [2 /*return*/, this.receive(query, undefined, replace)];
1192
+ }
1193
+ scoped = this.context;
1194
+ subPath = '';
1195
+ subQuery = null;
1196
+ if (target && ~(idx = target.indexOf('.'))) {
1197
+ subPath = target.substring(idx + 1);
1198
+ target = target.substring(0, idx);
1199
+ }
1200
+ idx2 = target ? target.indexOf('?') : -1;
1201
+ if (~idx2) {
1202
+ subQuery = dataMapping(qsparse(target.substring(idx2 + 1)), ctx);
1203
+ target = target.substring(0, idx2);
1204
+ }
1205
+ if (!(target &&
1206
+ (component = scoped.getComponentByName(target)) &&
1207
+ component.reload)) return [3 /*break*/, 1];
1208
+ component.reload(subPath, subQuery, ctx);
1209
+ return [3 /*break*/, 4];
1210
+ case 1:
1211
+ if (!(target === '*')) return [3 /*break*/, 3];
1212
+ return [4 /*yield*/, _super.prototype.reload.call(this, target, query, ctx, silent)];
1213
+ case 2:
1214
+ _a.sent();
1215
+ components = scoped.getComponents();
1216
+ components.forEach(function (component) {
1217
+ return component.reload && component.reload('', subQuery, ctx);
1218
+ });
1219
+ return [3 /*break*/, 4];
1220
+ case 3: return [2 /*return*/, _super.prototype.reload.call(this, target, query, ctx, silent)];
1221
+ case 4: return [2 /*return*/];
1222
+ }
1181
1223
  });
1182
- }
1183
- else {
1184
- _super.prototype.reload.call(this, target, query, ctx, silent);
1185
- }
1224
+ });
1186
1225
  };
1187
1226
  FormRenderer.prototype.receive = function (values, name, replace) {
1188
- if (name) {
1189
- var scoped = this.context;
1190
- var idx = name.indexOf('.');
1191
- var subPath = '';
1192
- if (~idx) {
1193
- subPath = name.substring(1 + idx);
1194
- name = name.substring(0, idx);
1195
- }
1196
- var component = scoped.getComponentByName(name);
1197
- component && component.receive && component.receive(values, subPath);
1198
- return;
1199
- }
1200
- return _super.prototype.receive.call(this, values, undefined, replace);
1227
+ return __awaiter(this, void 0, void 0, function () {
1228
+ var scoped, idx, subPath, component;
1229
+ return __generator(this, function (_a) {
1230
+ if (name) {
1231
+ scoped = this.context;
1232
+ idx = name.indexOf('.');
1233
+ subPath = '';
1234
+ if (~idx) {
1235
+ subPath = name.substring(1 + idx);
1236
+ name = name.substring(0, idx);
1237
+ }
1238
+ component = scoped.getComponentByName(name);
1239
+ component && component.receive && component.receive(values, subPath);
1240
+ return [2 /*return*/];
1241
+ }
1242
+ return [2 /*return*/, _super.prototype.receive.call(this, values, undefined, replace)];
1243
+ });
1244
+ });
1201
1245
  };
1202
1246
  FormRenderer.prototype.setData = function (values, replace) {
1203
1247
  var _a = this.props, onChange = _a.onChange, store = _a.store;
1204
- _super.prototype.setValues.call(this, values);
1248
+ _super.prototype.setValues.call(this, values, replace);
1205
1249
  // 触发表单change
1206
1250
  onChange &&
1207
1251
  onChange(store.data, difference(store.data, store.pristine), this.props);