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
 
@@ -66,6 +66,12 @@ function initChildren(children, depth, pindex, parentId, path) {
66
66
  };
67
67
  });
68
68
  }
69
+ exports.SELECTED_STATUS = void 0;
70
+ (function (SELECTED_STATUS) {
71
+ SELECTED_STATUS[SELECTED_STATUS["ALL"] = 0] = "ALL";
72
+ SELECTED_STATUS[SELECTED_STATUS["PARTIAL"] = 1] = "PARTIAL";
73
+ SELECTED_STATUS[SELECTED_STATUS["NONE"] = 2] = "NONE";
74
+ })(exports.SELECTED_STATUS || (exports.SELECTED_STATUS = {}));
69
75
  var Column = mobxStateTree.types
70
76
  .model('Column', {
71
77
  label: mobxStateTree.types.optional(mobxStateTree.types.frozen(), undefined),
@@ -152,6 +158,12 @@ var Row = mobxStateTree.types
152
158
  lazyRender: false
153
159
  })
154
160
  .views(function (self) { return ({
161
+ get parent() {
162
+ return mobxStateTree.getParent(self, 2);
163
+ },
164
+ get table() {
165
+ return mobxStateTree.getParent(self, self.depth * 2);
166
+ },
155
167
  get expandable() {
156
168
  var table;
157
169
  return !!((self && self.children.length) ||
@@ -160,6 +172,24 @@ var Row = mobxStateTree.types
160
172
  table.footable &&
161
173
  table.footableColumns.length));
162
174
  },
175
+ childrenSelected: function () {
176
+ var _a = self, children = _a.children, table = _a.table;
177
+ var selectedLength = children.filter(function (child) {
178
+ return table.isSelected(child);
179
+ }).length;
180
+ if (!selectedLength) {
181
+ return exports.SELECTED_STATUS.NONE;
182
+ }
183
+ if (selectedLength === children.length) {
184
+ return exports.SELECTED_STATUS.ALL;
185
+ }
186
+ return exports.SELECTED_STATUS.PARTIAL;
187
+ },
188
+ get partial() {
189
+ var childrenSelected = this.childrenSelected() === exports.SELECTED_STATUS.PARTIAL;
190
+ var childrenPartial = self.children.some(function (child) { return child.partial; });
191
+ return childrenSelected || childrenPartial;
192
+ },
163
193
  get checked() {
164
194
  return mobxStateTree.getParent(self, self.depth * 2).isSelected(self);
165
195
  },
@@ -261,7 +291,11 @@ var Row = mobxStateTree.types
261
291
  }); })
262
292
  .actions(function (self) { return ({
263
293
  toggle: function (checked) {
264
- mobxStateTree.getParent(self, self.depth * 2).toggle(self, checked);
294
+ var table = self.table;
295
+ var row = self;
296
+ table.toggle(row, checked);
297
+ table.toggleAncestors(row);
298
+ table.toggleDescendants(row, checked);
265
299
  },
266
300
  toggleExpanded: function () {
267
301
  mobxStateTree.getParent(self, self.depth * 2).toggleExpanded(self);
@@ -368,7 +402,8 @@ var TableStore = iRenderer.iRendererStore
368
402
  exportExcelLoading: false,
369
403
  searchFormExpanded: false,
370
404
  lazyRenderAfter: 100,
371
- tableLayout: 'auto'
405
+ tableLayout: 'auto',
406
+ theadHeight: 0
372
407
  })
373
408
  .views(function (self) {
374
409
  function getColumnsExceptBuiltinTypes() {
@@ -721,7 +756,7 @@ var TableStore = iRenderer.iRendererStore
721
756
  return self.rows.concat();
722
757
  },
723
758
  buildStyles: function (style) {
724
- style = tslib.__assign({}, style);
759
+ style = tslib.__assign(tslib.__assign({}, style), { '--Table-thead-height': self.theadHeight + 'px' });
725
760
  getFilteredColumns().forEach(function (column) {
726
761
  style["--Table-column-".concat(column.index, "-width")] =
727
762
  column.realWidth + 'px';
@@ -919,7 +954,9 @@ var TableStore = iRenderer.iRendererStore
919
954
  if (!table) {
920
955
  return;
921
956
  }
922
- var cols = [].slice.call(table.querySelectorAll(':scope>thead>tr>th[data-index]'));
957
+ var thead = table.querySelector(':scope>thead');
958
+ var cols = [].slice.call(thead.querySelectorAll('tr>th[data-index]'));
959
+ self.theadHeight = thead.offsetHeight;
923
960
  cols.forEach(function (col) {
924
961
  var index = parseInt(col.getAttribute('data-index'), 10);
925
962
  var column = self.columns[index];
@@ -1143,6 +1180,25 @@ var TableStore = iRenderer.iRendererStore
1143
1180
  : checked && self.selectedRows.replace([row]);
1144
1181
  }
1145
1182
  }
1183
+ function toggleAncestors(row) {
1184
+ var parent = row.parent;
1185
+ if (!parent.depth) {
1186
+ return;
1187
+ }
1188
+ var selectedStatus = parent.childrenSelected();
1189
+ toggle(parent, selectedStatus === exports.SELECTED_STATUS.ALL);
1190
+ toggleAncestors(parent);
1191
+ }
1192
+ function toggleDescendants(row, checked) {
1193
+ var children = row.children;
1194
+ if (!(children === null || children === void 0 ? void 0 : children.length)) {
1195
+ return;
1196
+ }
1197
+ children.forEach(function (child) {
1198
+ toggle(child, checked);
1199
+ toggleDescendants(child, checked);
1200
+ });
1201
+ }
1146
1202
  function getToggleShiftRows(row) {
1147
1203
  var e_1, _a;
1148
1204
  // 如果是同一个或非 multiple 模式下就和不用 shift 一样
@@ -1364,6 +1420,8 @@ var TableStore = iRenderer.iRendererStore
1364
1420
  toggleAll: toggleAll,
1365
1421
  getSelectedRows: getSelectedRows,
1366
1422
  toggle: toggle,
1423
+ toggleAncestors: toggleAncestors,
1424
+ toggleDescendants: toggleDescendants,
1367
1425
  toggleShift: toggleShift,
1368
1426
  getToggleShiftRows: getToggleShiftRows,
1369
1427
  toggleExpandAll: toggleExpandAll,
@@ -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
 
@@ -324,9 +324,6 @@ var TableStore2 = service.ServiceStore.named('TableStore2')
324
324
  item = item || self.rows[fromIndex];
325
325
  if (item === null || item === void 0 ? void 0 : item.parentId) {
326
326
  var parent_1 = self.getRowById(item.parentId);
327
- var offset = parent_1.children.indexOf(item) - fromIndex;
328
- toIndex += offset;
329
- fromIndex += offset;
330
327
  var newRows_1 = parent_1.children.concat();
331
328
  newRows_1.splice(fromIndex, 1);
332
329
  newRows_1.splice(toIndex, 0, item);
package/lib/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/lib/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/lib/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
 
@@ -35,6 +35,8 @@ function attachmentAdpator(response, __, api) {
35
35
  // 很可能是中文被 url-encode 了
36
36
  if (filename && filename.replace(/[^%]/g, '').length > 2) {
37
37
  filename = decodeURIComponent(filename);
38
+ // 有些后端用错了,导致空格转义成了 +,这里转回来
39
+ filename = filename.replace(/\+/g, ' ');
38
40
  }
39
41
  }
40
42
  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/lib/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/lib/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
 
@@ -45,13 +45,13 @@ function filterClassNameObject(classValue, ctx) {
45
45
  * @param schema
46
46
  * @param data
47
47
  */
48
- function getExprProperties(schema, data, blackList, props) {
48
+ function getExprProperties(schema, data, ignoreList, props) {
49
49
  if (data === void 0) { data = {}; }
50
- if (blackList === void 0) { blackList = ['addOn', 'ref']; }
50
+ if (ignoreList === void 0) { ignoreList = ['addOn', 'ref']; }
51
51
  var exprProps = {};
52
52
  var ctx = null;
53
53
  Object.getOwnPropertyNames(schema).forEach(function (key) {
54
- if (blackList && ~blackList.indexOf(key)) {
54
+ if (ignoreList && ~ignoreList.indexOf(key)) {
55
55
  return;
56
56
  }
57
57
  var parts = /^(.*)(On|Expr|(?:c|C)lassName)(Raw)?$/.exec(key);
@@ -90,7 +90,17 @@ function getExprProperties(schema, data, blackList, props) {
90
90
  });
91
91
  return exprProps;
92
92
  }
93
+ function hasExprPropertiesChanged(schema, prevSchema) {
94
+ return Object.getOwnPropertyNames(schema).some(function (key) {
95
+ var parts = /^(.*)(On|Expr|(?:c|C)lassName)(Raw)?$/.exec(key);
96
+ if (parts) {
97
+ return schema[key] !== prevSchema[key];
98
+ }
99
+ return false;
100
+ });
101
+ }
93
102
 
94
103
  exports["default"] = getExprProperties;
95
104
  exports.filterClassNameObject = filterClassNameObject;
96
105
  exports.getExprProperties = getExprProperties;
106
+ exports.hasExprPropertiesChanged = 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,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
 
@@ -178,15 +178,15 @@ function rmUndefined(obj) {
178
178
  });
179
179
  return newObj;
180
180
  }
181
- function isObjectShallowModified(prev, next, strictMode, ignoreUndefined, statck) {
182
- if (strictMode === void 0) { strictMode = true; }
181
+ function isObjectShallowModified(prev, next, strictModeOrFunc, ignoreUndefined, stack) {
182
+ if (strictModeOrFunc === void 0) { strictModeOrFunc = true; }
183
183
  if (ignoreUndefined === void 0) { ignoreUndefined = false; }
184
- if (statck === void 0) { statck = []; }
184
+ if (stack === void 0) { stack = []; }
185
185
  if (Array.isArray(prev) && Array.isArray(next)) {
186
186
  return prev.length !== next.length
187
187
  ? true
188
188
  : prev.some(function (prev, index) {
189
- return isObjectShallowModified(prev, next[index], strictMode, ignoreUndefined, statck);
189
+ return isObjectShallowModified(prev, next[index], strictModeOrFunc, ignoreUndefined, stack);
190
190
  });
191
191
  }
192
192
  if (isNaN__default["default"](prev) && isNaN__default["default"](next)) {
@@ -196,9 +196,14 @@ function isObjectShallowModified(prev, next, strictMode, ignoreUndefined, statck
196
196
  null == next ||
197
197
  !object.isObject(prev) ||
198
198
  !object.isObject(next) ||
199
- mobx.isObservable(prev) ||
200
- mobx.isObservable(next)) {
201
- return strictMode ? prev !== next : prev != next;
199
+ // 不是 Object.create 创建的对象
200
+ // 不是 plain object
201
+ prev.constructor !== Object ||
202
+ next.constructor !== Object) {
203
+ if (strictModeOrFunc && typeof strictModeOrFunc === 'function') {
204
+ return strictModeOrFunc(prev, next);
205
+ }
206
+ return strictModeOrFunc ? prev !== next : prev != next;
202
207
  }
203
208
  if (ignoreUndefined) {
204
209
  prev = rmUndefined(prev);
@@ -211,13 +216,13 @@ function isObjectShallowModified(prev, next, strictMode, ignoreUndefined, statck
211
216
  return true;
212
217
  }
213
218
  // 避免循环引用死循环。
214
- if (~statck.indexOf(prev)) {
219
+ if (~stack.indexOf(prev)) {
215
220
  return false;
216
221
  }
217
- statck.push(prev);
222
+ stack.push(prev);
218
223
  for (var i = keys.length - 1; i >= 0; i--) {
219
224
  var key = keys[i];
220
- if (isObjectShallowModified(prev[key], next[key], strictMode, ignoreUndefined, statck)) {
225
+ if (isObjectShallowModified(prev[key], next[key], strictModeOrFunc, ignoreUndefined, stack)) {
221
226
  return true;
222
227
  }
223
228
  }
@@ -1372,43 +1377,46 @@ function JSONTraverse(json, mapper, maxDeep) {
1372
1377
  * @param mapper
1373
1378
  * @returns
1374
1379
  */
1375
- function JSONValueMap(json, mapper, stack) {
1380
+ function JSONValueMap(json, mapper, deepFirst, stack) {
1381
+ if (deepFirst === void 0) { deepFirst = false; }
1376
1382
  if (stack === void 0) { stack = []; }
1377
1383
  if (!isPlainObject__default["default"](json) && !Array.isArray(json)) {
1378
1384
  return json;
1379
1385
  }
1380
1386
  var iterator = function (origin, key, host, stack) {
1387
+ var _a, _b;
1381
1388
  if (stack === void 0) { stack = []; }
1382
- var maped = mapper(origin, key, host, stack);
1383
- if (maped === origin && (isPlainObject__default["default"](origin) || Array.isArray(origin))) {
1384
- return JSONValueMap(origin, mapper, stack);
1389
+ if (deepFirst) {
1390
+ var value = JSONValueMap(origin, mapper, deepFirst, stack);
1391
+ return (_a = mapper(value, key, host, stack)) !== null && _a !== void 0 ? _a : value;
1392
+ }
1393
+ var maped = (_b = mapper(origin, key, host, stack)) !== null && _b !== void 0 ? _b : origin;
1394
+ // 如果不是深度优先,上层的对象都修改了,就不继续递归进到新返回的对象了
1395
+ if (maped === origin) {
1396
+ return JSONValueMap(origin, mapper, deepFirst, stack);
1385
1397
  }
1386
1398
  return maped;
1387
1399
  };
1388
1400
  if (Array.isArray(json)) {
1389
- var flag_1 = false;
1390
- var mapped = json.map(function (value, index) {
1391
- var result = iterator(value, index, json, [json].concat(stack));
1392
- if (result !== value) {
1393
- flag_1 = true;
1394
- return result;
1395
- }
1396
- return value;
1401
+ var modified_1 = false;
1402
+ var arr = json.map(function (value, index) {
1403
+ var newValue = iterator(value, index, json, [json].concat(stack));
1404
+ modified_1 = modified_1 || newValue !== value;
1405
+ return newValue;
1397
1406
  });
1398
- return flag_1 ? mapped : json;
1407
+ return modified_1 ? arr : json;
1399
1408
  }
1400
- var flag = false;
1409
+ var modified = false;
1401
1410
  var toUpdate = {};
1402
1411
  Object.keys(json).forEach(function (key) {
1403
1412
  var value = json[key];
1404
1413
  var result = iterator(value, key, json, [json].concat(stack));
1405
1414
  if (result !== value) {
1406
- flag = true;
1415
+ modified = true;
1407
1416
  toUpdate[key] = result;
1408
- return;
1409
1417
  }
1410
1418
  });
1411
- return flag
1419
+ return modified
1412
1420
  ? tslib.__assign(tslib.__assign({}, json), toUpdate) : json;
1413
1421
  }
1414
1422
  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/lib/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
 
@@ -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