amis-core 6.13.0-beta.0 → 6.13.0-beta.2

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 (311) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +1 -1
  3. package/esm/SchemaRenderer.d.ts +3 -0
  4. package/esm/SchemaRenderer.js +56 -8
  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 +1 -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 +1 -1
  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 +1 -1
  53. package/esm/store/app.d.ts +2 -0
  54. package/esm/store/app.js +1 -1
  55. package/esm/store/combo.d.ts +6 -0
  56. package/esm/store/combo.js +1 -1
  57. package/esm/store/crud.d.ts +2 -0
  58. package/esm/store/crud.js +2 -2
  59. package/esm/store/form.d.ts +2 -1
  60. package/esm/store/form.js +3 -2
  61. package/esm/store/formItem.js +1 -1
  62. package/esm/store/iRenderer.d.ts +2 -0
  63. package/esm/store/iRenderer.js +19 -2
  64. package/esm/store/index.js +1 -1
  65. package/esm/store/list.d.ts +2 -0
  66. package/esm/store/list.js +1 -1
  67. package/esm/store/manager.js +1 -1
  68. package/esm/store/modal.d.ts +2 -0
  69. package/esm/store/modal.js +1 -1
  70. package/esm/store/node.js +1 -1
  71. package/esm/store/pagination.d.ts +2 -0
  72. package/esm/store/pagination.js +1 -1
  73. package/esm/store/root.d.ts +6 -0
  74. package/esm/store/root.js +86 -23
  75. package/esm/store/service.d.ts +2 -0
  76. package/esm/store/service.js +1 -1
  77. package/esm/store/status.js +1 -1
  78. package/esm/store/table.d.ts +7 -0
  79. package/esm/store/table.js +8 -3
  80. package/esm/store/table2.d.ts +3 -0
  81. package/esm/store/table2.js +14 -8
  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 +1 -1
  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 -2
  102. package/esm/utils/errors.js +1 -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 +1 -1
  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.d.ts +1 -0
  124. package/esm/utils/math.js +16 -2
  125. package/esm/utils/memoryParse.js +1 -1
  126. package/esm/utils/normalizeLink.js +1 -1
  127. package/esm/utils/normalizeOptions.js +1 -1
  128. package/esm/utils/object.js +1 -1
  129. package/esm/utils/offset.js +1 -1
  130. package/esm/utils/offsetParent.js +1 -1
  131. package/esm/utils/optionValueCompare.js +1 -1
  132. package/esm/utils/position.js +1 -1
  133. package/esm/utils/prettyBytes.js +1 -1
  134. package/esm/utils/printElement.js +1 -1
  135. package/esm/utils/renderer-event.js +1 -1
  136. package/esm/utils/replaceText.js +1 -1
  137. package/esm/utils/resize-sensor.js +14 -11
  138. package/esm/utils/resolveCondition.js +1 -1
  139. package/esm/utils/resolveVariable.js +1 -1
  140. package/esm/utils/resolveVariableAndFilter.js +1 -1
  141. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  142. package/esm/utils/scrollPosition.js +1 -1
  143. package/esm/utils/string2regExp.js +1 -1
  144. package/esm/utils/stripNumber.js +1 -1
  145. package/esm/utils/style-helper.js +1 -1
  146. package/esm/utils/style.js +1 -1
  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 +1 -1
  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.js +1 -1
  158. package/lib/SchemaRenderer.d.ts +3 -0
  159. package/lib/SchemaRenderer.js +59 -7
  160. package/lib/Scoped.js +1 -1
  161. package/lib/StatusScoped.js +1 -1
  162. package/lib/StyleManager.js +1 -1
  163. package/lib/WithRootStore.js +1 -1
  164. package/lib/WithStore.js +8 -4
  165. package/lib/actions/Action.js +1 -1
  166. package/lib/actions/AjaxAction.js +1 -1
  167. package/lib/actions/BreakAction.js +1 -1
  168. package/lib/actions/BroadcastAction.js +1 -1
  169. package/lib/actions/CmptAction.js +1 -1
  170. package/lib/actions/ContinueAction.js +1 -1
  171. package/lib/actions/CopyAction.js +1 -1
  172. package/lib/actions/CustomAction.js +1 -1
  173. package/lib/actions/DialogAction.js +1 -1
  174. package/lib/actions/DrawerAction.js +1 -1
  175. package/lib/actions/EmailAction.js +1 -1
  176. package/lib/actions/EventAction.js +1 -1
  177. package/lib/actions/LinkAction.js +1 -1
  178. package/lib/actions/LoopAction.js +1 -1
  179. package/lib/actions/PageAction.js +1 -1
  180. package/lib/actions/ParallelAction.js +1 -1
  181. package/lib/actions/PrintAction.js +1 -1
  182. package/lib/actions/StatusAction.js +1 -1
  183. package/lib/actions/SwitchAction.js +1 -1
  184. package/lib/actions/ToastAction.js +1 -1
  185. package/lib/actions/WaitAction.js +1 -1
  186. package/lib/components/Animations.js +1 -1
  187. package/lib/components/CustomStyle.js +1 -1
  188. package/lib/components/ErrorBoundary.js +1 -1
  189. package/lib/components/LazyComponent.js +1 -1
  190. package/lib/components/Overlay.js +1 -1
  191. package/lib/components/PopOver.js +1 -1
  192. package/lib/env.js +1 -1
  193. package/lib/envOverwrite.js +1 -1
  194. package/lib/factory.js +1 -1
  195. package/lib/globalVar.js +19 -2
  196. package/lib/globalVarClientHandler.js +1 -1
  197. package/lib/globalVarDefaultValueHandler.js +1 -1
  198. package/lib/index.js +5 -4
  199. package/lib/locale.js +1 -1
  200. package/lib/polyfills.js +1 -1
  201. package/lib/renderers/Form.js +1 -1
  202. package/lib/renderers/Item.js +2 -17
  203. package/lib/renderers/Options.js +1 -1
  204. package/lib/renderers/Placeholder.js +1 -1
  205. package/lib/renderers/builtin.js +1 -1
  206. package/lib/renderers/register.js +1 -1
  207. package/lib/renderers/wrapControl.js +1 -1
  208. package/lib/store/app.d.ts +2 -0
  209. package/lib/store/app.js +1 -1
  210. package/lib/store/combo.d.ts +7 -0
  211. package/lib/store/combo.js +1 -1
  212. package/lib/store/crud.d.ts +2 -0
  213. package/lib/store/crud.js +2 -2
  214. package/lib/store/form.d.ts +3 -1
  215. package/lib/store/form.js +3 -2
  216. package/lib/store/formItem.js +1 -1
  217. package/lib/store/iRenderer.d.ts +2 -0
  218. package/lib/store/iRenderer.js +22 -1
  219. package/lib/store/index.js +1 -1
  220. package/lib/store/list.d.ts +2 -0
  221. package/lib/store/list.js +1 -1
  222. package/lib/store/manager.js +1 -1
  223. package/lib/store/modal.d.ts +2 -0
  224. package/lib/store/modal.js +1 -1
  225. package/lib/store/node.js +1 -1
  226. package/lib/store/pagination.d.ts +2 -0
  227. package/lib/store/pagination.js +1 -1
  228. package/lib/store/root.d.ts +7 -0
  229. package/lib/store/root.js +85 -22
  230. package/lib/store/service.d.ts +2 -0
  231. package/lib/store/service.js +1 -1
  232. package/lib/store/status.js +1 -1
  233. package/lib/store/table.d.ts +8 -0
  234. package/lib/store/table.js +7 -2
  235. package/lib/store/table2.d.ts +3 -0
  236. package/lib/store/table2.js +14 -8
  237. package/lib/theme.js +1 -1
  238. package/lib/utils/Animation.js +1 -1
  239. package/lib/utils/ColorScale.js +1 -1
  240. package/lib/utils/DataSchema.js +1 -1
  241. package/lib/utils/DataScope.js +1 -1
  242. package/lib/utils/RootClose.js +1 -1
  243. package/lib/utils/SimpleMap.js +1 -1
  244. package/lib/utils/animations.js +1 -1
  245. package/lib/utils/api.js +1 -1
  246. package/lib/utils/arraySlice.js +1 -1
  247. package/lib/utils/attachmentAdpator.js +1 -1
  248. package/lib/utils/autobind.js +1 -1
  249. package/lib/utils/browser.js +1 -1
  250. package/lib/utils/columnsSplit.js +1 -1
  251. package/lib/utils/concatData.js +1 -1
  252. package/lib/utils/dataMapping.js +1 -1
  253. package/lib/utils/date.js +1 -1
  254. package/lib/utils/debug.js +1 -1
  255. package/lib/utils/decodeEntity.js +1 -1
  256. package/lib/utils/dom.js +6 -2
  257. package/lib/utils/errors.js +1 -1
  258. package/lib/utils/escapeHtml.js +1 -1
  259. package/lib/utils/filter-schema.js +1 -1
  260. package/lib/utils/filter.js +1 -1
  261. package/lib/utils/formatDuration.js +1 -1
  262. package/lib/utils/formula.js +1 -1
  263. package/lib/utils/getPageId.js +1 -1
  264. package/lib/utils/getVariable.js +1 -1
  265. package/lib/utils/grammar.js +1 -1
  266. package/lib/utils/handleAction.js +1 -1
  267. package/lib/utils/helper.js +1 -1
  268. package/lib/utils/highlight.js +1 -1
  269. package/lib/utils/icon.js +1 -1
  270. package/lib/utils/image.js +1 -1
  271. package/lib/utils/index.js +1 -1
  272. package/lib/utils/isPureVariable.js +1 -1
  273. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  274. package/lib/utils/keyToPath.js +1 -1
  275. package/lib/utils/labelToString.js +1 -1
  276. package/lib/utils/loopTooMuch.js +1 -1
  277. package/lib/utils/makeSorter.js +1 -1
  278. package/lib/utils/math.d.ts +1 -0
  279. package/lib/utils/math.js +16 -1
  280. package/lib/utils/memoryParse.js +1 -1
  281. package/lib/utils/normalizeLink.js +1 -1
  282. package/lib/utils/normalizeOptions.js +1 -1
  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 +14 -11
  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.js +1 -1
  302. package/lib/utils/toNumber.js +1 -1
  303. package/lib/utils/tokenize.js +1 -1
  304. package/lib/utils/tpl-builtin.js +1 -1
  305. package/lib/utils/tpl-lodash.js +1 -1
  306. package/lib/utils/tpl.js +1 -1
  307. package/lib/utils/uncontrollable.js +1 -1
  308. package/lib/utils/validateId.js +1 -1
  309. package/lib/utils/validations.js +1 -1
  310. package/lib/utils/visitedCache.js +1 -1
  311. package/package.json +2 -2
package/esm/Root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -4,6 +4,7 @@ import { IScopedContext } from './Scoped';
4
4
  import { Schema, SchemaNode } from './types';
5
5
  import { RendererEvent } from './utils/renderer-event';
6
6
  import { StatusScopedProps } from './StatusScoped';
7
+ import { IIRendererStore } from './store/index';
7
8
  interface SchemaRendererProps extends Partial<Omit<RendererProps, 'statusStore'>>, StatusScopedProps {
8
9
  schema: Schema;
9
10
  $path: string;
@@ -24,9 +25,11 @@ export declare class SchemaRenderer extends React.Component<SchemaRendererProps,
24
25
  unbindEvent: (() => void) | undefined;
25
26
  unbindGlobalEvent: (() => void) | undefined;
26
27
  isStatic: any;
28
+ subStore?: IIRendererStore | null;
27
29
  constructor(props: SchemaRendererProps);
28
30
  componentWillUnmount(): void;
29
31
  shouldComponentUpdate(nextProps: SchemaRendererProps): boolean;
32
+ storeRef(store: IIRendererStore | null): void;
30
33
  handleGlobalVarChange(): void;
31
34
  resolveRenderer(props: SchemaRendererProps, force?: boolean): any;
32
35
  getWrappedInstance(): any;
@@ -1,10 +1,11 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
6
6
  import { __extends, __assign, __rest, __awaiter, __generator, __values, __decorate, __metadata } from 'tslib';
7
7
  import difference from 'lodash/difference';
8
+ import findLastIndex from 'lodash/findLastIndex';
8
9
  import omit from 'lodash/omit';
9
10
  import React from 'react';
10
11
  import { isValidElementType } from 'react-is';
@@ -21,7 +22,7 @@ import { isAlive } from 'mobx-state-tree';
21
22
  import { reaction } from 'mobx';
22
23
  import 'amis-formula';
23
24
  import 'moment';
24
- import { cloneObject } from './utils/object.js';
25
+ import { extractObjectChain, createObjectFromChain } from './utils/object.js';
25
26
  import './utils/memoryParse.js';
26
27
  import '@rc-component/mini-decimal';
27
28
  import { resolveVariableAndFilter } from './utils/resolveVariableAndFilter.js';
@@ -32,6 +33,29 @@ import { isExpression } from './utils/formula.js';
32
33
  import { filter, evalExpression } from './utils/tpl.js';
33
34
  import Animations from './components/Animations.js';
34
35
  import { observeGlobalVars } from './globalVar.js';
36
+ import './utils/api.js';
37
+ import 'file-saver';
38
+ import './utils/browser.js';
39
+ import './utils/ColorScale.js';
40
+ import 'lodash/chunk';
41
+ import './utils/DataSchema.js';
42
+ import './utils/DataScope.js';
43
+ import 'react-dom';
44
+ import './utils/errors.js';
45
+ import 'lodash/isObject';
46
+ import './utils/image.js';
47
+ import 'lodash/isEqual';
48
+ import './utils/resize-sensor.js';
49
+ import 'react-overlays/useRootClose';
50
+ import 'uncontrollable';
51
+ import 'hoist-non-react-statics';
52
+ import './utils/validations.js';
53
+ import 'lodash/cloneDeep';
54
+ import 'lodash/map';
55
+ import 'lodash/isEmpty';
56
+ import 'lodash/kebabCase';
57
+ import './utils/resolveCondition.js';
58
+ import './utils/Animation.js';
35
59
 
36
60
  var RENDERER_TRANSMISSION_OMIT_PROPS = [
37
61
  'type',
@@ -85,6 +109,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
85
109
  _this.reRender = _this.reRender.bind(_this);
86
110
  _this.resolveRenderer(_this.props);
87
111
  _this.dispatchEvent = _this.dispatchEvent.bind(_this);
112
+ _this.storeRef = _this.storeRef.bind(_this);
88
113
  _this.handleGlobalVarChange = _this.handleGlobalVarChange.bind(_this);
89
114
  var schema = props.schema;
90
115
  // 监听statusStore更新
@@ -125,18 +150,41 @@ var SchemaRenderer = /** @class */ (function (_super) {
125
150
  }
126
151
  return false;
127
152
  };
153
+ SchemaRenderer.prototype.storeRef = function (store) {
154
+ this.subStore = store;
155
+ };
128
156
  SchemaRenderer.prototype.handleGlobalVarChange = function () {
129
157
  var _this = this;
130
- var _a;
158
+ var _a, _b;
131
159
  var handler = (_a = this.renderer) === null || _a === void 0 ? void 0 : _a.onGlobalVarChanged;
132
- var newData = cloneObject(this.props.data);
160
+ var topStore = this.props.topStore;
161
+ var chain = extractObjectChain(this.props.data).filter(function (item) { return !item.hasOwnProperty('__isTempGlobalLayer'); });
162
+ var globalLayerIdx = findLastIndex(chain, function (item) {
163
+ return item.hasOwnProperty('global') || item.hasOwnProperty('globalState');
164
+ });
165
+ var globalData = __assign(__assign({}, topStore.nextGlobalData), {
166
+ // 兼容旧的全局变量
167
+ __page: topStore.nextGlobalData.__page, appVariables: topStore.nextGlobalData.appVariables, __isTempGlobalLayer: true });
168
+ if (globalLayerIdx !== -1) {
169
+ chain.splice(globalLayerIdx + 1, 0, globalData);
170
+ }
171
+ var newData = createObjectFromChain(chain);
133
172
  // 如果渲染器自己做了实现,且返回 false,则不再继续往下执行
134
173
  if ((handler === null || handler === void 0 ? void 0 : handler(this.cRef, this.props.schema, newData)) === false) {
135
174
  return;
136
175
  }
176
+ // 强制刷新并通过一个临时对象让下发给组件的全局变量更新
177
+ // 等 react 完成一轮渲染后,将临时渲染切成正式渲染
178
+ // 也就是说删掉临时对象,后续渲染读取真正变更后的全局变量
179
+ //
180
+ // 为什么这么做?因为很多组件内部都会 diff this.props.data 和 prevProps.data
181
+ // 如果对应的数据没有发生变化,则会跳过组件状态的更新
137
182
  this.tmpData = newData;
138
- this.forceUpdate(function () {
183
+ (_b = this.subStore) === null || _b === void 0 ? void 0 : _b.temporaryUpdateGlobalVars(globalData);
184
+ topStore.addSyncGlobalVarStatePendingTask(function (callback) { return _this.forceUpdate(callback); }, function () {
185
+ var _a;
139
186
  delete _this.tmpData;
187
+ (_a = _this.subStore) === null || _a === void 0 ? void 0 : _a.unDoTemporaryUpdateGlobalVars();
140
188
  });
141
189
  };
142
190
  SchemaRenderer.prototype.resolveRenderer = function (props, force) {
@@ -254,6 +302,8 @@ var SchemaRenderer = /** @class */ (function (_super) {
254
302
  if (Array.isArray(schema)) {
255
303
  return render($path, schema, rest);
256
304
  }
305
+ // 用于全局变量刷新
306
+ rest.data = this.tmpData || rest.data;
257
307
  var detectData = schema &&
258
308
  (schema.detectField === '&' ? rest : rest[schema.detectField || 'data']);
259
309
  var exprProps = detectData
@@ -370,8 +420,6 @@ var SchemaRenderer = /** @class */ (function (_super) {
370
420
  var props = __assign(__assign(__assign(__assign(__assign(__assign({}, (_f = renderer.defaultProps) === null || _f === void 0 ? void 0 : _f.call(renderer, schema.type, schema)), theme.getRendererConfig(renderer.name)), restSchema), chainEvents(rest, restSchema)), exprProps), {
371
421
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
372
422
  defaultData: (_g = restSchema.defaultData) !== null && _g !== void 0 ? _g : defaultData, defaultValue: (_h = restSchema.defaultValue) !== null && _h !== void 0 ? _h : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: schema, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent, mobileUI: schema.useMobileUI === false ? false : rest.mobileUI });
373
- // 用于全局变量刷新
374
- props.data = this.tmpData || props.data;
375
423
  // style 支持公式
376
424
  if (schema.style) {
377
425
  props.style = buildStyle(schema.style, detectData);
@@ -409,7 +457,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
409
457
  finally { if (e_1) throw e_1.error; }
410
458
  }
411
459
  }
412
- var component = supportRef ? (React.createElement(Component, __assign({}, props, { ref: this.childRef }))) : (React.createElement(Component, __assign({}, props, { forwardedRef: this.childRef })));
460
+ var component = supportRef ? (React.createElement(Component, __assign({}, props, { ref: this.childRef, storeRef: this.storeRef }))) : (React.createElement(Component, __assign({}, props, { forwardedRef: this.childRef, storeRef: this.storeRef })));
413
461
  if (schema.animations) {
414
462
  component = (React.createElement(Animations, { schema: schema, component: component, show: animationShow }));
415
463
  }
package/esm/Scoped.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/WithStore.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -37,7 +37,9 @@ function HocStoreFactory(renderer) {
37
37
  var StoreFactory = /** @class */ (function (_super) {
38
38
  __extends(StoreFactory, _super);
39
39
  function StoreFactory(props, context) {
40
- var _this = _super.call(this, props) || this;
40
+ var _this = this;
41
+ var _a;
42
+ _this = _super.call(this, props) || this;
41
43
  var rootStore = context;
42
44
  _this.renderChild = _this.renderChild.bind(_this);
43
45
  _this.refFn = _this.refFn.bind(_this);
@@ -48,6 +50,7 @@ function HocStoreFactory(renderer) {
48
50
  parentId: _this.props.store ? _this.props.store.id : ''
49
51
  });
50
52
  store.setTopStore(props.topStore);
53
+ (_a = props.storeRef) === null || _a === void 0 ? void 0 : _a.call(props, store);
51
54
  _this.store = store;
52
55
  var extendsData = typeof renderer.extendsData === 'function'
53
56
  ? renderer.extendsData(props)
@@ -182,7 +185,7 @@ function HocStoreFactory(renderer) {
182
185
  }
183
186
  };
184
187
  StoreFactory.prototype.componentWillUnmount = function () {
185
- var _a;
188
+ var _a, _b, _c;
186
189
  var rootStore = this.context;
187
190
  var store = this.store;
188
191
  (_a = this.unReaction) === null || _a === void 0 ? void 0 : _a.call(this);
@@ -192,6 +195,7 @@ function HocStoreFactory(renderer) {
192
195
  }
193
196
  // @ts-ignore
194
197
  delete this.store;
198
+ (_c = (_b = this.props).storeRef) === null || _c === void 0 ? void 0 : _c.call(_b, null);
195
199
  };
196
200
  StoreFactory.prototype.renderChild = function (region, node, subProps) {
197
201
  if (subProps === void 0) { subProps = {}; }
@@ -200,7 +204,7 @@ function HocStoreFactory(renderer) {
200
204
  };
201
205
  StoreFactory.prototype.render = function () {
202
206
  var _a;
203
- var _b = this.props; _b.detectField; var rest = __rest(_b, ["detectField"]);
207
+ var _b = this.props; _b.detectField; _b.storeRef; var rest = __rest(_b, ["detectField", "storeRef"]);
204
208
  if (this.state.hidden || this.state.visible === false) {
205
209
  return null;
206
210
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/factory.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/globalVar.js CHANGED
@@ -1,11 +1,12 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
6
6
  import { isExpression } from './utils/formula.js';
7
7
  import { reaction } from 'mobx';
8
8
  import { resolveVariableAndFilter } from './utils/resolveVariableAndFilter.js';
9
+ import isPlainObject from 'lodash/isPlainObject';
9
10
 
10
11
  /**
11
12
  * 全局变量
@@ -77,6 +78,18 @@ function observeGlobalVars(schema, topStore, callback) {
77
78
  value: value
78
79
  });
79
80
  }
81
+ else if (isPlainObject(value) && !value.type) {
82
+ // 最多支持两层,多了可能就会有性能问题了
83
+ // 再多一层主要是为了支持某些 api 配置的是对象形式
84
+ Object.keys(value).forEach(function (k) {
85
+ if (isGlobalVarExpression(value[k])) {
86
+ expressions.push({
87
+ key: "".concat(key, ".").concat(k),
88
+ value: value[k]
89
+ });
90
+ }
91
+ });
92
+ }
80
93
  else if ([
81
94
  'items',
82
95
  'body',
@@ -111,7 +124,7 @@ function observeGlobalVars(schema, topStore, callback) {
111
124
  var unReaction = reaction(function () {
112
125
  return expressions
113
126
  .map(function (exp) {
114
- return "".concat(exp.key, ":").concat(resolveVariableAndFilter(exp.value, topStore.downStream, '| json' // 如果用了复杂对象,要靠这个来比较
127
+ return "".concat(exp.key, ":").concat(resolveVariableAndFilter(exp.value, topStore.nextGlobalData, '| json' // 如果用了复杂对象,要靠这个来比较
115
128
  ));
116
129
  })
117
130
  .join(',');
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -76,7 +76,7 @@ export { decodeEntity } from './utils/decodeEntity.js';
76
76
  export { addStyle, findOrCreateStyle, formatInputThemeCss, formatStyle, getValueByPath, inheritValueMap, insertCustomStyle, insertEditCustomStyle, insertStyle, removeCustomStyle, setThemeClassName, valueMap as styleMap, valueMap } from './utils/style-helper.js';
77
77
  export { getConditionComputers, registerConditionComputer, resolveCondition, resolveConditionAsync, setConditionComputeErrorHandler } from './utils/resolveCondition.js';
78
78
  export { arraySlice } from './utils/arraySlice.js';
79
- export { isIntegerInRange, numberFormatter, safeAdd, safeSub } from './utils/math.js';
79
+ export { isIntegerInRange, numberFormatter, numberReverter, safeAdd, safeSub } from './utils/math.js';
80
80
  export { default as animation } from './utils/Animation.js';
81
81
  export { createAnimationStyle } from './utils/animations.js';
82
82
  import { RendererStore } from './store/index.js';
@@ -154,10 +154,10 @@ export { StoreNode } from './store/node.js';
154
154
  */
155
155
  var classPrefix = getClassPrefix();
156
156
  // @ts-ignore
157
- var version = '6.13.0-beta.0';
157
+ var version = '6.13.0-beta.2';
158
158
  window.amisVersionInfo = {
159
- version: '6.13.0-beta.0',
160
- buildTime: '2025-04-08T09:27:26.063Z'
159
+ version: '6.13.0-beta.2',
160
+ buildTime: '2025-04-16T08:52:44.012Z'
161
161
  };
162
162
  function render(schema, _a, options, pathPrefix) {
163
163
  if (_a === void 0) { _a = {}; }
package/esm/locale.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/polyfills.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.13.0-beta.0
2
+ * amis-core v6.13.0-beta.2
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -8,8 +8,6 @@ import React from 'react';
8
8
  import hoistNonReactStatic from 'hoist-non-react-statics';
9
9
  import { reaction } from 'mobx';
10
10
  import { isAlive } from 'mobx-state-tree';
11
- import { isGlobalVarExpression } from '../globalVar.js';
12
- import { resolveVariableAndFilter } from '../utils/resolveVariableAndFilter.js';
13
11
  import { registerRenderer, renderersMap } from '../factory.js';
14
12
  import { isEmpty, getTreeAncestors, ucFirst, getWidthRate, autobind, anyChanged } from '../utils/helper.js';
15
13
  import { observer } from 'mobx-react';
@@ -1074,20 +1072,7 @@ function asFormItem(config) {
1074
1072
  }
1075
1073
  function registerFormItem(config) {
1076
1074
  var Control = asFormItem(config)(config.component);
1077
- return registerRenderer(__assign(__assign({}, config), { weight: typeof config.weight !== 'undefined' ? config.weight : -100, component: Control, isFormItem: true, onGlobalVarChanged: function (instance, schema, data) {
1078
- var _a, _b, _c;
1079
- if (((_a = config.onGlobalVarChanged) === null || _a === void 0 ? void 0 : _a.apply(this, arguments)) === false) {
1080
- return false;
1081
- }
1082
- if (isGlobalVarExpression(schema.source)) {
1083
- (_c = (_b = instance.props).reloadOptions) === null || _c === void 0 ? void 0 : _c.call(_b);
1084
- }
1085
- // 目前表单项的全局变量更新要靠这个方式
1086
- if (isGlobalVarExpression(schema.value)) {
1087
- instance.props.onChange(resolveVariableAndFilter(schema.value, data, '| raw'));
1088
- return false;
1089
- }
1090
- } }));
1075
+ return registerRenderer(__assign(__assign({}, config), { weight: typeof config.weight !== 'undefined' ? config.weight : -100, component: Control, isFormItem: true }));
1091
1076
  }
1092
1077
  function FormItem(config) {
1093
1078
  return function (component) {