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
package/lib/store/root.js CHANGED
@@ -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
 
@@ -53,7 +53,7 @@ require('uncontrollable');
53
53
  require('hoist-non-react-statics');
54
54
  require('../utils/validations.js');
55
55
  require('../utils/resolveCondition.js');
56
- require('mobx');
56
+ var mobx = require('mobx');
57
57
  require('../utils/Animation.js');
58
58
  var globalVar = require('../globalVar.js');
59
59
 
@@ -68,11 +68,17 @@ var RootStore = service.ServiceStore.named('RootStore')
68
68
  runtimeErrorStack: mobxStateTree.types.frozen(),
69
69
  query: mobxStateTree.types.frozen(),
70
70
  ready: false,
71
+ // 临时变更,等 react 完成一轮渲染后,将临时变更切成正式变更
72
+ // 主要是为了让可能需要重新渲染的部分组件可以实现 this.props.data 和 prevProps.data 不一致
73
+ // 因为很多组件内部会 diff this.props.data 和 prevProps.data 来决定是否更新的逻辑
74
+ globalVarTempStates: mobxStateTree.types.optional(mobxStateTree.types.map(mobxStateTree.types.frozen()), {}),
75
+ // 正式变更
71
76
  globalVarStates: mobxStateTree.types.optional(mobxStateTree.types.map(mobxStateTree.types.frozen()), {})
72
77
  })
73
78
  .volatile(function (self) {
74
79
  return {
75
80
  context: {},
81
+ legacyGlobalTempContext: {},
76
82
  globalVars: [],
77
83
  globalData: {
78
84
  global: {},
@@ -81,45 +87,80 @@ var RootStore = service.ServiceStore.named('RootStore')
81
87
  };
82
88
  })
83
89
  .views(function (self) { return ({
90
+ get nextGlobalData() {
91
+ var globalData = {};
92
+ var globalState = {};
93
+ var chain = object.extractObjectChain(self.data);
94
+ var touched = false;
95
+ var saved = true;
96
+ var errors = {};
97
+ var initialized = true;
98
+ self.globalVarTempStates.forEach(function (state, key) {
99
+ globalData[key] = state.value;
100
+ touched = touched || state.touched;
101
+ if (!state.saved) {
102
+ saved = false;
103
+ }
104
+ if (state.errorMessages.length) {
105
+ errors[key] = state.errorMessages;
106
+ }
107
+ if (!state.initialized) {
108
+ initialized = false;
109
+ }
110
+ });
111
+ globalState = {
112
+ fields: self.globalVarTempStates.toJSON(),
113
+ initialized: initialized,
114
+ touched: touched,
115
+ saved: saved,
116
+ errors: errors,
117
+ valid: !Object.keys(errors).length
118
+ };
119
+ chain.unshift({
120
+ global: globalData,
121
+ globalState: globalState
122
+ });
123
+ chain.unshift(self.legacyGlobalTempContext);
124
+ chain.unshift(self.context);
125
+ return object.createObjectFromChain(chain);
126
+ },
84
127
  get downStream() {
85
128
  var result = self.data;
86
- if (self.context || self.query || self.globalVarStates.size) {
129
+ if (self.context || self.query) {
87
130
  var chain = object.extractObjectChain(result);
88
131
  // 数据链中添加 global 和 globalState
89
132
  // 对应的是全局变量的值和全局变量的状态
90
- if (self.globalVarStates.size) {
91
- var globalData_1 = {};
92
- var touched_1 = false;
93
- var saved_1 = true;
94
- var errors_1 = {};
95
- var initialized_1 = true;
96
- self.globalVarStates.forEach(function (state, key) {
97
- globalData_1[key] = state.value;
98
- touched_1 = touched_1 || state.touched;
99
- if (!state.saved) {
100
- saved_1 = false;
101
- }
102
- if (state.errorMessages.length) {
103
- errors_1[key] = state.errorMessages;
104
- }
105
- if (!state.initialized) {
106
- initialized_1 = false;
107
- }
108
- });
109
- // 保存全局变量的值和状态
110
- Object.assign(self.globalData.global, globalData_1);
111
- Object.assign(self.globalData.globalState, {
112
- fields: self.globalVarStates.toJSON(),
113
- initialized: initialized_1,
114
- touched: touched_1,
115
- saved: saved_1,
116
- errors: errors_1,
117
- valid: !Object.keys(errors_1).length
118
- });
119
- // self.globalData 一直都是那个对象,这样组件里面始终拿到的都是最新的
120
- chain.unshift(self.globalData);
121
- }
122
- self.context && chain.unshift(self.context);
133
+ var globalData_1 = {};
134
+ var touched_1 = false;
135
+ var saved_1 = true;
136
+ var errors_1 = {};
137
+ var initialized_1 = true;
138
+ self.globalVarStates.forEach(function (state, key) {
139
+ globalData_1[key] = state.value;
140
+ touched_1 = touched_1 || state.touched;
141
+ if (!state.saved) {
142
+ saved_1 = false;
143
+ }
144
+ if (state.errorMessages.length) {
145
+ errors_1[key] = state.errorMessages;
146
+ }
147
+ if (!state.initialized) {
148
+ initialized_1 = false;
149
+ }
150
+ });
151
+ // 保存全局变量的值和状态
152
+ Object.assign(self.globalData.global, globalData_1);
153
+ Object.assign(self.globalData.globalState, {
154
+ fields: self.globalVarStates.toJSON(),
155
+ initialized: initialized_1,
156
+ touched: touched_1,
157
+ saved: saved_1,
158
+ errors: errors_1,
159
+ valid: !Object.keys(errors_1).length
160
+ });
161
+ // self.globalData 一直都是那个对象,这样组件里面始终拿到的都是最新的
162
+ chain.unshift(self.globalData);
163
+ chain.unshift(self.context);
123
164
  self.query &&
124
165
  chain.splice(chain.length - 1, 0, tslib.__assign(tslib.__assign({}, self.query), { __query: self.query }));
125
166
  result = object.createObjectFromChain(chain);
@@ -212,7 +253,7 @@ var RootStore = service.ServiceStore.named('RootStore')
212
253
  return [4 /*yield*/, getGlobalVarData(item, context, getter)];
213
254
  case 1:
214
255
  _a.sent();
215
- state = self.globalVarStates.get(item.key);
256
+ state = self.globalVarTempStates.get(item.key);
216
257
  updateState(item.key, {
217
258
  initialized: true,
218
259
  pristine: state.value
@@ -286,7 +327,7 @@ var RootStore = service.ServiceStore.named('RootStore')
286
327
  if (!variables.some(function (item) { return item.key === key; })) {
287
328
  return "continue";
288
329
  }
289
- var state = self.globalVarStates.get(key);
330
+ var state = self.globalVarTempStates.get(key);
290
331
  if (state) {
291
332
  updateState(key, {
292
333
  value: data[key],
@@ -329,7 +370,7 @@ var RootStore = service.ServiceStore.named('RootStore')
329
370
  bulkGetters = [];
330
371
  itemsNotInitialized = [];
331
372
  _loop_3 = function (item) {
332
- var state = self.globalVarStates.get(item.key);
373
+ var state = self.globalVarTempStates.get(item.key);
333
374
  if (state === null || state === void 0 ? void 0 : state.initialized) {
334
375
  return "continue";
335
376
  }
@@ -393,8 +434,9 @@ var RootStore = service.ServiceStore.named('RootStore')
393
434
  // 初始化全局变量
394
435
  _b.globalVars = _c.sent();
395
436
  removeVars.forEach(function (item) {
396
- self.globalVarStates.delete(item.key);
437
+ self.globalVarTempStates.delete(item.key);
397
438
  });
439
+ syncGlobalVarStates();
398
440
  return [2 /*return*/];
399
441
  }
400
442
  });
@@ -405,7 +447,7 @@ var RootStore = service.ServiceStore.named('RootStore')
405
447
  };
406
448
  // 如果对应变量是个对象,那么可以通过这个扩充变量的值
407
449
  var modifyGlobalVarValue = function (key, options) {
408
- var state = self.globalVarStates.get(key);
450
+ var state = self.globalVarTempStates.get(key);
409
451
  if (!state) {
410
452
  return;
411
453
  }
@@ -500,7 +542,7 @@ var RootStore = service.ServiceStore.named('RootStore')
500
542
  bulkSetters = [];
501
543
  values = {};
502
544
  _loop_4 = function (varItem) {
503
- var state = self.globalVarStates.get(varItem.key);
545
+ var state = self.globalVarTempStates.get(varItem.key);
504
546
  if (!(state === null || state === void 0 ? void 0 : state.touched)) {
505
547
  return "continue";
506
548
  }
@@ -566,16 +608,96 @@ var RootStore = service.ServiceStore.named('RootStore')
566
608
  trailing: true,
567
609
  leading: false
568
610
  });
611
+ function syncGlobalVarStates() {
612
+ self.globalVarStates.clear();
613
+ self.globalVarTempStates.forEach(function (state, key) {
614
+ self.globalVarStates.set(key, tslib.__assign({}, state));
615
+ });
616
+ }
617
+ function syncLegacyGlobalVarStates() {
618
+ if (self.legacyGlobalTempContext.__page !== self.context.__page ||
619
+ self.legacyGlobalTempContext.appVariables !== self.context.appVariables) {
620
+ Object.assign(self.context, self.legacyGlobalTempContext);
621
+ self.data = object.cloneObject(self.data);
622
+ }
623
+ }
624
+ var pendingCount = 0;
625
+ var callbacks = [];
626
+ function addSyncGlobalVarStatePendingTask(fn, callback) {
627
+ pendingCount++;
628
+ callback && callbacks.push(callback);
629
+ fn(function () {
630
+ pendingCount--;
631
+ if (pendingCount === 0) {
632
+ callbacks.forEach(function (callback) { return callback(); });
633
+ callbacks = [];
634
+ if (mobxStateTree.isAlive(self)) {
635
+ self.syncGlobalVarStates();
636
+ self.syncLegacyGlobalVarStates();
637
+ }
638
+ }
639
+ });
640
+ }
641
+ function observeSet(obj, callback) {
642
+ if (!obj || obj.__observed) {
643
+ // 如果已经被观察过了,就不需要再观察了
644
+ return obj;
645
+ }
646
+ var timer = 0;
647
+ return new Proxy(tslib.__assign({}, obj), {
648
+ get: function (target, prop) {
649
+ if (prop === '__observed') {
650
+ return true;
651
+ }
652
+ return Reflect.get(target, prop);
653
+ },
654
+ set: function (target, prop, value) {
655
+ Reflect.set(target, prop, value);
656
+ cancelAnimationFrame(timer);
657
+ timer = requestAnimationFrame(function () { return callback(target); });
658
+ console.warn("Don't modify the context directly.");
659
+ return true;
660
+ }
661
+ });
662
+ }
569
663
  return {
570
- updateContext: function (context) {
664
+ updateContextBySetter: function (context) {
665
+ this.updateContext(context);
666
+ self.data = object.cloneObject(self.data);
667
+ },
668
+ updateContext: function (context, isInit) {
571
669
  // 因为 context 不是受控属性,直接共用引用好了
572
670
  // 否则还会触发孩子节点的重新渲染
573
- Object.assign(self.context, context);
671
+ if (isInit === void 0) { isInit = false; }
672
+ var _a = context || {}, __page = _a.__page, appVariables = _a.appVariables, rest = tslib.__rest(_a, ["__page", "appVariables"]);
673
+ // 对历史用法做兼容
674
+ if (__page || appVariables) {
675
+ // 有部分用户直接在自定义动作脚本里面修改 __page 或者 appVariables 变量
676
+ // 奇怪的是之前的实现方式这种修改是会更新变更的
677
+ // 所以这里用 Proxy 来解决不更新的问题
678
+ __page = __page
679
+ ? observeSet(__page, function (__page) {
680
+ return self.updateContextBySetter(tslib.__assign(tslib.__assign({}, self.context), { __page: __page }));
681
+ })
682
+ : __page;
683
+ appVariables = appVariables
684
+ ? observeSet(appVariables, function (appVariables) {
685
+ return self.updateContextBySetter(tslib.__assign(tslib.__assign({}, self.context), { appVariables: appVariables }));
686
+ })
687
+ : appVariables;
688
+ if (isInit) {
689
+ self.context.__page = __page;
690
+ self.context.appVariables = appVariables;
691
+ }
692
+ self.legacyGlobalTempContext.__page = __page;
693
+ self.legacyGlobalTempContext.appVariables = appVariables;
694
+ }
695
+ Object.assign(self.context, rest);
574
696
  },
575
697
  updateGlobalVarState: function (key, state) {
576
- var origin = self.globalVarStates.get(key);
698
+ var origin = self.globalVarTempStates.get(key);
577
699
  var newState = tslib.__assign(tslib.__assign({}, (origin || globalVar.createGlobalVarState())), state);
578
- self.globalVarStates.set(key, newState);
700
+ self.globalVarTempStates.set(key, newState);
579
701
  },
580
702
  setGlobalVars: setGlobalVars,
581
703
  updateGlobalVarValue: updateGlobalVarValue,
@@ -592,6 +714,16 @@ var RootStore = service.ServiceStore.named('RootStore')
592
714
  }
593
715
  },
594
716
  init: init,
717
+ syncGlobalVarStates: syncGlobalVarStates,
718
+ syncLegacyGlobalVarStates: syncLegacyGlobalVarStates,
719
+ addSyncGlobalVarStatePendingTask: addSyncGlobalVarStatePendingTask,
720
+ afterCreate: function () {
721
+ mobxStateTree.addDisposer(self, mobx.reaction(function () { return self.nextGlobalData; }, function () {
722
+ return self.addSyncGlobalVarStatePendingTask(function (callback) {
723
+ return requestAnimationFrame(callback);
724
+ });
725
+ }));
726
+ },
595
727
  afterDestroy: function () {
596
728
  lazySaveGlobalVarValues.flush();
597
729
  }
@@ -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