amis-core 3.5.2 → 3.6.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 (285) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +2 -2
  4. package/esm/SchemaRenderer.js +1 -1
  5. package/esm/Scoped.d.ts +2 -0
  6. package/esm/Scoped.js +49 -7
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +27 -12
  10. package/esm/actions/Action.js +30 -22
  11. package/esm/actions/AjaxAction.js +2 -2
  12. package/esm/actions/BreakAction.js +1 -1
  13. package/esm/actions/BroadcastAction.js +1 -1
  14. package/esm/actions/CmptAction.js +31 -32
  15. package/esm/actions/ContinueAction.js +1 -1
  16. package/esm/actions/CopyAction.js +3 -3
  17. package/esm/actions/CustomAction.js +1 -1
  18. package/esm/actions/DialogAction.js +1 -1
  19. package/esm/actions/DrawerAction.js +1 -1
  20. package/esm/actions/EmailAction.js +1 -1
  21. package/esm/actions/LinkAction.js +5 -5
  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/StatusAction.js +1 -1
  26. package/esm/actions/SwitchAction.js +1 -1
  27. package/esm/actions/ToastAction.js +3 -3
  28. package/esm/components/CustomStyle.js +1 -1
  29. package/esm/components/ErrorBoundary.d.ts +20 -0
  30. package/esm/components/ErrorBoundary.js +41 -0
  31. package/esm/components/LazyComponent.js +1 -1
  32. package/esm/components/Overlay.js +1 -1
  33. package/esm/components/PopOver.d.ts +4 -0
  34. package/esm/components/PopOver.js +66 -3
  35. package/esm/env.d.ts +9 -0
  36. package/esm/env.js +1 -1
  37. package/esm/envOverwrite.d.ts +1 -1
  38. package/esm/envOverwrite.js +15 -35
  39. package/esm/factory.js +1 -1
  40. package/esm/index.d.ts +2 -1
  41. package/esm/index.js +5 -4
  42. package/esm/locale.js +1 -1
  43. package/esm/polyfills.js +1 -1
  44. package/esm/renderers/Form.d.ts +10 -4
  45. package/esm/renderers/Form.js +64 -32
  46. package/esm/renderers/Item.d.ts +54 -0
  47. package/esm/renderers/Item.js +1 -1
  48. package/esm/renderers/Options.d.ts +5 -1
  49. package/esm/renderers/Options.js +11 -9
  50. package/esm/renderers/Placeholder.js +1 -1
  51. package/esm/renderers/builtin.js +1 -1
  52. package/esm/renderers/register.js +1 -1
  53. package/esm/renderers/wrapControl.js +10 -17
  54. package/esm/store/app.js +1 -1
  55. package/esm/store/combo.d.ts +1154 -48
  56. package/esm/store/combo.js +10 -3
  57. package/esm/store/crud.d.ts +9 -1
  58. package/esm/store/crud.js +50 -15
  59. package/esm/store/form.d.ts +480 -20
  60. package/esm/store/form.js +1 -1
  61. package/esm/store/formItem.d.ts +23 -1
  62. package/esm/store/formItem.js +103 -15
  63. package/esm/store/iRenderer.js +1 -1
  64. package/esm/store/index.js +1 -1
  65. package/esm/store/list.js +1 -1
  66. package/esm/store/manager.js +1 -1
  67. package/esm/store/modal.js +1 -1
  68. package/esm/store/node.js +1 -1
  69. package/esm/store/pagination.js +1 -1
  70. package/esm/store/root.js +1 -1
  71. package/esm/store/service.js +1 -1
  72. package/esm/store/status.js +1 -1
  73. package/esm/store/table.d.ts +1078 -42
  74. package/esm/store/table.js +64 -6
  75. package/esm/store/table2.js +1 -4
  76. package/esm/theme.js +1 -1
  77. package/esm/types.d.ts +8 -2
  78. package/esm/utils/Animation.js +1 -1
  79. package/esm/utils/ColorScale.js +1 -1
  80. package/esm/utils/DataSchema.js +1 -1
  81. package/esm/utils/DataScope.js +1 -1
  82. package/esm/utils/RootClose.js +1 -1
  83. package/esm/utils/SimpleMap.js +1 -1
  84. package/esm/utils/api.js +1 -1
  85. package/esm/utils/arraySlice.js +1 -1
  86. package/esm/utils/attachmentAdpator.js +3 -1
  87. package/esm/utils/autobind.js +1 -1
  88. package/esm/utils/columnsSplit.js +1 -1
  89. package/esm/utils/dataMapping.js +1 -1
  90. package/esm/utils/date.js +1 -1
  91. package/esm/utils/debug.js +1 -1
  92. package/esm/utils/decodeEntity.js +1 -1
  93. package/esm/utils/dom.js +1 -1
  94. package/esm/utils/errors.js +1 -1
  95. package/esm/utils/escapeHtml.js +1 -1
  96. package/esm/utils/filter-schema.d.ts +2 -1
  97. package/esm/utils/filter-schema.js +14 -5
  98. package/esm/utils/filter.js +1 -1
  99. package/esm/utils/formatDuration.js +1 -1
  100. package/esm/utils/formula.js +1 -1
  101. package/esm/utils/getVariable.js +1 -1
  102. package/esm/utils/grammar.js +1 -1
  103. package/esm/utils/handleAction.js +1 -1
  104. package/esm/utils/helper.d.ts +2 -2
  105. package/esm/utils/helper.js +37 -29
  106. package/esm/utils/highlight.js +1 -1
  107. package/esm/utils/icon.js +1 -1
  108. package/esm/utils/image.js +1 -1
  109. package/esm/utils/isPureVariable.js +1 -1
  110. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  111. package/esm/utils/keyToPath.js +1 -1
  112. package/esm/utils/makeSorter.js +1 -1
  113. package/esm/utils/math.js +8 -5
  114. package/esm/utils/memoryParse.js +1 -1
  115. package/esm/utils/normalizeLink.js +1 -1
  116. package/esm/utils/normalizeOptions.js +1 -1
  117. package/esm/utils/object.js +15 -1
  118. package/esm/utils/offset.js +1 -1
  119. package/esm/utils/offsetParent.js +1 -1
  120. package/esm/utils/optionValueCompare.js +1 -1
  121. package/esm/utils/position.js +1 -1
  122. package/esm/utils/prettyBytes.js +1 -1
  123. package/esm/utils/renderer-event.d.ts +7 -0
  124. package/esm/utils/renderer-event.js +30 -18
  125. package/esm/utils/replaceText.js +1 -1
  126. package/esm/utils/resize-sensor.js +1 -1
  127. package/esm/utils/resolveCondition.js +1 -1
  128. package/esm/utils/resolveVariable.js +1 -1
  129. package/esm/utils/resolveVariableAndFilter.js +1 -1
  130. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  131. package/esm/utils/scrollPosition.js +1 -1
  132. package/esm/utils/string2regExp.js +1 -1
  133. package/esm/utils/stripNumber.js +1 -1
  134. package/esm/utils/style-helper.js +12 -15
  135. package/esm/utils/style.js +3 -2
  136. package/esm/utils/toNumber.js +1 -1
  137. package/esm/utils/tokenize.js +1 -1
  138. package/esm/utils/tpl-builtin.js +1 -1
  139. package/esm/utils/tpl-lodash.js +1 -1
  140. package/esm/utils/tpl.js +1 -1
  141. package/esm/utils/uncontrollable.js +1 -1
  142. package/esm/utils/validations.js +1 -1
  143. package/lib/Root.js +1 -1
  144. package/lib/RootRenderer.d.ts +1 -1
  145. package/lib/RootRenderer.js +2 -2
  146. package/lib/SchemaRenderer.js +1 -1
  147. package/lib/Scoped.d.ts +2 -0
  148. package/lib/Scoped.js +48 -6
  149. package/lib/StatusScoped.js +1 -1
  150. package/lib/WithRootStore.js +1 -1
  151. package/lib/WithStore.js +26 -11
  152. package/lib/actions/Action.js +29 -21
  153. package/lib/actions/AjaxAction.js +2 -2
  154. package/lib/actions/BreakAction.js +1 -1
  155. package/lib/actions/BroadcastAction.js +1 -1
  156. package/lib/actions/CmptAction.js +31 -32
  157. package/lib/actions/ContinueAction.js +1 -1
  158. package/lib/actions/CopyAction.js +3 -3
  159. package/lib/actions/CustomAction.js +1 -1
  160. package/lib/actions/DialogAction.js +1 -1
  161. package/lib/actions/DrawerAction.js +1 -1
  162. package/lib/actions/EmailAction.js +1 -1
  163. package/lib/actions/LinkAction.js +5 -5
  164. package/lib/actions/LoopAction.js +1 -1
  165. package/lib/actions/PageAction.js +1 -1
  166. package/lib/actions/ParallelAction.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 +3 -3
  170. package/lib/components/CustomStyle.js +1 -1
  171. package/lib/components/ErrorBoundary.d.ts +20 -0
  172. package/lib/components/ErrorBoundary.js +52 -0
  173. package/lib/components/LazyComponent.js +1 -1
  174. package/lib/components/Overlay.js +1 -1
  175. package/lib/components/PopOver.d.ts +4 -0
  176. package/lib/components/PopOver.js +64 -1
  177. package/lib/env.d.ts +9 -0
  178. package/lib/env.js +1 -1
  179. package/lib/envOverwrite.d.ts +1 -1
  180. package/lib/envOverwrite.js +18 -34
  181. package/lib/factory.js +1 -1
  182. package/lib/index.d.ts +2 -1
  183. package/lib/index.js +6 -3
  184. package/lib/locale.js +1 -1
  185. package/lib/polyfills.js +1 -1
  186. package/lib/renderers/Form.d.ts +10 -4
  187. package/lib/renderers/Form.js +64 -32
  188. package/lib/renderers/Item.d.ts +54 -0
  189. package/lib/renderers/Item.js +1 -1
  190. package/lib/renderers/Options.d.ts +5 -1
  191. package/lib/renderers/Options.js +11 -9
  192. package/lib/renderers/Placeholder.js +1 -1
  193. package/lib/renderers/builtin.js +1 -1
  194. package/lib/renderers/register.js +1 -1
  195. package/lib/renderers/wrapControl.js +10 -17
  196. package/lib/store/app.js +1 -1
  197. package/lib/store/combo.d.ts +1154 -49
  198. package/lib/store/combo.js +10 -3
  199. package/lib/store/crud.d.ts +9 -1
  200. package/lib/store/crud.js +50 -15
  201. package/lib/store/form.d.ts +480 -21
  202. package/lib/store/form.js +1 -1
  203. package/lib/store/formItem.d.ts +23 -1
  204. package/lib/store/formItem.js +104 -15
  205. package/lib/store/iRenderer.js +1 -1
  206. package/lib/store/index.js +1 -1
  207. package/lib/store/list.js +1 -1
  208. package/lib/store/manager.js +1 -1
  209. package/lib/store/modal.js +1 -1
  210. package/lib/store/node.js +1 -1
  211. package/lib/store/pagination.js +1 -1
  212. package/lib/store/root.js +1 -1
  213. package/lib/store/service.js +1 -1
  214. package/lib/store/status.js +1 -1
  215. package/lib/store/table.d.ts +1078 -43
  216. package/lib/store/table.js +63 -5
  217. package/lib/store/table2.js +1 -4
  218. package/lib/theme.js +1 -1
  219. package/lib/types.d.ts +8 -2
  220. package/lib/utils/Animation.js +1 -1
  221. package/lib/utils/ColorScale.js +1 -1
  222. package/lib/utils/DataSchema.js +1 -1
  223. package/lib/utils/DataScope.js +1 -1
  224. package/lib/utils/RootClose.js +1 -1
  225. package/lib/utils/SimpleMap.js +1 -1
  226. package/lib/utils/api.js +1 -1
  227. package/lib/utils/arraySlice.js +1 -1
  228. package/lib/utils/attachmentAdpator.js +3 -1
  229. package/lib/utils/autobind.js +1 -1
  230. package/lib/utils/columnsSplit.js +1 -1
  231. package/lib/utils/dataMapping.js +1 -1
  232. package/lib/utils/date.js +1 -1
  233. package/lib/utils/debug.js +1 -1
  234. package/lib/utils/decodeEntity.js +1 -1
  235. package/lib/utils/dom.js +1 -1
  236. package/lib/utils/errors.js +1 -1
  237. package/lib/utils/escapeHtml.js +1 -1
  238. package/lib/utils/filter-schema.d.ts +2 -1
  239. package/lib/utils/filter-schema.js +14 -4
  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.d.ts +2 -2
  247. package/lib/utils/helper.js +36 -28
  248. package/lib/utils/highlight.js +1 -1
  249. package/lib/utils/icon.js +1 -1
  250. package/lib/utils/image.js +1 -1
  251. package/lib/utils/isPureVariable.js +1 -1
  252. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  253. package/lib/utils/keyToPath.js +1 -1
  254. package/lib/utils/makeSorter.js +1 -1
  255. package/lib/utils/math.js +8 -5
  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 +15 -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/renderer-event.d.ts +7 -0
  266. package/lib/utils/renderer-event.js +30 -18
  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 +12 -15
  277. package/lib/utils/style.js +3 -2
  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/validations.js +1 -1
  285. package/package.json +3 -3
package/lib/store/form.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -40,6 +40,7 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
40
40
  joinValues: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
41
41
  extractValue: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
42
42
  options: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any[], any[], any[]>, [undefined]>;
43
+ optionsRaw: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any[], any[], any[]>, [undefined]>;
43
44
  expressionsInOptions: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
44
45
  selectFirst: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
45
46
  autoFill: import("mobx-state-tree").IType<any, any, any>;
@@ -55,6 +56,8 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
55
56
  inputGroupControl: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
56
57
  colIndex: import("mobx-state-tree").IType<any, any, any>;
57
58
  rowIndex: import("mobx-state-tree").IType<any, any, any>;
59
+ pagination: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
60
+ accumulatedOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any[], any[], any[]>, [undefined]>;
58
61
  }, {
59
62
  readonly parentStore: any;
60
63
  readonly __: any;
@@ -75,13 +78,21 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
75
78
  readonly valid: boolean;
76
79
  readonly errClassNames: string;
77
80
  readonly lastSelectValue: string;
81
+ /** 数据源接口数据是否开启分页 */
82
+ readonly enableSourcePagination: boolean;
83
+ /** 数据源接口开启分页时当前页码 */
84
+ readonly sourcePageNum: number;
85
+ /** 数据源接口开启分页时每页显示条数 */
86
+ readonly sourcePerPageNum: number;
87
+ /** 数据源接口开启分页时数据总条数 */
88
+ readonly sourceTotalNum: number;
78
89
  getSelectedOptions: (value?: any, nodeValueArray?: any[] | undefined) => any;
79
90
  splitExtraValue(value: any): any[];
80
91
  getMergedData(data: any): any;
81
92
  } & {
82
93
  focus: () => void;
83
94
  blur: () => void;
84
- config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl }: {
95
+ config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
85
96
  extraName?: string | undefined;
86
97
  required?: boolean | undefined;
87
98
  unique?: boolean | undefined;
@@ -114,6 +125,11 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
114
125
  name: string;
115
126
  path: string;
116
127
  } | undefined;
128
+ pagination?: {
129
+ enable?: boolean | undefined;
130
+ page?: number | undefined;
131
+ perPage?: number | undefined;
132
+ } | undefined;
117
133
  }) => void;
118
134
  validate: (data: Object, hook?: any, customRules?: {
119
135
  [propName: string]: any;
@@ -124,10 +140,16 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
124
140
  rule: string;
125
141
  })[], tag?: string) => void;
126
142
  clearError: (tag?: string) => void;
143
+ setPagination: (params: {
144
+ page?: number | undefined;
145
+ perPage?: number | undefined;
146
+ total?: number | undefined;
147
+ }) => void;
127
148
  setOptions: (options: Array<object>, onChange?: ((value: any) => void) | undefined, data?: Object) => void;
128
149
  loadOptions: (api: Api, data?: object, config?: (fetchOptions & {
129
150
  extendsOptions?: boolean | undefined;
130
151
  }) | undefined, clearValue?: boolean, onChange?: ((value: any) => void) | undefined, setErrorFlag?: boolean) => Promise<Payload | null>;
152
+ loadOptionsFromDataScope: (source: string, ctx: Record<string, any>, onChange?: ((value: any) => void) | undefined) => any[];
131
153
  deferLoadOptions: (option: any, api: Api, data?: object, config?: fetchOptions | undefined) => Promise<Payload | null>;
132
154
  deferLoadLeftOptions: (option: any, leftOptions: any, api: Api, data?: object, config?: fetchOptions | undefined) => Promise<Payload | null>;
133
155
  expandTreeOptions: (nodePathArr: any[], api: Api, data?: object, config?: fetchOptions | undefined) => Promise<Payload | null | void>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -10,10 +10,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
  var tslib = require('tslib');
11
11
  var mobxStateTree = require('mobx-state-tree');
12
12
  var isEqualWith = require('lodash/isEqualWith');
13
+ var uniqWith = require('lodash/uniqWith');
13
14
  var form = require('./form.js');
14
15
  var validations = require('../utils/validations.js');
15
16
  var combo = require('./combo.js');
16
17
  var tpl = require('../utils/tpl.js');
18
+ require('amis-formula');
19
+ require('moment');
20
+ var object = require('../utils/object.js');
21
+ var resolveVariableAndFilter = require('../utils/resolveVariableAndFilter.js');
22
+ var dataMapping = require('../utils/dataMapping.js');
23
+ require('../utils/filter.js');
17
24
  var api = require('../utils/api.js');
18
25
  var findIndex = require('lodash/findIndex');
19
26
  var helper = require('../utils/helper.js');
@@ -25,12 +32,11 @@ var node = require('./node.js');
25
32
  var manager = require('./manager.js');
26
33
  var normalizeOptions = require('../utils/normalizeOptions.js');
27
34
  var optionValueCompare = require('../utils/optionValueCompare.js');
28
- var dataMapping = require('../utils/dataMapping.js');
29
- var object = require('../utils/object.js');
30
35
 
31
36
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
32
37
 
33
38
  var isEqualWith__default = /*#__PURE__*/_interopDefaultLegacy(isEqualWith);
39
+ var uniqWith__default = /*#__PURE__*/_interopDefaultLegacy(uniqWith);
34
40
  var findIndex__default = /*#__PURE__*/_interopDefaultLegacy(findIndex);
35
41
  var find__default = /*#__PURE__*/_interopDefaultLegacy(find);
36
42
  var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
@@ -80,6 +86,7 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
80
86
  joinValues: true,
81
87
  extractValue: false,
82
88
  options: mobxStateTree.types.optional(mobxStateTree.types.frozen(), []),
89
+ optionsRaw: mobxStateTree.types.optional(mobxStateTree.types.frozen(), []),
83
90
  expressionsInOptions: false,
84
91
  selectFirst: false,
85
92
  autoFill: mobxStateTree.types.frozen(),
@@ -95,7 +102,18 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
95
102
  /** 当前表单项所属的InputGroup父元素, 用于收集InputGroup的子元素 */
96
103
  inputGroupControl: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {}),
97
104
  colIndex: mobxStateTree.types.frozen(),
98
- rowIndex: mobxStateTree.types.frozen()
105
+ rowIndex: mobxStateTree.types.frozen(),
106
+ /** Transfer组件分页模式 */
107
+ pagination: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {
108
+ enable: false,
109
+ /** 当前页数 */
110
+ page: 1,
111
+ /** 每页显示条数 */
112
+ perPage: 10,
113
+ /** 总条数 */
114
+ total: 0
115
+ }),
116
+ accumulatedOptions: mobxStateTree.types.optional(mobxStateTree.types.frozen(), [])
99
117
  })
100
118
  .views(function (self) {
101
119
  function getForm() {
@@ -146,6 +164,25 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
146
164
  get lastSelectValue() {
147
165
  return getLastOptionValue();
148
166
  },
167
+ /** 数据源接口数据是否开启分页 */
168
+ get enableSourcePagination() {
169
+ return !!self.pagination.enable;
170
+ },
171
+ /** 数据源接口开启分页时当前页码 */
172
+ get sourcePageNum() {
173
+ var _a;
174
+ return (_a = self.pagination.page) !== null && _a !== void 0 ? _a : 1;
175
+ },
176
+ /** 数据源接口开启分页时每页显示条数 */
177
+ get sourcePerPageNum() {
178
+ var _a;
179
+ return (_a = self.pagination.perPage) !== null && _a !== void 0 ? _a : 10;
180
+ },
181
+ /** 数据源接口开启分页时数据总条数 */
182
+ get sourceTotalNum() {
183
+ var _a;
184
+ return (_a = self.pagination.total) !== null && _a !== void 0 ? _a : 0;
185
+ },
149
186
  getSelectedOptions: function (value, nodeValueArray) {
150
187
  if (value === void 0) { value = self.tmpValue; }
151
188
  // 查看是否命中缓存
@@ -233,7 +270,7 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
233
270
  var dialogCallbacks = new SimpleMap.SimpleMap();
234
271
  var loadAutoUpdateCancel = null;
235
272
  function config(_a) {
236
- var extraName = _a.extraName, required = _a.required, unique = _a.unique; _a.value; var isValueSchemaExp = _a.isValueSchemaExp, rules = _a.rules, messages = _a.messages, delimiter = _a.delimiter, multiple = _a.multiple, valueField = _a.valueField, labelField = _a.labelField, joinValues = _a.joinValues, extractValue = _a.extractValue, type = _a.type, id = _a.id, selectFirst = _a.selectFirst, autoFill = _a.autoFill, clearValueOnHidden = _a.clearValueOnHidden, validateApi = _a.validateApi, maxLength = _a.maxLength, minLength = _a.minLength, validateOnChange = _a.validateOnChange, label = _a.label, inputGroupControl = _a.inputGroupControl;
273
+ var extraName = _a.extraName, required = _a.required, unique = _a.unique; _a.value; var isValueSchemaExp = _a.isValueSchemaExp, rules = _a.rules, messages = _a.messages, delimiter = _a.delimiter, multiple = _a.multiple, valueField = _a.valueField, labelField = _a.labelField, joinValues = _a.joinValues, extractValue = _a.extractValue, type = _a.type, id = _a.id, selectFirst = _a.selectFirst, autoFill = _a.autoFill, clearValueOnHidden = _a.clearValueOnHidden, validateApi = _a.validateApi, maxLength = _a.maxLength, minLength = _a.minLength, validateOnChange = _a.validateOnChange, label = _a.label, inputGroupControl = _a.inputGroupControl, pagination = _a.pagination;
237
274
  if (typeof rules === 'string') {
238
275
  rules = validations.str2rules(rules);
239
276
  }
@@ -265,6 +302,14 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
265
302
  object.isObject(inputGroupControl) &&
266
303
  (inputGroupControl === null || inputGroupControl === void 0 ? void 0 : inputGroupControl.name) != null &&
267
304
  (self.inputGroupControl = inputGroupControl);
305
+ if (pagination && object.isObject(pagination) && !!pagination.enable) {
306
+ self.pagination = {
307
+ enable: true,
308
+ page: pagination.page ? pagination.page || 1 : 1,
309
+ perPage: pagination.perPage ? pagination.perPage || 10 : 10,
310
+ total: 0
311
+ };
312
+ }
268
313
  if (typeof rules !== 'undefined' ||
269
314
  typeof required !== 'undefined' ||
270
315
  typeof minLength === 'number' ||
@@ -295,7 +340,7 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
295
340
  }
296
341
  var validateCancel = null;
297
342
  var validate = mobxStateTree.flow(function validate(data, hook, customRules) {
298
- var json, combo, group;
343
+ var json, err_1, combo, group;
299
344
  var _a;
300
345
  var _b, _c, _d, _e, _f;
301
346
  return tslib.__generator(this, function (_g) {
@@ -313,24 +358,33 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
313
358
  _g.label = 2;
314
359
  case 2:
315
360
  addError(validations.validate(self.tmpValue, data, customRules ? validations.str2rules(customRules) : self.rules, self.messages, self.__));
316
- if (!(!self.errors.length && api.isEffectiveApi(self.validateApi, data))) return [3 /*break*/, 4];
361
+ if (!(!self.errors.length && api.isEffectiveApi(self.validateApi, data))) return [3 /*break*/, 6];
317
362
  if (validateCancel) {
318
363
  validateCancel();
319
364
  validateCancel = null;
320
365
  }
366
+ _g.label = 3;
367
+ case 3:
368
+ _g.trys.push([3, 5, , 6]);
321
369
  return [4 /*yield*/, mobxStateTree.getEnv(self).fetcher(self.validateApi,
322
370
  /** 如果配置validateApi,需要将用户最新输入同步到数据域内 */
323
371
  object.createObject(data, (_a = {}, _a[self.name] = self.tmpValue, _a)), {
324
- cancelExecutor: function (executor) { return (validateCancel = executor); }
372
+ cancelExecutor: function (executor) {
373
+ return (validateCancel = executor);
374
+ }
325
375
  })];
326
- case 3:
376
+ case 4:
327
377
  json = _g.sent();
328
378
  validateCancel = null;
329
379
  if (!json.ok && json.status === 422 && json.errors) {
330
380
  addError(String((_d = (_c = (_b = self.validateApi) === null || _b === void 0 ? void 0 : _b.messages) === null || _c === void 0 ? void 0 : _c.failed) !== null && _d !== void 0 ? _d : (json.errors || json.msg || "\u8868\u5355\u9879\u300C".concat(self.name, "\u300D\u6821\u9A8C\u5931\u8D25"))));
331
381
  }
332
- _g.label = 4;
333
- case 4:
382
+ return [3 /*break*/, 6];
383
+ case 5:
384
+ err_1 = _g.sent();
385
+ addError(String(err_1));
386
+ return [3 /*break*/, 6];
387
+ case 6:
334
388
  self.validated = true;
335
389
  if (self.unique && ((_f = (_e = self.form) === null || _e === void 0 ? void 0 : _e.parentStore) === null || _f === void 0 ? void 0 : _f.storeType) === 'ComboStore') {
336
390
  combo = self.form.parentStore;
@@ -402,6 +456,12 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
402
456
  finally { if (e_1) throw e_1.error; }
403
457
  }
404
458
  }
459
+ function setPagination(params) {
460
+ var _a = params || {}, page = _a.page, perPage = _a.perPage, total = _a.total;
461
+ if (self.enableSourcePagination) {
462
+ self.pagination = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, self.pagination), (page != null && typeof page === 'number' ? { page: page } : {})), (perPage != null && typeof perPage === 'number' ? { perPage: perPage } : {})), (total != null && typeof total === 'number' ? { total: total } : {}));
463
+ }
464
+ }
405
465
  function setOptions(options, onChange, data) {
406
466
  if (!Array.isArray(options)) {
407
467
  return;
@@ -409,6 +469,14 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
409
469
  options = helper.filterTree(options, function (item) { return item; });
410
470
  var originOptions = self.options.concat();
411
471
  self.options = options;
472
+ /** 开启分页后当前选项内容需要累加 */
473
+ self.accumulatedOptions = self.enableSourcePagination
474
+ ? uniqWith__default["default"](tslib.__spreadArray(tslib.__spreadArray([], tslib.__read(originOptions), false), tslib.__read(options), false), function (lhs, rhs) {
475
+ var _a, _b;
476
+ return lhs[(_a = self.valueField) !== null && _a !== void 0 ? _a : 'value'] ===
477
+ rhs[(_b = self.valueField) !== null && _b !== void 0 ? _b : 'value'];
478
+ })
479
+ : options;
412
480
  syncOptions(originOptions, data);
413
481
  var selectedOptions;
414
482
  if (onChange &&
@@ -498,12 +566,12 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
498
566
  });
499
567
  var loadOptions = mobxStateTree.flow(function getInitData(api, data, config, clearValue, onChange, setErrorFlag) {
500
568
  var json, options;
501
- var _a, _b, _c;
502
- return tslib.__generator(this, function (_d) {
503
- switch (_d.label) {
569
+ var _a, _b, _c, _d, _e, _f, _g;
570
+ return tslib.__generator(this, function (_h) {
571
+ switch (_h.label) {
504
572
  case 0: return [4 /*yield*/, fetchOptions(api, data, config, setErrorFlag)];
505
573
  case 1:
506
- json = _d.sent();
574
+ json = _h.sent();
507
575
  if (!json) {
508
576
  return [2 /*return*/, null];
509
577
  }
@@ -515,6 +583,9 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
515
583
  json.data ||
516
584
  [];
517
585
  options = normalizeOptions.normalizeOptions(options, undefined, self.valueField);
586
+ if (self.enableSourcePagination) {
587
+ self.pagination = tslib.__assign(tslib.__assign({}, self.pagination), { page: parseInt((_d = json.data) === null || _d === void 0 ? void 0 : _d.page, 10) || 1, total: parseInt((_f = (_e = json.data) === null || _e === void 0 ? void 0 : _e.total) !== null && _f !== void 0 ? _f : (_g = json.data) === null || _g === void 0 ? void 0 : _g.count, 10) || 0 });
588
+ }
518
589
  if ((config === null || config === void 0 ? void 0 : config.extendsOptions) && self.selectedOptions.length > 0) {
519
590
  self.selectedOptions.forEach(function (item) {
520
591
  var exited = helper.findTree(options, optionValueCompare.optionValueCompare(item, self.valueField || 'value'), {
@@ -539,6 +610,22 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
539
610
  }
540
611
  });
541
612
  });
613
+ /**
614
+ * 从数据域加载选项数据源,注意这里默认source变量解析后是全量的数据源
615
+ */
616
+ function loadOptionsFromDataScope(source, ctx, onChange) {
617
+ var options = resolveVariableAndFilter.resolveVariableAndFilter(source, ctx, '| raw');
618
+ if (!Array.isArray(options)) {
619
+ return [];
620
+ }
621
+ options = normalizeOptions.normalizeOptions(options, undefined, self.valueField);
622
+ if (self.enableSourcePagination) {
623
+ self.pagination = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, self.pagination), ((ctx === null || ctx === void 0 ? void 0 : ctx.page) ? { page: ctx === null || ctx === void 0 ? void 0 : ctx.page } : {})), ((ctx === null || ctx === void 0 ? void 0 : ctx.perPage) ? { perPage: ctx === null || ctx === void 0 ? void 0 : ctx.perPage } : {})), { total: options.length });
624
+ options = options.slice((self.pagination.page - 1) * self.pagination.perPage, self.pagination.page * self.pagination.perPage);
625
+ }
626
+ setOptions(options, onChange, ctx);
627
+ return options;
628
+ }
542
629
  var loadAutoUpdateData = mobxStateTree.flow(function getAutoUpdateData(api, data, silent) {
543
630
  var json, result;
544
631
  var _a, _b;
@@ -960,8 +1047,10 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
960
1047
  setError: setError,
961
1048
  addError: addError,
962
1049
  clearError: clearError,
1050
+ setPagination: setPagination,
963
1051
  setOptions: setOptions,
964
1052
  loadOptions: loadOptions,
1053
+ loadOptionsFromDataScope: loadOptionsFromDataScope,
965
1054
  deferLoadOptions: deferLoadOptions,
966
1055
  deferLoadLeftOptions: deferLoadLeftOptions,
967
1056
  expandTreeOptions: expandTreeOptions,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/store/list.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/store/node.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/store/root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5