amis-core 6.8.0 → 6.9.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +24 -2
  4. package/esm/SchemaRenderer.js +29 -15
  5. package/esm/Scoped.js +1 -1
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +1 -1
  9. package/esm/actions/Action.js +1 -1
  10. package/esm/actions/AjaxAction.js +1 -1
  11. package/esm/actions/BreakAction.js +1 -1
  12. package/esm/actions/BroadcastAction.js +1 -1
  13. package/esm/actions/CmptAction.js +1 -1
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +1 -1
  17. package/esm/actions/DialogAction.js +1 -1
  18. package/esm/actions/DrawerAction.js +1 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/EventAction.js +1 -1
  21. package/esm/actions/LinkAction.js +1 -1
  22. package/esm/actions/LoopAction.js +1 -1
  23. package/esm/actions/PageAction.js +1 -1
  24. package/esm/actions/ParallelAction.js +1 -1
  25. package/esm/actions/PrintAction.js +1 -1
  26. package/esm/actions/StatusAction.js +1 -1
  27. package/esm/actions/SwitchAction.js +1 -1
  28. package/esm/actions/ToastAction.js +1 -1
  29. package/esm/actions/WaitAction.js +1 -1
  30. package/esm/components/CustomStyle.js +1 -1
  31. package/esm/components/ErrorBoundary.js +1 -1
  32. package/esm/components/LazyComponent.d.ts +40 -2
  33. package/esm/components/LazyComponent.js +13 -7
  34. package/esm/components/Overlay.js +1 -1
  35. package/esm/components/PopOver.d.ts +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.d.ts +13 -2
  40. package/esm/factory.js +157 -45
  41. package/esm/index.d.ts +4 -4
  42. package/esm/index.js +5 -5
  43. package/esm/locale.js +1 -1
  44. package/esm/polyfills.js +1 -1
  45. package/esm/renderers/Form.js +3 -3
  46. package/esm/renderers/Item.js +6 -6
  47. package/esm/renderers/Options.d.ts +3 -3
  48. package/esm/renderers/Options.js +42 -19
  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.js +1 -1
  54. package/esm/store/combo.js +1 -1
  55. package/esm/store/crud.js +1 -1
  56. package/esm/store/form.js +1 -1
  57. package/esm/store/formItem.js +1 -1
  58. package/esm/store/iRenderer.js +1 -1
  59. package/esm/store/index.d.ts +1 -0
  60. package/esm/store/index.js +3 -2
  61. package/esm/store/list.js +1 -1
  62. package/esm/store/manager.js +1 -1
  63. package/esm/store/modal.js +1 -1
  64. package/esm/store/node.js +1 -1
  65. package/esm/store/pagination.js +1 -1
  66. package/esm/store/root.d.ts +2 -0
  67. package/esm/store/root.js +45 -21
  68. package/esm/store/service.js +1 -1
  69. package/esm/store/status.js +1 -1
  70. package/esm/store/table.js +1 -1
  71. package/esm/store/table2.js +1 -1
  72. package/esm/theme.js +1 -1
  73. package/esm/types.d.ts +4 -2
  74. package/esm/utils/Animation.js +1 -1
  75. package/esm/utils/ColorScale.js +1 -1
  76. package/esm/utils/DataSchema.js +1 -1
  77. package/esm/utils/DataScope.js +1 -1
  78. package/esm/utils/RootClose.js +1 -1
  79. package/esm/utils/SimpleMap.js +1 -1
  80. package/esm/utils/api.d.ts +21 -1
  81. package/esm/utils/api.js +133 -41
  82. package/esm/utils/arraySlice.js +1 -1
  83. package/esm/utils/attachmentAdpator.js +1 -1
  84. package/esm/utils/autobind.js +1 -1
  85. package/esm/utils/browser.js +1 -1
  86. package/esm/utils/columnsSplit.js +1 -1
  87. package/esm/utils/concatData.js +1 -1
  88. package/esm/utils/dataMapping.js +1 -1
  89. package/esm/utils/date.js +1 -1
  90. package/esm/utils/debug.js +1 -1
  91. package/esm/utils/decodeEntity.js +1 -1
  92. package/esm/utils/dom.js +1 -1
  93. package/esm/utils/errors.js +1 -1
  94. package/esm/utils/escapeHtml.js +1 -1
  95. package/esm/utils/filter-schema.js +1 -1
  96. package/esm/utils/filter.js +1 -1
  97. package/esm/utils/formatDuration.js +1 -1
  98. package/esm/utils/formula.js +1 -1
  99. package/esm/utils/getVariable.js +1 -1
  100. package/esm/utils/grammar.js +1 -1
  101. package/esm/utils/handleAction.js +1 -1
  102. package/esm/utils/helper.js +1 -1
  103. package/esm/utils/highlight.js +1 -1
  104. package/esm/utils/icon.js +1 -1
  105. package/esm/utils/image.js +1 -1
  106. package/esm/utils/isPureVariable.js +1 -1
  107. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  108. package/esm/utils/keyToPath.js +1 -1
  109. package/esm/utils/labelToString.js +1 -1
  110. package/esm/utils/makeSorter.js +1 -1
  111. package/esm/utils/math.js +1 -1
  112. package/esm/utils/memoryParse.js +1 -1
  113. package/esm/utils/normalizeLink.js +1 -1
  114. package/esm/utils/normalizeOptions.js +1 -1
  115. package/esm/utils/object.js +1 -1
  116. package/esm/utils/offset.js +1 -1
  117. package/esm/utils/offsetParent.js +1 -1
  118. package/esm/utils/optionValueCompare.js +1 -1
  119. package/esm/utils/position.js +1 -1
  120. package/esm/utils/prettyBytes.js +1 -1
  121. package/esm/utils/printElement.js +1 -1
  122. package/esm/utils/renderer-event.js +1 -1
  123. package/esm/utils/replaceText.js +1 -1
  124. package/esm/utils/resize-sensor.js +1 -1
  125. package/esm/utils/resolveCondition.js +1 -1
  126. package/esm/utils/resolveVariable.js +1 -1
  127. package/esm/utils/resolveVariableAndFilter.js +1 -1
  128. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  129. package/esm/utils/scrollPosition.js +1 -1
  130. package/esm/utils/string2regExp.js +1 -1
  131. package/esm/utils/stripNumber.js +1 -1
  132. package/esm/utils/style-helper.js +1 -1
  133. package/esm/utils/style.js +1 -1
  134. package/esm/utils/toNumber.js +1 -1
  135. package/esm/utils/tokenize.js +1 -1
  136. package/esm/utils/tpl-builtin.js +1 -1
  137. package/esm/utils/tpl-lodash.js +1 -1
  138. package/esm/utils/tpl.js +1 -1
  139. package/esm/utils/uncontrollable.js +1 -1
  140. package/esm/utils/validateId.js +1 -1
  141. package/esm/utils/validations.js +1 -1
  142. package/esm/utils/visitedCache.js +1 -1
  143. package/lib/Root.js +1 -1
  144. package/lib/RootRenderer.js +23 -1
  145. package/lib/SchemaRenderer.js +27 -13
  146. package/lib/Scoped.js +1 -1
  147. package/lib/StatusScoped.js +1 -1
  148. package/lib/WithRootStore.js +1 -1
  149. package/lib/WithStore.js +1 -1
  150. package/lib/actions/Action.js +1 -1
  151. package/lib/actions/AjaxAction.js +1 -1
  152. package/lib/actions/BreakAction.js +1 -1
  153. package/lib/actions/BroadcastAction.js +1 -1
  154. package/lib/actions/CmptAction.js +1 -1
  155. package/lib/actions/ContinueAction.js +1 -1
  156. package/lib/actions/CopyAction.js +1 -1
  157. package/lib/actions/CustomAction.js +1 -1
  158. package/lib/actions/DialogAction.js +1 -1
  159. package/lib/actions/DrawerAction.js +1 -1
  160. package/lib/actions/EmailAction.js +1 -1
  161. package/lib/actions/EventAction.js +1 -1
  162. package/lib/actions/LinkAction.js +1 -1
  163. package/lib/actions/LoopAction.js +1 -1
  164. package/lib/actions/PageAction.js +1 -1
  165. package/lib/actions/ParallelAction.js +1 -1
  166. package/lib/actions/PrintAction.js +1 -1
  167. package/lib/actions/StatusAction.js +1 -1
  168. package/lib/actions/SwitchAction.js +1 -1
  169. package/lib/actions/ToastAction.js +1 -1
  170. package/lib/actions/WaitAction.js +1 -1
  171. package/lib/components/CustomStyle.js +1 -1
  172. package/lib/components/ErrorBoundary.js +1 -1
  173. package/lib/components/LazyComponent.d.ts +40 -2
  174. package/lib/components/LazyComponent.js +14 -7
  175. package/lib/components/Overlay.js +1 -1
  176. package/lib/components/PopOver.d.ts +1 -1
  177. package/lib/components/PopOver.js +1 -1
  178. package/lib/env.js +1 -1
  179. package/lib/envOverwrite.js +1 -1
  180. package/lib/factory.d.ts +13 -2
  181. package/lib/factory.js +161 -44
  182. package/lib/index.d.ts +4 -4
  183. package/lib/index.js +10 -2
  184. package/lib/locale.js +1 -1
  185. package/lib/polyfills.js +1 -1
  186. package/lib/renderers/Form.js +1 -1
  187. package/lib/renderers/Item.js +6 -6
  188. package/lib/renderers/Options.d.ts +3 -3
  189. package/lib/renderers/Options.js +42 -19
  190. package/lib/renderers/Placeholder.js +1 -1
  191. package/lib/renderers/builtin.js +1 -1
  192. package/lib/renderers/register.js +1 -1
  193. package/lib/renderers/wrapControl.js +1 -1
  194. package/lib/store/app.js +1 -1
  195. package/lib/store/combo.d.ts +24 -25
  196. package/lib/store/combo.js +1 -1
  197. package/lib/store/crud.js +2 -2
  198. package/lib/store/form.d.ts +10 -11
  199. package/lib/store/form.js +1 -1
  200. package/lib/store/formItem.js +1 -1
  201. package/lib/store/iRenderer.js +1 -1
  202. package/lib/store/index.d.ts +1 -0
  203. package/lib/store/index.js +3 -1
  204. package/lib/store/list.js +1 -1
  205. package/lib/store/manager.js +1 -1
  206. package/lib/store/modal.js +1 -1
  207. package/lib/store/node.js +1 -1
  208. package/lib/store/pagination.js +1 -1
  209. package/lib/store/root.d.ts +2 -0
  210. package/lib/store/root.js +43 -19
  211. package/lib/store/service.js +1 -1
  212. package/lib/store/status.js +1 -1
  213. package/lib/store/table.d.ts +20 -21
  214. package/lib/store/table.js +1 -1
  215. package/lib/store/table2.js +1 -1
  216. package/lib/theme.js +1 -1
  217. package/lib/types.d.ts +4 -2
  218. package/lib/utils/Animation.js +1 -1
  219. package/lib/utils/ColorScale.js +1 -1
  220. package/lib/utils/DataSchema.js +1 -1
  221. package/lib/utils/DataScope.js +1 -1
  222. package/lib/utils/RootClose.js +1 -1
  223. package/lib/utils/SimpleMap.js +1 -1
  224. package/lib/utils/api.d.ts +21 -1
  225. package/lib/utils/api.js +136 -40
  226. package/lib/utils/arraySlice.js +1 -1
  227. package/lib/utils/attachmentAdpator.js +1 -1
  228. package/lib/utils/autobind.js +1 -1
  229. package/lib/utils/browser.js +1 -1
  230. package/lib/utils/columnsSplit.js +1 -1
  231. package/lib/utils/concatData.js +1 -1
  232. package/lib/utils/dataMapping.js +1 -1
  233. package/lib/utils/date.js +1 -1
  234. package/lib/utils/debug.js +2 -2
  235. package/lib/utils/decodeEntity.js +1 -1
  236. package/lib/utils/dom.js +1 -1
  237. package/lib/utils/errors.js +1 -1
  238. package/lib/utils/escapeHtml.js +1 -1
  239. package/lib/utils/filter-schema.js +1 -1
  240. package/lib/utils/filter.js +1 -1
  241. package/lib/utils/formatDuration.js +1 -1
  242. package/lib/utils/formula.js +1 -1
  243. package/lib/utils/getVariable.js +1 -1
  244. package/lib/utils/grammar.js +1 -1
  245. package/lib/utils/handleAction.js +1 -1
  246. package/lib/utils/helper.js +1 -1
  247. package/lib/utils/highlight.js +1 -1
  248. package/lib/utils/icon.js +1 -1
  249. package/lib/utils/image.js +1 -1
  250. package/lib/utils/isPureVariable.js +1 -1
  251. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  252. package/lib/utils/keyToPath.js +1 -1
  253. package/lib/utils/labelToString.js +1 -1
  254. package/lib/utils/makeSorter.js +1 -1
  255. package/lib/utils/math.js +1 -1
  256. package/lib/utils/memoryParse.js +1 -1
  257. package/lib/utils/normalizeLink.js +1 -1
  258. package/lib/utils/normalizeOptions.js +1 -1
  259. package/lib/utils/object.js +1 -1
  260. package/lib/utils/offset.js +1 -1
  261. package/lib/utils/offsetParent.js +1 -1
  262. package/lib/utils/optionValueCompare.js +1 -1
  263. package/lib/utils/position.js +1 -1
  264. package/lib/utils/prettyBytes.js +1 -1
  265. package/lib/utils/printElement.js +1 -1
  266. package/lib/utils/renderer-event.js +1 -1
  267. package/lib/utils/replaceText.js +1 -1
  268. package/lib/utils/resize-sensor.js +1 -1
  269. package/lib/utils/resolveCondition.js +1 -1
  270. package/lib/utils/resolveVariable.js +1 -1
  271. package/lib/utils/resolveVariableAndFilter.js +1 -1
  272. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  273. package/lib/utils/scrollPosition.js +1 -1
  274. package/lib/utils/string2regExp.js +1 -1
  275. package/lib/utils/stripNumber.js +1 -1
  276. package/lib/utils/style-helper.js +1 -1
  277. package/lib/utils/style.js +1 -1
  278. package/lib/utils/toNumber.js +1 -1
  279. package/lib/utils/tokenize.js +1 -1
  280. package/lib/utils/tpl-builtin.js +1 -1
  281. package/lib/utils/tpl-lodash.js +1 -1
  282. package/lib/utils/tpl.js +1 -1
  283. package/lib/utils/uncontrollable.js +1 -1
  284. package/lib/utils/validateId.js +1 -1
  285. package/lib/utils/validations.js +1 -1
  286. package/lib/utils/visitedCache.js +1 -1
  287. package/package.json +2 -2
package/esm/Root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -30,5 +30,5 @@ export declare class RootRenderer extends React.Component<RootRendererProps> {
30
30
  renderError(): React.ReactNode;
31
31
  renderDialog(): React.ReactNode;
32
32
  renderDrawer(): React.ReactNode;
33
- render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
33
+ render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
34
34
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -8,7 +8,7 @@ import { observer } from 'mobx-react';
8
8
  import React from 'react';
9
9
  import { filterTarget, ScopedContext } from './Scoped.js';
10
10
  import { RootStore } from './store/root.js';
11
- import { guid, bulkBindFunctions, isVisible } from './utils/helper.js';
11
+ import { guid, bulkBindFunctions, JSONTraverse, isVisible } from './utils/helper.js';
12
12
  import { filter } from './utils/tpl.js';
13
13
  import qs from 'qs';
14
14
  import pick from 'lodash/pick';
@@ -16,6 +16,8 @@ import mapValues from 'lodash/mapValues';
16
16
  import { saveAs } from 'file-saver';
17
17
  import { normalizeApi } from './utils/api.js';
18
18
  import { findDOMNode } from 'react-dom';
19
+ import themedLazyComponent from './components/LazyComponent.js';
20
+ import { hasAsyncRenderers, loadAsyncRenderersByType } from './factory.js';
19
21
 
20
22
  var RootRenderer = /** @class */ (function (_super) {
21
23
  __extends(RootRenderer, _super);
@@ -41,6 +43,23 @@ var RootRenderer = /** @class */ (function (_super) {
41
43
  'handleDrawerClose',
42
44
  'handlePageVisibilityChange'
43
45
  ]);
46
+ _this.store.init(function () {
47
+ if (!hasAsyncRenderers()) {
48
+ return;
49
+ }
50
+ var schema = props.schema;
51
+ var types = ['tpl', 'dialog', 'drawer'];
52
+ JSONTraverse(schema, function (value, key) {
53
+ if (key === 'type') {
54
+ types.push(value);
55
+ // form 依赖 panel
56
+ if (value === 'form') {
57
+ types.push('panel');
58
+ }
59
+ }
60
+ });
61
+ return loadAsyncRenderersByType(types);
62
+ });
44
63
  return _this;
45
64
  }
46
65
  RootRenderer.prototype.componentDidMount = function () {
@@ -339,6 +358,9 @@ var RootRenderer = /** @class */ (function (_super) {
339
358
  if (store.runtimeError) {
340
359
  return this.renderRuntimeError();
341
360
  }
361
+ else if (!store.ready) {
362
+ return React.createElement(themedLazyComponent, { className: "RootLoader" });
363
+ }
342
364
  return (React.createElement(React.Fragment, null,
343
365
  render(pathPrefix, schema, __assign(__assign({}, rest), { topStore: this.store, data: this.store.downStream, context: store.context, onAction: this.handleAction })),
344
366
  this.renderSpinner(),
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -8,8 +8,8 @@ import difference from 'lodash/difference';
8
8
  import omit from 'lodash/omit';
9
9
  import React from 'react';
10
10
  import { isValidElementType } from 'react-is';
11
- import LazyComponent from './components/LazyComponent.js';
12
- import { resolveRenderer, loadRenderer, filterSchema } from './factory.js';
11
+ import themedLazyComponent from './components/LazyComponent.js';
12
+ import { resolveRenderer, loadRendererError, loadAsyncRenderer, filterSchema } from './factory.js';
13
13
  import { asFormItem } from './renderers/Item.js';
14
14
  import { ScopedContext } from './Scoped.js';
15
15
  import { DebugWrapper } from './utils/debug.js';
@@ -205,7 +205,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
205
205
  var omitList = RENDERER_TRANSMISSION_OMIT_PROPS.concat();
206
206
  if (this.renderer) {
207
207
  var Component = this.renderer.component;
208
- Component.propsList &&
208
+ (Component === null || Component === void 0 ? void 0 : Component.propsList) &&
209
209
  omitList.push.apply(omitList, Component.propsList);
210
210
  }
211
211
  return render("".concat($path).concat(region ? "/".concat(region) : ''), node || '', __assign(__assign(__assign(__assign({}, omit(rest, omitList)), { defaultStatic: (_c = (_b = (((_a = this.renderer) === null || _a === void 0 ? void 0 : _a.type) &&
@@ -222,12 +222,12 @@ var SchemaRenderer = /** @class */ (function (_super) {
222
222
  SchemaRenderer.prototype.render = function () {
223
223
  var e_1, _a;
224
224
  var _this = this;
225
- var _b, _c, _d, _e, _f, _g;
226
- var _h = this.props; _h.$path; var __ = _h.schema, rootStore = _h.rootStore, statusStore = _h.statusStore, render = _h.render, propKey = _h.key, rest = __rest(_h, ["$path", "schema", "rootStore", "statusStore", "render", "key"]);
225
+ var _b, _c, _d, _e, _f, _g, _h;
226
+ 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"]);
227
227
  if (__ == null) {
228
228
  return null;
229
229
  }
230
- var _j = this.resolveRenderer(this.props), $path = _j.path, schema = _j.schema;
230
+ var _k = this.resolveRenderer(this.props), $path = _k.path, schema = _k.schema;
231
231
  var theme = this.props.env.theme;
232
232
  if (Array.isArray(schema)) {
233
233
  return render($path, schema, rest);
@@ -284,7 +284,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
284
284
  return null;
285
285
  }
286
286
  else if (!this.renderer) {
287
- return rest.invisible ? null : (React.createElement(LazyComponent, __assign({}, rest, exprProps, { getComponent: function () { return __awaiter(_this, void 0, void 0, function () {
287
+ return rest.invisible ? null : (React.createElement(themedLazyComponent, { defaultVisible: true, getComponent: function () { return __awaiter(_this, void 0, void 0, function () {
288
288
  var result;
289
289
  return __generator(this, function (_a) {
290
290
  switch (_a.label) {
@@ -298,10 +298,24 @@ var SchemaRenderer = /** @class */ (function (_super) {
298
298
  return [2 /*return*/, function () { return result; }];
299
299
  }
300
300
  this.reRender();
301
- return [2 /*return*/, function () { return loadRenderer(schema, $path); }];
301
+ return [2 /*return*/, function () { return loadRendererError(schema, $path); }];
302
302
  }
303
303
  });
304
- }); }, "$path": $path, "$schema": schema, retry: this.reRender, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent })));
304
+ }); } }));
305
+ }
306
+ else if (this.renderer.getComponent && !this.renderer.component) {
307
+ // 处理异步渲染器
308
+ return rest.invisible ? null : (React.createElement(themedLazyComponent, { defaultVisible: true, getComponent: function () { return __awaiter(_this, void 0, void 0, function () {
309
+ return __generator(this, function (_a) {
310
+ switch (_a.label) {
311
+ case 0: return [4 /*yield*/, loadAsyncRenderer(this.renderer)];
312
+ case 1:
313
+ _a.sent();
314
+ this.reRender();
315
+ return [2 /*return*/, function () { return null; }];
316
+ }
317
+ });
318
+ }); } }));
305
319
  }
306
320
  var renderer = this.renderer;
307
321
  schema = filterSchema(schema, renderer, rest);
@@ -325,9 +339,9 @@ var SchemaRenderer = /** @class */ (function (_super) {
325
339
  }
326
340
  var supportRef = ((_e = Component.prototype) === null || _e === void 0 ? void 0 : _e.isReactComponent) ||
327
341
  Component.$$typeof === Symbol.for('react.forward_ref');
328
- var props = __assign(__assign(__assign(__assign(__assign({}, theme.getRendererConfig(renderer.name)), restSchema), chainEvents(rest, restSchema)), exprProps), {
342
+ 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), {
329
343
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
330
- defaultData: (_f = restSchema.defaultData) !== null && _f !== void 0 ? _f : defaultData, defaultValue: (_g = restSchema.defaultValue) !== null && _g !== void 0 ? _g : 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 });
344
+ 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 });
331
345
  // style 支持公式
332
346
  if (schema.style) {
333
347
  props.style = buildStyle(schema.style, detectData);
@@ -350,8 +364,8 @@ var SchemaRenderer = /** @class */ (function (_super) {
350
364
  // 自动解析变量模式,主要是方便直接引入第三方组件库,无需为了支持变量封装一层
351
365
  if (renderer.autoVar) {
352
366
  try {
353
- for (var _k = __values(Object.keys(schema)), _l = _k.next(); !_l.done; _l = _k.next()) {
354
- var key = _l.value;
367
+ for (var _l = __values(Object.keys(schema)), _m = _l.next(); !_m.done; _m = _l.next()) {
368
+ var key = _m.value;
355
369
  if (typeof props[key] === 'string' && isExpression(props[key])) {
356
370
  props[key] = resolveVariableAndFilter(props[key], props.data, '| raw');
357
371
  }
@@ -360,7 +374,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
360
374
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
361
375
  finally {
362
376
  try {
363
- if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
377
+ if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
364
378
  }
365
379
  finally { if (e_1) throw e_1.error; }
366
380
  }
package/esm/Scoped.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
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.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -3,20 +3,24 @@
3
3
  * @description
4
4
  * @author fex
5
5
  */
6
+ /// <reference types="hoist-non-react-statics" />
6
7
  import React from 'react';
7
- export interface LazyComponentProps {
8
+ import { ThemeProps } from '../theme';
9
+ export interface LazyComponentProps extends ThemeProps {
8
10
  component?: React.ElementType;
9
11
  getComponent?: () => Promise<React.ElementType>;
10
12
  placeholder?: React.ReactNode;
11
13
  unMountOnHidden?: boolean;
12
14
  childProps?: object;
15
+ defaultVisible?: boolean;
16
+ className?: string;
13
17
  [propName: string]: any;
14
18
  }
15
19
  export interface LazyComponentState {
16
20
  visible: boolean;
17
21
  component?: React.ElementType;
18
22
  }
19
- export default class LazyComponent extends React.Component<LazyComponentProps, LazyComponentState> {
23
+ export declare class LazyComponent extends React.Component<LazyComponentProps, LazyComponentState> {
20
24
  static defaultProps: {
21
25
  placeholder: React.JSX.Element;
22
26
  unMountOnHidden: boolean;
@@ -29,3 +33,37 @@ export default class LazyComponent extends React.Component<LazyComponentProps, L
29
33
  handleVisibleChange(visible: boolean, entry?: any): void;
30
34
  render(): React.ReactNode;
31
35
  }
36
+ declare const themedLazyComponent: {
37
+ new (props: Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps): {
38
+ ref: any;
39
+ childRef(ref: any): void;
40
+ getWrappedInstance(): any;
41
+ render(): React.JSX.Element;
42
+ context: unknown;
43
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
44
+ forceUpdate(callback?: (() => void) | undefined): void;
45
+ readonly props: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>;
46
+ state: Readonly<{}>;
47
+ refs: {
48
+ [key: string]: React.ReactInstance;
49
+ };
50
+ componentDidMount?(): void;
51
+ shouldComponentUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
52
+ componentWillUnmount?(): void;
53
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
54
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, prevState: Readonly<{}>): any;
55
+ componentDidUpdate?(prevProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, prevState: Readonly<{}>, snapshot?: any): void;
56
+ componentWillMount?(): void;
57
+ UNSAFE_componentWillMount?(): void;
58
+ componentWillReceiveProps?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextContext: any): void;
59
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextContext: any): void;
60
+ componentWillUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
61
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
62
+ };
63
+ displayName: string;
64
+ contextType: React.Context<string>;
65
+ ComposedComponent: React.ComponentType<typeof LazyComponent>;
66
+ } & import("hoist-non-react-statics").NonReactStatics<typeof LazyComponent, {}> & {
67
+ ComposedComponent: typeof LazyComponent;
68
+ };
69
+ export default themedLazyComponent;
@@ -1,11 +1,12 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
6
6
  import { __extends, __rest, __assign } from 'tslib';
7
7
  import React from 'react';
8
8
  import { InView } from 'react-intersection-observer';
9
+ import { themeable } from '../theme.js';
9
10
 
10
11
  /**
11
12
  * @file LazyComponent
@@ -15,19 +16,21 @@ import { InView } from 'react-intersection-observer';
15
16
  var LazyComponent = /** @class */ (function (_super) {
16
17
  __extends(LazyComponent, _super);
17
18
  function LazyComponent(props) {
18
- var _this = _super.call(this, props) || this;
19
+ var _this = this;
20
+ var _a;
21
+ _this = _super.call(this, props) || this;
19
22
  _this.mounted = false;
20
23
  _this.handleVisibleChange = _this.handleVisibleChange.bind(_this);
21
24
  _this.mounted = true;
22
25
  _this.state = {
23
- visible: false,
26
+ visible: (_a = props.defaultVisible) !== null && _a !== void 0 ? _a : false,
24
27
  component: props.component
25
28
  };
26
29
  return _this;
27
30
  }
28
31
  LazyComponent.prototype.componentDidMount = function () {
29
32
  // jest 里面有点异常,先手动让它总是可见
30
- if (typeof jest !== 'undefined') {
33
+ if (typeof jest !== 'undefined' || this.state.visible) {
31
34
  this.handleVisibleChange(true);
32
35
  }
33
36
  };
@@ -59,7 +62,8 @@ var LazyComponent = /** @class */ (function (_super) {
59
62
  });
60
63
  };
61
64
  LazyComponent.prototype.render = function () {
62
- var _a = this.props, placeholder = _a.placeholder, unMountOnHidden = _a.unMountOnHidden, childProps = _a.childProps, partialVisibility = _a.partialVisibility, children = _a.children, rest = __rest(_a, ["placeholder", "unMountOnHidden", "childProps", "partialVisibility", "children"]);
65
+ var _a = this.props, placeholder = _a.placeholder, unMountOnHidden = _a.unMountOnHidden, childProps = _a.childProps, partialVisibility = _a.partialVisibility, children = _a.children, className = _a.className, rest = __rest(_a, ["placeholder", "unMountOnHidden", "childProps", "partialVisibility", "children", "className"]);
66
+ var cx = this.props.classnames;
63
67
  var _b = this.state, visible = _b.visible, Component = _b.component;
64
68
  // 需要监听从可见到不可见。
65
69
  if (unMountOnHidden) {
@@ -81,7 +85,7 @@ var LazyComponent = /** @class */ (function (_super) {
81
85
  else if (children) {
82
86
  return children;
83
87
  }
84
- return React.createElement("div", null, placeholder);
88
+ return React.createElement("div", { className: cx('LazyComponent', className) }, placeholder);
85
89
  };
86
90
  LazyComponent.defaultProps = {
87
91
  placeholder: React.createElement("span", null, "Loading..."),
@@ -90,5 +94,7 @@ var LazyComponent = /** @class */ (function (_super) {
90
94
  };
91
95
  return LazyComponent;
92
96
  }(React.Component));
97
+ var themedLazyComponent = themeable(LazyComponent);
98
+ themedLazyComponent.defaultProps = LazyComponent.defaultProps;
93
99
 
94
- export { LazyComponent as default };
100
+ export { LazyComponent, themedLazyComponent as default };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -6,7 +6,7 @@
6
6
  /// <reference types="hoist-non-react-statics" />
7
7
  import React from 'react';
8
8
  import { ClassNamesFn } from '../theme';
9
- import type { TestIdBuilder } from 'amis-core';
9
+ import { TestIdBuilder } from '../utils';
10
10
  export interface Offset {
11
11
  x: number;
12
12
  y: number;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
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.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/factory.d.ts CHANGED
@@ -13,8 +13,10 @@ export interface TestFunc {
13
13
  export interface RendererBasicConfig {
14
14
  test?: RegExp | TestFunc;
15
15
  type?: string;
16
+ alias?: Array<string>;
16
17
  name?: string;
17
18
  storeType?: string;
19
+ defaultProps?: (type: string, schema: any) => any;
18
20
  shouldSyncSuperStore?: (store: any, props: any, prevProps: any) => boolean | undefined;
19
21
  storeExtendsData?: boolean | ((props: any) => boolean);
20
22
  weight?: number;
@@ -47,7 +49,11 @@ export type RendererComponent = React.ComponentType<RendererProps> & {
47
49
  propsList?: Array<any>;
48
50
  };
49
51
  export interface RendererConfig extends RendererBasicConfig {
50
- component: RendererComponent;
52
+ component?: RendererComponent;
53
+ getComponent?: () => Promise<{
54
+ default: RendererComponent;
55
+ } | any>;
56
+ override?: boolean;
51
57
  Renderer?: RendererComponent;
52
58
  }
53
59
  export interface RenderSchemaFilter {
@@ -77,7 +83,12 @@ export declare function filterSchema(schema: Schema, render: RendererConfig, pro
77
83
  export declare function Renderer(config: RendererBasicConfig): <T extends RendererComponent>(component: T) => T;
78
84
  export declare function registerRenderer(config: RendererConfig): RendererConfig;
79
85
  export declare function unRegisterRenderer(config: RendererConfig | string): void;
80
- export declare function loadRenderer(schema: Schema, path: string): React.JSX.Element;
86
+ export declare function loadRendererError(schema: Schema, path: string): React.JSX.Element;
87
+ export declare function loadAsyncRenderer(renderer: RendererConfig): Promise<void>;
88
+ export declare function isAsyncRenderer(item: RendererConfig): false | (() => Promise<any>) | undefined;
89
+ export declare function hasAsyncRenderers(): boolean;
90
+ export declare function loadAsyncRenderersByType(type: string | Array<string>, ignore?: boolean): Promise<void>;
91
+ export declare function loadAllAsyncRenderers(): Promise<void>;
81
92
  export declare const defaultOptions: RenderOptions;
82
93
  export declare const stores: {
83
94
  [propName: string]: IRendererStore;