amis-core 3.5.2 → 3.5.3

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 (269) 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.js +2 -2
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +1 -1
  9. package/esm/actions/Action.js +1 -1
  10. package/esm/actions/AjaxAction.js +1 -1
  11. package/esm/actions/BreakAction.js +1 -1
  12. package/esm/actions/BroadcastAction.js +1 -1
  13. package/esm/actions/CmptAction.js +31 -32
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +1 -1
  17. package/esm/actions/DialogAction.js +1 -1
  18. package/esm/actions/DrawerAction.js +1 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/LinkAction.js +1 -1
  21. package/esm/actions/LoopAction.js +1 -1
  22. package/esm/actions/PageAction.js +1 -1
  23. package/esm/actions/ParallelAction.js +1 -1
  24. package/esm/actions/StatusAction.js +1 -1
  25. package/esm/actions/SwitchAction.js +1 -1
  26. package/esm/actions/ToastAction.js +1 -1
  27. package/esm/components/CustomStyle.js +1 -1
  28. package/esm/components/LazyComponent.js +1 -1
  29. package/esm/components/Overlay.js +1 -1
  30. package/esm/components/PopOver.js +1 -1
  31. package/esm/env.d.ts +9 -0
  32. package/esm/env.js +1 -1
  33. package/esm/envOverwrite.d.ts +1 -1
  34. package/esm/envOverwrite.js +15 -35
  35. package/esm/factory.js +1 -1
  36. package/esm/index.js +3 -3
  37. package/esm/locale.js +1 -1
  38. package/esm/polyfills.js +1 -1
  39. package/esm/renderers/Form.d.ts +9 -3
  40. package/esm/renderers/Form.js +50 -25
  41. package/esm/renderers/Item.js +1 -1
  42. package/esm/renderers/Options.d.ts +1 -1
  43. package/esm/renderers/Options.js +7 -6
  44. package/esm/renderers/Placeholder.js +1 -1
  45. package/esm/renderers/builtin.js +1 -1
  46. package/esm/renderers/register.js +1 -1
  47. package/esm/renderers/wrapControl.js +7 -12
  48. package/esm/store/app.js +1 -1
  49. package/esm/store/combo.d.ts +1154 -48
  50. package/esm/store/combo.js +10 -3
  51. package/esm/store/crud.js +22 -3
  52. package/esm/store/form.d.ts +480 -20
  53. package/esm/store/form.js +1 -1
  54. package/esm/store/formItem.d.ts +23 -1
  55. package/esm/store/formItem.js +88 -9
  56. package/esm/store/iRenderer.js +1 -1
  57. package/esm/store/index.js +1 -1
  58. package/esm/store/list.js +1 -1
  59. package/esm/store/manager.js +1 -1
  60. package/esm/store/modal.js +1 -1
  61. package/esm/store/node.js +1 -1
  62. package/esm/store/pagination.js +1 -1
  63. package/esm/store/root.js +1 -1
  64. package/esm/store/service.js +1 -1
  65. package/esm/store/status.js +1 -1
  66. package/esm/store/table.d.ts +1077 -42
  67. package/esm/store/table.js +66 -4
  68. package/esm/store/table2.js +1 -4
  69. package/esm/theme.js +1 -1
  70. package/esm/types.d.ts +8 -2
  71. package/esm/utils/Animation.js +1 -1
  72. package/esm/utils/ColorScale.js +1 -1
  73. package/esm/utils/DataSchema.js +1 -1
  74. package/esm/utils/DataScope.js +1 -1
  75. package/esm/utils/RootClose.js +1 -1
  76. package/esm/utils/SimpleMap.js +1 -1
  77. package/esm/utils/api.js +1 -1
  78. package/esm/utils/arraySlice.js +1 -1
  79. package/esm/utils/attachmentAdpator.js +1 -1
  80. package/esm/utils/autobind.js +1 -1
  81. package/esm/utils/columnsSplit.js +1 -1
  82. package/esm/utils/dataMapping.js +1 -1
  83. package/esm/utils/date.js +1 -1
  84. package/esm/utils/debug.js +1 -1
  85. package/esm/utils/decodeEntity.js +1 -1
  86. package/esm/utils/dom.js +1 -1
  87. package/esm/utils/errors.js +1 -1
  88. package/esm/utils/escapeHtml.js +1 -1
  89. package/esm/utils/filter-schema.js +1 -1
  90. package/esm/utils/filter.js +1 -1
  91. package/esm/utils/formatDuration.js +1 -1
  92. package/esm/utils/formula.js +1 -1
  93. package/esm/utils/getVariable.js +1 -1
  94. package/esm/utils/grammar.js +1 -1
  95. package/esm/utils/handleAction.js +1 -1
  96. package/esm/utils/helper.d.ts +2 -2
  97. package/esm/utils/helper.js +37 -29
  98. package/esm/utils/highlight.js +1 -1
  99. package/esm/utils/icon.js +1 -1
  100. package/esm/utils/image.js +1 -1
  101. package/esm/utils/isPureVariable.js +1 -1
  102. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  103. package/esm/utils/keyToPath.js +1 -1
  104. package/esm/utils/makeSorter.js +1 -1
  105. package/esm/utils/math.js +8 -5
  106. package/esm/utils/memoryParse.js +1 -1
  107. package/esm/utils/normalizeLink.js +1 -1
  108. package/esm/utils/normalizeOptions.js +1 -1
  109. package/esm/utils/object.js +15 -1
  110. package/esm/utils/offset.js +1 -1
  111. package/esm/utils/offsetParent.js +1 -1
  112. package/esm/utils/optionValueCompare.js +1 -1
  113. package/esm/utils/position.js +1 -1
  114. package/esm/utils/prettyBytes.js +1 -1
  115. package/esm/utils/renderer-event.d.ts +7 -0
  116. package/esm/utils/renderer-event.js +30 -18
  117. package/esm/utils/replaceText.js +1 -1
  118. package/esm/utils/resize-sensor.js +1 -1
  119. package/esm/utils/resolveCondition.js +1 -1
  120. package/esm/utils/resolveVariable.js +1 -1
  121. package/esm/utils/resolveVariableAndFilter.js +1 -1
  122. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  123. package/esm/utils/scrollPosition.js +1 -1
  124. package/esm/utils/string2regExp.js +1 -1
  125. package/esm/utils/stripNumber.js +1 -1
  126. package/esm/utils/style-helper.js +8 -13
  127. package/esm/utils/style.js +3 -2
  128. package/esm/utils/toNumber.js +1 -1
  129. package/esm/utils/tokenize.js +1 -1
  130. package/esm/utils/tpl-builtin.js +1 -1
  131. package/esm/utils/tpl-lodash.js +1 -1
  132. package/esm/utils/tpl.js +1 -1
  133. package/esm/utils/uncontrollable.js +1 -1
  134. package/esm/utils/validations.js +1 -1
  135. package/lib/Root.js +1 -1
  136. package/lib/RootRenderer.d.ts +1 -1
  137. package/lib/RootRenderer.js +2 -2
  138. package/lib/SchemaRenderer.js +1 -1
  139. package/lib/Scoped.js +2 -2
  140. package/lib/StatusScoped.js +1 -1
  141. package/lib/WithRootStore.js +1 -1
  142. package/lib/WithStore.js +1 -1
  143. package/lib/actions/Action.js +1 -1
  144. package/lib/actions/AjaxAction.js +1 -1
  145. package/lib/actions/BreakAction.js +1 -1
  146. package/lib/actions/BroadcastAction.js +1 -1
  147. package/lib/actions/CmptAction.js +31 -32
  148. package/lib/actions/ContinueAction.js +1 -1
  149. package/lib/actions/CopyAction.js +1 -1
  150. package/lib/actions/CustomAction.js +1 -1
  151. package/lib/actions/DialogAction.js +1 -1
  152. package/lib/actions/DrawerAction.js +1 -1
  153. package/lib/actions/EmailAction.js +1 -1
  154. package/lib/actions/LinkAction.js +1 -1
  155. package/lib/actions/LoopAction.js +1 -1
  156. package/lib/actions/PageAction.js +1 -1
  157. package/lib/actions/ParallelAction.js +1 -1
  158. package/lib/actions/StatusAction.js +1 -1
  159. package/lib/actions/SwitchAction.js +1 -1
  160. package/lib/actions/ToastAction.js +1 -1
  161. package/lib/components/CustomStyle.js +1 -1
  162. package/lib/components/LazyComponent.js +1 -1
  163. package/lib/components/Overlay.js +1 -1
  164. package/lib/components/PopOver.js +1 -1
  165. package/lib/env.d.ts +9 -0
  166. package/lib/env.js +1 -1
  167. package/lib/envOverwrite.d.ts +1 -1
  168. package/lib/envOverwrite.js +18 -34
  169. package/lib/factory.js +1 -1
  170. package/lib/index.js +3 -3
  171. package/lib/locale.js +1 -1
  172. package/lib/polyfills.js +1 -1
  173. package/lib/renderers/Form.d.ts +9 -3
  174. package/lib/renderers/Form.js +50 -25
  175. package/lib/renderers/Item.js +1 -1
  176. package/lib/renderers/Options.d.ts +1 -1
  177. package/lib/renderers/Options.js +7 -6
  178. package/lib/renderers/Placeholder.js +1 -1
  179. package/lib/renderers/builtin.js +1 -1
  180. package/lib/renderers/register.js +1 -1
  181. package/lib/renderers/wrapControl.js +7 -12
  182. package/lib/store/app.js +1 -1
  183. package/lib/store/combo.d.ts +1154 -49
  184. package/lib/store/combo.js +10 -3
  185. package/lib/store/crud.js +22 -3
  186. package/lib/store/form.d.ts +480 -21
  187. package/lib/store/form.js +1 -1
  188. package/lib/store/formItem.d.ts +23 -1
  189. package/lib/store/formItem.js +89 -9
  190. package/lib/store/iRenderer.js +1 -1
  191. package/lib/store/index.js +1 -1
  192. package/lib/store/list.js +1 -1
  193. package/lib/store/manager.js +1 -1
  194. package/lib/store/modal.js +1 -1
  195. package/lib/store/node.js +1 -1
  196. package/lib/store/pagination.js +1 -1
  197. package/lib/store/root.js +1 -1
  198. package/lib/store/service.js +1 -1
  199. package/lib/store/status.js +1 -1
  200. package/lib/store/table.d.ts +1077 -43
  201. package/lib/store/table.js +65 -3
  202. package/lib/store/table2.js +1 -4
  203. package/lib/theme.js +1 -1
  204. package/lib/types.d.ts +8 -2
  205. package/lib/utils/Animation.js +1 -1
  206. package/lib/utils/ColorScale.js +1 -1
  207. package/lib/utils/DataSchema.js +1 -1
  208. package/lib/utils/DataScope.js +1 -1
  209. package/lib/utils/RootClose.js +1 -1
  210. package/lib/utils/SimpleMap.js +1 -1
  211. package/lib/utils/api.js +1 -1
  212. package/lib/utils/arraySlice.js +1 -1
  213. package/lib/utils/attachmentAdpator.js +1 -1
  214. package/lib/utils/autobind.js +1 -1
  215. package/lib/utils/columnsSplit.js +1 -1
  216. package/lib/utils/dataMapping.js +1 -1
  217. package/lib/utils/date.js +1 -1
  218. package/lib/utils/debug.js +1 -1
  219. package/lib/utils/decodeEntity.js +1 -1
  220. package/lib/utils/dom.js +1 -1
  221. package/lib/utils/errors.js +1 -1
  222. package/lib/utils/escapeHtml.js +1 -1
  223. package/lib/utils/filter-schema.js +1 -1
  224. package/lib/utils/filter.js +1 -1
  225. package/lib/utils/formatDuration.js +1 -1
  226. package/lib/utils/formula.js +1 -1
  227. package/lib/utils/getVariable.js +1 -1
  228. package/lib/utils/grammar.js +1 -1
  229. package/lib/utils/handleAction.js +1 -1
  230. package/lib/utils/helper.d.ts +2 -2
  231. package/lib/utils/helper.js +36 -28
  232. package/lib/utils/highlight.js +1 -1
  233. package/lib/utils/icon.js +1 -1
  234. package/lib/utils/image.js +1 -1
  235. package/lib/utils/isPureVariable.js +1 -1
  236. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  237. package/lib/utils/keyToPath.js +1 -1
  238. package/lib/utils/makeSorter.js +1 -1
  239. package/lib/utils/math.js +8 -5
  240. package/lib/utils/memoryParse.js +1 -1
  241. package/lib/utils/normalizeLink.js +1 -1
  242. package/lib/utils/normalizeOptions.js +1 -1
  243. package/lib/utils/object.js +15 -1
  244. package/lib/utils/offset.js +1 -1
  245. package/lib/utils/offsetParent.js +1 -1
  246. package/lib/utils/optionValueCompare.js +1 -1
  247. package/lib/utils/position.js +1 -1
  248. package/lib/utils/prettyBytes.js +1 -1
  249. package/lib/utils/renderer-event.d.ts +7 -0
  250. package/lib/utils/renderer-event.js +30 -18
  251. package/lib/utils/replaceText.js +1 -1
  252. package/lib/utils/resize-sensor.js +1 -1
  253. package/lib/utils/resolveCondition.js +1 -1
  254. package/lib/utils/resolveVariable.js +1 -1
  255. package/lib/utils/resolveVariableAndFilter.js +1 -1
  256. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  257. package/lib/utils/scrollPosition.js +1 -1
  258. package/lib/utils/string2regExp.js +1 -1
  259. package/lib/utils/stripNumber.js +1 -1
  260. package/lib/utils/style-helper.js +8 -13
  261. package/lib/utils/style.js +3 -2
  262. package/lib/utils/toNumber.js +1 -1
  263. package/lib/utils/tokenize.js +1 -1
  264. package/lib/utils/tpl-builtin.js +1 -1
  265. package/lib/utils/tpl-lodash.js +1 -1
  266. package/lib/utils/tpl.js +1 -1
  267. package/lib/utils/uncontrollable.js +1 -1
  268. package/lib/utils/validations.js +1 -1
  269. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.5.3
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);
@@ -754,7 +788,14 @@ var TableStore = iRenderer.iRendererStore
754
788
  : 'asc'
755
789
  : self.orderDir);
756
790
  }
757
- config.multiple !== undefined && (self.multiple = config.multiple);
791
+ if (config.multiple !== undefined) {
792
+ self.multiple = config.multiple;
793
+ }
794
+ else {
795
+ // 如果通过crud或picker,multiple始终设置了true或false
796
+ // 如果仅使用table,默认multiple为true,但props未设置multiple的情况下其实是展示单选
797
+ self.multiple = false;
798
+ }
758
799
  config.footable !== undefined && (self.footable = config.footable);
759
800
  config.expandConfig !== undefined &&
760
801
  (self.expandConfig = config.expandConfig);
@@ -1143,6 +1184,25 @@ var TableStore = iRenderer.iRendererStore
1143
1184
  : checked && self.selectedRows.replace([row]);
1144
1185
  }
1145
1186
  }
1187
+ function toggleAncestors(row) {
1188
+ var parent = row.parent;
1189
+ if (!parent.depth) {
1190
+ return;
1191
+ }
1192
+ var selectedStatus = parent.childrenSelected();
1193
+ toggle(parent, selectedStatus === exports.SELECTED_STATUS.ALL);
1194
+ toggleAncestors(parent);
1195
+ }
1196
+ function toggleDescendants(row, checked) {
1197
+ var children = row.children;
1198
+ if (!(children === null || children === void 0 ? void 0 : children.length)) {
1199
+ return;
1200
+ }
1201
+ children.forEach(function (child) {
1202
+ toggle(child, checked);
1203
+ toggleDescendants(child, checked);
1204
+ });
1205
+ }
1146
1206
  function getToggleShiftRows(row) {
1147
1207
  var e_1, _a;
1148
1208
  // 如果是同一个或非 multiple 模式下就和不用 shift 一样
@@ -1364,6 +1424,8 @@ var TableStore = iRenderer.iRendererStore
1364
1424
  toggleAll: toggleAll,
1365
1425
  getSelectedRows: getSelectedRows,
1366
1426
  toggle: toggle,
1427
+ toggleAncestors: toggleAncestors,
1428
+ toggleDescendants: toggleDescendants,
1367
1429
  toggleShift: toggleShift,
1368
1430
  getToggleShiftRows: getToggleShiftRows,
1369
1431
  toggleExpandAll: toggleExpandAll,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
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.5.3
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/utils/math.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.5.3
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -43,14 +43,17 @@ function safeSub(arg1, arg2) {
43
43
  return (arg1 * maxDigits - arg2 * maxDigits) / maxDigits;
44
44
  }
45
45
  function numberFormatter(num, precision) {
46
- if (precision === void 0) { precision = 0; }
46
+ var _a;
47
47
  var ZERO = 0;
48
48
  var number = +num;
49
+ var finalP = typeof precision === 'number'
50
+ ? precision
51
+ : ((_a = number.toString().split('.')[1]) === null || _a === void 0 ? void 0 : _a.length) || 0;
49
52
  if (typeof number === 'number' && !isNaN(number)) {
50
- var regexp = precision ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(\d{3})+$)/g;
51
- return number.toFixed(precision).replace(regexp, '$1,');
53
+ var regexp = finalP ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(\d{3})+$)/g;
54
+ return number.toFixed(finalP).replace(regexp, '$1,');
52
55
  }
53
- return ZERO.toFixed(precision);
56
+ return ZERO.toFixed(finalP);
54
57
  }
55
58
  /**
56
59
  * 判断一个数字是否为整数,且在给定范围内
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.5.2
2
+ * amis-core v3.5.3
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.5.3
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.5.3
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5