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
 
@@ -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);
@@ -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/lib/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/lib/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
 
@@ -92,7 +92,7 @@ function getTheme(theme) {
92
92
  }
93
93
  exports.defaultTheme = 'cxd';
94
94
  var ThemeContext = React__default["default"].createContext('');
95
- function themeable(ComposedComponent) {
95
+ function themeable(ComposedComponent, methods) {
96
96
  var _a;
97
97
  var result = hoistNonReactStatic__default["default"]((_a = /** @class */ (function (_super) {
98
98
  tslib.__extends(class_1, _super);
@@ -136,6 +136,17 @@ function themeable(ComposedComponent) {
136
136
  _a.contextType = ThemeContext,
137
137
  _a.ComposedComponent = ComposedComponent,
138
138
  _a), ComposedComponent);
139
+ if (Array.isArray(methods)) {
140
+ methods.forEach(function (method) {
141
+ if (ComposedComponent.prototype[method]) {
142
+ result.prototype[method] = function () {
143
+ var _a;
144
+ var fn = (_a = this.ref) === null || _a === void 0 ? void 0 : _a[method];
145
+ return fn ? fn.apply(this.ref, arguments) : undefined;
146
+ };
147
+ }
148
+ });
149
+ }
139
150
  return result;
140
151
  }
141
152
 
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
@@ -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;