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
 
@@ -25,32 +25,17 @@ var CmptAction = /** @class */ (function () {
25
25
  CmptAction.prototype.run = function (action, renderer, event) {
26
26
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
27
27
  return tslib.__awaiter(this, void 0, void 0, function () {
28
- var key, dataMergeMode, component, msg, beforeSetData, path, res, result, e_1;
28
+ var key, dataMergeMode, path, beforeSetData, res, component, msg, result, e_1;
29
29
  var _t, _u;
30
30
  return tslib.__generator(this, function (_v) {
31
31
  switch (_v.label) {
32
32
  case 0:
33
33
  key = action.componentId || action.componentName;
34
34
  dataMergeMode = action.dataMergeMode || 'merge';
35
- component = key
36
- ? (_a = event.context.scoped) === null || _a === void 0 ? void 0 : _a[action.componentId ? 'getComponentById' : 'getComponentByName'](key)
37
- : null;
38
- if (key && !component) {
39
- msg = '尝试执行一个不存在的目标组件动作,请检查目标组件非隐藏状态,且正确指定了componentId或componentName';
40
- if (action.ignoreError === false) {
41
- throw Error(msg);
42
- }
43
- else {
44
- console.warn(msg);
45
- }
46
- }
47
- if (!(action.actionType === 'setValue')) return [3 /*break*/, 3];
35
+ path = (_a = action.args) === null || _a === void 0 ? void 0 : _a.path;
36
+ if (!(action.actionType === 'setValue' && path && typeof path === 'string')) return [3 /*break*/, 2];
48
37
  beforeSetData = (_c = (_b = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _b === void 0 ? void 0 : _b.env) === null || _c === void 0 ? void 0 : _c.beforeSetData;
49
- path = (_d = action.args) === null || _d === void 0 ? void 0 : _d.path;
50
- if (!(path &&
51
- typeof path === 'string' &&
52
- beforeSetData &&
53
- typeof beforeSetData === 'function')) return [3 /*break*/, 2];
38
+ if (!(beforeSetData && typeof beforeSetData === 'function')) return [3 /*break*/, 2];
54
39
  return [4 /*yield*/, beforeSetData(renderer, action, event)];
55
40
  case 1:
56
41
  res = _v.sent();
@@ -59,22 +44,36 @@ var CmptAction = /** @class */ (function () {
59
44
  }
60
45
  _v.label = 2;
61
46
  case 2:
62
- if (component === null || component === void 0 ? void 0 : component.setData) {
63
- return [2 /*return*/, component === null || component === void 0 ? void 0 : component.setData((_e = action.args) === null || _e === void 0 ? void 0 : _e.value, dataMergeMode === 'override', (_f = action.args) === null || _f === void 0 ? void 0 : _f.index, (_g = action.args) === null || _g === void 0 ? void 0 : _g.condition)];
47
+ component = key
48
+ ? (_d = event.context.scoped) === null || _d === void 0 ? void 0 : _d[action.componentId ? 'getComponentById' : 'getComponentByName'](key)
49
+ : renderer;
50
+ // 如果key指定来,但是没找到组件,则报错
51
+ if (key && !component) {
52
+ msg = '尝试执行一个不存在的目标组件动作,请检查目标组件非隐藏状态,且正确指定了componentId或componentName';
53
+ if (action.ignoreError === false) {
54
+ throw Error(msg);
55
+ }
56
+ else {
57
+ console.warn(msg);
58
+ }
64
59
  }
65
- else {
66
- return [2 /*return*/, (_j = component === null || component === void 0 ? void 0 : (_h = component.props).onChange) === null || _j === void 0 ? void 0 : _j.call(_h, (_k = action.args) === null || _k === void 0 ? void 0 : _k.value)];
60
+ if (action.actionType === 'setValue') {
61
+ if (component === null || component === void 0 ? void 0 : component.setData) {
62
+ return [2 /*return*/, component === null || component === void 0 ? void 0 : component.setData((_e = action.args) === null || _e === void 0 ? void 0 : _e.value, dataMergeMode === 'override', (_f = action.args) === null || _f === void 0 ? void 0 : _f.index, (_g = action.args) === null || _g === void 0 ? void 0 : _g.condition)];
63
+ }
64
+ else {
65
+ return [2 /*return*/, (_j = component === null || component === void 0 ? void 0 : (_h = component.props).onChange) === null || _j === void 0 ? void 0 : _j.call(_h, (_k = action.args) === null || _k === void 0 ? void 0 : _k.value)];
66
+ }
67
67
  }
68
- case 3:
69
68
  // 刷新
70
69
  if (action.actionType === 'reload') {
71
70
  return [2 /*return*/, (_l = component === null || component === void 0 ? void 0 : component.reload) === null || _l === void 0 ? void 0 : _l.call(component, undefined, action.data, undefined, undefined, dataMergeMode === 'override', action.args)];
72
71
  }
73
- _v.label = 4;
74
- case 4:
75
- _v.trys.push([4, 6, , 7]);
72
+ _v.label = 3;
73
+ case 3:
74
+ _v.trys.push([3, 5, , 6]);
76
75
  return [4 /*yield*/, ((_m = component === null || component === void 0 ? void 0 : component.doAction) === null || _m === void 0 ? void 0 : _m.call(component, action, action.args, true))];
77
- case 5:
76
+ case 4:
78
77
  result = _v.sent();
79
78
  if (['validate', 'submit'].includes(action.actionType)) {
80
79
  event.setData(object.createObject(event.data, (_t = {},
@@ -86,7 +85,7 @@ var CmptAction = /** @class */ (function () {
86
85
  _t)));
87
86
  }
88
87
  return [2 /*return*/, result];
89
- case 6:
88
+ case 5:
90
89
  e_1 = _v.sent();
91
90
  event.setData(object.createObject(event.data, (_u = {},
92
91
  _u[action.outputVar || "".concat(action.actionType, "Result")] = {
@@ -95,8 +94,8 @@ var CmptAction = /** @class */ (function () {
95
94
  payload: (_s = (_r = component === null || component === void 0 ? void 0 : component.props) === null || _r === void 0 ? void 0 : _r.store) === null || _s === void 0 ? void 0 : _s.data
96
95
  },
97
96
  _u)));
98
- return [3 /*break*/, 7];
99
- case 7: return [2 /*return*/];
97
+ return [3 /*break*/, 6];
98
+ case 6: return [2 /*return*/];
100
99
  }
101
100
  });
102
101
  });
@@ -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
 
@@ -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
 
package/lib/env.d.ts CHANGED
@@ -16,6 +16,7 @@ export interface WsObject {
16
16
  body?: any;
17
17
  }
18
18
  export interface RendererEnv {
19
+ forceSilenceInsideError?: boolean;
19
20
  session?: string;
20
21
  fetcher: (api: Api, data?: any, options?: object) => Promise<Payload>;
21
22
  isCancel: (val: any) => boolean;
@@ -63,6 +64,14 @@ export interface RendererEnv {
63
64
  */
64
65
  affixOffsetBottom?: number;
65
66
  richTextToken: string;
67
+ /**
68
+ * 默认的选址组件提供商,目前支持仅 baidu
69
+ */
70
+ locationPickerVendor?: string;
71
+ /**
72
+ * 选址组件的 ak
73
+ */
74
+ locationPickerAK?: string;
66
75
  loadRenderer: (schema: Schema, path: string, reRender: Function) => Promise<React.ElementType> | React.ElementType | JSX.Element | void;
67
76
  loadChartExtends?: () => void | Promise<void>;
68
77
  loadTinymcePlugin?: (tinymce: any) => void | Promise<void>;
package/lib/env.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,4 +1,4 @@
1
1
  /**
2
2
  * @file 用于在移动端或不同语言环境下使用不同配置
3
3
  */
4
- export declare const envOverwrite: (schema: any, locale?: string) => void;
4
+ export declare const envOverwrite: (schema: any, locale?: string) => 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
 
@@ -7,8 +7,12 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- var tslib = require('tslib');
11
10
  var helper = require('./utils/helper.js');
11
+ var isPlainObject = require('lodash/isPlainObject');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
12
16
 
13
17
  /**
14
18
  * @file 用于在移动端或不同语言环境下使用不同配置
@@ -19,41 +23,21 @@ var isMobile = ((_b = (_a = window).matchMedia) === null || _b === void 0 ? void
19
23
  : false;
20
24
  // 这里不能用 addSchemaFilter 是因为还需要更深层的替换,比如 select 里的 options
21
25
  var envOverwrite = function (schema, locale) {
22
- var e_1, _a, e_2, _b;
23
- if (locale) {
24
- var schemaNodes = helper.findObjectsWithKey(schema, locale);
25
- try {
26
- for (var schemaNodes_1 = tslib.__values(schemaNodes), schemaNodes_1_1 = schemaNodes_1.next(); !schemaNodes_1_1.done; schemaNodes_1_1 = schemaNodes_1.next()) {
27
- var schemaNode = schemaNodes_1_1.value;
28
- Object.assign(schemaNode, schemaNode[locale]);
29
- delete schemaNode[locale];
30
- }
31
- }
32
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
33
- finally {
34
- try {
35
- if (schemaNodes_1_1 && !schemaNodes_1_1.done && (_a = schemaNodes_1.return)) _a.call(schemaNodes_1);
36
- }
37
- finally { if (e_1) throw e_1.error; }
26
+ return helper.JSONValueMap(schema, function (value) {
27
+ if (!isPlainObject__default["default"](value)) {
28
+ return value;
38
29
  }
39
- }
40
- if (isMobile) {
41
- var schemaNodes = helper.findObjectsWithKey(schema, 'mobile');
42
- try {
43
- for (var schemaNodes_2 = tslib.__values(schemaNodes), schemaNodes_2_1 = schemaNodes_2.next(); !schemaNodes_2_1.done; schemaNodes_2_1 = schemaNodes_2.next()) {
44
- var schemaNode = schemaNodes_2_1.value;
45
- Object.assign(schemaNode, schemaNode['mobile']);
46
- delete schemaNode['mobile'];
47
- }
30
+ if (locale && value[locale]) {
31
+ var newValue = Object.assign({}, value, value[locale]);
32
+ delete newValue[locale];
33
+ return newValue;
48
34
  }
49
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
50
- finally {
51
- try {
52
- if (schemaNodes_2_1 && !schemaNodes_2_1.done && (_b = schemaNodes_2.return)) _b.call(schemaNodes_2);
53
- }
54
- finally { if (e_2) throw e_2.error; }
35
+ else if (isMobile && value.mobile) {
36
+ var newValue = Object.assign({}, value, value.mobile);
37
+ delete newValue.mobile;
38
+ return newValue;
55
39
  }
56
- }
40
+ }, true);
57
41
  };
58
42
 
59
43
  exports.envOverwrite = envOverwrite;
package/lib/factory.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/index.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
 
@@ -132,7 +132,7 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
132
132
  (__react_jsx__["default"] || __react_jsx__).Fragment;
133
133
  var classPrefix = theme.getClassPrefix();
134
134
  // @ts-ignore
135
- var version = '3.5.2';
135
+ var version = '3.5.3';
136
136
  function render(schema, props, options, pathPrefix) {
137
137
  if (props === void 0) { props = {}; }
138
138
  if (options === void 0) { options = {}; }
@@ -191,7 +191,7 @@ function AMISRenderer(_a) {
191
191
  props.mobileUI = env$1.isMobile();
192
192
  }
193
193
  // 根据环境覆盖 schema,这个要在最前面做,不然就无法覆盖 validations
194
- envOverwrite.envOverwrite(schema, locale$1);
194
+ schema = envOverwrite.envOverwrite(schema, locale$1);
195
195
  schema = replaceText.replaceText(schema, options.replaceText, env$1.replaceTextIgnoreKeys);
196
196
  return (_J$X_(env.EnvContext.Provider, { value: env$1 },
197
197
  _J$X_(Root["default"], tslib.__assign({}, props, { schema: schema, pathPrefix: pathPrefix, rootStore: store, env: env$1, theme: theme$1, locale: locale$1, translate: translate }))));
package/lib/locale.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/polyfills.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
 
@@ -265,6 +265,7 @@ export interface FormProps extends RendererProps, Omit<FormSchemaBase, 'mode' |
265
265
  onFailed?: (reason: string, errors: any) => any;
266
266
  onFinished: (values: object, action: any) => any;
267
267
  onValidate: (values: object, form: any) => any;
268
+ onValidChange?: (valid: boolean, props: any) => void;
268
269
  messages: {
269
270
  fetchSuccess?: string;
270
271
  fetchFailed?: string;
@@ -315,8 +316,7 @@ export default class Form extends React.Component<FormProps, object> {
315
316
  [propName: string]: Array<() => Promise<any>>;
316
317
  };
317
318
  asyncCancel: () => void;
318
- disposeOnValidate: () => void;
319
- disposeRulesValidate: () => void;
319
+ toDispose: Array<() => void>;
320
320
  shouldLoadInitApi: boolean;
321
321
  timer: ReturnType<typeof setTimeout>;
322
322
  mounted: boolean;
@@ -326,6 +326,12 @@ export default class Form extends React.Component<FormProps, object> {
326
326
  componentDidMount(): void;
327
327
  componentDidUpdate(prevProps: FormProps): void;
328
328
  componentWillUnmount(): void;
329
+ /** 获取表单联合校验的规则 */
330
+ getNormalizedRules(): {
331
+ message: any;
332
+ rule: string;
333
+ name?: string | string[] | undefined;
334
+ }[];
329
335
  dispatchInited(value: any): Promise<any>;
330
336
  blockRouting(): any;
331
337
  beforePageUnload(e: any): any;
@@ -335,7 +341,7 @@ export default class Form extends React.Component<FormProps, object> {
335
341
  silentReload(target?: string, query?: any): void;
336
342
  initInterval(value: any): any;
337
343
  isValidated(): boolean;
338
- validate(forceValidate?: boolean, throwErrors?: boolean): Promise<boolean>;
344
+ validate(forceValidate?: boolean, throwErrors?: boolean, toastErrors?: boolean): Promise<boolean>;
339
345
  setErrors(errors: {
340
346
  [propName: string]: string;
341
347
  }, tag?: string): void;
@@ -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
 
@@ -56,7 +56,7 @@ require('uncontrollable');
56
56
  require('hoist-non-react-statics');
57
57
  require('../utils/validations.js');
58
58
  require('../utils/resolveCondition.js');
59
- require('mobx');
59
+ var mobx = require('mobx');
60
60
  require('../utils/Animation.js');
61
61
 
62
62
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -74,6 +74,7 @@ var Form = /** @class */ (function (_super) {
74
74
  function Form(props) {
75
75
  var _this = _super.call(this, props) || this;
76
76
  _this.hooks = {};
77
+ _this.toDispose = [];
77
78
  _this.shouldLoadInitApi = false;
78
79
  _this.lazyEmitChange = debounce__default["default"](_this.emitChange.bind(_this), 250, {
79
80
  trailing: true,
@@ -122,11 +123,12 @@ var Form = /** @class */ (function (_super) {
122
123
  Form.prototype.componentDidMount = function () {
123
124
  var _this = this;
124
125
  var _a, _b;
125
- var _c = this.props, initApi = _c.initApi, initFetch = _c.initFetch, initFetchOn = _c.initFetchOn, initAsyncApi = _c.initAsyncApi, initFinishedField = _c.initFinishedField, initCheckInterval = _c.initCheckInterval, store = _c.store, _d = _c.messages, fetchSuccess = _d.fetchSuccess, fetchFailed = _d.fetchFailed, onValidate = _c.onValidate, promptPageLeave = _c.promptPageLeave, env = _c.env, rules = _c.rules;
126
+ var _c = this.props, initApi = _c.initApi, initFetch = _c.initFetch, initFetchOn = _c.initFetchOn, initAsyncApi = _c.initAsyncApi, initFinishedField = _c.initFinishedField, initCheckInterval = _c.initCheckInterval, store = _c.store, _d = _c.messages, fetchSuccess = _d.fetchSuccess, fetchFailed = _d.fetchFailed, onValidate = _c.onValidate, onValidChange = _c.onValidChange, promptPageLeave = _c.promptPageLeave, env = _c.env;
127
+ var rules = this.getNormalizedRules();
126
128
  this.mounted = true;
127
129
  if (onValidate) {
128
130
  var finalValidate_1 = helper.promisify(onValidate);
129
- this.disposeOnValidate = this.addHook(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
131
+ this.toDispose.push(this.addHook(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
130
132
  var result;
131
133
  return tslib.__generator(this, function (_a) {
132
134
  switch (_a.label) {
@@ -156,10 +158,14 @@ var Form = /** @class */ (function (_super) {
156
158
  return [2 /*return*/];
157
159
  }
158
160
  });
159
- }); });
161
+ }); }));
160
162
  }
161
- if (Array.isArray(rules) && rules.length) {
162
- this.disposeRulesValidate = this.addHook(function () {
163
+ // 表单校验结果发生变化时,触发 onValidChange
164
+ if (onValidChange) {
165
+ this.toDispose.push(mobx.reaction(function () { return store.valid; }, function (valid) { return onValidChange(valid, _this.props); }));
166
+ }
167
+ if (rules.length) {
168
+ this.toDispose.push(this.addHook(function () {
163
169
  if (!store.valid) {
164
170
  return;
165
171
  }
@@ -167,7 +173,7 @@ var Form = /** @class */ (function (_super) {
167
173
  return !tpl.evalExpression(item.rule, store.data) &&
168
174
  store.addRestError(item.message, item.name);
169
175
  });
170
- });
176
+ }));
171
177
  }
172
178
  if (api.isEffectiveApi(initApi, store.data, initFetch, initFetchOn)) {
173
179
  store
@@ -215,11 +221,23 @@ var Form = /** @class */ (function (_super) {
215
221
  // this.lazyHandleChange.flush();
216
222
  this.lazyEmitChange.cancel();
217
223
  this.asyncCancel && this.asyncCancel();
218
- this.disposeOnValidate && this.disposeOnValidate();
219
- this.disposeRulesValidate && this.disposeRulesValidate();
224
+ this.toDispose.forEach(function (fn) { return fn(); });
225
+ this.toDispose = [];
220
226
  window.removeEventListener('beforeunload', this.beforePageUnload);
221
227
  (_a = this.unBlockRouting) === null || _a === void 0 ? void 0 : _a.call(this);
222
228
  };
229
+ /** 获取表单联合校验的规则 */
230
+ Form.prototype.getNormalizedRules = function () {
231
+ var _a = this.props, rules = _a.rules, __ = _a.translate;
232
+ if (!Array.isArray(rules) || rules.length < 1) {
233
+ return [];
234
+ }
235
+ return rules
236
+ .map(function (item) { return (tslib.__assign(tslib.__assign({}, item), (!item.message || typeof item.message !== 'string'
237
+ ? { message: __('Form.rules.message') }
238
+ : {}))); })
239
+ .filter(function (item) { return item.rule && typeof item.rule === 'string'; });
240
+ };
223
241
  Form.prototype.dispatchInited = function (value) {
224
242
  var _a;
225
243
  return tslib.__awaiter(this, void 0, void 0, function () {
@@ -367,22 +385,27 @@ var Form = /** @class */ (function (_super) {
367
385
  Form.prototype.isValidated = function () {
368
386
  return this.props.store.validated;
369
387
  };
370
- Form.prototype.validate = function (forceValidate, throwErrors) {
388
+ Form.prototype.validate = function (forceValidate, throwErrors, toastErrors) {
371
389
  if (throwErrors === void 0) { throwErrors = false; }
372
- var _a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data, messages = _a.messages, __ = _a.translate;
373
- this.flush();
374
- return store
375
- .validate(this.hooks['validate'] || [], forceValidate, throwErrors, typeof (messages === null || messages === void 0 ? void 0 : messages.validateFailed) === 'string'
376
- ? __(tpl.filter(messages.validateFailed, store.data))
377
- : undefined)
378
- .then(function (result) {
379
- if (result) {
380
- dispatchEvent('validateSucc', data);
381
- }
382
- else {
383
- dispatchEvent('validateError', data);
384
- }
385
- return result;
390
+ if (toastErrors === void 0) { toastErrors = true; }
391
+ return tslib.__awaiter(this, void 0, void 0, function () {
392
+ var _a, store, dispatchEvent, data, messages, __, result;
393
+ return tslib.__generator(this, function (_b) {
394
+ switch (_b.label) {
395
+ case 0:
396
+ _a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data, messages = _a.messages, __ = _a.translate;
397
+ this.flush();
398
+ return [4 /*yield*/, store.validate(this.hooks['validate'] || [], forceValidate, throwErrors, toastErrors === false
399
+ ? ''
400
+ : typeof (messages === null || messages === void 0 ? void 0 : messages.validateFailed) === 'string'
401
+ ? __(tpl.filter(messages.validateFailed, store.data))
402
+ : undefined)];
403
+ case 1:
404
+ result = _b.sent();
405
+ dispatchEvent(result ? 'validateSucc' : 'validateError', data);
406
+ return [2 /*return*/, result];
407
+ }
408
+ });
386
409
  });
387
410
  };
388
411
  Form.prototype.setErrors = function (errors, tag) {
@@ -1157,6 +1180,8 @@ var Form = /** @class */ (function (_super) {
1157
1180
  'onChange',
1158
1181
  'onFailed',
1159
1182
  'onFinished',
1183
+ 'onValidate',
1184
+ 'onValidChange',
1160
1185
  'onSaved',
1161
1186
  'canAccessSuperData',
1162
1187
  'lazyChange',
@@ -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
 
@@ -136,7 +136,7 @@ export interface OptionsControlProps extends FormControlProps, Omit<FormOptionsC
136
136
  selectedOptions: Array<Option>;
137
137
  setOptions: (value: Array<any>, skipNormalize?: boolean) => void;
138
138
  setLoading: (value: boolean) => void;
139
- reloadOptions: (setError?: boolean) => void;
139
+ reloadOptions: (setError?: boolean, isInit?: boolean, data?: Record<string, any>) => void;
140
140
  deferLoad: (option: Option) => void;
141
141
  leftDeferLoad: (option: Option, leftOptions: Option) => void;
142
142
  expandTreeOptions: (nodePathArr: any[]) => void;