amis-core 6.7.0 → 6.9.0-rc.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 (304) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +24 -2
  4. package/esm/SchemaRenderer.d.ts +0 -1
  5. package/esm/SchemaRenderer.js +43 -20
  6. package/esm/Scoped.js +2 -1
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +8 -8
  10. package/esm/actions/Action.js +2 -1
  11. package/esm/actions/AjaxAction.js +1 -1
  12. package/esm/actions/BreakAction.js +1 -1
  13. package/esm/actions/BroadcastAction.js +1 -1
  14. package/esm/actions/CmptAction.js +1 -1
  15. package/esm/actions/ContinueAction.js +1 -1
  16. package/esm/actions/CopyAction.js +1 -1
  17. package/esm/actions/CustomAction.js +2 -1
  18. package/esm/actions/DialogAction.js +3 -1
  19. package/esm/actions/DrawerAction.js +2 -1
  20. package/esm/actions/EmailAction.js +1 -1
  21. package/esm/actions/EventAction.js +2 -1
  22. package/esm/actions/LinkAction.js +1 -1
  23. package/esm/actions/LoopAction.js +2 -1
  24. package/esm/actions/PageAction.js +1 -1
  25. package/esm/actions/ParallelAction.js +1 -1
  26. package/esm/actions/PrintAction.js +1 -1
  27. package/esm/actions/StatusAction.js +1 -1
  28. package/esm/actions/SwitchAction.js +1 -1
  29. package/esm/actions/ToastAction.js +1 -1
  30. package/esm/actions/WaitAction.js +1 -1
  31. package/esm/components/CustomStyle.js +1 -1
  32. package/esm/components/ErrorBoundary.js +1 -1
  33. package/esm/components/LazyComponent.d.ts +40 -2
  34. package/esm/components/LazyComponent.js +13 -7
  35. package/esm/components/Overlay.js +2 -1
  36. package/esm/components/PopOver.d.ts +1 -1
  37. package/esm/components/PopOver.js +2 -1
  38. package/esm/env.js +1 -1
  39. package/esm/envOverwrite.js +1 -1
  40. package/esm/factory.d.ts +13 -2
  41. package/esm/factory.js +157 -45
  42. package/esm/index.d.ts +4 -4
  43. package/esm/index.js +5 -5
  44. package/esm/locale.js +2 -1
  45. package/esm/polyfills.js +1 -1
  46. package/esm/renderers/Form.js +44 -18
  47. package/esm/renderers/Item.d.ts +97 -12
  48. package/esm/renderers/Item.js +164 -125
  49. package/esm/renderers/Options.d.ts +3 -3
  50. package/esm/renderers/Options.js +43 -19
  51. package/esm/renderers/Placeholder.js +1 -1
  52. package/esm/renderers/builtin.js +1 -1
  53. package/esm/renderers/register.js +1 -1
  54. package/esm/renderers/wrapControl.js +2 -1
  55. package/esm/store/app.js +2 -1
  56. package/esm/store/combo.d.ts +408 -0
  57. package/esm/store/combo.js +1 -1
  58. package/esm/store/crud.js +2 -1
  59. package/esm/store/form.d.ts +170 -0
  60. package/esm/store/form.js +2 -1
  61. package/esm/store/formItem.d.ts +5 -0
  62. package/esm/store/formItem.js +30 -8
  63. package/esm/store/iRenderer.js +2 -1
  64. package/esm/store/index.d.ts +1 -0
  65. package/esm/store/index.js +3 -2
  66. package/esm/store/list.js +1 -1
  67. package/esm/store/manager.js +1 -1
  68. package/esm/store/modal.js +1 -1
  69. package/esm/store/node.js +1 -1
  70. package/esm/store/pagination.js +2 -1
  71. package/esm/store/root.d.ts +2 -0
  72. package/esm/store/root.js +46 -21
  73. package/esm/store/service.js +2 -1
  74. package/esm/store/status.js +1 -1
  75. package/esm/store/table.d.ts +379 -21
  76. package/esm/store/table.js +84 -54
  77. package/esm/store/table2.js +1 -1
  78. package/esm/theme.js +1 -1
  79. package/esm/types.d.ts +4 -2
  80. package/esm/utils/Animation.js +1 -1
  81. package/esm/utils/ColorScale.js +1 -1
  82. package/esm/utils/DataSchema.js +1 -1
  83. package/esm/utils/DataScope.js +1 -1
  84. package/esm/utils/RootClose.js +1 -1
  85. package/esm/utils/SimpleMap.js +1 -1
  86. package/esm/utils/api.d.ts +21 -1
  87. package/esm/utils/api.js +133 -41
  88. package/esm/utils/arraySlice.js +1 -1
  89. package/esm/utils/attachmentAdpator.js +1 -1
  90. package/esm/utils/autobind.js +1 -1
  91. package/esm/utils/browser.js +1 -1
  92. package/esm/utils/columnsSplit.js +1 -1
  93. package/esm/utils/concatData.js +1 -1
  94. package/esm/utils/dataMapping.js +1 -1
  95. package/esm/utils/date.js +1 -1
  96. package/esm/utils/debug.js +17 -3
  97. package/esm/utils/decodeEntity.js +1 -1
  98. package/esm/utils/dom.js +1 -1
  99. package/esm/utils/errors.js +1 -1
  100. package/esm/utils/escapeHtml.js +1 -1
  101. package/esm/utils/filter-schema.js +1 -1
  102. package/esm/utils/filter.js +1 -1
  103. package/esm/utils/formatDuration.js +1 -1
  104. package/esm/utils/formula.js +2 -1
  105. package/esm/utils/getVariable.js +1 -1
  106. package/esm/utils/grammar.js +1 -1
  107. package/esm/utils/handleAction.js +1 -1
  108. package/esm/utils/helper.d.ts +4 -1
  109. package/esm/utils/helper.js +20 -4
  110. package/esm/utils/highlight.js +1 -1
  111. package/esm/utils/icon.js +1 -1
  112. package/esm/utils/image.js +1 -1
  113. package/esm/utils/isPureVariable.js +2 -2
  114. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  115. package/esm/utils/keyToPath.js +1 -1
  116. package/esm/utils/labelToString.js +1 -1
  117. package/esm/utils/makeSorter.js +1 -1
  118. package/esm/utils/math.js +1 -1
  119. package/esm/utils/memoryParse.d.ts +2 -1
  120. package/esm/utils/memoryParse.js +10 -6
  121. package/esm/utils/normalizeLink.js +1 -1
  122. package/esm/utils/normalizeOptions.js +1 -1
  123. package/esm/utils/object.d.ts +2 -4
  124. package/esm/utils/object.js +1 -1
  125. package/esm/utils/offset.js +1 -1
  126. package/esm/utils/offsetParent.js +1 -1
  127. package/esm/utils/optionValueCompare.js +1 -1
  128. package/esm/utils/position.js +1 -1
  129. package/esm/utils/prettyBytes.js +1 -1
  130. package/esm/utils/printElement.js +1 -1
  131. package/esm/utils/renderer-event.js +1 -1
  132. package/esm/utils/replaceText.js +1 -1
  133. package/esm/utils/resize-sensor.js +30 -1
  134. package/esm/utils/resolveCondition.js +2 -1
  135. package/esm/utils/resolveVariable.js +1 -1
  136. package/esm/utils/resolveVariableAndFilter.js +1 -1
  137. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  138. package/esm/utils/scrollPosition.js +1 -1
  139. package/esm/utils/string2regExp.js +1 -1
  140. package/esm/utils/stripNumber.js +1 -1
  141. package/esm/utils/style-helper.js +1 -1
  142. package/esm/utils/style.js +2 -1
  143. package/esm/utils/toNumber.js +1 -1
  144. package/esm/utils/tokenize.js +1 -1
  145. package/esm/utils/tpl-builtin.js +2 -1
  146. package/esm/utils/tpl-lodash.js +2 -1
  147. package/esm/utils/tpl.js +1 -1
  148. package/esm/utils/uncontrollable.js +1 -1
  149. package/esm/utils/validateId.js +1 -1
  150. package/esm/utils/validations.js +2 -1
  151. package/esm/utils/visitedCache.d.ts +46 -0
  152. package/esm/utils/visitedCache.js +124 -0
  153. package/lib/Root.js +1 -1
  154. package/lib/RootRenderer.js +23 -1
  155. package/lib/SchemaRenderer.d.ts +0 -1
  156. package/lib/SchemaRenderer.js +41 -18
  157. package/lib/Scoped.js +2 -1
  158. package/lib/StatusScoped.js +1 -1
  159. package/lib/WithRootStore.js +1 -1
  160. package/lib/WithStore.js +8 -8
  161. package/lib/actions/Action.js +2 -1
  162. package/lib/actions/AjaxAction.js +1 -1
  163. package/lib/actions/BreakAction.js +1 -1
  164. package/lib/actions/BroadcastAction.js +1 -1
  165. package/lib/actions/CmptAction.js +1 -1
  166. package/lib/actions/ContinueAction.js +1 -1
  167. package/lib/actions/CopyAction.js +1 -1
  168. package/lib/actions/CustomAction.js +2 -1
  169. package/lib/actions/DialogAction.js +3 -1
  170. package/lib/actions/DrawerAction.js +2 -1
  171. package/lib/actions/EmailAction.js +1 -1
  172. package/lib/actions/EventAction.js +2 -1
  173. package/lib/actions/LinkAction.js +1 -1
  174. package/lib/actions/LoopAction.js +2 -1
  175. package/lib/actions/PageAction.js +1 -1
  176. package/lib/actions/ParallelAction.js +1 -1
  177. package/lib/actions/PrintAction.js +1 -1
  178. package/lib/actions/StatusAction.js +1 -1
  179. package/lib/actions/SwitchAction.js +1 -1
  180. package/lib/actions/ToastAction.js +1 -1
  181. package/lib/actions/WaitAction.js +1 -1
  182. package/lib/components/CustomStyle.js +1 -1
  183. package/lib/components/ErrorBoundary.js +1 -1
  184. package/lib/components/LazyComponent.d.ts +40 -2
  185. package/lib/components/LazyComponent.js +14 -7
  186. package/lib/components/Overlay.js +2 -1
  187. package/lib/components/PopOver.d.ts +1 -1
  188. package/lib/components/PopOver.js +2 -1
  189. package/lib/env.js +1 -1
  190. package/lib/envOverwrite.js +1 -1
  191. package/lib/factory.d.ts +13 -2
  192. package/lib/factory.js +161 -44
  193. package/lib/index.d.ts +4 -4
  194. package/lib/index.js +10 -2
  195. package/lib/locale.js +2 -1
  196. package/lib/polyfills.js +1 -1
  197. package/lib/renderers/Form.js +41 -15
  198. package/lib/renderers/Item.d.ts +98 -13
  199. package/lib/renderers/Item.js +163 -124
  200. package/lib/renderers/Options.d.ts +3 -3
  201. package/lib/renderers/Options.js +43 -19
  202. package/lib/renderers/Placeholder.js +1 -1
  203. package/lib/renderers/builtin.js +1 -1
  204. package/lib/renderers/register.js +1 -1
  205. package/lib/renderers/wrapControl.js +2 -1
  206. package/lib/store/app.js +2 -1
  207. package/lib/store/combo.d.ts +432 -25
  208. package/lib/store/combo.js +1 -1
  209. package/lib/store/crud.js +3 -2
  210. package/lib/store/form.d.ts +180 -11
  211. package/lib/store/form.js +2 -1
  212. package/lib/store/formItem.d.ts +5 -0
  213. package/lib/store/formItem.js +30 -8
  214. package/lib/store/iRenderer.js +2 -1
  215. package/lib/store/index.d.ts +1 -0
  216. package/lib/store/index.js +3 -1
  217. package/lib/store/list.js +1 -1
  218. package/lib/store/manager.js +1 -1
  219. package/lib/store/modal.js +1 -1
  220. package/lib/store/node.js +1 -1
  221. package/lib/store/pagination.js +2 -1
  222. package/lib/store/root.d.ts +2 -0
  223. package/lib/store/root.js +44 -19
  224. package/lib/store/service.js +2 -1
  225. package/lib/store/status.js +1 -1
  226. package/lib/store/table.d.ts +399 -42
  227. package/lib/store/table.js +84 -54
  228. package/lib/store/table2.js +1 -1
  229. package/lib/theme.js +1 -1
  230. package/lib/types.d.ts +4 -2
  231. package/lib/utils/Animation.js +1 -1
  232. package/lib/utils/ColorScale.js +1 -1
  233. package/lib/utils/DataSchema.js +1 -1
  234. package/lib/utils/DataScope.js +1 -1
  235. package/lib/utils/RootClose.js +1 -1
  236. package/lib/utils/SimpleMap.js +1 -1
  237. package/lib/utils/api.d.ts +21 -1
  238. package/lib/utils/api.js +136 -40
  239. package/lib/utils/arraySlice.js +1 -1
  240. package/lib/utils/attachmentAdpator.js +1 -1
  241. package/lib/utils/autobind.js +1 -1
  242. package/lib/utils/browser.js +1 -1
  243. package/lib/utils/columnsSplit.js +1 -1
  244. package/lib/utils/concatData.js +1 -1
  245. package/lib/utils/dataMapping.js +1 -1
  246. package/lib/utils/date.js +1 -1
  247. package/lib/utils/debug.js +18 -4
  248. package/lib/utils/decodeEntity.js +1 -1
  249. package/lib/utils/dom.js +1 -1
  250. package/lib/utils/errors.js +1 -1
  251. package/lib/utils/escapeHtml.js +1 -1
  252. package/lib/utils/filter-schema.js +1 -1
  253. package/lib/utils/filter.js +1 -1
  254. package/lib/utils/formatDuration.js +1 -1
  255. package/lib/utils/formula.js +2 -1
  256. package/lib/utils/getVariable.js +1 -1
  257. package/lib/utils/grammar.js +1 -1
  258. package/lib/utils/handleAction.js +1 -1
  259. package/lib/utils/helper.d.ts +4 -1
  260. package/lib/utils/helper.js +19 -3
  261. package/lib/utils/highlight.js +1 -1
  262. package/lib/utils/icon.js +1 -1
  263. package/lib/utils/image.js +1 -1
  264. package/lib/utils/isPureVariable.js +2 -2
  265. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  266. package/lib/utils/keyToPath.js +1 -1
  267. package/lib/utils/labelToString.js +1 -1
  268. package/lib/utils/makeSorter.js +1 -1
  269. package/lib/utils/math.js +1 -1
  270. package/lib/utils/memoryParse.d.ts +2 -1
  271. package/lib/utils/memoryParse.js +10 -6
  272. package/lib/utils/normalizeLink.js +1 -1
  273. package/lib/utils/normalizeOptions.js +1 -1
  274. package/lib/utils/object.d.ts +2 -4
  275. package/lib/utils/object.js +1 -1
  276. package/lib/utils/offset.js +1 -1
  277. package/lib/utils/offsetParent.js +1 -1
  278. package/lib/utils/optionValueCompare.js +1 -1
  279. package/lib/utils/position.js +1 -1
  280. package/lib/utils/prettyBytes.js +1 -1
  281. package/lib/utils/printElement.js +1 -1
  282. package/lib/utils/renderer-event.js +1 -1
  283. package/lib/utils/replaceText.js +1 -1
  284. package/lib/utils/resize-sensor.js +30 -1
  285. package/lib/utils/resolveCondition.js +2 -1
  286. package/lib/utils/resolveVariable.js +1 -1
  287. package/lib/utils/resolveVariableAndFilter.js +1 -1
  288. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  289. package/lib/utils/scrollPosition.js +1 -1
  290. package/lib/utils/string2regExp.js +1 -1
  291. package/lib/utils/stripNumber.js +1 -1
  292. package/lib/utils/style-helper.js +1 -1
  293. package/lib/utils/style.js +2 -1
  294. package/lib/utils/toNumber.js +1 -1
  295. package/lib/utils/tokenize.js +1 -1
  296. package/lib/utils/tpl-builtin.js +2 -1
  297. package/lib/utils/tpl-lodash.js +2 -1
  298. package/lib/utils/tpl.js +1 -1
  299. package/lib/utils/uncontrollable.js +1 -1
  300. package/lib/utils/validateId.js +1 -1
  301. package/lib/utils/validations.js +2 -1
  302. package/lib/utils/visitedCache.d.ts +46 -0
  303. package/lib/utils/visitedCache.js +128 -0
  304. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -13,6 +13,7 @@ var iRenderer = require('./iRenderer.js');
13
13
  require('amis-formula');
14
14
  require('moment');
15
15
  var object = require('../utils/object.js');
16
+ require('../utils/memoryParse.js');
16
17
  require('@rc-component/mini-decimal');
17
18
  var resolveVariable = require('../utils/resolveVariable.js');
18
19
  var resolveVariableAndFilter = require('../utils/resolveVariableAndFilter.js');
@@ -103,6 +104,9 @@ var Column = mobxStateTree.types
103
104
  var _a;
104
105
  var table = mobxStateTree.getParent(self, 2);
105
106
  return (((_a = table.filteredColumns.find(function (column) { return !column.type.startsWith('__'); })) === null || _a === void 0 ? void 0 : _a.id) === self.id);
107
+ },
108
+ get columnKey() {
109
+ return self.pristine.uid || self.name || self.label || self.rawIndex;
106
110
  }
107
111
  }); })
108
112
  .actions(function (self) { return ({
@@ -118,10 +122,13 @@ var Column = mobxStateTree.types
118
122
  setToggled: function (value) {
119
123
  self.toggled = value;
120
124
  },
121
- setEnableSearch: function (value) {
125
+ setEnableSearch: function (value, skipSave) {
126
+ if (skipSave === void 0) { skipSave = false; }
122
127
  self.enableSearch = value;
123
- var table = mobxStateTree.getParent(self, 2);
124
- table.persistSaveToggledColumns();
128
+ if (!skipSave) {
129
+ var table = mobxStateTree.getParent(self, 2);
130
+ table.persistSaveToggledColumns();
131
+ }
125
132
  },
126
133
  setMinWidth: function (value) {
127
134
  self.minWidth = value;
@@ -372,7 +379,6 @@ var TableStore = iRenderer.iRendererStore
372
379
  .named('TableStore')
373
380
  .props({
374
381
  columns: mobxStateTree.types.array(Column),
375
- columnsKey: '',
376
382
  rows: mobxStateTree.types.array(Row),
377
383
  selectedRows: mobxStateTree.types.array(mobxStateTree.types.reference(Row)),
378
384
  expandedRows: mobxStateTree.types.array(mobxStateTree.types.string),
@@ -594,6 +600,9 @@ var TableStore = iRenderer.iRendererStore
594
600
  }
595
601
  return {
596
602
  getSelectionUpperLimit: getSelectionUpperLimit,
603
+ get columnsKey() {
604
+ return location.pathname + self.path;
605
+ },
597
606
  get columnsData() {
598
607
  return getColumnsExceptBuiltinTypes();
599
608
  },
@@ -712,7 +721,8 @@ var TableStore = iRenderer.iRendererStore
712
721
  get columnWidthReady() {
713
722
  return getFilteredColumns().every(function (column) { return column.realWidth; });
714
723
  },
715
- getStickyStyles: function (column, columns) {
724
+ getStickyStyles: function (column, columns, colSpan) {
725
+ if (colSpan === void 0) { colSpan = 1; }
716
726
  var stickyClassName = '';
717
727
  var style = {};
718
728
  var autoFixLeftColumns = ['__checkme', '__dragme', '__expandme'];
@@ -721,7 +731,7 @@ var TableStore = iRenderer.iRendererStore
721
731
  stickyClassName = 'is-sticky is-sticky-left';
722
732
  var index = columns.indexOf(column) - 1;
723
733
  if (columns
724
- .slice(index + 2)
734
+ .slice(index + (colSpan - 1) + 2)
725
735
  .every(function (col) {
726
736
  return !((col && col.fixed === 'left') ||
727
737
  autoFixLeftColumns.includes(col.type));
@@ -835,7 +845,6 @@ var TableStore = iRenderer.iRendererStore
835
845
  typeof config.tableLayout === 'string' &&
836
846
  (self.tableLayout = config.tableLayout);
837
847
  if (config.columns && Array.isArray(config.columns)) {
838
- self.columnsKey = getPersistDataKey(config.columns);
839
848
  var columns = config.columns
840
849
  .map(function (column) {
841
850
  if ((options === null || options === void 0 ? void 0 : options.resolveDefinitions) &&
@@ -858,7 +867,9 @@ var TableStore = iRenderer.iRendererStore
858
867
  var order_1 = tableMetaData === null || tableMetaData === void 0 ? void 0 : tableMetaData.columnOrder;
859
868
  if (Array.isArray(order_1) && order_1.length != 0) {
860
869
  columns = sortBy__default["default"](columns, function (item, index) {
861
- return order_1.indexOf(item.name || item.label || index);
870
+ var columnKey = item.uid || item.name || item.label || index;
871
+ var idx = order_1.indexOf(columnKey);
872
+ return idx === -1 ? Number.MAX_SAFE_INTEGER : idx;
862
873
  });
863
874
  }
864
875
  }
@@ -1085,26 +1096,28 @@ var TableStore = iRenderer.iRendererStore
1085
1096
  if (self.combineNum) {
1086
1097
  arr = autoCombineCell(arr, self.columns, self.combineNum, self.combineFromIndex);
1087
1098
  }
1088
- replaceRow(arr, reUseRow);
1099
+ var allMatched = replaceRow(arr, reUseRow);
1089
1100
  self.isNested = self.rows.some(function (item) { return item.children.length || (item.defer && !item.loaded); });
1090
- // 20 个直接渲染,后面的按需渲染
1091
- if (self.lazyRenderAfter &&
1092
- self.falttenedRows.length > self.lazyRenderAfter) {
1093
- for (var i = self.lazyRenderAfter, len = self.falttenedRows.length; i < len; i++) {
1094
- self.falttenedRows[i].appeared = false;
1095
- self.falttenedRows[i].lazyRender = true;
1101
+ if (!allMatched) {
1102
+ // 20 个直接渲染,后面的按需渲染
1103
+ if (self.lazyRenderAfter &&
1104
+ self.falttenedRows.length > self.lazyRenderAfter) {
1105
+ for (var i = self.lazyRenderAfter, len = self.falttenedRows.length; i < len; i++) {
1106
+ self.falttenedRows[i].appeared = false;
1107
+ self.falttenedRows[i].lazyRender = true;
1108
+ }
1109
+ }
1110
+ var expand = self.footable && self.footable.expand;
1111
+ if (expand === 'first' ||
1112
+ (self.expandConfig && self.expandConfig.expand === 'first')) {
1113
+ self.rows.length && self.expandedRows.push(self.rows[0].id);
1114
+ }
1115
+ else if ((expand === 'all' && !self.footable.accordion) ||
1116
+ (self.expandConfig &&
1117
+ self.expandConfig.expand === 'all' &&
1118
+ !self.expandConfig.accordion)) {
1119
+ self.expandedRows.replace(getExpandAllRows(self.rows));
1096
1120
  }
1097
- }
1098
- var expand = self.footable && self.footable.expand;
1099
- if (expand === 'first' ||
1100
- (self.expandConfig && self.expandConfig.expand === 'first')) {
1101
- self.rows.length && self.expandedRows.push(self.rows[0].id);
1102
- }
1103
- else if ((expand === 'all' && !self.footable.accordion) ||
1104
- (self.expandConfig &&
1105
- self.expandConfig.expand === 'all' &&
1106
- !self.expandConfig.accordion)) {
1107
- self.expandedRows.replace(getExpandAllRows(self.rows));
1108
1121
  }
1109
1122
  self.dragging = false;
1110
1123
  }
@@ -1122,7 +1135,21 @@ var TableStore = iRenderer.iRendererStore
1122
1135
  function replaceRow(arr, reUseRow) {
1123
1136
  if (reUseRow === false) {
1124
1137
  self.rows.replace(arr.map(function (item) { return Row.create(item); }));
1125
- return;
1138
+ return false;
1139
+ }
1140
+ else if (reUseRow === 'match') {
1141
+ var rows_1 = self.falttenedRows;
1142
+ var allMatched_1 = true;
1143
+ self.rows.replace(arr.map(function (item) {
1144
+ var exist = rows_1.find(function (row) { return row.id === item.id; });
1145
+ if (exist) {
1146
+ exist.replaceWith(item);
1147
+ return exist;
1148
+ }
1149
+ allMatched_1 = false;
1150
+ return Row.create(item);
1151
+ }));
1152
+ return allMatched_1;
1126
1153
  }
1127
1154
  var pool = arr.concat();
1128
1155
  // 把多的删了先
@@ -1142,6 +1169,7 @@ var TableStore = iRenderer.iRendererStore
1142
1169
  }
1143
1170
  index++;
1144
1171
  }
1172
+ return false;
1145
1173
  }
1146
1174
  function updateSelected(selected, valueField) {
1147
1175
  self.selectedRows.clear();
@@ -1245,8 +1273,8 @@ var TableStore = iRenderer.iRendererStore
1245
1273
  var maxIndex = lastCheckedRowIndex > rowIndex ? lastCheckedRowIndex : rowIndex + 1;
1246
1274
  var rows = checkableRows.slice(minIndex, maxIndex);
1247
1275
  try {
1248
- for (var rows_1 = tslib.__values(rows), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {
1249
- var rowItem = rows_1_1.value;
1276
+ for (var rows_2 = tslib.__values(rows), rows_2_1 = rows_2.next(); !rows_2_1.done; rows_2_1 = rows_2.next()) {
1277
+ var rowItem = rows_2_1.value;
1250
1278
  // 如果上一个是选中状态,则将之间的所有 check 都变成可选
1251
1279
  if (!(lastCheckedRow.checked &&
1252
1280
  maxLength &&
@@ -1258,7 +1286,7 @@ var TableStore = iRenderer.iRendererStore
1258
1286
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
1259
1287
  finally {
1260
1288
  try {
1261
- if (rows_1_1 && !rows_1_1.done && (_a = rows_1.return)) _a.call(rows_1);
1289
+ if (rows_2_1 && !rows_2_1.done && (_a = rows_2.return)) _a.call(rows_2);
1262
1290
  }
1263
1291
  finally { if (e_1) throw e_1.error; }
1264
1292
  }
@@ -1356,9 +1384,9 @@ var TableStore = iRenderer.iRendererStore
1356
1384
  var rows = self.rows.concat();
1357
1385
  helper.eachTree(rows, function (item) {
1358
1386
  if (item.children) {
1359
- var rows_2 = item.children.concat().sort(function (a, b) { return a.index - b.index; });
1360
- rows_2.forEach(function (item) { return item.reset(); });
1361
- item.children.replace(rows_2);
1387
+ var rows_3 = item.children.concat().sort(function (a, b) { return a.index - b.index; });
1388
+ rows_3.forEach(function (item) { return item.reset(); });
1389
+ item.children.replace(rows_3);
1362
1390
  }
1363
1391
  });
1364
1392
  rows.forEach(function (item) { return item.reset(); });
@@ -1400,13 +1428,21 @@ var TableStore = iRenderer.iRendererStore
1400
1428
  */
1401
1429
  function persistSaveToggledColumns() {
1402
1430
  var key = self.columnsKey;
1431
+ var toggledColumns = self.activeToggaleColumns;
1432
+ var activedSearchableColumns = self.activedSearchableColumns;
1403
1433
  localStorage.setItem(key, JSON.stringify({
1404
- // 可显示列index
1405
- toggledColumnIndex: self.activeToggaleColumns.map(function (item) { return item.index; }),
1434
+ // 记录隐藏的字段,因为默认不设置是显示的,设置了隐藏才需要记录,这样新出来的字段才会默认显示
1435
+ unToggledColumns: self.columnsData
1436
+ .filter(function (item) { return !toggledColumns.includes(item); })
1437
+ .map(function (item) { return item.columnKey; }),
1406
1438
  // 列排序,name,label可能不存在
1407
- columnOrder: self.columnsData.map(function (item) { return item.name || item.label || item.rawIndex; }),
1408
- // 已激活的可查询列
1409
- enabledSearchableColumn: self.activedSearchableColumns.map(function (item) { return item.name; })
1439
+ columnOrder: self.columnsData.map(function (item) { return item.columnKey; }),
1440
+ // 同理只记录不启用的,因为默认是启用的
1441
+ disabledSearchableColumn: self.columnsData
1442
+ .filter(function (item) {
1443
+ return item.searchable && !activedSearchableColumns.includes(item);
1444
+ })
1445
+ .map(function (item) { return item.columnKey; })
1410
1446
  }));
1411
1447
  }
1412
1448
  function addForm(form, rowIndex) {
@@ -1441,14 +1477,6 @@ var TableStore = iRenderer.iRendererStore
1441
1477
  }
1442
1478
  }
1443
1479
  }
1444
- function getPersistDataKey(columns) {
1445
- // 这里的columns使用除了__开头的所有列
1446
- return (location.pathname +
1447
- self.path +
1448
- // 不能 sort 因为原始列的顺序设计器是可能改变的,此时如果缓存了打开会失效
1449
- // 还是缓存的顺序,不符合用户调整列顺序的预期
1450
- columns.map(function (item, index) { return item.name || item.label || index; }).join('-'));
1451
- }
1452
1480
  function setSearchFormExpanded(value) {
1453
1481
  self.searchFormExpanded = !!value;
1454
1482
  }
@@ -1498,16 +1526,18 @@ var TableStore = iRenderer.iRendererStore
1498
1526
  var key = self.columnsKey;
1499
1527
  var data = localStorage.getItem(key);
1500
1528
  if (data) {
1501
- var tableMetaData_1 = JSON.parse(data);
1502
- var toggledColumns_1 = object.isObject(tableMetaData_1)
1503
- ? tableMetaData_1 === null || tableMetaData_1 === void 0 ? void 0 : tableMetaData_1.toggledColumnIndex
1504
- : tableMetaData_1; // 兼容之前的类型
1529
+ var tableMetaData = JSON.parse(data);
1530
+ var unToggledColumns_1 = Array.isArray(tableMetaData.unToggledColumns)
1531
+ ? tableMetaData.unToggledColumns
1532
+ : [];
1533
+ var disabledSearchableColumn_1 = Array.isArray(tableMetaData.disabledSearchableColumn)
1534
+ ? tableMetaData.disabledSearchableColumn
1535
+ : [];
1505
1536
  self.toggableColumns.forEach(function (item) {
1506
- return item.setToggled(!!~toggledColumns_1.indexOf(item.index));
1537
+ return item.setToggled(!unToggledColumns_1.includes(item.columnKey));
1507
1538
  });
1508
1539
  self.searchableColumns.forEach(function (item) {
1509
- var _a;
1510
- item.setEnableSearch(!!~((_a = tableMetaData_1 === null || tableMetaData_1 === void 0 ? void 0 : tableMetaData_1.enabledSearchableColumn) !== null && _a !== void 0 ? _a : []).indexOf(item.name));
1540
+ item.setEnableSearch(!disabledSearchableColumn_1.includes(item.columnKey), true);
1511
1541
  });
1512
1542
  }
1513
1543
  }, 200);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/lib/theme.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/lib/types.d.ts CHANGED
@@ -181,6 +181,8 @@ export interface BaseApiObject {
181
181
  export type ClassName = string | {
182
182
  [propName: string]: boolean | undefined | null | string;
183
183
  };
184
+ export type RequestAdaptor = (api: ApiObject, context: any) => ApiObject | Promise<ApiObject>;
185
+ export type ResponseAdaptor = (payload: object, response: fetcherResult, api: ApiObject, context: any) => any;
184
186
  export interface ApiObject extends BaseApiObject {
185
187
  config?: {
186
188
  withCredentials?: boolean;
@@ -193,8 +195,8 @@ export interface ApiObject extends BaseApiObject {
193
195
  body?: PlainObject;
194
196
  query?: PlainObject;
195
197
  mockResponse?: PlainObject;
196
- adaptor?: (payload: object, response: fetcherResult, api: ApiObject, context: any) => any;
197
- requestAdaptor?: (api: ApiObject, context: any) => ApiObject | Promise<ApiObject>;
198
+ adaptor?: ResponseAdaptor;
199
+ requestAdaptor?: RequestAdaptor;
198
200
  /**
199
201
  * api 发送上下文,可以用来传递一些数据给 api 的 adaptor
200
202
  * @readonly
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,9 +1,29 @@
1
- import { Api, ApiObject, EventTrack, fetcherResult, Payload } from '../types';
1
+ import { Api, ApiObject, EventTrack, fetcherResult, Payload, RequestAdaptor, ResponseAdaptor } from '../types';
2
2
  import { FetcherConfig } from '../factory';
3
3
  interface ApiCacheConfig extends ApiObject {
4
4
  cachedPromise: Promise<any>;
5
5
  requestTime: number;
6
6
  }
7
+ /**
8
+ * 添加全局发送适配器
9
+ * @param adaptor
10
+ */
11
+ export declare function addApiRequestAdaptor(adaptor: RequestAdaptor): () => void;
12
+ /**
13
+ * 删除全局发送适配器
14
+ * @param adaptor
15
+ */
16
+ export declare function removeApiRequestAdaptor(adaptor: RequestAdaptor): void;
17
+ /**
18
+ * 添加全局响应适配器
19
+ * @param adaptor
20
+ */
21
+ export declare function addApiResponseAdator(adaptor: ResponseAdaptor): () => void;
22
+ /**
23
+ * 删除全局响应适配器
24
+ * @param adaptor
25
+ */
26
+ export declare function removeApiResponseAdaptor(adaptor: ResponseAdaptor): void;
7
27
  export declare function normalizeApi(api: Api, defaultMethod?: string): ApiObject;
8
28
  export declare function buildApi(api: Api, data?: object, options?: {
9
29
  autoAppend?: boolean;
package/lib/utils/api.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -34,6 +34,40 @@ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
34
34
 
35
35
  var rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head|jsonp|js):/i;
36
36
  var apiCaches = [];
37
+ var requestAdaptors = [];
38
+ var responseAdaptors = [];
39
+ /**
40
+ * 添加全局发送适配器
41
+ * @param adaptor
42
+ */
43
+ function addApiRequestAdaptor(adaptor) {
44
+ requestAdaptors.push(adaptor);
45
+ return function () { return removeApiRequestAdaptor(adaptor); };
46
+ }
47
+ /**
48
+ * 删除全局发送适配器
49
+ * @param adaptor
50
+ */
51
+ function removeApiRequestAdaptor(adaptor) {
52
+ var idx = requestAdaptors.findIndex(function (i) { return i === adaptor; });
53
+ ~idx && requestAdaptors.splice(idx, 1);
54
+ }
55
+ /**
56
+ * 添加全局响应适配器
57
+ * @param adaptor
58
+ */
59
+ function addApiResponseAdator(adaptor) {
60
+ responseAdaptors.push(adaptor);
61
+ return function () { return removeApiResponseAdaptor(adaptor); };
62
+ }
63
+ /**
64
+ * 删除全局响应适配器
65
+ * @param adaptor
66
+ */
67
+ function removeApiResponseAdaptor(adaptor) {
68
+ var idx = responseAdaptors.findIndex(function (i) { return i === adaptor; });
69
+ ~idx && responseAdaptors.splice(idx, 1);
70
+ }
37
71
  var isIE = !!document.documentMode;
38
72
  function normalizeApi(api, defaultMethod) {
39
73
  if (defaultMethod === void 0) { defaultMethod = 'get'; }
@@ -386,27 +420,57 @@ function wrapFetcher(fn, tracker) {
386
420
  var wrappedFetcher = function (api, data, options) {
387
421
  var _a, _b, _c;
388
422
  return tslib.__awaiter(this, void 0, void 0, function () {
389
- var originQuery, originQueryCopy, idx, apiCache, timeStamp;
423
+ var adaptors, adaptor_1, apiCache, timeStamp;
424
+ var _this = this;
390
425
  return tslib.__generator(this, function (_d) {
391
426
  switch (_d.label) {
392
427
  case 0:
393
428
  api = buildApi(api, data, options);
394
429
  api.context = data;
395
- if (!api.requestAdaptor) return [3 /*break*/, 2];
396
- debug.debug('api', 'before requestAdaptor', api);
397
- originQuery = api.query;
398
- originQueryCopy = isPlainObject__default["default"](api.query)
399
- ? cloneDeep__default["default"](api.query)
400
- : api.query;
401
- return [4 /*yield*/, api.requestAdaptor(api, data)];
402
- case 1:
403
- api = (_d.sent()) || api;
404
- if (api.query !== originQuery ||
405
- (isPlainObject__default["default"](api.query) && !isEqual__default["default"](api.query, originQueryCopy))) {
406
- idx = api.url.indexOf('?');
407
- api.url = "".concat(~idx ? api.url.substring(0, idx) : api.url, "?").concat(helper.qsstringify(api.query));
430
+ adaptors = requestAdaptors.concat();
431
+ if (api.requestAdaptor) {
432
+ adaptor_1 = api.requestAdaptor;
433
+ adaptors.unshift(function (api, context) { return tslib.__awaiter(_this, void 0, void 0, function () {
434
+ var originQuery, originQueryCopy, idx;
435
+ return tslib.__generator(this, function (_a) {
436
+ switch (_a.label) {
437
+ case 0:
438
+ originQuery = api.query;
439
+ originQueryCopy = isPlainObject__default["default"](api.query)
440
+ ? cloneDeep__default["default"](api.query)
441
+ : api.query;
442
+ debug.debug('api', 'before requestAdaptor', api);
443
+ return [4 /*yield*/, adaptor_1.call(api, api, context)];
444
+ case 1:
445
+ api = (_a.sent()) || api;
446
+ if (api.query !== originQuery ||
447
+ (isPlainObject__default["default"](api.query) && !isEqual__default["default"](api.query, originQueryCopy))) {
448
+ idx = api.url.indexOf('?');
449
+ api.url = "".concat(~idx ? api.url.substring(0, idx) : api.url, "?").concat(helper.qsstringify(api.query));
450
+ }
451
+ debug.debug('api', 'after requestAdaptor', api);
452
+ return [2 /*return*/, api];
453
+ }
454
+ });
455
+ }); });
408
456
  }
409
- debug.debug('api', 'after requestAdaptor', api);
457
+ if (!adaptors.length) return [3 /*break*/, 2];
458
+ return [4 /*yield*/, adaptors.reduce(function (api, fn) { return tslib.__awaiter(_this, void 0, void 0, function () {
459
+ var ret;
460
+ return tslib.__generator(this, function (_a) {
461
+ switch (_a.label) {
462
+ case 0: return [4 /*yield*/, api];
463
+ case 1:
464
+ ret = _a.sent();
465
+ return [4 /*yield*/, fn(ret, data)];
466
+ case 2:
467
+ ret = (_a.sent()) || ret;
468
+ return [2 /*return*/, ret];
469
+ }
470
+ });
471
+ }); }, Promise.resolve(api))];
472
+ case 1:
473
+ api = _d.sent();
410
474
  _d.label = 2;
411
475
  case 2:
412
476
  if (api.data &&
@@ -473,30 +537,58 @@ function wrapFetcher(fn, tracker) {
473
537
  return wrappedFetcher;
474
538
  }
475
539
  function wrapAdaptor(promise, api, context) {
476
- var _this = this;
477
- var adaptor = api.adaptor;
478
- return adaptor
479
- ? promise
480
- .then(function (response) { return tslib.__awaiter(_this, void 0, void 0, function () {
481
- var result;
482
- return tslib.__generator(this, function (_a) {
483
- switch (_a.label) {
484
- case 0:
485
- debug.debug('api', 'before adaptor data', response.data);
486
- result = adaptor(response.data, response, api, context);
487
- if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 2];
488
- return [4 /*yield*/, result];
489
- case 1:
490
- result = _a.sent();
491
- _a.label = 2;
492
- case 2:
493
- debug.debug('api', 'after adaptor data', result);
494
- return [2 /*return*/, tslib.__assign(tslib.__assign({}, response), { data: result })];
495
- }
496
- });
497
- }); })
498
- .then(function (ret) { return responseAdaptor(ret, api); })
499
- : promise.then(function (ret) { return responseAdaptor(ret, api); });
540
+ return tslib.__awaiter(this, void 0, void 0, function () {
541
+ var adaptors, adaptor_2, response;
542
+ var _this = this;
543
+ return tslib.__generator(this, function (_a) {
544
+ switch (_a.label) {
545
+ case 0:
546
+ adaptors = responseAdaptors.concat();
547
+ if (api.adaptor) {
548
+ adaptor_2 = api.adaptor;
549
+ adaptors.push(function (payload, response, api, context) { return tslib.__awaiter(_this, void 0, void 0, function () {
550
+ var result;
551
+ return tslib.__generator(this, function (_a) {
552
+ switch (_a.label) {
553
+ case 0:
554
+ debug.debug('api', 'before adaptor data', response.data);
555
+ result = adaptor_2(response.data, response, api, context);
556
+ if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 2];
557
+ return [4 /*yield*/, result];
558
+ case 1:
559
+ result = _a.sent();
560
+ _a.label = 2;
561
+ case 2:
562
+ debug.debug('api', 'after adaptor data', result);
563
+ return [2 /*return*/, result];
564
+ }
565
+ });
566
+ }); });
567
+ }
568
+ return [4 /*yield*/, adaptors.reduce(function (promise, adaptor) { return tslib.__awaiter(_this, void 0, void 0, function () {
569
+ var response, result;
570
+ var _a;
571
+ return tslib.__generator(this, function (_b) {
572
+ switch (_b.label) {
573
+ case 0: return [4 /*yield*/, promise];
574
+ case 1:
575
+ response = _b.sent();
576
+ result = (_a = adaptor(response.data, response, api, context)) !== null && _a !== void 0 ? _a : response.data;
577
+ if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 3];
578
+ return [4 /*yield*/, result];
579
+ case 2:
580
+ result = _b.sent();
581
+ _b.label = 3;
582
+ case 3: return [2 /*return*/, tslib.__assign(tslib.__assign({}, response), { data: result })];
583
+ }
584
+ });
585
+ }); }, promise)];
586
+ case 1:
587
+ response = _a.sent();
588
+ return [2 /*return*/, responseAdaptor(response, api)];
589
+ }
590
+ });
591
+ });
500
592
  }
501
593
  /**
502
594
  * 请求远程 js 文件然后 new Function 执行,用于 schemaApi 支持 JavaScript
@@ -716,6 +808,8 @@ function normalizeApiResponseData(data) {
716
808
  }
717
809
  // window.apiCaches = apiCaches;
718
810
 
811
+ exports.addApiRequestAdaptor = addApiRequestAdaptor;
812
+ exports.addApiResponseAdator = addApiResponseAdator;
719
813
  exports.buildApi = buildApi;
720
814
  exports.callStrFunction = callStrFunction;
721
815
  exports.clearApiCache = clearApiCache;
@@ -729,6 +823,8 @@ exports.jsFetcher = jsFetcher;
729
823
  exports.jsonpFetcher = jsonpFetcher;
730
824
  exports.normalizeApi = normalizeApi;
731
825
  exports.normalizeApiResponseData = normalizeApiResponseData;
826
+ exports.removeApiRequestAdaptor = removeApiRequestAdaptor;
827
+ exports.removeApiResponseAdaptor = removeApiResponseAdaptor;
732
828
  exports.responseAdaptor = responseAdaptor;
733
829
  exports.setApiCache = setApiCache;
734
830
  exports.str2AsyncFunction = str2AsyncFunction;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-rc.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5