amis-core 6.8.0 → 6.9.0-beta.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 (320) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +24 -2
  4. package/esm/SchemaRenderer.js +32 -17
  5. package/esm/Scoped.d.ts +1 -1
  6. package/esm/Scoped.js +1 -1
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +10 -10
  10. package/esm/actions/Action.js +1 -1
  11. package/esm/actions/AjaxAction.js +1 -1
  12. package/esm/actions/BreakAction.js +1 -1
  13. package/esm/actions/BroadcastAction.js +1 -1
  14. package/esm/actions/CmptAction.js +57 -50
  15. package/esm/actions/ContinueAction.js +1 -1
  16. package/esm/actions/CopyAction.js +1 -1
  17. package/esm/actions/CustomAction.js +1 -1
  18. package/esm/actions/DialogAction.js +1 -1
  19. package/esm/actions/DrawerAction.js +1 -1
  20. package/esm/actions/EmailAction.js +1 -1
  21. package/esm/actions/EventAction.js +1 -1
  22. package/esm/actions/LinkAction.js +1 -1
  23. package/esm/actions/LoopAction.js +1 -1
  24. package/esm/actions/PageAction.js +1 -1
  25. package/esm/actions/ParallelAction.js +1 -1
  26. package/esm/actions/PrintAction.js +1 -1
  27. package/esm/actions/StatusAction.js +1 -1
  28. package/esm/actions/SwitchAction.js +1 -1
  29. package/esm/actions/ToastAction.js +3 -3
  30. package/esm/actions/WaitAction.js +1 -1
  31. package/esm/components/CustomStyle.js +1 -1
  32. package/esm/components/ErrorBoundary.js +1 -1
  33. package/esm/components/LazyComponent.d.ts +40 -2
  34. package/esm/components/LazyComponent.js +13 -7
  35. package/esm/components/Overlay.js +1 -1
  36. package/esm/components/PopOver.d.ts +1 -1
  37. package/esm/components/PopOver.js +1 -1
  38. package/esm/env.d.ts +0 -4
  39. package/esm/env.js +1 -1
  40. package/esm/envOverwrite.js +1 -1
  41. package/esm/factory.d.ts +19 -2
  42. package/esm/factory.js +205 -45
  43. package/esm/index.d.ts +4 -4
  44. package/esm/index.js +9 -5
  45. package/esm/locale.d.ts +1 -1
  46. package/esm/locale.js +13 -2
  47. package/esm/polyfills.js +1 -1
  48. package/esm/renderers/Form.d.ts +5 -5
  49. package/esm/renderers/Form.js +27 -14
  50. package/esm/renderers/Item.d.ts +19 -13
  51. package/esm/renderers/Item.js +13 -14
  52. package/esm/renderers/Options.d.ts +3 -3
  53. package/esm/renderers/Options.js +42 -19
  54. package/esm/renderers/Placeholder.js +1 -1
  55. package/esm/renderers/builtin.js +1 -1
  56. package/esm/renderers/register.js +1 -1
  57. package/esm/renderers/wrapControl.d.ts +3 -3
  58. package/esm/renderers/wrapControl.js +24 -10
  59. package/esm/store/app.d.ts +3 -3
  60. package/esm/store/app.js +1 -1
  61. package/esm/store/combo.d.ts +17 -15
  62. package/esm/store/combo.js +1 -1
  63. package/esm/store/crud.d.ts +3 -3
  64. package/esm/store/crud.js +1 -1
  65. package/esm/store/form.d.ts +8 -7
  66. package/esm/store/form.js +28 -6
  67. package/esm/store/formItem.js +3 -3
  68. package/esm/store/iRenderer.d.ts +4 -3
  69. package/esm/store/iRenderer.js +28 -4
  70. package/esm/store/index.d.ts +1 -0
  71. package/esm/store/index.js +3 -2
  72. package/esm/store/list.d.ts +3 -3
  73. package/esm/store/list.js +1 -1
  74. package/esm/store/manager.js +1 -1
  75. package/esm/store/modal.d.ts +3 -3
  76. package/esm/store/modal.js +1 -1
  77. package/esm/store/node.js +1 -1
  78. package/esm/store/pagination.d.ts +3 -3
  79. package/esm/store/pagination.js +1 -1
  80. package/esm/store/root.d.ts +5 -3
  81. package/esm/store/root.js +45 -21
  82. package/esm/store/service.d.ts +3 -3
  83. package/esm/store/service.js +10 -4
  84. package/esm/store/status.js +1 -1
  85. package/esm/store/table.d.ts +17 -15
  86. package/esm/store/table.js +1 -1
  87. package/esm/store/table2.d.ts +3 -3
  88. package/esm/store/table2.js +1 -1
  89. package/esm/theme.d.ts +1 -1
  90. package/esm/theme.js +13 -2
  91. package/esm/types.d.ts +19 -2
  92. package/esm/utils/Animation.js +1 -1
  93. package/esm/utils/ColorScale.js +1 -1
  94. package/esm/utils/DataSchema.js +1 -1
  95. package/esm/utils/DataScope.js +1 -1
  96. package/esm/utils/RootClose.js +1 -1
  97. package/esm/utils/SimpleMap.js +1 -1
  98. package/esm/utils/api.d.ts +21 -1
  99. package/esm/utils/api.js +138 -41
  100. package/esm/utils/arraySlice.js +1 -1
  101. package/esm/utils/attachmentAdpator.js +1 -1
  102. package/esm/utils/autobind.js +1 -1
  103. package/esm/utils/browser.js +1 -1
  104. package/esm/utils/columnsSplit.js +1 -1
  105. package/esm/utils/concatData.js +1 -1
  106. package/esm/utils/dataMapping.js +1 -1
  107. package/esm/utils/date.js +1 -1
  108. package/esm/utils/debug.js +1 -1
  109. package/esm/utils/decodeEntity.js +1 -1
  110. package/esm/utils/dom.js +1 -1
  111. package/esm/utils/errors.js +1 -1
  112. package/esm/utils/escapeHtml.js +1 -1
  113. package/esm/utils/filter-schema.js +1 -1
  114. package/esm/utils/filter.js +1 -1
  115. package/esm/utils/formatDuration.js +1 -1
  116. package/esm/utils/formula.js +1 -1
  117. package/esm/utils/getVariable.js +1 -1
  118. package/esm/utils/grammar.js +1 -1
  119. package/esm/utils/handleAction.js +1 -1
  120. package/esm/utils/helper.js +1 -1
  121. package/esm/utils/highlight.js +1 -1
  122. package/esm/utils/icon.js +1 -1
  123. package/esm/utils/image.js +1 -1
  124. package/esm/utils/isPureVariable.js +1 -1
  125. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  126. package/esm/utils/keyToPath.js +1 -1
  127. package/esm/utils/labelToString.js +4 -1
  128. package/esm/utils/makeSorter.js +1 -1
  129. package/esm/utils/math.js +1 -1
  130. package/esm/utils/memoryParse.js +1 -1
  131. package/esm/utils/normalizeLink.js +1 -1
  132. package/esm/utils/normalizeOptions.js +1 -1
  133. package/esm/utils/object.js +1 -1
  134. package/esm/utils/offset.js +1 -1
  135. package/esm/utils/offsetParent.js +1 -1
  136. package/esm/utils/optionValueCompare.js +1 -1
  137. package/esm/utils/position.js +1 -1
  138. package/esm/utils/prettyBytes.js +1 -1
  139. package/esm/utils/printElement.js +1 -1
  140. package/esm/utils/renderer-event.js +1 -1
  141. package/esm/utils/replaceText.js +1 -1
  142. package/esm/utils/resize-sensor.js +1 -1
  143. package/esm/utils/resolveCondition.js +1 -1
  144. package/esm/utils/resolveVariable.js +1 -1
  145. package/esm/utils/resolveVariableAndFilter.js +1 -1
  146. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  147. package/esm/utils/scrollPosition.js +1 -1
  148. package/esm/utils/string2regExp.js +1 -1
  149. package/esm/utils/stripNumber.js +1 -1
  150. package/esm/utils/style-helper.js +1 -1
  151. package/esm/utils/style.js +1 -1
  152. package/esm/utils/toNumber.js +1 -1
  153. package/esm/utils/tokenize.js +1 -1
  154. package/esm/utils/tpl-builtin.js +1 -1
  155. package/esm/utils/tpl-lodash.js +1 -1
  156. package/esm/utils/tpl.js +1 -1
  157. package/esm/utils/uncontrollable.js +1 -1
  158. package/esm/utils/validateId.js +1 -1
  159. package/esm/utils/validations.js +1 -1
  160. package/esm/utils/visitedCache.js +1 -1
  161. package/lib/Root.js +1 -1
  162. package/lib/RootRenderer.js +23 -1
  163. package/lib/SchemaRenderer.js +30 -15
  164. package/lib/Scoped.d.ts +1 -1
  165. package/lib/Scoped.js +1 -1
  166. package/lib/StatusScoped.js +1 -1
  167. package/lib/WithRootStore.js +1 -1
  168. package/lib/WithStore.js +10 -10
  169. package/lib/actions/Action.js +1 -1
  170. package/lib/actions/AjaxAction.js +1 -1
  171. package/lib/actions/BreakAction.js +1 -1
  172. package/lib/actions/BroadcastAction.js +1 -1
  173. package/lib/actions/CmptAction.js +56 -49
  174. package/lib/actions/ContinueAction.js +1 -1
  175. package/lib/actions/CopyAction.js +1 -1
  176. package/lib/actions/CustomAction.js +1 -1
  177. package/lib/actions/DialogAction.js +1 -1
  178. package/lib/actions/DrawerAction.js +1 -1
  179. package/lib/actions/EmailAction.js +1 -1
  180. package/lib/actions/EventAction.js +1 -1
  181. package/lib/actions/LinkAction.js +1 -1
  182. package/lib/actions/LoopAction.js +1 -1
  183. package/lib/actions/PageAction.js +1 -1
  184. package/lib/actions/ParallelAction.js +1 -1
  185. package/lib/actions/PrintAction.js +1 -1
  186. package/lib/actions/StatusAction.js +1 -1
  187. package/lib/actions/SwitchAction.js +1 -1
  188. package/lib/actions/ToastAction.js +2 -2
  189. package/lib/actions/WaitAction.js +1 -1
  190. package/lib/components/CustomStyle.js +1 -1
  191. package/lib/components/ErrorBoundary.js +1 -1
  192. package/lib/components/LazyComponent.d.ts +40 -2
  193. package/lib/components/LazyComponent.js +14 -7
  194. package/lib/components/Overlay.js +1 -1
  195. package/lib/components/PopOver.d.ts +1 -1
  196. package/lib/components/PopOver.js +1 -1
  197. package/lib/env.d.ts +0 -4
  198. package/lib/env.js +1 -1
  199. package/lib/envOverwrite.js +1 -1
  200. package/lib/factory.d.ts +19 -2
  201. package/lib/factory.js +211 -44
  202. package/lib/index.d.ts +4 -4
  203. package/lib/index.js +16 -2
  204. package/lib/locale.d.ts +1 -1
  205. package/lib/locale.js +13 -2
  206. package/lib/polyfills.js +1 -1
  207. package/lib/renderers/Form.d.ts +5 -5
  208. package/lib/renderers/Form.js +25 -12
  209. package/lib/renderers/Item.d.ts +19 -13
  210. package/lib/renderers/Item.js +12 -13
  211. package/lib/renderers/Options.d.ts +3 -3
  212. package/lib/renderers/Options.js +42 -19
  213. package/lib/renderers/Placeholder.js +1 -1
  214. package/lib/renderers/builtin.js +1 -1
  215. package/lib/renderers/register.js +1 -1
  216. package/lib/renderers/wrapControl.d.ts +3 -3
  217. package/lib/renderers/wrapControl.js +24 -10
  218. package/lib/store/app.d.ts +3 -3
  219. package/lib/store/app.js +1 -1
  220. package/lib/store/combo.d.ts +41 -40
  221. package/lib/store/combo.js +1 -1
  222. package/lib/store/crud.d.ts +3 -3
  223. package/lib/store/crud.js +2 -2
  224. package/lib/store/form.d.ts +18 -18
  225. package/lib/store/form.js +28 -6
  226. package/lib/store/formItem.js +3 -3
  227. package/lib/store/iRenderer.d.ts +4 -3
  228. package/lib/store/iRenderer.js +28 -4
  229. package/lib/store/index.d.ts +1 -0
  230. package/lib/store/index.js +3 -1
  231. package/lib/store/list.d.ts +3 -3
  232. package/lib/store/list.js +1 -1
  233. package/lib/store/manager.js +1 -1
  234. package/lib/store/modal.d.ts +3 -3
  235. package/lib/store/modal.js +1 -1
  236. package/lib/store/node.js +1 -1
  237. package/lib/store/pagination.d.ts +3 -3
  238. package/lib/store/pagination.js +1 -1
  239. package/lib/store/root.d.ts +5 -3
  240. package/lib/store/root.js +43 -19
  241. package/lib/store/service.d.ts +3 -3
  242. package/lib/store/service.js +10 -4
  243. package/lib/store/status.js +1 -1
  244. package/lib/store/table.d.ts +37 -36
  245. package/lib/store/table.js +1 -1
  246. package/lib/store/table2.d.ts +3 -3
  247. package/lib/store/table2.js +1 -1
  248. package/lib/theme.d.ts +1 -1
  249. package/lib/theme.js +13 -2
  250. package/lib/types.d.ts +19 -2
  251. package/lib/utils/Animation.js +1 -1
  252. package/lib/utils/ColorScale.js +1 -1
  253. package/lib/utils/DataSchema.js +1 -1
  254. package/lib/utils/DataScope.js +1 -1
  255. package/lib/utils/RootClose.js +1 -1
  256. package/lib/utils/SimpleMap.js +1 -1
  257. package/lib/utils/api.d.ts +21 -1
  258. package/lib/utils/api.js +141 -40
  259. package/lib/utils/arraySlice.js +1 -1
  260. package/lib/utils/attachmentAdpator.js +1 -1
  261. package/lib/utils/autobind.js +1 -1
  262. package/lib/utils/browser.js +1 -1
  263. package/lib/utils/columnsSplit.js +1 -1
  264. package/lib/utils/concatData.js +1 -1
  265. package/lib/utils/dataMapping.js +1 -1
  266. package/lib/utils/date.js +1 -1
  267. package/lib/utils/debug.js +2 -2
  268. package/lib/utils/decodeEntity.js +1 -1
  269. package/lib/utils/dom.js +1 -1
  270. package/lib/utils/errors.js +1 -1
  271. package/lib/utils/escapeHtml.js +1 -1
  272. package/lib/utils/filter-schema.js +1 -1
  273. package/lib/utils/filter.js +1 -1
  274. package/lib/utils/formatDuration.js +1 -1
  275. package/lib/utils/formula.js +1 -1
  276. package/lib/utils/getVariable.js +1 -1
  277. package/lib/utils/grammar.js +1 -1
  278. package/lib/utils/handleAction.js +1 -1
  279. package/lib/utils/helper.js +1 -1
  280. package/lib/utils/highlight.js +1 -1
  281. package/lib/utils/icon.js +1 -1
  282. package/lib/utils/image.js +1 -1
  283. package/lib/utils/isPureVariable.js +1 -1
  284. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  285. package/lib/utils/keyToPath.js +1 -1
  286. package/lib/utils/labelToString.js +4 -1
  287. package/lib/utils/makeSorter.js +1 -1
  288. package/lib/utils/math.js +1 -1
  289. package/lib/utils/memoryParse.js +1 -1
  290. package/lib/utils/normalizeLink.js +1 -1
  291. package/lib/utils/normalizeOptions.js +1 -1
  292. package/lib/utils/object.js +1 -1
  293. package/lib/utils/offset.js +1 -1
  294. package/lib/utils/offsetParent.js +1 -1
  295. package/lib/utils/optionValueCompare.js +1 -1
  296. package/lib/utils/position.js +1 -1
  297. package/lib/utils/prettyBytes.js +1 -1
  298. package/lib/utils/printElement.js +1 -1
  299. package/lib/utils/renderer-event.js +1 -1
  300. package/lib/utils/replaceText.js +1 -1
  301. package/lib/utils/resize-sensor.js +1 -1
  302. package/lib/utils/resolveCondition.js +1 -1
  303. package/lib/utils/resolveVariable.js +1 -1
  304. package/lib/utils/resolveVariableAndFilter.js +1 -1
  305. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  306. package/lib/utils/scrollPosition.js +1 -1
  307. package/lib/utils/string2regExp.js +1 -1
  308. package/lib/utils/stripNumber.js +1 -1
  309. package/lib/utils/style-helper.js +1 -1
  310. package/lib/utils/style.js +1 -1
  311. package/lib/utils/toNumber.js +1 -1
  312. package/lib/utils/tokenize.js +1 -1
  313. package/lib/utils/tpl-builtin.js +1 -1
  314. package/lib/utils/tpl-lodash.js +1 -1
  315. package/lib/utils/tpl.js +1 -1
  316. package/lib/utils/uncontrollable.js +1 -1
  317. package/lib/utils/validateId.js +1 -1
  318. package/lib/utils/validations.js +1 -1
  319. package/lib/utils/visitedCache.js +1 -1
  320. package/package.json +2 -2
package/lib/factory.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -30,6 +30,8 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
30
30
  (__react_jsx__["default"] || __react_jsx__).Fragment;
31
31
  var _a, _b;
32
32
  var renderers = [];
33
+ // type 与 RendererConfig 的映射关系
34
+ var renderersTypeMap = {};
33
35
  var renderersMap = {};
34
36
  var schemaFilters = [];
35
37
  var anonymousIndex = 1;
@@ -45,53 +47,124 @@ function Renderer(config) {
45
47
  return renderer.component;
46
48
  };
47
49
  }
50
+ // mobx-react 的 observer 会修改原型链的 render 方法
51
+ // 如果想继承覆盖组件的 render 方法,需要把原型链 render 还原回来
52
+ // 否则无法调用 super.render 方法
53
+ function fixMobxInjectRender(klass) {
54
+ var _a;
55
+ var target = klass.prototype;
56
+ // mobx-react 篡改之前先记录原始 render
57
+ if (target === null || target === void 0 ? void 0 : target.render) {
58
+ target.__originRender = target.render;
59
+ }
60
+ // 将父级类上面被 mobx 篡改的 render 方法还原回来
61
+ // 而且当前类的 render 也是会被篡改的,所以父级上的其实不需要篡改
62
+ if ((_a = target === null || target === void 0 ? void 0 : target.__proto__) === null || _a === void 0 ? void 0 : _a.hasOwnProperty('__originRender')) {
63
+ var originProto = target.__proto__;
64
+ target.__proto__ = Object.create(originProto.__proto__ || Object);
65
+ Object.assign(target.__proto__, originProto);
66
+ target.__proto__.render = originProto.__originRender;
67
+ }
68
+ return klass;
69
+ }
70
+ // 将 renderer 转成组件
71
+ function rendererToComponent(component, config) {
72
+ if (config.storeType && config.component) {
73
+ component = WithStore.HocStoreFactory({
74
+ storeType: config.storeType,
75
+ extendsData: config.storeExtendsData,
76
+ shouldSyncSuperStore: config.shouldSyncSuperStore
77
+ })(mobxReact.observer(fixMobxInjectRender(component)));
78
+ }
79
+ if (config.isolateScope) {
80
+ component = Scoped.HocScoped(component, config.type);
81
+ }
82
+ return component;
83
+ }
48
84
  function registerRenderer(config) {
49
85
  if (!config.test && !config.type) {
50
- throw new TypeError('please set config.test or config.type');
86
+ throw new TypeError('please set config.type or config.test');
51
87
  }
52
- else if (!config.component) {
53
- throw new TypeError('config.component is required');
88
+ else if (!config.type && config.name !== 'static') {
89
+ // todo static 目前还没办法不用 test 来实现
90
+ console.warn("config.type is recommended for register renderer(".concat(config.test, ")"));
54
91
  }
55
92
  if (typeof config.type === 'string' && config.type) {
56
93
  config.type = config.type.toLowerCase();
57
94
  config.test =
58
- config.test || new RegExp("(^|/)".concat(string2regExp.string2regExp(config.type), "$"), 'i');
95
+ config.test ||
96
+ new RegExp("(^|/)(?:".concat((config.alias || [])
97
+ .concat(config.type)
98
+ .map(function (type) { return string2regExp.string2regExp(type); })
99
+ .join('|'), ")$"), 'i');
59
100
  }
60
- config.weight = config.weight || 0;
61
- config.Renderer = config.component;
62
- config.name = config.name || config.type || "anonymous-".concat(anonymousIndex++);
63
- if (renderersMap[config.name]) {
64
- throw new Error("The renderer with name \"".concat(config.name, "\" has already exists, please try another name!"));
101
+ var exists = renderersTypeMap[config.type || ''];
102
+ var renderer = tslib.__assign({}, config);
103
+ if (exists &&
104
+ exists.component &&
105
+ exists.component !== Placeholder.Placeholder &&
106
+ config.component &&
107
+ !exists.origin &&
108
+ !config.override) {
109
+ throw new Error("The renderer with type \"".concat(config.type, "\" has already exists, please try another type!"));
65
110
  }
66
- else if (renderersMap.hasOwnProperty(config.name)) {
67
- // 后面补充的
68
- var idx_1 = helper.findIndex(renderers, function (item) { return item.name === config.name; });
69
- ~idx_1 && renderers.splice(idx_1, 0, config);
111
+ else if (exists) {
112
+ // 如果已经存在,合并配置,并用合并后的配置
113
+ Object.assign(exists, config);
114
+ renderer = exists;
70
115
  }
71
- if (config.storeType && config.component) {
72
- config.component = WithStore.HocStoreFactory({
73
- storeType: config.storeType,
74
- extendsData: config.storeExtendsData,
75
- shouldSyncSuperStore: config.shouldSyncSuperStore
76
- })(mobxReact.observer(config.component));
116
+ renderer.weight = renderer.weight || 0;
117
+ renderer.name =
118
+ renderer.name || renderer.type || "anonymous-".concat(anonymousIndex++);
119
+ if (config.component) {
120
+ renderer.Renderer = config.component;
121
+ renderer.component = rendererToComponent(config.component, renderer);
77
122
  }
78
- if (config.isolateScope) {
79
- config.component = Scoped.HocScoped(config.component, config.type);
123
+ if (!exists) {
124
+ var idx = helper.findIndex(renderers, function (item) { return config.weight < item.weight; });
125
+ ~idx ? renderers.splice(idx, 0, renderer) : renderers.push(renderer);
80
126
  }
81
- var idx = helper.findIndex(renderers, function (item) { return config.weight < item.weight; });
82
- ~idx ? renderers.splice(idx, 0, config) : renderers.push(config);
83
- renderersMap[config.name] = config.component !== Placeholder.Placeholder;
84
- return config;
127
+ renderersMap[renderer.name] = !!(renderer.component && renderer.component !== Placeholder.Placeholder);
128
+ renderer.type && (renderersTypeMap[renderer.type] = renderer);
129
+ (renderer.alias || []).forEach(function (alias) {
130
+ var fork = tslib.__assign(tslib.__assign({}, renderer), { type: alias, name: alias, alias: undefined, origin: renderer });
131
+ var idx = renderers.findIndex(function (item) { return item.name === alias; });
132
+ if (~idx) {
133
+ Object.assign(renderers[idx], fork);
134
+ }
135
+ else {
136
+ renderers.push(fork);
137
+ }
138
+ renderersTypeMap[alias] = fork;
139
+ renderersMap[alias] = true;
140
+ });
141
+ return renderer;
85
142
  }
86
143
  function unRegisterRenderer(config) {
144
+ var _a;
87
145
  var name = (typeof config === 'string' ? config : config.name);
88
146
  var idx = renderers.findIndex(function (item) { return item.name === name; });
89
- ~idx && renderers.splice(idx, 1);
90
- delete renderersMap[name];
91
- // 清空渲染器定位缓存
92
- cache = {};
147
+ if (~idx) {
148
+ var renderer_1 = renderers[idx];
149
+ renderers.splice(idx, 1);
150
+ delete renderersMap[name];
151
+ delete renderersTypeMap[renderer_1.type || ''];
152
+ (_a = renderer_1.alias) === null || _a === void 0 ? void 0 : _a.forEach(function (alias) {
153
+ var idx = renderers.findIndex(function (item) { return item.name === alias; });
154
+ idx > -1 && renderers.splice(idx, 1);
155
+ delete renderersTypeMap[alias];
156
+ delete renderersMap[alias];
157
+ });
158
+ // 清空渲染器定位缓存
159
+ Object.keys(cache).forEach(function (key) {
160
+ var value = cache[key];
161
+ if (value === renderer_1) {
162
+ delete cache[key];
163
+ }
164
+ });
165
+ }
93
166
  }
94
- function loadRenderer(schema, path) {
167
+ function loadRendererError(schema, path) {
95
168
  return (_J$X_("div", { className: "RuntimeError" },
96
169
  _J$X_("p", null, "Error: \u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u6E32\u67D3\u5668"),
97
170
  _J$X_("p", null,
@@ -100,12 +173,97 @@ function loadRenderer(schema, path) {
100
173
  _J$X_("pre", null,
101
174
  _J$X_("code", null, JSON.stringify(schema, null, 2)))));
102
175
  }
176
+ function loadAsyncRenderer(renderer) {
177
+ return tslib.__awaiter(this, void 0, void 0, function () {
178
+ var result;
179
+ return tslib.__generator(this, function (_a) {
180
+ switch (_a.label) {
181
+ case 0:
182
+ if (!isAsyncRenderer(renderer)) {
183
+ // already loaded
184
+ return [2 /*return*/];
185
+ }
186
+ return [4 /*yield*/, renderer.getComponent()];
187
+ case 1:
188
+ result = _a.sent();
189
+ // 如果异步加载的组件没有注册渲染器
190
+ // 同时默认导出了一个组件,则自动注册
191
+ if (!renderer.component && result.default) {
192
+ registerRenderer(tslib.__assign(tslib.__assign({}, renderer), { component: result.default }));
193
+ }
194
+ return [2 /*return*/];
195
+ }
196
+ });
197
+ });
198
+ }
199
+ function isAsyncRenderer(item) {
200
+ return (item &&
201
+ (!item.component || item.component === Placeholder.Placeholder) &&
202
+ item.getComponent);
203
+ }
204
+ function hasAsyncRenderers() {
205
+ return renderers.some(isAsyncRenderer);
206
+ }
207
+ function loadAsyncRenderersByType(type, ignore) {
208
+ if (ignore === void 0) { ignore = false; }
209
+ return tslib.__awaiter(this, void 0, void 0, function () {
210
+ var types, asyncRenderers;
211
+ return tslib.__generator(this, function (_a) {
212
+ switch (_a.label) {
213
+ case 0:
214
+ types = Array.isArray(type) ? type : [type];
215
+ asyncRenderers = types
216
+ .map(function (type) {
217
+ var renderer = renderersTypeMap[type];
218
+ if (!renderer && !ignore) {
219
+ throw new Error("Can not find the renderer by type: ".concat(type));
220
+ }
221
+ return renderer;
222
+ })
223
+ .filter(isAsyncRenderer);
224
+ if (!asyncRenderers.length) return [3 /*break*/, 2];
225
+ return [4 /*yield*/, Promise.all(asyncRenderers.map(function (item) { return loadAsyncRenderer(item); }))];
226
+ case 1:
227
+ _a.sent();
228
+ _a.label = 2;
229
+ case 2: return [2 /*return*/];
230
+ }
231
+ });
232
+ });
233
+ }
234
+ function loadAllAsyncRenderers() {
235
+ return tslib.__awaiter(this, void 0, void 0, function () {
236
+ var asyncRenderers;
237
+ var _this = this;
238
+ return tslib.__generator(this, function (_a) {
239
+ switch (_a.label) {
240
+ case 0:
241
+ asyncRenderers = renderers.filter(isAsyncRenderer);
242
+ if (!asyncRenderers.length) return [3 /*break*/, 2];
243
+ return [4 /*yield*/, Promise.all(renderers.map(function (renderer) { return tslib.__awaiter(_this, void 0, void 0, function () {
244
+ return tslib.__generator(this, function (_a) {
245
+ switch (_a.label) {
246
+ case 0: return [4 /*yield*/, loadAsyncRenderer(renderer)];
247
+ case 1:
248
+ _a.sent();
249
+ return [2 /*return*/];
250
+ }
251
+ });
252
+ }); }))];
253
+ case 1:
254
+ _a.sent();
255
+ _a.label = 2;
256
+ case 2: return [2 /*return*/];
257
+ }
258
+ });
259
+ });
260
+ }
103
261
  var defaultOptions = {
104
262
  session: 'global',
105
263
  richTextToken: '',
106
264
  useMobileUI: true,
107
265
  enableAMISDebug: (_b = (_a = window.enableAMISDebug) !== null && _a !== void 0 ? _a : location.search.indexOf('amisDebug=1') !== -1) !== null && _b !== void 0 ? _b : false,
108
- loadRenderer: loadRenderer,
266
+ loadRenderer: loadRendererError,
109
267
  fetcher: function () {
110
268
  return Promise.reject('fetcher is required');
111
269
  },
@@ -272,8 +430,9 @@ function extendDefaultEnv(env) {
272
430
  var cache = {};
273
431
  function resolveRenderer(path, schema) {
274
432
  var type = typeof (schema === null || schema === void 0 ? void 0 : schema.type) == 'string' ? schema.type.toLowerCase() : '';
275
- if (type && cache[type]) {
276
- return cache[type];
433
+ // 直接匹配类型,后续注册渲染都应该用这个方式而不是之前的判断路径。
434
+ if (type && renderersTypeMap[type]) {
435
+ return renderersTypeMap[type];
277
436
  }
278
437
  else if (cache[path]) {
279
438
  return cache[path];
@@ -284,15 +443,7 @@ function resolveRenderer(path, schema) {
284
443
  var renderer = null;
285
444
  renderers.some(function (item) {
286
445
  var matched = false;
287
- // 直接匹配类型,后续注册渲染都应该用这个方式而不是之前的判断路径。
288
- if (item.type && type) {
289
- matched = item.type === type;
290
- // 如果是type来命中的,那么cache的key直接用 type 即可。
291
- if (matched) {
292
- cache[type] = item;
293
- }
294
- }
295
- else if (typeof item.test === 'function') {
446
+ if (typeof item.test === 'function') {
296
447
  // 不应该搞得这么复杂的,让每个渲染器唯一 id,自己不晕别人用起来也不晕。
297
448
  matched = item.test(path, schema, resolveRenderer);
298
449
  }
@@ -322,6 +473,15 @@ function getRenderers() {
322
473
  function getRendererByName(name) {
323
474
  return find__default["default"](renderers, function (item) { return item.name === name; });
324
475
  }
476
+ var GlobalOptions = {
477
+ pdfjsWorkerSrc: ''
478
+ };
479
+ function setGlobalOptions(options) {
480
+ Object.assign(GlobalOptions, options);
481
+ }
482
+ function getGlobalOptions() {
483
+ return GlobalOptions;
484
+ }
325
485
 
326
486
  exports.Renderer = Renderer;
327
487
  exports.addSchemaFilter = addSchemaFilter;
@@ -329,12 +489,19 @@ exports.clearStoresCache = clearStoresCache;
329
489
  exports.defaultOptions = defaultOptions;
330
490
  exports.extendDefaultEnv = extendDefaultEnv;
331
491
  exports.filterSchema = filterSchema;
492
+ exports.getGlobalOptions = getGlobalOptions;
332
493
  exports.getRendererByName = getRendererByName;
333
494
  exports.getRenderers = getRenderers;
334
- exports.loadRenderer = loadRenderer;
495
+ exports.hasAsyncRenderers = hasAsyncRenderers;
496
+ exports.isAsyncRenderer = isAsyncRenderer;
497
+ exports.loadAllAsyncRenderers = loadAllAsyncRenderers;
498
+ exports.loadAsyncRenderer = loadAsyncRenderer;
499
+ exports.loadAsyncRenderersByType = loadAsyncRenderersByType;
500
+ exports.loadRendererError = loadRendererError;
335
501
  exports.registerRenderer = registerRenderer;
336
502
  exports.renderersMap = renderersMap;
337
503
  exports.resolveRenderer = resolveRenderer;
504
+ exports.setGlobalOptions = setGlobalOptions;
338
505
  exports.stores = stores;
339
506
  exports.unRegisterRenderer = unRegisterRenderer;
340
507
  exports.updateEnv = updateEnv;
package/lib/index.d.ts CHANGED
@@ -6,8 +6,8 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  /// <reference types="react" />
9
- import { Renderer, getRendererByName, getRenderers, registerRenderer, unRegisterRenderer, resolveRenderer, filterSchema, clearStoresCache, updateEnv, addSchemaFilter, extendDefaultEnv } from './factory';
10
- import type { RenderOptions, RendererConfig, RendererProps } from './factory';
9
+ import { Renderer, getRendererByName, getRenderers, loadAllAsyncRenderers, loadAsyncRenderersByType, loadAsyncRenderer, registerRenderer, unRegisterRenderer, resolveRenderer, filterSchema, clearStoresCache, updateEnv, addSchemaFilter, extendDefaultEnv, getGlobalOptions, setGlobalOptions } from './factory';
10
+ import type { RenderOptions, RendererConfig, RendererProps, hasAsyncRenderers } from './factory';
11
11
  import './polyfills';
12
12
  import './renderers/builtin';
13
13
  import './renderers/register';
@@ -15,7 +15,7 @@ export * from './utils/index';
15
15
  export * from './types';
16
16
  export * from './store';
17
17
  import * as utils from './utils/helper';
18
- import { RegisterStore } from './store';
18
+ import { RegisterStore, registerStore } from './store';
19
19
  import type { IColumn, IColumn2, IRow, IRow2 } from './store';
20
20
  import { setDefaultLocale, getDefaultLocale, makeTranslator, register as registerLocale, extendLocale, removeLocaleData, localeable } from './locale';
21
21
  import type { LocaleProps, TranslateFn } from './locale';
@@ -51,5 +51,5 @@ import type { IItem } from './store/list';
51
51
  import CustomStyle from './components/CustomStyle';
52
52
  import { StatusScoped } from './StatusScoped';
53
53
  export declare const version = "__buildVersion";
54
- export { clearStoresCache, updateEnv, Renderer, RendererProps, RenderOptions, RendererEnv, EnvContext, RegisterStore, FormItem, FormItemWrap, FormItemProps, OptionsControl, FormRenderer, FormHorizontal, utils, getRendererByName, registerRenderer, unRegisterRenderer, getRenderers, registerFormItem, getFormItemByName, registerOptionsControl, resolveRenderer, filterSchema, Scoped, ScopedContext, IScopedContext, StatusScoped, setDefaultTheme, theme, themeable, ThemeProps, getTheme, classPrefix, getClassPrefix, classnames, makeClassnames, getDefaultLocale, setDefaultLocale, registerLocale, makeTranslator, extendLocale, removeLocaleData, localeable, LocaleProps, TranslateFn, ClassNamesFn, parse, lexer, Evaluator, AsyncEvaluator, FilterContext, filters, getFilters, registerFilter, extendsFilters, registerFunction, evaluate, evaluateForAsync, LazyComponent, Overlay, PopOver, ErrorBoundary, addSchemaFilter, OptionsControlProps, FormOptionsControl, FormControlProps, FormBaseControl, extendDefaultEnv, addRootWrapper, RendererConfig, styleMap, RENDERER_TRANSMISSION_OMIT_PROPS, ScopedComponentType, IItem, IColumn, IRow, IColumn2, IRow2, OnEventProps, FormSchemaBase, filterTarget, splitTarget, CustomStyle, enableDebug, disableDebug, envOverwrite };
54
+ export { clearStoresCache, updateEnv, Renderer, RendererProps, RenderOptions, RendererEnv, EnvContext, RegisterStore, registerStore, FormItem, FormItemWrap, FormItemProps, OptionsControl, FormRenderer, FormHorizontal, utils, getRendererByName, registerRenderer, unRegisterRenderer, getRenderers, loadAllAsyncRenderers, loadAsyncRenderersByType, loadAsyncRenderer, hasAsyncRenderers, registerFormItem, getFormItemByName, registerOptionsControl, resolveRenderer, filterSchema, Scoped, ScopedContext, IScopedContext, StatusScoped, setDefaultTheme, theme, themeable, ThemeProps, getTheme, classPrefix, getClassPrefix, classnames, makeClassnames, getDefaultLocale, setDefaultLocale, registerLocale, makeTranslator, extendLocale, removeLocaleData, localeable, LocaleProps, TranslateFn, ClassNamesFn, parse, lexer, Evaluator, AsyncEvaluator, FilterContext, filters, getFilters, registerFilter, extendsFilters, registerFunction, evaluate, evaluateForAsync, LazyComponent, Overlay, PopOver, ErrorBoundary, addSchemaFilter, OptionsControlProps, FormOptionsControl, FormControlProps, FormBaseControl, extendDefaultEnv, addRootWrapper, RendererConfig, styleMap, RENDERER_TRANSMISSION_OMIT_PROPS, ScopedComponentType, IItem, IColumn, IRow, IColumn2, IRow2, OnEventProps, FormSchemaBase, filterTarget, splitTarget, CustomStyle, enableDebug, disableDebug, envOverwrite, getGlobalOptions, setGlobalOptions };
55
55
  export declare function render(schema: Schema, props?: RootRenderProps, options?: RenderOptions, pathPrefix?: string): JSX.Element;
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -139,7 +139,11 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
139
139
  (__react_jsx__["default"] || __react_jsx__).Fragment;
140
140
  var classPrefix = theme.getClassPrefix();
141
141
  // @ts-ignore
142
- var version = '6.8.0';
142
+ var version = '6.9.0-beta.0';
143
+ window.amisVersionInfo = {
144
+ version: '6.9.0-beta.0',
145
+ buildTime: '2024-10-22T11:40:47.953Z'
146
+ };
143
147
  function render(schema, props, options, pathPrefix) {
144
148
  if (props === void 0) { props = {}; }
145
149
  if (options === void 0) { options = {}; }
@@ -213,12 +217,19 @@ exports.addSchemaFilter = factory.addSchemaFilter;
213
217
  exports.clearStoresCache = factory.clearStoresCache;
214
218
  exports.extendDefaultEnv = factory.extendDefaultEnv;
215
219
  exports.filterSchema = factory.filterSchema;
220
+ exports.getGlobalOptions = factory.getGlobalOptions;
216
221
  exports.getRendererByName = factory.getRendererByName;
217
222
  exports.getRenderers = factory.getRenderers;
223
+ exports.loadAllAsyncRenderers = factory.loadAllAsyncRenderers;
224
+ exports.loadAsyncRenderer = factory.loadAsyncRenderer;
225
+ exports.loadAsyncRenderersByType = factory.loadAsyncRenderersByType;
218
226
  exports.registerRenderer = factory.registerRenderer;
219
227
  exports.resolveRenderer = factory.resolveRenderer;
228
+ exports.setGlobalOptions = factory.setGlobalOptions;
220
229
  exports.unRegisterRenderer = factory.unRegisterRenderer;
221
230
  exports.updateEnv = factory.updateEnv;
231
+ exports.addApiRequestAdaptor = api.addApiRequestAdaptor;
232
+ exports.addApiResponseAdator = api.addApiResponseAdator;
222
233
  exports.buildApi = api.buildApi;
223
234
  exports.callStrFunction = api.callStrFunction;
224
235
  exports.clearApiCache = api.clearApiCache;
@@ -232,6 +243,8 @@ exports.jsFetcher = api.jsFetcher;
232
243
  exports.jsonpFetcher = api.jsonpFetcher;
233
244
  exports.normalizeApi = api.normalizeApi;
234
245
  exports.normalizeApiResponseData = api.normalizeApiResponseData;
246
+ exports.removeApiRequestAdaptor = api.removeApiRequestAdaptor;
247
+ exports.removeApiResponseAdaptor = api.removeApiResponseAdaptor;
235
248
  exports.responseAdaptor = api.responseAdaptor;
236
249
  exports.setApiCache = api.setApiCache;
237
250
  exports.str2AsyncFunction = api.str2AsyncFunction;
@@ -473,6 +486,7 @@ exports.safeSub = math.safeSub;
473
486
  exports.animation = Animation["default"];
474
487
  exports.RegisterStore = index.RegisterStore;
475
488
  exports.RendererStore = index.RendererStore;
489
+ exports.registerStore = index.registerStore;
476
490
  exports.extendLocale = locale.extendLocale;
477
491
  exports.getDefaultLocale = locale.getDefaultLocale;
478
492
  exports.localeable = locale.localeable;
package/lib/locale.d.ts CHANGED
@@ -16,7 +16,7 @@ export interface LocaleProps {
16
16
  translate: TranslateFn;
17
17
  }
18
18
  export declare const LocaleContext: React.Context<string>;
19
- export declare function localeable<T extends React.ComponentType<React.ComponentProps<T> & LocaleProps>>(ComposedComponent: T): {
19
+ export declare function localeable<T extends React.ComponentType<React.ComponentProps<T> & LocaleProps>>(ComposedComponent: T, methods?: Array<string>): {
20
20
  new (props: JSX.LibraryManagedAttributes<T, Omit<React.ComponentProps<T>, keyof LocaleProps>> & {
21
21
  locale?: string | undefined;
22
22
  translate?: ((str: string, ...args: any[]) => string) | undefined;
package/lib/locale.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -99,7 +99,7 @@ function setDefaultLocale(locale) {
99
99
  defaultLocale = locale;
100
100
  }
101
101
  var LocaleContext = React__default["default"].createContext('');
102
- function localeable(ComposedComponent) {
102
+ function localeable(ComposedComponent, methods) {
103
103
  var _a;
104
104
  var result = hoistNonReactStatic__default["default"]((_a = /** @class */ (function (_super) {
105
105
  tslib.__extends(class_1, _super);
@@ -141,6 +141,17 @@ function localeable(ComposedComponent) {
141
141
  _a.contextType = LocaleContext,
142
142
  _a.ComposedComponent = ComposedComponent,
143
143
  _a), ComposedComponent);
144
+ if (Array.isArray(methods)) {
145
+ methods.forEach(function (method) {
146
+ if (ComposedComponent.prototype[method]) {
147
+ result.prototype[method] = function () {
148
+ var _a;
149
+ var fn = (_a = this.ref) === null || _a === void 0 ? void 0 : _a[method];
150
+ return fn ? fn.apply(this.ref, arguments) : undefined;
151
+ };
152
+ }
153
+ });
154
+ }
144
155
  return result;
145
156
  }
146
157
 
package/lib/polyfills.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import { RendererProps } from '../factory';
4
4
  import { IFormStore } from '../store/form';
5
- import { SchemaNode, ActionObject, ClassName, BaseApiObject, SchemaExpression, SchemaClassName } from '../types';
5
+ import { SchemaNode, ActionObject, ClassName, BaseApiObject, SchemaExpression, SchemaClassName, DataChangeReason } from '../types';
6
6
  import { IScopedContext } from '../Scoped';
7
7
  import type { LabelAlign } from './Item';
8
8
  export interface FormHorizontal {
@@ -263,7 +263,7 @@ export interface FormProps extends RendererProps, Omit<FormSchemaBase, 'mode' |
263
263
  onSubmit?: (values: object, action: any) => any;
264
264
  onChange?: (values: object, diff: object, props: any) => any;
265
265
  onFailed?: (reason: string, errors: any) => any;
266
- onFinished: (values: object, action: any) => any;
266
+ onFinished: (values: object, action: ActionObject, store: IFormStore) => any;
267
267
  onValidate: (values: object, form: any) => any;
268
268
  onValidChange?: (valid: boolean, props: any) => void;
269
269
  messages: {
@@ -338,7 +338,7 @@ export default class Form extends React.Component<FormProps, object> {
338
338
  onInit(): Promise<void>;
339
339
  reload(subPath?: string, query?: any, ctx?: any, silent?: boolean): Promise<any>;
340
340
  receive(values: object, name?: string, replace?: boolean): Promise<any>;
341
- silentReload(target?: string, query?: any): void;
341
+ silentReload(target?: string, query?: any): Promise<any>;
342
342
  initInterval(value: any): any;
343
343
  isValidated(): boolean;
344
344
  validate(forceValidate?: boolean, throwErrors?: boolean, toastErrors?: boolean, skipFlush?: boolean): Promise<boolean>;
@@ -354,12 +354,12 @@ export default class Form extends React.Component<FormProps, object> {
354
354
  reset(): void;
355
355
  addHook(fn: () => any, type?: 'validate' | 'init' | 'flush', enforce?: 'prev' | 'post'): () => void;
356
356
  removeHook(fn: () => any, type?: string): void;
357
- handleChange(value: any, name: string, submit: boolean, changePristine?: boolean): void;
357
+ handleChange(value: any, name: string, submit: boolean, changePristine?: boolean, changeReason?: DataChangeReason): void;
358
358
  formItemDispatchEvent(type: string, data: any): Promise<import("../utils").RendererEvent<any, any>>;
359
359
  emittedData: any;
360
360
  emitting: boolean;
361
361
  emitChange(submit: boolean, emitedFromWatch?: boolean): Promise<void>;
362
- handleBulkChange(values: Object, submit: boolean): void;
362
+ handleBulkChange(values: Object, submit: boolean, changeReason?: DataChangeReason): void;
363
363
  handleFormSubmit(e: React.UIEvent<any>): any;
364
364
  handleReset(action: any): (data: any) => void;
365
365
  handleAction(e: React.UIEvent<any> | void, action: ActionObject, data: object, throwErrors?: boolean, delegate?: IScopedContext): Promise<any>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -111,6 +111,7 @@ var Form = /** @class */ (function (_super) {
111
111
  _this.blockRouting = _this.blockRouting.bind(_this);
112
112
  _this.beforePageUnload = _this.beforePageUnload.bind(_this);
113
113
  _this.formItemDispatchEvent = _this.formItemDispatchEvent.bind(_this);
114
+ _this.flush = _this.flush.bind(_this);
114
115
  var store = props.store, canAccessSuperData = props.canAccessSuperData, persistData = props.persistData, simpleMode = props.simpleMode, formLazyChange = props.formLazyChange;
115
116
  store.setCanAccessSuperData(canAccessSuperData !== false);
116
117
  store.setPersistData(persistData);
@@ -196,7 +197,9 @@ var Form = /** @class */ (function (_super) {
196
197
  successMessage: fetchSuccess,
197
198
  errorMessage: fetchFailed,
198
199
  onSuccess: function (json, data) {
199
- store.setValues(data);
200
+ store.setValues(data, undefined, undefined, undefined, {
201
+ type: 'api'
202
+ });
200
203
  if (!api.isEffectiveApi(initAsyncApi, store.data) ||
201
204
  store.data[initFinishedField || 'finished']) {
202
205
  return;
@@ -392,7 +395,7 @@ var Form = /** @class */ (function (_super) {
392
395
  case 3:
393
396
  // 派发初始化接口请求完成事件
394
397
  this.dispatchInited(result);
395
- return [2 /*return*/];
398
+ return [2 /*return*/, store.data];
396
399
  }
397
400
  });
398
401
  });
@@ -403,7 +406,7 @@ var Form = /** @class */ (function (_super) {
403
406
  return this.reload();
404
407
  };
405
408
  Form.prototype.silentReload = function (target, query) {
406
- this.reload(target, query, undefined, true);
409
+ return this.reload(target, query, undefined, true);
407
410
  };
408
411
  Form.prototype.initInterval = function (value) {
409
412
  var _a = this.props, interval = _a.interval, silentPolling = _a.silentPolling, stopAutoRefreshWhen = _a.stopAutoRefreshWhen, data = _a.data;
@@ -463,7 +466,9 @@ var Form = /** @class */ (function (_super) {
463
466
  Form.prototype.setValues = function (value, replace) {
464
467
  var store = this.props.store;
465
468
  this.flush();
466
- store.setValues(value, undefined, replace);
469
+ store.setValues(value, undefined, replace, undefined, {
470
+ type: 'action'
471
+ });
467
472
  };
468
473
  Form.prototype.submit = function (fn, throwErrors, skipFlush) {
469
474
  if (throwErrors === void 0) { throwErrors = false; }
@@ -573,13 +578,15 @@ var Form = /** @class */ (function (_super) {
573
578
  }
574
579
  }
575
580
  };
576
- Form.prototype.handleChange = function (value, name, submit, changePristine) {
581
+ Form.prototype.handleChange = function (value, name, submit, changePristine, changeReason) {
577
582
  if (changePristine === void 0) { changePristine = false; }
578
583
  var _a = this.props, store = _a.store, formLazyChange = _a.formLazyChange, persistDataKeys = _a.persistDataKeys;
579
584
  if (typeof name !== 'string') {
580
585
  return;
581
586
  }
582
- store.changeValue(name, value, changePristine);
587
+ store.changeValue(name, value, changePristine, undefined, undefined, changeReason || {
588
+ type: 'input'
589
+ });
583
590
  if (!changePristine || typeof value !== 'undefined') {
584
591
  (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
585
592
  }
@@ -617,7 +624,7 @@ var Form = /** @class */ (function (_super) {
617
624
  if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented)) {
618
625
  onChange && onChange.apply(null, changeProps);
619
626
  }
620
- store.clearRestError();
627
+ mobxStateTree.isAlive(store) && store.clearRestError();
621
628
  if (!(!emitedFromWatch && (submit || (submitOnChange && store.inited)))) return [3 /*break*/, 3];
622
629
  return [4 /*yield*/, this.handleAction(undefined, {
623
630
  type: 'submit',
@@ -637,9 +644,11 @@ var Form = /** @class */ (function (_super) {
637
644
  });
638
645
  });
639
646
  };
640
- Form.prototype.handleBulkChange = function (values, submit) {
647
+ Form.prototype.handleBulkChange = function (values, submit, changeReason) {
641
648
  var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
642
- store.setValues(values);
649
+ store.setValues(values, undefined, undefined, undefined, changeReason || {
650
+ type: 'input'
651
+ });
643
652
  // store.updateData(values);
644
653
  // store.items.forEach(formItem => {
645
654
  // const updatedValue = getVariable(values, formItem.name, false);
@@ -689,6 +698,9 @@ var Form = /** @class */ (function (_super) {
689
698
  _f.sent();
690
699
  _f.label = 2;
691
700
  case 2:
701
+ if (!mobxStateTree.isAlive(store)) {
702
+ return [2 /*return*/];
703
+ }
692
704
  if (trimValues) {
693
705
  store.trimValues();
694
706
  }
@@ -889,7 +901,7 @@ var Form = /** @class */ (function (_super) {
889
901
  if (values === false) {
890
902
  return store.data;
891
903
  }
892
- if (onFinished && onFinished(values, action) === false) {
904
+ if (onFinished && onFinished(values, action, store) === false) {
893
905
  return values;
894
906
  }
895
907
  resetAfterSubmit && store.reset(_this.handleReset(action));
@@ -1248,7 +1260,8 @@ var Form = /** @class */ (function (_super) {
1248
1260
  removeHook: this.removeHook,
1249
1261
  renderFormItems: this.renderFormItems,
1250
1262
  formItemDispatchEvent: this.formItemDispatchEvent,
1251
- formPristine: form.pristine
1263
+ formPristine: form.pristine,
1264
+ onFlushForm: this.flush
1252
1265
  // value: (control as any)?.name
1253
1266
  // ? getVariable(form.data, (control as any)?.name, canAccessSuperData)
1254
1267
  // : (control as any)?.value,