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
@@ -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
 
@@ -7,6 +7,7 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
+ var tslib = require('tslib');
10
11
  var mobxStateTree = require('mobx-state-tree');
11
12
  var iRenderer = require('./iRenderer.js');
12
13
  var manager = require('./manager.js');
@@ -39,7 +40,8 @@ var ComboStore = iRenderer.iRendererStore
39
40
  minLength: 0,
40
41
  maxLength: 0,
41
42
  length: 0,
42
- activeKey: 0
43
+ activeKey: 0,
44
+ memberValidMap: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {})
43
45
  })
44
46
  .views(function (self) {
45
47
  function getForms() {
@@ -148,13 +150,18 @@ var ComboStore = iRenderer.iRendererStore
148
150
  function setActiveKey(key) {
149
151
  self.activeKey = key;
150
152
  }
153
+ function setMemberValid(valid, index) {
154
+ var _a;
155
+ self.memberValidMap = tslib.__assign(tslib.__assign({}, self.memberValidMap), (_a = {}, _a[index] = valid, _a));
156
+ }
151
157
  return {
152
158
  config: config,
153
159
  setActiveKey: setActiveKey,
154
160
  bindUniuqueItem: bindUniuqueItem,
155
161
  unBindUniuqueItem: unBindUniuqueItem,
156
162
  addForm: addForm,
157
- onChildStoreDispose: onChildStoreDispose
163
+ onChildStoreDispose: onChildStoreDispose,
164
+ setMemberValid: setMemberValid
158
165
  };
159
166
  });
160
167
 
@@ -1,11 +1,17 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
2
  import { Api, fetchOptions, ActionObject } from '../types';
3
+ import type { MatchSorterOptions } from 'match-sorter';
3
4
  interface MatchFunc {
4
5
  (items: any, itemsRaw: any,
5
6
  /** 相关配置 */
6
7
  options?: {
7
8
  query: Record<string, any>;
8
9
  columns: any;
10
+ /**
11
+ * match-sorter 匹配函数
12
+ * @doc https://github.com/kentcdodds/match-sorter
13
+ */
14
+ matchSorter: (items: any[], value: string, options?: MatchSorterOptions<any>) => any[];
9
15
  }): any;
10
16
  }
11
17
  export declare const CRUDStore: import("mobx-state-tree").IModelType<{
@@ -120,7 +126,7 @@ export declare const CRUDStore: import("mobx-state-tree").IModelType<{
120
126
  columns?: Array<any>;
121
127
  isTable2?: Boolean;
122
128
  }) => Promise<any>;
123
- changePage: (page: number, perPage?: number | string) => void;
129
+ changePage: (page: number | string, perPage?: number | string) => void;
124
130
  changePerPage: (perPage: number | string) => void;
125
131
  selectAction: (action: ActionObject) => void;
126
132
  saveRemote: (api: Api, data?: object, options?: fetchOptions) => Promise<any>;
@@ -138,6 +144,8 @@ export declare const CRUDStore: import("mobx-state-tree").IModelType<{
138
144
  api?: Api | undefined;
139
145
  data?: any;
140
146
  filename?: string | undefined;
147
+ pageField?: string | undefined;
148
+ perPageField?: string | undefined;
141
149
  }) => Promise<void>;
142
150
  updateColumns: (columns: Array<any>) => void;
143
151
  updateTotal: (total: number) => void;
package/lib/store/crud.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
 
@@ -99,7 +99,24 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
99
99
  var originQuery = self.query;
100
100
  var query = replace
101
101
  ? tslib.__assign({}, values) : tslib.__assign(tslib.__assign({}, originQuery), values);
102
- if (helper.isObjectShallowModified(originQuery, query, false)) {
102
+ /**
103
+ * 非严格模式下也需要严格比较的CASE
104
+ * @reference https://tc39.es/ecma262/#sec-islooselyequal
105
+ */
106
+ var exceptedLooselyRules = [
107
+ [0, ''],
108
+ [false, ''],
109
+ [false, '0'],
110
+ [false, 0],
111
+ [true, 1],
112
+ [true, '1']
113
+ ];
114
+ if (helper.isObjectShallowModified(originQuery, query, function (lhs, rhs) {
115
+ if (exceptedLooselyRules.some(function (rule) { return rule.includes(lhs) && rule.includes(rhs); })) {
116
+ return lhs !== rhs;
117
+ }
118
+ return lhs != rhs;
119
+ })) {
103
120
  if (query[pageField || 'page']) {
104
121
  self.page = parseInt(query[pageField || 'page'], 10);
105
122
  }
@@ -131,7 +148,8 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
131
148
  if (matchFunc && typeof matchFunc === 'function') {
132
149
  items_1 = matchFunc(items_1, self.data.itemsRaw, {
133
150
  query: self.query,
134
- columns: options.columns
151
+ columns: options.columns,
152
+ matchSorter: matchSorter.matchSorter
135
153
  });
136
154
  }
137
155
  else {
@@ -257,8 +275,11 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
257
275
  }
258
276
  data_2 = tslib.__assign(tslib.__assign(tslib.__assign({}, (api$1.replaceData ? {} : self.pristine)), { items: rowsData, count: count, total: total }), rest);
259
277
  if (options.loadDataOnce) {
260
- // 记录原始集合,后续可能基于原始数据做排序查找。
261
- data_2.itemsRaw = oItems || oRows;
278
+ /**
279
+ * 1. 记录原始集合,后续可能基于原始数据做排序查找。
280
+ * 2. 接口返回中没有 items 和 rows 字段,则直接用查到的数据。
281
+ */
282
+ data_2.itemsRaw = oItems || oRows || rowsData.concat();
262
283
  filteredItems_1 = rowsData.concat();
263
284
  if (Array.isArray(options.columns)) {
264
285
  options.columns.forEach(function (column) {
@@ -342,11 +363,13 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
342
363
  });
343
364
  });
344
365
  function changePage(page, perPage) {
345
- self.page = page;
366
+ var pageNum = typeof page !== 'number' ? parseInt(page, 10) : page;
367
+ self.page = isNaN(pageNum) ? 1 : pageNum;
346
368
  perPage && changePerPage(perPage);
347
369
  }
348
370
  function changePerPage(perPage) {
349
- self.perPage = parseInt(perPage, 10);
371
+ var perPageNum = typeof perPage !== 'number' ? parseInt(perPage, 10) : perPage;
372
+ self.perPage = isNaN(perPageNum) ? 10 : perPageNum;
350
373
  }
351
374
  function selectAction(action) {
352
375
  self.selectedAction = action;
@@ -444,7 +467,8 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
444
467
  if (matchFunc && typeof matchFunc === 'function') {
445
468
  items = matchFunc(items, items.concat(), {
446
469
  query: self.query,
447
- columns: options.columns
470
+ columns: options.columns,
471
+ matchSorter: matchSorter.matchSorter
448
472
  });
449
473
  }
450
474
  else {
@@ -460,6 +484,7 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
460
484
  if (value.length > 0) {
461
485
  var arr_3 = tslib.__spreadArray([], tslib.__read(items), false);
462
486
  var arrItems_3 = [];
487
+ /** 搜索 query 值为数组的情况 */
463
488
  value.forEach(function (item) {
464
489
  arrItems_3 = tslib.__spreadArray(tslib.__spreadArray([], tslib.__read(arrItems_3), false), tslib.__read(matchSorter.matchSorter(arr_3, item, {
465
490
  keys: [key],
@@ -485,7 +510,9 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
485
510
  var dir = /desc/i.test(self.query.orderDir) ? -1 : 1;
486
511
  items = helper.sortArray(items, self.query.orderBy, dir);
487
512
  }
488
- var data = tslib.__assign(tslib.__assign({}, self.pristine), { items: items.slice((self.page - 1) * self.perPage, self.page * self.perPage), count: items.length, total: items.length });
513
+ var data = tslib.__assign(tslib.__assign({}, self.pristine), { items: items.length > self.perPage
514
+ ? items.slice((self.page - 1) * self.perPage, self.page * self.perPage)
515
+ : items, count: items.length, total: items.length });
489
516
  self.total = parseInt((_a = data.total) !== null && _a !== void 0 ? _a : data.count, 10) || 0;
490
517
  self.items.replace(items);
491
518
  self.reInitData(data);
@@ -493,19 +520,27 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
493
520
  var exportAsCSV = function (options) {
494
521
  if (options === void 0) { options = {}; }
495
522
  return tslib.__awaiter(void 0, void 0, void 0, function () {
496
- var items, filename, env, res;
497
- return tslib.__generator(this, function (_a) {
498
- switch (_a.label) {
523
+ var items, filename, pageField, perPageField, env, ctx, res;
524
+ var _a;
525
+ return tslib.__generator(this, function (_b) {
526
+ switch (_b.label) {
499
527
  case 0:
500
528
  items = options.loadDataOnce ? self.data.itemsRaw : self.data.items;
501
529
  filename = options.filename
502
530
  ? tpl.filter(options.filename, options.data, '| raw')
503
531
  : 'data';
504
532
  if (!options.api) return [3 /*break*/, 2];
533
+ pageField = options.pageField || 'page';
534
+ perPageField = options.perPageField || 'perPage';
505
535
  env = mobxStateTree.getEnv(self);
506
- return [4 /*yield*/, env.fetcher(options.api, options.data)];
536
+ ctx = object.createObject(self.data, tslib.__assign(tslib.__assign(tslib.__assign({}, self.query), options.data), (_a = {}, _a[pageField] = self.page || 1, _a[perPageField] = self.perPage || 10, _a)));
537
+ return [4 /*yield*/, env.fetcher(options.api, ctx, {
538
+ autoAppend: true,
539
+ pageField: pageField,
540
+ perPageField: perPageField
541
+ })];
507
542
  case 1:
508
- res = _a.sent();
543
+ res = _b.sent();
509
544
  if (!res.data) {
510
545
  return [2 /*return*/];
511
546
  }
@@ -515,7 +550,7 @@ var CRUDStore = service.ServiceStore.named('CRUDStore')
515
550
  else {
516
551
  items = res.data.rows || res.data.items;
517
552
  }
518
- _a.label = 2;
553
+ _b.label = 2;
519
554
  case 2:
520
555
  Promise.resolve().then(function() {return new Promise(function(fullfill) {require(['papaparse'], function(mod) {fullfill(tslib.__importStar(mod))})})}).then(function (papaparse) {
521
556
  var e_4, _a;