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
@@ -726,12 +726,11 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
726
726
  } & {
727
727
  addStore(store: {
728
728
  [propName: string]: any;
729
- storeType: string; /**
730
- * 不设置时,当表单提交过后表单项每次修改都会触发重新验证,
731
- * 如果设置了,则由此配置项来决定要不要每次修改都触发验证。
732
- */
729
+ storeType: string;
733
730
  id: string;
734
- path: string;
731
+ path: string; /**
732
+ * 是否只读
733
+ */
735
734
  parentId?: string | undefined;
736
735
  }): {
737
736
  id: string;
@@ -806,9 +805,7 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
806
805
  dispose: (callback?: (() => void) | undefined) => void;
807
806
  addChildId: (id: string) => void;
808
807
  removeChildId: (id: string) => void;
809
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void; /**
810
- * 配置 input className
811
- */
808
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void;
812
809
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
813
810
  storeType: import("mobx-state-tree").IType<string | undefined, string, string>;
814
811
  }, {
@@ -895,12 +892,11 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
895
892
  } & {
896
893
  addStore(store: {
897
894
  [propName: string]: any;
898
- storeType: string; /**
899
- * 不设置时,当表单提交过后表单项每次修改都会触发重新验证,
900
- * 如果设置了,则由此配置项来决定要不要每次修改都触发验证。
901
- */
895
+ storeType: string;
902
896
  id: string;
903
- path: string;
897
+ path: string; /**
898
+ * 是否只读
899
+ */
904
900
  parentId?: string | undefined;
905
901
  }): {
906
902
  id: string;
@@ -975,15 +971,11 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
975
971
  dispose: (callback?: (() => void) | undefined) => void;
976
972
  addChildId: (id: string) => void;
977
973
  removeChildId: (id: string) => void;
978
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void; /**
979
- * 配置 input className
980
- */
974
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>): void;
981
975
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
982
976
  ComposedComponent: React.ComponentType<any>;
983
977
  } & hoistNonReactStatic.NonReactStatics<any, {}> & {
984
- ComposedComponent: any; /**
985
- * label自定义宽度,默认单位为px
986
- */
978
+ ComposedComponent: any;
987
979
  } & {
988
980
  ComposedComponent: any;
989
981
  };
@@ -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
 
@@ -8,6 +8,8 @@ import React from 'react';
8
8
  import hoistNonReactStatic from 'hoist-non-react-statics';
9
9
  import { reaction } from 'mobx';
10
10
  import { isAlive } from 'mobx-state-tree';
11
+ import { isGlobalVarExpression } from '../globalVar.js';
12
+ import { resolveVariableAndFilter } from '../utils/resolveVariableAndFilter.js';
11
13
  import { registerRenderer, renderersMap } from '../factory.js';
12
14
  import { isEmpty, getTreeAncestors, ucFirst, getWidthRate, autobind, anyChanged } from '../utils/helper.js';
13
15
  import { observer } from 'mobx-react';
@@ -1099,7 +1101,20 @@ function asFormItem(config) {
1099
1101
  }
1100
1102
  function registerFormItem(config) {
1101
1103
  var Control = asFormItem(config)(config.component);
1102
- return registerRenderer(__assign(__assign({}, config), { weight: typeof config.weight !== 'undefined' ? config.weight : -100, component: Control, isFormItem: true }));
1104
+ return registerRenderer(__assign(__assign({}, config), { weight: typeof config.weight !== 'undefined' ? config.weight : -100, component: Control, isFormItem: true, onGlobalVarChanged: function (instance, schema, data) {
1105
+ var _a, _b, _c;
1106
+ if (((_a = config.onGlobalVarChanged) === null || _a === void 0 ? void 0 : _a.apply(this, arguments)) === false) {
1107
+ return false;
1108
+ }
1109
+ if (isGlobalVarExpression(schema.source)) {
1110
+ (_c = (_b = instance.props).reloadOptions) === null || _c === void 0 ? void 0 : _c.call(_b);
1111
+ }
1112
+ // 目前表单项的全局变量更新要靠这个方式
1113
+ if (isGlobalVarExpression(schema.value)) {
1114
+ instance.props.onChange(resolveVariableAndFilter(schema.value, data, '| raw'));
1115
+ return false;
1116
+ }
1117
+ } }));
1103
1118
  }
1104
1119
  function FormItem(config) {
1105
1120
  return function (component) {
@@ -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/store/app.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
 
@@ -111,10 +111,17 @@ export declare const CRUDStore: import("mobx-state-tree").IModelType<{
111
111
  readonly mergedData: any;
112
112
  readonly hasModalOpened: boolean;
113
113
  readonly selectedItemsAsArray: any[];
114
+ readonly itemsAsArray: any[];
114
115
  fetchCtxOf(data: any, options: {
115
116
  pageField?: string;
116
117
  perPageField?: string;
117
118
  }): object;
119
+ readonly eventContext: {
120
+ items: any[];
121
+ selectedItems: any[];
122
+ unSelectedItems: any[];
123
+ selectedIndexes: string[];
124
+ };
118
125
  } & {
119
126
  getData: (superData: any) => any;
120
127
  updateSelectData: (selected: Array<any>, unSelected: Array<any>) => void;
@@ -155,6 +162,7 @@ export declare const CRUDStore: import("mobx-state-tree").IModelType<{
155
162
  updateColumns: (columns: Array<any>) => void;
156
163
  updateTotal: (total: number) => void;
157
164
  resetSelection: () => void;
165
+ replaceItems(items: Array<any>): void;
158
166
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
159
167
  export type ICRUDStore = Instance<typeof CRUDStore>;
160
168
  export {};
package/esm/store/crud.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
 
@@ -7,7 +7,7 @@ import { __extends, __assign, __generator, __rest, __values, __awaiter } from 't
7
7
  import { saveAs } from 'file-saver';
8
8
  import { types, flow, getEnv, isAlive } from 'mobx-state-tree';
9
9
  import { ServiceStore } from './service.js';
10
- import { applyFilters, sortArray, isEmpty, isObjectShallowModified, qsstringify } from '../utils/helper.js';
10
+ import { findTreeIndex, applyFilters, sortArray, isEmpty, isObjectShallowModified, qsstringify } from '../utils/helper.js';
11
11
  import pick from 'lodash/pick';
12
12
  import 'amis-formula';
13
13
  import 'moment';
@@ -61,14 +61,10 @@ var CRUDStore = ServiceStore.named('CRUDStore')
61
61
  // 包两层,主要是为了处理以下 case
62
62
  // 里面放了个 form,form 提交过来的时候不希望把 items 这些发送过来。
63
63
  // 因为会把数据呈现在地址栏上。
64
- return createObject(createObject(self.data, {
65
- items: self.items.concat(),
66
- selectedItems: self.selectedItems.concat(),
67
- unSelectedItems: self.unSelectedItems.concat()
68
- }), __assign({}, self.query));
64
+ return createObject(createObject(self.data, this.eventContext), __assign({}, self.query));
69
65
  },
70
66
  get mergedData() {
71
- return extendObject(self.data, __assign(__assign(__assign({}, self.query), self.data), { selectedItems: self.selectedItems, unSelectedItems: self.unSelectedItems }));
67
+ return extendObject(self.data, __assign(__assign(__assign({}, self.query), this.eventContext), self.data));
72
68
  },
73
69
  get hasModalOpened() {
74
70
  return self.dialogOpen || self.drawerOpen || self.hasInnerModalOpen;
@@ -76,9 +72,24 @@ var CRUDStore = ServiceStore.named('CRUDStore')
76
72
  get selectedItemsAsArray() {
77
73
  return self.selectedItems.concat();
78
74
  },
75
+ get itemsAsArray() {
76
+ return self.items.concat();
77
+ },
79
78
  fetchCtxOf: function (data, options) {
80
79
  var _a;
81
80
  return createObject(data, __assign(__assign(__assign({}, self.query), (_a = {}, _a[options.pageField || 'page'] = self.page, _a[options.perPageField || 'perPage'] = self.perPage, _a)), data));
81
+ },
82
+ get eventContext() {
83
+ var context = {
84
+ items: self.items.concat(),
85
+ selectedItems: self.selectedItems.concat(),
86
+ unSelectedItems: self.unSelectedItems.concat(),
87
+ selectedIndexes: self.selectedItems.map(function (item) {
88
+ var _a;
89
+ return ((_a = findTreeIndex(self.items, function (i) { return (item.__pristine || item) === (i.__pristine || i); })) === null || _a === void 0 ? void 0 : _a.join('.')) || '-1';
90
+ })
91
+ };
92
+ return context;
82
93
  }
83
94
  }); })
84
95
  .actions(function (self) {
@@ -494,14 +505,7 @@ var CRUDStore = ServiceStore.named('CRUDStore')
494
505
  });
495
506
  };
496
507
  var getData = function (superData) {
497
- return createObject(superData, {
498
- total: self.total,
499
- page: self.page,
500
- perPage: self.perPage,
501
- items: self.items.concat(),
502
- selectedItems: self.selectedItems.concat(),
503
- unSelectedItems: self.unSelectedItems.concat()
504
- });
508
+ return createObject(superData, __assign({ total: self.total, page: self.page, perPage: self.perPage }, self.eventContext));
505
509
  };
506
510
  var updateColumns = function (columns) {
507
511
  self.columns = columns;
@@ -540,7 +544,10 @@ var CRUDStore = ServiceStore.named('CRUDStore')
540
544
  exportAsCSV: exportAsCSV,
541
545
  updateColumns: updateColumns,
542
546
  updateTotal: updateTotal,
543
- resetSelection: resetSelection
547
+ resetSelection: resetSelection,
548
+ replaceItems: function (items) {
549
+ self.items.replace(items);
550
+ }
544
551
  };
545
552
  });
546
553
 
package/esm/store/form.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
 
@@ -439,9 +439,11 @@ var FormStore = ServiceStore.named('FormStore')
439
439
  }, [self]);
440
440
  };
441
441
  // 10s 内不要重复弹同一个错误
442
- var toastValidateError = throttle(function (msg) {
442
+ var toastValidateError = throttle(function (msg, validateError) {
443
443
  var env = getEnv(self);
444
- env.notify('error', msg);
444
+ env.notify('error', msg, {
445
+ validateError: validateError
446
+ });
445
447
  }, 10000, {
446
448
  trailing: false,
447
449
  leading: true
@@ -478,7 +480,7 @@ var FormStore = ServiceStore.named('FormStore')
478
480
  });
479
481
  });
480
482
  var validate = flow(function validate(hooks, forceValidate, throwErrors, failedMessage, validateErrCb) {
481
- var items, i, len, item, i, len, msg, e_2, msg, dispatcher;
483
+ var items, i, len, item, i, len, msg, e_2, msg, dispatcher, validateError;
482
484
  return __generator(this, function (_a) {
483
485
  switch (_a.label) {
484
486
  case 0:
@@ -567,7 +569,14 @@ var FormStore = ServiceStore.named('FormStore')
567
569
  _a.label = 12;
568
570
  case 12:
569
571
  if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented)) {
570
- msg && toastValidateError(msg);
572
+ validateError = new ValidateError(failedMessage || self.__('Form.validateFailed'), self.errors, {
573
+ items: self.items,
574
+ msg: {
575
+ customMsg: failedMessage,
576
+ defaultMsg: self.__('Form.validateFailed')
577
+ }
578
+ });
579
+ msg && toastValidateError(msg, validateError);
571
580
  }
572
581
  _a.label = 13;
573
582
  case 13:
@@ -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
 
@@ -62,6 +62,8 @@ export declare const ListStore: import("mobx-state-tree").IModelType<{
62
62
  reset(): void;
63
63
  updateData({ children, ...rest }: any): void;
64
64
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
65
+ fullItems: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
66
+ fullSelectedItems: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
65
67
  selectedItems: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IModelType<{
66
68
  storeType: import("mobx-state-tree").IType<string | undefined, string, string>;
67
69
  id: import("mobx-state-tree").ISimpleType<string>;
@@ -282,10 +284,21 @@ export declare const ListStore: import("mobx-state-tree").IModelType<{
282
284
  reset(): void;
283
285
  updateData({ children, ...rest }: any): void;
284
286
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
287
+ /**
288
+ * 构建事件的上下文数据
289
+ * @param buildChain
290
+ * @returns
291
+ */
292
+ readonly eventContext: {
293
+ selectedItems: any[];
294
+ selectedIndexes: number[];
295
+ items: any[];
296
+ unSelectedItems: any[];
297
+ };
285
298
  } & {
286
299
  getData: (superData: any) => any;
287
300
  update: (config: Partial<SListStore>) => void;
288
- initItems: (items: Array<object>) => void;
301
+ initItems: (items: Array<object>, fullItems?: Array<any>, fullSelectedItems?: Array<any>) => void;
289
302
  updateSelected: (selected: Array<any>, valueField?: string) => void;
290
303
  toggleAll: () => void;
291
304
  clearAll: () => void;
package/esm/store/list.js CHANGED
@@ -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 { __rest, __assign } from 'tslib';
6
+ import { __assign, __rest } from 'tslib';
7
7
  import { types, getParent } from 'mobx-state-tree';
8
8
  import { iRendererStore } from './iRenderer.js';
9
9
  import isEqual from 'lodash/isEqual';
@@ -35,12 +35,7 @@ var Item = types
35
35
  },
36
36
  get locals() {
37
37
  var listStore = getParent(self, 2);
38
- return createObject(extendObject(listStore.data, {
39
- index: self.index,
40
- // 只有table时,也可以获取选中行
41
- selectedItems: listStore.selectedItems.map(function (item) { return item.data; }),
42
- unSelectedItems: listStore.unSelectedItems.map(function (item) { return item.data; })
43
- }), self.data);
38
+ return createObject(extendObject(listStore.data, __assign({ index: self.index }, listStore.eventContext)), self.data);
44
39
  },
45
40
  get checkable() {
46
41
  var table = getParent(self, 2);
@@ -78,6 +73,11 @@ var ListStore = iRendererStore
78
73
  .named('ListStore')
79
74
  .props({
80
75
  items: types.array(Item),
76
+ // 记录原始列表和原始选中的列表
77
+ // 因为如果是前端分页,上层 crud 或者 input-table 下发到这层的
78
+ // 是某个页区间的数据,这个时候 items 和 selectedItems 会少很多条
79
+ fullItems: types.optional(types.array(types.frozen()), []),
80
+ fullSelectedItems: types.optional(types.array(types.frozen()), []),
81
81
  selectedItems: types.array(types.reference(Item)),
82
82
  primaryField: 'id',
83
83
  orderBy: '',
@@ -131,6 +131,36 @@ var ListStore = iRendererStore
131
131
  },
132
132
  get movedItems() {
133
133
  return getMovedItems();
134
+ },
135
+ /**
136
+ * 构建事件的上下文数据
137
+ * @param buildChain
138
+ * @returns
139
+ */
140
+ get eventContext() {
141
+ var context = {
142
+ selectedItems: self.selectedItems.map(function (item) { return item.data; }),
143
+ selectedIndexes: self.selectedItems.map(function (item) { return item.index; }),
144
+ items: self.items.map(function (item) { return item.data; }),
145
+ unSelectedItems: this.unSelectedItems.map(function (item) { return item.data; })
146
+ };
147
+ // 如果是前端分页情况,需要根据全量数据计算
148
+ // 如果不是前端分页,数据都没有返回,那种就没办法支持全量数据信息了
149
+ if (self.fullItems.length > self.items.length) {
150
+ // todo 这里的选择顺序会一直变,这个有影响吗?
151
+ var selectedItems_1 = self.fullSelectedItems
152
+ .filter(function (item) {
153
+ return !self.items.find(function (row) { return row.pristine === (item.__pristine || item); });
154
+ })
155
+ .concat(context.selectedItems);
156
+ context.selectedItems = selectedItems_1;
157
+ context.items = self.fullItems.concat();
158
+ context.unSelectedItems = self.fullItems.filter(function (item) { return !selectedItems_1.includes(item); });
159
+ context.selectedIndexes = selectedItems_1.map(function (item) {
160
+ return self.fullItems.indexOf(item.__pristine || item);
161
+ });
162
+ }
163
+ return context;
134
164
  }
135
165
  };
136
166
  })
@@ -150,7 +180,7 @@ var ListStore = iRendererStore
150
180
  config.itemDraggableOn === void 0 ||
151
181
  (self.itemDraggableOn = config.itemDraggableOn);
152
182
  }
153
- function initItems(items) {
183
+ function initItems(items, fullItems, fullSelectedItems) {
154
184
  var arr = items.map(function (item, key) {
155
185
  item = isObject(item)
156
186
  ? item
@@ -162,14 +192,16 @@ var ListStore = iRendererStore
162
192
  id: guid(),
163
193
  index: key,
164
194
  newIndex: key,
165
- pristine: item,
166
- data: item,
167
- modified: false
195
+ pristine: item.__pristine || item,
196
+ data: item
168
197
  };
169
198
  });
170
199
  self.selectedItems.clear();
171
200
  self.items.replace(arr);
172
201
  self.dragging = false;
202
+ Array.isArray(fullItems) && self.fullItems.replace(fullItems);
203
+ Array.isArray(fullSelectedItems) &&
204
+ self.fullSelectedItems.replace(fullSelectedItems);
173
205
  }
174
206
  function updateSelected(selected, valueField) {
175
207
  self.selectedItems.clear();
@@ -253,11 +285,7 @@ var ListStore = iRendererStore
253
285
  self.items.replace(newItems);
254
286
  }
255
287
  function getData(superData) {
256
- return createObject(superData, {
257
- items: self.items.map(function (item) { return item.data; }),
258
- selectedItems: self.selectedItems.map(function (item) { return item.data; }),
259
- unSelectedItems: self.unSelectedItems.map(function (item) { return item.data; })
260
- });
288
+ return createObject(superData, __assign({}, self.eventContext));
261
289
  }
262
290
  return {
263
291
  getData: getData,
@@ -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/store/node.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,4 +1,6 @@
1
+ /// <reference types="lodash" />
1
2
  import { Instance } from 'mobx-state-tree';
3
+ import { GlobalVariableItem, GlobalVariableState, GlobalVariableItemFull } from '../globalVar';
2
4
  export declare const RootStore: import("mobx-state-tree").IModelType<{
3
5
  id: import("mobx-state-tree").ISimpleType<string>;
4
6
  path: import("mobx-state-tree").IType<string | undefined, string, string>;
@@ -34,6 +36,7 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
34
36
  runtimeErrorStack: import("mobx-state-tree").IType<any, any, any>;
35
37
  query: import("mobx-state-tree").IType<any, any, any>;
36
38
  ready: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
39
+ globalVarStates: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IMapType<import("mobx-state-tree").IType<GlobalVariableState, GlobalVariableState, GlobalVariableState>>, [undefined]>;
37
40
  }, {
38
41
  readonly parentStore: any;
39
42
  readonly __: any;
@@ -79,12 +82,23 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
79
82
  checkRemote: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
80
83
  } & {
81
84
  context: {};
85
+ globalVars: GlobalVariableItemFull[];
86
+ globalData: any;
82
87
  } & {
83
88
  readonly downStream: any;
84
89
  } & {
85
90
  updateContext(context: any): void;
91
+ updateGlobalVarState(key: string, state: Partial<GlobalVariableState>): void;
92
+ setGlobalVars: (vars?: Array<GlobalVariableItem>) => Promise<any>;
93
+ updateGlobalVarValue: (key: string, value: any) => void;
94
+ modifyGlobalVarValue: (key: string, options: {
95
+ op: 'set' | 'merge' | 'push' | 'unshift' | 'remove' | 'toggle' | 'empty' | 'sort' | 'reverse' | 'refresh';
96
+ value: any;
97
+ }) => void;
98
+ saveGlobalVarValues: import("lodash").DebouncedFunc<(key?: string) => Promise<void>>;
86
99
  setRuntimeError(error: any, errorStack: any): void;
87
100
  updateLocation(location?: any, parseFn?: Function): void;
88
101
  init: (schema: any) => Promise<any>;
102
+ afterDestroy(): void;
89
103
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
90
104
  export type IRootStore = Instance<typeof RootStore>;