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/esm/index.js CHANGED
@@ -1,16 +1,16 @@
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
 
6
6
  import { __assign, __rest } from 'tslib';
7
7
  import { stores, defaultOptions } from './factory.js';
8
- export { Renderer, addSchemaFilter, clearStoresCache, extendDefaultEnv, filterSchema, getRendererByName, getRenderers, registerRenderer, resolveRenderer, unRegisterRenderer, updateEnv } from './factory.js';
8
+ export { Renderer, addSchemaFilter, clearStoresCache, extendDefaultEnv, filterSchema, getGlobalOptions, getRendererByName, getRenderers, loadAllAsyncRenderers, loadAsyncRenderer, loadAsyncRenderersByType, registerRenderer, resolveRenderer, setGlobalOptions, unRegisterRenderer, updateEnv } from './factory.js';
9
9
  import './polyfills.js';
10
10
  import './renderers/builtin.js';
11
11
  import './renderers/register.js';
12
12
  import { wrapFetcher } from './utils/api.js';
13
- export { buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher } from './utils/api.js';
13
+ export { addApiRequestAdaptor, addApiResponseAdator, buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, removeApiRequestAdaptor, removeApiResponseAdaptor, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher } from './utils/api.js';
14
14
  export { attachmentAdpator } from './utils/attachmentAdpator.js';
15
15
  export { autobindMethod, bind } from './utils/autobind.js';
16
16
  export { chromeVersion, isSafari } from './utils/browser.js';
@@ -78,7 +78,7 @@ export { arraySlice } from './utils/arraySlice.js';
78
78
  export { isIntegerInRange, numberFormatter, safeAdd, safeSub } from './utils/math.js';
79
79
  export { default as animation } from './utils/Animation.js';
80
80
  import { RendererStore } from './store/index.js';
81
- export { RegisterStore, RendererStore } from './store/index.js';
81
+ export { RegisterStore, RendererStore, registerStore } from './store/index.js';
82
82
  import { getEnv } from 'mobx-state-tree';
83
83
  import { getDefaultLocale, makeTranslator } from './locale.js';
84
84
  export { extendLocale, getDefaultLocale, localeable, makeTranslator, register as registerLocale, removeLocaleData, setDefaultLocale } from './locale.js';
@@ -148,7 +148,11 @@ export { StoreNode } from './store/node.js';
148
148
  */
149
149
  var classPrefix = getClassPrefix();
150
150
  // @ts-ignore
151
- var version = '6.8.0';
151
+ var version = '6.9.0-beta.0';
152
+ window.amisVersionInfo = {
153
+ version: '6.9.0-beta.0',
154
+ buildTime: '2024-10-22T11:40:53.112Z'
155
+ };
152
156
  function render(schema, props, options, pathPrefix) {
153
157
  if (props === void 0) { props = {}; }
154
158
  if (options === void 0) { options = {}; }
package/esm/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/esm/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
 
@@ -86,7 +86,7 @@ function setDefaultLocale(locale) {
86
86
  defaultLocale = locale;
87
87
  }
88
88
  var LocaleContext = React.createContext('');
89
- function localeable(ComposedComponent) {
89
+ function localeable(ComposedComponent, methods) {
90
90
  var _a;
91
91
  var result = hoistNonReactStatic((_a = /** @class */ (function (_super) {
92
92
  __extends(class_1, _super);
@@ -128,6 +128,17 @@ function localeable(ComposedComponent) {
128
128
  _a.contextType = LocaleContext,
129
129
  _a.ComposedComponent = ComposedComponent,
130
130
  _a), ComposedComponent);
131
+ if (Array.isArray(methods)) {
132
+ methods.forEach(function (method) {
133
+ if (ComposedComponent.prototype[method]) {
134
+ result.prototype[method] = function () {
135
+ var _a;
136
+ var fn = (_a = this.ref) === null || _a === void 0 ? void 0 : _a[method];
137
+ return fn ? fn.apply(this.ref, arguments) : undefined;
138
+ };
139
+ }
140
+ });
141
+ }
131
142
  return result;
132
143
  }
133
144
 
package/esm/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
 
@@ -22,7 +22,7 @@ import '@rc-component/mini-decimal';
22
22
  import { dataMapping } from '../utils/dataMapping.js';
23
23
  import '../utils/filter.js';
24
24
  import { isEffectiveApi, isApiOutdated } from '../utils/api.js';
25
- import LazyComponent from '../components/LazyComponent.js';
25
+ import themedLazyComponent from '../components/LazyComponent.js';
26
26
  import { isAlive } from 'mobx-state-tree';
27
27
  import '../utils/browser.js';
28
28
  import '../utils/ColorScale.js';
@@ -92,6 +92,7 @@ var Form = /** @class */ (function (_super) {
92
92
  _this.blockRouting = _this.blockRouting.bind(_this);
93
93
  _this.beforePageUnload = _this.beforePageUnload.bind(_this);
94
94
  _this.formItemDispatchEvent = _this.formItemDispatchEvent.bind(_this);
95
+ _this.flush = _this.flush.bind(_this);
95
96
  var store = props.store, canAccessSuperData = props.canAccessSuperData, persistData = props.persistData, simpleMode = props.simpleMode, formLazyChange = props.formLazyChange;
96
97
  store.setCanAccessSuperData(canAccessSuperData !== false);
97
98
  store.setPersistData(persistData);
@@ -177,7 +178,9 @@ var Form = /** @class */ (function (_super) {
177
178
  successMessage: fetchSuccess,
178
179
  errorMessage: fetchFailed,
179
180
  onSuccess: function (json, data) {
180
- store.setValues(data);
181
+ store.setValues(data, undefined, undefined, undefined, {
182
+ type: 'api'
183
+ });
181
184
  if (!isEffectiveApi(initAsyncApi, store.data) ||
182
185
  store.data[initFinishedField || 'finished']) {
183
186
  return;
@@ -373,7 +376,7 @@ var Form = /** @class */ (function (_super) {
373
376
  case 3:
374
377
  // 派发初始化接口请求完成事件
375
378
  this.dispatchInited(result);
376
- return [2 /*return*/];
379
+ return [2 /*return*/, store.data];
377
380
  }
378
381
  });
379
382
  });
@@ -384,7 +387,7 @@ var Form = /** @class */ (function (_super) {
384
387
  return this.reload();
385
388
  };
386
389
  Form.prototype.silentReload = function (target, query) {
387
- this.reload(target, query, undefined, true);
390
+ return this.reload(target, query, undefined, true);
388
391
  };
389
392
  Form.prototype.initInterval = function (value) {
390
393
  var _a = this.props, interval = _a.interval, silentPolling = _a.silentPolling, stopAutoRefreshWhen = _a.stopAutoRefreshWhen, data = _a.data;
@@ -444,7 +447,9 @@ var Form = /** @class */ (function (_super) {
444
447
  Form.prototype.setValues = function (value, replace) {
445
448
  var store = this.props.store;
446
449
  this.flush();
447
- store.setValues(value, undefined, replace);
450
+ store.setValues(value, undefined, replace, undefined, {
451
+ type: 'action'
452
+ });
448
453
  };
449
454
  Form.prototype.submit = function (fn, throwErrors, skipFlush) {
450
455
  if (throwErrors === void 0) { throwErrors = false; }
@@ -554,13 +559,15 @@ var Form = /** @class */ (function (_super) {
554
559
  }
555
560
  }
556
561
  };
557
- Form.prototype.handleChange = function (value, name, submit, changePristine) {
562
+ Form.prototype.handleChange = function (value, name, submit, changePristine, changeReason) {
558
563
  if (changePristine === void 0) { changePristine = false; }
559
564
  var _a = this.props, store = _a.store, formLazyChange = _a.formLazyChange, persistDataKeys = _a.persistDataKeys;
560
565
  if (typeof name !== 'string') {
561
566
  return;
562
567
  }
563
- store.changeValue(name, value, changePristine);
568
+ store.changeValue(name, value, changePristine, undefined, undefined, changeReason || {
569
+ type: 'input'
570
+ });
564
571
  if (!changePristine || typeof value !== 'undefined') {
565
572
  (formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
566
573
  }
@@ -598,7 +605,7 @@ var Form = /** @class */ (function (_super) {
598
605
  if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented)) {
599
606
  onChange && onChange.apply(null, changeProps);
600
607
  }
601
- store.clearRestError();
608
+ isAlive(store) && store.clearRestError();
602
609
  if (!(!emitedFromWatch && (submit || (submitOnChange && store.inited)))) return [3 /*break*/, 3];
603
610
  return [4 /*yield*/, this.handleAction(undefined, {
604
611
  type: 'submit',
@@ -618,9 +625,11 @@ var Form = /** @class */ (function (_super) {
618
625
  });
619
626
  });
620
627
  };
621
- Form.prototype.handleBulkChange = function (values, submit) {
628
+ Form.prototype.handleBulkChange = function (values, submit, changeReason) {
622
629
  var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
623
- store.setValues(values);
630
+ store.setValues(values, undefined, undefined, undefined, changeReason || {
631
+ type: 'input'
632
+ });
624
633
  // store.updateData(values);
625
634
  // store.items.forEach(formItem => {
626
635
  // const updatedValue = getVariable(values, formItem.name, false);
@@ -670,6 +679,9 @@ var Form = /** @class */ (function (_super) {
670
679
  _f.sent();
671
680
  _f.label = 2;
672
681
  case 2:
682
+ if (!isAlive(store)) {
683
+ return [2 /*return*/];
684
+ }
673
685
  if (trimValues) {
674
686
  store.trimValues();
675
687
  }
@@ -870,7 +882,7 @@ var Form = /** @class */ (function (_super) {
870
882
  if (values === false) {
871
883
  return store.data;
872
884
  }
873
- if (onFinished && onFinished(values, action) === false) {
885
+ if (onFinished && onFinished(values, action, store) === false) {
874
886
  return values;
875
887
  }
876
888
  resetAfterSubmit && store.reset(_this.handleReset(action));
@@ -1229,7 +1241,8 @@ var Form = /** @class */ (function (_super) {
1229
1241
  removeHook: this.removeHook,
1230
1242
  renderFormItems: this.renderFormItems,
1231
1243
  formItemDispatchEvent: this.formItemDispatchEvent,
1232
- formPristine: form.pristine
1244
+ formPristine: form.pristine,
1245
+ onFlushForm: this.flush
1233
1246
  // value: (control as any)?.name
1234
1247
  // ? getVariable(form.data, (control as any)?.name, canAccessSuperData)
1235
1248
  // : (control as any)?.value,
@@ -1383,7 +1396,7 @@ var Form = /** @class */ (function (_super) {
1383
1396
  });
1384
1397
  }
1385
1398
  if (lazyLoad) {
1386
- body = React.createElement(LazyComponent, null, body);
1399
+ body = React.createElement(themedLazyComponent, null, body);
1387
1400
  }
1388
1401
  return body;
1389
1402
  };
@@ -4,7 +4,7 @@ import hoistNonReactStatic from 'hoist-non-react-statics';
4
4
  import { IFormItemStore, IFormStore } from '../store/form';
5
5
  import { RendererProps, TestFunc, RendererConfig } from '../factory';
6
6
  import { FormHorizontal, FormSchemaBase } from './Form';
7
- import { ActionObject, BaseApiObject, BaseSchemaWithoutType, ClassName, Schema } from '../types';
7
+ import { ActionObject, BaseApiObject, BaseSchemaWithoutType, ClassName, DataChangeReason, Schema } from '../types';
8
8
  import { IScopedContext } from '../Scoped';
9
9
  export type LabelAlign = 'right' | 'left' | 'top' | 'inherit';
10
10
  export interface FormBaseControl extends BaseSchemaWithoutType {
@@ -403,7 +403,7 @@ export interface FormItemProps extends RendererProps {
403
403
  onChange: (value: any, submitOnChange?: boolean, changeImmediately?: boolean) => void;
404
404
  onBulkChange?: (values: {
405
405
  [propName: string]: any;
406
- }, submitOnChange?: boolean) => void;
406
+ }, submitOnChange?: boolean, changeReason?: DataChangeReason) => void;
407
407
  addHook: (fn: Function, mode?: 'validate' | 'init' | 'flush', enforce?: 'prev' | 'post') => () => void;
408
408
  removeHook: (fn: Function, mode?: 'validate' | 'init' | 'flush') => void;
409
409
  renderFormItems: (schema: Partial<FormSchemaBase>, region: string, props: any) => JSX.Element;
@@ -460,7 +460,7 @@ export declare class FormItemWrap extends React.Component<FormItemProps> {
460
460
  * @param ctx 上下文对象,类型为任意类型
461
461
  * @param skipIfExits 是否跳过已存在的属性,默认为 false
462
462
  */
463
- applyMapping(mapping: any, ctx: any, skipIfExits?: boolean, ignoreSelf?: boolean): void;
463
+ applyMapping(mapping: any, ctx: any, skipIfExits?: boolean): void;
464
464
  buildAutoFillSchema(): {
465
465
  popOverContainer: any;
466
466
  popOverClassName: any;
@@ -643,9 +643,7 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
643
643
  storeType: string;
644
644
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
645
645
  readonly fetcher: any;
646
- readonly notify: any; /**
647
- * 显示一个小图标, 鼠标放上去的时候显示提示内容
648
- */
646
+ readonly notify: any;
649
647
  readonly isCancel: (value: any) => boolean;
650
648
  readonly __: import("..").TranslateFn<any>;
651
649
  getStoreById(id: string): {
@@ -727,7 +725,10 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
727
725
  } & {
728
726
  addStore(store: {
729
727
  [propName: string]: any;
730
- storeType: string;
728
+ storeType: string; /**
729
+ * 不设置时,当表单提交过后表单项每次修改都会触发重新验证,
730
+ * 如果设置了,则由此配置项来决定要不要每次修改都触发验证。
731
+ */
731
732
  id: string;
732
733
  path: string;
733
734
  parentId?: string | undefined;
@@ -804,14 +805,14 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
804
805
  dispose: (callback?: (() => void) | undefined) => void;
805
806
  addChildId: (id: string) => void;
806
807
  removeChildId: (id: string) => void;
807
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void;
808
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void; /**
809
+ * 配置 input className
810
+ */
808
811
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
809
812
  storeType: import("mobx-state-tree").IType<string | undefined, string, string>;
810
813
  }, {
811
814
  readonly fetcher: any;
812
- readonly notify: any; /**
813
- * 显示一个小图标, 鼠标放上去的时候显示提示内容
814
- */
815
+ readonly notify: any;
815
816
  readonly isCancel: (value: any) => boolean;
816
817
  readonly __: import("..").TranslateFn<any>;
817
818
  getStoreById(id: string): {
@@ -893,7 +894,10 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
893
894
  } & {
894
895
  addStore(store: {
895
896
  [propName: string]: any;
896
- storeType: string;
897
+ storeType: string; /**
898
+ * 不设置时,当表单提交过后表单项每次修改都会触发重新验证,
899
+ * 如果设置了,则由此配置项来决定要不要每次修改都触发验证。
900
+ */
897
901
  id: string;
898
902
  path: string;
899
903
  parentId?: string | undefined;
@@ -970,7 +974,9 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
970
974
  dispose: (callback?: (() => void) | undefined) => void;
971
975
  addChildId: (id: string) => void;
972
976
  removeChildId: (id: string) => void;
973
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void;
977
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void; /**
978
+ * 配置 input className
979
+ */
974
980
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
975
981
  ComposedComponent: React.ComponentType<any>;
976
982
  } & hoistNonReactStatic.NonReactStatics<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
 
@@ -20,7 +20,7 @@ import '../utils/browser.js';
20
20
  import '../utils/ColorScale.js';
21
21
  import 'lodash/chunk';
22
22
  import { getVariable } from '../utils/getVariable.js';
23
- import { createObject, setVariable, createObjectFromChain, deleteVariable } from '../utils/object.js';
23
+ import { createObject, setVariable, createObjectFromChain } from '../utils/object.js';
24
24
  import { dataMapping } from '../utils/dataMapping.js';
25
25
  import '../utils/DataSchema.js';
26
26
  import '../utils/DataScope.js';
@@ -118,7 +118,7 @@ var FormItemWrap = /** @class */ (function (_super) {
118
118
  if (!result) {
119
119
  return [2 /*return*/];
120
120
  }
121
- this.applyMapping((_d = autoFill === null || autoFill === void 0 ? void 0 : autoFill.fillMapping) !== null && _d !== void 0 ? _d : { '&': '$$' }, result, false, true);
121
+ this.applyMapping((_d = autoFill === null || autoFill === void 0 ? void 0 : autoFill.fillMapping) !== null && _d !== void 0 ? _d : { '&': '$$' }, result, false);
122
122
  _e.label = 3;
123
123
  case 3: return [3 /*break*/, 5];
124
124
  case 4:
@@ -275,10 +275,9 @@ var FormItemWrap = /** @class */ (function (_super) {
275
275
  * @param ctx 上下文对象,类型为任意类型
276
276
  * @param skipIfExits 是否跳过已存在的属性,默认为 false
277
277
  */
278
- FormItemWrap.prototype.applyMapping = function (mapping, ctx, skipIfExits, ignoreSelf) {
278
+ FormItemWrap.prototype.applyMapping = function (mapping, ctx, skipIfExits) {
279
279
  if (skipIfExits === void 0) { skipIfExits = false; }
280
- if (ignoreSelf === void 0) { ignoreSelf = false; }
281
- var _a = this.props, onBulkChange = _a.onBulkChange, data = _a.data, formItem = _a.formItem;
280
+ var _a = this.props, onBulkChange = _a.onBulkChange, data = _a.data; _a.formItem;
282
281
  var toSync = dataMapping(mapping, ctx);
283
282
  var tmpData = __assign({}, data);
284
283
  var result = __assign({}, toSync);
@@ -305,9 +304,9 @@ var FormItemWrap = /** @class */ (function (_super) {
305
304
  }
306
305
  });
307
306
  // 是否忽略自己的设置
308
- if (ignoreSelf && (formItem === null || formItem === void 0 ? void 0 : formItem.name)) {
309
- deleteVariable(result, formItem.name);
310
- }
307
+ // if (ignoreSelf && formItem?.name) {
308
+ // deleteVariable(result, formItem.name);
309
+ // }
311
310
  onBulkChange(result);
312
311
  };
313
312
  FormItemWrap.prototype.buildAutoFillSchema = function () {
@@ -549,7 +548,7 @@ var FormItemWrap = /** @class */ (function (_super) {
549
548
  var labelAlign = (props.labelAlign !== 'inherit' && props.labelAlign) ||
550
549
  props.formLabelAlign;
551
550
  var labelWidth = props.labelWidth || props.formLabelWidth;
552
- return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--horizontal", isStatic && staticClassName ? staticClassName : className, (_a = {
551
+ return (React.createElement("div", { "data-role": "form-item", "data-amis-name": props.name, className: cx("Form-item Form-item--horizontal", isStatic && staticClassName ? staticClassName : className, (_a = {
553
552
  'Form-item--horizontal-justify': horizontal.justify
554
553
  },
555
554
  _a["is-error"] = model && !model.valid,
@@ -615,7 +614,7 @@ var FormItemWrap = /** @class */ (function (_super) {
615
614
  var _a;
616
615
  var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint; props.data; var showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, themeCss = props.themeCss, wrapperCustomStyle = props.wrapperCustomStyle, id = props.id;
617
616
  description = description || desc;
618
- return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--normal", isStatic && staticClassName ? staticClassName : className, (_a = {
617
+ return (React.createElement("div", { "data-role": "form-item", "data-amis-name": props.name, className: cx("Form-item Form-item--normal", isStatic && staticClassName ? staticClassName : className, (_a = {
619
618
  'is-error': model && !model.valid
620
619
  },
621
620
  _a["is-required"] = required,
@@ -701,7 +700,7 @@ var FormItemWrap = /** @class */ (function (_super) {
701
700
  var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, remark = props.remark, labelRemark = props.labelRemark, env = props.env, hint = props.hint, renderLabel = props.renderLabel, renderDescription = props.renderDescription; props.data; var showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, themeCss = props.themeCss, wrapperCustomStyle = props.wrapperCustomStyle, id = props.id;
702
701
  var labelWidth = props.labelWidth || props.formLabelWidth;
703
702
  description = description || desc;
704
- return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--inline", isStatic && staticClassName ? staticClassName : className, (_a = {
703
+ return (React.createElement("div", { "data-role": "form-item", "data-amis-name": props.name, className: cx("Form-item Form-item--inline", isStatic && staticClassName ? staticClassName : className, (_a = {
705
704
  'is-error': model && !model.valid
706
705
  },
707
706
  _a["is-required"] = required,
@@ -757,7 +756,7 @@ var FormItemWrap = /** @class */ (function (_super) {
757
756
  var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint; props.data; var showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, wrapperCustomStyle = props.wrapperCustomStyle, themeCss = props.themeCss, id = props.id;
758
757
  description = description || desc;
759
758
  var labelWidth = props.labelWidth || props.formLabelWidth;
760
- return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--row", isStatic && staticClassName ? staticClassName : className, (_a = {
759
+ return (React.createElement("div", { "data-role": "form-item", "data-amis-name": props.name, className: cx("Form-item Form-item--row", isStatic && staticClassName ? staticClassName : className, (_a = {
761
760
  'is-error': model && !model.valid
762
761
  },
763
762
  _a["is-required"] = required,
@@ -814,7 +813,7 @@ var FormItemWrap = /** @class */ (function (_super) {
814
813
  props.formLabelAlign;
815
814
  var labelWidth = props.labelWidth || props.formLabelWidth;
816
815
  description = description || desc;
817
- return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--flex", isStatic && staticClassName ? staticClassName : className, (_a = {
816
+ return (React.createElement("div", { "data-role": "form-item", "data-amis-name": props.name, className: cx("Form-item Form-item--flex", isStatic && staticClassName ? staticClassName : className, (_a = {
818
817
  'is-error': model && !model.valid
819
818
  },
820
819
  _a["is-required"] = required,
@@ -138,9 +138,9 @@ export interface OptionsControlProps extends FormControlProps, Omit<FormOptionsC
138
138
  deferLoad: (option: Option) => void;
139
139
  leftDeferLoad: (option: Option, leftOptions: Option) => void;
140
140
  expandTreeOptions: (nodePathArr: any[]) => void;
141
- onAdd?: (idx?: number | Array<number>, value?: any, skipForm?: boolean) => void;
142
- onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;
143
- onDelete?: (value: Option) => void;
141
+ onAdd?: (idx?: number | Array<number>, value?: any, skipForm?: boolean, callback?: (value: any) => any) => void;
142
+ onEdit?: (value: Option, origin?: Option, skipForm?: boolean, callback?: (value: any) => any) => void;
143
+ onDelete?: (value: Option, callback?: (value: any) => any) => void;
144
144
  }
145
145
  export interface OptionsProps extends FormControlProps, Omit<OptionProps, 'className'> {
146
146
  source?: Api;
@@ -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
 
@@ -519,12 +519,12 @@ function registerOptionsControl(config) {
519
519
  var formItem = this.props.formItem;
520
520
  formItem && formItem.setLoading(value);
521
521
  };
522
- FormOptionsItem.prototype.handleOptionAdd = function (idx, value, skipForm) {
522
+ FormOptionsItem.prototype.handleOptionAdd = function (idx, value, skipForm, callback) {
523
523
  var _a, _b;
524
524
  if (idx === void 0) { idx = -1; }
525
525
  if (skipForm === void 0) { skipForm = false; }
526
526
  return __awaiter(this, void 0, void 0, function () {
527
- var _c, addControls, addDialog, disabled, labelField, onOpenDialog, optionLabel, addApi, source, data, valueField, deferField, model, createBtnLabel, env, __, parent, ctx, customAddPrevent, result, _d, prevent, payload, e_1, isPrevented, options;
527
+ var _c, addControls, addDialog, disabled, labelField, onOpenDialog, optionLabel, addApi, source, data, valueField, deferField, model, createBtnLabel, env, __, parent, ctx, customAddPrevent, result, _d, prevent, payload, e_1, isPrevented, ret, options;
528
528
  var _e;
529
529
  var _this = this;
530
530
  return __generator(this, function (_f) {
@@ -654,13 +654,24 @@ function registerOptionsControl(config) {
654
654
  if (isPrevented) {
655
655
  return [2 /*return*/];
656
656
  }
657
- if (!(((parent === null || parent === void 0 ? void 0 : parent.hasOwnProperty(deferField)) && parent[deferField]) ||
658
- (parent === null || parent === void 0 ? void 0 : parent.defer))) return [3 /*break*/, 13];
659
- return [4 /*yield*/, this.deferLoad(parent)];
657
+ return [4 /*yield*/, (callback === null || callback === void 0 ? void 0 : callback(result))];
660
658
  case 12:
661
- _f.sent();
662
- return [3 /*break*/, 14];
659
+ ret = _f.sent();
660
+ if (!(ret === false)) return [3 /*break*/, 13];
661
+ // 如果回调里面返回 false,就不继续了。
662
+ return [2 /*return*/];
663
663
  case 13:
664
+ if (!
665
+ // 如果是懒加载的,只懒加载当前节点。
666
+ (((parent === null || parent === void 0 ? void 0 : parent.hasOwnProperty(deferField)) && parent[deferField]) ||
667
+ (parent === null || parent === void 0 ? void 0 : parent.defer)))
668
+ // 如果是懒加载的,只懒加载当前节点。
669
+ return [3 /*break*/, 15];
670
+ return [4 /*yield*/, this.deferLoad(parent)];
671
+ case 14:
672
+ _f.sent();
673
+ return [3 /*break*/, 16];
674
+ case 15:
664
675
  if (source && addApi) {
665
676
  // 如果配置了 source 且配置了 addApi 直接重新拉取接口就够了
666
677
  // 不能不判断 addApi 就刷新,因为有些场景就是临时添加的。
@@ -678,18 +689,18 @@ function registerOptionsControl(config) {
678
689
  }
679
690
  model.setOptions(options, this.changeOptionValue, data);
680
691
  }
681
- _f.label = 14;
682
- case 14: return [2 /*return*/];
692
+ _f.label = 16;
693
+ case 16: return [2 /*return*/];
683
694
  }
684
695
  });
685
696
  });
686
697
  };
687
- FormOptionsItem.prototype.handleOptionEdit = function (value, origin, skipForm) {
698
+ FormOptionsItem.prototype.handleOptionEdit = function (value, origin, skipForm, callback) {
688
699
  var _a, _b;
689
700
  if (origin === void 0) { origin = value; }
690
701
  if (skipForm === void 0) { skipForm = false; }
691
702
  return __awaiter(this, void 0, void 0, function () {
692
- var _c, editControls, editDialog, disabled, labelField, valueField, onOpenDialog, editApi, editInitApi, env, source, data, model, optionLabel, __, customEditPrevent, result, _d, prevent, payload, e_2, isPrevented, indexes;
703
+ var _c, editControls, editDialog, disabled, labelField, valueField, onOpenDialog, editApi, editInitApi, env, source, data, model, optionLabel, __, customEditPrevent, result, _d, prevent, payload, e_2, isPrevented, ret, indexes;
693
704
  var _this = this;
694
705
  return __generator(this, function (_e) {
695
706
  switch (_e.label) {
@@ -798,7 +809,14 @@ function registerOptionsControl(config) {
798
809
  if (isPrevented) {
799
810
  return [2 /*return*/];
800
811
  }
801
- if (source && editApi) {
812
+ return [4 /*yield*/, (callback === null || callback === void 0 ? void 0 : callback(result))];
813
+ case 12:
814
+ ret = _e.sent();
815
+ if (ret === false) {
816
+ // 如果回调里面返回 false,就不继续了。
817
+ return [2 /*return*/];
818
+ }
819
+ else if (source && editApi) {
802
820
  this.reload();
803
821
  }
804
822
  else {
@@ -812,10 +830,10 @@ function registerOptionsControl(config) {
812
830
  });
813
831
  });
814
832
  };
815
- FormOptionsItem.prototype.handleOptionDelete = function (value) {
833
+ FormOptionsItem.prototype.handleOptionDelete = function (value, callback) {
816
834
  var _a, _b;
817
835
  return __awaiter(this, void 0, void 0, function () {
818
- var _c, deleteConfirmText, disabled, data, deleteApi, onDelete, env, model, source, valueField, __, ctx, confirmed, _d, isPrevented, delConfirmPrevent, result, options, indexes, e_3;
836
+ var _c, deleteConfirmText, disabled, data, deleteApi, onDelete, env, model, source, valueField, __, ctx, confirmed, _d, isPrevented, delConfirmPrevent, result, ret, options, indexes, e_3;
819
837
  return __generator(this, function (_e) {
820
838
  switch (_e.label) {
821
839
  case 0:
@@ -871,7 +889,12 @@ function registerOptionsControl(config) {
871
889
  if (onDelete) {
872
890
  onDelete(ctx);
873
891
  }
874
- if (source) {
892
+ ret = callback === null || callback === void 0 ? void 0 : callback(ctx);
893
+ if (ret === false) {
894
+ // 如果回调里面返回 false,就不继续了。
895
+ return [2 /*return*/];
896
+ }
897
+ else if (source) {
875
898
  this.reload();
876
899
  }
877
900
  else {
@@ -985,19 +1008,19 @@ function registerOptionsControl(config) {
985
1008
  __decorate([
986
1009
  autobind,
987
1010
  __metadata("design:type", Function),
988
- __metadata("design:paramtypes", [Object, Object, Boolean]),
1011
+ __metadata("design:paramtypes", [Object, Object, Boolean, Function]),
989
1012
  __metadata("design:returntype", Promise)
990
1013
  ], FormOptionsItem.prototype, "handleOptionAdd", null);
991
1014
  __decorate([
992
1015
  autobind,
993
1016
  __metadata("design:type", Function),
994
- __metadata("design:paramtypes", [Object, Object, Boolean]),
1017
+ __metadata("design:paramtypes", [Object, Object, Boolean, Function]),
995
1018
  __metadata("design:returntype", Promise)
996
1019
  ], FormOptionsItem.prototype, "handleOptionEdit", null);
997
1020
  __decorate([
998
1021
  autobind,
999
1022
  __metadata("design:type", Function),
1000
- __metadata("design:paramtypes", [Object]),
1023
+ __metadata("design:paramtypes", [Object, Function]),
1001
1024
  __metadata("design:returntype", Promise)
1002
1025
  ], FormOptionsItem.prototype, "handleOptionDelete", null);
1003
1026
  return FormOptionsItem;
@@ -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
 
@@ -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
 
@@ -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