amis-core 6.11.0-beta.1 → 6.11.0-beta.3

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 (314) hide show
  1. package/esm/Root.d.ts +3 -0
  2. package/esm/Root.js +1 -1
  3. package/esm/RootRenderer.js +14 -8
  4. package/esm/SchemaRenderer.d.ts +2 -0
  5. package/esm/SchemaRenderer.js +32 -9
  6. package/esm/Scoped.js +1 -1
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/StyleManager.js +1 -1
  9. package/esm/WithRootStore.js +1 -1
  10. package/esm/WithStore.js +1 -1
  11. package/esm/actions/Action.js +1 -1
  12. package/esm/actions/AjaxAction.js +1 -1
  13. package/esm/actions/BreakAction.js +1 -1
  14. package/esm/actions/BroadcastAction.js +1 -1
  15. package/esm/actions/CmptAction.js +6 -2
  16. package/esm/actions/ContinueAction.js +1 -1
  17. package/esm/actions/CopyAction.js +1 -1
  18. package/esm/actions/CustomAction.js +1 -1
  19. package/esm/actions/DialogAction.js +1 -1
  20. package/esm/actions/DrawerAction.js +1 -1
  21. package/esm/actions/EmailAction.js +1 -1
  22. package/esm/actions/EventAction.js +1 -1
  23. package/esm/actions/LinkAction.js +1 -1
  24. package/esm/actions/LoopAction.js +1 -1
  25. package/esm/actions/PageAction.js +1 -1
  26. package/esm/actions/ParallelAction.js +1 -1
  27. package/esm/actions/PrintAction.js +1 -1
  28. package/esm/actions/StatusAction.js +1 -1
  29. package/esm/actions/SwitchAction.js +1 -1
  30. package/esm/actions/ToastAction.js +1 -1
  31. package/esm/actions/WaitAction.js +1 -1
  32. package/esm/components/Animations.js +1 -1
  33. package/esm/components/CustomStyle.js +1 -1
  34. package/esm/components/ErrorBoundary.js +1 -1
  35. package/esm/components/LazyComponent.js +1 -1
  36. package/esm/components/Overlay.js +1 -1
  37. package/esm/components/PopOver.js +1 -1
  38. package/esm/env.js +1 -1
  39. package/esm/envOverwrite.js +1 -1
  40. package/esm/factory.d.ts +1 -0
  41. package/esm/factory.js +1 -1
  42. package/esm/globalVar.d.ts +173 -0
  43. package/esm/globalVar.js +122 -0
  44. package/esm/globalVarClientHandler.d.ts +1 -0
  45. package/esm/globalVarClientHandler.js +65 -0
  46. package/esm/globalVarDefaultValueHandler.d.ts +1 -0
  47. package/esm/globalVarDefaultValueHandler.js +28 -0
  48. package/esm/index.d.ts +3 -0
  49. package/esm/index.js +8 -5
  50. package/esm/locale.js +1 -1
  51. package/esm/polyfills.js +1 -1
  52. package/esm/renderers/Form.d.ts +3 -1
  53. package/esm/renderers/Form.js +39 -24
  54. package/esm/renderers/Item.d.ts +11 -19
  55. package/esm/renderers/Item.js +17 -2
  56. package/esm/renderers/Options.js +1 -1
  57. package/esm/renderers/Placeholder.js +1 -1
  58. package/esm/renderers/builtin.js +1 -1
  59. package/esm/renderers/register.js +1 -1
  60. package/esm/renderers/wrapControl.js +1 -1
  61. package/esm/store/app.js +1 -1
  62. package/esm/store/combo.js +1 -1
  63. package/esm/store/crud.d.ts +8 -0
  64. package/esm/store/crud.js +24 -17
  65. package/esm/store/form.js +14 -5
  66. package/esm/store/formItem.js +1 -1
  67. package/esm/store/iRenderer.js +1 -1
  68. package/esm/store/index.js +1 -1
  69. package/esm/store/list.d.ts +14 -1
  70. package/esm/store/list.js +45 -17
  71. package/esm/store/manager.js +1 -1
  72. package/esm/store/modal.js +1 -1
  73. package/esm/store/node.js +1 -1
  74. package/esm/store/pagination.js +1 -1
  75. package/esm/store/root.d.ts +14 -0
  76. package/esm/store/root.js +483 -12
  77. package/esm/store/service.js +1 -1
  78. package/esm/store/status.js +1 -1
  79. package/esm/store/table.d.ts +16 -2
  80. package/esm/store/table.js +83 -26
  81. package/esm/store/table2.js +1 -1
  82. package/esm/theme.js +1 -1
  83. package/esm/types.d.ts +3 -2
  84. package/esm/utils/Animation.js +1 -1
  85. package/esm/utils/ColorScale.js +1 -1
  86. package/esm/utils/DataSchema.js +1 -1
  87. package/esm/utils/DataScope.js +1 -1
  88. package/esm/utils/RootClose.js +1 -1
  89. package/esm/utils/SimpleMap.js +1 -1
  90. package/esm/utils/animations.js +1 -1
  91. package/esm/utils/api.d.ts +1 -0
  92. package/esm/utils/api.js +18 -6
  93. package/esm/utils/arraySlice.js +1 -1
  94. package/esm/utils/attachmentAdpator.js +1 -1
  95. package/esm/utils/autobind.js +1 -1
  96. package/esm/utils/browser.js +1 -1
  97. package/esm/utils/columnsSplit.js +1 -1
  98. package/esm/utils/concatData.js +1 -1
  99. package/esm/utils/dataMapping.js +1 -1
  100. package/esm/utils/date.js +1 -1
  101. package/esm/utils/debug.js +3 -2
  102. package/esm/utils/decodeEntity.js +1 -1
  103. package/esm/utils/dom.js +1 -1
  104. package/esm/utils/errors.js +1 -1
  105. package/esm/utils/escapeHtml.js +1 -1
  106. package/esm/utils/filter-schema.js +1 -1
  107. package/esm/utils/filter.js +1 -1
  108. package/esm/utils/formatDuration.js +1 -1
  109. package/esm/utils/formula.js +1 -1
  110. package/esm/utils/getVariable.js +1 -1
  111. package/esm/utils/grammar.js +1 -1
  112. package/esm/utils/handleAction.js +1 -1
  113. package/esm/utils/helper.d.ts +5 -0
  114. package/esm/utils/helper.js +3 -2
  115. package/esm/utils/highlight.js +1 -1
  116. package/esm/utils/icon.js +1 -1
  117. package/esm/utils/image.js +1 -1
  118. package/esm/utils/isPureVariable.js +1 -1
  119. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  120. package/esm/utils/keyToPath.js +1 -1
  121. package/esm/utils/labelToString.js +1 -1
  122. package/esm/utils/loopTooMuch.js +1 -1
  123. package/esm/utils/makeSorter.js +1 -1
  124. package/esm/utils/math.js +1 -1
  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 +1 -1
  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.d.ts +3 -0
  157. package/lib/Root.js +1 -1
  158. package/lib/RootRenderer.d.ts +1 -1
  159. package/lib/RootRenderer.js +13 -7
  160. package/lib/SchemaRenderer.d.ts +2 -0
  161. package/lib/SchemaRenderer.js +32 -9
  162. package/lib/Scoped.js +1 -1
  163. package/lib/StatusScoped.js +1 -1
  164. package/lib/StyleManager.js +1 -1
  165. package/lib/WithRootStore.js +1 -1
  166. package/lib/WithStore.js +1 -1
  167. package/lib/actions/Action.js +1 -1
  168. package/lib/actions/AjaxAction.js +1 -1
  169. package/lib/actions/BreakAction.js +1 -1
  170. package/lib/actions/BroadcastAction.js +1 -1
  171. package/lib/actions/CmptAction.js +6 -2
  172. package/lib/actions/ContinueAction.js +1 -1
  173. package/lib/actions/CopyAction.js +1 -1
  174. package/lib/actions/CustomAction.js +1 -1
  175. package/lib/actions/DialogAction.js +1 -1
  176. package/lib/actions/DrawerAction.js +1 -1
  177. package/lib/actions/EmailAction.js +1 -1
  178. package/lib/actions/EventAction.js +1 -1
  179. package/lib/actions/LinkAction.js +1 -1
  180. package/lib/actions/LoopAction.js +1 -1
  181. package/lib/actions/PageAction.js +1 -1
  182. package/lib/actions/ParallelAction.js +1 -1
  183. package/lib/actions/PrintAction.js +1 -1
  184. package/lib/actions/StatusAction.js +1 -1
  185. package/lib/actions/SwitchAction.js +1 -1
  186. package/lib/actions/ToastAction.js +1 -1
  187. package/lib/actions/WaitAction.js +1 -1
  188. package/lib/components/Animations.js +1 -1
  189. package/lib/components/CustomStyle.js +1 -1
  190. package/lib/components/ErrorBoundary.js +1 -1
  191. package/lib/components/LazyComponent.js +1 -1
  192. package/lib/components/Overlay.js +1 -1
  193. package/lib/components/PopOver.js +1 -1
  194. package/lib/env.js +1 -1
  195. package/lib/envOverwrite.js +1 -1
  196. package/lib/factory.d.ts +1 -0
  197. package/lib/factory.js +1 -1
  198. package/lib/globalVar.d.ts +173 -0
  199. package/lib/globalVar.js +130 -0
  200. package/lib/globalVarClientHandler.d.ts +1 -0
  201. package/lib/globalVarClientHandler.js +67 -0
  202. package/lib/globalVarDefaultValueHandler.d.ts +1 -0
  203. package/lib/globalVarDefaultValueHandler.js +30 -0
  204. package/lib/index.d.ts +3 -0
  205. package/lib/index.js +13 -4
  206. package/lib/locale.js +1 -1
  207. package/lib/polyfills.js +1 -1
  208. package/lib/renderers/Form.d.ts +3 -1
  209. package/lib/renderers/Form.js +37 -21
  210. package/lib/renderers/Item.d.ts +11 -19
  211. package/lib/renderers/Item.js +17 -2
  212. package/lib/renderers/Options.js +1 -1
  213. package/lib/renderers/Placeholder.js +1 -1
  214. package/lib/renderers/builtin.js +1 -1
  215. package/lib/renderers/register.js +1 -1
  216. package/lib/renderers/wrapControl.js +1 -1
  217. package/lib/store/app.js +1 -1
  218. package/lib/store/combo.d.ts +25 -24
  219. package/lib/store/combo.js +1 -1
  220. package/lib/store/crud.d.ts +8 -0
  221. package/lib/store/crud.js +23 -16
  222. package/lib/store/form.d.ts +10 -10
  223. package/lib/store/form.js +14 -5
  224. package/lib/store/formItem.js +1 -1
  225. package/lib/store/iRenderer.js +1 -1
  226. package/lib/store/index.js +1 -1
  227. package/lib/store/list.d.ts +14 -1
  228. package/lib/store/list.js +44 -16
  229. package/lib/store/manager.js +1 -1
  230. package/lib/store/modal.js +1 -1
  231. package/lib/store/node.js +1 -1
  232. package/lib/store/pagination.js +1 -1
  233. package/lib/store/root.d.ts +13 -0
  234. package/lib/store/root.js +487 -11
  235. package/lib/store/service.js +1 -1
  236. package/lib/store/status.js +1 -1
  237. package/lib/store/table.d.ts +36 -22
  238. package/lib/store/table.js +82 -25
  239. package/lib/store/table2.js +1 -1
  240. package/lib/theme.js +1 -1
  241. package/lib/types.d.ts +3 -2
  242. package/lib/utils/Animation.js +1 -1
  243. package/lib/utils/ColorScale.js +1 -1
  244. package/lib/utils/DataSchema.js +1 -1
  245. package/lib/utils/DataScope.js +1 -1
  246. package/lib/utils/RootClose.js +1 -1
  247. package/lib/utils/SimpleMap.js +1 -1
  248. package/lib/utils/animations.js +1 -1
  249. package/lib/utils/api.d.ts +1 -0
  250. package/lib/utils/api.js +18 -5
  251. package/lib/utils/arraySlice.js +1 -1
  252. package/lib/utils/attachmentAdpator.js +1 -1
  253. package/lib/utils/autobind.js +1 -1
  254. package/lib/utils/browser.js +1 -1
  255. package/lib/utils/columnsSplit.js +1 -1
  256. package/lib/utils/concatData.js +1 -1
  257. package/lib/utils/dataMapping.js +1 -1
  258. package/lib/utils/date.js +1 -1
  259. package/lib/utils/debug.js +3 -2
  260. package/lib/utils/decodeEntity.js +1 -1
  261. package/lib/utils/dom.js +1 -1
  262. package/lib/utils/errors.js +1 -1
  263. package/lib/utils/escapeHtml.js +1 -1
  264. package/lib/utils/filter-schema.js +1 -1
  265. package/lib/utils/filter.js +1 -1
  266. package/lib/utils/formatDuration.js +1 -1
  267. package/lib/utils/formula.js +1 -1
  268. package/lib/utils/getVariable.js +1 -1
  269. package/lib/utils/grammar.js +1 -1
  270. package/lib/utils/handleAction.js +1 -1
  271. package/lib/utils/helper.d.ts +5 -0
  272. package/lib/utils/helper.js +3 -2
  273. package/lib/utils/highlight.js +1 -1
  274. package/lib/utils/icon.js +1 -1
  275. package/lib/utils/image.js +1 -1
  276. package/lib/utils/isPureVariable.js +1 -1
  277. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  278. package/lib/utils/keyToPath.js +1 -1
  279. package/lib/utils/labelToString.js +1 -1
  280. package/lib/utils/loopTooMuch.js +1 -1
  281. package/lib/utils/makeSorter.js +1 -1
  282. package/lib/utils/math.js +1 -1
  283. package/lib/utils/memoryParse.js +1 -1
  284. package/lib/utils/normalizeLink.js +1 -1
  285. package/lib/utils/normalizeOptions.js +1 -1
  286. package/lib/utils/object.js +1 -1
  287. package/lib/utils/offset.js +1 -1
  288. package/lib/utils/offsetParent.js +1 -1
  289. package/lib/utils/optionValueCompare.js +1 -1
  290. package/lib/utils/position.js +1 -1
  291. package/lib/utils/prettyBytes.js +1 -1
  292. package/lib/utils/printElement.js +1 -1
  293. package/lib/utils/renderer-event.js +1 -1
  294. package/lib/utils/replaceText.js +1 -1
  295. package/lib/utils/resize-sensor.js +1 -1
  296. package/lib/utils/resolveCondition.js +1 -1
  297. package/lib/utils/resolveVariable.js +1 -1
  298. package/lib/utils/resolveVariableAndFilter.js +1 -1
  299. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  300. package/lib/utils/scrollPosition.js +1 -1
  301. package/lib/utils/string2regExp.js +1 -1
  302. package/lib/utils/stripNumber.js +1 -1
  303. package/lib/utils/style-helper.js +1 -1
  304. package/lib/utils/style.js +1 -1
  305. package/lib/utils/toNumber.js +1 -1
  306. package/lib/utils/tokenize.js +1 -1
  307. package/lib/utils/tpl-builtin.js +1 -1
  308. package/lib/utils/tpl-lodash.js +1 -1
  309. package/lib/utils/tpl.js +1 -1
  310. package/lib/utils/uncontrollable.js +1 -1
  311. package/lib/utils/validateId.js +1 -1
  312. package/lib/utils/validations.js +1 -1
  313. package/lib/utils/visitedCache.js +1 -1
  314. package/package.json +2 -2
package/esm/Root.d.ts CHANGED
@@ -5,10 +5,13 @@ import { TranslateFn } from './locale';
5
5
  import { IRendererStore } from './store';
6
6
  import { SchemaNode } from './types';
7
7
  import { StatusScopedProps } from './StatusScoped';
8
+ import { GlobalVariableItem } from './globalVar';
8
9
  export interface RootRenderProps {
10
+ globalVars?: Array<GlobalVariableItem>;
9
11
  location?: Location;
10
12
  theme?: string;
11
13
  data?: Record<string, any>;
14
+ context?: Record<string, any>;
12
15
  locale?: string;
13
16
  [propName: string]: any;
14
17
  }
package/esm/Root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,9 +1,9 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
6
- import { __extends, __assign, __awaiter, __generator, __spreadArray, __read, __rest, __decorate, __metadata } from 'tslib';
6
+ import { __extends, __assign, __rest, __awaiter, __generator, __spreadArray, __read, __decorate, __metadata } from 'tslib';
7
7
  import { observer } from 'mobx-react';
8
8
  import React from 'react';
9
9
  import { filterTarget, ScopedContext } from './Scoped.js';
@@ -34,6 +34,7 @@ var RootRenderer = /** @class */ (function (_super) {
34
34
  _this.store.updateContext(props.context);
35
35
  _this.store.initData(props.data);
36
36
  _this.store.updateLocation(props.location, (_a = _this.props.env) === null || _a === void 0 ? void 0 : _a.parseLocation);
37
+ _this.store.setGlobalVars(props.globalVars);
37
38
  // 将数据里面的函数批量的绑定到 this 上
38
39
  bulkBindFunctions(_this, [
39
40
  'handleAction',
@@ -79,6 +80,10 @@ var RootRenderer = /** @class */ (function (_super) {
79
80
  RootRenderer.prototype.componentDidUpdate = function (prevProps) {
80
81
  var _a;
81
82
  var props = this.props;
83
+ // 更新全局变量
84
+ if (props.globalVars !== prevProps.globalVars) {
85
+ this.store.setGlobalVars(props.globalVars);
86
+ }
82
87
  if (props.location !== prevProps.location) {
83
88
  this.store.updateLocation(props.location, (_a = this.props.env) === null || _a === void 0 ? void 0 : _a.parseLocation);
84
89
  }
@@ -179,11 +184,12 @@ var RootRenderer = /** @class */ (function (_super) {
179
184
  });
180
185
  }
181
186
  else if (action.actionType === 'toast') {
182
- (_b = (_a = action.toast) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.forEach(function (item) {
183
- env.notify(item.level || 'info', item.body
184
- ? render('body', item.body, __assign(__assign({}, _this.props), { data: ctx, context: store.context }))
185
- : '', __assign(__assign(__assign({}, action.toast), item), { title: item.title
186
- ? render('title', item.title, __assign(__assign({}, _this.props), { data: ctx, context: store.context }))
187
+ (_b = (_a = action.toast) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.forEach(function (_a) {
188
+ var level = _a.level, body = _a.body, title = _a.title, item = __rest(_a, ["level", "body", "title"]);
189
+ env.notify(level || 'info', body
190
+ ? render('body', body, __assign(__assign({}, _this.props), { data: ctx, context: store.context }))
191
+ : '', __assign(__assign(__assign({}, action.toast), item), { title: title
192
+ ? render('title', title, __assign(__assign({}, _this.props), { data: ctx, context: store.context }))
187
193
  : null, mobileUI: mobileUI }));
188
194
  });
189
195
  }
@@ -359,7 +365,7 @@ var RootRenderer = /** @class */ (function (_super) {
359
365
  store.action.drawer)), { type: 'drawer' }), __assign(__assign({}, rest), { key: 'drawer', topStore: this.store, data: store.drawerData, context: store.context, onConfirm: this.handleDrawerConfirm, onClose: this.handleDrawerClose, show: store.drawerOpen, onAction: this.handleAction }));
360
366
  };
361
367
  RootRenderer.prototype.render = function () {
362
- var _a = this.props, pathPrefix = _a.pathPrefix, schema = _a.schema, render = _a.render, rest = __rest(_a, ["pathPrefix", "schema", "render"]);
368
+ var _a = this.props, pathPrefix = _a.pathPrefix, schema = _a.schema, render = _a.render; _a.globalVars; var rest = __rest(_a, ["pathPrefix", "schema", "render", "globalVars"]);
363
369
  var store = this.store;
364
370
  if (store.runtimeError) {
365
371
  return this.renderRuntimeError();
@@ -19,6 +19,7 @@ export declare class SchemaRenderer extends React.Component<SchemaRendererProps,
19
19
  cRef: any;
20
20
  schema: any;
21
21
  path: string;
22
+ tmpData: any;
22
23
  toDispose: Array<() => any>;
23
24
  unbindEvent: (() => void) | undefined;
24
25
  unbindGlobalEvent: (() => void) | undefined;
@@ -26,6 +27,7 @@ export declare class SchemaRenderer extends React.Component<SchemaRendererProps,
26
27
  constructor(props: SchemaRendererProps);
27
28
  componentWillUnmount(): void;
28
29
  shouldComponentUpdate(nextProps: SchemaRendererProps): boolean;
30
+ handleGlobalVarChange(): void;
29
31
  resolveRenderer(props: SchemaRendererProps, force?: boolean): any;
30
32
  getWrappedInstance(): any;
31
33
  refFn(ref: any): void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -21,15 +21,17 @@ import { isAlive } from 'mobx-state-tree';
21
21
  import { reaction } from 'mobx';
22
22
  import 'amis-formula';
23
23
  import 'moment';
24
- import 'lodash/isPlainObject';
24
+ import { cloneObject } from './utils/object.js';
25
25
  import './utils/memoryParse.js';
26
26
  import '@rc-component/mini-decimal';
27
27
  import { resolveVariableAndFilter } from './utils/resolveVariableAndFilter.js';
28
+ import 'lodash/isPlainObject';
28
29
  import './utils/filter.js';
29
30
  import { buildStyle } from './utils/style.js';
30
31
  import { isExpression } from './utils/formula.js';
31
32
  import { filter, evalExpression } from './utils/tpl.js';
32
33
  import Animations from './components/Animations.js';
34
+ import { observeGlobalVars } from './globalVar.js';
33
35
 
34
36
  var RENDERER_TRANSMISSION_OMIT_PROPS = [
35
37
  'type',
@@ -83,13 +85,16 @@ var SchemaRenderer = /** @class */ (function (_super) {
83
85
  _this.reRender = _this.reRender.bind(_this);
84
86
  _this.resolveRenderer(_this.props);
85
87
  _this.dispatchEvent = _this.dispatchEvent.bind(_this);
88
+ _this.handleGlobalVarChange = _this.handleGlobalVarChange.bind(_this);
89
+ var schema = props.schema;
86
90
  // 监听statusStore更新
87
91
  _this.toDispose.push(reaction(function () {
88
92
  var _a, _b, _c;
89
- var id = filter(props.schema.id, props.data);
90
- var name = filter(props.schema.name, props.data);
93
+ var id = filter(schema.id, props.data);
94
+ var name = filter(schema.name, props.data);
91
95
  return "".concat((_a = props.statusStore.visibleState[id]) !== null && _a !== void 0 ? _a : props.statusStore.visibleState[name]).concat((_b = props.statusStore.disableState[id]) !== null && _b !== void 0 ? _b : props.statusStore.disableState[name]).concat((_c = props.statusStore.staticState[id]) !== null && _c !== void 0 ? _c : props.statusStore.staticState[name]);
92
96
  }, function () { return _this.forceUpdate(); }));
97
+ _this.toDispose.push(observeGlobalVars(schema, props.topStore, _this.handleGlobalVarChange));
93
98
  return _this;
94
99
  }
95
100
  SchemaRenderer.prototype.componentWillUnmount = function () {
@@ -120,6 +125,20 @@ var SchemaRenderer = /** @class */ (function (_super) {
120
125
  }
121
126
  return false;
122
127
  };
128
+ SchemaRenderer.prototype.handleGlobalVarChange = function () {
129
+ var _this = this;
130
+ var _a;
131
+ var handler = (_a = this.renderer) === null || _a === void 0 ? void 0 : _a.onGlobalVarChanged;
132
+ var newData = cloneObject(this.props.data);
133
+ // 如果渲染器自己做了实现,且返回 false,则不再继续往下执行
134
+ if ((handler === null || handler === void 0 ? void 0 : handler(this.cRef, this.props.schema, newData)) === false) {
135
+ return;
136
+ }
137
+ this.tmpData = newData;
138
+ this.forceUpdate(function () {
139
+ delete _this.tmpData;
140
+ });
141
+ };
123
142
  SchemaRenderer.prototype.resolveRenderer = function (props, force) {
124
143
  if (force === void 0) { force = false; }
125
144
  var schema = props.schema;
@@ -221,7 +240,9 @@ var SchemaRenderer = /** @class */ (function (_super) {
221
240
  ? false
222
241
  : undefined)) !== null && _b !== void 0 ? _b : this.isStatic) !== null && _c !== void 0 ? _c : (_.staticOn
223
242
  ? evalExpression(_.staticOn, rest.data)
224
- : (_d = _.static) !== null && _d !== void 0 ? _d : rest.defaultStatic) }), subProps), { data: subProps.data || rest.data, env: env }));
243
+ : (_d = _.static) !== null && _d !== void 0 ? _d : rest.defaultStatic) }), subProps), { data: this.tmpData && subProps.data === this.props.data
244
+ ? this.tmpData
245
+ : subProps.data || rest.data, env: env }));
225
246
  };
226
247
  SchemaRenderer.prototype.reRender = function () {
227
248
  this.resolveRenderer(this.props, true);
@@ -231,7 +252,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
231
252
  var e_1, _a;
232
253
  var _this = this;
233
254
  var _b, _c, _d, _e, _f, _g, _h;
234
- var _j = this.props; _j.$path; var __ = _j.schema, rootStore = _j.rootStore, statusStore = _j.statusStore, render = _j.render, propKey = _j.key, rest = __rest(_j, ["$path", "schema", "rootStore", "statusStore", "render", "key"]);
255
+ var _j = this.props; _j.$path; var __ = _j.schema, rootStore = _j.rootStore, statusStore = _j.statusStore, render = _j.render, rest = __rest(_j, ["$path", "schema", "rootStore", "statusStore", "render"]);
235
256
  if (__ == null) {
236
257
  return null;
237
258
  }
@@ -281,12 +302,12 @@ var SchemaRenderer = /** @class */ (function (_super) {
281
302
  else if (schema.component && isValidElementType(schema.component)) {
282
303
  var isSFC = !(schema.component.prototype instanceof React.Component);
283
304
  var defaultData_1 = schema.data, defaultValue_1 = schema.value, // render时的value改放defaultValue中
284
- defaultActiveKey_1 = schema.activeKey, restSchema_1 = __rest(schema, ["data", "value", "activeKey"]);
305
+ defaultActiveKey_1 = schema.activeKey, propKey_1 = schema.key, restSchema_1 = __rest(schema, ["data", "value", "activeKey", "key"]);
285
306
  return rest.invisible
286
307
  ? null
287
308
  : React.createElement(schema.component, __assign(__assign(__assign(__assign({}, rest), restSchema_1), exprProps), {
288
309
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
289
- defaultData: defaultData_1, defaultValue: defaultValue_1, defaultActiveKey: defaultActiveKey_1, propKey: propKey, $path: $path, $schema: schema, ref: isSFC ? undefined : this.refFn, forwardedRef: isSFC ? this.refFn : undefined, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
310
+ defaultData: defaultData_1, defaultValue: defaultValue_1, defaultActiveKey: defaultActiveKey_1, propKey: propKey_1, $path: $path, $schema: schema, ref: isSFC ? undefined : this.refFn, forwardedRef: isSFC ? this.refFn : undefined, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
290
311
  }
291
312
  else if (Object.keys(schema).length === 0) {
292
313
  return null;
@@ -327,7 +348,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
327
348
  }
328
349
  var renderer = this.renderer;
329
350
  schema = filterSchema(schema, renderer, rest);
330
- var defaultData = schema.data, defaultValue = schema.value, defaultActiveKey = schema.activeKey, restSchema = __rest(schema, ["data", "value", "activeKey"]);
351
+ var defaultData = schema.data, defaultValue = schema.value, defaultActiveKey = schema.activeKey, propKey = schema.key, restSchema = __rest(schema, ["data", "value", "activeKey", "key"]);
331
352
  var Component = renderer.component;
332
353
  var animationShow = true;
333
354
  // 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的
@@ -356,6 +377,8 @@ var SchemaRenderer = /** @class */ (function (_super) {
356
377
  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), {
357
378
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
358
379
  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 });
380
+ // 用于全局变量刷新
381
+ props.data = this.tmpData || props.data;
359
382
  // style 支持公式
360
383
  if (schema.style) {
361
384
  props.style = buildStyle(schema.style, detectData);
package/esm/Scoped.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/WithStore.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -22,7 +22,7 @@ var CmptAction = /** @class */ (function () {
22
22
  CmptAction.prototype.run = function (action, renderer, event) {
23
23
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
24
24
  return __awaiter(this, void 0, void 0, function () {
25
- var key, dataMergeMode, path, beforeSetData, res, component, msg, result, _8, dispatchEvent_1, data, valid, _9, e_1, result, e_2;
25
+ var key, dataMergeMode, path, topStore, beforeSetData, res, component, msg, result, _8, dispatchEvent_1, data, valid, _9, e_1, result, e_2;
26
26
  var _10, _11, _12, _13, _14, _15;
27
27
  return __generator(this, function (_16) {
28
28
  switch (_16.label) {
@@ -31,6 +31,10 @@ var CmptAction = /** @class */ (function () {
31
31
  dataMergeMode = action.dataMergeMode || 'merge';
32
32
  path = (_a = action.args) === null || _a === void 0 ? void 0 : _a.path;
33
33
  if (!(action.actionType === 'setValue' && path && typeof path === 'string')) return [3 /*break*/, 2];
34
+ if (path.startsWith('global.')) {
35
+ topStore = renderer.props.topStore;
36
+ topStore === null || topStore === void 0 ? void 0 : topStore.updateGlobalVarValue(path.substring(7), action.args.value);
37
+ }
34
38
  beforeSetData = (_c = (_b = event === null || event === void 0 ? void 0 : event.context) === null || _b === void 0 ? void 0 : _b.env) === null || _c === void 0 ? void 0 : _c.beforeSetData;
35
39
  if (!(beforeSetData && typeof beforeSetData === 'function')) return [3 /*break*/, 2];
36
40
  return [4 /*yield*/, beforeSetData(renderer, action, event)];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/factory.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface RendererBasicConfig {
20
20
  defaultProps?: (type: string, schema: any) => any;
21
21
  shouldSyncSuperStore?: (store: any, props: any, prevProps: any) => boolean | undefined;
22
22
  storeExtendsData?: boolean | ((props: any) => boolean);
23
+ onGlobalVarChanged?: (instance: React.Component, schema: any, data: any) => void | boolean;
23
24
  weight?: number;
24
25
  isolateScope?: boolean;
25
26
  isFormItem?: boolean;
package/esm/factory.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.1
2
+ * amis-core v6.11.0-beta.3
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5