amis-core 3.1.1 → 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 (313) 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 +6 -2
  5. package/esm/Scoped.d.ts +4 -1
  6. package/esm/Scoped.js +9 -5
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.d.ts +4 -24
  9. package/esm/WithRootStore.js +12 -4
  10. package/esm/WithStore.js +23 -16
  11. package/esm/actions/Action.d.ts +1 -0
  12. package/esm/actions/Action.js +70 -45
  13. package/esm/actions/AjaxAction.d.ts +6 -8
  14. package/esm/actions/AjaxAction.js +20 -18
  15. package/esm/actions/BreakAction.js +1 -1
  16. package/esm/actions/BroadcastAction.js +1 -1
  17. package/esm/actions/CmptAction.d.ts +1 -2
  18. package/esm/actions/CmptAction.js +47 -32
  19. package/esm/actions/ContinueAction.js +1 -1
  20. package/esm/actions/CopyAction.js +1 -1
  21. package/esm/actions/CustomAction.js +3 -2
  22. package/esm/actions/DialogAction.d.ts +2 -0
  23. package/esm/actions/DialogAction.js +39 -23
  24. package/esm/actions/DrawerAction.js +4 -4
  25. package/esm/actions/EmailAction.js +1 -1
  26. package/esm/actions/LinkAction.js +1 -1
  27. package/esm/actions/LoopAction.js +1 -1
  28. package/esm/actions/PageAction.js +1 -1
  29. package/esm/actions/ParallelAction.js +1 -1
  30. package/esm/actions/StatusAction.d.ts +15 -0
  31. package/esm/actions/StatusAction.js +49 -0
  32. package/esm/actions/SwitchAction.js +1 -1
  33. package/esm/actions/ToastAction.js +1 -1
  34. package/esm/actions/index.d.ts +1 -0
  35. package/esm/components/CustomStyle.js +1 -1
  36. package/esm/components/LazyComponent.js +1 -1
  37. package/esm/components/Overlay.js +3 -2
  38. package/esm/components/PopOver.js +3 -2
  39. package/esm/env.js +1 -1
  40. package/esm/envOverwrite.js +1 -1
  41. package/esm/factory.js +2 -2
  42. package/esm/index.d.ts +3 -1
  43. package/esm/index.js +16 -14
  44. package/esm/locale.js +1 -1
  45. package/esm/polyfills.d.ts +3 -0
  46. package/esm/polyfills.js +18 -0
  47. package/esm/renderers/Form.d.ts +7 -7
  48. package/esm/renderers/Form.js +182 -128
  49. package/esm/renderers/Item.d.ts +82 -77
  50. package/esm/renderers/Item.js +90 -74
  51. package/esm/renderers/Options.js +1 -2
  52. package/esm/renderers/Placeholder.js +1 -1
  53. package/esm/renderers/builtin.js +1 -1
  54. package/esm/renderers/register.js +1 -1
  55. package/esm/renderers/wrapControl.d.ts +4 -24
  56. package/esm/renderers/wrapControl.js +140 -88
  57. package/esm/store/app.js +42 -4
  58. package/esm/store/combo.d.ts +564 -1892
  59. package/esm/store/combo.js +9 -2
  60. package/esm/store/crud.d.ts +4 -2
  61. package/esm/store/crud.js +17 -4
  62. package/esm/store/form.d.ts +182 -882
  63. package/esm/store/form.js +83 -81
  64. package/esm/store/formItem.d.ts +6 -2
  65. package/esm/store/formItem.js +19 -3
  66. package/esm/store/iRenderer.js +3 -2
  67. package/esm/store/index.js +1 -1
  68. package/esm/store/list.d.ts +1 -0
  69. package/esm/store/list.js +8 -2
  70. package/esm/store/manager.js +1 -1
  71. package/esm/store/modal.js +1 -1
  72. package/esm/store/node.js +1 -1
  73. package/esm/store/pagination.js +1 -1
  74. package/esm/store/root.js +3 -2
  75. package/esm/store/service.js +17 -12
  76. package/esm/store/status.js +1 -1
  77. package/esm/store/table.d.ts +604 -2020
  78. package/esm/store/table.js +86 -56
  79. package/esm/store/table2.d.ts +49 -0
  80. package/esm/store/table2.js +37 -4
  81. package/esm/theme.js +1 -1
  82. package/esm/types.d.ts +22 -5
  83. package/esm/utils/Animation.js +1 -1
  84. package/esm/utils/ColorScale.js +1 -1
  85. package/esm/utils/DataSchema.d.ts +3 -2
  86. package/esm/utils/DataSchema.js +27 -7
  87. package/esm/utils/DataScope.d.ts +10 -3
  88. package/esm/utils/DataScope.js +50 -12
  89. package/esm/utils/RootClose.js +1 -1
  90. package/esm/utils/SimpleMap.js +1 -1
  91. package/esm/utils/api.d.ts +2 -2
  92. package/esm/utils/api.js +152 -112
  93. package/esm/utils/arraySlice.d.ts +1 -0
  94. package/esm/utils/arraySlice.js +76 -0
  95. package/esm/utils/attachmentAdpator.js +1 -1
  96. package/esm/utils/autobind.js +1 -1
  97. package/esm/utils/columnsSplit.js +1 -1
  98. package/esm/utils/dataMapping.js +29 -19
  99. package/esm/utils/date.js +1 -1
  100. package/esm/utils/debug.d.ts +2 -0
  101. package/esm/utils/debug.js +34 -7
  102. package/esm/utils/decodeEntity.js +1 -1
  103. package/esm/utils/dom.js +4 -1
  104. package/esm/utils/errors.js +1 -1
  105. package/esm/utils/escapeHtml.js +1 -1
  106. package/esm/utils/filter-schema.js +1 -1
  107. package/esm/utils/filter.js +1 -1
  108. package/esm/utils/formatDuration.js +1 -1
  109. package/esm/utils/formula.d.ts +0 -1
  110. package/esm/utils/formula.js +6 -9
  111. package/esm/utils/getVariable.js +1 -1
  112. package/esm/utils/grammar.js +1 -1
  113. package/esm/utils/handleAction.js +1 -1
  114. package/esm/utils/helper.d.ts +19 -2
  115. package/esm/utils/helper.js +69 -10
  116. package/esm/utils/highlight.js +1 -1
  117. package/esm/utils/icon.d.ts +4 -2
  118. package/esm/utils/icon.js +3 -2
  119. package/esm/utils/image.js +1 -1
  120. package/esm/utils/index.d.ts +2 -0
  121. package/esm/utils/isPureVariable.js +1 -1
  122. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  123. package/esm/utils/keyToPath.js +1 -1
  124. package/esm/utils/makeSorter.js +1 -1
  125. package/esm/utils/math.d.ts +3 -0
  126. package/esm/utils/math.js +52 -0
  127. package/esm/utils/memoryParse.js +1 -1
  128. package/esm/utils/normalizeLink.js +18 -9
  129. package/esm/utils/normalizeOptions.js +1 -1
  130. package/esm/utils/object.d.ts +7 -0
  131. package/esm/utils/object.js +13 -2
  132. package/esm/utils/offset.js +1 -1
  133. package/esm/utils/offsetParent.js +1 -1
  134. package/esm/utils/optionValueCompare.js +2 -2
  135. package/esm/utils/position.js +1 -1
  136. package/esm/utils/prettyBytes.js +1 -1
  137. package/esm/utils/renderer-event.d.ts +1 -1
  138. package/esm/utils/renderer-event.js +14 -6
  139. package/esm/utils/replaceText.js +1 -1
  140. package/esm/utils/resize-sensor.js +1 -1
  141. package/esm/utils/resolveCondition.js +1 -1
  142. package/esm/utils/resolveVariable.js +1 -1
  143. package/esm/utils/resolveVariableAndFilter.js +1 -1
  144. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  145. package/esm/utils/scrollPosition.js +1 -1
  146. package/esm/utils/string2regExp.js +1 -1
  147. package/esm/utils/stripNumber.js +1 -1
  148. package/esm/utils/style-helper.js +1 -1
  149. package/esm/utils/style.js +1 -1
  150. package/esm/utils/toNumber.js +1 -1
  151. package/esm/utils/tokenize.js +1 -1
  152. package/esm/utils/tpl-builtin.js +1 -1
  153. package/esm/utils/tpl-lodash.js +1 -1
  154. package/esm/utils/tpl.js +1 -1
  155. package/esm/utils/uncontrollable.js +1 -1
  156. package/esm/utils/validations.js +1 -1
  157. package/lib/Root.js +10 -7
  158. package/lib/RootRenderer.d.ts +1 -1
  159. package/lib/RootRenderer.js +11 -8
  160. package/lib/SchemaRenderer.js +13 -6
  161. package/lib/Scoped.d.ts +4 -1
  162. package/lib/Scoped.js +19 -13
  163. package/lib/StatusScoped.js +5 -2
  164. package/lib/WithRootStore.d.ts +4 -24
  165. package/lib/WithRootStore.js +15 -4
  166. package/lib/WithStore.js +27 -17
  167. package/lib/actions/Action.d.ts +1 -0
  168. package/lib/actions/Action.js +70 -45
  169. package/lib/actions/AjaxAction.d.ts +6 -8
  170. package/lib/actions/AjaxAction.js +20 -18
  171. package/lib/actions/BreakAction.js +1 -1
  172. package/lib/actions/BroadcastAction.js +1 -1
  173. package/lib/actions/CmptAction.d.ts +1 -2
  174. package/lib/actions/CmptAction.js +47 -32
  175. package/lib/actions/ContinueAction.js +1 -1
  176. package/lib/actions/CopyAction.js +1 -1
  177. package/lib/actions/CustomAction.js +9 -5
  178. package/lib/actions/DialogAction.d.ts +2 -0
  179. package/lib/actions/DialogAction.js +39 -23
  180. package/lib/actions/DrawerAction.js +4 -4
  181. package/lib/actions/EmailAction.js +1 -1
  182. package/lib/actions/LinkAction.js +1 -1
  183. package/lib/actions/LoopAction.js +1 -1
  184. package/lib/actions/PageAction.js +1 -1
  185. package/lib/actions/ParallelAction.js +1 -1
  186. package/lib/actions/StatusAction.d.ts +15 -0
  187. package/lib/actions/StatusAction.js +53 -0
  188. package/lib/actions/SwitchAction.js +1 -1
  189. package/lib/actions/ToastAction.js +1 -1
  190. package/lib/actions/index.d.ts +1 -0
  191. package/lib/components/CustomStyle.js +1 -1
  192. package/lib/components/LazyComponent.js +12 -14
  193. package/lib/components/Overlay.js +15 -14
  194. package/lib/components/PopOver.js +12 -10
  195. package/lib/env.js +4 -1
  196. package/lib/envOverwrite.js +1 -1
  197. package/lib/factory.js +11 -9
  198. package/lib/index.d.ts +3 -1
  199. package/lib/index.js +26 -19
  200. package/lib/locale.js +6 -3
  201. package/lib/polyfills.d.ts +3 -0
  202. package/lib/polyfills.js +20 -0
  203. package/lib/renderers/Form.d.ts +7 -7
  204. package/lib/renderers/Form.js +194 -135
  205. package/lib/renderers/Item.d.ts +82 -77
  206. package/lib/renderers/Item.js +126 -104
  207. package/lib/renderers/Options.js +10 -5
  208. package/lib/renderers/Placeholder.js +1 -1
  209. package/lib/renderers/builtin.js +1 -1
  210. package/lib/renderers/register.js +1 -1
  211. package/lib/renderers/wrapControl.d.ts +4 -24
  212. package/lib/renderers/wrapControl.js +143 -88
  213. package/lib/store/app.js +44 -3
  214. package/lib/store/combo.d.ts +564 -1892
  215. package/lib/store/combo.js +9 -2
  216. package/lib/store/crud.d.ts +4 -2
  217. package/lib/store/crud.js +17 -4
  218. package/lib/store/form.d.ts +182 -882
  219. package/lib/store/form.js +81 -79
  220. package/lib/store/formItem.d.ts +6 -2
  221. package/lib/store/formItem.js +19 -3
  222. package/lib/store/iRenderer.js +9 -5
  223. package/lib/store/index.js +1 -1
  224. package/lib/store/list.d.ts +1 -0
  225. package/lib/store/list.js +8 -2
  226. package/lib/store/manager.js +1 -1
  227. package/lib/store/modal.js +1 -1
  228. package/lib/store/node.js +1 -1
  229. package/lib/store/pagination.js +1 -1
  230. package/lib/store/root.js +9 -5
  231. package/lib/store/service.js +17 -12
  232. package/lib/store/status.js +1 -1
  233. package/lib/store/table.d.ts +604 -2020
  234. package/lib/store/table.js +85 -55
  235. package/lib/store/table2.d.ts +49 -0
  236. package/lib/store/table2.js +36 -3
  237. package/lib/theme.js +6 -3
  238. package/lib/types.d.ts +22 -5
  239. package/lib/utils/Animation.js +1 -1
  240. package/lib/utils/ColorScale.js +1 -1
  241. package/lib/utils/DataSchema.d.ts +3 -2
  242. package/lib/utils/DataSchema.js +27 -7
  243. package/lib/utils/DataScope.d.ts +10 -3
  244. package/lib/utils/DataScope.js +50 -11
  245. package/lib/utils/RootClose.js +1 -1
  246. package/lib/utils/SimpleMap.js +1 -1
  247. package/lib/utils/api.d.ts +2 -2
  248. package/lib/utils/api.js +151 -111
  249. package/lib/utils/arraySlice.d.ts +1 -0
  250. package/lib/utils/arraySlice.js +80 -0
  251. package/lib/utils/attachmentAdpator.js +1 -1
  252. package/lib/utils/autobind.js +1 -1
  253. package/lib/utils/columnsSplit.js +8 -6
  254. package/lib/utils/dataMapping.js +29 -19
  255. package/lib/utils/date.js +1 -1
  256. package/lib/utils/debug.d.ts +2 -0
  257. package/lib/utils/debug.js +61 -33
  258. package/lib/utils/decodeEntity.js +1 -1
  259. package/lib/utils/dom.js +10 -5
  260. package/lib/utils/errors.js +1 -1
  261. package/lib/utils/escapeHtml.js +1 -1
  262. package/lib/utils/filter-schema.js +1 -1
  263. package/lib/utils/filter.js +1 -1
  264. package/lib/utils/formatDuration.js +1 -1
  265. package/lib/utils/formula.d.ts +0 -1
  266. package/lib/utils/formula.js +6 -10
  267. package/lib/utils/getVariable.js +1 -1
  268. package/lib/utils/grammar.js +1 -1
  269. package/lib/utils/handleAction.js +1 -1
  270. package/lib/utils/helper.d.ts +19 -2
  271. package/lib/utils/helper.js +70 -9
  272. package/lib/utils/highlight.js +8 -9
  273. package/lib/utils/icon.d.ts +4 -2
  274. package/lib/utils/icon.js +12 -10
  275. package/lib/utils/image.js +1 -1
  276. package/lib/utils/index.d.ts +2 -0
  277. package/lib/utils/isPureVariable.js +1 -1
  278. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  279. package/lib/utils/keyToPath.js +1 -1
  280. package/lib/utils/makeSorter.js +1 -1
  281. package/lib/utils/math.d.ts +3 -0
  282. package/lib/utils/math.js +58 -0
  283. package/lib/utils/memoryParse.js +1 -1
  284. package/lib/utils/normalizeLink.js +18 -9
  285. package/lib/utils/normalizeOptions.js +1 -1
  286. package/lib/utils/object.d.ts +7 -0
  287. package/lib/utils/object.js +13 -1
  288. package/lib/utils/offset.js +1 -1
  289. package/lib/utils/offsetParent.js +1 -1
  290. package/lib/utils/optionValueCompare.js +7 -3
  291. package/lib/utils/position.js +1 -1
  292. package/lib/utils/prettyBytes.js +1 -1
  293. package/lib/utils/renderer-event.d.ts +1 -1
  294. package/lib/utils/renderer-event.js +13 -5
  295. package/lib/utils/replaceText.js +1 -1
  296. package/lib/utils/resize-sensor.js +1 -1
  297. package/lib/utils/resolveCondition.js +1 -1
  298. package/lib/utils/resolveVariable.js +1 -1
  299. package/lib/utils/resolveVariableAndFilter.js +1 -1
  300. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  301. package/lib/utils/scrollPosition.js +1 -1
  302. package/lib/utils/string2regExp.js +1 -1
  303. package/lib/utils/stripNumber.js +1 -1
  304. package/lib/utils/style-helper.js +1 -1
  305. package/lib/utils/style.js +1 -1
  306. package/lib/utils/toNumber.js +1 -1
  307. package/lib/utils/tokenize.js +1 -1
  308. package/lib/utils/tpl-builtin.js +1 -1
  309. package/lib/utils/tpl-lodash.js +1 -1
  310. package/lib/utils/tpl.js +1 -1
  311. package/lib/utils/uncontrollable.js +1 -1
  312. package/lib/utils/validations.js +1 -1
  313. package/package.json +9 -4
@@ -1,11 +1,10 @@
1
1
  /**
2
- * amis-core v3.1.1
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;
@@ -183,7 +208,7 @@ var Form = /** @class */ (function (_super) {
183
208
  case 0:
184
209
  _b = this.props, data = _b.data, store = _b.store, dispatchEvent = _b.dispatchEvent;
185
210
  if (store.fetching) {
186
- return [2 /*return*/];
211
+ return [2 /*return*/, value];
187
212
  }
188
213
  // 派发init事件,参数为初始化数据
189
214
  return [4 /*yield*/, dispatchEvent('inited', createObject(data, __assign(__assign({}, value === null || value === void 0 ? void 0 : value.data), { responseData: (_a = value === null || value === void 0 ? void 0 : value.data) !== null && _a !== void 0 ? _a : {}, responseStatus: store.error ? 1 : 0, responseMsg: store.msg })))];
@@ -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);
@@ -305,7 +336,8 @@ var Form = /** @class */ (function (_super) {
305
336
  Form.prototype.initInterval = function (value) {
306
337
  var _a = this.props, interval = _a.interval, silentPolling = _a.silentPolling, stopAutoRefreshWhen = _a.stopAutoRefreshWhen, data = _a.data;
307
338
  clearTimeout(this.timer);
308
- interval &&
339
+ (value === null || value === void 0 ? void 0 : value.ok) &&
340
+ interval &&
309
341
  this.mounted &&
310
342
  (!stopAutoRefreshWhen || !evalExpression(stopAutoRefreshWhen, data)) &&
311
343
  (this.timer = setTimeout(silentPolling ? this.silentReload : this.reload, Math.max(interval, 1000)));
@@ -314,11 +346,12 @@ var Form = /** @class */ (function (_super) {
314
346
  Form.prototype.isValidated = function () {
315
347
  return this.props.store.validated;
316
348
  };
317
- Form.prototype.validate = function (forceValidate) {
318
- 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;
319
352
  this.flush();
320
353
  return store
321
- .validate(this.hooks['validate'] || [], forceValidate)
354
+ .validate(this.hooks['validate'] || [], forceValidate, throwErrors, __(messages && messages.validateFailed))
322
355
  .then(function (result) {
323
356
  if (result) {
324
357
  dispatchEvent('validateSucc', data);
@@ -348,11 +381,12 @@ var Form = /** @class */ (function (_super) {
348
381
  this.flush();
349
382
  store.setValues(value, undefined, replace);
350
383
  };
351
- Form.prototype.submit = function (fn) {
384
+ Form.prototype.submit = function (fn, throwErrors) {
385
+ if (throwErrors === void 0) { throwErrors = false; }
352
386
  var _a = this.props, store = _a.store, messages = _a.messages, __ = _a.translate, dispatchEvent = _a.dispatchEvent, data = _a.data;
353
387
  this.flush();
354
388
  var validateErrCb = function () { return dispatchEvent('validateError', data); };
355
- return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb);
389
+ return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb, throwErrors);
356
390
  };
357
391
  // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。
358
392
  Form.prototype.flush = function () {
@@ -441,27 +475,29 @@ var Form = /** @class */ (function (_super) {
441
475
  };
442
476
  Form.prototype.handleBulkChange = function (values, submit) {
443
477
  var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
444
- store.updateData(values);
445
- store.items.forEach(function (formItem) {
446
- var updatedValue = getVariable(values, formItem.name, false);
447
- if (updatedValue !== undefined) {
448
- // 更新验证状态但保留错误信息
449
- formItem.reset(true);
450
- // 这里需要更新value,否则提交时不会使用新的字段值校验
451
- formItem.changeTmpValue(updatedValue);
452
- formItem.validateOnChange && formItem.validate(values);
453
- }
454
- });
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
+ // });
455
490
  (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
456
491
  };
457
492
  Form.prototype.handleFormSubmit = function (e) {
458
- var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor;
493
+ var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor, close = _a.close;
459
494
  e.preventDefault();
460
495
  if (preventEnterSubmit) {
461
496
  return false;
462
497
  }
463
498
  var sensor = this.handleAction(e, {
464
- type: 'submit'
499
+ type: 'submit',
500
+ close: close
465
501
  }, this.props.store.data);
466
502
  // 让外层可以监控这个动作执行结果
467
503
  onActionSensor === null || onActionSensor === void 0 ? void 0 : onActionSensor(sensor);
@@ -552,7 +588,7 @@ var Form = /** @class */ (function (_super) {
552
588
  _this.reloadTarget(filterTarget(action.target, values), values);
553
589
  }
554
590
  else if (action.actionType === 'dialog') {
555
- store.openDialog(data);
591
+ store.openDialog(data, undefined, action.callback, delegate || _this.context);
556
592
  }
557
593
  else if (action.actionType === 'drawer') {
558
594
  store.openDrawer(data);
@@ -626,7 +662,10 @@ var Form = /** @class */ (function (_super) {
626
662
  throw new SkipOperation();
627
663
  }
628
664
  _a.label = 2;
629
- case 2: return [2 /*return*/];
665
+ case 2: return [2 /*return*/, injectObjectChain(store.data, {
666
+ __payload: values,
667
+ __response: response
668
+ })];
630
669
  }
631
670
  });
632
671
  }); });
@@ -636,7 +675,7 @@ var Form = /** @class */ (function (_super) {
636
675
  dispatchEvent_1('submitSucc', createObject(_this.props.data, values));
637
676
  }
638
677
  return Promise.resolve(null);
639
- })
678
+ }, throwErrors)
640
679
  .then(function (values) {
641
680
  // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。
642
681
  if (values === false) {
@@ -675,11 +714,11 @@ var Form = /** @class */ (function (_super) {
675
714
  }
676
715
  else if (action.actionType === 'validate') {
677
716
  store.setCurrentAction(action);
678
- this.validate(true);
717
+ return [2 /*return*/, this.validate(true, throwErrors)];
679
718
  }
680
719
  else if (action.actionType === 'dialog') {
681
720
  store.setCurrentAction(action);
682
- store.openDialog(data);
721
+ store.openDialog(data, undefined, action.callback, delegate || this.context);
683
722
  }
684
723
  else if (action.actionType === 'drawer') {
685
724
  store.setCurrentAction(action);
@@ -752,12 +791,21 @@ var Form = /** @class */ (function (_super) {
752
791
  });
753
792
  };
754
793
  Form.prototype.handleQuery = function (query) {
755
- var _a, _b;
756
794
  if (this.props.initApi) {
795
+ // 如果是分页动作,则看接口里面有没有用,没用则 return false
796
+ // 让组件自己去排序
797
+ if ((query === null || query === void 0 ? void 0 : query.hasOwnProperty('orderBy')) &&
798
+ !isApiOutdated(this.props.initApi, this.props.initApi, this.props.store.data, createObject(this.props.store.data, query))) {
799
+ return false;
800
+ }
757
801
  this.receive(query);
802
+ return;
803
+ }
804
+ if (this.props.onQuery) {
805
+ return this.props.onQuery(query);
758
806
  }
759
807
  else {
760
- (_b = (_a = this.props).onQuery) === null || _b === void 0 ? void 0 : _b.call(_a, query);
808
+ return false;
761
809
  }
762
810
  };
763
811
  Form.prototype.handleDialogConfirm = function (values, action, ctx, targets) {
@@ -811,7 +859,7 @@ var Form = /** @class */ (function (_super) {
811
859
  });
812
860
  store.openDialog(ctx, undefined, function (confirmed) {
813
861
  resolve(confirmed);
814
- });
862
+ }, _this.context);
815
863
  });
816
864
  };
817
865
  Form.prototype.buildActions = function () {
@@ -907,7 +955,7 @@ var Form = /** @class */ (function (_super) {
907
955
  }
908
956
  var props = __assign(__assign({}, this.props), otherProps);
909
957
  var form = this.props.store;
910
- 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;
911
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,
912
960
  /**
913
961
  * form.loading有为true时才下发disabled属性,否则不显性设置disbaled为false
@@ -934,14 +982,7 @@ var Form = /** @class */ (function (_super) {
934
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 },
935
983
  React.createElement("input", { type: "submit", style: { display: 'none' } }),
936
984
  debug
937
- ? render('form-debug-json', extend({
938
- type: 'json',
939
- value: store.data,
940
- ellipsisThreshold: 120,
941
- className: cx('Form--debug')
942
- },
943
- /** 定制debug输出格式 */
944
- isObject(debugConfig) ? debugConfig : {}))
985
+ ? render('form-debug-json', __assign({ type: 'json', value: store.data, ellipsisThreshold: 120, className: cx('Form--debug') }, debugConfig))
945
986
  : null,
946
987
  render('spinner', { type: 'spinner' }, {
947
988
  overlay: true,
@@ -1141,57 +1182,70 @@ var FormRenderer = /** @class */ (function (_super) {
1141
1182
  scoped.close(target);
1142
1183
  };
1143
1184
  FormRenderer.prototype.reload = function (target, query, ctx, silent, replace) {
1144
- if (query) {
1145
- return this.receive(query, undefined, replace);
1146
- }
1147
- var scoped = this.context;
1148
- var subPath = '';
1149
- var idx;
1150
- var subQuery = null;
1151
- if (target && ~(idx = target.indexOf('.'))) {
1152
- subPath = target.substring(idx + 1);
1153
- target = target.substring(0, idx);
1154
- }
1155
- var idx2 = target ? target.indexOf('?') : -1;
1156
- if (~idx2) {
1157
- subQuery = dataMapping(qsparse(target.substring(idx2 + 1)), ctx);
1158
- target = target.substring(0, idx2);
1159
- }
1160
- var component;
1161
- if (target &&
1162
- (component = scoped.getComponentByName(target)) &&
1163
- component.reload) {
1164
- component.reload(subPath, subQuery, ctx);
1165
- }
1166
- else if (target === '*') {
1167
- _super.prototype.reload.call(this, target, query, ctx, silent);
1168
- var components = scoped.getComponents();
1169
- components.forEach(function (component) {
1170
- 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
+ }
1171
1223
  });
1172
- }
1173
- else {
1174
- _super.prototype.reload.call(this, target, query, ctx, silent);
1175
- }
1224
+ });
1176
1225
  };
1177
1226
  FormRenderer.prototype.receive = function (values, name, replace) {
1178
- if (name) {
1179
- var scoped = this.context;
1180
- var idx = name.indexOf('.');
1181
- var subPath = '';
1182
- if (~idx) {
1183
- subPath = name.substring(1 + idx);
1184
- name = name.substring(0, idx);
1185
- }
1186
- var component = scoped.getComponentByName(name);
1187
- component && component.receive && component.receive(values, subPath);
1188
- return;
1189
- }
1190
- 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
+ });
1191
1245
  };
1192
1246
  FormRenderer.prototype.setData = function (values, replace) {
1193
1247
  var _a = this.props, onChange = _a.onChange, store = _a.store;
1194
- _super.prototype.setValues.call(this, values);
1248
+ _super.prototype.setValues.call(this, values, replace);
1195
1249
  // 触发表单change
1196
1250
  onChange &&
1197
1251
  onChange(store.data, difference(store.data, store.pristine), this.props);