amis-core 6.7.0 → 6.9.0-beta.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 (332) 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 +44 -20
  6. package/esm/Scoped.d.ts +1 -1
  7. package/esm/Scoped.js +2 -1
  8. package/esm/StatusScoped.js +1 -1
  9. package/esm/WithRootStore.js +1 -1
  10. package/esm/WithStore.js +14 -14
  11. package/esm/actions/Action.js +2 -1
  12. package/esm/actions/AjaxAction.js +1 -1
  13. package/esm/actions/BreakAction.js +1 -1
  14. package/esm/actions/BroadcastAction.js +1 -1
  15. package/esm/actions/CmptAction.js +57 -50
  16. package/esm/actions/ContinueAction.js +1 -1
  17. package/esm/actions/CopyAction.js +1 -1
  18. package/esm/actions/CustomAction.js +2 -1
  19. package/esm/actions/DialogAction.js +3 -1
  20. package/esm/actions/DrawerAction.js +2 -1
  21. package/esm/actions/EmailAction.js +1 -1
  22. package/esm/actions/EventAction.js +2 -1
  23. package/esm/actions/LinkAction.js +1 -1
  24. package/esm/actions/LoopAction.js +2 -1
  25. package/esm/actions/PageAction.js +1 -1
  26. package/esm/actions/ParallelAction.js +1 -1
  27. package/esm/actions/PrintAction.js +1 -1
  28. package/esm/actions/StatusAction.js +1 -1
  29. package/esm/actions/SwitchAction.js +1 -1
  30. package/esm/actions/ToastAction.js +3 -3
  31. package/esm/actions/WaitAction.js +1 -1
  32. package/esm/components/CustomStyle.js +1 -1
  33. package/esm/components/ErrorBoundary.js +1 -1
  34. package/esm/components/LazyComponent.d.ts +40 -2
  35. package/esm/components/LazyComponent.js +13 -7
  36. package/esm/components/Overlay.js +2 -1
  37. package/esm/components/PopOver.d.ts +1 -1
  38. package/esm/components/PopOver.js +2 -1
  39. package/esm/env.d.ts +0 -4
  40. package/esm/env.js +1 -1
  41. package/esm/envOverwrite.js +1 -1
  42. package/esm/factory.d.ts +19 -2
  43. package/esm/factory.js +205 -45
  44. package/esm/index.d.ts +4 -4
  45. package/esm/index.js +9 -5
  46. package/esm/locale.d.ts +1 -1
  47. package/esm/locale.js +14 -2
  48. package/esm/polyfills.js +1 -1
  49. package/esm/renderers/Form.d.ts +5 -5
  50. package/esm/renderers/Form.js +68 -29
  51. package/esm/renderers/Item.d.ts +109 -18
  52. package/esm/renderers/Item.js +164 -126
  53. package/esm/renderers/Options.d.ts +3 -3
  54. package/esm/renderers/Options.js +43 -19
  55. package/esm/renderers/Placeholder.js +1 -1
  56. package/esm/renderers/builtin.js +1 -1
  57. package/esm/renderers/register.js +1 -1
  58. package/esm/renderers/wrapControl.d.ts +3 -3
  59. package/esm/renderers/wrapControl.js +25 -10
  60. package/esm/store/app.d.ts +3 -3
  61. package/esm/store/app.js +2 -1
  62. package/esm/store/combo.d.ts +425 -15
  63. package/esm/store/combo.js +1 -1
  64. package/esm/store/crud.d.ts +3 -3
  65. package/esm/store/crud.js +2 -1
  66. package/esm/store/form.d.ts +178 -7
  67. package/esm/store/form.js +29 -6
  68. package/esm/store/formItem.d.ts +5 -0
  69. package/esm/store/formItem.js +32 -10
  70. package/esm/store/iRenderer.d.ts +4 -3
  71. package/esm/store/iRenderer.js +29 -4
  72. package/esm/store/index.d.ts +1 -0
  73. package/esm/store/index.js +3 -2
  74. package/esm/store/list.d.ts +3 -3
  75. package/esm/store/list.js +1 -1
  76. package/esm/store/manager.js +1 -1
  77. package/esm/store/modal.d.ts +3 -3
  78. package/esm/store/modal.js +1 -1
  79. package/esm/store/node.js +1 -1
  80. package/esm/store/pagination.d.ts +3 -3
  81. package/esm/store/pagination.js +2 -1
  82. package/esm/store/root.d.ts +5 -3
  83. package/esm/store/root.js +46 -21
  84. package/esm/store/service.d.ts +3 -3
  85. package/esm/store/service.js +11 -4
  86. package/esm/store/status.js +1 -1
  87. package/esm/store/table.d.ts +396 -36
  88. package/esm/store/table.js +84 -54
  89. package/esm/store/table2.d.ts +3 -3
  90. package/esm/store/table2.js +1 -1
  91. package/esm/theme.d.ts +1 -1
  92. package/esm/theme.js +13 -2
  93. package/esm/types.d.ts +19 -2
  94. package/esm/utils/Animation.js +1 -1
  95. package/esm/utils/ColorScale.js +1 -1
  96. package/esm/utils/DataSchema.js +1 -1
  97. package/esm/utils/DataScope.js +1 -1
  98. package/esm/utils/RootClose.js +1 -1
  99. package/esm/utils/SimpleMap.js +1 -1
  100. package/esm/utils/api.d.ts +21 -1
  101. package/esm/utils/api.js +138 -41
  102. package/esm/utils/arraySlice.js +1 -1
  103. package/esm/utils/attachmentAdpator.js +1 -1
  104. package/esm/utils/autobind.js +1 -1
  105. package/esm/utils/browser.js +1 -1
  106. package/esm/utils/columnsSplit.js +1 -1
  107. package/esm/utils/concatData.js +1 -1
  108. package/esm/utils/dataMapping.js +1 -1
  109. package/esm/utils/date.js +1 -1
  110. package/esm/utils/debug.js +17 -3
  111. package/esm/utils/decodeEntity.js +1 -1
  112. package/esm/utils/dom.js +1 -1
  113. package/esm/utils/errors.js +1 -1
  114. package/esm/utils/escapeHtml.js +1 -1
  115. package/esm/utils/filter-schema.js +1 -1
  116. package/esm/utils/filter.js +1 -1
  117. package/esm/utils/formatDuration.js +1 -1
  118. package/esm/utils/formula.js +2 -1
  119. package/esm/utils/getVariable.js +1 -1
  120. package/esm/utils/grammar.js +1 -1
  121. package/esm/utils/handleAction.js +1 -1
  122. package/esm/utils/helper.d.ts +4 -1
  123. package/esm/utils/helper.js +20 -4
  124. package/esm/utils/highlight.js +1 -1
  125. package/esm/utils/icon.js +1 -1
  126. package/esm/utils/image.js +1 -1
  127. package/esm/utils/isPureVariable.js +2 -2
  128. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  129. package/esm/utils/keyToPath.js +1 -1
  130. package/esm/utils/labelToString.js +4 -1
  131. package/esm/utils/makeSorter.js +1 -1
  132. package/esm/utils/math.js +1 -1
  133. package/esm/utils/memoryParse.d.ts +2 -1
  134. package/esm/utils/memoryParse.js +10 -6
  135. package/esm/utils/normalizeLink.js +1 -1
  136. package/esm/utils/normalizeOptions.js +1 -1
  137. package/esm/utils/object.d.ts +2 -4
  138. package/esm/utils/object.js +1 -1
  139. package/esm/utils/offset.js +1 -1
  140. package/esm/utils/offsetParent.js +1 -1
  141. package/esm/utils/optionValueCompare.js +1 -1
  142. package/esm/utils/position.js +1 -1
  143. package/esm/utils/prettyBytes.js +1 -1
  144. package/esm/utils/printElement.js +1 -1
  145. package/esm/utils/renderer-event.js +1 -1
  146. package/esm/utils/replaceText.js +1 -1
  147. package/esm/utils/resize-sensor.js +30 -1
  148. package/esm/utils/resolveCondition.js +2 -1
  149. package/esm/utils/resolveVariable.js +1 -1
  150. package/esm/utils/resolveVariableAndFilter.js +1 -1
  151. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  152. package/esm/utils/scrollPosition.js +1 -1
  153. package/esm/utils/string2regExp.js +1 -1
  154. package/esm/utils/stripNumber.js +1 -1
  155. package/esm/utils/style-helper.js +1 -1
  156. package/esm/utils/style.js +2 -1
  157. package/esm/utils/toNumber.js +1 -1
  158. package/esm/utils/tokenize.js +1 -1
  159. package/esm/utils/tpl-builtin.js +2 -1
  160. package/esm/utils/tpl-lodash.js +2 -1
  161. package/esm/utils/tpl.js +1 -1
  162. package/esm/utils/uncontrollable.js +1 -1
  163. package/esm/utils/validateId.js +1 -1
  164. package/esm/utils/validations.js +2 -1
  165. package/esm/utils/visitedCache.d.ts +46 -0
  166. package/esm/utils/visitedCache.js +124 -0
  167. package/lib/Root.js +1 -1
  168. package/lib/RootRenderer.js +23 -1
  169. package/lib/SchemaRenderer.d.ts +0 -1
  170. package/lib/SchemaRenderer.js +42 -18
  171. package/lib/Scoped.d.ts +1 -1
  172. package/lib/Scoped.js +2 -1
  173. package/lib/StatusScoped.js +1 -1
  174. package/lib/WithRootStore.js +1 -1
  175. package/lib/WithStore.js +14 -14
  176. package/lib/actions/Action.js +2 -1
  177. package/lib/actions/AjaxAction.js +1 -1
  178. package/lib/actions/BreakAction.js +1 -1
  179. package/lib/actions/BroadcastAction.js +1 -1
  180. package/lib/actions/CmptAction.js +56 -49
  181. package/lib/actions/ContinueAction.js +1 -1
  182. package/lib/actions/CopyAction.js +1 -1
  183. package/lib/actions/CustomAction.js +2 -1
  184. package/lib/actions/DialogAction.js +3 -1
  185. package/lib/actions/DrawerAction.js +2 -1
  186. package/lib/actions/EmailAction.js +1 -1
  187. package/lib/actions/EventAction.js +2 -1
  188. package/lib/actions/LinkAction.js +1 -1
  189. package/lib/actions/LoopAction.js +2 -1
  190. package/lib/actions/PageAction.js +1 -1
  191. package/lib/actions/ParallelAction.js +1 -1
  192. package/lib/actions/PrintAction.js +1 -1
  193. package/lib/actions/StatusAction.js +1 -1
  194. package/lib/actions/SwitchAction.js +1 -1
  195. package/lib/actions/ToastAction.js +2 -2
  196. package/lib/actions/WaitAction.js +1 -1
  197. package/lib/components/CustomStyle.js +1 -1
  198. package/lib/components/ErrorBoundary.js +1 -1
  199. package/lib/components/LazyComponent.d.ts +40 -2
  200. package/lib/components/LazyComponent.js +14 -7
  201. package/lib/components/Overlay.js +2 -1
  202. package/lib/components/PopOver.d.ts +1 -1
  203. package/lib/components/PopOver.js +2 -1
  204. package/lib/env.d.ts +0 -4
  205. package/lib/env.js +1 -1
  206. package/lib/envOverwrite.js +1 -1
  207. package/lib/factory.d.ts +19 -2
  208. package/lib/factory.js +211 -44
  209. package/lib/index.d.ts +4 -4
  210. package/lib/index.js +16 -2
  211. package/lib/locale.d.ts +1 -1
  212. package/lib/locale.js +14 -2
  213. package/lib/polyfills.js +1 -1
  214. package/lib/renderers/Form.d.ts +5 -5
  215. package/lib/renderers/Form.js +65 -26
  216. package/lib/renderers/Item.d.ts +110 -19
  217. package/lib/renderers/Item.js +163 -125
  218. package/lib/renderers/Options.d.ts +3 -3
  219. package/lib/renderers/Options.js +43 -19
  220. package/lib/renderers/Placeholder.js +1 -1
  221. package/lib/renderers/builtin.js +1 -1
  222. package/lib/renderers/register.js +1 -1
  223. package/lib/renderers/wrapControl.d.ts +3 -3
  224. package/lib/renderers/wrapControl.js +25 -10
  225. package/lib/store/app.d.ts +3 -3
  226. package/lib/store/app.js +2 -1
  227. package/lib/store/combo.d.ts +449 -40
  228. package/lib/store/combo.js +1 -1
  229. package/lib/store/crud.d.ts +3 -3
  230. package/lib/store/crud.js +3 -2
  231. package/lib/store/form.d.ts +188 -18
  232. package/lib/store/form.js +29 -6
  233. package/lib/store/formItem.d.ts +5 -0
  234. package/lib/store/formItem.js +32 -10
  235. package/lib/store/iRenderer.d.ts +4 -3
  236. package/lib/store/iRenderer.js +29 -4
  237. package/lib/store/index.d.ts +1 -0
  238. package/lib/store/index.js +3 -1
  239. package/lib/store/list.d.ts +3 -3
  240. package/lib/store/list.js +1 -1
  241. package/lib/store/manager.js +1 -1
  242. package/lib/store/modal.d.ts +3 -3
  243. package/lib/store/modal.js +1 -1
  244. package/lib/store/node.js +1 -1
  245. package/lib/store/pagination.d.ts +3 -3
  246. package/lib/store/pagination.js +2 -1
  247. package/lib/store/root.d.ts +5 -3
  248. package/lib/store/root.js +44 -19
  249. package/lib/store/service.d.ts +3 -3
  250. package/lib/store/service.js +11 -4
  251. package/lib/store/status.js +1 -1
  252. package/lib/store/table.d.ts +416 -57
  253. package/lib/store/table.js +84 -54
  254. package/lib/store/table2.d.ts +3 -3
  255. package/lib/store/table2.js +1 -1
  256. package/lib/theme.d.ts +1 -1
  257. package/lib/theme.js +13 -2
  258. package/lib/types.d.ts +19 -2
  259. package/lib/utils/Animation.js +1 -1
  260. package/lib/utils/ColorScale.js +1 -1
  261. package/lib/utils/DataSchema.js +1 -1
  262. package/lib/utils/DataScope.js +1 -1
  263. package/lib/utils/RootClose.js +1 -1
  264. package/lib/utils/SimpleMap.js +1 -1
  265. package/lib/utils/api.d.ts +21 -1
  266. package/lib/utils/api.js +141 -40
  267. package/lib/utils/arraySlice.js +1 -1
  268. package/lib/utils/attachmentAdpator.js +1 -1
  269. package/lib/utils/autobind.js +1 -1
  270. package/lib/utils/browser.js +1 -1
  271. package/lib/utils/columnsSplit.js +1 -1
  272. package/lib/utils/concatData.js +1 -1
  273. package/lib/utils/dataMapping.js +1 -1
  274. package/lib/utils/date.js +1 -1
  275. package/lib/utils/debug.js +18 -4
  276. package/lib/utils/decodeEntity.js +1 -1
  277. package/lib/utils/dom.js +1 -1
  278. package/lib/utils/errors.js +1 -1
  279. package/lib/utils/escapeHtml.js +1 -1
  280. package/lib/utils/filter-schema.js +1 -1
  281. package/lib/utils/filter.js +1 -1
  282. package/lib/utils/formatDuration.js +1 -1
  283. package/lib/utils/formula.js +2 -1
  284. package/lib/utils/getVariable.js +1 -1
  285. package/lib/utils/grammar.js +1 -1
  286. package/lib/utils/handleAction.js +1 -1
  287. package/lib/utils/helper.d.ts +4 -1
  288. package/lib/utils/helper.js +19 -3
  289. package/lib/utils/highlight.js +1 -1
  290. package/lib/utils/icon.js +1 -1
  291. package/lib/utils/image.js +1 -1
  292. package/lib/utils/isPureVariable.js +2 -2
  293. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  294. package/lib/utils/keyToPath.js +1 -1
  295. package/lib/utils/labelToString.js +4 -1
  296. package/lib/utils/makeSorter.js +1 -1
  297. package/lib/utils/math.js +1 -1
  298. package/lib/utils/memoryParse.d.ts +2 -1
  299. package/lib/utils/memoryParse.js +10 -6
  300. package/lib/utils/normalizeLink.js +1 -1
  301. package/lib/utils/normalizeOptions.js +1 -1
  302. package/lib/utils/object.d.ts +2 -4
  303. package/lib/utils/object.js +1 -1
  304. package/lib/utils/offset.js +1 -1
  305. package/lib/utils/offsetParent.js +1 -1
  306. package/lib/utils/optionValueCompare.js +1 -1
  307. package/lib/utils/position.js +1 -1
  308. package/lib/utils/prettyBytes.js +1 -1
  309. package/lib/utils/printElement.js +1 -1
  310. package/lib/utils/renderer-event.js +1 -1
  311. package/lib/utils/replaceText.js +1 -1
  312. package/lib/utils/resize-sensor.js +30 -1
  313. package/lib/utils/resolveCondition.js +2 -1
  314. package/lib/utils/resolveVariable.js +1 -1
  315. package/lib/utils/resolveVariableAndFilter.js +1 -1
  316. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  317. package/lib/utils/scrollPosition.js +1 -1
  318. package/lib/utils/string2regExp.js +1 -1
  319. package/lib/utils/stripNumber.js +1 -1
  320. package/lib/utils/style-helper.js +1 -1
  321. package/lib/utils/style.js +2 -1
  322. package/lib/utils/toNumber.js +1 -1
  323. package/lib/utils/tokenize.js +1 -1
  324. package/lib/utils/tpl-builtin.js +2 -1
  325. package/lib/utils/tpl-lodash.js +2 -1
  326. package/lib/utils/tpl.js +1 -1
  327. package/lib/utils/uncontrollable.js +1 -1
  328. package/lib/utils/validateId.js +1 -1
  329. package/lib/utils/validations.js +2 -1
  330. package/lib/utils/visitedCache.d.ts +46 -0
  331. package/lib/utils/visitedCache.js +128 -0
  332. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-beta.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);
@@ -164,10 +164,10 @@ export declare const TableStore2: import("mobx-state-tree").IModelType<{
164
164
  readonly pristineDiff: any;
165
165
  } & {
166
166
  setTopStore(value: any): void;
167
- initData(data?: object, skipSetPristine?: boolean): void;
167
+ initData(data?: object, skipSetPristine?: boolean, changeReason?: import("../types").DataChangeReason | undefined): void;
168
168
  reset(): void;
169
- updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined): void;
170
- changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined): void;
169
+ updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined, changeReason?: import("../types").DataChangeReason | undefined): void;
170
+ changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined, changeReason?: import("../types").DataChangeReason | undefined): void;
171
171
  setCurrentAction(action: any, resolveDefinitions?: ((schema: any) => any) | undefined): void;
172
172
  openDialog(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, values: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
173
173
  closeDialog(confirmed?: any, data?: any): void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/theme.d.ts CHANGED
@@ -40,7 +40,7 @@ export declare let defaultTheme: string;
40
40
  export declare const ThemeContext: React.Context<string>;
41
41
  export declare function themeable<T extends React.ComponentType<React.ComponentProps<T> & ThemeProps> & {
42
42
  themeKey?: string;
43
- }>(ComposedComponent: T): {
43
+ }>(ComposedComponent: T, methods?: Array<string>): {
44
44
  new (props: JSX.LibraryManagedAttributes<T, Omit<React.ComponentProps<T>, keyof ThemeProps>> & ThemeOuterProps): {
45
45
  ref: any;
46
46
  childRef(ref: any): void;
package/esm/theme.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -79,7 +79,7 @@ function getTheme(theme) {
79
79
  }
80
80
  var defaultTheme = 'cxd';
81
81
  var ThemeContext = React.createContext('');
82
- function themeable(ComposedComponent) {
82
+ function themeable(ComposedComponent, methods) {
83
83
  var _a;
84
84
  var result = hoistNonReactStatic((_a = /** @class */ (function (_super) {
85
85
  __extends(class_1, _super);
@@ -123,6 +123,17 @@ function themeable(ComposedComponent) {
123
123
  _a.contextType = ThemeContext,
124
124
  _a.ComposedComponent = ComposedComponent,
125
125
  _a), ComposedComponent);
126
+ if (Array.isArray(methods)) {
127
+ methods.forEach(function (method) {
128
+ if (ComposedComponent.prototype[method]) {
129
+ result.prototype[method] = function () {
130
+ var _a;
131
+ var fn = (_a = this.ref) === null || _a === void 0 ? void 0 : _a[method];
132
+ return fn ? fn.apply(this.ref, arguments) : undefined;
133
+ };
134
+ }
135
+ });
136
+ }
126
137
  return result;
127
138
  }
128
139
 
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
@@ -307,9 +309,24 @@ export interface Location {
307
309
  export interface PlainObject {
308
310
  [propsName: string]: any;
309
311
  }
312
+ export interface DataChangeReason {
313
+ type: 'input' | 'api' | 'formula' | 'hide' | 'init' | 'action';
314
+ name?: string;
315
+ value?: any;
316
+ }
310
317
  export interface RendererData {
311
318
  [propsName: string]: any;
319
+ /**
320
+ * 记录变化前的数据
321
+ */
312
322
  __prev?: RendererDataAlias;
323
+ /**
324
+ * 记录变化的信息
325
+ */
326
+ __changeReason?: DataChangeReason;
327
+ /**
328
+ * 记录上层数据
329
+ */
313
330
  __super?: RendererData;
314
331
  }
315
332
  type RendererDataAlias = RendererData;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.7.0
2
+ * amis-core v6.9.0-beta.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-beta.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-beta.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-beta.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-beta.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-beta.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;