amis-core 3.5.2 → 3.6.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 (285) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +2 -2
  4. package/esm/SchemaRenderer.js +1 -1
  5. package/esm/Scoped.d.ts +2 -0
  6. package/esm/Scoped.js +49 -7
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +27 -12
  10. package/esm/actions/Action.js +30 -22
  11. package/esm/actions/AjaxAction.js +2 -2
  12. package/esm/actions/BreakAction.js +1 -1
  13. package/esm/actions/BroadcastAction.js +1 -1
  14. package/esm/actions/CmptAction.js +31 -32
  15. package/esm/actions/ContinueAction.js +1 -1
  16. package/esm/actions/CopyAction.js +3 -3
  17. package/esm/actions/CustomAction.js +1 -1
  18. package/esm/actions/DialogAction.js +1 -1
  19. package/esm/actions/DrawerAction.js +1 -1
  20. package/esm/actions/EmailAction.js +1 -1
  21. package/esm/actions/LinkAction.js +5 -5
  22. package/esm/actions/LoopAction.js +1 -1
  23. package/esm/actions/PageAction.js +1 -1
  24. package/esm/actions/ParallelAction.js +1 -1
  25. package/esm/actions/StatusAction.js +1 -1
  26. package/esm/actions/SwitchAction.js +1 -1
  27. package/esm/actions/ToastAction.js +3 -3
  28. package/esm/components/CustomStyle.js +1 -1
  29. package/esm/components/ErrorBoundary.d.ts +20 -0
  30. package/esm/components/ErrorBoundary.js +41 -0
  31. package/esm/components/LazyComponent.js +1 -1
  32. package/esm/components/Overlay.js +1 -1
  33. package/esm/components/PopOver.d.ts +4 -0
  34. package/esm/components/PopOver.js +66 -3
  35. package/esm/env.d.ts +9 -0
  36. package/esm/env.js +1 -1
  37. package/esm/envOverwrite.d.ts +1 -1
  38. package/esm/envOverwrite.js +15 -35
  39. package/esm/factory.js +1 -1
  40. package/esm/index.d.ts +2 -1
  41. package/esm/index.js +5 -4
  42. package/esm/locale.js +1 -1
  43. package/esm/polyfills.js +1 -1
  44. package/esm/renderers/Form.d.ts +10 -4
  45. package/esm/renderers/Form.js +64 -32
  46. package/esm/renderers/Item.d.ts +54 -0
  47. package/esm/renderers/Item.js +1 -1
  48. package/esm/renderers/Options.d.ts +5 -1
  49. package/esm/renderers/Options.js +11 -9
  50. package/esm/renderers/Placeholder.js +1 -1
  51. package/esm/renderers/builtin.js +1 -1
  52. package/esm/renderers/register.js +1 -1
  53. package/esm/renderers/wrapControl.js +10 -17
  54. package/esm/store/app.js +1 -1
  55. package/esm/store/combo.d.ts +1154 -48
  56. package/esm/store/combo.js +10 -3
  57. package/esm/store/crud.d.ts +9 -1
  58. package/esm/store/crud.js +50 -15
  59. package/esm/store/form.d.ts +480 -20
  60. package/esm/store/form.js +1 -1
  61. package/esm/store/formItem.d.ts +23 -1
  62. package/esm/store/formItem.js +103 -15
  63. package/esm/store/iRenderer.js +1 -1
  64. package/esm/store/index.js +1 -1
  65. package/esm/store/list.js +1 -1
  66. package/esm/store/manager.js +1 -1
  67. package/esm/store/modal.js +1 -1
  68. package/esm/store/node.js +1 -1
  69. package/esm/store/pagination.js +1 -1
  70. package/esm/store/root.js +1 -1
  71. package/esm/store/service.js +1 -1
  72. package/esm/store/status.js +1 -1
  73. package/esm/store/table.d.ts +1078 -42
  74. package/esm/store/table.js +64 -6
  75. package/esm/store/table2.js +1 -4
  76. package/esm/theme.js +1 -1
  77. package/esm/types.d.ts +8 -2
  78. package/esm/utils/Animation.js +1 -1
  79. package/esm/utils/ColorScale.js +1 -1
  80. package/esm/utils/DataSchema.js +1 -1
  81. package/esm/utils/DataScope.js +1 -1
  82. package/esm/utils/RootClose.js +1 -1
  83. package/esm/utils/SimpleMap.js +1 -1
  84. package/esm/utils/api.js +1 -1
  85. package/esm/utils/arraySlice.js +1 -1
  86. package/esm/utils/attachmentAdpator.js +3 -1
  87. package/esm/utils/autobind.js +1 -1
  88. package/esm/utils/columnsSplit.js +1 -1
  89. package/esm/utils/dataMapping.js +1 -1
  90. package/esm/utils/date.js +1 -1
  91. package/esm/utils/debug.js +1 -1
  92. package/esm/utils/decodeEntity.js +1 -1
  93. package/esm/utils/dom.js +1 -1
  94. package/esm/utils/errors.js +1 -1
  95. package/esm/utils/escapeHtml.js +1 -1
  96. package/esm/utils/filter-schema.d.ts +2 -1
  97. package/esm/utils/filter-schema.js +14 -5
  98. package/esm/utils/filter.js +1 -1
  99. package/esm/utils/formatDuration.js +1 -1
  100. package/esm/utils/formula.js +1 -1
  101. package/esm/utils/getVariable.js +1 -1
  102. package/esm/utils/grammar.js +1 -1
  103. package/esm/utils/handleAction.js +1 -1
  104. package/esm/utils/helper.d.ts +2 -2
  105. package/esm/utils/helper.js +37 -29
  106. package/esm/utils/highlight.js +1 -1
  107. package/esm/utils/icon.js +1 -1
  108. package/esm/utils/image.js +1 -1
  109. package/esm/utils/isPureVariable.js +1 -1
  110. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  111. package/esm/utils/keyToPath.js +1 -1
  112. package/esm/utils/makeSorter.js +1 -1
  113. package/esm/utils/math.js +8 -5
  114. package/esm/utils/memoryParse.js +1 -1
  115. package/esm/utils/normalizeLink.js +1 -1
  116. package/esm/utils/normalizeOptions.js +1 -1
  117. package/esm/utils/object.js +15 -1
  118. package/esm/utils/offset.js +1 -1
  119. package/esm/utils/offsetParent.js +1 -1
  120. package/esm/utils/optionValueCompare.js +1 -1
  121. package/esm/utils/position.js +1 -1
  122. package/esm/utils/prettyBytes.js +1 -1
  123. package/esm/utils/renderer-event.d.ts +7 -0
  124. package/esm/utils/renderer-event.js +30 -18
  125. package/esm/utils/replaceText.js +1 -1
  126. package/esm/utils/resize-sensor.js +1 -1
  127. package/esm/utils/resolveCondition.js +1 -1
  128. package/esm/utils/resolveVariable.js +1 -1
  129. package/esm/utils/resolveVariableAndFilter.js +1 -1
  130. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  131. package/esm/utils/scrollPosition.js +1 -1
  132. package/esm/utils/string2regExp.js +1 -1
  133. package/esm/utils/stripNumber.js +1 -1
  134. package/esm/utils/style-helper.js +12 -15
  135. package/esm/utils/style.js +3 -2
  136. package/esm/utils/toNumber.js +1 -1
  137. package/esm/utils/tokenize.js +1 -1
  138. package/esm/utils/tpl-builtin.js +1 -1
  139. package/esm/utils/tpl-lodash.js +1 -1
  140. package/esm/utils/tpl.js +1 -1
  141. package/esm/utils/uncontrollable.js +1 -1
  142. package/esm/utils/validations.js +1 -1
  143. package/lib/Root.js +1 -1
  144. package/lib/RootRenderer.d.ts +1 -1
  145. package/lib/RootRenderer.js +2 -2
  146. package/lib/SchemaRenderer.js +1 -1
  147. package/lib/Scoped.d.ts +2 -0
  148. package/lib/Scoped.js +48 -6
  149. package/lib/StatusScoped.js +1 -1
  150. package/lib/WithRootStore.js +1 -1
  151. package/lib/WithStore.js +26 -11
  152. package/lib/actions/Action.js +29 -21
  153. package/lib/actions/AjaxAction.js +2 -2
  154. package/lib/actions/BreakAction.js +1 -1
  155. package/lib/actions/BroadcastAction.js +1 -1
  156. package/lib/actions/CmptAction.js +31 -32
  157. package/lib/actions/ContinueAction.js +1 -1
  158. package/lib/actions/CopyAction.js +3 -3
  159. package/lib/actions/CustomAction.js +1 -1
  160. package/lib/actions/DialogAction.js +1 -1
  161. package/lib/actions/DrawerAction.js +1 -1
  162. package/lib/actions/EmailAction.js +1 -1
  163. package/lib/actions/LinkAction.js +5 -5
  164. package/lib/actions/LoopAction.js +1 -1
  165. package/lib/actions/PageAction.js +1 -1
  166. package/lib/actions/ParallelAction.js +1 -1
  167. package/lib/actions/StatusAction.js +1 -1
  168. package/lib/actions/SwitchAction.js +1 -1
  169. package/lib/actions/ToastAction.js +3 -3
  170. package/lib/components/CustomStyle.js +1 -1
  171. package/lib/components/ErrorBoundary.d.ts +20 -0
  172. package/lib/components/ErrorBoundary.js +52 -0
  173. package/lib/components/LazyComponent.js +1 -1
  174. package/lib/components/Overlay.js +1 -1
  175. package/lib/components/PopOver.d.ts +4 -0
  176. package/lib/components/PopOver.js +64 -1
  177. package/lib/env.d.ts +9 -0
  178. package/lib/env.js +1 -1
  179. package/lib/envOverwrite.d.ts +1 -1
  180. package/lib/envOverwrite.js +18 -34
  181. package/lib/factory.js +1 -1
  182. package/lib/index.d.ts +2 -1
  183. package/lib/index.js +6 -3
  184. package/lib/locale.js +1 -1
  185. package/lib/polyfills.js +1 -1
  186. package/lib/renderers/Form.d.ts +10 -4
  187. package/lib/renderers/Form.js +64 -32
  188. package/lib/renderers/Item.d.ts +54 -0
  189. package/lib/renderers/Item.js +1 -1
  190. package/lib/renderers/Options.d.ts +5 -1
  191. package/lib/renderers/Options.js +11 -9
  192. package/lib/renderers/Placeholder.js +1 -1
  193. package/lib/renderers/builtin.js +1 -1
  194. package/lib/renderers/register.js +1 -1
  195. package/lib/renderers/wrapControl.js +10 -17
  196. package/lib/store/app.js +1 -1
  197. package/lib/store/combo.d.ts +1154 -49
  198. package/lib/store/combo.js +10 -3
  199. package/lib/store/crud.d.ts +9 -1
  200. package/lib/store/crud.js +50 -15
  201. package/lib/store/form.d.ts +480 -21
  202. package/lib/store/form.js +1 -1
  203. package/lib/store/formItem.d.ts +23 -1
  204. package/lib/store/formItem.js +104 -15
  205. package/lib/store/iRenderer.js +1 -1
  206. package/lib/store/index.js +1 -1
  207. package/lib/store/list.js +1 -1
  208. package/lib/store/manager.js +1 -1
  209. package/lib/store/modal.js +1 -1
  210. package/lib/store/node.js +1 -1
  211. package/lib/store/pagination.js +1 -1
  212. package/lib/store/root.js +1 -1
  213. package/lib/store/service.js +1 -1
  214. package/lib/store/status.js +1 -1
  215. package/lib/store/table.d.ts +1078 -43
  216. package/lib/store/table.js +63 -5
  217. package/lib/store/table2.js +1 -4
  218. package/lib/theme.js +1 -1
  219. package/lib/types.d.ts +8 -2
  220. package/lib/utils/Animation.js +1 -1
  221. package/lib/utils/ColorScale.js +1 -1
  222. package/lib/utils/DataSchema.js +1 -1
  223. package/lib/utils/DataScope.js +1 -1
  224. package/lib/utils/RootClose.js +1 -1
  225. package/lib/utils/SimpleMap.js +1 -1
  226. package/lib/utils/api.js +1 -1
  227. package/lib/utils/arraySlice.js +1 -1
  228. package/lib/utils/attachmentAdpator.js +3 -1
  229. package/lib/utils/autobind.js +1 -1
  230. package/lib/utils/columnsSplit.js +1 -1
  231. package/lib/utils/dataMapping.js +1 -1
  232. package/lib/utils/date.js +1 -1
  233. package/lib/utils/debug.js +1 -1
  234. package/lib/utils/decodeEntity.js +1 -1
  235. package/lib/utils/dom.js +1 -1
  236. package/lib/utils/errors.js +1 -1
  237. package/lib/utils/escapeHtml.js +1 -1
  238. package/lib/utils/filter-schema.d.ts +2 -1
  239. package/lib/utils/filter-schema.js +14 -4
  240. package/lib/utils/filter.js +1 -1
  241. package/lib/utils/formatDuration.js +1 -1
  242. package/lib/utils/formula.js +1 -1
  243. package/lib/utils/getVariable.js +1 -1
  244. package/lib/utils/grammar.js +1 -1
  245. package/lib/utils/handleAction.js +1 -1
  246. package/lib/utils/helper.d.ts +2 -2
  247. package/lib/utils/helper.js +36 -28
  248. package/lib/utils/highlight.js +1 -1
  249. package/lib/utils/icon.js +1 -1
  250. package/lib/utils/image.js +1 -1
  251. package/lib/utils/isPureVariable.js +1 -1
  252. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  253. package/lib/utils/keyToPath.js +1 -1
  254. package/lib/utils/makeSorter.js +1 -1
  255. package/lib/utils/math.js +8 -5
  256. package/lib/utils/memoryParse.js +1 -1
  257. package/lib/utils/normalizeLink.js +1 -1
  258. package/lib/utils/normalizeOptions.js +1 -1
  259. package/lib/utils/object.js +15 -1
  260. package/lib/utils/offset.js +1 -1
  261. package/lib/utils/offsetParent.js +1 -1
  262. package/lib/utils/optionValueCompare.js +1 -1
  263. package/lib/utils/position.js +1 -1
  264. package/lib/utils/prettyBytes.js +1 -1
  265. package/lib/utils/renderer-event.d.ts +7 -0
  266. package/lib/utils/renderer-event.js +30 -18
  267. package/lib/utils/replaceText.js +1 -1
  268. package/lib/utils/resize-sensor.js +1 -1
  269. package/lib/utils/resolveCondition.js +1 -1
  270. package/lib/utils/resolveVariable.js +1 -1
  271. package/lib/utils/resolveVariableAndFilter.js +1 -1
  272. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  273. package/lib/utils/scrollPosition.js +1 -1
  274. package/lib/utils/string2regExp.js +1 -1
  275. package/lib/utils/stripNumber.js +1 -1
  276. package/lib/utils/style-helper.js +12 -15
  277. package/lib/utils/style.js +3 -2
  278. package/lib/utils/toNumber.js +1 -1
  279. package/lib/utils/tokenize.js +1 -1
  280. package/lib/utils/tpl-builtin.js +1 -1
  281. package/lib/utils/tpl-lodash.js +1 -1
  282. package/lib/utils/tpl.js +1 -1
  283. package/lib/utils/uncontrollable.js +1 -1
  284. package/lib/utils/validations.js +1 -1
  285. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -56,6 +56,12 @@ function initChildren(children, depth, pindex, parentId, path) {
56
56
  };
57
57
  });
58
58
  }
59
+ var SELECTED_STATUS;
60
+ (function (SELECTED_STATUS) {
61
+ SELECTED_STATUS[SELECTED_STATUS["ALL"] = 0] = "ALL";
62
+ SELECTED_STATUS[SELECTED_STATUS["PARTIAL"] = 1] = "PARTIAL";
63
+ SELECTED_STATUS[SELECTED_STATUS["NONE"] = 2] = "NONE";
64
+ })(SELECTED_STATUS || (SELECTED_STATUS = {}));
59
65
  var Column = types
60
66
  .model('Column', {
61
67
  label: types.optional(types.frozen(), undefined),
@@ -142,6 +148,12 @@ var Row = types
142
148
  lazyRender: false
143
149
  })
144
150
  .views(function (self) { return ({
151
+ get parent() {
152
+ return getParent(self, 2);
153
+ },
154
+ get table() {
155
+ return getParent(self, self.depth * 2);
156
+ },
145
157
  get expandable() {
146
158
  var table;
147
159
  return !!((self && self.children.length) ||
@@ -150,6 +162,24 @@ var Row = types
150
162
  table.footable &&
151
163
  table.footableColumns.length));
152
164
  },
165
+ childrenSelected: function () {
166
+ var _a = self, children = _a.children, table = _a.table;
167
+ var selectedLength = children.filter(function (child) {
168
+ return table.isSelected(child);
169
+ }).length;
170
+ if (!selectedLength) {
171
+ return SELECTED_STATUS.NONE;
172
+ }
173
+ if (selectedLength === children.length) {
174
+ return SELECTED_STATUS.ALL;
175
+ }
176
+ return SELECTED_STATUS.PARTIAL;
177
+ },
178
+ get partial() {
179
+ var childrenSelected = this.childrenSelected() === SELECTED_STATUS.PARTIAL;
180
+ var childrenPartial = self.children.some(function (child) { return child.partial; });
181
+ return childrenSelected || childrenPartial;
182
+ },
153
183
  get checked() {
154
184
  return getParent(self, self.depth * 2).isSelected(self);
155
185
  },
@@ -251,7 +281,11 @@ var Row = types
251
281
  }); })
252
282
  .actions(function (self) { return ({
253
283
  toggle: function (checked) {
254
- getParent(self, self.depth * 2).toggle(self, checked);
284
+ var table = self.table;
285
+ var row = self;
286
+ table.toggle(row, checked);
287
+ table.toggleAncestors(row);
288
+ table.toggleDescendants(row, checked);
255
289
  },
256
290
  toggleExpanded: function () {
257
291
  getParent(self, self.depth * 2).toggleExpanded(self);
@@ -358,7 +392,8 @@ var TableStore = iRendererStore
358
392
  exportExcelLoading: false,
359
393
  searchFormExpanded: false,
360
394
  lazyRenderAfter: 100,
361
- tableLayout: 'auto'
395
+ tableLayout: 'auto',
396
+ theadHeight: 0
362
397
  })
363
398
  .views(function (self) {
364
399
  function getColumnsExceptBuiltinTypes() {
@@ -711,7 +746,7 @@ var TableStore = iRendererStore
711
746
  return self.rows.concat();
712
747
  },
713
748
  buildStyles: function (style) {
714
- style = __assign({}, style);
749
+ style = __assign(__assign({}, style), { '--Table-thead-height': self.theadHeight + 'px' });
715
750
  getFilteredColumns().forEach(function (column) {
716
751
  style["--Table-column-".concat(column.index, "-width")] =
717
752
  column.realWidth + 'px';
@@ -909,7 +944,9 @@ var TableStore = iRendererStore
909
944
  if (!table) {
910
945
  return;
911
946
  }
912
- var cols = [].slice.call(table.querySelectorAll(':scope>thead>tr>th[data-index]'));
947
+ var thead = table.querySelector(':scope>thead');
948
+ var cols = [].slice.call(thead.querySelectorAll('tr>th[data-index]'));
949
+ self.theadHeight = thead.offsetHeight;
913
950
  cols.forEach(function (col) {
914
951
  var index = parseInt(col.getAttribute('data-index'), 10);
915
952
  var column = self.columns[index];
@@ -1133,6 +1170,25 @@ var TableStore = iRendererStore
1133
1170
  : checked && self.selectedRows.replace([row]);
1134
1171
  }
1135
1172
  }
1173
+ function toggleAncestors(row) {
1174
+ var parent = row.parent;
1175
+ if (!parent.depth) {
1176
+ return;
1177
+ }
1178
+ var selectedStatus = parent.childrenSelected();
1179
+ toggle(parent, selectedStatus === SELECTED_STATUS.ALL);
1180
+ toggleAncestors(parent);
1181
+ }
1182
+ function toggleDescendants(row, checked) {
1183
+ var children = row.children;
1184
+ if (!(children === null || children === void 0 ? void 0 : children.length)) {
1185
+ return;
1186
+ }
1187
+ children.forEach(function (child) {
1188
+ toggle(child, checked);
1189
+ toggleDescendants(child, checked);
1190
+ });
1191
+ }
1136
1192
  function getToggleShiftRows(row) {
1137
1193
  var e_1, _a;
1138
1194
  // 如果是同一个或非 multiple 模式下就和不用 shift 一样
@@ -1354,6 +1410,8 @@ var TableStore = iRendererStore
1354
1410
  toggleAll: toggleAll,
1355
1411
  getSelectedRows: getSelectedRows,
1356
1412
  toggle: toggle,
1413
+ toggleAncestors: toggleAncestors,
1414
+ toggleDescendants: toggleDescendants,
1357
1415
  toggleShift: toggleShift,
1358
1416
  getToggleShiftRows: getToggleShiftRows,
1359
1417
  toggleExpandAll: toggleExpandAll,
@@ -1398,4 +1456,4 @@ var TableStore = iRendererStore
1398
1456
  };
1399
1457
  });
1400
1458
 
1401
- export { Column, Row, TableStore };
1459
+ export { Column, Row, SELECTED_STATUS, TableStore };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -315,9 +315,6 @@ var TableStore2 = ServiceStore.named('TableStore2')
315
315
  item = item || self.rows[fromIndex];
316
316
  if (item === null || item === void 0 ? void 0 : item.parentId) {
317
317
  var parent_1 = self.getRowById(item.parentId);
318
- var offset = parent_1.children.indexOf(item) - fromIndex;
319
- toIndex += offset;
320
- fromIndex += offset;
321
318
  var newRows_1 = parent_1.children.concat();
322
319
  newRows_1.splice(fromIndex, 1);
323
320
  newRows_1.splice(toIndex, 0, item);
package/esm/theme.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { JSONSchema7 } from 'json-schema';
3
3
  import { ListenerAction } from './actions/Action';
4
- import { debounceConfig } from './utils/renderer-event';
4
+ import { debounceConfig, trackConfig } from './utils/renderer-event';
5
5
  export interface Option {
6
6
  /**
7
7
  * 用来显示的文字
@@ -341,7 +341,7 @@ export interface EventTrack {
341
341
  * tabChange: tab 切换
342
342
  * netError: api 报错
343
343
  */
344
- eventType: 'api' | 'url' | 'link' | 'dialog' | 'drawer' | 'copy' | 'reload' | 'email' | 'prev' | 'next' | 'cancel' | 'close' | 'submit' | 'confirm' | 'reset' | 'reset-and-submit' | 'formItemChange' | 'tabChange' | 'pageLoaded' | 'pageHidden' | 'pageVisible';
344
+ eventType: 'api' | 'url' | 'link' | 'dialog' | 'drawer' | 'copy' | 'reload' | 'email' | 'prev' | 'next' | 'cancel' | 'close' | 'submit' | 'confirm' | 'reset' | 'reset-and-submit' | 'formItemChange' | 'tabChange' | 'pageLoaded' | 'pageHidden' | 'pageVisible' | string;
345
345
  /**
346
346
  * 事件数据
347
347
  */
@@ -471,6 +471,7 @@ export interface BaseSchemaWithoutType {
471
471
  weight?: number;
472
472
  actions: ListenerAction[];
473
473
  debounce?: debounceConfig;
474
+ track?: trackConfig;
474
475
  };
475
476
  };
476
477
  /**
@@ -508,6 +509,10 @@ export interface BaseSchemaWithoutType {
508
509
  * 编辑器配置,运行时可以忽略
509
510
  */
510
511
  editorSetting?: {
512
+ /**
513
+ * 组件行为、用途,如 create、update、remove
514
+ */
515
+ behavior?: string;
511
516
  /**
512
517
  * 组件名称,通常是业务名称方便定位
513
518
  */
@@ -516,6 +521,7 @@ export interface BaseSchemaWithoutType {
516
521
  * 编辑器假数据,方便展示
517
522
  */
518
523
  mock?: any;
524
+ [propName: string]: any;
519
525
  };
520
526
  /**
521
527
  * 可以组件级别用来关闭移动端样式
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/api.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -31,6 +31,8 @@ function attachmentAdpator(response, __, api) {
31
31
  // 很可能是中文被 url-encode 了
32
32
  if (filename && filename.replace(/[^%]/g, '').length > 2) {
33
33
  filename = decodeURIComponent(filename);
34
+ // 有些后端用错了,导致空格转义成了 +,这里转回来
35
+ filename = filename.replace(/\+/g, ' ');
34
36
  }
35
37
  }
36
38
  var type = response.headers['content-type'];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/date.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/dom.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -17,5 +17,6 @@ export declare function filterClassNameObject(classValue: ClassValue, ctx?: Reco
17
17
  * @param schema
18
18
  * @param data
19
19
  */
20
- export declare function getExprProperties(schema: PlainObject, data?: object, blackList?: Array<string>, props?: any): PlainObject;
20
+ export declare function getExprProperties(schema: PlainObject, data?: object, ignoreList?: Array<string>, props?: any): PlainObject;
21
+ export declare function hasExprPropertiesChanged(schema: PlainObject, prevSchema: PlainObject): boolean;
21
22
  export default getExprProperties;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -37,13 +37,13 @@ function filterClassNameObject(classValue, ctx) {
37
37
  * @param schema
38
38
  * @param data
39
39
  */
40
- function getExprProperties(schema, data, blackList, props) {
40
+ function getExprProperties(schema, data, ignoreList, props) {
41
41
  if (data === void 0) { data = {}; }
42
- if (blackList === void 0) { blackList = ['addOn', 'ref']; }
42
+ if (ignoreList === void 0) { ignoreList = ['addOn', 'ref']; }
43
43
  var exprProps = {};
44
44
  var ctx = null;
45
45
  Object.getOwnPropertyNames(schema).forEach(function (key) {
46
- if (blackList && ~blackList.indexOf(key)) {
46
+ if (ignoreList && ~ignoreList.indexOf(key)) {
47
47
  return;
48
48
  }
49
49
  var parts = /^(.*)(On|Expr|(?:c|C)lassName)(Raw)?$/.exec(key);
@@ -82,5 +82,14 @@ function getExprProperties(schema, data, blackList, props) {
82
82
  });
83
83
  return exprProps;
84
84
  }
85
+ function hasExprPropertiesChanged(schema, prevSchema) {
86
+ return Object.getOwnPropertyNames(schema).some(function (key) {
87
+ var parts = /^(.*)(On|Expr|(?:c|C)lassName)(Raw)?$/.exec(key);
88
+ if (parts) {
89
+ return schema[key] !== prevSchema[key];
90
+ }
91
+ return false;
92
+ });
93
+ }
85
94
 
86
- export { getExprProperties as default, filterClassNameObject, getExprProperties };
95
+ export { getExprProperties as default, filterClassNameObject, getExprProperties, hasExprPropertiesChanged };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -41,7 +41,7 @@ type Mutable<T> = {
41
41
  };
42
42
  export declare function changedEffect<T extends Record<string, any>>(attrs: string | Array<string>, origin: T, data: T, effect: (changes: Partial<Mutable<T>>) => void, strictMode?: boolean): void;
43
43
  export declare function rmUndefined(obj: PlainObject): PlainObject;
44
- export declare function isObjectShallowModified(prev: any, next: any, strictMode?: boolean, ignoreUndefined?: boolean, statck?: Array<any>): boolean;
44
+ export declare function isObjectShallowModified(prev: any, next: any, strictModeOrFunc?: boolean | ((lhs: any, rhs: any) => boolean), ignoreUndefined?: boolean, stack?: Array<any>): boolean;
45
45
  export declare function isArrayChildrenModified(prev: Array<any>, next: Array<any>, strictMode?: boolean): boolean;
46
46
  export declare function immutableExtends(to: any, from: any, deep?: boolean): any;
47
47
  export declare function makeColumnClassBuild(steps: number, classNameTpl?: string): (schema: Schema) => any;
@@ -341,7 +341,7 @@ export declare function JSONTraverse(json: any, mapper: (value: any, key: string
341
341
  * @param mapper
342
342
  * @returns
343
343
  */
344
- export declare function JSONValueMap(json: any, mapper: (value: any, key: string | number, host: Object, stack: Array<Object>) => any, stack?: Array<Object>): any;
344
+ export declare function JSONValueMap(json: any, mapper: (value: any, key: string | number, host: Object, stack: Array<Object>) => any, deepFirst?: boolean, stack?: Array<Object>): any;
345
345
  export declare function convertArrayValueToMoment(value: number[], types: string[], mom: moment.Moment): moment.Moment;
346
346
  export declare function getRange(min: number, max: number, step?: number): number[];
347
347
  export declare function repeatCount(count: number, iterator: (index: number) => any): any[];
@@ -1,10 +1,10 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
6
  import { __extends, __assign, __spreadArray, __read, __awaiter, __generator } from 'tslib';
7
- import { isObservable, isObservableArray } from 'mobx';
7
+ import { isObservableArray, isObservable } from 'mobx';
8
8
  import uniq from 'lodash/uniq';
9
9
  import last from 'lodash/last';
10
10
  import merge from 'lodash/merge';
@@ -164,15 +164,15 @@ function rmUndefined(obj) {
164
164
  });
165
165
  return newObj;
166
166
  }
167
- function isObjectShallowModified(prev, next, strictMode, ignoreUndefined, statck) {
168
- if (strictMode === void 0) { strictMode = true; }
167
+ function isObjectShallowModified(prev, next, strictModeOrFunc, ignoreUndefined, stack) {
168
+ if (strictModeOrFunc === void 0) { strictModeOrFunc = true; }
169
169
  if (ignoreUndefined === void 0) { ignoreUndefined = false; }
170
- if (statck === void 0) { statck = []; }
170
+ if (stack === void 0) { stack = []; }
171
171
  if (Array.isArray(prev) && Array.isArray(next)) {
172
172
  return prev.length !== next.length
173
173
  ? true
174
174
  : prev.some(function (prev, index) {
175
- return isObjectShallowModified(prev, next[index], strictMode, ignoreUndefined, statck);
175
+ return isObjectShallowModified(prev, next[index], strictModeOrFunc, ignoreUndefined, stack);
176
176
  });
177
177
  }
178
178
  if (isNaN(prev) && isNaN(next)) {
@@ -182,9 +182,14 @@ function isObjectShallowModified(prev, next, strictMode, ignoreUndefined, statck
182
182
  null == next ||
183
183
  !isObject(prev) ||
184
184
  !isObject(next) ||
185
- isObservable(prev) ||
186
- isObservable(next)) {
187
- return strictMode ? prev !== next : prev != next;
185
+ // 不是 Object.create 创建的对象
186
+ // 不是 plain object
187
+ prev.constructor !== Object ||
188
+ next.constructor !== Object) {
189
+ if (strictModeOrFunc && typeof strictModeOrFunc === 'function') {
190
+ return strictModeOrFunc(prev, next);
191
+ }
192
+ return strictModeOrFunc ? prev !== next : prev != next;
188
193
  }
189
194
  if (ignoreUndefined) {
190
195
  prev = rmUndefined(prev);
@@ -197,13 +202,13 @@ function isObjectShallowModified(prev, next, strictMode, ignoreUndefined, statck
197
202
  return true;
198
203
  }
199
204
  // 避免循环引用死循环。
200
- if (~statck.indexOf(prev)) {
205
+ if (~stack.indexOf(prev)) {
201
206
  return false;
202
207
  }
203
- statck.push(prev);
208
+ stack.push(prev);
204
209
  for (var i = keys.length - 1; i >= 0; i--) {
205
210
  var key = keys[i];
206
- if (isObjectShallowModified(prev[key], next[key], strictMode, ignoreUndefined, statck)) {
211
+ if (isObjectShallowModified(prev[key], next[key], strictModeOrFunc, ignoreUndefined, stack)) {
207
212
  return true;
208
213
  }
209
214
  }
@@ -1358,43 +1363,46 @@ function JSONTraverse(json, mapper, maxDeep) {
1358
1363
  * @param mapper
1359
1364
  * @returns
1360
1365
  */
1361
- function JSONValueMap(json, mapper, stack) {
1366
+ function JSONValueMap(json, mapper, deepFirst, stack) {
1367
+ if (deepFirst === void 0) { deepFirst = false; }
1362
1368
  if (stack === void 0) { stack = []; }
1363
1369
  if (!isPlainObject(json) && !Array.isArray(json)) {
1364
1370
  return json;
1365
1371
  }
1366
1372
  var iterator = function (origin, key, host, stack) {
1373
+ var _a, _b;
1367
1374
  if (stack === void 0) { stack = []; }
1368
- var maped = mapper(origin, key, host, stack);
1369
- if (maped === origin && (isPlainObject(origin) || Array.isArray(origin))) {
1370
- return JSONValueMap(origin, mapper, stack);
1375
+ if (deepFirst) {
1376
+ var value = JSONValueMap(origin, mapper, deepFirst, stack);
1377
+ return (_a = mapper(value, key, host, stack)) !== null && _a !== void 0 ? _a : value;
1378
+ }
1379
+ var maped = (_b = mapper(origin, key, host, stack)) !== null && _b !== void 0 ? _b : origin;
1380
+ // 如果不是深度优先,上层的对象都修改了,就不继续递归进到新返回的对象了
1381
+ if (maped === origin) {
1382
+ return JSONValueMap(origin, mapper, deepFirst, stack);
1371
1383
  }
1372
1384
  return maped;
1373
1385
  };
1374
1386
  if (Array.isArray(json)) {
1375
- var flag_1 = false;
1376
- var mapped = json.map(function (value, index) {
1377
- var result = iterator(value, index, json, [json].concat(stack));
1378
- if (result !== value) {
1379
- flag_1 = true;
1380
- return result;
1381
- }
1382
- return value;
1387
+ var modified_1 = false;
1388
+ var arr = json.map(function (value, index) {
1389
+ var newValue = iterator(value, index, json, [json].concat(stack));
1390
+ modified_1 = modified_1 || newValue !== value;
1391
+ return newValue;
1383
1392
  });
1384
- return flag_1 ? mapped : json;
1393
+ return modified_1 ? arr : json;
1385
1394
  }
1386
- var flag = false;
1395
+ var modified = false;
1387
1396
  var toUpdate = {};
1388
1397
  Object.keys(json).forEach(function (key) {
1389
1398
  var value = json[key];
1390
1399
  var result = iterator(value, key, json, [json].concat(stack));
1391
1400
  if (result !== value) {
1392
- flag = true;
1401
+ modified = true;
1393
1402
  toUpdate[key] = result;
1394
- return;
1395
1403
  }
1396
1404
  });
1397
- return flag
1405
+ return modified
1398
1406
  ? __assign(__assign({}, json), toUpdate) : json;
1399
1407
  }
1400
1408
  function convertArrayValueToMoment(value, types, mom) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/icon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.6.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5