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,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
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;
@@ -195,7 +225,7 @@ var Form = /** @class */ (function (_super) {
195
225
  case 0:
196
226
  _b = this.props, data = _b.data, store = _b.store, dispatchEvent = _b.dispatchEvent;
197
227
  if (store.fetching) {
198
- return [2 /*return*/];
228
+ return [2 /*return*/, value];
199
229
  }
200
230
  // 派发init事件,参数为初始化数据
201
231
  return [4 /*yield*/, dispatchEvent('inited', object.createObject(data, tslib.__assign(tslib.__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 })))];
@@ -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);
@@ -317,7 +353,8 @@ var Form = /** @class */ (function (_super) {
317
353
  Form.prototype.initInterval = function (value) {
318
354
  var _a = this.props, interval = _a.interval, silentPolling = _a.silentPolling, stopAutoRefreshWhen = _a.stopAutoRefreshWhen, data = _a.data;
319
355
  clearTimeout(this.timer);
320
- interval &&
356
+ (value === null || value === void 0 ? void 0 : value.ok) &&
357
+ interval &&
321
358
  this.mounted &&
322
359
  (!stopAutoRefreshWhen || !tpl.evalExpression(stopAutoRefreshWhen, data)) &&
323
360
  (this.timer = setTimeout(silentPolling ? this.silentReload : this.reload, Math.max(interval, 1000)));
@@ -326,11 +363,12 @@ var Form = /** @class */ (function (_super) {
326
363
  Form.prototype.isValidated = function () {
327
364
  return this.props.store.validated;
328
365
  };
329
- Form.prototype.validate = function (forceValidate) {
330
- 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;
331
369
  this.flush();
332
370
  return store
333
- .validate(this.hooks['validate'] || [], forceValidate)
371
+ .validate(this.hooks['validate'] || [], forceValidate, throwErrors, __(messages && messages.validateFailed))
334
372
  .then(function (result) {
335
373
  if (result) {
336
374
  dispatchEvent('validateSucc', data);
@@ -360,11 +398,12 @@ var Form = /** @class */ (function (_super) {
360
398
  this.flush();
361
399
  store.setValues(value, undefined, replace);
362
400
  };
363
- Form.prototype.submit = function (fn) {
401
+ Form.prototype.submit = function (fn, throwErrors) {
402
+ if (throwErrors === void 0) { throwErrors = false; }
364
403
  var _a = this.props, store = _a.store, messages = _a.messages, __ = _a.translate, dispatchEvent = _a.dispatchEvent, data = _a.data;
365
404
  this.flush();
366
405
  var validateErrCb = function () { return dispatchEvent('validateError', data); };
367
- return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb);
406
+ return store.submit(fn, this.hooks['validate'] || [], __(messages && messages.validateFailed), validateErrCb, throwErrors);
368
407
  };
369
408
  // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。
370
409
  Form.prototype.flush = function () {
@@ -453,27 +492,29 @@ var Form = /** @class */ (function (_super) {
453
492
  };
454
493
  Form.prototype.handleBulkChange = function (values, submit) {
455
494
  var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
456
- store.updateData(values);
457
- store.items.forEach(function (formItem) {
458
- var updatedValue = getVariable.getVariable(values, formItem.name, false);
459
- if (updatedValue !== undefined) {
460
- // 更新验证状态但保留错误信息
461
- formItem.reset(true);
462
- // 这里需要更新value,否则提交时不会使用新的字段值校验
463
- formItem.changeTmpValue(updatedValue);
464
- formItem.validateOnChange && formItem.validate(values);
465
- }
466
- });
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
+ // });
467
507
  (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
468
508
  };
469
509
  Form.prototype.handleFormSubmit = function (e) {
470
- var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor;
510
+ var _a = this.props, preventEnterSubmit = _a.preventEnterSubmit, onActionSensor = _a.onActionSensor, close = _a.close;
471
511
  e.preventDefault();
472
512
  if (preventEnterSubmit) {
473
513
  return false;
474
514
  }
475
515
  var sensor = this.handleAction(e, {
476
- type: 'submit'
516
+ type: 'submit',
517
+ close: close
477
518
  }, this.props.store.data);
478
519
  // 让外层可以监控这个动作执行结果
479
520
  onActionSensor === null || onActionSensor === void 0 ? void 0 : onActionSensor(sensor);
@@ -564,7 +605,7 @@ var Form = /** @class */ (function (_super) {
564
605
  _this.reloadTarget(Scoped.filterTarget(action.target, values), values);
565
606
  }
566
607
  else if (action.actionType === 'dialog') {
567
- store.openDialog(data);
608
+ store.openDialog(data, undefined, action.callback, delegate || _this.context);
568
609
  }
569
610
  else if (action.actionType === 'drawer') {
570
611
  store.openDrawer(data);
@@ -638,7 +679,10 @@ var Form = /** @class */ (function (_super) {
638
679
  throw new helper.SkipOperation();
639
680
  }
640
681
  _a.label = 2;
641
- case 2: return [2 /*return*/];
682
+ case 2: return [2 /*return*/, object.injectObjectChain(store.data, {
683
+ __payload: values,
684
+ __response: response
685
+ })];
642
686
  }
643
687
  });
644
688
  }); });
@@ -648,7 +692,7 @@ var Form = /** @class */ (function (_super) {
648
692
  dispatchEvent_1('submitSucc', object.createObject(_this.props.data, values));
649
693
  }
650
694
  return Promise.resolve(null);
651
- })
695
+ }, throwErrors)
652
696
  .then(function (values) {
653
697
  // 有可能 onSubmit return false 了,那么后面的就不应该再执行了。
654
698
  if (values === false) {
@@ -687,11 +731,11 @@ var Form = /** @class */ (function (_super) {
687
731
  }
688
732
  else if (action.actionType === 'validate') {
689
733
  store.setCurrentAction(action);
690
- this.validate(true);
734
+ return [2 /*return*/, this.validate(true, throwErrors)];
691
735
  }
692
736
  else if (action.actionType === 'dialog') {
693
737
  store.setCurrentAction(action);
694
- store.openDialog(data);
738
+ store.openDialog(data, undefined, action.callback, delegate || this.context);
695
739
  }
696
740
  else if (action.actionType === 'drawer') {
697
741
  store.setCurrentAction(action);
@@ -764,12 +808,21 @@ var Form = /** @class */ (function (_super) {
764
808
  });
765
809
  };
766
810
  Form.prototype.handleQuery = function (query) {
767
- var _a, _b;
768
811
  if (this.props.initApi) {
812
+ // 如果是分页动作,则看接口里面有没有用,没用则 return false
813
+ // 让组件自己去排序
814
+ if ((query === null || query === void 0 ? void 0 : query.hasOwnProperty('orderBy')) &&
815
+ !api.isApiOutdated(this.props.initApi, this.props.initApi, this.props.store.data, object.createObject(this.props.store.data, query))) {
816
+ return false;
817
+ }
769
818
  this.receive(query);
819
+ return;
820
+ }
821
+ if (this.props.onQuery) {
822
+ return this.props.onQuery(query);
770
823
  }
771
824
  else {
772
- (_b = (_a = this.props).onQuery) === null || _b === void 0 ? void 0 : _b.call(_a, query);
825
+ return false;
773
826
  }
774
827
  };
775
828
  Form.prototype.handleDialogConfirm = function (values, action, ctx, targets) {
@@ -823,7 +876,7 @@ var Form = /** @class */ (function (_super) {
823
876
  });
824
877
  store.openDialog(ctx, undefined, function (confirmed) {
825
878
  resolve(confirmed);
826
- });
879
+ }, _this.context);
827
880
  });
828
881
  };
829
882
  Form.prototype.buildActions = function () {
@@ -895,9 +948,9 @@ var Form = /** @class */ (function (_super) {
895
948
  return null;
896
949
  }
897
950
  var cx_1 = this.props.classnames;
898
- 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) {
899
952
  return ~['hidden', 'formula'].indexOf(control.type) ||
900
- 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' }))));
901
954
  })));
902
955
  }
903
956
  return children.map(function (control, key) {
@@ -919,7 +972,7 @@ var Form = /** @class */ (function (_super) {
919
972
  }
920
973
  var props = tslib.__assign(tslib.__assign({}, this.props), otherProps);
921
974
  var form = this.props.store;
922
- 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;
923
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,
924
977
  /**
925
978
  * form.loading有为true时才下发disabled属性,否则不显性设置disbaled为false
@@ -942,18 +995,11 @@ var Form = /** @class */ (function (_super) {
942
995
  (/(?:\/|^)form\//.test($path) ? 'div' : 'form');
943
996
  var padDom = helper.repeatCount(columnCount && Array.isArray(body)
944
997
  ? columnCount - (body.length % columnCount)
945
- : 0, function (index) { return (React__default["default"].createElement("div", { className: cx("Form-item Form-item--".concat(mode, " is-placeholder")), key: index })); });
946
- 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 },
947
- 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' } }),
948
1001
  debug
949
- ? render('form-debug-json', extend__default["default"]({
950
- type: 'json',
951
- value: store.data,
952
- ellipsisThreshold: 120,
953
- className: cx('Form--debug')
954
- },
955
- /** 定制debug输出格式 */
956
- object.isObject(debugConfig) ? debugConfig : {}))
1002
+ ? render('form-debug-json', tslib.__assign({ type: 'json', value: store.data, ellipsisThreshold: 120, className: cx('Form--debug') }, debugConfig))
957
1003
  : null,
958
1004
  render('spinner', { type: 'spinner' }, {
959
1005
  overlay: true,
@@ -964,7 +1010,7 @@ var Form = /** @class */ (function (_super) {
964
1010
  body: body
965
1011
  }),
966
1012
  padDom,
967
- 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,
968
1014
  render('modal', tslib.__assign(tslib.__assign({}, (store.action &&
969
1015
  store.action.dialog)), { type: 'dialog' }), {
970
1016
  key: 'dialog',
@@ -1009,7 +1055,7 @@ var Form = /** @class */ (function (_super) {
1009
1055
  });
1010
1056
  }
1011
1057
  if (lazyLoad) {
1012
- body = React__default["default"].createElement(LazyComponent["default"], null, body);
1058
+ body = _J$X_(LazyComponent["default"], null, body);
1013
1059
  }
1014
1060
  return body;
1015
1061
  };
@@ -1153,57 +1199,70 @@ var FormRenderer = /** @class */ (function (_super) {
1153
1199
  scoped.close(target);
1154
1200
  };
1155
1201
  FormRenderer.prototype.reload = function (target, query, ctx, silent, replace) {
1156
- if (query) {
1157
- return this.receive(query, undefined, replace);
1158
- }
1159
- var scoped = this.context;
1160
- var subPath = '';
1161
- var idx;
1162
- var subQuery = null;
1163
- if (target && ~(idx = target.indexOf('.'))) {
1164
- subPath = target.substring(idx + 1);
1165
- target = target.substring(0, idx);
1166
- }
1167
- var idx2 = target ? target.indexOf('?') : -1;
1168
- if (~idx2) {
1169
- subQuery = dataMapping.dataMapping(helper.qsparse(target.substring(idx2 + 1)), ctx);
1170
- target = target.substring(0, idx2);
1171
- }
1172
- var component;
1173
- if (target &&
1174
- (component = scoped.getComponentByName(target)) &&
1175
- component.reload) {
1176
- component.reload(subPath, subQuery, ctx);
1177
- }
1178
- else if (target === '*') {
1179
- _super.prototype.reload.call(this, target, query, ctx, silent);
1180
- var components = scoped.getComponents();
1181
- components.forEach(function (component) {
1182
- 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
+ }
1183
1240
  });
1184
- }
1185
- else {
1186
- _super.prototype.reload.call(this, target, query, ctx, silent);
1187
- }
1241
+ });
1188
1242
  };
1189
1243
  FormRenderer.prototype.receive = function (values, name, replace) {
1190
- if (name) {
1191
- var scoped = this.context;
1192
- var idx = name.indexOf('.');
1193
- var subPath = '';
1194
- if (~idx) {
1195
- subPath = name.substring(1 + idx);
1196
- name = name.substring(0, idx);
1197
- }
1198
- var component = scoped.getComponentByName(name);
1199
- component && component.receive && component.receive(values, subPath);
1200
- return;
1201
- }
1202
- 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
+ });
1203
1262
  };
1204
1263
  FormRenderer.prototype.setData = function (values, replace) {
1205
1264
  var _a = this.props, onChange = _a.onChange, store = _a.store;
1206
- _super.prototype.setValues.call(this, values);
1265
+ _super.prototype.setValues.call(this, values, replace);
1207
1266
  // 触发表单change
1208
1267
  onChange &&
1209
1268
  onChange(store.data, helper.difference(store.data, store.pristine), this.props);