amis-core 3.4.2 → 3.5.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 (277) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +12 -2
  3. package/esm/SchemaRenderer.js +1 -1
  4. package/esm/Scoped.js +2 -2
  5. package/esm/StatusScoped.js +1 -1
  6. package/esm/WithRootStore.js +1 -1
  7. package/esm/WithStore.js +8 -4
  8. package/esm/actions/Action.js +1 -1
  9. package/esm/actions/AjaxAction.js +1 -1
  10. package/esm/actions/BreakAction.js +1 -1
  11. package/esm/actions/BroadcastAction.js +1 -1
  12. package/esm/actions/CmptAction.d.ts +1 -0
  13. package/esm/actions/CmptAction.js +23 -23
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +2 -2
  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 +9 -9
  28. package/esm/components/LazyComponent.js +1 -1
  29. package/esm/components/Overlay.js +2 -1
  30. package/esm/components/PopOver.js +2 -2
  31. package/esm/env.d.ts +11 -3
  32. package/esm/env.js +1 -1
  33. package/esm/envOverwrite.js +1 -1
  34. package/esm/factory.js +1 -3
  35. package/esm/index.d.ts +1 -0
  36. package/esm/index.js +4 -4
  37. package/esm/locale.js +1 -1
  38. package/esm/polyfills.js +1 -1
  39. package/esm/renderers/Form.js +10 -4
  40. package/esm/renderers/Item.d.ts +2 -6
  41. package/esm/renderers/Item.js +11 -17
  42. package/esm/renderers/Options.js +2 -2
  43. package/esm/renderers/Placeholder.js +1 -1
  44. package/esm/renderers/builtin.js +1 -1
  45. package/esm/renderers/register.js +1 -1
  46. package/esm/renderers/wrapControl.js +41 -22
  47. package/esm/store/app.js +7 -5
  48. package/esm/store/combo.d.ts +120 -0
  49. package/esm/store/combo.js +3 -2
  50. package/esm/store/crud.d.ts +13 -2
  51. package/esm/store/crud.js +88 -23
  52. package/esm/store/form.d.ts +50 -0
  53. package/esm/store/form.js +5 -2
  54. package/esm/store/formItem.d.ts +1 -0
  55. package/esm/store/formItem.js +18 -6
  56. package/esm/store/iRenderer.js +2 -2
  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 +2 -2
  64. package/esm/store/service.js +1 -1
  65. package/esm/store/status.js +1 -1
  66. package/esm/store/table.d.ts +454 -83
  67. package/esm/store/table.js +114 -74
  68. package/esm/store/table2.d.ts +1 -1
  69. package/esm/store/table2.js +5 -4
  70. package/esm/theme.js +1 -1
  71. package/esm/types.d.ts +6 -0
  72. package/esm/utils/Animation.js +1 -1
  73. package/esm/utils/ColorScale.js +1 -1
  74. package/esm/utils/DataSchema.js +1 -1
  75. package/esm/utils/DataScope.js +1 -1
  76. package/esm/utils/RootClose.js +1 -1
  77. package/esm/utils/SimpleMap.js +1 -1
  78. package/esm/utils/api.js +2 -1
  79. package/esm/utils/arraySlice.js +1 -1
  80. package/esm/utils/attachmentAdpator.d.ts +2 -1
  81. package/esm/utils/attachmentAdpator.js +17 -11
  82. package/esm/utils/autobind.js +1 -1
  83. package/esm/utils/columnsSplit.js +1 -1
  84. package/esm/utils/dataMapping.js +1 -1
  85. package/esm/utils/date.js +1 -1
  86. package/esm/utils/debug.d.ts +1 -1
  87. package/esm/utils/debug.js +5 -3
  88. package/esm/utils/decodeEntity.js +1 -1
  89. package/esm/utils/dom.js +1 -1
  90. package/esm/utils/errors.js +1 -1
  91. package/esm/utils/escapeHtml.js +1 -1
  92. package/esm/utils/filter-schema.d.ts +8 -0
  93. package/esm/utils/filter-schema.js +32 -14
  94. package/esm/utils/filter.js +1 -1
  95. package/esm/utils/formatDuration.js +1 -1
  96. package/esm/utils/formula.js +1 -1
  97. package/esm/utils/getVariable.js +1 -1
  98. package/esm/utils/grammar.js +1 -1
  99. package/esm/utils/handleAction.js +2 -1
  100. package/esm/utils/helper.d.ts +15 -1
  101. package/esm/utils/helper.js +59 -12
  102. package/esm/utils/highlight.js +1 -1
  103. package/esm/utils/icon.js +1 -1
  104. package/esm/utils/image.js +1 -1
  105. package/esm/utils/isPureVariable.js +1 -1
  106. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  107. package/esm/utils/keyToPath.js +1 -1
  108. package/esm/utils/makeSorter.js +1 -1
  109. package/esm/utils/math.js +1 -1
  110. package/esm/utils/memoryParse.js +1 -1
  111. package/esm/utils/normalizeLink.js +1 -1
  112. package/esm/utils/normalizeOptions.js +1 -1
  113. package/esm/utils/object.js +1 -1
  114. package/esm/utils/offset.js +1 -1
  115. package/esm/utils/offsetParent.js +1 -1
  116. package/esm/utils/optionValueCompare.js +1 -1
  117. package/esm/utils/position.js +1 -1
  118. package/esm/utils/prettyBytes.js +1 -1
  119. package/esm/utils/renderer-event.js +1 -1
  120. package/esm/utils/replaceText.d.ts +1 -1
  121. package/esm/utils/replaceText.js +9 -4
  122. package/esm/utils/resize-sensor.js +1 -1
  123. package/esm/utils/resolveCondition.js +1 -1
  124. package/esm/utils/resolveVariable.js +1 -1
  125. package/esm/utils/resolveVariableAndFilter.js +1 -1
  126. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  127. package/esm/utils/scrollPosition.js +1 -1
  128. package/esm/utils/string2regExp.js +1 -1
  129. package/esm/utils/stripNumber.js +1 -1
  130. package/esm/utils/style-helper.js +5 -4
  131. package/esm/utils/style.js +1 -1
  132. package/esm/utils/toNumber.js +1 -1
  133. package/esm/utils/tokenize.js +1 -1
  134. package/esm/utils/tpl-builtin.js +1 -1
  135. package/esm/utils/tpl-lodash.js +1 -1
  136. package/esm/utils/tpl.js +1 -1
  137. package/esm/utils/uncontrollable.js +1 -1
  138. package/esm/utils/validations.js +1 -1
  139. package/lib/Root.js +1 -1
  140. package/lib/RootRenderer.js +12 -2
  141. package/lib/SchemaRenderer.js +1 -1
  142. package/lib/Scoped.js +2 -2
  143. package/lib/StatusScoped.js +1 -1
  144. package/lib/WithRootStore.js +1 -1
  145. package/lib/WithStore.js +8 -4
  146. package/lib/actions/Action.js +1 -1
  147. package/lib/actions/AjaxAction.js +1 -1
  148. package/lib/actions/BreakAction.js +1 -1
  149. package/lib/actions/BroadcastAction.js +1 -1
  150. package/lib/actions/CmptAction.d.ts +1 -0
  151. package/lib/actions/CmptAction.js +23 -23
  152. package/lib/actions/ContinueAction.js +1 -1
  153. package/lib/actions/CopyAction.js +1 -1
  154. package/lib/actions/CustomAction.js +2 -2
  155. package/lib/actions/DialogAction.js +1 -1
  156. package/lib/actions/DrawerAction.js +1 -1
  157. package/lib/actions/EmailAction.js +1 -1
  158. package/lib/actions/LinkAction.js +1 -1
  159. package/lib/actions/LoopAction.js +1 -1
  160. package/lib/actions/PageAction.js +1 -1
  161. package/lib/actions/ParallelAction.js +1 -1
  162. package/lib/actions/StatusAction.js +1 -1
  163. package/lib/actions/SwitchAction.js +1 -1
  164. package/lib/actions/ToastAction.js +1 -1
  165. package/lib/components/CustomStyle.js +9 -9
  166. package/lib/components/LazyComponent.js +1 -1
  167. package/lib/components/Overlay.js +2 -1
  168. package/lib/components/PopOver.js +2 -2
  169. package/lib/env.d.ts +11 -3
  170. package/lib/env.js +1 -1
  171. package/lib/envOverwrite.js +1 -1
  172. package/lib/factory.js +1 -3
  173. package/lib/index.d.ts +1 -0
  174. package/lib/index.js +7 -2
  175. package/lib/locale.js +1 -1
  176. package/lib/polyfills.js +1 -1
  177. package/lib/renderers/Form.js +10 -4
  178. package/lib/renderers/Item.d.ts +2 -6
  179. package/lib/renderers/Item.js +11 -17
  180. package/lib/renderers/Options.js +2 -2
  181. package/lib/renderers/Placeholder.js +1 -1
  182. package/lib/renderers/builtin.js +1 -1
  183. package/lib/renderers/register.js +1 -1
  184. package/lib/renderers/wrapControl.js +41 -22
  185. package/lib/store/app.js +6 -4
  186. package/lib/store/combo.d.ts +144 -25
  187. package/lib/store/combo.js +3 -2
  188. package/lib/store/crud.d.ts +13 -2
  189. package/lib/store/crud.js +88 -23
  190. package/lib/store/form.d.ts +60 -11
  191. package/lib/store/form.js +5 -2
  192. package/lib/store/formItem.d.ts +1 -0
  193. package/lib/store/formItem.js +16 -4
  194. package/lib/store/iRenderer.js +2 -2
  195. package/lib/store/index.js +1 -1
  196. package/lib/store/list.js +1 -1
  197. package/lib/store/manager.js +1 -1
  198. package/lib/store/modal.js +1 -1
  199. package/lib/store/node.js +1 -1
  200. package/lib/store/pagination.js +1 -1
  201. package/lib/store/root.js +2 -2
  202. package/lib/store/service.js +1 -1
  203. package/lib/store/status.js +1 -1
  204. package/lib/store/table.d.ts +474 -104
  205. package/lib/store/table.js +112 -72
  206. package/lib/store/table2.d.ts +1 -1
  207. package/lib/store/table2.js +5 -4
  208. package/lib/theme.js +1 -1
  209. package/lib/types.d.ts +6 -0
  210. package/lib/utils/Animation.js +1 -1
  211. package/lib/utils/ColorScale.js +1 -1
  212. package/lib/utils/DataSchema.js +1 -1
  213. package/lib/utils/DataScope.js +1 -1
  214. package/lib/utils/RootClose.js +1 -1
  215. package/lib/utils/SimpleMap.js +1 -1
  216. package/lib/utils/api.js +2 -1
  217. package/lib/utils/arraySlice.js +1 -1
  218. package/lib/utils/attachmentAdpator.d.ts +2 -1
  219. package/lib/utils/attachmentAdpator.js +17 -11
  220. package/lib/utils/autobind.js +1 -1
  221. package/lib/utils/columnsSplit.js +1 -1
  222. package/lib/utils/dataMapping.js +1 -1
  223. package/lib/utils/date.js +1 -1
  224. package/lib/utils/debug.d.ts +1 -1
  225. package/lib/utils/debug.js +4 -2
  226. package/lib/utils/decodeEntity.js +1 -1
  227. package/lib/utils/dom.js +1 -1
  228. package/lib/utils/errors.js +1 -1
  229. package/lib/utils/escapeHtml.js +1 -1
  230. package/lib/utils/filter-schema.d.ts +8 -0
  231. package/lib/utils/filter-schema.js +31 -13
  232. package/lib/utils/filter.js +1 -1
  233. package/lib/utils/formatDuration.js +1 -1
  234. package/lib/utils/formula.js +1 -1
  235. package/lib/utils/getVariable.js +1 -1
  236. package/lib/utils/grammar.js +1 -1
  237. package/lib/utils/handleAction.js +2 -1
  238. package/lib/utils/helper.d.ts +15 -1
  239. package/lib/utils/helper.js +62 -11
  240. package/lib/utils/highlight.js +1 -1
  241. package/lib/utils/icon.js +1 -1
  242. package/lib/utils/image.js +1 -1
  243. package/lib/utils/isPureVariable.js +1 -1
  244. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  245. package/lib/utils/keyToPath.js +1 -1
  246. package/lib/utils/makeSorter.js +1 -1
  247. package/lib/utils/math.js +1 -1
  248. package/lib/utils/memoryParse.js +1 -1
  249. package/lib/utils/normalizeLink.js +1 -1
  250. package/lib/utils/normalizeOptions.js +1 -1
  251. package/lib/utils/object.js +1 -1
  252. package/lib/utils/offset.js +1 -1
  253. package/lib/utils/offsetParent.js +1 -1
  254. package/lib/utils/optionValueCompare.js +1 -1
  255. package/lib/utils/position.js +1 -1
  256. package/lib/utils/prettyBytes.js +1 -1
  257. package/lib/utils/renderer-event.js +1 -1
  258. package/lib/utils/replaceText.d.ts +1 -1
  259. package/lib/utils/replaceText.js +9 -4
  260. package/lib/utils/resize-sensor.js +1 -1
  261. package/lib/utils/resolveCondition.js +1 -1
  262. package/lib/utils/resolveVariable.js +1 -1
  263. package/lib/utils/resolveVariableAndFilter.js +1 -1
  264. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  265. package/lib/utils/scrollPosition.js +1 -1
  266. package/lib/utils/string2regExp.js +1 -1
  267. package/lib/utils/stripNumber.js +1 -1
  268. package/lib/utils/style-helper.js +6 -4
  269. package/lib/utils/style.js +1 -1
  270. package/lib/utils/toNumber.js +1 -1
  271. package/lib/utils/tokenize.js +1 -1
  272. package/lib/utils/tpl-builtin.js +1 -1
  273. package/lib/utils/tpl-lodash.js +1 -1
  274. package/lib/utils/tpl.js +1 -1
  275. package/lib/utils/uncontrollable.js +1 -1
  276. package/lib/utils/validations.js +1 -1
  277. package/package.json +4 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -44,6 +44,7 @@ import 'lodash/mapValues';
44
44
  import 'lodash/camelCase';
45
45
  import 'lodash/map';
46
46
  import 'lodash/isEmpty';
47
+ import 'lodash/kebabCase';
47
48
  import 'uncontrollable';
48
49
  import 'hoist-non-react-statics';
49
50
  import '../utils/validations.js';
@@ -587,6 +588,8 @@ var Form = /** @class */ (function (_super) {
587
588
  dispatchEvent_1('validateSucc', _this.props.data);
588
589
  if (target) {
589
590
  _this.submitToTarget(filterTarget(target, values), values);
591
+ /** 可能配置页面跳转事件,页面路由变化导致persistKey不一致,无法清除持久化数据,所以提交成功事件之前先清理一下 */
592
+ clearPersistDataAfterSubmit && store.clearLocalPersistData();
590
593
  dispatchEvent_1('submitSucc', createObject(_this.props.data, values));
591
594
  }
592
595
  else if (action.actionType === 'reload') {
@@ -618,7 +621,9 @@ var Form = /** @class */ (function (_super) {
618
621
  var _this = this;
619
622
  return __generator(this, function (_a) {
620
623
  switch (_a.label) {
621
- case 0: return [4 /*yield*/, dispatchEvent_1('submitSucc', createObject(this.props.data, { result: result }))];
624
+ case 0:
625
+ clearPersistDataAfterSubmit && store.clearLocalPersistData();
626
+ return [4 /*yield*/, dispatchEvent_1('submitSucc', createObject(this.props.data, { result: result }))];
622
627
  case 1:
623
628
  dispatcher = _a.sent();
624
629
  if (!isEffectiveApi(finnalAsyncApi_1, store.data) ||
@@ -681,6 +686,7 @@ var Form = /** @class */ (function (_super) {
681
686
  }); });
682
687
  }
683
688
  else {
689
+ clearPersistDataAfterSubmit && store.clearLocalPersistData();
684
690
  // type为submit,但是没有配api以及target时,只派发事件
685
691
  dispatchEvent_1('submitSucc', createObject(_this.props.data, values));
686
692
  }
@@ -699,7 +705,7 @@ var Form = /** @class */ (function (_super) {
699
705
  clearPersistDataAfterSubmit && store.clearLocalPersistData();
700
706
  if (action.redirect || redirect) {
701
707
  var finalRedirect = filter(action.redirect || redirect, store.data);
702
- finalRedirect && env.jumpTo(finalRedirect, action);
708
+ finalRedirect && env.jumpTo(finalRedirect, action, store.data);
703
709
  }
704
710
  else if (action.reload || reload) {
705
711
  _this.reloadTarget(filterTarget(action.reload || reload, store.data), store.data);
@@ -771,7 +777,7 @@ var Form = /** @class */ (function (_super) {
771
777
  _a.label = 4;
772
778
  case 4:
773
779
  redirect = action.redirect && filter(action.redirect, store.data);
774
- redirect && env.jumpTo(redirect, action);
780
+ redirect && env.jumpTo(redirect, action, store.data);
775
781
  action.reload &&
776
782
  this.reloadTarget(filterTarget(action.reload, store.data), store.data);
777
783
  action.close && this.closeTarget(action.close);
@@ -618,9 +618,7 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
618
618
  dispose: (callback?: (() => void) | undefined) => void;
619
619
  addChildId: (id: string) => void;
620
620
  removeChildId: (id: string) => void;
621
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>; /**
622
- * 验证失败的提示信息
623
- */
621
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
624
622
  removeStore(store: {
625
623
  id: string;
626
624
  path: string;
@@ -784,9 +782,7 @@ export declare function asFormItem(config: Omit<FormItemConfig, 'component'>): (
784
782
  dispose: (callback?: (() => void) | undefined) => void;
785
783
  addChildId: (id: string) => void;
786
784
  removeChildId: (id: string) => void;
787
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>; /**
788
- * 验证失败的提示信息
789
- */
785
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
790
786
  removeStore(store: {
791
787
  id: string;
792
788
  path: string;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -10,7 +10,6 @@ import { reaction } from 'mobx';
10
10
  import { registerRenderer, renderersMap } from '../factory.js';
11
11
  import { ucFirst, getWidthRate, autobind, anyChanged } from '../utils/helper.js';
12
12
  import { observer } from 'mobx-react';
13
- import { filter } from '../utils/tpl.js';
14
13
  import { HocStoreFactory } from '../WithStore.js';
15
14
  import { wrapControl } from './wrapControl.js';
16
15
  import debounce from 'lodash/debounce';
@@ -26,8 +25,8 @@ import { createObject } from '../utils/object.js';
26
25
  import 'amis-formula';
27
26
  import '../utils/debug.js';
28
27
  import '../utils/errors.js';
28
+ import '../utils/tpl.js';
29
29
  import 'lodash/isPlainObject';
30
- import cx from 'classnames';
31
30
  import '../utils/filter.js';
32
31
  import 'lodash/isObject';
33
32
  import 'lodash/isString';
@@ -50,6 +49,7 @@ import '../utils/Animation.js';
50
49
  import Overlay from '../components/Overlay.js';
51
50
  import PopOver from '../components/PopOver.js';
52
51
  import CustomStyle from '../components/CustomStyle.js';
52
+ import cx from 'classnames';
53
53
 
54
54
  var getItemLabelClassName = function (props) {
55
55
  var staticLabelClassName = props.staticLabelClassName, labelClassName = props.labelClassName, id = props.id, themeCss = props.themeCss;
@@ -390,7 +390,7 @@ var FormItemWrap = /** @class */ (function (_super) {
390
390
  FormItemWrap.layoutRenderers = {
391
391
  horizontal: function (props, renderControl) {
392
392
  var _a, _b, _c;
393
- var className = props.className, style = props.style, cx = props.classnames, description = props.description, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, desc = props.desc, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint, data = props.data, showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, id = props.id, wrapperCustomStyle = props.wrapperCustomStyle, themeCss = props.themeCss;
393
+ var className = props.className, style = props.style, cx = props.classnames, description = props.description, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, desc = props.desc, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint; props.data; var showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, id = props.id, wrapperCustomStyle = props.wrapperCustomStyle, themeCss = props.themeCss;
394
394
  // 强制不渲染 label 的话
395
395
  if (renderLabel === false) {
396
396
  label = label === false ? false : '';
@@ -416,9 +416,7 @@ var FormItemWrap = /** @class */ (function (_super) {
416
416
  _b['Form-label-noLabel'] = label === '',
417
417
  _b), getItemLabelClassName(props)), style: labelWidth != null ? { width: labelWidth } : undefined },
418
418
  React.createElement("span", null,
419
- label
420
- ? render('label', typeof label === 'string' ? filter(label, data) : label)
421
- : null,
419
+ label ? render('label', label) : null,
422
420
  required && (label || labelRemark) ? (React.createElement("span", { className: cx("Form-star") }, "*")) : null,
423
421
  labelRemark
424
422
  ? render('label-remark', {
@@ -467,7 +465,7 @@ var FormItemWrap = /** @class */ (function (_super) {
467
465
  },
468
466
  normal: function (props, renderControl) {
469
467
  var _a;
470
- var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint, data = props.data, showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, themeCss = props.themeCss, wrapperCustomStyle = props.wrapperCustomStyle, id = props.id;
468
+ var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint; props.data; var showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, themeCss = props.themeCss, wrapperCustomStyle = props.wrapperCustomStyle, id = props.id;
471
469
  description = description || desc;
472
470
  return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--normal", isStatic && staticClassName ? staticClassName : className, (_a = {
473
471
  'is-error': model && !model.valid
@@ -476,9 +474,7 @@ var FormItemWrap = /** @class */ (function (_super) {
476
474
  _a), model === null || model === void 0 ? void 0 : model.errClassNames, setThemeClassName('wrapperCustomStyle', id, wrapperCustomStyle, 'item')), style: style },
477
475
  label && renderLabel !== false ? (React.createElement("label", { className: cx("Form-label", getItemLabelClassName(props)) },
478
476
  React.createElement("span", null,
479
- label
480
- ? render('label', typeof label === 'string' ? filter(label, data) : label)
481
- : null,
477
+ label ? render('label', label) : null,
482
478
  required && (label || labelRemark) ? (React.createElement("span", { className: cx("Form-star") }, "*")) : null,
483
479
  labelRemark
484
480
  ? render('label-remark', {
@@ -554,7 +550,7 @@ var FormItemWrap = /** @class */ (function (_super) {
554
550
  },
555
551
  inline: function (props, renderControl) {
556
552
  var _a;
557
- var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, remark = props.remark, labelRemark = props.labelRemark, env = props.env, hint = props.hint, renderLabel = props.renderLabel, renderDescription = props.renderDescription, data = props.data, showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, themeCss = props.themeCss, wrapperCustomStyle = props.wrapperCustomStyle, id = props.id;
553
+ var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, remark = props.remark, labelRemark = props.labelRemark, env = props.env, hint = props.hint, renderLabel = props.renderLabel, renderDescription = props.renderDescription; props.data; var showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, themeCss = props.themeCss, wrapperCustomStyle = props.wrapperCustomStyle, id = props.id;
558
554
  var labelWidth = props.labelWidth || props.formLabelWidth;
559
555
  description = description || desc;
560
556
  return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--inline", isStatic && staticClassName ? staticClassName : className, (_a = {
@@ -564,9 +560,7 @@ var FormItemWrap = /** @class */ (function (_super) {
564
560
  _a), model === null || model === void 0 ? void 0 : model.errClassNames, setThemeClassName('wrapperCustomStyle', id, wrapperCustomStyle, 'item')), style: style },
565
561
  label && renderLabel !== false ? (React.createElement("label", { className: cx("Form-label", getItemLabelClassName(props)), style: labelWidth != null ? { width: labelWidth } : undefined },
566
562
  React.createElement("span", null,
567
- label
568
- ? render('label', typeof label === 'string' ? filter(label, data) : label)
569
- : label,
563
+ label ? render('label', label) : label,
570
564
  required && (label || labelRemark) ? (React.createElement("span", { className: cx("Form-star") }, "*")) : null,
571
565
  labelRemark
572
566
  ? render('label-remark', {
@@ -612,7 +606,7 @@ var FormItemWrap = /** @class */ (function (_super) {
612
606
  },
613
607
  row: function (props, renderControl) {
614
608
  var _a;
615
- var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint, data = props.data, showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, wrapperCustomStyle = props.wrapperCustomStyle, themeCss = props.themeCss, id = props.id;
609
+ var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint; props.data; var showErrorMsg = props.showErrorMsg, mobileUI = props.mobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName, wrapperCustomStyle = props.wrapperCustomStyle, themeCss = props.themeCss, id = props.id;
616
610
  var labelWidth = props.labelWidth || props.formLabelWidth;
617
611
  description = description || desc;
618
612
  return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--row", isStatic && staticClassName ? staticClassName : className, (_a = {
@@ -623,7 +617,7 @@ var FormItemWrap = /** @class */ (function (_super) {
623
617
  React.createElement("div", { className: cx('Form-rowInner') },
624
618
  label && renderLabel !== false ? (React.createElement("label", { className: cx("Form-label", getItemLabelClassName(props)), style: labelWidth != null ? { width: labelWidth } : undefined },
625
619
  React.createElement("span", null,
626
- render('label', typeof label === 'string' ? filter(label, data) : label),
620
+ render('label', label),
627
621
  required && (label || labelRemark) ? (React.createElement("span", { className: cx("Form-star") }, "*")) : null,
628
622
  labelRemark
629
623
  ? render('label-remark', {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -30,7 +30,6 @@ import '../utils/DataScope.js';
30
30
  import '../utils/debug.js';
31
31
  import 'react-dom';
32
32
  import '../utils/errors.js';
33
- import 'classnames';
34
33
  import 'lodash/isObject';
35
34
  import 'lodash/isString';
36
35
  import 'lodash/isBoolean';
@@ -45,6 +44,7 @@ import 'lodash/mapValues';
45
44
  import 'lodash/camelCase';
46
45
  import 'lodash/map';
47
46
  import 'lodash/isEmpty';
47
+ import 'lodash/kebabCase';
48
48
  import 'uncontrollable';
49
49
  import 'hoist-non-react-statics';
50
50
  import '../utils/validations.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -23,6 +23,7 @@ import { callStrFunction } from '../utils/api.js';
23
23
  import '../utils/ColorScale.js';
24
24
  import 'lodash/chunk';
25
25
  import 'amis-formula';
26
+ import { tokenize } from '../utils/tokenize.js';
26
27
  import 'lodash/isPlainObject';
27
28
  import { getVariable } from '../utils/getVariable.js';
28
29
  import '../utils/DataSchema.js';
@@ -32,7 +33,6 @@ import '../utils/debug.js';
32
33
  import 'react-dom';
33
34
  import '../utils/errors.js';
34
35
  import '../utils/tpl.js';
35
- import 'classnames';
36
36
  import '../utils/filter.js';
37
37
  import 'lodash/isObject';
38
38
  import '../utils/image.js';
@@ -45,6 +45,7 @@ import 'lodash/mapValues';
45
45
  import 'lodash/camelCase';
46
46
  import 'lodash/map';
47
47
  import 'lodash/isEmpty';
48
+ import 'lodash/kebabCase';
48
49
  import 'uncontrollable';
49
50
  import '../utils/validations.js';
50
51
  import '../utils/resolveCondition.js';
@@ -64,7 +65,7 @@ function wrapControl(ComposedComponent) {
64
65
  trailing: true,
65
66
  leading: false
66
67
  });
67
- var _c = _this.props, form = _c.formStore, formItem = _c.formItem, rootStore = _c.rootStore, store = _c.store, onChange = _c.onChange, data = _c.data, inputGroupControl = _c.inputGroupControl, colIndex = _c.colIndex, rowIndex = _c.rowIndex, _d = _c.$schema, name = _d.name, id = _d.id, type = _d.type, required = _d.required, validations = _d.validations, validationErrors = _d.validationErrors, unique = _d.unique, value = _d.value, extraName = _d.extraName; _d.multiple; var delimiter = _d.delimiter, valueField = _d.valueField, labelField = _d.labelField, joinValues = _d.joinValues, extractValue = _d.extractValue, selectFirst = _d.selectFirst, autoFill = _d.autoFill, clearValueOnHidden = _d.clearValueOnHidden, validateApi = _d.validateApi, minLength = _d.minLength, maxLength = _d.maxLength, validateOnChange = _d.validateOnChange, label = _d.label;
68
+ var _c = _this.props, form = _c.formStore, formItem = _c.formItem, rootStore = _c.rootStore, store = _c.store, onChange = _c.onChange, data = _c.data, inputGroupControl = _c.inputGroupControl, colIndex = _c.colIndex, rowIndex = _c.rowIndex, _d = _c.$schema, id = _d.id, type = _d.type, required = _d.required, validations = _d.validations, validationErrors = _d.validationErrors, unique = _d.unique, value = _d.value, extraName = _d.extraName; _d.multiple; var delimiter = _d.delimiter, valueField = _d.valueField, labelField = _d.labelField, joinValues = _d.joinValues, extractValue = _d.extractValue, selectFirst = _d.selectFirst, autoFill = _d.autoFill, clearValueOnHidden = _d.clearValueOnHidden, validateApi = _d.validateApi, minLength = _d.minLength, maxLength = _d.maxLength, validateOnChange = _d.validateOnChange, label = _d.label;
68
69
  _this.getValue = _this.getValue.bind(_this);
69
70
  _this.setValue = _this.setValue.bind(_this);
70
71
  _this.handleChange = _this.handleChange.bind(_this);
@@ -73,6 +74,13 @@ function wrapControl(ComposedComponent) {
73
74
  _this.handleBlur = _this.handleBlur.bind(_this);
74
75
  _this.validate = _this.validate.bind(_this);
75
76
  _this.flushChange = _this.flushChange.bind(_this);
77
+ _this.renderChild = _this.renderChild.bind(_this);
78
+ var name = _this.props.$schema.name;
79
+ // 如果 name 是表达式
80
+ // 扩充 each 用法
81
+ if (isExpression(name)) {
82
+ name = tokenize(name, data);
83
+ }
76
84
  if (!name) {
77
85
  // 一般情况下这些表单项都是需要 name 的,提示一下
78
86
  if (typeof type === 'string' &&
@@ -162,7 +170,7 @@ function wrapControl(ComposedComponent) {
162
170
  }
163
171
  class_1.prototype.componentDidMount = function () {
164
172
  var _this = this;
165
- var _a = this.props; _a.store; _a.formStore; var _b = _a.$schema, name = _b.name, validate = _b.validate, addHook = _a.addHook;
173
+ var _a = this.props; _a.store; _a.formStore; var validate = _a.$schema.validate, addHook = _a.addHook;
166
174
  // 提交前先把之前的 lazyEmit 执行一下。
167
175
  this.hook3 = function () {
168
176
  _this.lazyEmitChange.flush();
@@ -173,7 +181,7 @@ function wrapControl(ComposedComponent) {
173
181
  var finalValidate_1 = promisify(validate.bind(this.control));
174
182
  this.hook2 = function () {
175
183
  formItem.clearError('control:valdiate');
176
- return finalValidate_1(_this.props.data, _this.getValue(), name).then(function (ret) {
184
+ return finalValidate_1(_this.props.data, _this.getValue(), formItem.name).then(function (ret) {
177
185
  if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {
178
186
  formItem.addError(ret, 'control:valdiate');
179
187
  }
@@ -312,7 +320,7 @@ function wrapControl(ComposedComponent) {
312
320
  };
313
321
  class_1.prototype.controlRef = function (control) {
314
322
  var _this = this;
315
- var _a = this.props, addHook = _a.addHook, removeHook = _a.removeHook; _a.formStore; var name = _a.$schema.name;
323
+ var _a = this.props, addHook = _a.addHook, removeHook = _a.removeHook; _a.formStore;
316
324
  // 因为 control 有可能被 n 层 hoc 包裹。
317
325
  while (control && control.getWrappedInstance) {
318
326
  control = control.getWrappedInstance();
@@ -322,9 +330,8 @@ function wrapControl(ComposedComponent) {
322
330
  var validate_1 = promisify(control.validate.bind(control));
323
331
  this.hook = function () {
324
332
  formItem_1.clearError('component:valdiate');
325
- return validate_1(_this.props.data, _this.getValue(), name).then(function (ret) {
326
- if ((typeof ret === 'string' || Array.isArray(ret)) &&
327
- ret) {
333
+ return validate_1(_this.props.data, _this.getValue(), formItem_1.name).then(function (ret) {
334
+ if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {
328
335
  formItem_1.setError(ret, 'component:valdiate');
329
336
  }
330
337
  });
@@ -432,7 +439,7 @@ function wrapControl(ComposedComponent) {
432
439
  };
433
440
  class_1.prototype.emitChange = function (submitOnChange) {
434
441
  if (submitOnChange === void 0) { submitOnChange = this.props.$schema.submitOnChange; }
435
- var _a = this.props, form = _a.formStore, onChange = _a.onChange, _b = _a.$schema, name = _b.name, id = _b.id, label = _b.label, type = _b.type, onFormItemChange = _b.onChange; _b.maxLength; _b.minLength; var data = _a.data, env = _a.env; _a.validateOnChange; _a.formSubmited;
442
+ var _a = this.props, form = _a.formStore, onChange = _a.onChange, _b = _a.$schema, id = _b.id, label = _b.label, type = _b.type, onFormItemChange = _b.onChange; _b.maxLength; _b.minLength; var data = _a.data, env = _a.env; _a.validateOnChange; _a.formSubmited;
436
443
  if (!this.model) {
437
444
  return;
438
445
  }
@@ -452,7 +459,7 @@ function wrapControl(ComposedComponent) {
452
459
  eventType: 'formItemChange',
453
460
  eventData: {
454
461
  id: id,
455
- name: name,
462
+ name: model.name,
456
463
  label: label,
457
464
  type: type,
458
465
  value: value
@@ -469,11 +476,11 @@ function wrapControl(ComposedComponent) {
469
476
  }
470
477
  if (model.extraName) {
471
478
  var values = model.splitExtraValue(value);
472
- onChange === null || onChange === void 0 ? void 0 : onChange(values[0], name);
479
+ onChange === null || onChange === void 0 ? void 0 : onChange(values[0], model.name);
473
480
  onChange === null || onChange === void 0 ? void 0 : onChange(values[1], model.extraName, submitOnChange === true);
474
481
  }
475
482
  else {
476
- onChange === null || onChange === void 0 ? void 0 : onChange(value, name, submitOnChange === true);
483
+ onChange === null || onChange === void 0 ? void 0 : onChange(value, model.name, submitOnChange === true);
477
484
  }
478
485
  this.checkValidate();
479
486
  };
@@ -489,17 +496,17 @@ function wrapControl(ComposedComponent) {
489
496
  return;
490
497
  }
491
498
  var model = this.model;
492
- var _a = this.props; _a.formStore; var name = _a.name, pipeOut = _a.$schema.pipeOut, onChange = _a.onChange, oldValue = _a.value, data = _a.data;
499
+ var _a = this.props; _a.formStore; var pipeOut = _a.$schema.pipeOut, onChange = _a.onChange, oldValue = _a.value, data = _a.data;
493
500
  if (pipeOut) {
494
501
  value = callStrFunction.call(this, pipeOut, ['value', 'oldValue', 'data'], value, oldValue, data);
495
502
  }
496
503
  if (model.extraName) {
497
504
  var values = model.splitExtraValue(value);
498
- onChange === null || onChange === void 0 ? void 0 : onChange(values[0], name, false, true);
505
+ onChange === null || onChange === void 0 ? void 0 : onChange(values[0], model.name, false, true);
499
506
  onChange === null || onChange === void 0 ? void 0 : onChange(values[1], model.extraName, false, true);
500
507
  }
501
508
  else {
502
- onChange === null || onChange === void 0 ? void 0 : onChange(value, name, false, true);
509
+ onChange === null || onChange === void 0 ? void 0 : onChange(value, model.name, false, true);
503
510
  }
504
511
  };
505
512
  class_1.prototype.getValue = function () {
@@ -513,8 +520,8 @@ function wrapControl(ComposedComponent) {
513
520
  // 兼容老版本用法,新版本直接用 onChange 就可以。
514
521
  class_1.prototype.setValue = function (value, key) {
515
522
  var _a;
516
- var _b = this.props, name = _b.$schema.name, onBulkChange = _b.onBulkChange;
517
- if (!key || key === name) {
523
+ var onBulkChange = this.props.onBulkChange;
524
+ if (!key || (this.model && key === this.model.name)) {
518
525
  this.handleChange(value);
519
526
  }
520
527
  else {
@@ -524,9 +531,17 @@ function wrapControl(ComposedComponent) {
524
531
  _a));
525
532
  }
526
533
  };
534
+ class_1.prototype.renderChild = function (region, node, subProps) {
535
+ if (subProps === void 0) { subProps = {}; }
536
+ var _a = this.props, render = _a.render, data = _a.data, store = _a.store;
537
+ var model = this.model;
538
+ return render(region, node, __assign({ data: model
539
+ ? model.getMergedData(data || (store === null || store === void 0 ? void 0 : store.data))
540
+ : data || (store === null || store === void 0 ? void 0 : store.data) }, subProps));
541
+ };
527
542
  class_1.prototype.render = function () {
528
- var _a, _b;
529
- var _c = this.props, controlWidth = _c.controlWidth, disabled = _c.disabled, formMode = _c.formMode, control = _c.$schema, store = _c.store, data = _c.data, invisible = _c.invisible, defaultStatic = _c.defaultStatic;
543
+ var _a, _b, _c;
544
+ var _d = this.props, controlWidth = _d.controlWidth, disabled = _d.disabled, formMode = _d.formMode, control = _d.$schema, store = _d.store, data = _d.data, invisible = _d.invisible, defaultStatic = _d.defaultStatic;
530
545
  if (invisible) {
531
546
  return null;
532
547
  }
@@ -539,7 +554,10 @@ function wrapControl(ComposedComponent) {
539
554
  formItem: this.model,
540
555
  formMode: control.mode || formMode,
541
556
  ref: this.controlRef,
542
- data: data || (store === null || store === void 0 ? void 0 : store.data),
557
+ data: model
558
+ ? model.getMergedData(data || (store === null || store === void 0 ? void 0 : store.data))
559
+ : data || (store === null || store === void 0 ? void 0 : store.data),
560
+ name: (_c = model === null || model === void 0 ? void 0 : model.name) !== null && _c !== void 0 ? _c : control.name,
543
561
  value: value,
544
562
  changeMotivation: model === null || model === void 0 ? void 0 : model.changeMotivation,
545
563
  defaultValue: control.value,
@@ -551,7 +569,8 @@ function wrapControl(ComposedComponent) {
551
569
  prinstine: model ? model.prinstine : undefined,
552
570
  setPrinstineValue: this.setPrinstineValue,
553
571
  onValidate: this.validate,
554
- onFlushChange: this.flushChange
572
+ onFlushChange: this.flushChange,
573
+ render: this.renderChild // 如果覆盖,那么用的就是 form 上的 render,这个里面用到的 data 是比较旧的。
555
574
  // !没了这个, tree 里的 options 渲染会出问题
556
575
  // todo 理论上不应该影响,待确认
557
576
  // _filteredOptions: this.model?.filteredOptions
package/esm/store/app.js CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
6
  import { __assign } from 'tslib';
7
7
  import { types } from 'mobx-state-tree';
8
- import { mapTree, findTree, isVisible, guid } from '../utils/helper.js';
8
+ import { mapTree, findTree, isVisible, guid, replaceUrlParams } from '../utils/helper.js';
9
9
  import { ServiceStore } from './service.js';
10
10
  import '../utils/api.js';
11
11
  import '../utils/ColorScale.js';
@@ -21,7 +21,6 @@ import '../utils/debug.js';
21
21
  import 'react-dom';
22
22
  import '../utils/errors.js';
23
23
  import { filter } from '../utils/tpl.js';
24
- import 'classnames';
25
24
  import '../utils/filter.js';
26
25
  import 'lodash/isObject';
27
26
  import 'lodash/isString';
@@ -38,6 +37,7 @@ import 'lodash/mapValues';
38
37
  import 'lodash/camelCase';
39
38
  import 'lodash/map';
40
39
  import 'lodash/isEmpty';
40
+ import 'lodash/kebabCase';
41
41
  import 'uncontrollable';
42
42
  import 'hoist-non-react-statics';
43
43
  import '../utils/validations.js';
@@ -157,7 +157,9 @@ var AppStore = ServiceStore.named('AppStore')
157
157
  var bcn = [];
158
158
  findTree(self.pages, function (item, index, level, paths) {
159
159
  if (item.id === page.id) {
160
- bcn = paths.filter(function (item) { return item.path && item.label; });
160
+ bcn = paths
161
+ .filter(function (item) { return item.path && item.label; })
162
+ .map(function (item) { return (__assign(__assign({}, item), { path: replaceUrlParams(item.path, params) })); });
161
163
  if (env.showFullBreadcrumbPath) {
162
164
  bcn = paths.filter(function (item) { return item.label; });
163
165
  }
@@ -186,7 +188,7 @@ var AppStore = ServiceStore.named('AppStore')
186
188
  self.fetchSchema(page.schemaApi, self.activePage, { method: 'get' });
187
189
  }
188
190
  else if (page.redirect) {
189
- env.jumpTo(page.redirect);
191
+ env.jumpTo(page.redirect, undefined, self.data);
190
192
  return;
191
193
  }
192
194
  else if (page.rewrite) {