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/store/crud.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
 
package/esm/store/form.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
 
@@ -122,4 +122,5 @@ export declare const RendererStore: import("mobx-state-tree").IModelType<{
122
122
  export type IRendererStore = Instance<typeof RendererStore>;
123
123
  export { iRendererStore, IIRendererStore };
124
124
  export declare const RegisterStore: (store: any) => void;
125
+ export declare const registerStore: (store: any) => void;
125
126
  export { ServiceStore, IServiceStore, FormStore, IFormStore, ComboStore, IComboStore, CRUDStore, ICRUDStore, TableStore, IColumn, IRow, ITableStore, TableStore2, ITableStore2, IColumn2, IRow2, ListStore, IListStore, ModalStore, IModalStore, FormItemStore, IFormItemStore, PaginationStore, IPaginationStore, AppStore, IAppStore, StoreNode, IStoreNode };
@@ -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
 
@@ -86,5 +86,6 @@ var RendererStore = types
86
86
  var RegisterStore = function (store) {
87
87
  allowedStoreList.push(store);
88
88
  };
89
+ var registerStore = RegisterStore;
89
90
 
90
- export { RegisterStore, RendererStore };
91
+ export { RegisterStore, RendererStore, registerStore };
package/esm/store/list.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/store/node.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
 
@@ -33,6 +33,7 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
33
33
  runtimeError: import("mobx-state-tree").IType<any, any, any>;
34
34
  runtimeErrorStack: import("mobx-state-tree").IType<any, any, any>;
35
35
  query: import("mobx-state-tree").IType<any, any, any>;
36
+ ready: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
36
37
  }, {
37
38
  readonly parentStore: any;
38
39
  readonly __: any;
@@ -84,5 +85,6 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
84
85
  updateContext(context: any): void;
85
86
  setRuntimeError(error: any, errorStack: any): void;
86
87
  updateLocation(location?: any, parseFn?: Function): void;
88
+ init: (schema: any) => Promise<any>;
87
89
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
88
90
  export type IRootStore = Instance<typeof RootStore>;
package/esm/store/root.js CHANGED
@@ -1,10 +1,10 @@
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
- import { __assign } from 'tslib';
7
- import { types } from 'mobx-state-tree';
6
+ import { __assign, __generator } from 'tslib';
7
+ import { types, flow } from 'mobx-state-tree';
8
8
  import { parseQuery, isObjectShallowModified } from '../utils/helper.js';
9
9
  import { ServiceStore } from './service.js';
10
10
  import '../utils/api.js';
@@ -52,7 +52,8 @@ var RootStore = ServiceStore.named('RootStore')
52
52
  .props({
53
53
  runtimeError: types.frozen(),
54
54
  runtimeErrorStack: types.frozen(),
55
- query: types.frozen()
55
+ query: types.frozen(),
56
+ ready: false
56
57
  })
57
58
  .volatile(function (self) {
58
59
  return {
@@ -72,22 +73,45 @@ var RootStore = ServiceStore.named('RootStore')
72
73
  return result;
73
74
  }
74
75
  }); })
75
- .actions(function (self) { return ({
76
- updateContext: function (context) {
77
- // 因为 context 不是受控属性,直接共用引用好了
78
- // 否则还会触发孩子节点的重新渲染
79
- Object.assign(self.context, context);
80
- },
81
- setRuntimeError: function (error, errorStack) {
82
- self.runtimeError = error;
83
- self.runtimeErrorStack = errorStack;
84
- },
85
- updateLocation: function (location, parseFn) {
86
- var query = parseFn ? parseFn(location) : parseQuery(location);
87
- if (isObjectShallowModified(query, self.query, false)) {
88
- self.query = query;
89
- }
90
- }
91
- }); });
76
+ .actions(function (self) {
77
+ var init = flow(function init(fn) {
78
+ var ret;
79
+ return __generator(this, function (_a) {
80
+ switch (_a.label) {
81
+ case 0:
82
+ _a.trys.push([0, , 3, 4]);
83
+ ret = fn();
84
+ if (!(ret === null || ret === void 0 ? void 0 : ret.then)) return [3 /*break*/, 2];
85
+ return [4 /*yield*/, ret];
86
+ case 1:
87
+ _a.sent();
88
+ _a.label = 2;
89
+ case 2: return [3 /*break*/, 4];
90
+ case 3:
91
+ self.ready = true;
92
+ return [7 /*endfinally*/];
93
+ case 4: return [2 /*return*/];
94
+ }
95
+ });
96
+ });
97
+ return {
98
+ updateContext: function (context) {
99
+ // 因为 context 不是受控属性,直接共用引用好了
100
+ // 否则还会触发孩子节点的重新渲染
101
+ Object.assign(self.context, context);
102
+ },
103
+ setRuntimeError: function (error, errorStack) {
104
+ self.runtimeError = error;
105
+ self.runtimeErrorStack = errorStack;
106
+ },
107
+ updateLocation: function (location, parseFn) {
108
+ var query = parseFn ? parseFn(location) : parseQuery(location);
109
+ if (isObjectShallowModified(query, self.query, false)) {
110
+ self.query = query;
111
+ }
112
+ },
113
+ init: init
114
+ };
115
+ });
92
116
 
93
117
  export { RootStore };
@@ -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
 
package/esm/theme.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
 
package/esm/types.d.ts CHANGED
@@ -181,6 +181,8 @@ export interface BaseApiObject {
181
181
  export type ClassName = string | {
182
182
  [propName: string]: boolean | undefined | null | string;
183
183
  };
184
+ export type RequestAdaptor = (api: ApiObject, context: any) => ApiObject | Promise<ApiObject>;
185
+ export type ResponseAdaptor = (payload: object, response: fetcherResult, api: ApiObject, context: any) => any;
184
186
  export interface ApiObject extends BaseApiObject {
185
187
  config?: {
186
188
  withCredentials?: boolean;
@@ -193,8 +195,8 @@ export interface ApiObject extends BaseApiObject {
193
195
  body?: PlainObject;
194
196
  query?: PlainObject;
195
197
  mockResponse?: PlainObject;
196
- adaptor?: (payload: object, response: fetcherResult, api: ApiObject, context: any) => any;
197
- requestAdaptor?: (api: ApiObject, context: any) => ApiObject | Promise<ApiObject>;
198
+ adaptor?: ResponseAdaptor;
199
+ requestAdaptor?: RequestAdaptor;
198
200
  /**
199
201
  * api 发送上下文,可以用来传递一些数据给 api 的 adaptor
200
202
  * @readonly
@@ -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,9 +1,29 @@
1
- import { Api, ApiObject, EventTrack, fetcherResult, Payload } from '../types';
1
+ import { Api, ApiObject, EventTrack, fetcherResult, Payload, RequestAdaptor, ResponseAdaptor } from '../types';
2
2
  import { FetcherConfig } from '../factory';
3
3
  interface ApiCacheConfig extends ApiObject {
4
4
  cachedPromise: Promise<any>;
5
5
  requestTime: number;
6
6
  }
7
+ /**
8
+ * 添加全局发送适配器
9
+ * @param adaptor
10
+ */
11
+ export declare function addApiRequestAdaptor(adaptor: RequestAdaptor): () => void;
12
+ /**
13
+ * 删除全局发送适配器
14
+ * @param adaptor
15
+ */
16
+ export declare function removeApiRequestAdaptor(adaptor: RequestAdaptor): void;
17
+ /**
18
+ * 添加全局响应适配器
19
+ * @param adaptor
20
+ */
21
+ export declare function addApiResponseAdator(adaptor: ResponseAdaptor): () => void;
22
+ /**
23
+ * 删除全局响应适配器
24
+ * @param adaptor
25
+ */
26
+ export declare function removeApiResponseAdaptor(adaptor: ResponseAdaptor): void;
7
27
  export declare function normalizeApi(api: Api, defaultMethod?: string): ApiObject;
8
28
  export declare function buildApi(api: Api, data?: object, options?: {
9
29
  autoAppend?: boolean;
package/esm/utils/api.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
 
@@ -23,6 +23,40 @@ import isEqual from 'lodash/isEqual';
23
23
 
24
24
  var rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head|jsonp|js):/i;
25
25
  var apiCaches = [];
26
+ var requestAdaptors = [];
27
+ var responseAdaptors = [];
28
+ /**
29
+ * 添加全局发送适配器
30
+ * @param adaptor
31
+ */
32
+ function addApiRequestAdaptor(adaptor) {
33
+ requestAdaptors.push(adaptor);
34
+ return function () { return removeApiRequestAdaptor(adaptor); };
35
+ }
36
+ /**
37
+ * 删除全局发送适配器
38
+ * @param adaptor
39
+ */
40
+ function removeApiRequestAdaptor(adaptor) {
41
+ var idx = requestAdaptors.findIndex(function (i) { return i === adaptor; });
42
+ ~idx && requestAdaptors.splice(idx, 1);
43
+ }
44
+ /**
45
+ * 添加全局响应适配器
46
+ * @param adaptor
47
+ */
48
+ function addApiResponseAdator(adaptor) {
49
+ responseAdaptors.push(adaptor);
50
+ return function () { return removeApiResponseAdaptor(adaptor); };
51
+ }
52
+ /**
53
+ * 删除全局响应适配器
54
+ * @param adaptor
55
+ */
56
+ function removeApiResponseAdaptor(adaptor) {
57
+ var idx = responseAdaptors.findIndex(function (i) { return i === adaptor; });
58
+ ~idx && responseAdaptors.splice(idx, 1);
59
+ }
26
60
  var isIE = !!document.documentMode;
27
61
  function normalizeApi(api, defaultMethod) {
28
62
  if (defaultMethod === void 0) { defaultMethod = 'get'; }
@@ -375,27 +409,57 @@ function wrapFetcher(fn, tracker) {
375
409
  var wrappedFetcher = function (api, data, options) {
376
410
  var _a, _b, _c;
377
411
  return __awaiter(this, void 0, void 0, function () {
378
- var originQuery, originQueryCopy, idx, apiCache, timeStamp;
412
+ var adaptors, adaptor_1, apiCache, timeStamp;
413
+ var _this = this;
379
414
  return __generator(this, function (_d) {
380
415
  switch (_d.label) {
381
416
  case 0:
382
417
  api = buildApi(api, data, options);
383
418
  api.context = data;
384
- if (!api.requestAdaptor) return [3 /*break*/, 2];
385
- debug('api', 'before requestAdaptor', api);
386
- originQuery = api.query;
387
- originQueryCopy = isPlainObject(api.query)
388
- ? cloneDeep(api.query)
389
- : api.query;
390
- return [4 /*yield*/, api.requestAdaptor(api, data)];
391
- case 1:
392
- api = (_d.sent()) || api;
393
- if (api.query !== originQuery ||
394
- (isPlainObject(api.query) && !isEqual(api.query, originQueryCopy))) {
395
- idx = api.url.indexOf('?');
396
- api.url = "".concat(~idx ? api.url.substring(0, idx) : api.url, "?").concat(qsstringify(api.query));
419
+ adaptors = requestAdaptors.concat();
420
+ if (api.requestAdaptor) {
421
+ adaptor_1 = api.requestAdaptor;
422
+ adaptors.unshift(function (api, context) { return __awaiter(_this, void 0, void 0, function () {
423
+ var originQuery, originQueryCopy, idx;
424
+ return __generator(this, function (_a) {
425
+ switch (_a.label) {
426
+ case 0:
427
+ originQuery = api.query;
428
+ originQueryCopy = isPlainObject(api.query)
429
+ ? cloneDeep(api.query)
430
+ : api.query;
431
+ debug('api', 'before requestAdaptor', api);
432
+ return [4 /*yield*/, adaptor_1.call(api, api, context)];
433
+ case 1:
434
+ api = (_a.sent()) || api;
435
+ if (api.query !== originQuery ||
436
+ (isPlainObject(api.query) && !isEqual(api.query, originQueryCopy))) {
437
+ idx = api.url.indexOf('?');
438
+ api.url = "".concat(~idx ? api.url.substring(0, idx) : api.url, "?").concat(qsstringify(api.query));
439
+ }
440
+ debug('api', 'after requestAdaptor', api);
441
+ return [2 /*return*/, api];
442
+ }
443
+ });
444
+ }); });
397
445
  }
398
- debug('api', 'after requestAdaptor', api);
446
+ if (!adaptors.length) return [3 /*break*/, 2];
447
+ return [4 /*yield*/, adaptors.reduce(function (api, fn) { return __awaiter(_this, void 0, void 0, function () {
448
+ var ret;
449
+ return __generator(this, function (_a) {
450
+ switch (_a.label) {
451
+ case 0: return [4 /*yield*/, api];
452
+ case 1:
453
+ ret = _a.sent();
454
+ return [4 /*yield*/, fn(ret, data)];
455
+ case 2:
456
+ ret = (_a.sent()) || ret;
457
+ return [2 /*return*/, ret];
458
+ }
459
+ });
460
+ }); }, Promise.resolve(api))];
461
+ case 1:
462
+ api = _d.sent();
399
463
  _d.label = 2;
400
464
  case 2:
401
465
  if (api.data &&
@@ -462,30 +526,58 @@ function wrapFetcher(fn, tracker) {
462
526
  return wrappedFetcher;
463
527
  }
464
528
  function wrapAdaptor(promise, api, context) {
465
- var _this = this;
466
- var adaptor = api.adaptor;
467
- return adaptor
468
- ? promise
469
- .then(function (response) { return __awaiter(_this, void 0, void 0, function () {
470
- var result;
471
- return __generator(this, function (_a) {
472
- switch (_a.label) {
473
- case 0:
474
- debug('api', 'before adaptor data', response.data);
475
- result = adaptor(response.data, response, api, context);
476
- if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 2];
477
- return [4 /*yield*/, result];
478
- case 1:
479
- result = _a.sent();
480
- _a.label = 2;
481
- case 2:
482
- debug('api', 'after adaptor data', result);
483
- return [2 /*return*/, __assign(__assign({}, response), { data: result })];
484
- }
485
- });
486
- }); })
487
- .then(function (ret) { return responseAdaptor(ret, api); })
488
- : promise.then(function (ret) { return responseAdaptor(ret, api); });
529
+ return __awaiter(this, void 0, void 0, function () {
530
+ var adaptors, adaptor_2, response;
531
+ var _this = this;
532
+ return __generator(this, function (_a) {
533
+ switch (_a.label) {
534
+ case 0:
535
+ adaptors = responseAdaptors.concat();
536
+ if (api.adaptor) {
537
+ adaptor_2 = api.adaptor;
538
+ adaptors.push(function (payload, response, api, context) { return __awaiter(_this, void 0, void 0, function () {
539
+ var result;
540
+ return __generator(this, function (_a) {
541
+ switch (_a.label) {
542
+ case 0:
543
+ debug('api', 'before adaptor data', response.data);
544
+ result = adaptor_2(response.data, response, api, context);
545
+ if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 2];
546
+ return [4 /*yield*/, result];
547
+ case 1:
548
+ result = _a.sent();
549
+ _a.label = 2;
550
+ case 2:
551
+ debug('api', 'after adaptor data', result);
552
+ return [2 /*return*/, result];
553
+ }
554
+ });
555
+ }); });
556
+ }
557
+ return [4 /*yield*/, adaptors.reduce(function (promise, adaptor) { return __awaiter(_this, void 0, void 0, function () {
558
+ var response, result;
559
+ var _a;
560
+ return __generator(this, function (_b) {
561
+ switch (_b.label) {
562
+ case 0: return [4 /*yield*/, promise];
563
+ case 1:
564
+ response = _b.sent();
565
+ result = (_a = adaptor(response.data, response, api, context)) !== null && _a !== void 0 ? _a : response.data;
566
+ if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 3];
567
+ return [4 /*yield*/, result];
568
+ case 2:
569
+ result = _b.sent();
570
+ _b.label = 3;
571
+ case 3: return [2 /*return*/, __assign(__assign({}, response), { data: result })];
572
+ }
573
+ });
574
+ }); }, promise)];
575
+ case 1:
576
+ response = _a.sent();
577
+ return [2 /*return*/, responseAdaptor(response, api)];
578
+ }
579
+ });
580
+ });
489
581
  }
490
582
  /**
491
583
  * 请求远程 js 文件然后 new Function 执行,用于 schemaApi 支持 JavaScript
@@ -705,4 +797,4 @@ function normalizeApiResponseData(data) {
705
797
  }
706
798
  // window.apiCaches = apiCaches;
707
799
 
708
- export { buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher };
800
+ export { addApiRequestAdaptor, addApiResponseAdator, buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, removeApiRequestAdaptor, removeApiResponseAdaptor, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher };
@@ -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
 
package/esm/utils/date.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/utils/dom.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