amis-core 6.13.0-beta.16 → 6.13.0-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +1 -1
  3. package/esm/SchemaRenderer.js +1 -1
  4. package/esm/Scoped.js +1 -1
  5. package/esm/StatusScoped.js +1 -1
  6. package/esm/StyleManager.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +1 -1
  9. package/esm/actions/Action.js +36 -6
  10. package/esm/actions/AjaxAction.js +1 -1
  11. package/esm/actions/BreakAction.js +1 -1
  12. package/esm/actions/BroadcastAction.js +1 -1
  13. package/esm/actions/CmptAction.js +40 -42
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +1 -1
  17. package/esm/actions/DialogAction.js +1 -1
  18. package/esm/actions/DrawerAction.js +1 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/EventAction.js +1 -1
  21. package/esm/actions/LinkAction.js +1 -1
  22. package/esm/actions/LoopAction.js +1 -1
  23. package/esm/actions/PageAction.js +1 -1
  24. package/esm/actions/ParallelAction.js +1 -1
  25. package/esm/actions/PrintAction.js +1 -1
  26. package/esm/actions/StatusAction.js +1 -1
  27. package/esm/actions/SwitchAction.js +1 -1
  28. package/esm/actions/ToastAction.js +1 -1
  29. package/esm/actions/WaitAction.js +1 -1
  30. package/esm/components/Animations.js +1 -1
  31. package/esm/components/CustomStyle.js +1 -1
  32. package/esm/components/ErrorBoundary.js +1 -1
  33. package/esm/components/LazyComponent.js +1 -1
  34. package/esm/components/Overlay.js +1 -1
  35. package/esm/components/PopOver.js +1 -1
  36. package/esm/env.js +1 -1
  37. package/esm/envOverwrite.js +1 -1
  38. package/esm/factory.js +1 -1
  39. package/esm/globalVar.js +1 -1
  40. package/esm/globalVarClientHandler.js +1 -1
  41. package/esm/globalVarDefaultValueHandler.js +1 -1
  42. package/esm/index.js +5 -5
  43. package/esm/locale.js +1 -1
  44. package/esm/polyfills.js +1 -1
  45. package/esm/renderers/Form.d.ts +3 -1
  46. package/esm/renderers/Form.js +49 -16
  47. package/esm/renderers/Item.js +1 -1
  48. package/esm/renderers/Options.js +1 -1
  49. package/esm/renderers/Placeholder.js +1 -1
  50. package/esm/renderers/builtin.js +1 -1
  51. package/esm/renderers/register.js +1 -1
  52. package/esm/renderers/wrapControl.d.ts +0 -1
  53. package/esm/renderers/wrapControl.js +21 -11
  54. package/esm/store/app.js +1 -1
  55. package/esm/store/combo.d.ts +126 -0
  56. package/esm/store/combo.js +24 -2
  57. package/esm/store/crud.js +1 -1
  58. package/esm/store/form.d.ts +50 -0
  59. package/esm/store/form.js +1 -1
  60. package/esm/store/formItem.d.ts +1 -0
  61. package/esm/store/formItem.js +3 -1
  62. package/esm/store/iRenderer.js +1 -1
  63. package/esm/store/index.js +1 -1
  64. package/esm/store/list.js +1 -1
  65. package/esm/store/manager.js +1 -1
  66. package/esm/store/modal.js +1 -1
  67. package/esm/store/node.js +1 -1
  68. package/esm/store/pagination.js +1 -1
  69. package/esm/store/root.js +10 -9
  70. package/esm/store/service.js +1 -1
  71. package/esm/store/status.js +1 -1
  72. package/esm/store/table.d.ts +100 -0
  73. package/esm/store/table.js +1 -1
  74. package/esm/store/table2.js +1 -1
  75. package/esm/theme.js +1 -1
  76. package/esm/utils/Animation.js +1 -1
  77. package/esm/utils/ColorScale.js +1 -1
  78. package/esm/utils/DataSchema.js +1 -1
  79. package/esm/utils/DataScope.js +1 -1
  80. package/esm/utils/RootClose.js +1 -1
  81. package/esm/utils/SimpleMap.js +1 -1
  82. package/esm/utils/animations.js +1 -1
  83. package/esm/utils/api.js +1 -1
  84. package/esm/utils/arraySlice.js +1 -1
  85. package/esm/utils/attachmentAdpator.js +1 -1
  86. package/esm/utils/autobind.js +1 -1
  87. package/esm/utils/browser.js +1 -1
  88. package/esm/utils/columnsSplit.js +1 -1
  89. package/esm/utils/concatData.js +1 -1
  90. package/esm/utils/dataMapping.js +1 -1
  91. package/esm/utils/date.js +4 -7
  92. package/esm/utils/debug.js +1 -1
  93. package/esm/utils/decodeEntity.js +1 -1
  94. package/esm/utils/dom.js +1 -1
  95. package/esm/utils/errors.js +1 -1
  96. package/esm/utils/escapeHtml.js +1 -1
  97. package/esm/utils/filter-schema.js +1 -1
  98. package/esm/utils/filter.js +1 -1
  99. package/esm/utils/formatDuration.js +1 -1
  100. package/esm/utils/formula.js +1 -1
  101. package/esm/utils/getPageId.js +1 -1
  102. package/esm/utils/getVariable.js +1 -1
  103. package/esm/utils/grammar.js +1 -1
  104. package/esm/utils/handleAction.js +1 -1
  105. package/esm/utils/helper.js +1 -1
  106. package/esm/utils/highlight.js +1 -1
  107. package/esm/utils/icon.js +1 -1
  108. package/esm/utils/image.js +1 -1
  109. package/esm/utils/index.js +2 -2
  110. package/esm/utils/isPureVariable.js +1 -1
  111. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  112. package/esm/utils/keyToPath.js +1 -1
  113. package/esm/utils/labelToString.js +1 -1
  114. package/esm/utils/loopTooMuch.js +1 -1
  115. package/esm/utils/makeSorter.js +1 -1
  116. package/esm/utils/math.js +1 -1
  117. package/esm/utils/memoryParse.js +1 -1
  118. package/esm/utils/normalizeLink.js +1 -1
  119. package/esm/utils/normalizeOptions.js +1 -1
  120. package/esm/utils/object.js +1 -1
  121. package/esm/utils/offset.js +1 -1
  122. package/esm/utils/offsetParent.js +1 -1
  123. package/esm/utils/optionValueCompare.js +1 -1
  124. package/esm/utils/position.js +1 -1
  125. package/esm/utils/prettyBytes.js +1 -1
  126. package/esm/utils/printElement.js +1 -1
  127. package/esm/utils/renderer-event.js +1 -1
  128. package/esm/utils/replaceText.js +1 -1
  129. package/esm/utils/resize-sensor.d.ts +3 -1
  130. package/esm/utils/resize-sensor.js +63 -29
  131. package/esm/utils/resolveCondition.js +1 -1
  132. package/esm/utils/resolveVariable.js +1 -1
  133. package/esm/utils/resolveVariableAndFilter.js +1 -1
  134. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  135. package/esm/utils/scrollPosition.js +1 -1
  136. package/esm/utils/string2regExp.js +1 -1
  137. package/esm/utils/stripNumber.js +1 -1
  138. package/esm/utils/style-helper.js +1 -1
  139. package/esm/utils/style.js +1 -1
  140. package/esm/utils/toNumber.js +1 -1
  141. package/esm/utils/tokenize.js +1 -1
  142. package/esm/utils/tpl-builtin.js +1 -1
  143. package/esm/utils/tpl-lodash.js +1 -1
  144. package/esm/utils/tpl.js +1 -1
  145. package/esm/utils/uncontrollable.js +1 -1
  146. package/esm/utils/validateId.js +1 -1
  147. package/esm/utils/validations.js +1 -1
  148. package/esm/utils/visitedCache.js +1 -1
  149. package/lib/Root.js +1 -1
  150. package/lib/RootRenderer.js +1 -1
  151. package/lib/SchemaRenderer.js +1 -1
  152. package/lib/Scoped.js +1 -1
  153. package/lib/StatusScoped.js +1 -1
  154. package/lib/StyleManager.js +1 -1
  155. package/lib/WithRootStore.js +1 -1
  156. package/lib/WithStore.js +1 -1
  157. package/lib/actions/Action.js +38 -5
  158. package/lib/actions/AjaxAction.js +1 -1
  159. package/lib/actions/BreakAction.js +1 -1
  160. package/lib/actions/BroadcastAction.js +1 -1
  161. package/lib/actions/CmptAction.js +40 -42
  162. package/lib/actions/ContinueAction.js +1 -1
  163. package/lib/actions/CopyAction.js +1 -1
  164. package/lib/actions/CustomAction.js +1 -1
  165. package/lib/actions/DialogAction.js +1 -1
  166. package/lib/actions/DrawerAction.js +1 -1
  167. package/lib/actions/EmailAction.js +1 -1
  168. package/lib/actions/EventAction.js +1 -1
  169. package/lib/actions/LinkAction.js +1 -1
  170. package/lib/actions/LoopAction.js +1 -1
  171. package/lib/actions/PageAction.js +1 -1
  172. package/lib/actions/ParallelAction.js +1 -1
  173. package/lib/actions/PrintAction.js +1 -1
  174. package/lib/actions/StatusAction.js +1 -1
  175. package/lib/actions/SwitchAction.js +1 -1
  176. package/lib/actions/ToastAction.js +1 -1
  177. package/lib/actions/WaitAction.js +1 -1
  178. package/lib/components/Animations.js +1 -1
  179. package/lib/components/CustomStyle.js +1 -1
  180. package/lib/components/ErrorBoundary.js +1 -1
  181. package/lib/components/LazyComponent.js +1 -1
  182. package/lib/components/Overlay.js +1 -1
  183. package/lib/components/PopOver.js +1 -1
  184. package/lib/env.js +1 -1
  185. package/lib/envOverwrite.js +1 -1
  186. package/lib/factory.js +1 -1
  187. package/lib/globalVar.js +1 -1
  188. package/lib/globalVarClientHandler.js +1 -1
  189. package/lib/globalVarDefaultValueHandler.js +1 -1
  190. package/lib/index.js +6 -4
  191. package/lib/locale.js +1 -1
  192. package/lib/polyfills.js +1 -1
  193. package/lib/renderers/Form.d.ts +3 -1
  194. package/lib/renderers/Form.js +48 -15
  195. package/lib/renderers/Item.js +1 -1
  196. package/lib/renderers/Options.js +1 -1
  197. package/lib/renderers/Placeholder.js +1 -1
  198. package/lib/renderers/builtin.js +1 -1
  199. package/lib/renderers/register.js +1 -1
  200. package/lib/renderers/wrapControl.d.ts +0 -1
  201. package/lib/renderers/wrapControl.js +21 -11
  202. package/lib/store/app.js +1 -1
  203. package/lib/store/combo.d.ts +126 -0
  204. package/lib/store/combo.js +24 -2
  205. package/lib/store/crud.js +1 -1
  206. package/lib/store/form.d.ts +50 -0
  207. package/lib/store/form.js +1 -1
  208. package/lib/store/formItem.d.ts +1 -0
  209. package/lib/store/formItem.js +3 -1
  210. package/lib/store/iRenderer.js +1 -1
  211. package/lib/store/index.js +1 -1
  212. package/lib/store/list.js +1 -1
  213. package/lib/store/manager.js +1 -1
  214. package/lib/store/modal.js +1 -1
  215. package/lib/store/node.js +1 -1
  216. package/lib/store/pagination.js +1 -1
  217. package/lib/store/root.js +9 -8
  218. package/lib/store/service.js +1 -1
  219. package/lib/store/status.js +1 -1
  220. package/lib/store/table.d.ts +100 -0
  221. package/lib/store/table.js +1 -1
  222. package/lib/store/table2.js +1 -1
  223. package/lib/theme.js +1 -1
  224. package/lib/utils/Animation.js +1 -1
  225. package/lib/utils/ColorScale.js +1 -1
  226. package/lib/utils/DataSchema.js +1 -1
  227. package/lib/utils/DataScope.js +1 -1
  228. package/lib/utils/RootClose.js +1 -1
  229. package/lib/utils/SimpleMap.js +1 -1
  230. package/lib/utils/animations.js +1 -1
  231. package/lib/utils/api.js +1 -1
  232. package/lib/utils/arraySlice.js +1 -1
  233. package/lib/utils/attachmentAdpator.js +1 -1
  234. package/lib/utils/autobind.js +1 -1
  235. package/lib/utils/browser.js +1 -1
  236. package/lib/utils/columnsSplit.js +1 -1
  237. package/lib/utils/concatData.js +1 -1
  238. package/lib/utils/dataMapping.js +1 -1
  239. package/lib/utils/date.js +4 -7
  240. package/lib/utils/debug.js +1 -1
  241. package/lib/utils/decodeEntity.js +1 -1
  242. package/lib/utils/dom.js +1 -1
  243. package/lib/utils/errors.js +1 -1
  244. package/lib/utils/escapeHtml.js +1 -1
  245. package/lib/utils/filter-schema.js +1 -1
  246. package/lib/utils/filter.js +1 -1
  247. package/lib/utils/formatDuration.js +1 -1
  248. package/lib/utils/formula.js +1 -1
  249. package/lib/utils/getPageId.js +1 -1
  250. package/lib/utils/getVariable.js +1 -1
  251. package/lib/utils/grammar.js +1 -1
  252. package/lib/utils/handleAction.js +1 -1
  253. package/lib/utils/helper.js +1 -1
  254. package/lib/utils/highlight.js +1 -1
  255. package/lib/utils/icon.js +1 -1
  256. package/lib/utils/image.js +1 -1
  257. package/lib/utils/index.js +3 -1
  258. package/lib/utils/isPureVariable.js +1 -1
  259. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  260. package/lib/utils/keyToPath.js +1 -1
  261. package/lib/utils/labelToString.js +1 -1
  262. package/lib/utils/loopTooMuch.js +1 -1
  263. package/lib/utils/makeSorter.js +1 -1
  264. package/lib/utils/math.js +1 -1
  265. package/lib/utils/memoryParse.js +1 -1
  266. package/lib/utils/normalizeLink.js +1 -1
  267. package/lib/utils/normalizeOptions.js +1 -1
  268. package/lib/utils/object.js +1 -1
  269. package/lib/utils/offset.js +1 -1
  270. package/lib/utils/offsetParent.js +1 -1
  271. package/lib/utils/optionValueCompare.js +1 -1
  272. package/lib/utils/position.js +1 -1
  273. package/lib/utils/prettyBytes.js +1 -1
  274. package/lib/utils/printElement.js +1 -1
  275. package/lib/utils/renderer-event.js +1 -1
  276. package/lib/utils/replaceText.js +1 -1
  277. package/lib/utils/resize-sensor.d.ts +3 -1
  278. package/lib/utils/resize-sensor.js +64 -28
  279. package/lib/utils/resolveCondition.js +1 -1
  280. package/lib/utils/resolveVariable.js +1 -1
  281. package/lib/utils/resolveVariableAndFilter.js +1 -1
  282. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  283. package/lib/utils/scrollPosition.js +1 -1
  284. package/lib/utils/string2regExp.js +1 -1
  285. package/lib/utils/stripNumber.js +1 -1
  286. package/lib/utils/style-helper.js +1 -1
  287. package/lib/utils/style.js +1 -1
  288. package/lib/utils/toNumber.js +1 -1
  289. package/lib/utils/tokenize.js +1 -1
  290. package/lib/utils/tpl-builtin.js +1 -1
  291. package/lib/utils/tpl-lodash.js +1 -1
  292. package/lib/utils/tpl.js +1 -1
  293. package/lib/utils/uncontrollable.js +1 -1
  294. package/lib/utils/validateId.js +1 -1
  295. package/lib/utils/validations.js +1 -1
  296. package/lib/utils/visitedCache.js +1 -1
  297. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -145,10 +145,10 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
145
145
  (__react_jsx__["default"] || __react_jsx__).Fragment;
146
146
  var classPrefix = theme.getClassPrefix();
147
147
  // @ts-ignore
148
- var version = '6.13.0-beta.16';
148
+ var version = '6.13.0-beta.17';
149
149
  window.amisVersionInfo = {
150
- version: '6.13.0-beta.16',
151
- buildTime: '2025-06-10T12:37:24.102Z'
150
+ version: '6.13.0-beta.17',
151
+ buildTime: '2025-06-23T09:18:01.684Z'
152
152
  };
153
153
  function render(schema, _a, options, pathPrefix) {
154
154
  if (_a === void 0) { _a = {}; }
@@ -450,8 +450,10 @@ exports.getMatchedEventTargets = rendererEvent.getMatchedEventTargets;
450
450
  exports.getRendererEventListeners = rendererEvent.getRendererEventListeners;
451
451
  exports.resolveEventData = rendererEvent.resolveEventData;
452
452
  exports.replaceText = replaceText.replaceText;
453
+ exports.appearSensor = resizeSensor.appearSensor;
453
454
  exports.getComputedStyle = resizeSensor.getComputedStyle;
454
455
  exports.resizeSensor = resizeSensor.resizeSensor;
456
+ exports.resizeSensorV2 = resizeSensor.resizeSensorV2;
455
457
  exports.resolveVariable = resolveVariable.resolveVariable;
456
458
  exports.resolveVariableAndFilter = resolveVariableAndFilter.resolveVariableAndFilter;
457
459
  exports.resolveVariableAndFilterForAsync = resolveVariableAndFilterForAsync.resolveVariableAndFilterForAsync;
package/lib/locale.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/lib/polyfills.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -322,6 +322,7 @@ export default class Form extends React.Component<FormProps, object> {
322
322
  mounted: boolean;
323
323
  lazyEmitChange: import("lodash").DebouncedFunc<any>;
324
324
  unBlockRouting?: () => void;
325
+ formRef: React.RefObject<HTMLElement>;
325
326
  constructor(props: FormProps);
326
327
  componentDidMount(): void;
327
328
  componentDidUpdate(prevProps: FormProps): void;
@@ -355,7 +356,8 @@ export default class Form extends React.Component<FormProps, object> {
355
356
  addHook(fn: () => any, type?: 'validate' | 'init' | 'flush', enforce?: 'prev' | 'post'): () => void;
356
357
  removeHook(fn: () => any, type?: string): void;
357
358
  handleChange(value: any, name: string, submit: boolean, changePristine?: boolean, changeReason?: DataChangeReason): void;
358
- formItemDispatchEvent(type: string, data: any): Promise<import("../utils").RendererEvent<any, any>>;
359
+ dispatchEvent(e: React.MouseEvent<any> | string, data: any, renderer?: React.Component<RendererProps>, // for didmount
360
+ scoped?: IScopedContext): Promise<import("../utils").RendererEvent<any, any>>;
359
361
  emittedData: any;
360
362
  emitting: boolean;
361
363
  emitChange(submit: boolean, emitedFromWatch?: boolean): Promise<void>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -56,6 +56,7 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
56
56
  trailing: true,
57
57
  leading: false
58
58
  });
59
+ _this.formRef = React__default["default"].createRef();
59
60
  // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。
60
61
  _this.flushing = false;
61
62
  _this.emittedData = null;
@@ -82,7 +83,7 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
82
83
  _this.dispatchInited = _this.dispatchInited.bind(_this);
83
84
  _this.blockRouting = _this.blockRouting.bind(_this);
84
85
  _this.beforePageUnload = _this.beforePageUnload.bind(_this);
85
- _this.formItemDispatchEvent = _this.formItemDispatchEvent.bind(_this);
86
+ _this.dispatchEvent = _this.dispatchEvent.bind(_this);
86
87
  _this.flush = _this.flush.bind(_this);
87
88
  var store = props.store, canAccessSuperData = props.canAccessSuperData, persistData = props.persistData, simpleMode = props.simpleMode, formLazyChange = props.formLazyChange;
88
89
  store.setCanAccessSuperData(canAccessSuperData !== false);
@@ -180,6 +181,11 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
180
181
  }
181
182
  })
182
183
  .then(this.initInterval)
184
+ .then(function () {
185
+ return _this.props.dispatchEvent('initApiFinished', object.injectObjectChain(store.data, {
186
+ __trigger: 'init'
187
+ }));
188
+ })
183
189
  .then(this.onInit);
184
190
  }
185
191
  else {
@@ -348,7 +354,7 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
348
354
  _c[initFinishedField || 'finished'] = false,
349
355
  _c));
350
356
  result = undefined;
351
- if (!api.isEffectiveApi(initApi, store.data)) return [3 /*break*/, 2];
357
+ if (!api.isEffectiveApi(initApi, store.data)) return [3 /*break*/, 4];
352
358
  return [4 /*yield*/, store.fetchInitData(initApi, store.data, {
353
359
  successMessage: fetchSuccess,
354
360
  errorMessage: fetchFailed,
@@ -364,15 +370,20 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
364
370
  })];
365
371
  case 1:
366
372
  result = _d.sent();
367
- if (result === null || result === void 0 ? void 0 : result.ok) {
368
- this.initInterval(result);
369
- store.reset(undefined, false);
370
- }
371
- return [3 /*break*/, 3];
372
- case 2:
373
+ if (!(result === null || result === void 0 ? void 0 : result.ok)) return [3 /*break*/, 3];
374
+ this.initInterval(result);
373
375
  store.reset(undefined, false);
376
+ return [4 /*yield*/, this.props.dispatchEvent('initApiFinished', object.injectObjectChain(store.data, {
377
+ __trigger: 'reload'
378
+ }))];
379
+ case 2:
380
+ _d.sent();
374
381
  _d.label = 3;
375
- case 3:
382
+ case 3: return [3 /*break*/, 5];
383
+ case 4:
384
+ store.reset(undefined, false);
385
+ _d.label = 5;
386
+ case 5:
376
387
  // 派发初始化接口请求完成事件
377
388
  this.dispatchInited(result);
378
389
  return [2 /*return*/, store.data];
@@ -574,9 +585,31 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
574
585
  store.setLocalPersistData(persistDataKeys);
575
586
  }
576
587
  };
577
- Form.prototype.formItemDispatchEvent = function (type, data) {
578
- var dispatchEvent = this.props.dispatchEvent;
579
- return dispatchEvent(type, data);
588
+ Form.prototype.dispatchEvent = function (e, data, renderer, // for didmount
589
+ scoped) {
590
+ var _a, _b;
591
+ // 把这两个事件转到 form 组件上,让 form 组件来处理
592
+ if ((e === 'formItemValidateSucc' || e === 'formItemValidateError') &&
593
+ (renderer === null || renderer === void 0 ? void 0 : renderer.props.type) !== 'form') {
594
+ if (e === 'formItemValidateError') {
595
+ // 当表单校验错误是,优先调用组件的 focus
596
+ // 如果没有 focus 方法,则滚动到错误信息的位置
597
+ if (typeof (renderer === null || renderer === void 0 ? void 0 : renderer.focus) === 'function') {
598
+ renderer.focus();
599
+ }
600
+ else {
601
+ (_b = (_a = this.formRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('.cxd-Form-feedback')) === null || _b === void 0 ? void 0 : _b.scrollIntoView({
602
+ behavior: 'smooth',
603
+ block: 'center'
604
+ });
605
+ }
606
+ }
607
+ // 如果事件是 formItemValidateSucc 或者 formItemValidateError 转成当前组件触发的,
608
+ // 所以 onEvent 是配置在 form 层的而不是表单项层
609
+ renderer = undefined;
610
+ scoped = undefined;
611
+ }
612
+ return this.props.dispatchEvent(e, data, renderer, scoped);
580
613
  };
581
614
  Form.prototype.emitChange = function (submit, emitedFromWatch) {
582
615
  if (emitedFromWatch === void 0) { emitedFromWatch = false; }
@@ -1253,7 +1286,7 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
1253
1286
  addHook: this.addHook,
1254
1287
  removeHook: this.removeHook,
1255
1288
  renderFormItems: this.renderFormItems,
1256
- formItemDispatchEvent: this.formItemDispatchEvent,
1289
+ dispatchEvent: this.dispatchEvent,
1257
1290
  formPristine: form.pristine,
1258
1291
  onFlushForm: this.flush
1259
1292
  // value: (control as any)?.name
@@ -1276,7 +1309,7 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
1276
1309
  var padDom = helper.repeatCount(columnCount && Array.isArray(body)
1277
1310
  ? (columnCount - (body.length % columnCount)) % columnCount
1278
1311
  : 0, function (index) { return (_J$X_("div", { className: cx("Form-item Form-item--".concat(mode, " is-placeholder")), key: index })); });
1279
- 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, styleHelper.setThemeClassName(tslib.__assign(tslib.__assign({}, this.props), { name: [
1312
+ return (_J$X_(WrapperComponent, { ref: this.formRef, className: cx("Form", "Form--".concat(mode || 'normal'), columnCount ? "Form--column Form--column-".concat(columnCount) : null, staticClassName && isStatic ? staticClassName : className, isStatic ? 'Form--isStatic' : null, styleHelper.setThemeClassName(tslib.__assign(tslib.__assign({}, this.props), { name: [
1280
1313
  'formControlClassName',
1281
1314
  'itemClassName',
1282
1315
  'staticClassName',
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -42,7 +42,6 @@ export interface ControlOutterProps extends RendererProps {
42
42
  };
43
43
  store?: IIRendererStore;
44
44
  onChange?: (value: any, name: string, submit?: boolean, changePristine?: boolean, changeReason?: DataChangeReason) => void;
45
- formItemDispatchEvent: (type: string, data: any) => void;
46
45
  formItemRef?: (control: any) => void;
47
46
  }
48
47
  export interface ControlProps {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -23,8 +23,10 @@ var hoistNonReactStatic = require('hoist-non-react-statics');
23
23
  var WithRootStore = require('../WithRootStore.js');
24
24
  var table = require('../store/table.js');
25
25
  var pick = require('lodash/pick');
26
+ var mobx = require('mobx');
26
27
  require('../utils/index.js');
27
28
  var tokenize = require('../utils/tokenize.js');
29
+ var object = require('../utils/object.js');
28
30
  var getVariable = require('../utils/getVariable.js');
29
31
  var api = require('../utils/api.js');
30
32
 
@@ -142,6 +144,17 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
142
144
  onChange(model.tmpValue, model.name, false, true);
143
145
  }
144
146
  }
147
+ _this.reaction = mobx.reaction(function () { return model.validatedAt; }, function (validatedAt) {
148
+ var _a, _b, _c, _d;
149
+ (_b = (_a = _this.props).dispatchEvent) === null || _b === void 0 ? void 0 : _b.call(_a, model.valid
150
+ ? 'formItemValidateSucc'
151
+ : 'formItemValidateError', object.injectObjectChain((_d = (_c = _this.props.formStore) === null || _c === void 0 ? void 0 : _c.data) !== null && _d !== void 0 ? _d : _this.props.data, {
152
+ __errors: model.errors,
153
+ __formName: model.name,
154
+ __formValue: model.tmpValue,
155
+ __formControl: _this.control
156
+ }));
157
+ });
145
158
  return _this;
146
159
  }
147
160
  class_1.prototype.componentDidMount = function () {
@@ -396,15 +409,14 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
396
409
  }
397
410
  };
398
411
  class_1.prototype.validate = function () {
399
- var _a, _b;
400
412
  return tslib.__awaiter(this, void 0, void 0, function () {
401
- var _c, form, data, formItemDispatchEvent, result, combo$1, group, validPromises, valid;
402
- return tslib.__generator(this, function (_d) {
403
- switch (_d.label) {
413
+ var _a, form, data, dispatchEvent, result, combo$1, group, validPromises, valid;
414
+ return tslib.__generator(this, function (_b) {
415
+ switch (_b.label) {
404
416
  case 0:
405
417
  if (!this.model)
406
418
  return [2 /*return*/];
407
- _c = this.props, form = _c.formStore, data = _c.data, formItemDispatchEvent = _c.formItemDispatchEvent;
419
+ _a = this.props, form = _a.formStore, data = _a.data, dispatchEvent = _a.dispatchEvent;
408
420
  if (!(this.model.unique &&
409
421
  (form === null || form === void 0 ? void 0 : form.parentStore) &&
410
422
  form.parentStore.storeType === combo.ComboStore.name)) return [3 /*break*/, 2];
@@ -415,16 +427,14 @@ var _J$F_ = (__react_jsx__["default"] || __react_jsx__).Fragment;
415
427
  });
416
428
  return [4 /*yield*/, Promise.all(validPromises)];
417
429
  case 1:
418
- result = _d.sent();
430
+ result = _b.sent();
419
431
  return [3 /*break*/, 4];
420
432
  case 2: return [4 /*yield*/, this.model.validate(data)];
421
433
  case 3:
422
- result = [_d.sent()];
423
- _d.label = 4;
434
+ result = [_b.sent()];
435
+ _b.label = 4;
424
436
  case 4:
425
437
  valid = !result.some(function (item) { return item === false; });
426
- (_a = (formItemDispatchEvent !== null && formItemDispatchEvent !== void 0 ? formItemDispatchEvent : this.props.dispatchEvent)) === null || _a === void 0 ? void 0 : _a(valid ? 'formItemValidateSucc' : 'formItemValidateError', (_b = form === null || form === void 0 ? void 0 : form.data) !== null && _b !== void 0 ? _b : this.props.data // form里的一定是最新的数据
427
- );
428
438
  return [2 /*return*/, valid];
429
439
  }
430
440
  });
package/lib/store/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.16
2
+ * amis-core v6.13.0-beta.17
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5