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,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
 
@@ -13,7 +13,6 @@ var iRenderer = require('./iRenderer.js');
13
13
  require('amis-formula');
14
14
  require('moment');
15
15
  var object = require('../utils/object.js');
16
- var isPureVariable = require('../utils/isPureVariable.js');
17
16
  var resolveVariable = require('../utils/resolveVariable.js');
18
17
  var resolveVariableAndFilter = require('../utils/resolveVariableAndFilter.js');
19
18
  require('lodash/isPlainObject');
@@ -35,6 +34,38 @@ var sortBy__default = /*#__PURE__*/_interopDefaultLegacy(sortBy);
35
34
  * 内部列的数量 '__checkme' | '__dragme' | '__expandme'
36
35
  */
37
36
  var PARTITION_INDEX = 3;
37
+ function initChildren(children, depth, pindex, parentId, path) {
38
+ if (path === void 0) { path = ''; }
39
+ depth += 1;
40
+ return children.map(function (item, index) {
41
+ var _a;
42
+ item = object.isObject(item)
43
+ ? item
44
+ : {
45
+ item: item
46
+ };
47
+ var id = (_a = item.__id) !== null && _a !== void 0 ? _a : helper.guid();
48
+ return {
49
+ // id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),
50
+ id: String(id),
51
+ parentId: String(parentId),
52
+ key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
53
+ path: "".concat(path).concat(index),
54
+ depth: depth,
55
+ index: index,
56
+ newIndex: index,
57
+ pristine: item,
58
+ data: item,
59
+ defer: !!item.defer,
60
+ loaded: false,
61
+ loading: false,
62
+ rowSpans: {},
63
+ children: item && Array.isArray(item.children)
64
+ ? initChildren(item.children, depth, index, id, "".concat(path).concat(index, "."))
65
+ : []
66
+ };
67
+ });
68
+ }
38
69
  var Column = mobxStateTree.types
39
70
  .model('Column', {
40
71
  label: mobxStateTree.types.optional(mobxStateTree.types.frozen(), undefined),
@@ -47,7 +78,6 @@ var Column = mobxStateTree.types
47
78
  toggable: true,
48
79
  expandable: false,
49
80
  checkdisable: false,
50
- isPrimary: false,
51
81
  searchable: mobxStateTree.types.maybe(mobxStateTree.types.frozen()),
52
82
  enableSearch: true,
53
83
  sortable: false,
@@ -63,6 +93,13 @@ var Column = mobxStateTree.types
63
93
  remark: mobxStateTree.types.optional(mobxStateTree.types.frozen(), undefined),
64
94
  className: mobxStateTree.types.union(mobxStateTree.types.string, mobxStateTree.types.frozen())
65
95
  })
96
+ .views(function (self) { return ({
97
+ get isPrimary() {
98
+ var _a;
99
+ var table = mobxStateTree.getParent(self, 2);
100
+ return (((_a = table.filteredColumns.find(function (column) { return !column.type.startsWith('__'); })) === null || _a === void 0 ? void 0 : _a.id) === self.id);
101
+ }
102
+ }); })
66
103
  .actions(function (self) { return ({
67
104
  toggleToggle: function (min) {
68
105
  if (min === void 0) { min = 1; }
@@ -102,17 +139,27 @@ var Row = mobxStateTree.types
102
139
  rowSpans: mobxStateTree.types.frozen({}),
103
140
  index: mobxStateTree.types.number,
104
141
  newIndex: mobxStateTree.types.number,
105
- nth: 0,
106
142
  path: '',
107
- expandable: false,
108
143
  checkdisable: false,
109
144
  isHover: false,
110
145
  children: mobxStateTree.types.optional(mobxStateTree.types.array(mobxStateTree.types.late(function () { return Row; })), []),
146
+ defer: false,
147
+ loaded: false,
148
+ loading: false,
149
+ error: '',
111
150
  depth: mobxStateTree.types.number,
112
151
  appeared: true,
113
152
  lazyRender: false
114
153
  })
115
154
  .views(function (self) { return ({
155
+ get expandable() {
156
+ var table;
157
+ return !!((self && self.children.length) ||
158
+ (self && self.defer && !self.loaded) ||
159
+ ((table = mobxStateTree.getParent(self, self.depth * 2)) &&
160
+ table.footable &&
161
+ table.footableColumns.length));
162
+ },
116
163
  get checked() {
117
164
  return mobxStateTree.getParent(self, self.depth * 2).isSelected(self);
118
165
  },
@@ -240,30 +287,53 @@ var Row = mobxStateTree.types
240
287
  }
241
288
  });
242
289
  if (Array.isArray(data.children)) {
243
- var arr = data.children;
244
- var pool = arr.concat();
245
- // 把多的删了先
246
- if (self.children.length > arr.length) {
247
- self.children.splice(arr.length, self.children.length - arr.length);
290
+ this.replaceChildren(data.children);
291
+ }
292
+ },
293
+ replaceChildren: function (children) {
294
+ var arr = children;
295
+ var pool = arr.concat();
296
+ // 把多的删了先
297
+ if (self.children.length > arr.length) {
298
+ self.children.splice(arr.length, self.children.length - arr.length);
299
+ }
300
+ var index = 0;
301
+ var len = self.children.length;
302
+ while (pool.length) {
303
+ // 因为父级id未更新,所以需要将子级的parentId正确指向父级id
304
+ var item = tslib.__assign(tslib.__assign({}, pool.shift()), { parentId: self.id });
305
+ if (index < len) {
306
+ self.children[index].replaceWith(item);
248
307
  }
249
- var index = 0;
250
- var len = self.children.length;
251
- while (pool.length) {
252
- // 因为父级id未更新,所以需要将子级的parentId正确指向父级id
253
- var item = tslib.__assign(tslib.__assign({}, pool.shift()), { parentId: self.id });
254
- if (index < len) {
255
- self.children[index].replaceWith(item);
256
- }
257
- else {
258
- var row = Row.create(item);
259
- self.children.push(row);
260
- }
261
- index++;
308
+ else {
309
+ var row = Row.create(item);
310
+ self.children.push(row);
262
311
  }
312
+ index++;
263
313
  }
264
314
  },
265
315
  markAppeared: function (value) {
266
316
  value && (self.appeared = !!value);
317
+ },
318
+ markLoading: function (value) {
319
+ self.loading = !!value;
320
+ },
321
+ markLoaded: function (value) {
322
+ self.loaded = !!value;
323
+ },
324
+ setError: function (value) {
325
+ self.error = String(value);
326
+ },
327
+ resetDefered: function () {
328
+ self.error = '';
329
+ self.loaded = false;
330
+ },
331
+ setDeferData: function (_a) {
332
+ var children = _a.children, rest = tslib.__rest(_a, ["children"]);
333
+ self.data = tslib.__assign(tslib.__assign({}, self.data), rest);
334
+ if (Array.isArray(children)) {
335
+ this.replaceChildren(initChildren(children, self.depth, self.index, self.id, self.path));
336
+ }
267
337
  }
268
338
  }); });
269
339
  var TableStore = iRenderer.iRendererStore
@@ -668,7 +738,7 @@ var TableStore = iRenderer.iRendererStore
668
738
  function getTable() {
669
739
  return tableRef;
670
740
  }
671
- function update(config) {
741
+ function update(config, options) {
672
742
  var _a;
673
743
  config.primaryField !== undefined &&
674
744
  (self.primaryField = config.primaryField);
@@ -715,8 +785,15 @@ var TableStore = iRenderer.iRendererStore
715
785
  (self.tableLayout = config.tableLayout);
716
786
  if (config.columns && Array.isArray(config.columns)) {
717
787
  var columns = config.columns
718
- .filter(function (column) { return column; })
719
- .concat();
788
+ .map(function (column) {
789
+ if ((options === null || options === void 0 ? void 0 : options.resolveDefinitions) &&
790
+ typeof (column === null || column === void 0 ? void 0 : column.$ref) == 'string' &&
791
+ column.$ref) {
792
+ return tslib.__assign(tslib.__assign({}, options.resolveDefinitions(column.$ref)), column);
793
+ }
794
+ return column;
795
+ })
796
+ .filter(function (column) { return column; });
720
797
  // 更新列顺序,afterCreate生命周期中更新columns不会触发组件的render
721
798
  var key = getPersistDataKey(columns);
722
799
  var data = localStorage.getItem(key);
@@ -766,11 +843,7 @@ var TableStore = iRenderer.iRendererStore
766
843
  var origin = item.id
767
844
  ? originColumns_1.find(function (column) { return column.pristine.id === item.id; })
768
845
  : originColumns_1[index];
769
- return tslib.__assign(tslib.__assign({}, item), { id: (origin === null || origin === void 0 ? void 0 : origin.id) || helper.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,
770
- /** 提前映射变量,方便后续view中使用 */
771
- label: isPureVariable.isPureVariable(item.label)
772
- ? resolveVariableAndFilter.resolveVariableAndFilter(item.label, self.data)
773
- : item.label });
846
+ return tslib.__assign(tslib.__assign({}, item), { id: (origin === null || origin === void 0 ? void 0 : origin.id) || helper.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 });
774
847
  });
775
848
  self.columns.replace(columns);
776
849
  }
@@ -846,11 +919,11 @@ var TableStore = iRenderer.iRendererStore
846
919
  if (!table) {
847
920
  return;
848
921
  }
849
- var cols = [].slice.call(table.querySelectorAll(':scope>colgroup>col[data-index]'));
922
+ var cols = [].slice.call(table.querySelectorAll(':scope>thead>tr>th[data-index]'));
850
923
  cols.forEach(function (col) {
851
924
  var index = parseInt(col.getAttribute('data-index'), 10);
852
925
  var column = self.columns[index];
853
- column.setRealWidth(col.clientWidth);
926
+ column.setRealWidth(col.offsetWidth);
854
927
  });
855
928
  }
856
929
  function combineCell(arr, keys) {
@@ -916,44 +989,11 @@ var TableStore = iRenderer.iRendererStore
916
989
  }
917
990
  return combineCell(arr, keys);
918
991
  }
919
- function initChildren(children, depth, pindex, parentId, path, nThRef) {
920
- if (path === void 0) { path = ''; }
921
- depth += 1;
922
- return children.map(function (item, index) {
923
- var _a;
924
- item = object.isObject(item)
925
- ? item
926
- : {
927
- item: item
928
- };
929
- var id = (_a = item.__id) !== null && _a !== void 0 ? _a : helper.guid();
930
- return {
931
- // id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),
932
- id: String(id),
933
- parentId: String(parentId),
934
- key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
935
- path: "".concat(path).concat(index),
936
- depth: depth,
937
- index: index,
938
- nth: nThRef.index++,
939
- newIndex: index,
940
- pristine: item,
941
- data: item,
942
- rowSpans: {},
943
- children: item && Array.isArray(item.children)
944
- ? initChildren(item.children, depth, index, id, "".concat(path).concat(index, "."), nThRef)
945
- : [],
946
- expandable: !!((item && Array.isArray(item.children) && item.children.length) ||
947
- (self.footable && self.footableColumns.length))
948
- };
949
- });
950
- }
951
992
  function initRows(rows, getEntryId, reUseRow) {
952
993
  self.selectedRows.clear();
953
994
  // self.expandedRows.clear();
954
995
  /* 避免输入内容为非数组挂掉 */
955
996
  rows = !Array.isArray(rows) ? [] : rows;
956
- var nThRef = { index: 0 };
957
997
  var arr = rows.map(function (item, index) {
958
998
  var _a;
959
999
  if (!object.isObject(item)) {
@@ -968,24 +1008,24 @@ var TableStore = iRenderer.iRendererStore
968
1008
  key: String("".concat(index, "-1-").concat(index)),
969
1009
  depth: 1,
970
1010
  index: index,
971
- nth: nThRef.index++,
972
1011
  newIndex: index,
973
1012
  pristine: item,
974
1013
  path: "".concat(index),
975
1014
  data: item,
976
1015
  rowSpans: {},
1016
+ defer: !!item.defer,
1017
+ loaded: false,
1018
+ loading: false,
977
1019
  children: item && Array.isArray(item.children)
978
- ? initChildren(item.children, 1, index, id, "".concat(index, "."), nThRef)
979
- : [],
980
- expandable: !!((item && Array.isArray(item.children) && item.children.length) ||
981
- (self.footable && self.footableColumns.length))
1020
+ ? initChildren(item.children, 1, index, id, "".concat(index, "."))
1021
+ : []
982
1022
  };
983
1023
  });
984
1024
  if (self.combineNum) {
985
1025
  arr = autoCombineCell(arr, self.columns, self.combineNum, self.combineFromIndex);
986
1026
  }
987
1027
  replaceRow(arr, reUseRow);
988
- self.isNested = self.rows.some(function (item) { return item.children.length; });
1028
+ self.isNested = self.rows.some(function (item) { return item.children.length || (item.defer && !item.loaded); });
989
1029
  // 前 20 个直接渲染,后面的按需渲染
990
1030
  if (self.lazyRenderAfter &&
991
1031
  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
 
@@ -204,12 +204,13 @@ var TableStore2 = service.ServiceStore.named('TableStore2')
204
204
  unSelectedItems: getUnSelectedRows().map(function (item) { return item.data; })
205
205
  });
206
206
  }
207
- function getRowByIndex(rowIndex, levels) {
207
+ function getRowByIndex(rowIndex, levels, rows) {
208
+ rows = rows || self.rows;
208
209
  if (levels && levels.length > 0) {
209
210
  var index = +(levels.shift() || 0);
210
- return getRowByIndex(index, levels);
211
+ return getRowByIndex(rowIndex, levels, rows[index].children);
211
212
  }
212
- return self.rows[rowIndex];
213
+ return rows[rowIndex];
213
214
  }
214
215
  function isSelected(row) {
215
216
  return !!~self.selectedRows.indexOf(row);
package/lib/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/lib/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/lib/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
 
@@ -379,6 +379,7 @@ function wrapFetcher(fn, tracker) {
379
379
  switch (_d.label) {
380
380
  case 0:
381
381
  api = buildApi(api, data, options);
382
+ api.context = data;
382
383
  if (!api.requestAdaptor) return [3 /*break*/, 2];
383
384
  debug.debug('api', 'before requestAdaptor', api);
384
385
  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
 
@@ -15,21 +15,27 @@ var tslib = require('tslib');
15
15
  * @param __
16
16
  * @returns
17
17
  */
18
- function attachmentAdpator(response, __) {
18
+ function attachmentAdpator(response, __, api) {
19
19
  if (response && response.headers && response.headers['content-disposition']) {
20
20
  var disposition = response.headers['content-disposition'];
21
21
  var filename = '';
22
22
  if (disposition && disposition.indexOf('attachment') !== -1) {
23
- // disposition 有可能是 attachment; filename="??.xlsx"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx
24
- // 这种情况下最后一个才是正确的文件名
25
- var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
26
- var matches = disposition.match(filenameRegex);
27
- if (matches && matches.length) {
28
- filename = matches[1].replace("UTF-8''", '').replace(/['"]/g, '');
23
+ // 如果 api 中配置了,则优先用 api 中的配置
24
+ if (api === null || api === void 0 ? void 0 : api.downloadFileName) {
25
+ filename = api.downloadFileName;
29
26
  }
30
- // 很可能是中文被 url-encode 了
31
- if (filename && filename.replace(/[^%]/g, '').length > 2) {
32
- filename = decodeURIComponent(filename);
27
+ else {
28
+ // disposition 有可能是 attachment; filename="??.xlsx"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx
29
+ // 这种情况下最后一个才是正确的文件名
30
+ var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/i;
31
+ var matches = disposition.match(filenameRegex);
32
+ if (matches && matches.length) {
33
+ filename = matches[1].replace("UTF-8''", '').replace(/['"]/g, '');
34
+ }
35
+ // 很可能是中文被 url-encode 了
36
+ if (filename && filename.replace(/[^%]/g, '').length > 2) {
37
+ filename = decodeURIComponent(filename);
38
+ }
33
39
  }
34
40
  var type = response.headers['content-type'];
35
41
  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/lib/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
 
@@ -24,7 +24,9 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
24
24
  var __react_jsx__ = require('react');
25
25
  var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
26
26
  (__react_jsx__["default"] || __react_jsx__).Fragment;
27
- var JsonView = React__default["default"].lazy(function () { return Promise.resolve().then(function() {return new Promise(function(fullfill) {require(['react-json-view'], function(mod) {fullfill(tslib.__importStar(mod))})})}); });
27
+ var JsonView = React__default["default"].lazy(function () {
28
+ return Promise.resolve().then(function() {return new Promise(function(fullfill) {require(['react-json-view'], function(mod) {fullfill(tslib.__importStar(mod))})})}).then(helper.importLazyComponent);
29
+ });
28
30
  /** @class */ ((function () {
29
31
  function Log() {
30
32
  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/lib/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
  *