amis-core 3.4.2 → 3.5.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 (277) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +12 -2
  3. package/esm/SchemaRenderer.js +1 -1
  4. package/esm/Scoped.js +2 -2
  5. package/esm/StatusScoped.js +1 -1
  6. package/esm/WithRootStore.js +1 -1
  7. package/esm/WithStore.js +8 -4
  8. package/esm/actions/Action.js +1 -1
  9. package/esm/actions/AjaxAction.js +1 -1
  10. package/esm/actions/BreakAction.js +1 -1
  11. package/esm/actions/BroadcastAction.js +1 -1
  12. package/esm/actions/CmptAction.d.ts +1 -0
  13. package/esm/actions/CmptAction.js +23 -23
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +2 -2
  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/LinkAction.js +1 -1
  21. package/esm/actions/LoopAction.js +1 -1
  22. package/esm/actions/PageAction.js +1 -1
  23. package/esm/actions/ParallelAction.js +1 -1
  24. package/esm/actions/StatusAction.js +1 -1
  25. package/esm/actions/SwitchAction.js +1 -1
  26. package/esm/actions/ToastAction.js +1 -1
  27. package/esm/components/CustomStyle.js +9 -9
  28. package/esm/components/LazyComponent.js +1 -1
  29. package/esm/components/Overlay.js +2 -1
  30. package/esm/components/PopOver.js +2 -2
  31. package/esm/env.d.ts +11 -3
  32. package/esm/env.js +1 -1
  33. package/esm/envOverwrite.js +1 -1
  34. package/esm/factory.js +1 -3
  35. package/esm/index.d.ts +1 -0
  36. package/esm/index.js +4 -4
  37. package/esm/locale.js +1 -1
  38. package/esm/polyfills.js +1 -1
  39. package/esm/renderers/Form.js +10 -4
  40. package/esm/renderers/Item.d.ts +2 -6
  41. package/esm/renderers/Item.js +11 -17
  42. package/esm/renderers/Options.js +2 -2
  43. package/esm/renderers/Placeholder.js +1 -1
  44. package/esm/renderers/builtin.js +1 -1
  45. package/esm/renderers/register.js +1 -1
  46. package/esm/renderers/wrapControl.js +41 -22
  47. package/esm/store/app.js +7 -5
  48. package/esm/store/combo.d.ts +120 -0
  49. package/esm/store/combo.js +3 -2
  50. package/esm/store/crud.d.ts +13 -2
  51. package/esm/store/crud.js +88 -23
  52. package/esm/store/form.d.ts +50 -0
  53. package/esm/store/form.js +5 -2
  54. package/esm/store/formItem.d.ts +1 -0
  55. package/esm/store/formItem.js +18 -6
  56. package/esm/store/iRenderer.js +2 -2
  57. package/esm/store/index.js +1 -1
  58. package/esm/store/list.js +1 -1
  59. package/esm/store/manager.js +1 -1
  60. package/esm/store/modal.js +1 -1
  61. package/esm/store/node.js +1 -1
  62. package/esm/store/pagination.js +1 -1
  63. package/esm/store/root.js +2 -2
  64. package/esm/store/service.js +1 -1
  65. package/esm/store/status.js +1 -1
  66. package/esm/store/table.d.ts +454 -83
  67. package/esm/store/table.js +114 -74
  68. package/esm/store/table2.d.ts +1 -1
  69. package/esm/store/table2.js +5 -4
  70. package/esm/theme.js +1 -1
  71. package/esm/types.d.ts +6 -0
  72. package/esm/utils/Animation.js +1 -1
  73. package/esm/utils/ColorScale.js +1 -1
  74. package/esm/utils/DataSchema.js +1 -1
  75. package/esm/utils/DataScope.js +1 -1
  76. package/esm/utils/RootClose.js +1 -1
  77. package/esm/utils/SimpleMap.js +1 -1
  78. package/esm/utils/api.js +2 -1
  79. package/esm/utils/arraySlice.js +1 -1
  80. package/esm/utils/attachmentAdpator.d.ts +2 -1
  81. package/esm/utils/attachmentAdpator.js +17 -11
  82. package/esm/utils/autobind.js +1 -1
  83. package/esm/utils/columnsSplit.js +1 -1
  84. package/esm/utils/dataMapping.js +1 -1
  85. package/esm/utils/date.js +1 -1
  86. package/esm/utils/debug.d.ts +1 -1
  87. package/esm/utils/debug.js +5 -3
  88. package/esm/utils/decodeEntity.js +1 -1
  89. package/esm/utils/dom.js +1 -1
  90. package/esm/utils/errors.js +1 -1
  91. package/esm/utils/escapeHtml.js +1 -1
  92. package/esm/utils/filter-schema.d.ts +8 -0
  93. package/esm/utils/filter-schema.js +32 -14
  94. package/esm/utils/filter.js +1 -1
  95. package/esm/utils/formatDuration.js +1 -1
  96. package/esm/utils/formula.js +1 -1
  97. package/esm/utils/getVariable.js +1 -1
  98. package/esm/utils/grammar.js +1 -1
  99. package/esm/utils/handleAction.js +2 -1
  100. package/esm/utils/helper.d.ts +15 -1
  101. package/esm/utils/helper.js +59 -12
  102. package/esm/utils/highlight.js +1 -1
  103. package/esm/utils/icon.js +1 -1
  104. package/esm/utils/image.js +1 -1
  105. package/esm/utils/isPureVariable.js +1 -1
  106. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  107. package/esm/utils/keyToPath.js +1 -1
  108. package/esm/utils/makeSorter.js +1 -1
  109. package/esm/utils/math.js +1 -1
  110. package/esm/utils/memoryParse.js +1 -1
  111. package/esm/utils/normalizeLink.js +1 -1
  112. package/esm/utils/normalizeOptions.js +1 -1
  113. package/esm/utils/object.js +1 -1
  114. package/esm/utils/offset.js +1 -1
  115. package/esm/utils/offsetParent.js +1 -1
  116. package/esm/utils/optionValueCompare.js +1 -1
  117. package/esm/utils/position.js +1 -1
  118. package/esm/utils/prettyBytes.js +1 -1
  119. package/esm/utils/renderer-event.js +1 -1
  120. package/esm/utils/replaceText.d.ts +1 -1
  121. package/esm/utils/replaceText.js +9 -4
  122. package/esm/utils/resize-sensor.js +1 -1
  123. package/esm/utils/resolveCondition.js +1 -1
  124. package/esm/utils/resolveVariable.js +1 -1
  125. package/esm/utils/resolveVariableAndFilter.js +1 -1
  126. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  127. package/esm/utils/scrollPosition.js +1 -1
  128. package/esm/utils/string2regExp.js +1 -1
  129. package/esm/utils/stripNumber.js +1 -1
  130. package/esm/utils/style-helper.js +5 -4
  131. package/esm/utils/style.js +1 -1
  132. package/esm/utils/toNumber.js +1 -1
  133. package/esm/utils/tokenize.js +1 -1
  134. package/esm/utils/tpl-builtin.js +1 -1
  135. package/esm/utils/tpl-lodash.js +1 -1
  136. package/esm/utils/tpl.js +1 -1
  137. package/esm/utils/uncontrollable.js +1 -1
  138. package/esm/utils/validations.js +1 -1
  139. package/lib/Root.js +1 -1
  140. package/lib/RootRenderer.js +12 -2
  141. package/lib/SchemaRenderer.js +1 -1
  142. package/lib/Scoped.js +2 -2
  143. package/lib/StatusScoped.js +1 -1
  144. package/lib/WithRootStore.js +1 -1
  145. package/lib/WithStore.js +8 -4
  146. package/lib/actions/Action.js +1 -1
  147. package/lib/actions/AjaxAction.js +1 -1
  148. package/lib/actions/BreakAction.js +1 -1
  149. package/lib/actions/BroadcastAction.js +1 -1
  150. package/lib/actions/CmptAction.d.ts +1 -0
  151. package/lib/actions/CmptAction.js +23 -23
  152. package/lib/actions/ContinueAction.js +1 -1
  153. package/lib/actions/CopyAction.js +1 -1
  154. package/lib/actions/CustomAction.js +2 -2
  155. package/lib/actions/DialogAction.js +1 -1
  156. package/lib/actions/DrawerAction.js +1 -1
  157. package/lib/actions/EmailAction.js +1 -1
  158. package/lib/actions/LinkAction.js +1 -1
  159. package/lib/actions/LoopAction.js +1 -1
  160. package/lib/actions/PageAction.js +1 -1
  161. package/lib/actions/ParallelAction.js +1 -1
  162. package/lib/actions/StatusAction.js +1 -1
  163. package/lib/actions/SwitchAction.js +1 -1
  164. package/lib/actions/ToastAction.js +1 -1
  165. package/lib/components/CustomStyle.js +9 -9
  166. package/lib/components/LazyComponent.js +1 -1
  167. package/lib/components/Overlay.js +2 -1
  168. package/lib/components/PopOver.js +2 -2
  169. package/lib/env.d.ts +11 -3
  170. package/lib/env.js +1 -1
  171. package/lib/envOverwrite.js +1 -1
  172. package/lib/factory.js +1 -3
  173. package/lib/index.d.ts +1 -0
  174. package/lib/index.js +7 -2
  175. package/lib/locale.js +1 -1
  176. package/lib/polyfills.js +1 -1
  177. package/lib/renderers/Form.js +10 -4
  178. package/lib/renderers/Item.d.ts +2 -6
  179. package/lib/renderers/Item.js +11 -17
  180. package/lib/renderers/Options.js +2 -2
  181. package/lib/renderers/Placeholder.js +1 -1
  182. package/lib/renderers/builtin.js +1 -1
  183. package/lib/renderers/register.js +1 -1
  184. package/lib/renderers/wrapControl.js +41 -22
  185. package/lib/store/app.js +6 -4
  186. package/lib/store/combo.d.ts +144 -25
  187. package/lib/store/combo.js +3 -2
  188. package/lib/store/crud.d.ts +13 -2
  189. package/lib/store/crud.js +88 -23
  190. package/lib/store/form.d.ts +60 -11
  191. package/lib/store/form.js +5 -2
  192. package/lib/store/formItem.d.ts +1 -0
  193. package/lib/store/formItem.js +16 -4
  194. package/lib/store/iRenderer.js +2 -2
  195. package/lib/store/index.js +1 -1
  196. package/lib/store/list.js +1 -1
  197. package/lib/store/manager.js +1 -1
  198. package/lib/store/modal.js +1 -1
  199. package/lib/store/node.js +1 -1
  200. package/lib/store/pagination.js +1 -1
  201. package/lib/store/root.js +2 -2
  202. package/lib/store/service.js +1 -1
  203. package/lib/store/status.js +1 -1
  204. package/lib/store/table.d.ts +474 -104
  205. package/lib/store/table.js +112 -72
  206. package/lib/store/table2.d.ts +1 -1
  207. package/lib/store/table2.js +5 -4
  208. package/lib/theme.js +1 -1
  209. package/lib/types.d.ts +6 -0
  210. package/lib/utils/Animation.js +1 -1
  211. package/lib/utils/ColorScale.js +1 -1
  212. package/lib/utils/DataSchema.js +1 -1
  213. package/lib/utils/DataScope.js +1 -1
  214. package/lib/utils/RootClose.js +1 -1
  215. package/lib/utils/SimpleMap.js +1 -1
  216. package/lib/utils/api.js +2 -1
  217. package/lib/utils/arraySlice.js +1 -1
  218. package/lib/utils/attachmentAdpator.d.ts +2 -1
  219. package/lib/utils/attachmentAdpator.js +17 -11
  220. package/lib/utils/autobind.js +1 -1
  221. package/lib/utils/columnsSplit.js +1 -1
  222. package/lib/utils/dataMapping.js +1 -1
  223. package/lib/utils/date.js +1 -1
  224. package/lib/utils/debug.d.ts +1 -1
  225. package/lib/utils/debug.js +4 -2
  226. package/lib/utils/decodeEntity.js +1 -1
  227. package/lib/utils/dom.js +1 -1
  228. package/lib/utils/errors.js +1 -1
  229. package/lib/utils/escapeHtml.js +1 -1
  230. package/lib/utils/filter-schema.d.ts +8 -0
  231. package/lib/utils/filter-schema.js +31 -13
  232. package/lib/utils/filter.js +1 -1
  233. package/lib/utils/formatDuration.js +1 -1
  234. package/lib/utils/formula.js +1 -1
  235. package/lib/utils/getVariable.js +1 -1
  236. package/lib/utils/grammar.js +1 -1
  237. package/lib/utils/handleAction.js +2 -1
  238. package/lib/utils/helper.d.ts +15 -1
  239. package/lib/utils/helper.js +62 -11
  240. package/lib/utils/highlight.js +1 -1
  241. package/lib/utils/icon.js +1 -1
  242. package/lib/utils/image.js +1 -1
  243. package/lib/utils/isPureVariable.js +1 -1
  244. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  245. package/lib/utils/keyToPath.js +1 -1
  246. package/lib/utils/makeSorter.js +1 -1
  247. package/lib/utils/math.js +1 -1
  248. package/lib/utils/memoryParse.js +1 -1
  249. package/lib/utils/normalizeLink.js +1 -1
  250. package/lib/utils/normalizeOptions.js +1 -1
  251. package/lib/utils/object.js +1 -1
  252. package/lib/utils/offset.js +1 -1
  253. package/lib/utils/offsetParent.js +1 -1
  254. package/lib/utils/optionValueCompare.js +1 -1
  255. package/lib/utils/position.js +1 -1
  256. package/lib/utils/prettyBytes.js +1 -1
  257. package/lib/utils/renderer-event.js +1 -1
  258. package/lib/utils/replaceText.d.ts +1 -1
  259. package/lib/utils/replaceText.js +9 -4
  260. package/lib/utils/resize-sensor.js +1 -1
  261. package/lib/utils/resolveCondition.js +1 -1
  262. package/lib/utils/resolveVariable.js +1 -1
  263. package/lib/utils/resolveVariableAndFilter.js +1 -1
  264. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  265. package/lib/utils/scrollPosition.js +1 -1
  266. package/lib/utils/string2regExp.js +1 -1
  267. package/lib/utils/stripNumber.js +1 -1
  268. package/lib/utils/style-helper.js +6 -4
  269. package/lib/utils/style.js +1 -1
  270. package/lib/utils/toNumber.js +1 -1
  271. package/lib/utils/tokenize.js +1 -1
  272. package/lib/utils/tpl-builtin.js +1 -1
  273. package/lib/utils/tpl-lodash.js +1 -1
  274. package/lib/utils/tpl.js +1 -1
  275. package/lib/utils/uncontrollable.js +1 -1
  276. package/lib/utils/validations.js +1 -1
  277. package/package.json +4 -3
@@ -1,15 +1,14 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
- import { __assign, __spreadArray, __read, __values } from 'tslib';
6
+ import { __assign, __rest, __spreadArray, __read, __values } from 'tslib';
7
7
  import { types, getParent, isAlive } from 'mobx-state-tree';
8
8
  import { iRendererStore } from './iRenderer.js';
9
9
  import 'amis-formula';
10
10
  import 'moment';
11
11
  import { createObject, extendObject, isObject } from '../utils/object.js';
12
- import { isPureVariable } from '../utils/isPureVariable.js';
13
12
  import { resolveVariable } from '../utils/resolveVariable.js';
14
13
  import { resolveVariableAndFilter } from '../utils/resolveVariableAndFilter.js';
15
14
  import 'lodash/isPlainObject';
@@ -17,7 +16,7 @@ import '../utils/filter.js';
17
16
  import isEqual from 'lodash/isEqual';
18
17
  import find from 'lodash/find';
19
18
  import sortBy from 'lodash/sortBy';
20
- import { immutableExtends, flattenTree, findTree, eachTree, isVisible, hasVisibleExpression, isBreakpoint, difference, guid, sortArray } from '../utils/helper.js';
19
+ import { immutableExtends, flattenTree, findTree, eachTree, guid, isVisible, hasVisibleExpression, isBreakpoint, difference, sortArray } from '../utils/helper.js';
21
20
  import { evalExpression } from '../utils/tpl.js';
22
21
  import { getStoreById } from './manager.js';
23
22
 
@@ -25,6 +24,38 @@ import { getStoreById } from './manager.js';
25
24
  * 内部列的数量 '__checkme' | '__dragme' | '__expandme'
26
25
  */
27
26
  var PARTITION_INDEX = 3;
27
+ function initChildren(children, depth, pindex, parentId, path) {
28
+ if (path === void 0) { path = ''; }
29
+ depth += 1;
30
+ return children.map(function (item, index) {
31
+ var _a;
32
+ item = isObject(item)
33
+ ? item
34
+ : {
35
+ item: item
36
+ };
37
+ var id = (_a = item.__id) !== null && _a !== void 0 ? _a : guid();
38
+ return {
39
+ // id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),
40
+ id: String(id),
41
+ parentId: String(parentId),
42
+ key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
43
+ path: "".concat(path).concat(index),
44
+ depth: depth,
45
+ index: index,
46
+ newIndex: index,
47
+ pristine: item,
48
+ data: item,
49
+ defer: !!item.defer,
50
+ loaded: false,
51
+ loading: false,
52
+ rowSpans: {},
53
+ children: item && Array.isArray(item.children)
54
+ ? initChildren(item.children, depth, index, id, "".concat(path).concat(index, "."))
55
+ : []
56
+ };
57
+ });
58
+ }
28
59
  var Column = types
29
60
  .model('Column', {
30
61
  label: types.optional(types.frozen(), undefined),
@@ -37,7 +68,6 @@ var Column = types
37
68
  toggable: true,
38
69
  expandable: false,
39
70
  checkdisable: false,
40
- isPrimary: false,
41
71
  searchable: types.maybe(types.frozen()),
42
72
  enableSearch: true,
43
73
  sortable: false,
@@ -53,6 +83,13 @@ var Column = types
53
83
  remark: types.optional(types.frozen(), undefined),
54
84
  className: types.union(types.string, types.frozen())
55
85
  })
86
+ .views(function (self) { return ({
87
+ get isPrimary() {
88
+ var _a;
89
+ var table = getParent(self, 2);
90
+ return (((_a = table.filteredColumns.find(function (column) { return !column.type.startsWith('__'); })) === null || _a === void 0 ? void 0 : _a.id) === self.id);
91
+ }
92
+ }); })
56
93
  .actions(function (self) { return ({
57
94
  toggleToggle: function (min) {
58
95
  if (min === void 0) { min = 1; }
@@ -92,17 +129,27 @@ var Row = types
92
129
  rowSpans: types.frozen({}),
93
130
  index: types.number,
94
131
  newIndex: types.number,
95
- nth: 0,
96
132
  path: '',
97
- expandable: false,
98
133
  checkdisable: false,
99
134
  isHover: false,
100
135
  children: types.optional(types.array(types.late(function () { return Row; })), []),
136
+ defer: false,
137
+ loaded: false,
138
+ loading: false,
139
+ error: '',
101
140
  depth: types.number,
102
141
  appeared: true,
103
142
  lazyRender: false
104
143
  })
105
144
  .views(function (self) { return ({
145
+ get expandable() {
146
+ var table;
147
+ return !!((self && self.children.length) ||
148
+ (self && self.defer && !self.loaded) ||
149
+ ((table = getParent(self, self.depth * 2)) &&
150
+ table.footable &&
151
+ table.footableColumns.length));
152
+ },
106
153
  get checked() {
107
154
  return getParent(self, self.depth * 2).isSelected(self);
108
155
  },
@@ -230,30 +277,53 @@ var Row = types
230
277
  }
231
278
  });
232
279
  if (Array.isArray(data.children)) {
233
- var arr = data.children;
234
- var pool = arr.concat();
235
- // 把多的删了先
236
- if (self.children.length > arr.length) {
237
- self.children.splice(arr.length, self.children.length - arr.length);
280
+ this.replaceChildren(data.children);
281
+ }
282
+ },
283
+ replaceChildren: function (children) {
284
+ var arr = children;
285
+ var pool = arr.concat();
286
+ // 把多的删了先
287
+ if (self.children.length > arr.length) {
288
+ self.children.splice(arr.length, self.children.length - arr.length);
289
+ }
290
+ var index = 0;
291
+ var len = self.children.length;
292
+ while (pool.length) {
293
+ // 因为父级id未更新,所以需要将子级的parentId正确指向父级id
294
+ var item = __assign(__assign({}, pool.shift()), { parentId: self.id });
295
+ if (index < len) {
296
+ self.children[index].replaceWith(item);
238
297
  }
239
- var index = 0;
240
- var len = self.children.length;
241
- while (pool.length) {
242
- // 因为父级id未更新,所以需要将子级的parentId正确指向父级id
243
- var item = __assign(__assign({}, pool.shift()), { parentId: self.id });
244
- if (index < len) {
245
- self.children[index].replaceWith(item);
246
- }
247
- else {
248
- var row = Row.create(item);
249
- self.children.push(row);
250
- }
251
- index++;
298
+ else {
299
+ var row = Row.create(item);
300
+ self.children.push(row);
252
301
  }
302
+ index++;
253
303
  }
254
304
  },
255
305
  markAppeared: function (value) {
256
306
  value && (self.appeared = !!value);
307
+ },
308
+ markLoading: function (value) {
309
+ self.loading = !!value;
310
+ },
311
+ markLoaded: function (value) {
312
+ self.loaded = !!value;
313
+ },
314
+ setError: function (value) {
315
+ self.error = String(value);
316
+ },
317
+ resetDefered: function () {
318
+ self.error = '';
319
+ self.loaded = false;
320
+ },
321
+ setDeferData: function (_a) {
322
+ var children = _a.children, rest = __rest(_a, ["children"]);
323
+ self.data = __assign(__assign({}, self.data), rest);
324
+ if (Array.isArray(children)) {
325
+ this.replaceChildren(initChildren(children, self.depth, self.index, self.id, self.path));
326
+ }
257
327
  }
258
328
  }); });
259
329
  var TableStore = iRendererStore
@@ -658,7 +728,7 @@ var TableStore = iRendererStore
658
728
  function getTable() {
659
729
  return tableRef;
660
730
  }
661
- function update(config) {
731
+ function update(config, options) {
662
732
  var _a;
663
733
  config.primaryField !== undefined &&
664
734
  (self.primaryField = config.primaryField);
@@ -705,8 +775,15 @@ var TableStore = iRendererStore
705
775
  (self.tableLayout = config.tableLayout);
706
776
  if (config.columns && Array.isArray(config.columns)) {
707
777
  var columns = config.columns
708
- .filter(function (column) { return column; })
709
- .concat();
778
+ .map(function (column) {
779
+ if ((options === null || options === void 0 ? void 0 : options.resolveDefinitions) &&
780
+ typeof (column === null || column === void 0 ? void 0 : column.$ref) == 'string' &&
781
+ column.$ref) {
782
+ return __assign(__assign({}, options.resolveDefinitions(column.$ref)), column);
783
+ }
784
+ return column;
785
+ })
786
+ .filter(function (column) { return column; });
710
787
  // 更新列顺序,afterCreate生命周期中更新columns不会触发组件的render
711
788
  var key = getPersistDataKey(columns);
712
789
  var data = localStorage.getItem(key);
@@ -756,11 +833,7 @@ var TableStore = iRendererStore
756
833
  var origin = item.id
757
834
  ? originColumns_1.find(function (column) { return column.pristine.id === item.id; })
758
835
  : originColumns_1[index];
759
- return __assign(__assign({}, item), { id: (origin === null || origin === void 0 ? void 0 : origin.id) || guid(), index: index, width: (origin === null || origin === void 0 ? void 0 : origin.width) || 0, minWidth: (origin === null || origin === void 0 ? void 0 : origin.minWidth) || 0, rawIndex: index - PARTITION_INDEX, type: item.type || 'plain', pristine: item.pristine || item, toggled: item.toggled !== false, breakpoint: item.breakpoint, isPrimary: index === PARTITION_INDEX,
760
- /** 提前映射变量,方便后续view中使用 */
761
- label: isPureVariable(item.label)
762
- ? resolveVariableAndFilter(item.label, self.data)
763
- : item.label });
836
+ return __assign(__assign({}, item), { id: (origin === null || origin === void 0 ? void 0 : origin.id) || guid(), index: index, width: (origin === null || origin === void 0 ? void 0 : origin.width) || 0, minWidth: (origin === null || origin === void 0 ? void 0 : origin.minWidth) || 0, realWidth: (origin === null || origin === void 0 ? void 0 : origin.realWidth) || 0, rawIndex: index - PARTITION_INDEX, type: item.type || 'plain', pristine: item.pristine || item, toggled: item.toggled !== false, breakpoint: item.breakpoint, isPrimary: index === PARTITION_INDEX });
764
837
  });
765
838
  self.columns.replace(columns);
766
839
  }
@@ -836,11 +909,11 @@ var TableStore = iRendererStore
836
909
  if (!table) {
837
910
  return;
838
911
  }
839
- var cols = [].slice.call(table.querySelectorAll(':scope>colgroup>col[data-index]'));
912
+ var cols = [].slice.call(table.querySelectorAll(':scope>thead>tr>th[data-index]'));
840
913
  cols.forEach(function (col) {
841
914
  var index = parseInt(col.getAttribute('data-index'), 10);
842
915
  var column = self.columns[index];
843
- column.setRealWidth(col.clientWidth);
916
+ column.setRealWidth(col.offsetWidth);
844
917
  });
845
918
  }
846
919
  function combineCell(arr, keys) {
@@ -906,44 +979,11 @@ var TableStore = iRendererStore
906
979
  }
907
980
  return combineCell(arr, keys);
908
981
  }
909
- function initChildren(children, depth, pindex, parentId, path, nThRef) {
910
- if (path === void 0) { path = ''; }
911
- depth += 1;
912
- return children.map(function (item, index) {
913
- var _a;
914
- item = isObject(item)
915
- ? item
916
- : {
917
- item: item
918
- };
919
- var id = (_a = item.__id) !== null && _a !== void 0 ? _a : guid();
920
- return {
921
- // id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),
922
- id: String(id),
923
- parentId: String(parentId),
924
- key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
925
- path: "".concat(path).concat(index),
926
- depth: depth,
927
- index: index,
928
- nth: nThRef.index++,
929
- newIndex: index,
930
- pristine: item,
931
- data: item,
932
- rowSpans: {},
933
- children: item && Array.isArray(item.children)
934
- ? initChildren(item.children, depth, index, id, "".concat(path).concat(index, "."), nThRef)
935
- : [],
936
- expandable: !!((item && Array.isArray(item.children) && item.children.length) ||
937
- (self.footable && self.footableColumns.length))
938
- };
939
- });
940
- }
941
982
  function initRows(rows, getEntryId, reUseRow) {
942
983
  self.selectedRows.clear();
943
984
  // self.expandedRows.clear();
944
985
  /* 避免输入内容为非数组挂掉 */
945
986
  rows = !Array.isArray(rows) ? [] : rows;
946
- var nThRef = { index: 0 };
947
987
  var arr = rows.map(function (item, index) {
948
988
  var _a;
949
989
  if (!isObject(item)) {
@@ -958,24 +998,24 @@ var TableStore = iRendererStore
958
998
  key: String("".concat(index, "-1-").concat(index)),
959
999
  depth: 1,
960
1000
  index: index,
961
- nth: nThRef.index++,
962
1001
  newIndex: index,
963
1002
  pristine: item,
964
1003
  path: "".concat(index),
965
1004
  data: item,
966
1005
  rowSpans: {},
1006
+ defer: !!item.defer,
1007
+ loaded: false,
1008
+ loading: false,
967
1009
  children: item && Array.isArray(item.children)
968
- ? initChildren(item.children, 1, index, id, "".concat(index, "."), nThRef)
969
- : [],
970
- expandable: !!((item && Array.isArray(item.children) && item.children.length) ||
971
- (self.footable && self.footableColumns.length))
1010
+ ? initChildren(item.children, 1, index, id, "".concat(index, "."))
1011
+ : []
972
1012
  };
973
1013
  });
974
1014
  if (self.combineNum) {
975
1015
  arr = autoCombineCell(arr, self.columns, self.combineNum, self.combineFromIndex);
976
1016
  }
977
1017
  replaceRow(arr, reUseRow);
978
- self.isNested = self.rows.some(function (item) { return item.children.length; });
1018
+ self.isNested = self.rows.some(function (item) { return item.children.length || (item.defer && !item.loaded); });
979
1019
  // 前 20 个直接渲染,后面的按需渲染
980
1020
  if (self.lazyRenderAfter &&
981
1021
  self.falttenedRows.length > self.lazyRenderAfter) {
@@ -388,7 +388,7 @@ export declare const TableStore2: import("mobx-state-tree").IModelType<{
388
388
  reset(): void;
389
389
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | null;
390
390
  isSelected: (row: IRow2) => boolean;
391
- getRowByIndex: (rowIndex: number, levels?: Array<string>) => IRow2;
391
+ getRowByIndex: (rowIndex: number, levels?: Array<number>, rows?: Array<IRow2>) => IRow2;
392
392
  readonly moved: number;
393
393
  readonly movedRows: (import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
394
394
  storeType: import("mobx-state-tree").IType<string | undefined, string, string>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -195,12 +195,13 @@ var TableStore2 = ServiceStore.named('TableStore2')
195
195
  unSelectedItems: getUnSelectedRows().map(function (item) { return item.data; })
196
196
  });
197
197
  }
198
- function getRowByIndex(rowIndex, levels) {
198
+ function getRowByIndex(rowIndex, levels, rows) {
199
+ rows = rows || self.rows;
199
200
  if (levels && levels.length > 0) {
200
201
  var index = +(levels.shift() || 0);
201
- return getRowByIndex(index, levels);
202
+ return getRowByIndex(rowIndex, levels, rows[index].children);
202
203
  }
203
- return self.rows[rowIndex];
204
+ return rows[rowIndex];
204
205
  }
205
206
  function isSelected(row) {
206
207
  return !!~self.selectedRows.indexOf(row);
package/esm/theme.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/types.d.ts CHANGED
@@ -186,8 +186,14 @@ export interface ApiObject extends BaseApiObject {
186
186
  mockResponse?: PlainObject;
187
187
  adaptor?: (payload: object, response: fetcherResult, api: ApiObject, context: any) => any;
188
188
  requestAdaptor?: (api: ApiObject, context: any) => ApiObject | Promise<ApiObject>;
189
+ /**
190
+ * api 发送上下文,可以用来传递一些数据给 api 的 adaptor
191
+ * @readonly
192
+ */
193
+ context?: any;
189
194
  /** 是否过滤为空字符串的 query 参数 */
190
195
  filterEmptyQuery?: boolean;
196
+ downloadFileName?: string;
191
197
  }
192
198
  export type ApiString = string;
193
199
  export type Api = ApiString | ApiObject;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/api.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -370,6 +370,7 @@ function wrapFetcher(fn, tracker) {
370
370
  switch (_d.label) {
371
371
  case 0:
372
372
  api = buildApi(api, data, options);
373
+ api.context = data;
373
374
  if (!api.requestAdaptor) return [3 /*break*/, 2];
374
375
  debug('api', 'before requestAdaptor', api);
375
376
  return [4 /*yield*/, api.requestAdaptor(api, data)];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -4,5 +4,6 @@
4
4
  * @param __
5
5
  * @returns
6
6
  */
7
- export declare function attachmentAdpator(response: any, __: Function): any;
7
+ import { ApiObject } from '../types';
8
+ export declare function attachmentAdpator(response: any, __: Function, api?: ApiObject): any;
8
9
  export default attachmentAdpator;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -11,21 +11,27 @@ import { __assign } from 'tslib';
11
11
  * @param __
12
12
  * @returns
13
13
  */
14
- function attachmentAdpator(response, __) {
14
+ function attachmentAdpator(response, __, api) {
15
15
  if (response && response.headers && response.headers['content-disposition']) {
16
16
  var disposition = response.headers['content-disposition'];
17
17
  var filename = '';
18
18
  if (disposition && disposition.indexOf('attachment') !== -1) {
19
- // disposition 有可能是 attachment; filename="??.xlsx"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx
20
- // 这种情况下最后一个才是正确的文件名
21
- var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
22
- var matches = disposition.match(filenameRegex);
23
- if (matches && matches.length) {
24
- filename = matches[1].replace("UTF-8''", '').replace(/['"]/g, '');
19
+ // 如果 api 中配置了,则优先用 api 中的配置
20
+ if (api === null || api === void 0 ? void 0 : api.downloadFileName) {
21
+ filename = api.downloadFileName;
25
22
  }
26
- // 很可能是中文被 url-encode 了
27
- if (filename && filename.replace(/[^%]/g, '').length > 2) {
28
- filename = decodeURIComponent(filename);
23
+ else {
24
+ // disposition 有可能是 attachment; filename="??.xlsx"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx
25
+ // 这种情况下最后一个才是正确的文件名
26
+ var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/i;
27
+ var matches = disposition.match(filenameRegex);
28
+ if (matches && matches.length) {
29
+ filename = matches[1].replace("UTF-8''", '').replace(/['"]/g, '');
30
+ }
31
+ // 很可能是中文被 url-encode 了
32
+ if (filename && filename.replace(/[^%]/g, '').length > 2) {
33
+ filename = decodeURIComponent(filename);
34
+ }
29
35
  }
30
36
  var type = response.headers['content-type'];
31
37
  var blob = response.data.toString() === '[object Blob]'
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/date.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -2,7 +2,7 @@
2
2
  * amis 运行时调试功能,为了避免循环引用,这个组件不要依赖 amis 里的组件
3
3
  */
4
4
  import React, { Component } from 'react';
5
- export declare const JsonView: React.LazyExoticComponent<React.ComponentType<import("react-json-view").ReactJsonViewProps>>;
5
+ export declare const JsonView: React.LazyExoticComponent<React.ComponentType<any>>;
6
6
  export declare function enableDebug(): void;
7
7
  export declare function disableDebug(): void;
8
8
  interface DebugWrapperProps {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -9,13 +9,15 @@ import cx from 'classnames';
9
9
  import { findDOMNode, render, unmountComponentAtNode } from 'react-dom';
10
10
  import { observable, autorun } from 'mobx';
11
11
  import { observer } from 'mobx-react';
12
- import { uuidv4 } from './helper.js';
12
+ import { importLazyComponent, uuidv4 } from './helper.js';
13
13
  import { position } from './position.js';
14
14
 
15
15
  /**
16
16
  * amis 运行时调试功能,为了避免循环引用,这个组件不要依赖 amis 里的组件
17
17
  */
18
- var JsonView = React.lazy(function () { return import('react-json-view'); });
18
+ var JsonView = React.lazy(function () {
19
+ return import('react-json-view').then(importLazyComponent);
20
+ });
19
21
  /** @class */ ((function () {
20
22
  function Log() {
21
23
  this.cat = '';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/dom.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,4 +1,12 @@
1
1
  import { PlainObject } from '../types';
2
+ import type { ClassValue } from '../theme';
3
+ /**
4
+ * 计算下发给子组件的className,处理对象类型的className,将其中的表达式计算出来,避免被classnames识别为true
5
+ *
6
+ * @param value - CSS类名值
7
+ * @param ctx - 数据域
8
+ */
9
+ export declare function filterClassNameObject(classValue: ClassValue, ctx?: Record<string, any>): ClassValue;
2
10
  /**
3
11
  * 处理 Props 数据,所有带 On 结束的做一次
4
12
  *