amis-core 6.13.0-beta.1 → 6.13.0-beta.11

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 (312) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +15 -7
  3. package/esm/SchemaRenderer.d.ts +3 -0
  4. package/esm/SchemaRenderer.js +63 -10
  5. package/esm/Scoped.js +1 -1
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/StyleManager.js +1 -1
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +8 -4
  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 +1 -1
  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 +1 -1
  30. package/esm/actions/WaitAction.js +1 -1
  31. package/esm/components/Animations.js +1 -1
  32. package/esm/components/CustomStyle.js +1 -1
  33. package/esm/components/ErrorBoundary.js +1 -1
  34. package/esm/components/LazyComponent.js +1 -1
  35. package/esm/components/Overlay.js +1 -1
  36. package/esm/components/PopOver.js +3 -1
  37. package/esm/env.js +1 -1
  38. package/esm/envOverwrite.js +1 -1
  39. package/esm/factory.js +1 -1
  40. package/esm/globalVar.js +15 -2
  41. package/esm/globalVarClientHandler.js +1 -1
  42. package/esm/globalVarDefaultValueHandler.js +1 -1
  43. package/esm/index.js +5 -5
  44. package/esm/locale.js +1 -1
  45. package/esm/polyfills.js +1 -1
  46. package/esm/renderers/Form.js +3 -5
  47. package/esm/renderers/Item.js +2 -17
  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.js +10 -4
  53. package/esm/store/app.d.ts +4 -0
  54. package/esm/store/app.js +1 -1
  55. package/esm/store/combo.d.ts +12 -0
  56. package/esm/store/combo.js +1 -1
  57. package/esm/store/crud.d.ts +5 -0
  58. package/esm/store/crud.js +5 -1
  59. package/esm/store/form.d.ts +4 -1
  60. package/esm/store/form.js +3 -2
  61. package/esm/store/formItem.js +1 -1
  62. package/esm/store/iRenderer.d.ts +4 -0
  63. package/esm/store/iRenderer.js +27 -4
  64. package/esm/store/index.js +1 -1
  65. package/esm/store/list.d.ts +4 -0
  66. package/esm/store/list.js +1 -1
  67. package/esm/store/manager.js +1 -1
  68. package/esm/store/modal.d.ts +6 -0
  69. package/esm/store/modal.js +7 -2
  70. package/esm/store/node.js +1 -1
  71. package/esm/store/pagination.d.ts +4 -0
  72. package/esm/store/pagination.js +1 -1
  73. package/esm/store/root.d.ts +14 -2
  74. package/esm/store/root.js +181 -49
  75. package/esm/store/service.d.ts +4 -0
  76. package/esm/store/service.js +1 -1
  77. package/esm/store/status.js +1 -1
  78. package/esm/store/table.d.ts +53 -92
  79. package/esm/store/table.js +42 -20
  80. package/esm/store/table2.d.ts +5 -0
  81. package/esm/store/table2.js +17 -10
  82. package/esm/theme.js +1 -1
  83. package/esm/utils/Animation.js +1 -1
  84. package/esm/utils/ColorScale.js +1 -1
  85. package/esm/utils/DataSchema.js +1 -1
  86. package/esm/utils/DataScope.js +1 -1
  87. package/esm/utils/RootClose.js +1 -1
  88. package/esm/utils/SimpleMap.js +1 -1
  89. package/esm/utils/animations.js +1 -1
  90. package/esm/utils/api.js +8 -3
  91. package/esm/utils/arraySlice.js +1 -1
  92. package/esm/utils/attachmentAdpator.js +1 -1
  93. package/esm/utils/autobind.js +1 -1
  94. package/esm/utils/browser.js +1 -1
  95. package/esm/utils/columnsSplit.js +1 -1
  96. package/esm/utils/concatData.js +1 -1
  97. package/esm/utils/dataMapping.js +1 -1
  98. package/esm/utils/date.js +1 -1
  99. package/esm/utils/debug.js +1 -1
  100. package/esm/utils/decodeEntity.js +1 -1
  101. package/esm/utils/dom.js +6 -3
  102. package/esm/utils/errors.js +2 -1
  103. package/esm/utils/escapeHtml.js +1 -1
  104. package/esm/utils/filter-schema.js +1 -1
  105. package/esm/utils/filter.js +1 -1
  106. package/esm/utils/formatDuration.js +1 -1
  107. package/esm/utils/formula.js +1 -1
  108. package/esm/utils/getPageId.js +1 -1
  109. package/esm/utils/getVariable.js +1 -1
  110. package/esm/utils/grammar.js +1 -1
  111. package/esm/utils/handleAction.js +1 -1
  112. package/esm/utils/helper.js +1 -1
  113. package/esm/utils/highlight.js +1 -1
  114. package/esm/utils/icon.js +1 -1
  115. package/esm/utils/image.js +1 -1
  116. package/esm/utils/index.js +1 -1
  117. package/esm/utils/isPureVariable.js +2 -2
  118. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  119. package/esm/utils/keyToPath.js +1 -1
  120. package/esm/utils/labelToString.js +1 -1
  121. package/esm/utils/loopTooMuch.js +1 -1
  122. package/esm/utils/makeSorter.js +1 -1
  123. package/esm/utils/math.js +1 -1
  124. package/esm/utils/memoryParse.js +1 -1
  125. package/esm/utils/normalizeLink.js +1 -1
  126. package/esm/utils/normalizeOptions.js +6 -2
  127. package/esm/utils/object.js +1 -1
  128. package/esm/utils/offset.js +1 -1
  129. package/esm/utils/offsetParent.js +1 -1
  130. package/esm/utils/optionValueCompare.js +1 -1
  131. package/esm/utils/position.js +1 -1
  132. package/esm/utils/prettyBytes.js +1 -1
  133. package/esm/utils/printElement.js +1 -1
  134. package/esm/utils/renderer-event.js +1 -1
  135. package/esm/utils/replaceText.js +1 -1
  136. package/esm/utils/resize-sensor.js +1 -1
  137. package/esm/utils/resolveCondition.js +1 -1
  138. package/esm/utils/resolveVariable.js +1 -1
  139. package/esm/utils/resolveVariableAndFilter.js +1 -1
  140. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  141. package/esm/utils/scrollPosition.js +1 -1
  142. package/esm/utils/string2regExp.js +1 -1
  143. package/esm/utils/stripNumber.js +1 -1
  144. package/esm/utils/style-helper.js +1 -1
  145. package/esm/utils/style.d.ts +13 -0
  146. package/esm/utils/style.js +43 -3
  147. package/esm/utils/toNumber.js +1 -1
  148. package/esm/utils/tokenize.js +1 -1
  149. package/esm/utils/tpl-builtin.js +1 -1
  150. package/esm/utils/tpl-lodash.js +1 -1
  151. package/esm/utils/tpl.js +6 -2
  152. package/esm/utils/uncontrollable.js +1 -1
  153. package/esm/utils/validateId.js +1 -1
  154. package/esm/utils/validations.js +1 -1
  155. package/esm/utils/visitedCache.js +1 -1
  156. package/lib/Root.js +1 -1
  157. package/lib/RootRenderer.d.ts +1 -1
  158. package/lib/RootRenderer.js +15 -7
  159. package/lib/SchemaRenderer.d.ts +3 -0
  160. package/lib/SchemaRenderer.js +65 -8
  161. package/lib/Scoped.js +1 -1
  162. package/lib/StatusScoped.js +1 -1
  163. package/lib/StyleManager.js +1 -1
  164. package/lib/WithRootStore.js +1 -1
  165. package/lib/WithStore.js +8 -4
  166. package/lib/actions/Action.js +1 -1
  167. package/lib/actions/AjaxAction.js +1 -1
  168. package/lib/actions/BreakAction.js +1 -1
  169. package/lib/actions/BroadcastAction.js +1 -1
  170. package/lib/actions/CmptAction.js +1 -1
  171. package/lib/actions/ContinueAction.js +1 -1
  172. package/lib/actions/CopyAction.js +1 -1
  173. package/lib/actions/CustomAction.js +1 -1
  174. package/lib/actions/DialogAction.js +1 -1
  175. package/lib/actions/DrawerAction.js +1 -1
  176. package/lib/actions/EmailAction.js +1 -1
  177. package/lib/actions/EventAction.js +1 -1
  178. package/lib/actions/LinkAction.js +1 -1
  179. package/lib/actions/LoopAction.js +1 -1
  180. package/lib/actions/PageAction.js +1 -1
  181. package/lib/actions/ParallelAction.js +1 -1
  182. package/lib/actions/PrintAction.js +1 -1
  183. package/lib/actions/StatusAction.js +1 -1
  184. package/lib/actions/SwitchAction.js +1 -1
  185. package/lib/actions/ToastAction.js +1 -1
  186. package/lib/actions/WaitAction.js +1 -1
  187. package/lib/components/Animations.js +1 -1
  188. package/lib/components/CustomStyle.js +1 -1
  189. package/lib/components/ErrorBoundary.js +1 -1
  190. package/lib/components/LazyComponent.js +1 -1
  191. package/lib/components/Overlay.js +1 -1
  192. package/lib/components/PopOver.js +3 -1
  193. package/lib/env.js +1 -1
  194. package/lib/envOverwrite.js +1 -1
  195. package/lib/factory.js +1 -1
  196. package/lib/globalVar.js +19 -2
  197. package/lib/globalVarClientHandler.js +1 -1
  198. package/lib/globalVarDefaultValueHandler.js +1 -1
  199. package/lib/index.js +6 -4
  200. package/lib/locale.js +1 -1
  201. package/lib/polyfills.js +1 -1
  202. package/lib/renderers/Form.js +3 -5
  203. package/lib/renderers/Item.js +2 -17
  204. package/lib/renderers/Options.js +1 -1
  205. package/lib/renderers/Placeholder.js +1 -1
  206. package/lib/renderers/builtin.js +1 -1
  207. package/lib/renderers/register.js +1 -1
  208. package/lib/renderers/wrapControl.js +10 -4
  209. package/lib/store/app.d.ts +4 -0
  210. package/lib/store/app.js +1 -1
  211. package/lib/store/combo.d.ts +12 -1
  212. package/lib/store/combo.js +1 -1
  213. package/lib/store/crud.d.ts +5 -0
  214. package/lib/store/crud.js +5 -1
  215. package/lib/store/form.d.ts +4 -2
  216. package/lib/store/form.js +3 -2
  217. package/lib/store/formItem.js +1 -1
  218. package/lib/store/iRenderer.d.ts +4 -0
  219. package/lib/store/iRenderer.js +30 -3
  220. package/lib/store/index.js +1 -1
  221. package/lib/store/list.d.ts +4 -0
  222. package/lib/store/list.js +1 -1
  223. package/lib/store/manager.js +1 -1
  224. package/lib/store/modal.d.ts +6 -0
  225. package/lib/store/modal.js +7 -2
  226. package/lib/store/node.js +1 -1
  227. package/lib/store/pagination.d.ts +4 -0
  228. package/lib/store/pagination.js +1 -1
  229. package/lib/store/root.d.ts +14 -3
  230. package/lib/store/root.js +178 -46
  231. package/lib/store/service.d.ts +4 -0
  232. package/lib/store/service.js +1 -1
  233. package/lib/store/status.js +1 -1
  234. package/lib/store/table.d.ts +53 -93
  235. package/lib/store/table.js +41 -19
  236. package/lib/store/table2.d.ts +5 -0
  237. package/lib/store/table2.js +17 -10
  238. package/lib/theme.js +1 -1
  239. package/lib/utils/Animation.js +1 -1
  240. package/lib/utils/ColorScale.js +1 -1
  241. package/lib/utils/DataSchema.js +1 -1
  242. package/lib/utils/DataScope.js +1 -1
  243. package/lib/utils/RootClose.js +1 -1
  244. package/lib/utils/SimpleMap.js +1 -1
  245. package/lib/utils/animations.js +1 -1
  246. package/lib/utils/api.js +8 -3
  247. package/lib/utils/arraySlice.js +1 -1
  248. package/lib/utils/attachmentAdpator.js +1 -1
  249. package/lib/utils/autobind.js +1 -1
  250. package/lib/utils/browser.js +1 -1
  251. package/lib/utils/columnsSplit.js +1 -1
  252. package/lib/utils/concatData.js +1 -1
  253. package/lib/utils/dataMapping.js +1 -1
  254. package/lib/utils/date.js +1 -1
  255. package/lib/utils/debug.js +1 -1
  256. package/lib/utils/decodeEntity.js +1 -1
  257. package/lib/utils/dom.js +6 -3
  258. package/lib/utils/errors.js +2 -1
  259. package/lib/utils/escapeHtml.js +1 -1
  260. package/lib/utils/filter-schema.js +1 -1
  261. package/lib/utils/filter.js +1 -1
  262. package/lib/utils/formatDuration.js +1 -1
  263. package/lib/utils/formula.js +1 -1
  264. package/lib/utils/getPageId.js +1 -1
  265. package/lib/utils/getVariable.js +1 -1
  266. package/lib/utils/grammar.js +1 -1
  267. package/lib/utils/handleAction.js +1 -1
  268. package/lib/utils/helper.js +1 -1
  269. package/lib/utils/highlight.js +1 -1
  270. package/lib/utils/icon.js +1 -1
  271. package/lib/utils/image.js +1 -1
  272. package/lib/utils/index.js +1 -1
  273. package/lib/utils/isPureVariable.js +2 -2
  274. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  275. package/lib/utils/keyToPath.js +1 -1
  276. package/lib/utils/labelToString.js +1 -1
  277. package/lib/utils/loopTooMuch.js +1 -1
  278. package/lib/utils/makeSorter.js +1 -1
  279. package/lib/utils/math.js +1 -1
  280. package/lib/utils/memoryParse.js +1 -1
  281. package/lib/utils/normalizeLink.js +1 -1
  282. package/lib/utils/normalizeOptions.js +6 -2
  283. package/lib/utils/object.js +1 -1
  284. package/lib/utils/offset.js +1 -1
  285. package/lib/utils/offsetParent.js +1 -1
  286. package/lib/utils/optionValueCompare.js +1 -1
  287. package/lib/utils/position.js +1 -1
  288. package/lib/utils/prettyBytes.js +1 -1
  289. package/lib/utils/printElement.js +1 -1
  290. package/lib/utils/renderer-event.js +1 -1
  291. package/lib/utils/replaceText.js +1 -1
  292. package/lib/utils/resize-sensor.js +1 -1
  293. package/lib/utils/resolveCondition.js +1 -1
  294. package/lib/utils/resolveVariable.js +1 -1
  295. package/lib/utils/resolveVariableAndFilter.js +1 -1
  296. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  297. package/lib/utils/scrollPosition.js +1 -1
  298. package/lib/utils/string2regExp.js +1 -1
  299. package/lib/utils/stripNumber.js +1 -1
  300. package/lib/utils/style-helper.js +1 -1
  301. package/lib/utils/style.d.ts +13 -0
  302. package/lib/utils/style.js +44 -2
  303. package/lib/utils/toNumber.js +1 -1
  304. package/lib/utils/tokenize.js +1 -1
  305. package/lib/utils/tpl-builtin.js +1 -1
  306. package/lib/utils/tpl-lodash.js +1 -1
  307. package/lib/utils/tpl.js +6 -2
  308. package/lib/utils/uncontrollable.js +1 -1
  309. package/lib/utils/validateId.js +1 -1
  310. package/lib/utils/validations.js +1 -1
  311. package/lib/utils/visitedCache.js +1 -1
  312. package/package.json +2 -2
@@ -17,8 +17,10 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
17
17
  pristineRaw: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
18
18
  upStreamData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
19
19
  action: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
20
+ dialogSchema: import("mobx-state-tree").IType<any, any, any>;
20
21
  dialogOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
21
22
  dialogData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
23
+ drawerSchema: import("mobx-state-tree").IType<any, any, any>;
22
24
  drawerOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
23
25
  drawerData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
24
26
  } & {
@@ -36,6 +38,7 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
36
38
  runtimeErrorStack: import("mobx-state-tree").IType<any, any, any>;
37
39
  query: import("mobx-state-tree").IType<any, any, any>;
38
40
  ready: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
41
+ globalVarTempStates: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IMapType<import("mobx-state-tree").IType<GlobalVariableState, GlobalVariableState, GlobalVariableState>>, [undefined]>;
39
42
  globalVarStates: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IMapType<import("mobx-state-tree").IType<GlobalVariableState, GlobalVariableState, GlobalVariableState>>, [undefined]>;
40
43
  }, {
41
44
  readonly parentStore: any;
@@ -55,6 +58,8 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
55
58
  } & {
56
59
  setTopStore(value: any): void;
57
60
  initData(data?: object, skipSetPristine?: boolean, changeReason?: import("..").DataChangeReason | undefined): void;
61
+ temporaryUpdateGlobalVars(globalVar: any): void;
62
+ unDoTemporaryUpdateGlobalVars(): void;
58
63
  reset(): void;
59
64
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined, changeReason?: import("..").DataChangeReason | undefined): void;
60
65
  changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined, changeReason?: import("..").DataChangeReason | undefined): void;
@@ -81,13 +86,16 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
81
86
  fetchSchema: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
82
87
  checkRemote: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
83
88
  } & {
84
- context: {};
89
+ context: any;
90
+ legacyGlobalTempContext: any;
85
91
  globalVars: GlobalVariableItemFull[];
86
92
  globalData: any;
87
93
  } & {
94
+ readonly nextGlobalData: any;
88
95
  readonly downStream: any;
89
96
  } & {
90
- updateContext(context: any): void;
97
+ updateContextBySetter(context: any): void;
98
+ updateContext(context: any, isInit?: boolean): void;
91
99
  updateGlobalVarState(key: string, state: Partial<GlobalVariableState>): void;
92
100
  setGlobalVars: (vars?: Array<GlobalVariableItem>) => Promise<any>;
93
101
  updateGlobalVarValue: (key: string, value: any) => void;
@@ -99,6 +107,10 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
99
107
  setRuntimeError(error: any, errorStack: any): void;
100
108
  updateLocation(location?: any, parseFn?: Function): void;
101
109
  init: (schema: any) => Promise<any>;
110
+ syncGlobalVarStates: () => void;
111
+ syncLegacyGlobalVarStates: () => void;
112
+ addSyncGlobalVarStatePendingTask: (fn: (callback: () => void) => void, callback?: () => void) => void;
113
+ afterCreate(): void;
102
114
  afterDestroy(): void;
103
115
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
104
116
  export type IRootStore = Instance<typeof RootStore>;
package/esm/store/root.js CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.1
2
+ * amis-core v6.13.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
6
- import { __assign, __generator, __values, __awaiter, __read } from 'tslib';
7
- import { types, flow } from 'mobx-state-tree';
6
+ import { __assign, __generator, __rest, __values, __awaiter, __read } from 'tslib';
7
+ import { types, flow, addDisposer, isAlive } from 'mobx-state-tree';
8
8
  import { parseQuery, isObjectShallowModified } from '../utils/helper.js';
9
9
  import { ServiceStore } from './service.js';
10
10
  import '../utils/api.js';
@@ -13,7 +13,7 @@ import '../utils/browser.js';
13
13
  import '../utils/ColorScale.js';
14
14
  import 'react';
15
15
  import 'lodash/chunk';
16
- import { extractObjectChain, createObjectFromChain } from '../utils/object.js';
16
+ import { extractObjectChain, createObjectFromChain, cloneObject } from '../utils/object.js';
17
17
  import '../utils/memoryParse.js';
18
18
  import 'amis-formula';
19
19
  import isPlainObject from 'lodash/isPlainObject';
@@ -46,7 +46,7 @@ import 'uncontrollable';
46
46
  import 'hoist-non-react-statics';
47
47
  import '../utils/validations.js';
48
48
  import '../utils/resolveCondition.js';
49
- import 'mobx';
49
+ import { reaction } from 'mobx';
50
50
  import '../utils/Animation.js';
51
51
  import { createGlobalVarState, buildGlobalVariable } from '../globalVar.js';
52
52
 
@@ -56,11 +56,17 @@ var RootStore = ServiceStore.named('RootStore')
56
56
  runtimeErrorStack: types.frozen(),
57
57
  query: types.frozen(),
58
58
  ready: false,
59
+ // 临时变更,等 react 完成一轮渲染后,将临时变更切成正式变更
60
+ // 主要是为了让可能需要重新渲染的部分组件可以实现 this.props.data 和 prevProps.data 不一致
61
+ // 因为很多组件内部会 diff this.props.data 和 prevProps.data 来决定是否更新的逻辑
62
+ globalVarTempStates: types.optional(types.map(types.frozen()), {}),
63
+ // 正式变更
59
64
  globalVarStates: types.optional(types.map(types.frozen()), {})
60
65
  })
61
66
  .volatile(function (self) {
62
67
  return {
63
68
  context: {},
69
+ legacyGlobalTempContext: {},
64
70
  globalVars: [],
65
71
  globalData: {
66
72
  global: {},
@@ -69,45 +75,80 @@ var RootStore = ServiceStore.named('RootStore')
69
75
  };
70
76
  })
71
77
  .views(function (self) { return ({
78
+ get nextGlobalData() {
79
+ var globalData = {};
80
+ var globalState = {};
81
+ var chain = extractObjectChain(self.data);
82
+ var touched = false;
83
+ var saved = true;
84
+ var errors = {};
85
+ var initialized = true;
86
+ self.globalVarTempStates.forEach(function (state, key) {
87
+ globalData[key] = state.value;
88
+ touched = touched || state.touched;
89
+ if (!state.saved) {
90
+ saved = false;
91
+ }
92
+ if (state.errorMessages.length) {
93
+ errors[key] = state.errorMessages;
94
+ }
95
+ if (!state.initialized) {
96
+ initialized = false;
97
+ }
98
+ });
99
+ globalState = {
100
+ fields: self.globalVarTempStates.toJSON(),
101
+ initialized: initialized,
102
+ touched: touched,
103
+ saved: saved,
104
+ errors: errors,
105
+ valid: !Object.keys(errors).length
106
+ };
107
+ chain.unshift({
108
+ global: globalData,
109
+ globalState: globalState
110
+ });
111
+ chain.unshift(self.legacyGlobalTempContext);
112
+ chain.unshift(self.context);
113
+ return createObjectFromChain(chain);
114
+ },
72
115
  get downStream() {
73
116
  var result = self.data;
74
- if (self.context || self.query || self.globalVarStates.size) {
117
+ if (self.context || self.query) {
75
118
  var chain = extractObjectChain(result);
76
119
  // 数据链中添加 global 和 globalState
77
120
  // 对应的是全局变量的值和全局变量的状态
78
- if (self.globalVarStates.size) {
79
- var globalData_1 = {};
80
- var touched_1 = false;
81
- var saved_1 = true;
82
- var errors_1 = {};
83
- var initialized_1 = true;
84
- self.globalVarStates.forEach(function (state, key) {
85
- globalData_1[key] = state.value;
86
- touched_1 = touched_1 || state.touched;
87
- if (!state.saved) {
88
- saved_1 = false;
89
- }
90
- if (state.errorMessages.length) {
91
- errors_1[key] = state.errorMessages;
92
- }
93
- if (!state.initialized) {
94
- initialized_1 = false;
95
- }
96
- });
97
- // 保存全局变量的值和状态
98
- Object.assign(self.globalData.global, globalData_1);
99
- Object.assign(self.globalData.globalState, {
100
- fields: self.globalVarStates.toJSON(),
101
- initialized: initialized_1,
102
- touched: touched_1,
103
- saved: saved_1,
104
- errors: errors_1,
105
- valid: !Object.keys(errors_1).length
106
- });
107
- // self.globalData 一直都是那个对象,这样组件里面始终拿到的都是最新的
108
- chain.unshift(self.globalData);
109
- }
110
- self.context && chain.unshift(self.context);
121
+ var globalData_1 = {};
122
+ var touched_1 = false;
123
+ var saved_1 = true;
124
+ var errors_1 = {};
125
+ var initialized_1 = true;
126
+ self.globalVarStates.forEach(function (state, key) {
127
+ globalData_1[key] = state.value;
128
+ touched_1 = touched_1 || state.touched;
129
+ if (!state.saved) {
130
+ saved_1 = false;
131
+ }
132
+ if (state.errorMessages.length) {
133
+ errors_1[key] = state.errorMessages;
134
+ }
135
+ if (!state.initialized) {
136
+ initialized_1 = false;
137
+ }
138
+ });
139
+ // 保存全局变量的值和状态
140
+ Object.assign(self.globalData.global, globalData_1);
141
+ Object.assign(self.globalData.globalState, {
142
+ fields: self.globalVarStates.toJSON(),
143
+ initialized: initialized_1,
144
+ touched: touched_1,
145
+ saved: saved_1,
146
+ errors: errors_1,
147
+ valid: !Object.keys(errors_1).length
148
+ });
149
+ // self.globalData 一直都是那个对象,这样组件里面始终拿到的都是最新的
150
+ chain.unshift(self.globalData);
151
+ chain.unshift(self.context);
111
152
  self.query &&
112
153
  chain.splice(chain.length - 1, 0, __assign(__assign({}, self.query), { __query: self.query }));
113
154
  result = createObjectFromChain(chain);
@@ -200,7 +241,7 @@ var RootStore = ServiceStore.named('RootStore')
200
241
  return [4 /*yield*/, getGlobalVarData(item, context, getter)];
201
242
  case 1:
202
243
  _a.sent();
203
- state = self.globalVarStates.get(item.key);
244
+ state = self.globalVarTempStates.get(item.key);
204
245
  updateState(item.key, {
205
246
  initialized: true,
206
247
  pristine: state.value
@@ -274,7 +315,7 @@ var RootStore = ServiceStore.named('RootStore')
274
315
  if (!variables.some(function (item) { return item.key === key; })) {
275
316
  return "continue";
276
317
  }
277
- var state = self.globalVarStates.get(key);
318
+ var state = self.globalVarTempStates.get(key);
278
319
  if (state) {
279
320
  updateState(key, {
280
321
  value: data[key],
@@ -317,7 +358,7 @@ var RootStore = ServiceStore.named('RootStore')
317
358
  bulkGetters = [];
318
359
  itemsNotInitialized = [];
319
360
  _loop_3 = function (item) {
320
- var state = self.globalVarStates.get(item.key);
361
+ var state = self.globalVarTempStates.get(item.key);
321
362
  if (state === null || state === void 0 ? void 0 : state.initialized) {
322
363
  return "continue";
323
364
  }
@@ -381,8 +422,9 @@ var RootStore = ServiceStore.named('RootStore')
381
422
  // 初始化全局变量
382
423
  _b.globalVars = _c.sent();
383
424
  removeVars.forEach(function (item) {
384
- self.globalVarStates.delete(item.key);
425
+ self.globalVarTempStates.delete(item.key);
385
426
  });
427
+ syncGlobalVarStates();
386
428
  return [2 /*return*/];
387
429
  }
388
430
  });
@@ -393,7 +435,7 @@ var RootStore = ServiceStore.named('RootStore')
393
435
  };
394
436
  // 如果对应变量是个对象,那么可以通过这个扩充变量的值
395
437
  var modifyGlobalVarValue = function (key, options) {
396
- var state = self.globalVarStates.get(key);
438
+ var state = self.globalVarTempStates.get(key);
397
439
  if (!state) {
398
440
  return;
399
441
  }
@@ -488,7 +530,7 @@ var RootStore = ServiceStore.named('RootStore')
488
530
  bulkSetters = [];
489
531
  values = {};
490
532
  _loop_4 = function (varItem) {
491
- var state = self.globalVarStates.get(varItem.key);
533
+ var state = self.globalVarTempStates.get(varItem.key);
492
534
  if (!(state === null || state === void 0 ? void 0 : state.touched)) {
493
535
  return "continue";
494
536
  }
@@ -554,16 +596,96 @@ var RootStore = ServiceStore.named('RootStore')
554
596
  trailing: true,
555
597
  leading: false
556
598
  });
599
+ function syncGlobalVarStates() {
600
+ self.globalVarStates.clear();
601
+ self.globalVarTempStates.forEach(function (state, key) {
602
+ self.globalVarStates.set(key, __assign({}, state));
603
+ });
604
+ }
605
+ function syncLegacyGlobalVarStates() {
606
+ if (self.legacyGlobalTempContext.__page !== self.context.__page ||
607
+ self.legacyGlobalTempContext.appVariables !== self.context.appVariables) {
608
+ Object.assign(self.context, self.legacyGlobalTempContext);
609
+ self.data = cloneObject(self.data);
610
+ }
611
+ }
612
+ var pendingCount = 0;
613
+ var callbacks = [];
614
+ function addSyncGlobalVarStatePendingTask(fn, callback) {
615
+ pendingCount++;
616
+ callback && callbacks.push(callback);
617
+ fn(function () {
618
+ pendingCount--;
619
+ if (pendingCount === 0) {
620
+ callbacks.forEach(function (callback) { return callback(); });
621
+ callbacks = [];
622
+ if (isAlive(self)) {
623
+ self.syncGlobalVarStates();
624
+ self.syncLegacyGlobalVarStates();
625
+ }
626
+ }
627
+ });
628
+ }
629
+ function observeSet(obj, callback) {
630
+ if (!obj || obj.__observed) {
631
+ // 如果已经被观察过了,就不需要再观察了
632
+ return obj;
633
+ }
634
+ var timer = 0;
635
+ return new Proxy(__assign({}, obj), {
636
+ get: function (target, prop) {
637
+ if (prop === '__observed') {
638
+ return true;
639
+ }
640
+ return Reflect.get(target, prop);
641
+ },
642
+ set: function (target, prop, value) {
643
+ Reflect.set(target, prop, value);
644
+ cancelAnimationFrame(timer);
645
+ timer = requestAnimationFrame(function () { return callback(target); });
646
+ console.warn("Don't modify the context directly.");
647
+ return true;
648
+ }
649
+ });
650
+ }
557
651
  return {
558
- updateContext: function (context) {
652
+ updateContextBySetter: function (context) {
653
+ this.updateContext(context);
654
+ self.data = cloneObject(self.data);
655
+ },
656
+ updateContext: function (context, isInit) {
559
657
  // 因为 context 不是受控属性,直接共用引用好了
560
658
  // 否则还会触发孩子节点的重新渲染
561
- Object.assign(self.context, context);
659
+ if (isInit === void 0) { isInit = false; }
660
+ var _a = context || {}, __page = _a.__page, appVariables = _a.appVariables, rest = __rest(_a, ["__page", "appVariables"]);
661
+ // 对历史用法做兼容
662
+ if (__page || appVariables) {
663
+ // 有部分用户直接在自定义动作脚本里面修改 __page 或者 appVariables 变量
664
+ // 奇怪的是之前的实现方式这种修改是会更新变更的
665
+ // 所以这里用 Proxy 来解决不更新的问题
666
+ __page = __page
667
+ ? observeSet(__page, function (__page) {
668
+ return self.updateContextBySetter(__assign(__assign({}, self.context), { __page: __page }));
669
+ })
670
+ : __page;
671
+ appVariables = appVariables
672
+ ? observeSet(appVariables, function (appVariables) {
673
+ return self.updateContextBySetter(__assign(__assign({}, self.context), { appVariables: appVariables }));
674
+ })
675
+ : appVariables;
676
+ if (isInit) {
677
+ self.context.__page = __page;
678
+ self.context.appVariables = appVariables;
679
+ }
680
+ self.legacyGlobalTempContext.__page = __page;
681
+ self.legacyGlobalTempContext.appVariables = appVariables;
682
+ }
683
+ Object.assign(self.context, rest);
562
684
  },
563
685
  updateGlobalVarState: function (key, state) {
564
- var origin = self.globalVarStates.get(key);
686
+ var origin = self.globalVarTempStates.get(key);
565
687
  var newState = __assign(__assign({}, (origin || createGlobalVarState())), state);
566
- self.globalVarStates.set(key, newState);
688
+ self.globalVarTempStates.set(key, newState);
567
689
  },
568
690
  setGlobalVars: setGlobalVars,
569
691
  updateGlobalVarValue: updateGlobalVarValue,
@@ -580,6 +702,16 @@ var RootStore = ServiceStore.named('RootStore')
580
702
  }
581
703
  },
582
704
  init: init,
705
+ syncGlobalVarStates: syncGlobalVarStates,
706
+ syncLegacyGlobalVarStates: syncLegacyGlobalVarStates,
707
+ addSyncGlobalVarStatePendingTask: addSyncGlobalVarStatePendingTask,
708
+ afterCreate: function () {
709
+ addDisposer(self, reaction(function () { return self.nextGlobalData; }, function () {
710
+ return self.addSyncGlobalVarStatePendingTask(function (callback) {
711
+ return requestAnimationFrame(callback);
712
+ });
713
+ }));
714
+ },
583
715
  afterDestroy: function () {
584
716
  lazySaveGlobalVarValues.flush();
585
717
  }
@@ -16,8 +16,10 @@ export declare const ServiceStore: import("mobx-state-tree").IModelType<{
16
16
  pristineRaw: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
17
17
  upStreamData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
18
18
  action: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
19
+ dialogSchema: import("mobx-state-tree").IType<any, any, any>;
19
20
  dialogOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
20
21
  dialogData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
22
+ drawerSchema: import("mobx-state-tree").IType<any, any, any>;
21
23
  drawerOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
22
24
  drawerData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
23
25
  } & {
@@ -48,6 +50,8 @@ export declare const ServiceStore: import("mobx-state-tree").IModelType<{
48
50
  } & {
49
51
  setTopStore(value: any): void;
50
52
  initData(data?: object, skipSetPristine?: boolean, changeReason?: import("../types").DataChangeReason | undefined): void;
53
+ temporaryUpdateGlobalVars(globalVar: any): void;
54
+ unDoTemporaryUpdateGlobalVars(): void;
51
55
  reset(): void;
52
56
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined, changeReason?: import("../types").DataChangeReason | undefined): void;
53
57
  changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined, changeReason?: import("../types").DataChangeReason | undefined): void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.1
2
+ * amis-core v6.13.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.1
2
+ * amis-core v6.13.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5