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
 
@@ -9,6 +9,7 @@ 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 '../utils/memoryParse.js';
12
13
  import '@rc-component/mini-decimal';
13
14
  import { resolveVariable } from '../utils/resolveVariable.js';
14
15
  import { resolveVariableAndFilter } from '../utils/resolveVariableAndFilter.js';
@@ -94,6 +95,9 @@ var Column = types
94
95
  var _a;
95
96
  var table = getParent(self, 2);
96
97
  return (((_a = table.filteredColumns.find(function (column) { return !column.type.startsWith('__'); })) === null || _a === void 0 ? void 0 : _a.id) === self.id);
98
+ },
99
+ get columnKey() {
100
+ return self.pristine.uid || self.name || self.label || self.rawIndex;
97
101
  }
98
102
  }); })
99
103
  .actions(function (self) { return ({
@@ -109,10 +113,13 @@ var Column = types
109
113
  setToggled: function (value) {
110
114
  self.toggled = value;
111
115
  },
112
- setEnableSearch: function (value) {
116
+ setEnableSearch: function (value, skipSave) {
117
+ if (skipSave === void 0) { skipSave = false; }
113
118
  self.enableSearch = value;
114
- var table = getParent(self, 2);
115
- table.persistSaveToggledColumns();
119
+ if (!skipSave) {
120
+ var table = getParent(self, 2);
121
+ table.persistSaveToggledColumns();
122
+ }
116
123
  },
117
124
  setMinWidth: function (value) {
118
125
  self.minWidth = value;
@@ -363,7 +370,6 @@ var TableStore = iRendererStore
363
370
  .named('TableStore')
364
371
  .props({
365
372
  columns: types.array(Column),
366
- columnsKey: '',
367
373
  rows: types.array(Row),
368
374
  selectedRows: types.array(types.reference(Row)),
369
375
  expandedRows: types.array(types.string),
@@ -585,6 +591,9 @@ var TableStore = iRendererStore
585
591
  }
586
592
  return {
587
593
  getSelectionUpperLimit: getSelectionUpperLimit,
594
+ get columnsKey() {
595
+ return location.pathname + self.path;
596
+ },
588
597
  get columnsData() {
589
598
  return getColumnsExceptBuiltinTypes();
590
599
  },
@@ -703,7 +712,8 @@ var TableStore = iRendererStore
703
712
  get columnWidthReady() {
704
713
  return getFilteredColumns().every(function (column) { return column.realWidth; });
705
714
  },
706
- getStickyStyles: function (column, columns) {
715
+ getStickyStyles: function (column, columns, colSpan) {
716
+ if (colSpan === void 0) { colSpan = 1; }
707
717
  var stickyClassName = '';
708
718
  var style = {};
709
719
  var autoFixLeftColumns = ['__checkme', '__dragme', '__expandme'];
@@ -712,7 +722,7 @@ var TableStore = iRendererStore
712
722
  stickyClassName = 'is-sticky is-sticky-left';
713
723
  var index = columns.indexOf(column) - 1;
714
724
  if (columns
715
- .slice(index + 2)
725
+ .slice(index + (colSpan - 1) + 2)
716
726
  .every(function (col) {
717
727
  return !((col && col.fixed === 'left') ||
718
728
  autoFixLeftColumns.includes(col.type));
@@ -826,7 +836,6 @@ var TableStore = iRendererStore
826
836
  typeof config.tableLayout === 'string' &&
827
837
  (self.tableLayout = config.tableLayout);
828
838
  if (config.columns && Array.isArray(config.columns)) {
829
- self.columnsKey = getPersistDataKey(config.columns);
830
839
  var columns = config.columns
831
840
  .map(function (column) {
832
841
  if ((options === null || options === void 0 ? void 0 : options.resolveDefinitions) &&
@@ -849,7 +858,9 @@ var TableStore = iRendererStore
849
858
  var order_1 = tableMetaData === null || tableMetaData === void 0 ? void 0 : tableMetaData.columnOrder;
850
859
  if (Array.isArray(order_1) && order_1.length != 0) {
851
860
  columns = sortBy(columns, function (item, index) {
852
- return order_1.indexOf(item.name || item.label || index);
861
+ var columnKey = item.uid || item.name || item.label || index;
862
+ var idx = order_1.indexOf(columnKey);
863
+ return idx === -1 ? Number.MAX_SAFE_INTEGER : idx;
853
864
  });
854
865
  }
855
866
  }
@@ -1076,26 +1087,28 @@ var TableStore = iRendererStore
1076
1087
  if (self.combineNum) {
1077
1088
  arr = autoCombineCell(arr, self.columns, self.combineNum, self.combineFromIndex);
1078
1089
  }
1079
- replaceRow(arr, reUseRow);
1090
+ var allMatched = replaceRow(arr, reUseRow);
1080
1091
  self.isNested = self.rows.some(function (item) { return item.children.length || (item.defer && !item.loaded); });
1081
- // 20 个直接渲染,后面的按需渲染
1082
- if (self.lazyRenderAfter &&
1083
- self.falttenedRows.length > self.lazyRenderAfter) {
1084
- for (var i = self.lazyRenderAfter, len = self.falttenedRows.length; i < len; i++) {
1085
- self.falttenedRows[i].appeared = false;
1086
- self.falttenedRows[i].lazyRender = true;
1092
+ if (!allMatched) {
1093
+ // 20 个直接渲染,后面的按需渲染
1094
+ if (self.lazyRenderAfter &&
1095
+ self.falttenedRows.length > self.lazyRenderAfter) {
1096
+ for (var i = self.lazyRenderAfter, len = self.falttenedRows.length; i < len; i++) {
1097
+ self.falttenedRows[i].appeared = false;
1098
+ self.falttenedRows[i].lazyRender = true;
1099
+ }
1100
+ }
1101
+ var expand = self.footable && self.footable.expand;
1102
+ if (expand === 'first' ||
1103
+ (self.expandConfig && self.expandConfig.expand === 'first')) {
1104
+ self.rows.length && self.expandedRows.push(self.rows[0].id);
1105
+ }
1106
+ else if ((expand === 'all' && !self.footable.accordion) ||
1107
+ (self.expandConfig &&
1108
+ self.expandConfig.expand === 'all' &&
1109
+ !self.expandConfig.accordion)) {
1110
+ self.expandedRows.replace(getExpandAllRows(self.rows));
1087
1111
  }
1088
- }
1089
- var expand = self.footable && self.footable.expand;
1090
- if (expand === 'first' ||
1091
- (self.expandConfig && self.expandConfig.expand === 'first')) {
1092
- self.rows.length && self.expandedRows.push(self.rows[0].id);
1093
- }
1094
- else if ((expand === 'all' && !self.footable.accordion) ||
1095
- (self.expandConfig &&
1096
- self.expandConfig.expand === 'all' &&
1097
- !self.expandConfig.accordion)) {
1098
- self.expandedRows.replace(getExpandAllRows(self.rows));
1099
1112
  }
1100
1113
  self.dragging = false;
1101
1114
  }
@@ -1113,7 +1126,21 @@ var TableStore = iRendererStore
1113
1126
  function replaceRow(arr, reUseRow) {
1114
1127
  if (reUseRow === false) {
1115
1128
  self.rows.replace(arr.map(function (item) { return Row.create(item); }));
1116
- return;
1129
+ return false;
1130
+ }
1131
+ else if (reUseRow === 'match') {
1132
+ var rows_1 = self.falttenedRows;
1133
+ var allMatched_1 = true;
1134
+ self.rows.replace(arr.map(function (item) {
1135
+ var exist = rows_1.find(function (row) { return row.id === item.id; });
1136
+ if (exist) {
1137
+ exist.replaceWith(item);
1138
+ return exist;
1139
+ }
1140
+ allMatched_1 = false;
1141
+ return Row.create(item);
1142
+ }));
1143
+ return allMatched_1;
1117
1144
  }
1118
1145
  var pool = arr.concat();
1119
1146
  // 把多的删了先
@@ -1133,6 +1160,7 @@ var TableStore = iRendererStore
1133
1160
  }
1134
1161
  index++;
1135
1162
  }
1163
+ return false;
1136
1164
  }
1137
1165
  function updateSelected(selected, valueField) {
1138
1166
  self.selectedRows.clear();
@@ -1236,8 +1264,8 @@ var TableStore = iRendererStore
1236
1264
  var maxIndex = lastCheckedRowIndex > rowIndex ? lastCheckedRowIndex : rowIndex + 1;
1237
1265
  var rows = checkableRows.slice(minIndex, maxIndex);
1238
1266
  try {
1239
- for (var rows_1 = __values(rows), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {
1240
- var rowItem = rows_1_1.value;
1267
+ for (var rows_2 = __values(rows), rows_2_1 = rows_2.next(); !rows_2_1.done; rows_2_1 = rows_2.next()) {
1268
+ var rowItem = rows_2_1.value;
1241
1269
  // 如果上一个是选中状态,则将之间的所有 check 都变成可选
1242
1270
  if (!(lastCheckedRow.checked &&
1243
1271
  maxLength &&
@@ -1249,7 +1277,7 @@ var TableStore = iRendererStore
1249
1277
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
1250
1278
  finally {
1251
1279
  try {
1252
- if (rows_1_1 && !rows_1_1.done && (_a = rows_1.return)) _a.call(rows_1);
1280
+ if (rows_2_1 && !rows_2_1.done && (_a = rows_2.return)) _a.call(rows_2);
1253
1281
  }
1254
1282
  finally { if (e_1) throw e_1.error; }
1255
1283
  }
@@ -1347,9 +1375,9 @@ var TableStore = iRendererStore
1347
1375
  var rows = self.rows.concat();
1348
1376
  eachTree(rows, function (item) {
1349
1377
  if (item.children) {
1350
- var rows_2 = item.children.concat().sort(function (a, b) { return a.index - b.index; });
1351
- rows_2.forEach(function (item) { return item.reset(); });
1352
- item.children.replace(rows_2);
1378
+ var rows_3 = item.children.concat().sort(function (a, b) { return a.index - b.index; });
1379
+ rows_3.forEach(function (item) { return item.reset(); });
1380
+ item.children.replace(rows_3);
1353
1381
  }
1354
1382
  });
1355
1383
  rows.forEach(function (item) { return item.reset(); });
@@ -1391,13 +1419,21 @@ var TableStore = iRendererStore
1391
1419
  */
1392
1420
  function persistSaveToggledColumns() {
1393
1421
  var key = self.columnsKey;
1422
+ var toggledColumns = self.activeToggaleColumns;
1423
+ var activedSearchableColumns = self.activedSearchableColumns;
1394
1424
  localStorage.setItem(key, JSON.stringify({
1395
- // 可显示列index
1396
- toggledColumnIndex: self.activeToggaleColumns.map(function (item) { return item.index; }),
1425
+ // 记录隐藏的字段,因为默认不设置是显示的,设置了隐藏才需要记录,这样新出来的字段才会默认显示
1426
+ unToggledColumns: self.columnsData
1427
+ .filter(function (item) { return !toggledColumns.includes(item); })
1428
+ .map(function (item) { return item.columnKey; }),
1397
1429
  // 列排序,name,label可能不存在
1398
- columnOrder: self.columnsData.map(function (item) { return item.name || item.label || item.rawIndex; }),
1399
- // 已激活的可查询列
1400
- enabledSearchableColumn: self.activedSearchableColumns.map(function (item) { return item.name; })
1430
+ columnOrder: self.columnsData.map(function (item) { return item.columnKey; }),
1431
+ // 同理只记录不启用的,因为默认是启用的
1432
+ disabledSearchableColumn: self.columnsData
1433
+ .filter(function (item) {
1434
+ return item.searchable && !activedSearchableColumns.includes(item);
1435
+ })
1436
+ .map(function (item) { return item.columnKey; })
1401
1437
  }));
1402
1438
  }
1403
1439
  function addForm(form, rowIndex) {
@@ -1432,14 +1468,6 @@ var TableStore = iRendererStore
1432
1468
  }
1433
1469
  }
1434
1470
  }
1435
- function getPersistDataKey(columns) {
1436
- // 这里的columns使用除了__开头的所有列
1437
- return (location.pathname +
1438
- self.path +
1439
- // 不能 sort 因为原始列的顺序设计器是可能改变的,此时如果缓存了打开会失效
1440
- // 还是缓存的顺序,不符合用户调整列顺序的预期
1441
- columns.map(function (item, index) { return item.name || item.label || index; }).join('-'));
1442
- }
1443
1471
  function setSearchFormExpanded(value) {
1444
1472
  self.searchFormExpanded = !!value;
1445
1473
  }
@@ -1489,16 +1517,18 @@ var TableStore = iRendererStore
1489
1517
  var key = self.columnsKey;
1490
1518
  var data = localStorage.getItem(key);
1491
1519
  if (data) {
1492
- var tableMetaData_1 = JSON.parse(data);
1493
- var toggledColumns_1 = isObject(tableMetaData_1)
1494
- ? tableMetaData_1 === null || tableMetaData_1 === void 0 ? void 0 : tableMetaData_1.toggledColumnIndex
1495
- : tableMetaData_1; // 兼容之前的类型
1520
+ var tableMetaData = JSON.parse(data);
1521
+ var unToggledColumns_1 = Array.isArray(tableMetaData.unToggledColumns)
1522
+ ? tableMetaData.unToggledColumns
1523
+ : [];
1524
+ var disabledSearchableColumn_1 = Array.isArray(tableMetaData.disabledSearchableColumn)
1525
+ ? tableMetaData.disabledSearchableColumn
1526
+ : [];
1496
1527
  self.toggableColumns.forEach(function (item) {
1497
- return item.setToggled(!!~toggledColumns_1.indexOf(item.index));
1528
+ return item.setToggled(!unToggledColumns_1.includes(item.columnKey));
1498
1529
  });
1499
1530
  self.searchableColumns.forEach(function (item) {
1500
- var _a;
1501
- item.setEnableSearch(!!~((_a = tableMetaData_1 === null || tableMetaData_1 === void 0 ? void 0 : tableMetaData_1.enabledSearchableColumn) !== null && _a !== void 0 ? _a : []).indexOf(item.name));
1531
+ item.setEnableSearch(!disabledSearchableColumn_1.includes(item.columnKey), true);
1502
1532
  });
1503
1533
  }
1504
1534
  }, 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/esm/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/esm/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/esm/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
 
@@ -23,6 +23,40 @@ import isEqual from 'lodash/isEqual';
23
23
 
24
24
  var rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head|jsonp|js):/i;
25
25
  var apiCaches = [];
26
+ var requestAdaptors = [];
27
+ var responseAdaptors = [];
28
+ /**
29
+ * 添加全局发送适配器
30
+ * @param adaptor
31
+ */
32
+ function addApiRequestAdaptor(adaptor) {
33
+ requestAdaptors.push(adaptor);
34
+ return function () { return removeApiRequestAdaptor(adaptor); };
35
+ }
36
+ /**
37
+ * 删除全局发送适配器
38
+ * @param adaptor
39
+ */
40
+ function removeApiRequestAdaptor(adaptor) {
41
+ var idx = requestAdaptors.findIndex(function (i) { return i === adaptor; });
42
+ ~idx && requestAdaptors.splice(idx, 1);
43
+ }
44
+ /**
45
+ * 添加全局响应适配器
46
+ * @param adaptor
47
+ */
48
+ function addApiResponseAdator(adaptor) {
49
+ responseAdaptors.push(adaptor);
50
+ return function () { return removeApiResponseAdaptor(adaptor); };
51
+ }
52
+ /**
53
+ * 删除全局响应适配器
54
+ * @param adaptor
55
+ */
56
+ function removeApiResponseAdaptor(adaptor) {
57
+ var idx = responseAdaptors.findIndex(function (i) { return i === adaptor; });
58
+ ~idx && responseAdaptors.splice(idx, 1);
59
+ }
26
60
  var isIE = !!document.documentMode;
27
61
  function normalizeApi(api, defaultMethod) {
28
62
  if (defaultMethod === void 0) { defaultMethod = 'get'; }
@@ -375,27 +409,57 @@ function wrapFetcher(fn, tracker) {
375
409
  var wrappedFetcher = function (api, data, options) {
376
410
  var _a, _b, _c;
377
411
  return __awaiter(this, void 0, void 0, function () {
378
- var originQuery, originQueryCopy, idx, apiCache, timeStamp;
412
+ var adaptors, adaptor_1, apiCache, timeStamp;
413
+ var _this = this;
379
414
  return __generator(this, function (_d) {
380
415
  switch (_d.label) {
381
416
  case 0:
382
417
  api = buildApi(api, data, options);
383
418
  api.context = data;
384
- if (!api.requestAdaptor) return [3 /*break*/, 2];
385
- debug('api', 'before requestAdaptor', api);
386
- originQuery = api.query;
387
- originQueryCopy = isPlainObject(api.query)
388
- ? cloneDeep(api.query)
389
- : api.query;
390
- return [4 /*yield*/, api.requestAdaptor(api, data)];
391
- case 1:
392
- api = (_d.sent()) || api;
393
- if (api.query !== originQuery ||
394
- (isPlainObject(api.query) && !isEqual(api.query, originQueryCopy))) {
395
- idx = api.url.indexOf('?');
396
- api.url = "".concat(~idx ? api.url.substring(0, idx) : api.url, "?").concat(qsstringify(api.query));
419
+ adaptors = requestAdaptors.concat();
420
+ if (api.requestAdaptor) {
421
+ adaptor_1 = api.requestAdaptor;
422
+ adaptors.unshift(function (api, context) { return __awaiter(_this, void 0, void 0, function () {
423
+ var originQuery, originQueryCopy, idx;
424
+ return __generator(this, function (_a) {
425
+ switch (_a.label) {
426
+ case 0:
427
+ originQuery = api.query;
428
+ originQueryCopy = isPlainObject(api.query)
429
+ ? cloneDeep(api.query)
430
+ : api.query;
431
+ debug('api', 'before requestAdaptor', api);
432
+ return [4 /*yield*/, adaptor_1.call(api, api, context)];
433
+ case 1:
434
+ api = (_a.sent()) || api;
435
+ if (api.query !== originQuery ||
436
+ (isPlainObject(api.query) && !isEqual(api.query, originQueryCopy))) {
437
+ idx = api.url.indexOf('?');
438
+ api.url = "".concat(~idx ? api.url.substring(0, idx) : api.url, "?").concat(qsstringify(api.query));
439
+ }
440
+ debug('api', 'after requestAdaptor', api);
441
+ return [2 /*return*/, api];
442
+ }
443
+ });
444
+ }); });
397
445
  }
398
- debug('api', 'after requestAdaptor', api);
446
+ if (!adaptors.length) return [3 /*break*/, 2];
447
+ return [4 /*yield*/, adaptors.reduce(function (api, fn) { return __awaiter(_this, void 0, void 0, function () {
448
+ var ret;
449
+ return __generator(this, function (_a) {
450
+ switch (_a.label) {
451
+ case 0: return [4 /*yield*/, api];
452
+ case 1:
453
+ ret = _a.sent();
454
+ return [4 /*yield*/, fn(ret, data)];
455
+ case 2:
456
+ ret = (_a.sent()) || ret;
457
+ return [2 /*return*/, ret];
458
+ }
459
+ });
460
+ }); }, Promise.resolve(api))];
461
+ case 1:
462
+ api = _d.sent();
399
463
  _d.label = 2;
400
464
  case 2:
401
465
  if (api.data &&
@@ -462,30 +526,58 @@ function wrapFetcher(fn, tracker) {
462
526
  return wrappedFetcher;
463
527
  }
464
528
  function wrapAdaptor(promise, api, context) {
465
- var _this = this;
466
- var adaptor = api.adaptor;
467
- return adaptor
468
- ? promise
469
- .then(function (response) { return __awaiter(_this, void 0, void 0, function () {
470
- var result;
471
- return __generator(this, function (_a) {
472
- switch (_a.label) {
473
- case 0:
474
- debug('api', 'before adaptor data', response.data);
475
- result = adaptor(response.data, response, api, context);
476
- if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 2];
477
- return [4 /*yield*/, result];
478
- case 1:
479
- result = _a.sent();
480
- _a.label = 2;
481
- case 2:
482
- debug('api', 'after adaptor data', result);
483
- return [2 /*return*/, __assign(__assign({}, response), { data: result })];
484
- }
485
- });
486
- }); })
487
- .then(function (ret) { return responseAdaptor(ret, api); })
488
- : promise.then(function (ret) { return responseAdaptor(ret, api); });
529
+ return __awaiter(this, void 0, void 0, function () {
530
+ var adaptors, adaptor_2, response;
531
+ var _this = this;
532
+ return __generator(this, function (_a) {
533
+ switch (_a.label) {
534
+ case 0:
535
+ adaptors = responseAdaptors.concat();
536
+ if (api.adaptor) {
537
+ adaptor_2 = api.adaptor;
538
+ adaptors.push(function (payload, response, api, context) { return __awaiter(_this, void 0, void 0, function () {
539
+ var result;
540
+ return __generator(this, function (_a) {
541
+ switch (_a.label) {
542
+ case 0:
543
+ debug('api', 'before adaptor data', response.data);
544
+ result = adaptor_2(response.data, response, api, context);
545
+ if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 2];
546
+ return [4 /*yield*/, result];
547
+ case 1:
548
+ result = _a.sent();
549
+ _a.label = 2;
550
+ case 2:
551
+ debug('api', 'after adaptor data', result);
552
+ return [2 /*return*/, result];
553
+ }
554
+ });
555
+ }); });
556
+ }
557
+ return [4 /*yield*/, adaptors.reduce(function (promise, adaptor) { return __awaiter(_this, void 0, void 0, function () {
558
+ var response, result;
559
+ var _a;
560
+ return __generator(this, function (_b) {
561
+ switch (_b.label) {
562
+ case 0: return [4 /*yield*/, promise];
563
+ case 1:
564
+ response = _b.sent();
565
+ result = (_a = adaptor(response.data, response, api, context)) !== null && _a !== void 0 ? _a : response.data;
566
+ if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 3];
567
+ return [4 /*yield*/, result];
568
+ case 2:
569
+ result = _b.sent();
570
+ _b.label = 3;
571
+ case 3: return [2 /*return*/, __assign(__assign({}, response), { data: result })];
572
+ }
573
+ });
574
+ }); }, promise)];
575
+ case 1:
576
+ response = _a.sent();
577
+ return [2 /*return*/, responseAdaptor(response, api)];
578
+ }
579
+ });
580
+ });
489
581
  }
490
582
  /**
491
583
  * 请求远程 js 文件然后 new Function 执行,用于 schemaApi 支持 JavaScript
@@ -705,4 +797,4 @@ function normalizeApiResponseData(data) {
705
797
  }
706
798
  // window.apiCaches = apiCaches;
707
799
 
708
- export { buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher };
800
+ export { addApiRequestAdaptor, addApiResponseAdator, buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, removeApiRequestAdaptor, removeApiResponseAdaptor, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher };
@@ -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,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