amis-core 6.8.0 → 6.9.0-beta.1

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 (332) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +24 -2
  4. package/esm/SchemaRenderer.d.ts +13 -0
  5. package/esm/SchemaRenderer.js +104 -20
  6. package/esm/Scoped.d.ts +1 -1
  7. package/esm/Scoped.js +1 -1
  8. package/esm/StatusScoped.js +1 -1
  9. package/esm/StyleManager.d.ts +18 -0
  10. package/esm/StyleManager.js +55 -0
  11. package/esm/WithRootStore.js +1 -1
  12. package/esm/WithStore.js +10 -10
  13. package/esm/actions/Action.js +1 -1
  14. package/esm/actions/AjaxAction.js +1 -1
  15. package/esm/actions/BreakAction.js +1 -1
  16. package/esm/actions/BroadcastAction.js +1 -1
  17. package/esm/actions/CmptAction.js +57 -50
  18. package/esm/actions/ContinueAction.js +1 -1
  19. package/esm/actions/CopyAction.js +1 -1
  20. package/esm/actions/CustomAction.js +1 -1
  21. package/esm/actions/DialogAction.js +1 -1
  22. package/esm/actions/DrawerAction.js +1 -1
  23. package/esm/actions/EmailAction.js +1 -1
  24. package/esm/actions/EventAction.js +1 -1
  25. package/esm/actions/LinkAction.js +1 -1
  26. package/esm/actions/LoopAction.js +1 -1
  27. package/esm/actions/PageAction.js +1 -1
  28. package/esm/actions/ParallelAction.js +1 -1
  29. package/esm/actions/PrintAction.js +1 -1
  30. package/esm/actions/StatusAction.js +1 -1
  31. package/esm/actions/SwitchAction.js +1 -1
  32. package/esm/actions/ToastAction.js +3 -3
  33. package/esm/actions/WaitAction.js +1 -1
  34. package/esm/components/CustomStyle.js +1 -1
  35. package/esm/components/ErrorBoundary.js +1 -1
  36. package/esm/components/LazyComponent.d.ts +40 -2
  37. package/esm/components/LazyComponent.js +13 -7
  38. package/esm/components/Overlay.js +1 -1
  39. package/esm/components/PopOver.d.ts +1 -1
  40. package/esm/components/PopOver.js +1 -1
  41. package/esm/env.d.ts +0 -4
  42. package/esm/env.js +1 -1
  43. package/esm/envOverwrite.js +1 -1
  44. package/esm/factory.d.ts +19 -2
  45. package/esm/factory.js +205 -45
  46. package/esm/index.d.ts +6 -4
  47. package/esm/index.js +12 -6
  48. package/esm/locale.d.ts +1 -1
  49. package/esm/locale.js +13 -2
  50. package/esm/polyfills.js +1 -1
  51. package/esm/renderers/Form.d.ts +5 -5
  52. package/esm/renderers/Form.js +27 -14
  53. package/esm/renderers/Item.d.ts +19 -13
  54. package/esm/renderers/Item.js +13 -14
  55. package/esm/renderers/Options.d.ts +3 -3
  56. package/esm/renderers/Options.js +42 -19
  57. package/esm/renderers/Placeholder.js +1 -1
  58. package/esm/renderers/builtin.js +1 -1
  59. package/esm/renderers/register.js +1 -1
  60. package/esm/renderers/wrapControl.d.ts +3 -3
  61. package/esm/renderers/wrapControl.js +24 -10
  62. package/esm/store/app.d.ts +3 -3
  63. package/esm/store/app.js +1 -1
  64. package/esm/store/combo.d.ts +17 -15
  65. package/esm/store/combo.js +1 -1
  66. package/esm/store/crud.d.ts +3 -3
  67. package/esm/store/crud.js +1 -1
  68. package/esm/store/form.d.ts +8 -7
  69. package/esm/store/form.js +28 -6
  70. package/esm/store/formItem.js +3 -3
  71. package/esm/store/iRenderer.d.ts +4 -3
  72. package/esm/store/iRenderer.js +28 -4
  73. package/esm/store/index.d.ts +1 -0
  74. package/esm/store/index.js +3 -2
  75. package/esm/store/list.d.ts +3 -3
  76. package/esm/store/list.js +1 -1
  77. package/esm/store/manager.js +1 -1
  78. package/esm/store/modal.d.ts +3 -3
  79. package/esm/store/modal.js +1 -1
  80. package/esm/store/node.js +1 -1
  81. package/esm/store/pagination.d.ts +3 -3
  82. package/esm/store/pagination.js +1 -1
  83. package/esm/store/root.d.ts +5 -3
  84. package/esm/store/root.js +45 -21
  85. package/esm/store/service.d.ts +3 -3
  86. package/esm/store/service.js +10 -4
  87. package/esm/store/status.js +1 -1
  88. package/esm/store/table.d.ts +17 -15
  89. package/esm/store/table.js +1 -1
  90. package/esm/store/table2.d.ts +3 -3
  91. package/esm/store/table2.js +1 -1
  92. package/esm/theme.d.ts +1 -1
  93. package/esm/theme.js +13 -2
  94. package/esm/types.d.ts +21 -2
  95. package/esm/utils/Animation.js +1 -1
  96. package/esm/utils/ColorScale.js +1 -1
  97. package/esm/utils/DataSchema.js +1 -1
  98. package/esm/utils/DataScope.js +1 -1
  99. package/esm/utils/RootClose.js +1 -1
  100. package/esm/utils/SimpleMap.js +1 -1
  101. package/esm/utils/animations.d.ts +19 -0
  102. package/esm/utils/animations.js +58 -0
  103. package/esm/utils/api.d.ts +21 -1
  104. package/esm/utils/api.js +138 -41
  105. package/esm/utils/arraySlice.js +1 -1
  106. package/esm/utils/attachmentAdpator.js +1 -1
  107. package/esm/utils/autobind.js +1 -1
  108. package/esm/utils/browser.js +1 -1
  109. package/esm/utils/columnsSplit.js +1 -1
  110. package/esm/utils/concatData.js +1 -1
  111. package/esm/utils/dataMapping.js +1 -1
  112. package/esm/utils/date.js +1 -1
  113. package/esm/utils/debug.js +1 -1
  114. package/esm/utils/decodeEntity.js +1 -1
  115. package/esm/utils/dom.js +1 -1
  116. package/esm/utils/errors.js +1 -1
  117. package/esm/utils/escapeHtml.js +1 -1
  118. package/esm/utils/filter-schema.js +1 -1
  119. package/esm/utils/filter.js +1 -1
  120. package/esm/utils/formatDuration.js +1 -1
  121. package/esm/utils/formula.js +1 -1
  122. package/esm/utils/getVariable.js +1 -1
  123. package/esm/utils/grammar.js +1 -1
  124. package/esm/utils/handleAction.js +1 -1
  125. package/esm/utils/helper.d.ts +1 -0
  126. package/esm/utils/helper.js +15 -2
  127. package/esm/utils/highlight.js +1 -1
  128. package/esm/utils/icon.js +1 -1
  129. package/esm/utils/image.js +1 -1
  130. package/esm/utils/isPureVariable.js +1 -1
  131. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  132. package/esm/utils/keyToPath.js +1 -1
  133. package/esm/utils/labelToString.js +4 -1
  134. package/esm/utils/makeSorter.js +1 -1
  135. package/esm/utils/math.js +1 -1
  136. package/esm/utils/memoryParse.js +1 -1
  137. package/esm/utils/normalizeLink.js +1 -1
  138. package/esm/utils/normalizeOptions.js +1 -1
  139. package/esm/utils/object.js +1 -1
  140. package/esm/utils/offset.js +1 -1
  141. package/esm/utils/offsetParent.js +1 -1
  142. package/esm/utils/optionValueCompare.js +1 -1
  143. package/esm/utils/position.js +1 -1
  144. package/esm/utils/prettyBytes.js +1 -1
  145. package/esm/utils/printElement.js +1 -1
  146. package/esm/utils/renderer-event.js +1 -1
  147. package/esm/utils/replaceText.js +1 -1
  148. package/esm/utils/resize-sensor.js +1 -1
  149. package/esm/utils/resolveCondition.js +1 -1
  150. package/esm/utils/resolveVariable.js +1 -1
  151. package/esm/utils/resolveVariableAndFilter.js +1 -1
  152. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  153. package/esm/utils/scrollPosition.js +1 -1
  154. package/esm/utils/string2regExp.js +1 -1
  155. package/esm/utils/stripNumber.js +1 -1
  156. package/esm/utils/style-helper.js +1 -1
  157. package/esm/utils/style.js +1 -1
  158. package/esm/utils/toNumber.js +1 -1
  159. package/esm/utils/tokenize.js +1 -1
  160. package/esm/utils/tpl-builtin.js +1 -1
  161. package/esm/utils/tpl-lodash.js +1 -1
  162. package/esm/utils/tpl.js +1 -1
  163. package/esm/utils/uncontrollable.js +1 -1
  164. package/esm/utils/validateId.js +1 -1
  165. package/esm/utils/validations.js +13 -10
  166. package/esm/utils/visitedCache.js +1 -1
  167. package/lib/Root.js +1 -1
  168. package/lib/RootRenderer.js +23 -1
  169. package/lib/SchemaRenderer.d.ts +13 -0
  170. package/lib/SchemaRenderer.js +101 -17
  171. package/lib/Scoped.d.ts +1 -1
  172. package/lib/Scoped.js +1 -1
  173. package/lib/StatusScoped.js +1 -1
  174. package/lib/StyleManager.d.ts +18 -0
  175. package/lib/StyleManager.js +63 -0
  176. package/lib/WithRootStore.js +1 -1
  177. package/lib/WithStore.js +10 -10
  178. package/lib/actions/Action.js +1 -1
  179. package/lib/actions/AjaxAction.js +1 -1
  180. package/lib/actions/BreakAction.js +1 -1
  181. package/lib/actions/BroadcastAction.js +1 -1
  182. package/lib/actions/CmptAction.js +56 -49
  183. package/lib/actions/ContinueAction.js +1 -1
  184. package/lib/actions/CopyAction.js +1 -1
  185. package/lib/actions/CustomAction.js +1 -1
  186. package/lib/actions/DialogAction.js +1 -1
  187. package/lib/actions/DrawerAction.js +1 -1
  188. package/lib/actions/EmailAction.js +1 -1
  189. package/lib/actions/EventAction.js +1 -1
  190. package/lib/actions/LinkAction.js +1 -1
  191. package/lib/actions/LoopAction.js +1 -1
  192. package/lib/actions/PageAction.js +1 -1
  193. package/lib/actions/ParallelAction.js +1 -1
  194. package/lib/actions/PrintAction.js +1 -1
  195. package/lib/actions/StatusAction.js +1 -1
  196. package/lib/actions/SwitchAction.js +1 -1
  197. package/lib/actions/ToastAction.js +2 -2
  198. package/lib/actions/WaitAction.js +1 -1
  199. package/lib/components/CustomStyle.js +1 -1
  200. package/lib/components/ErrorBoundary.js +1 -1
  201. package/lib/components/LazyComponent.d.ts +40 -2
  202. package/lib/components/LazyComponent.js +14 -7
  203. package/lib/components/Overlay.js +1 -1
  204. package/lib/components/PopOver.d.ts +1 -1
  205. package/lib/components/PopOver.js +1 -1
  206. package/lib/env.d.ts +0 -4
  207. package/lib/env.js +1 -1
  208. package/lib/envOverwrite.js +1 -1
  209. package/lib/factory.d.ts +19 -2
  210. package/lib/factory.js +211 -44
  211. package/lib/index.d.ts +6 -4
  212. package/lib/index.js +21 -2
  213. package/lib/locale.d.ts +1 -1
  214. package/lib/locale.js +13 -2
  215. package/lib/polyfills.js +1 -1
  216. package/lib/renderers/Form.d.ts +5 -5
  217. package/lib/renderers/Form.js +25 -12
  218. package/lib/renderers/Item.d.ts +19 -13
  219. package/lib/renderers/Item.js +12 -13
  220. package/lib/renderers/Options.d.ts +3 -3
  221. package/lib/renderers/Options.js +42 -19
  222. package/lib/renderers/Placeholder.js +1 -1
  223. package/lib/renderers/builtin.js +1 -1
  224. package/lib/renderers/register.js +1 -1
  225. package/lib/renderers/wrapControl.d.ts +3 -3
  226. package/lib/renderers/wrapControl.js +24 -10
  227. package/lib/store/app.d.ts +3 -3
  228. package/lib/store/app.js +1 -1
  229. package/lib/store/combo.d.ts +41 -39
  230. package/lib/store/combo.js +1 -1
  231. package/lib/store/crud.d.ts +3 -3
  232. package/lib/store/crud.js +2 -2
  233. package/lib/store/form.d.ts +18 -17
  234. package/lib/store/form.js +28 -6
  235. package/lib/store/formItem.js +3 -3
  236. package/lib/store/iRenderer.d.ts +4 -3
  237. package/lib/store/iRenderer.js +28 -4
  238. package/lib/store/index.d.ts +1 -0
  239. package/lib/store/index.js +3 -1
  240. package/lib/store/list.d.ts +3 -3
  241. package/lib/store/list.js +1 -1
  242. package/lib/store/manager.js +1 -1
  243. package/lib/store/modal.d.ts +3 -3
  244. package/lib/store/modal.js +1 -1
  245. package/lib/store/node.js +1 -1
  246. package/lib/store/pagination.d.ts +3 -3
  247. package/lib/store/pagination.js +1 -1
  248. package/lib/store/root.d.ts +5 -3
  249. package/lib/store/root.js +43 -19
  250. package/lib/store/service.d.ts +3 -3
  251. package/lib/store/service.js +10 -4
  252. package/lib/store/status.js +1 -1
  253. package/lib/store/table.d.ts +37 -35
  254. package/lib/store/table.js +1 -1
  255. package/lib/store/table2.d.ts +3 -3
  256. package/lib/store/table2.js +1 -1
  257. package/lib/theme.d.ts +1 -1
  258. package/lib/theme.js +13 -2
  259. package/lib/types.d.ts +21 -2
  260. package/lib/utils/Animation.js +1 -1
  261. package/lib/utils/ColorScale.js +1 -1
  262. package/lib/utils/DataSchema.js +1 -1
  263. package/lib/utils/DataScope.js +1 -1
  264. package/lib/utils/RootClose.js +1 -1
  265. package/lib/utils/SimpleMap.js +1 -1
  266. package/lib/utils/animations.d.ts +19 -0
  267. package/lib/utils/animations.js +62 -0
  268. package/lib/utils/api.d.ts +21 -1
  269. package/lib/utils/api.js +141 -40
  270. package/lib/utils/arraySlice.js +1 -1
  271. package/lib/utils/attachmentAdpator.js +1 -1
  272. package/lib/utils/autobind.js +1 -1
  273. package/lib/utils/browser.js +1 -1
  274. package/lib/utils/columnsSplit.js +1 -1
  275. package/lib/utils/concatData.js +1 -1
  276. package/lib/utils/dataMapping.js +1 -1
  277. package/lib/utils/date.js +1 -1
  278. package/lib/utils/debug.js +2 -2
  279. package/lib/utils/decodeEntity.js +1 -1
  280. package/lib/utils/dom.js +1 -1
  281. package/lib/utils/errors.js +1 -1
  282. package/lib/utils/escapeHtml.js +1 -1
  283. package/lib/utils/filter-schema.js +1 -1
  284. package/lib/utils/filter.js +1 -1
  285. package/lib/utils/formatDuration.js +1 -1
  286. package/lib/utils/formula.js +1 -1
  287. package/lib/utils/getVariable.js +1 -1
  288. package/lib/utils/grammar.js +1 -1
  289. package/lib/utils/handleAction.js +1 -1
  290. package/lib/utils/helper.d.ts +1 -0
  291. package/lib/utils/helper.js +15 -1
  292. package/lib/utils/highlight.js +1 -1
  293. package/lib/utils/icon.js +1 -1
  294. package/lib/utils/image.js +1 -1
  295. package/lib/utils/isPureVariable.js +1 -1
  296. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  297. package/lib/utils/keyToPath.js +1 -1
  298. package/lib/utils/labelToString.js +4 -1
  299. package/lib/utils/makeSorter.js +1 -1
  300. package/lib/utils/math.js +1 -1
  301. package/lib/utils/memoryParse.js +1 -1
  302. package/lib/utils/normalizeLink.js +1 -1
  303. package/lib/utils/normalizeOptions.js +1 -1
  304. package/lib/utils/object.js +1 -1
  305. package/lib/utils/offset.js +1 -1
  306. package/lib/utils/offsetParent.js +1 -1
  307. package/lib/utils/optionValueCompare.js +1 -1
  308. package/lib/utils/position.js +1 -1
  309. package/lib/utils/prettyBytes.js +1 -1
  310. package/lib/utils/printElement.js +1 -1
  311. package/lib/utils/renderer-event.js +1 -1
  312. package/lib/utils/replaceText.js +1 -1
  313. package/lib/utils/resize-sensor.js +1 -1
  314. package/lib/utils/resolveCondition.js +1 -1
  315. package/lib/utils/resolveVariable.js +1 -1
  316. package/lib/utils/resolveVariableAndFilter.js +1 -1
  317. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  318. package/lib/utils/scrollPosition.js +1 -1
  319. package/lib/utils/string2regExp.js +1 -1
  320. package/lib/utils/stripNumber.js +1 -1
  321. package/lib/utils/style-helper.js +1 -1
  322. package/lib/utils/style.js +1 -1
  323. package/lib/utils/toNumber.js +1 -1
  324. package/lib/utils/tokenize.js +1 -1
  325. package/lib/utils/tpl-builtin.js +1 -1
  326. package/lib/utils/tpl-lodash.js +1 -1
  327. package/lib/utils/tpl.js +1 -1
  328. package/lib/utils/uncontrollable.js +1 -1
  329. package/lib/utils/validateId.js +1 -1
  330. package/lib/utils/validations.js +13 -10
  331. package/lib/utils/visitedCache.js +1 -1
  332. package/package.json +3 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -33,6 +33,9 @@ require('./utils/filter.js');
33
33
  var style = require('./utils/style.js');
34
34
  var formula = require('./utils/formula.js');
35
35
  var tpl = require('./utils/tpl.js');
36
+ var reactTransitionGroup = require('react-transition-group');
37
+ var animations = require('./utils/animations.js');
38
+ var StyleManager = require('./StyleManager.js');
36
39
 
37
40
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
38
41
 
@@ -84,15 +87,39 @@ var componentCache = new SimpleMap.SimpleMap();
84
87
  var SchemaRenderer = /** @class */ (function (_super) {
85
88
  tslib.__extends(SchemaRenderer, _super);
86
89
  function SchemaRenderer(props) {
87
- var _this = _super.call(this, props) || this;
90
+ var _this = this;
91
+ var _a;
92
+ _this = _super.call(this, props) || this;
88
93
  _this.rendererKey = '';
94
+ _this.animationTimeout = {};
95
+ _this.animationClassNames = {};
89
96
  _this.unbindEvent = undefined;
90
97
  _this.isStatic = undefined;
98
+ var animations = (_a = props === null || props === void 0 ? void 0 : props.schema) === null || _a === void 0 ? void 0 : _a.animations;
99
+ if (animations) {
100
+ var id = props === null || props === void 0 ? void 0 : props.schema.id;
101
+ id = helper.formateId(id);
102
+ if (animations.enter) {
103
+ _this.animationTimeout.enter =
104
+ ((animations.enter.duration || 1) + (animations.enter.delay || 0)) *
105
+ 1000;
106
+ _this.animationClassNames.enter = "".concat(animations.enter.type, "-").concat(id, "-enter");
107
+ _this.animationClassNames.appear = _this.animationClassNames.enter;
108
+ }
109
+ if (animations.exit) {
110
+ _this.animationTimeout.exit =
111
+ ((animations.exit.duration || 1) + (animations.exit.delay || 0)) *
112
+ 1000;
113
+ _this.animationClassNames.exit = "".concat(animations.exit.type, "-").concat(id, "-exit");
114
+ }
115
+ }
91
116
  _this.refFn = _this.refFn.bind(_this);
92
117
  _this.renderChild = _this.renderChild.bind(_this);
93
118
  _this.reRender = _this.reRender.bind(_this);
94
119
  _this.resolveRenderer(_this.props);
95
120
  _this.dispatchEvent = _this.dispatchEvent.bind(_this);
121
+ _this.addAnimationAttention = _this.addAnimationAttention.bind(_this);
122
+ _this.removeAnimationAttention = _this.removeAnimationAttention.bind(_this);
96
123
  // 监听statusStore更新
97
124
  _this.reaction = mobx.reaction(function () {
98
125
  var _a, _b, _c;
@@ -102,10 +129,18 @@ var SchemaRenderer = /** @class */ (function (_super) {
102
129
  }, function () { return _this.forceUpdate(); });
103
130
  return _this;
104
131
  }
132
+ SchemaRenderer.prototype.componentDidMount = function () {
133
+ if (this.props.schema.animations) {
134
+ var _a = this.props.schema, animations$1 = _a.animations, id = _a.id;
135
+ id = helper.formateId(id);
136
+ animations.createAnimationStyle(id, animations$1);
137
+ }
138
+ };
105
139
  SchemaRenderer.prototype.componentWillUnmount = function () {
106
140
  var _a, _b;
107
141
  (_a = this.reaction) === null || _a === void 0 ? void 0 : _a.call(this);
108
142
  (_b = this.unbindEvent) === null || _b === void 0 ? void 0 : _b.call(this);
143
+ this.removeAnimationStyle();
109
144
  };
110
145
  // 限制:只有 schema 除外的 props 变化,或者 schema 里面的某个成员值发生变化才更新。
111
146
  SchemaRenderer.prototype.shouldComponentUpdate = function (nextProps) {
@@ -128,6 +163,13 @@ var SchemaRenderer = /** @class */ (function (_super) {
128
163
  }
129
164
  return false;
130
165
  };
166
+ SchemaRenderer.prototype.removeAnimationStyle = function () {
167
+ if (this.props.schema.animations) {
168
+ var id = this.props.schema.id;
169
+ id = helper.formateId(id);
170
+ StyleManager["default"].removeStyles(id);
171
+ }
172
+ };
131
173
  SchemaRenderer.prototype.resolveRenderer = function (props, force) {
132
174
  if (force === void 0) { force = false; }
133
175
  var schema = props.schema;
@@ -177,7 +219,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
177
219
  };
178
220
  SchemaRenderer.prototype.childRef = function (ref) {
179
221
  var _this = this;
180
- var _a;
222
+ var _a, _b;
181
223
  // todo 这里有个问题,就是注意以下的这段注释
182
224
  // > // 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的
183
225
  // > 而 visibleOn 和 hiddenOn 是无效的,
@@ -195,7 +237,8 @@ var SchemaRenderer = /** @class */ (function (_super) {
195
237
  }
196
238
  if (ref) {
197
239
  // 这里无法区分监听的是不是广播,所以又bind一下,主要是为了绑广播
198
- this.unbindEvent = rendererEvent.bindEvent(this.ref);
240
+ (_b = this.unbindEvent) === null || _b === void 0 ? void 0 : _b.call(this);
241
+ this.unbindEvent = rendererEvent.bindEvent(ref);
199
242
  }
200
243
  this.cRef = ref;
201
244
  };
@@ -218,7 +261,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
218
261
  var omitList = RENDERER_TRANSMISSION_OMIT_PROPS.concat();
219
262
  if (this.renderer) {
220
263
  var Component = this.renderer.component;
221
- Component.propsList &&
264
+ (Component === null || Component === void 0 ? void 0 : Component.propsList) &&
222
265
  omitList.push.apply(omitList, Component.propsList);
223
266
  }
224
267
  return render("".concat($path).concat(region ? "/".concat(region) : ''), node || '', tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, omit__default["default"](rest, omitList)), { defaultStatic: (_c = (_b = (((_a = this.renderer) === null || _a === void 0 ? void 0 : _a.type) &&
@@ -232,15 +275,33 @@ var SchemaRenderer = /** @class */ (function (_super) {
232
275
  this.resolveRenderer(this.props, true);
233
276
  this.forceUpdate();
234
277
  };
278
+ SchemaRenderer.prototype.addAnimationAttention = function (node) {
279
+ var schema = (this.props || {}).schema;
280
+ var attention = ((schema === null || schema === void 0 ? void 0 : schema.animations) || {}).attention;
281
+ if (attention) {
282
+ var id = schema.id;
283
+ id = helper.formateId(id);
284
+ node.classList.add("".concat(attention.type, "-").concat(id, "-attention"));
285
+ }
286
+ };
287
+ SchemaRenderer.prototype.removeAnimationAttention = function (node) {
288
+ var schema = (this.props || {}).schema;
289
+ var attention = ((schema === null || schema === void 0 ? void 0 : schema.animations) || {}).attention;
290
+ if (attention) {
291
+ var id = schema.id;
292
+ id = helper.formateId(id);
293
+ node.classList.remove("".concat(attention.type, "-").concat(id, "-attention"));
294
+ }
295
+ };
235
296
  SchemaRenderer.prototype.render = function () {
236
297
  var e_1, _a;
237
298
  var _this = this;
238
- var _b, _c, _d, _e, _f, _g;
239
- var _h = this.props; _h.$path; var __ = _h.schema, rootStore = _h.rootStore, statusStore = _h.statusStore, render = _h.render, propKey = _h.key, rest = tslib.__rest(_h, ["$path", "schema", "rootStore", "statusStore", "render", "key"]);
299
+ var _b, _c, _d, _e, _f, _g, _h;
300
+ var _j = this.props; _j.$path; var __ = _j.schema, rootStore = _j.rootStore, statusStore = _j.statusStore, render = _j.render, propKey = _j.key, rest = tslib.__rest(_j, ["$path", "schema", "rootStore", "statusStore", "render", "key"]);
240
301
  if (__ == null) {
241
302
  return null;
242
303
  }
243
- var _j = this.resolveRenderer(this.props), $path = _j.path, schema = _j.schema;
304
+ var _k = this.resolveRenderer(this.props), $path = _k.path, schema = _k.schema;
244
305
  var theme = this.props.env.theme;
245
306
  if (Array.isArray(schema)) {
246
307
  return render($path, schema, rest);
@@ -297,7 +358,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
297
358
  return null;
298
359
  }
299
360
  else if (!this.renderer) {
300
- return rest.invisible ? null : (_J$X_(LazyComponent["default"], tslib.__assign({}, rest, exprProps, { getComponent: function () { return tslib.__awaiter(_this, void 0, void 0, function () {
361
+ return rest.invisible ? null : (_J$X_(LazyComponent["default"], { defaultVisible: true, getComponent: function () { return tslib.__awaiter(_this, void 0, void 0, function () {
301
362
  var result;
302
363
  return tslib.__generator(this, function (_a) {
303
364
  switch (_a.label) {
@@ -311,15 +372,30 @@ var SchemaRenderer = /** @class */ (function (_super) {
311
372
  return [2 /*return*/, function () { return result; }];
312
373
  }
313
374
  this.reRender();
314
- return [2 /*return*/, function () { return factory.loadRenderer(schema, $path); }];
375
+ return [2 /*return*/, function () { return factory.loadRendererError(schema, $path); }];
315
376
  }
316
377
  });
317
- }); }, "$path": $path, "$schema": schema, retry: this.reRender, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent })));
378
+ }); } }));
379
+ }
380
+ else if (this.renderer.getComponent && !this.renderer.component) {
381
+ // 处理异步渲染器
382
+ return rest.invisible ? null : (_J$X_(LazyComponent["default"], { defaultVisible: true, getComponent: function () { return tslib.__awaiter(_this, void 0, void 0, function () {
383
+ return tslib.__generator(this, function (_a) {
384
+ switch (_a.label) {
385
+ case 0: return [4 /*yield*/, factory.loadAsyncRenderer(this.renderer)];
386
+ case 1:
387
+ _a.sent();
388
+ this.reRender();
389
+ return [2 /*return*/, function () { return null; }];
390
+ }
391
+ });
392
+ }); } }));
318
393
  }
319
394
  var renderer = this.renderer;
320
395
  schema = factory.filterSchema(schema, renderer, rest);
321
396
  var defaultData = schema.data, defaultValue = schema.value, defaultActiveKey = schema.activeKey, restSchema = tslib.__rest(schema, ["data", "value", "activeKey"]);
322
397
  var Component = renderer.component;
398
+ var animationIn = true;
323
399
  // 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的
324
400
  // 而 visibleOn 和 hiddenOn 是无效的,
325
401
  // 这个本来就是个bug,但是已经被广泛使用了
@@ -329,7 +405,12 @@ var SchemaRenderer = /** @class */ (function (_super) {
329
405
  exprProps.visible === false ||
330
406
  !renderer.isFormItem ||
331
407
  (schema.visible !== false && !schema.hidden))) {
332
- return null;
408
+ if (schema.animations) {
409
+ animationIn = false;
410
+ }
411
+ else {
412
+ return null;
413
+ }
333
414
  }
334
415
  // withStore 里面会处理,而且会实时处理
335
416
  // 这里处理反而导致了问题
@@ -338,9 +419,9 @@ var SchemaRenderer = /** @class */ (function (_super) {
338
419
  }
339
420
  var supportRef = ((_e = Component.prototype) === null || _e === void 0 ? void 0 : _e.isReactComponent) ||
340
421
  Component.$$typeof === Symbol.for('react.forward_ref');
341
- var props = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, theme.getRendererConfig(renderer.name)), restSchema), helper.chainEvents(rest, restSchema)), exprProps), {
422
+ var props = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, (_f = renderer.defaultProps) === null || _f === void 0 ? void 0 : _f.call(renderer, schema.type, schema)), theme.getRendererConfig(renderer.name)), restSchema), helper.chainEvents(rest, restSchema)), exprProps), {
342
423
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
343
- defaultData: (_f = restSchema.defaultData) !== null && _f !== void 0 ? _f : defaultData, defaultValue: (_g = restSchema.defaultValue) !== null && _g !== void 0 ? _g : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: schema, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent, mobileUI: schema.useMobileUI === false ? false : rest.mobileUI });
424
+ defaultData: (_g = restSchema.defaultData) !== null && _g !== void 0 ? _g : defaultData, defaultValue: (_h = restSchema.defaultValue) !== null && _h !== void 0 ? _h : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: schema, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent, mobileUI: schema.useMobileUI === false ? false : rest.mobileUI });
344
425
  // style 支持公式
345
426
  if (schema.style) {
346
427
  props.style = style.buildStyle(schema.style, detectData);
@@ -363,8 +444,8 @@ var SchemaRenderer = /** @class */ (function (_super) {
363
444
  // 自动解析变量模式,主要是方便直接引入第三方组件库,无需为了支持变量封装一层
364
445
  if (renderer.autoVar) {
365
446
  try {
366
- for (var _k = tslib.__values(Object.keys(schema)), _l = _k.next(); !_l.done; _l = _k.next()) {
367
- var key = _l.value;
447
+ for (var _l = tslib.__values(Object.keys(schema)), _m = _l.next(); !_m.done; _m = _l.next()) {
448
+ var key = _m.value;
368
449
  if (typeof props[key] === 'string' && formula.isExpression(props[key])) {
369
450
  props[key] = resolveVariableAndFilter.resolveVariableAndFilter(props[key], props.data, '| raw');
370
451
  }
@@ -373,12 +454,15 @@ var SchemaRenderer = /** @class */ (function (_super) {
373
454
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
374
455
  finally {
375
456
  try {
376
- if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
457
+ if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
377
458
  }
378
459
  finally { if (e_1) throw e_1.error; }
379
460
  }
380
461
  }
381
462
  var component = supportRef ? (_J$X_(Component, tslib.__assign({}, props, { ref: this.childRef }))) : (_J$X_(Component, tslib.__assign({}, props, { forwardedRef: this.childRef })));
463
+ if (schema.animations) {
464
+ component = (_J$X_(reactTransitionGroup.CSSTransition, { in: animationIn, timeout: this.animationTimeout, classNames: this.animationClassNames, onEntered: this.addAnimationAttention, onExit: this.removeAnimationAttention, appear: true, unmountOnExit: true }, component));
465
+ }
382
466
  return this.props.env.enableAMISDebug ? (_J$X_(debug.DebugWrapper, { renderer: renderer }, component)) : (component);
383
467
  };
384
468
  SchemaRenderer.displayName = 'Renderer';
package/lib/Scoped.d.ts CHANGED
@@ -39,7 +39,7 @@ export interface IScopedContext {
39
39
  getComponentById: (id: string) => ScopedComponentType | undefined;
40
40
  getComponentByIdUnderCurrentScope: (id: string, ignoreScope?: IScopedContext) => ScopedComponentType | undefined;
41
41
  getComponents: () => Array<ScopedComponentType>;
42
- reload: (target: string, ctx: RendererData) => void;
42
+ reload: (target: string, ctx: RendererData) => void | Promise<void>;
43
43
  send: (target: string, ctx: RendererData) => void;
44
44
  close: (target: string) => void;
45
45
  closeById: (target: string) => void;
package/lib/Scoped.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -0,0 +1,18 @@
1
+ interface Style {
2
+ [id: string]: {
3
+ [className: string]: {
4
+ [propName: string]: string | number;
5
+ };
6
+ };
7
+ }
8
+ declare class StyleManager {
9
+ styles: Style;
10
+ styleDom: HTMLStyleElement;
11
+ styleText: string;
12
+ constructor();
13
+ updateStyle(style: Style): void;
14
+ removeStyles(id: string): void;
15
+ updateStyleDom(): void;
16
+ }
17
+ declare const _default: StyleManager;
18
+ export default _default;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * amis-core v6.9.0-beta.1
3
+ * Copyright 2018-2024 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var kebabCase = require('lodash/kebabCase');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var kebabCase__default = /*#__PURE__*/_interopDefaultLegacy(kebabCase);
16
+
17
+ var StyleManager = /** @class */ (function () {
18
+ function StyleManager() {
19
+ this.styles = {};
20
+ this.styleDom = document.createElement('style');
21
+ this.styleDom.id = 'amis-styles';
22
+ document.head.appendChild(this.styleDom);
23
+ }
24
+ StyleManager.prototype.updateStyle = function (style) {
25
+ var _this = this;
26
+ Object.keys(style).forEach(function (className) {
27
+ if (!_this.styles[className]) {
28
+ _this.styles[className] = style[className];
29
+ }
30
+ else {
31
+ _this.styles[className] = tslib.__assign(tslib.__assign({}, _this.styles[className]), style[className]);
32
+ }
33
+ });
34
+ this.updateStyleDom();
35
+ };
36
+ StyleManager.prototype.removeStyles = function (id) {
37
+ delete this.styles[id];
38
+ this.updateStyleDom();
39
+ };
40
+ StyleManager.prototype.updateStyleDom = function () {
41
+ var _this = this;
42
+ var styleText = Object.keys(this.styles)
43
+ .map(function (id) {
44
+ var style = _this.styles[id];
45
+ return Object.keys(style)
46
+ .map(function (className) {
47
+ return "".concat(className, " {").concat(Object.keys(style[className])
48
+ .map(function (propName) {
49
+ return "".concat(kebabCase__default["default"](propName), ": ").concat(style[className][propName], ";");
50
+ })
51
+ .join(''), "}");
52
+ })
53
+ .join('');
54
+ })
55
+ .join('');
56
+ this.styleDom.innerHTML = styleText;
57
+ this.styleText = styleText;
58
+ };
59
+ return StyleManager;
60
+ }());
61
+ var styleManager = new StyleManager();
62
+
63
+ exports["default"] = styleManager;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/lib/WithStore.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -109,7 +109,7 @@ function HocStoreFactory(renderer) {
109
109
  };
110
110
  StoreFactory.prototype.componentDidUpdate = function (prevProps) {
111
111
  var _this = this;
112
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
112
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
113
113
  var props = this.props;
114
114
  var store = this.store;
115
115
  // dialog 场景下 schema 是显示的时候更新的,
@@ -143,7 +143,7 @@ function HocStoreFactory(renderer) {
143
143
  (props.data &&
144
144
  prevProps.data &&
145
145
  props.data.__super !== prevProps.data.__super))) {
146
- store.initData(object.extendObject(props.data, tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, this.formatData(dataMapping.dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), (store.hasRemoteData ? store.data : null)), this.formatData(props.defaultData)), this.formatData(props.data))), ((_c = props.updatePristineAfterStoreDataReInit) !== null && _c !== void 0 ? _c : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
146
+ store.initData(object.extendObject(props.data, tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, this.formatData(dataMapping.dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), (store.hasRemoteData ? store.data : null)), this.formatData(props.defaultData)), this.formatData(props.data))), ((_c = props.updatePristineAfterStoreDataReInit) !== null && _c !== void 0 ? _c : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false, (_d = props.data) === null || _d === void 0 ? void 0 : _d.__changeReason);
147
147
  }
148
148
  }
149
149
  else if (shouldSync === true ||
@@ -155,7 +155,7 @@ function HocStoreFactory(renderer) {
155
155
  helper.isSuperDataModified(props.data, prevProps.data, store)))) {
156
156
  if (props.store && props.scope === props.data) {
157
157
  store.initData(object.createObject(props.store.data, tslib.__assign(tslib.__assign({}, this.formatData(dataMapping.dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), (props.syncSuperStore === false
158
- ? tslib.__assign({}, store.data) : helper.syncDataFromSuper(store.data, props.store.data, prevProps.scope, store, props.syncSuperStore === true)))), ((_d = props.updatePristineAfterStoreDataReInit) !== null && _d !== void 0 ? _d : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
158
+ ? tslib.__assign({}, store.data) : helper.syncDataFromSuper(store.data, props.store.data, prevProps.scope, store, props.syncSuperStore === true)))), ((_e = props.updatePristineAfterStoreDataReInit) !== null && _e !== void 0 ? _e : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false, (_f = props.data) === null || _f === void 0 ? void 0 : _f.__changeReason);
159
159
  }
160
160
  else if (props.data && props.data.__super) {
161
161
  store.initData(object.extendObject(props.data, tslib.__assign(tslib.__assign({}, this.formatData(dataMapping.dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), // 有远程数据
@@ -163,12 +163,12 @@ function HocStoreFactory(renderer) {
163
163
  (store.hasRemoteData || !store.path.includes('/')
164
164
  ? tslib.__assign(tslib.__assign({}, store.data), props.data) : // combo 不需要同步,如果要同步,在 Combo.tsx 里面已经实现了相关逻辑
165
165
  // 目前主要的问题是,如果 combo 中表单项名字和 combo 本身的名字一样,会导致里面的值会被覆盖成数组
166
- ((_e = props.store) === null || _e === void 0 ? void 0 : _e.storeType) === 'ComboStore'
166
+ ((_g = props.store) === null || _g === void 0 ? void 0 : _g.storeType) === 'ComboStore'
167
167
  ? undefined
168
- : helper.syncDataFromSuper(tslib.__assign(tslib.__assign({}, store.pristineDiff), props.data), props.data.__super, prevProps.data.__super, store, false)))), ((_f = props.updatePristineAfterStoreDataReInit) !== null && _f !== void 0 ? _f : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
168
+ : helper.syncDataFromSuper(tslib.__assign(tslib.__assign({}, store.pristineDiff), props.data), props.data.__super, prevProps.data.__super, store, false)))), ((_h = props.updatePristineAfterStoreDataReInit) !== null && _h !== void 0 ? _h : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false, (_j = props.data) === null || _j === void 0 ? void 0 : _j.__changeReason);
169
169
  }
170
170
  else {
171
- store.initData(object.createObject(props.scope, props.data), ((_g = props.updatePristineAfterStoreDataReInit) !== null && _g !== void 0 ? _g : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
171
+ store.initData(object.createObject(props.scope, props.data), ((_k = props.updatePristineAfterStoreDataReInit) !== null && _k !== void 0 ? _k : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false, (_l = props.data) === null || _l === void 0 ? void 0 : _l.__changeReason);
172
172
  }
173
173
  }
174
174
  else if (!props.trackExpression &&
@@ -178,9 +178,9 @@ function HocStoreFactory(renderer) {
178
178
  // 这个用法很少,当 data.__super 值发生变化时,更新 store.data
179
179
  if (!prevProps.data ||
180
180
  helper.isObjectShallowModified(props.data.__super, prevProps.data.__super, false)) {
181
- store.initData(object.createObject(props.data.__super, tslib.__assign(tslib.__assign({}, props.data), store.data)), ((_h = props.updatePristineAfterStoreDataReInit) !== null && _h !== void 0 ? _h : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false ||
181
+ store.initData(object.createObject(props.data.__super, tslib.__assign(tslib.__assign({}, props.data), store.data)), ((_m = props.updatePristineAfterStoreDataReInit) !== null && _m !== void 0 ? _m : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false ||
182
182
  (store.storeType === 'FormStore' &&
183
- ((_j = prevProps.store) === null || _j === void 0 ? void 0 : _j.storeType) === 'CRUDStore'));
183
+ ((_o = prevProps.store) === null || _o === void 0 ? void 0 : _o.storeType) === 'CRUDStore'), (_p = props.data) === null || _p === void 0 ? void 0 : _p.__changeReason);
184
184
  }
185
185
  // nextProps.data.__super !== props.data.__super) &&
186
186
  }
@@ -190,7 +190,7 @@ function HocStoreFactory(renderer) {
190
190
  prevProps.data !== props.data) {
191
191
  // 只有父级数据变动的时候才应该进来,
192
192
  // 目前看来这个 case 很少有情况下能进来
193
- store.initData(object.createObject(props.scope, tslib.__assign({}, store.data)), ((_k = props.updatePristineAfterStoreDataReInit) !== null && _k !== void 0 ? _k : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
193
+ store.initData(object.createObject(props.scope, tslib.__assign({}, store.data)), ((_q = props.updatePristineAfterStoreDataReInit) !== null && _q !== void 0 ? _q : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false, (_r = props.data) === null || _r === void 0 ? void 0 : _r.__changeReason);
194
194
  }
195
195
  };
196
196
  StoreFactory.prototype.componentWillUnmount = function () {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.8.0
2
+ * amis-core v6.9.0-beta.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5