amis-core 6.4.1 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +1 -1
  3. package/esm/SchemaRenderer.js +16 -5
  4. package/esm/Scoped.d.ts +1 -1
  5. package/esm/Scoped.js +5 -1
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +10 -4
  9. package/esm/actions/Action.js +6 -5
  10. package/esm/actions/AjaxAction.js +3 -3
  11. package/esm/actions/BreakAction.js +1 -1
  12. package/esm/actions/BroadcastAction.js +1 -1
  13. package/esm/actions/CmptAction.js +2 -2
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +4 -4
  16. package/esm/actions/CustomAction.js +2 -1
  17. package/esm/actions/DialogAction.js +2 -1
  18. package/esm/actions/DrawerAction.js +2 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/EventAction.js +2 -1
  21. package/esm/actions/LinkAction.js +1 -1
  22. package/esm/actions/LoopAction.js +2 -1
  23. package/esm/actions/PageAction.js +1 -1
  24. package/esm/actions/ParallelAction.js +1 -1
  25. package/esm/actions/PrintAction.d.ts +1 -1
  26. package/esm/actions/PrintAction.js +12 -6
  27. package/esm/actions/StatusAction.js +1 -1
  28. package/esm/actions/SwitchAction.js +3 -3
  29. package/esm/actions/ToastAction.js +1 -1
  30. package/esm/actions/WaitAction.js +1 -1
  31. package/esm/components/CustomStyle.js +3 -2
  32. package/esm/components/ErrorBoundary.js +1 -1
  33. package/esm/components/LazyComponent.js +1 -1
  34. package/esm/components/Overlay.js +2 -1
  35. package/esm/components/PopOver.js +2 -1
  36. package/esm/env.d.ts +2 -4
  37. package/esm/env.js +1 -1
  38. package/esm/envOverwrite.js +1 -1
  39. package/esm/factory.js +1 -1
  40. package/esm/index.js +4 -4
  41. package/esm/locale.js +2 -1
  42. package/esm/polyfills.js +1 -1
  43. package/esm/renderers/Form.d.ts +1 -1
  44. package/esm/renderers/Form.js +43 -9
  45. package/esm/renderers/Item.d.ts +27 -60
  46. package/esm/renderers/Item.js +75 -6
  47. package/esm/renderers/Options.js +40 -13
  48. package/esm/renderers/Placeholder.js +1 -1
  49. package/esm/renderers/builtin.js +1 -1
  50. package/esm/renderers/register.js +1 -1
  51. package/esm/renderers/wrapControl.js +19 -9
  52. package/esm/store/app.d.ts +2 -0
  53. package/esm/store/app.js +2 -1
  54. package/esm/store/combo.d.ts +6 -0
  55. package/esm/store/combo.js +1 -1
  56. package/esm/store/crud.d.ts +2 -0
  57. package/esm/store/crud.js +2 -1
  58. package/esm/store/form.d.ts +2 -0
  59. package/esm/store/form.js +2 -1
  60. package/esm/store/formItem.js +12 -2
  61. package/esm/store/iRenderer.d.ts +2 -0
  62. package/esm/store/iRenderer.js +13 -1
  63. package/esm/store/index.js +1 -1
  64. package/esm/store/list.d.ts +2 -0
  65. package/esm/store/list.js +1 -1
  66. package/esm/store/manager.js +1 -1
  67. package/esm/store/modal.d.ts +2 -0
  68. package/esm/store/modal.js +1 -1
  69. package/esm/store/node.js +1 -1
  70. package/esm/store/pagination.d.ts +2 -0
  71. package/esm/store/pagination.js +2 -1
  72. package/esm/store/root.d.ts +2 -0
  73. package/esm/store/root.js +2 -1
  74. package/esm/store/service.d.ts +2 -0
  75. package/esm/store/service.js +2 -1
  76. package/esm/store/status.js +1 -1
  77. package/esm/store/table.d.ts +6 -0
  78. package/esm/store/table.js +2 -1
  79. package/esm/store/table2.d.ts +2 -0
  80. package/esm/store/table2.js +1 -1
  81. package/esm/theme.js +1 -1
  82. package/esm/types.d.ts +2 -0
  83. package/esm/utils/Animation.js +1 -1
  84. package/esm/utils/ColorScale.js +1 -1
  85. package/esm/utils/DataSchema.js +1 -1
  86. package/esm/utils/DataScope.js +2 -1
  87. package/esm/utils/RootClose.js +1 -1
  88. package/esm/utils/SimpleMap.js +1 -1
  89. package/esm/utils/api.js +21 -3
  90. package/esm/utils/arraySlice.js +1 -1
  91. package/esm/utils/attachmentAdpator.js +1 -1
  92. package/esm/utils/autobind.js +1 -1
  93. package/esm/utils/browser.js +1 -1
  94. package/esm/utils/columnsSplit.js +1 -1
  95. package/esm/utils/concatData.js +1 -1
  96. package/esm/utils/dataMapping.js +1 -1
  97. package/esm/utils/date.d.ts +3 -1
  98. package/esm/utils/date.js +11 -5
  99. package/esm/utils/debug.js +1 -1
  100. package/esm/utils/decodeEntity.js +1 -1
  101. package/esm/utils/dom.js +1 -1
  102. package/esm/utils/errors.js +1 -1
  103. package/esm/utils/escapeHtml.js +1 -1
  104. package/esm/utils/filter-schema.js +7 -4
  105. package/esm/utils/filter.js +1 -1
  106. package/esm/utils/formatDuration.js +1 -1
  107. package/esm/utils/formula.js +2 -1
  108. package/esm/utils/getVariable.js +1 -1
  109. package/esm/utils/grammar.js +1 -1
  110. package/esm/utils/handleAction.js +1 -1
  111. package/esm/utils/helper.d.ts +1 -1
  112. package/esm/utils/helper.js +10 -6
  113. package/esm/utils/highlight.js +1 -1
  114. package/esm/utils/icon.js +1 -1
  115. package/esm/utils/image.js +1 -1
  116. package/esm/utils/isPureVariable.js +1 -1
  117. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  118. package/esm/utils/keyToPath.js +1 -1
  119. package/esm/utils/labelToString.js +1 -1
  120. package/esm/utils/makeSorter.js +1 -1
  121. package/esm/utils/math.js +1 -1
  122. package/esm/utils/memoryParse.js +1 -1
  123. package/esm/utils/normalizeLink.js +1 -1
  124. package/esm/utils/normalizeOptions.d.ts +1 -1
  125. package/esm/utils/normalizeOptions.js +3 -2
  126. package/esm/utils/object.js +1 -1
  127. package/esm/utils/offset.js +1 -1
  128. package/esm/utils/offsetParent.js +1 -1
  129. package/esm/utils/optionValueCompare.js +1 -1
  130. package/esm/utils/position.js +1 -1
  131. package/esm/utils/prettyBytes.js +1 -1
  132. package/esm/utils/printElement.js +1 -1
  133. package/esm/utils/renderer-event.js +7 -6
  134. package/esm/utils/replaceText.js +1 -1
  135. package/esm/utils/resize-sensor.js +1 -1
  136. package/esm/utils/resolveCondition.d.ts +2 -1
  137. package/esm/utils/resolveCondition.js +60 -8
  138. package/esm/utils/resolveVariable.js +1 -1
  139. package/esm/utils/resolveVariableAndFilter.js +1 -1
  140. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  141. package/esm/utils/scrollPosition.js +1 -1
  142. package/esm/utils/string2regExp.js +1 -1
  143. package/esm/utils/stripNumber.js +2 -2
  144. package/esm/utils/style-helper.js +15 -8
  145. package/esm/utils/style.js +2 -1
  146. package/esm/utils/toNumber.js +1 -1
  147. package/esm/utils/tokenize.js +1 -1
  148. package/esm/utils/tpl-builtin.js +2 -1
  149. package/esm/utils/tpl-lodash.js +2 -1
  150. package/esm/utils/tpl.d.ts +8 -1
  151. package/esm/utils/tpl.js +18 -5
  152. package/esm/utils/uncontrollable.js +1 -1
  153. package/esm/utils/validateId.js +1 -1
  154. package/esm/utils/validations.js +2 -1
  155. package/lib/Root.js +1 -1
  156. package/lib/RootRenderer.d.ts +1 -1
  157. package/lib/RootRenderer.js +1 -1
  158. package/lib/SchemaRenderer.js +16 -5
  159. package/lib/Scoped.d.ts +1 -1
  160. package/lib/Scoped.js +5 -1
  161. package/lib/StatusScoped.js +1 -1
  162. package/lib/WithRootStore.js +1 -1
  163. package/lib/WithStore.js +10 -4
  164. package/lib/actions/Action.js +5 -4
  165. package/lib/actions/AjaxAction.js +2 -2
  166. package/lib/actions/BreakAction.js +1 -1
  167. package/lib/actions/BroadcastAction.js +1 -1
  168. package/lib/actions/CmptAction.js +2 -2
  169. package/lib/actions/ContinueAction.js +1 -1
  170. package/lib/actions/CopyAction.js +4 -4
  171. package/lib/actions/CustomAction.js +2 -1
  172. package/lib/actions/DialogAction.js +2 -1
  173. package/lib/actions/DrawerAction.js +2 -1
  174. package/lib/actions/EmailAction.js +1 -1
  175. package/lib/actions/EventAction.js +2 -1
  176. package/lib/actions/LinkAction.js +1 -1
  177. package/lib/actions/LoopAction.js +2 -1
  178. package/lib/actions/PageAction.js +1 -1
  179. package/lib/actions/ParallelAction.js +1 -1
  180. package/lib/actions/PrintAction.d.ts +1 -1
  181. package/lib/actions/PrintAction.js +12 -6
  182. package/lib/actions/StatusAction.js +1 -1
  183. package/lib/actions/SwitchAction.js +2 -2
  184. package/lib/actions/ToastAction.js +1 -1
  185. package/lib/actions/WaitAction.js +1 -1
  186. package/lib/components/CustomStyle.js +3 -2
  187. package/lib/components/ErrorBoundary.js +1 -1
  188. package/lib/components/LazyComponent.js +1 -1
  189. package/lib/components/Overlay.js +2 -1
  190. package/lib/components/PopOver.js +2 -1
  191. package/lib/env.d.ts +2 -4
  192. package/lib/env.js +1 -1
  193. package/lib/envOverwrite.js +1 -1
  194. package/lib/factory.js +1 -1
  195. package/lib/index.js +4 -2
  196. package/lib/locale.js +2 -1
  197. package/lib/polyfills.js +1 -1
  198. package/lib/renderers/Form.d.ts +1 -1
  199. package/lib/renderers/Form.js +43 -9
  200. package/lib/renderers/Item.d.ts +27 -60
  201. package/lib/renderers/Item.js +75 -6
  202. package/lib/renderers/Options.js +40 -13
  203. package/lib/renderers/Placeholder.js +1 -1
  204. package/lib/renderers/builtin.js +1 -1
  205. package/lib/renderers/register.js +1 -1
  206. package/lib/renderers/wrapControl.js +19 -9
  207. package/lib/store/app.d.ts +2 -0
  208. package/lib/store/app.js +2 -1
  209. package/lib/store/combo.d.ts +30 -24
  210. package/lib/store/combo.js +1 -1
  211. package/lib/store/crud.d.ts +2 -0
  212. package/lib/store/crud.js +2 -1
  213. package/lib/store/form.d.ts +12 -10
  214. package/lib/store/form.js +2 -1
  215. package/lib/store/formItem.js +12 -2
  216. package/lib/store/iRenderer.d.ts +2 -0
  217. package/lib/store/iRenderer.js +13 -1
  218. package/lib/store/index.js +1 -1
  219. package/lib/store/list.d.ts +2 -0
  220. package/lib/store/list.js +1 -1
  221. package/lib/store/manager.js +1 -1
  222. package/lib/store/modal.d.ts +2 -0
  223. package/lib/store/modal.js +1 -1
  224. package/lib/store/node.js +1 -1
  225. package/lib/store/pagination.d.ts +2 -0
  226. package/lib/store/pagination.js +2 -1
  227. package/lib/store/root.d.ts +2 -0
  228. package/lib/store/root.js +2 -1
  229. package/lib/store/service.d.ts +2 -0
  230. package/lib/store/service.js +2 -1
  231. package/lib/store/status.js +1 -1
  232. package/lib/store/table.d.ts +26 -20
  233. package/lib/store/table.js +2 -1
  234. package/lib/store/table2.d.ts +2 -0
  235. package/lib/store/table2.js +1 -1
  236. package/lib/theme.js +1 -1
  237. package/lib/types.d.ts +2 -0
  238. package/lib/utils/Animation.js +1 -1
  239. package/lib/utils/ColorScale.js +1 -1
  240. package/lib/utils/DataSchema.js +1 -1
  241. package/lib/utils/DataScope.js +2 -1
  242. package/lib/utils/RootClose.js +1 -1
  243. package/lib/utils/SimpleMap.js +1 -1
  244. package/lib/utils/api.js +23 -3
  245. package/lib/utils/arraySlice.js +1 -1
  246. package/lib/utils/attachmentAdpator.js +1 -1
  247. package/lib/utils/autobind.js +1 -1
  248. package/lib/utils/browser.js +1 -1
  249. package/lib/utils/columnsSplit.js +1 -1
  250. package/lib/utils/concatData.js +1 -1
  251. package/lib/utils/dataMapping.js +1 -1
  252. package/lib/utils/date.d.ts +3 -1
  253. package/lib/utils/date.js +11 -5
  254. package/lib/utils/debug.js +1 -1
  255. package/lib/utils/decodeEntity.js +1 -1
  256. package/lib/utils/dom.js +1 -1
  257. package/lib/utils/errors.js +1 -1
  258. package/lib/utils/escapeHtml.js +1 -1
  259. package/lib/utils/filter-schema.js +6 -3
  260. package/lib/utils/filter.js +1 -1
  261. package/lib/utils/formatDuration.js +1 -1
  262. package/lib/utils/formula.js +2 -1
  263. package/lib/utils/getVariable.js +1 -1
  264. package/lib/utils/grammar.js +1 -1
  265. package/lib/utils/handleAction.js +1 -1
  266. package/lib/utils/helper.d.ts +1 -1
  267. package/lib/utils/helper.js +9 -5
  268. package/lib/utils/highlight.js +1 -1
  269. package/lib/utils/icon.js +1 -1
  270. package/lib/utils/image.js +1 -1
  271. package/lib/utils/isPureVariable.js +1 -1
  272. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  273. package/lib/utils/keyToPath.js +1 -1
  274. package/lib/utils/labelToString.js +1 -1
  275. package/lib/utils/makeSorter.js +1 -1
  276. package/lib/utils/math.js +1 -1
  277. package/lib/utils/memoryParse.js +1 -1
  278. package/lib/utils/normalizeLink.js +1 -1
  279. package/lib/utils/normalizeOptions.d.ts +1 -1
  280. package/lib/utils/normalizeOptions.js +3 -2
  281. package/lib/utils/object.js +1 -1
  282. package/lib/utils/offset.js +1 -1
  283. package/lib/utils/offsetParent.js +1 -1
  284. package/lib/utils/optionValueCompare.js +1 -1
  285. package/lib/utils/position.js +1 -1
  286. package/lib/utils/prettyBytes.js +1 -1
  287. package/lib/utils/printElement.js +1 -1
  288. package/lib/utils/renderer-event.js +6 -5
  289. package/lib/utils/replaceText.js +1 -1
  290. package/lib/utils/resize-sensor.js +1 -1
  291. package/lib/utils/resolveCondition.d.ts +2 -1
  292. package/lib/utils/resolveCondition.js +60 -7
  293. package/lib/utils/resolveVariable.js +1 -1
  294. package/lib/utils/resolveVariableAndFilter.js +1 -1
  295. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  296. package/lib/utils/scrollPosition.js +1 -1
  297. package/lib/utils/string2regExp.js +1 -1
  298. package/lib/utils/stripNumber.js +3 -3
  299. package/lib/utils/style-helper.js +15 -8
  300. package/lib/utils/style.js +2 -1
  301. package/lib/utils/toNumber.js +1 -1
  302. package/lib/utils/tokenize.js +1 -1
  303. package/lib/utils/tpl-builtin.js +2 -1
  304. package/lib/utils/tpl-lodash.js +2 -1
  305. package/lib/utils/tpl.d.ts +8 -1
  306. package/lib/utils/tpl.js +17 -3
  307. package/lib/utils/uncontrollable.js +1 -1
  308. package/lib/utils/validateId.js +1 -1
  309. package/lib/utils/validations.js +2 -1
  310. package/package.json +3 -2
  311. package/esm/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -12
  312. package/esm/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -26
  313. package/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -23
  314. package/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -19
  315. package/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -14
  316. package/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -16
  317. package/esm/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +0 -184
  318. package/esm/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +0 -56
  319. package/esm/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +0 -119
  320. package/esm/node_modules/@rc-component/mini-decimal/es/numberUtil.js +0 -105
  321. package/esm/node_modules/@rc-component/mini-decimal/es/supportUtil.js +0 -10
  322. package/lib/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -16
  323. package/lib/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -30
  324. package/lib/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -27
  325. package/lib/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -23
  326. package/lib/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -18
  327. package/lib/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -20
  328. package/lib/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +0 -188
  329. package/lib/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +0 -61
  330. package/lib/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +0 -123
  331. package/lib/node_modules/@rc-component/mini-decimal/es/numberUtil.js +0 -114
  332. package/lib/node_modules/@rc-component/mini-decimal/es/supportUtil.js +0 -14
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -12,11 +12,17 @@ import startsWith from 'lodash/startsWith';
12
12
  import { resolveVariableAndFilterForAsync } from './resolveVariableAndFilterForAsync.js';
13
13
  import moment from 'moment';
14
14
  import capitalize from 'lodash/capitalize';
15
+ import 'amis-formula';
16
+ import 'lodash/isPlainObject';
17
+ import { isPureVariable } from './isPureVariable.js';
18
+ import '@rc-component/mini-decimal';
19
+ import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
20
+ import './filter.js';
15
21
 
16
22
  var conditionResolverMap = {};
17
23
  var DEFAULT_RESULT = true;
18
24
  var conditionComputeErrorHandler;
19
- function resolveCondition(conditions, data, defaultResult) {
25
+ function resolveConditionAsync(conditions, data, defaultResult) {
20
26
  if (defaultResult === void 0) { defaultResult = true; }
21
27
  return __awaiter(this, void 0, void 0, function () {
22
28
  var e_1;
@@ -32,7 +38,7 @@ function resolveCondition(conditions, data, defaultResult) {
32
38
  _a.label = 1;
33
39
  case 1:
34
40
  _a.trys.push([1, 3, , 6]);
35
- return [4 /*yield*/, computeConditions(conditions.children, conditions.conjunction, data)];
41
+ return [4 /*yield*/, computeConditionsAsync(conditions.children, conditions.conjunction, data)];
36
42
  case 2: return [2 /*return*/, _a.sent()];
37
43
  case 3:
38
44
  e_1 = _a.sent();
@@ -45,7 +51,26 @@ function resolveCondition(conditions, data, defaultResult) {
45
51
  });
46
52
  });
47
53
  }
48
- function computeConditions(conditions, conjunction, data) {
54
+ function resolveCondition(conditions, data, defaultResult) {
55
+ if (defaultResult === void 0) { defaultResult = true; }
56
+ if (!conditions ||
57
+ !conditions.conjunction ||
58
+ !Array.isArray(conditions.children) ||
59
+ !conditions.children.length) {
60
+ return defaultResult;
61
+ }
62
+ try {
63
+ return computeConditions(conditions.children, conditions.conjunction, data);
64
+ }
65
+ catch (e) {
66
+ // 如果函数未定义,则交给handler
67
+ if (e.name === 'FormulaEvalError') {
68
+ return conditionComputeErrorHandler === null || conditionComputeErrorHandler === void 0 ? void 0 : conditionComputeErrorHandler(conditions.children, conditions.conjunction, data);
69
+ }
70
+ return defaultResult;
71
+ }
72
+ }
73
+ function computeConditionsAsync(conditions, conjunction, data) {
49
74
  if (conjunction === void 0) { conjunction = 'and'; }
50
75
  return __awaiter(this, void 0, void 0, function () {
51
76
  var computeResult, index, len, item, result, _a;
@@ -59,11 +84,11 @@ function computeConditions(conditions, conjunction, data) {
59
84
  if (!(index < len)) return [3 /*break*/, 7];
60
85
  item = conditions[index];
61
86
  if (!(item.conjunction && Array.isArray(item.children) && item.children.length)) return [3 /*break*/, 3];
62
- return [4 /*yield*/, computeConditions(item.children, item.conjunction, data)];
87
+ return [4 /*yield*/, computeConditionsAsync(item.children, item.conjunction, data)];
63
88
  case 2:
64
89
  _a = _b.sent();
65
90
  return [3 /*break*/, 5];
66
- case 3: return [4 /*yield*/, computeCondition(item, index, data)];
91
+ case 3: return [4 /*yield*/, computeConditionAsync(item, index, data)];
67
92
  case 4:
68
93
  _a = _b.sent();
69
94
  _b.label = 5;
@@ -83,7 +108,23 @@ function computeConditions(conditions, conjunction, data) {
83
108
  });
84
109
  });
85
110
  }
86
- function computeCondition(rule, index, data) {
111
+ function computeConditions(conditions, conjunction, data) {
112
+ if (conjunction === void 0) { conjunction = 'and'; }
113
+ var computeResult = true;
114
+ for (var index = 0, len = conditions.length; index < len; index++) {
115
+ var item = conditions[index];
116
+ var result = item.conjunction && Array.isArray(item.children) && item.children.length
117
+ ? computeConditions(item.children, item.conjunction, data)
118
+ : computeCondition(item, index, data);
119
+ computeResult = !!result;
120
+ if ((result && conjunction === 'or') ||
121
+ (!result && conjunction === 'and')) {
122
+ break;
123
+ }
124
+ }
125
+ return computeResult;
126
+ }
127
+ function computeConditionAsync(rule, index, data) {
87
128
  var _a;
88
129
  return __awaiter(this, void 0, void 0, function () {
89
130
  var leftValue, rightValue, func;
@@ -100,6 +141,17 @@ function computeCondition(rule, index, data) {
100
141
  });
101
142
  });
102
143
  }
144
+ function computeCondition(rule, index, data) {
145
+ var _a;
146
+ var leftValue = get(data, rule.left.field);
147
+ var rightValue = isPureVariable(rule.right)
148
+ ? resolveVariableAndFilter(rule.right, data)
149
+ : rule.right;
150
+ var func = (_a = conditionResolverMap["".concat(rule.op, "For").concat(capitalize(rule.left.type))]) !== null && _a !== void 0 ? _a : conditionResolverMap[rule.op];
151
+ return func && typeof func === 'function'
152
+ ? func(leftValue, rightValue, rule.left.type)
153
+ : DEFAULT_RESULT;
154
+ }
103
155
  function startsWithFunc(left, right) {
104
156
  if (left === undefined || right === undefined) {
105
157
  return DEFAULT_RESULT;
@@ -318,4 +370,4 @@ registerConditionComputer('select_not_any_in', selectNotAnyInFunc);
318
370
  registerConditionComputer('starts_with', startsWithFunc);
319
371
  registerConditionComputer('ends_with', endsWithFunc);
320
372
 
321
- export { getConditionComputers, registerConditionComputer, resolveCondition, setConditionComputeErrorHandler };
373
+ export { getConditionComputers, registerConditionComputer, resolveCondition, resolveConditionAsync, setConditionComputeErrorHandler };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,9 +1,9 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
6
- import { toFixed } from '../node_modules/@rc-component/mini-decimal/es/MiniDecimal.js';
6
+ import { toFixed } from '@rc-component/mini-decimal';
7
7
 
8
8
  // 主要用于解决 0.1+0.2 结果的精度问题导致太长
9
9
  function stripNumber(number, precision) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -262,13 +262,14 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
262
262
  };
263
263
  }
264
264
  function insertCustomStyle(prams) {
265
+ var _a;
265
266
  var themeCss = prams.themeCss, classNames = prams.classNames, id = prams.id, defaultData = prams.defaultData, customStyleClassPrefix = prams.customStyleClassPrefix, doc = prams.doc, data = prams.data;
266
267
  if (!themeCss) {
267
268
  return;
268
269
  }
269
270
  var value = formatStyle(themeCss, classNames, id, defaultData, data).value;
270
271
  value = customStyleClassPrefix ? "".concat(customStyleClassPrefix, " ").concat(value) : value;
271
- var classId = id.replace('u:', '');
272
+ var classId = ((_a = id === null || id === void 0 ? void 0 : id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id + '';
272
273
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
273
274
  classId += "-".concat(data.index);
274
275
  }
@@ -323,7 +324,9 @@ function traverseStyle(style, path, result) {
323
324
  * 设置源码编辑自定义样式
324
325
  */
325
326
  function insertEditCustomStyle(params) {
326
- var customStyle = params.customStyle, id = params.id, doc = params.doc, data = params.data;
327
+ var _a, _b;
328
+ var customStyle = params.customStyle, doc = params.doc, data = params.data;
329
+ var id = ((_b = (_a = params.id) === null || _a === void 0 ? void 0 : _a.replace) === null || _b === void 0 ? void 0 : _b.call(_a, 'u:', '')) || params.id + '';
327
330
  var styles = {};
328
331
  traverseStyle(customStyle, '', styles);
329
332
  var content = '';
@@ -332,7 +335,7 @@ function insertEditCustomStyle(params) {
332
335
  index = "-".concat(data.index);
333
336
  }
334
337
  if (!isEmpty(styles)) {
335
- var className_1 = "wrapperCustomStyle-".concat(id === null || id === void 0 ? void 0 : id.replace('u:', '')).concat(index);
338
+ var className_1 = "wrapperCustomStyle-".concat(id).concat(index);
336
339
  Object.keys(styles).forEach(function (key) {
337
340
  if (!isObject(styles[key])) {
338
341
  content += "\n.".concat(className_1, " {\n ").concat(key, ": ").concat(resolveVariableAndFilter(styles[key].replace(/['|"]/g, ''), data, '| raw') || styles[key], "\n}");
@@ -360,16 +363,17 @@ function insertEditCustomStyle(params) {
360
363
  }
361
364
  insertStyle({
362
365
  style: content,
363
- classId: 'wrapperCustomStyle-' + ((id === null || id === void 0 ? void 0 : id.replace('u:', '')) || uuid()) + index,
366
+ classId: 'wrapperCustomStyle-' + (id || uuid()) + index,
364
367
  doc: doc,
365
- id: id === null || id === void 0 ? void 0 : id.replace('u:', '').replace(/(-.*)/, '')
368
+ id: id.replace(/(-.*)/, '')
366
369
  });
367
370
  }
368
371
  /**
369
372
  * 移除自定义样式
370
373
  */
371
374
  function removeCustomStyle(type, id, doc, data) {
372
- var styleId = 'amis-' + (type ? type + '-' : '') + id.replace('u:', '');
375
+ var _a;
376
+ var styleId = 'amis-' + (type ? type + '-' : '') + (((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id + '');
373
377
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
374
378
  styleId += "-".concat(data.index);
375
379
  }
@@ -393,6 +397,7 @@ function formatInputThemeCss(themeCss) {
393
397
  return inputFontThemeCss;
394
398
  }
395
399
  function setThemeClassName(params) {
400
+ var _a;
396
401
  var name = params.name, id = params.id, themeCss = params.themeCss, extra = params.extra, data = params.data;
397
402
  if (!id || !themeCss) {
398
403
  return '';
@@ -404,7 +409,9 @@ function setThemeClassName(params) {
404
409
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
405
410
  index = "-".concat(data.index);
406
411
  }
407
- return "".concat(name, "-").concat(id.replace('u:', '')) + (extra ? "-".concat(extra) : '') + index;
412
+ return ("".concat(name, "-").concat(((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id) +
413
+ (extra ? "-".concat(extra) : '') +
414
+ index);
408
415
  }
409
416
 
410
417
  export { addStyle, findOrCreateStyle, formatInputThemeCss, formatStyle, getValueByPath, inheritValueMap, insertCustomStyle, insertEditCustomStyle, insertStyle, removeCustomStyle, setThemeClassName, valueMap };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,6 +7,7 @@ import 'tslib';
7
7
  import 'amis-formula';
8
8
  import 'moment';
9
9
  import 'lodash/isPlainObject';
10
+ import '@rc-component/mini-decimal';
10
11
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
11
12
  import './filter.js';
12
13
  import mapValues from 'lodash/mapValues';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -9,6 +9,7 @@ import 'moment';
9
9
  import 'lodash/isPlainObject';
10
10
  import { tokenize } from './tokenize.js';
11
11
  export { tokenize } from './tokenize.js';
12
+ import '@rc-component/mini-decimal';
12
13
  import { resolveVariableAndFilterForAsync } from './resolveVariableAndFilterForAsync.js';
13
14
  export { resolveVariableAndFilterForAsync } from './resolveVariableAndFilterForAsync.js';
14
15
  import './filter.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -8,6 +8,7 @@ import template from 'lodash/template';
8
8
  import { getFilters } from 'amis-formula';
9
9
  import moment from 'moment';
10
10
  import 'lodash/isPlainObject';
11
+ import '@rc-component/mini-decimal';
11
12
  import './filter.js';
12
13
 
13
14
  var imports = {
@@ -15,6 +15,13 @@ export declare function evalExpression(expression: string, data?: object): boole
15
15
  * @param data 上下文
16
16
  * @returns
17
17
  */
18
- export declare function evalExpressionWithConditionBuilder(expression: any, data?: object, defaultResult?: boolean): Promise<boolean>;
18
+ export declare function evalExpressionWithConditionBuilderAsync(expression: any, data?: object, defaultResult?: boolean): Promise<boolean>;
19
+ /**
20
+ * 解析表达式(支持condition-builder)
21
+ * @param expression 表达式 or condition-builder对象
22
+ * @param data 上下文
23
+ * @returns
24
+ */
25
+ export declare function evalExpressionWithConditionBuilder(expression: any, data?: object, defaultResult?: boolean): boolean | Promise<boolean>;
19
26
  export declare function setCustomEvalJs(fn: (expression: string, data?: any) => any): void;
20
27
  export declare function evalJS(js: string, data: object): any;
package/esm/utils/tpl.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,7 +7,7 @@ import { __spreadArray, __read, __awaiter, __generator } from 'tslib';
7
7
  import { register } from './tpl-builtin.js';
8
8
  import { register as register$1 } from './tpl-lodash.js';
9
9
  import { getFilters, evaluate } from 'amis-formula';
10
- import { resolveCondition } from './resolveCondition.js';
10
+ import { resolveConditionAsync, resolveCondition } from './resolveCondition.js';
11
11
  import { memoParse } from './tokenize.js';
12
12
 
13
13
  var enginers = {};
@@ -108,19 +108,32 @@ function evalExpression(expression, data) {
108
108
  * @param data 上下文
109
109
  * @returns
110
110
  */
111
- function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
111
+ function evalExpressionWithConditionBuilderAsync(expression, data, defaultResult) {
112
112
  return __awaiter(this, void 0, void 0, function () {
113
113
  return __generator(this, function (_a) {
114
114
  switch (_a.label) {
115
115
  case 0:
116
116
  if (!(Object.prototype.toString.call(expression) === '[object Object]')) return [3 /*break*/, 2];
117
- return [4 /*yield*/, resolveCondition(expression, data, defaultResult)];
117
+ return [4 /*yield*/, resolveConditionAsync(expression, data, defaultResult)];
118
118
  case 1: return [2 /*return*/, _a.sent()];
119
119
  case 2: return [2 /*return*/, evalExpression(String(expression), data)];
120
120
  }
121
121
  });
122
122
  });
123
123
  }
124
+ /**
125
+ * 解析表达式(支持condition-builder)
126
+ * @param expression 表达式 or condition-builder对象
127
+ * @param data 上下文
128
+ * @returns
129
+ */
130
+ function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
131
+ // 支持ConditionBuilder
132
+ if (Object.prototype.toString.call(expression) === '[object Object]') {
133
+ return resolveCondition(expression, data, defaultResult);
134
+ }
135
+ return evalExpression(String(expression), data);
136
+ }
124
137
  function evalFormula(expression, data) {
125
138
  var ast = memoParse(expression, {
126
139
  evalMode: false
@@ -168,4 +181,4 @@ function evalJS(js, data) {
168
181
  });
169
182
  });
170
183
 
171
- export { asyncFilter, evalExpression, evalExpressionWithConditionBuilder, evalJS, filter, registerTplEnginer, setCustomEvalExpression, setCustomEvalJs };
184
+ export { asyncFilter, evalExpression, evalExpressionWithConditionBuilder, evalExpressionWithConditionBuilderAsync, evalJS, filter, registerTplEnginer, setCustomEvalExpression, setCustomEvalJs };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -9,6 +9,7 @@ import { filter } from './tpl.js';
9
9
  import 'amis-formula';
10
10
  import isPlainObject from 'lodash/isPlainObject';
11
11
  import { isPureVariable } from './isPureVariable.js';
12
+ import '@rc-component/mini-decimal';
12
13
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
13
14
  import './filter.js';
14
15
  import memoize from 'lodash/memoize';
package/lib/Root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -30,5 +30,5 @@ export declare class RootRenderer extends React.Component<RootRendererProps> {
30
30
  renderError(): React.ReactNode;
31
31
  renderDialog(): React.ReactNode;
32
32
  renderDrawer(): React.ReactNode;
33
- render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
33
+ render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
34
34
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -26,6 +26,7 @@ var mobx = require('mobx');
26
26
  require('amis-formula');
27
27
  require('moment');
28
28
  require('lodash/isPlainObject');
29
+ require('@rc-component/mini-decimal');
29
30
  var resolveVariableAndFilter = require('./utils/resolveVariableAndFilter.js');
30
31
  require('./utils/filter.js');
31
32
  var style = require('./utils/style.js');
@@ -48,6 +49,7 @@ var RENDERER_TRANSMISSION_OMIT_PROPS = [
48
49
  'className',
49
50
  'style',
50
51
  'data',
52
+ 'originData',
51
53
  'children',
52
54
  'ref',
53
55
  'visible',
@@ -177,9 +179,15 @@ var SchemaRenderer = /** @class */ (function (_super) {
177
179
  this.ref = ref;
178
180
  };
179
181
  SchemaRenderer.prototype.childRef = function (ref) {
182
+ var _this = this;
180
183
  while (ref && ref.getWrappedInstance) {
181
184
  ref = ref.getWrappedInstance();
182
185
  }
186
+ if (ref && !ref.props) {
187
+ Object.defineProperty(ref, 'props', {
188
+ get: function () { return _this.props; }
189
+ });
190
+ }
183
191
  this.cRef = ref;
184
192
  };
185
193
  SchemaRenderer.prototype.dispatchEvent = function (e, data, renderer // for didmount
@@ -262,7 +270,9 @@ var SchemaRenderer = /** @class */ (function (_super) {
262
270
  ? null
263
271
  : React__default["default"].isValidElement(schema.children)
264
272
  ? schema.children
265
- : schema.children(tslib.__assign(tslib.__assign(tslib.__assign({}, rest), exprProps), { $path: $path, $schema: schema, render: this.renderChild, forwardedRef: this.refFn, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
273
+ : typeof schema.children !== 'function'
274
+ ? null
275
+ : schema.children(tslib.__assign(tslib.__assign(tslib.__assign({}, rest), exprProps), { $path: $path, $schema: schema, render: this.renderChild, forwardedRef: this.refFn, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
266
276
  }
267
277
  else if (schema.component && reactIs.isValidElementType(schema.component)) {
268
278
  var isSFC = !(schema.component.prototype instanceof React__default["default"].Component);
@@ -317,10 +327,11 @@ var SchemaRenderer = /** @class */ (function (_super) {
317
327
  if (renderer.storeType) {
318
328
  exprProps = {};
319
329
  }
320
- var isClassComponent = (_e = Component.prototype) === null || _e === void 0 ? void 0 : _e.isReactComponent;
330
+ var supportRef = ((_e = Component.prototype) === null || _e === void 0 ? void 0 : _e.isReactComponent) ||
331
+ Component.$$typeof === Symbol.for('react.forward_ref');
321
332
  var props = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, theme.getRendererConfig(renderer.name)), restSchema), helper.chainEvents(rest, restSchema)), exprProps), {
322
333
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
323
- 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, ref: this.refFn, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent, mobileUI: schema.useMobileUI === false ? false : rest.mobileUI });
334
+ 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 });
324
335
  // style 支持公式
325
336
  if (schema.style) {
326
337
  props.style = style.buildStyle(schema.style, detectData);
@@ -358,7 +369,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
358
369
  finally { if (e_1) throw e_1.error; }
359
370
  }
360
371
  }
361
- var component = isClassComponent ? (_J$X_(Component, tslib.__assign({}, props, { ref: this.childRef }))) : (_J$X_(Component, tslib.__assign({}, props)));
372
+ var component = supportRef ? (_J$X_(Component, tslib.__assign({}, props, { ref: this.childRef }))) : (_J$X_(Component, tslib.__assign({}, props, { forwardedRef: this.childRef })));
362
373
  return this.props.env.enableAMISDebug ? (_J$X_(debug.DebugWrapper, { renderer: renderer }, component)) : (component);
363
374
  };
364
375
  SchemaRenderer.displayName = 'Renderer';
package/lib/Scoped.d.ts CHANGED
@@ -24,7 +24,7 @@ export interface ScopedComponentType extends React.Component<RendererProps> {
24
24
  focus?: () => void;
25
25
  doAction?: (action: ActionObject, data: RendererData, throwErrors?: boolean, args?: any) => void;
26
26
  receive?: (values: RendererData, subPath?: string, replace?: boolean) => void;
27
- reload?: (subPath?: string, query?: RendererData | null, ctx?: RendererData) => void;
27
+ reload?: (subPath?: string, query?: RendererData | null, ctx?: RendererData, silent?: boolean, replace?: boolean, args?: any) => void;
28
28
  context: any;
29
29
  setData?: (value?: object, replace?: boolean, index?: number) => void;
30
30
  }
package/lib/Scoped.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -17,6 +17,7 @@ require('moment');
17
17
  var object = require('./utils/object.js');
18
18
  var tokenize = require('./utils/tokenize.js');
19
19
  var isPureVariable = require('./utils/isPureVariable.js');
20
+ require('@rc-component/mini-decimal');
20
21
  var getVariable = require('./utils/getVariable.js');
21
22
  var dataMapping = require('./utils/dataMapping.js');
22
23
  require('./utils/filter.js');
@@ -160,6 +161,9 @@ function createScopedTools(path, parent, env, rendererType) {
160
161
  unRegisterComponent: function (component) {
161
162
  // 自己本身实际上注册在父级 Scoped 上。
162
163
  if (component.props.$path === path && parent) {
164
+ // 如果是自己,尝试把自己从父级 Scoped 上移除,否则在某些场景下会导致父级的 children 一直增长。
165
+ var idx_1 = parent.children.indexOf(self);
166
+ ~idx_1 && parent.children.splice(idx_1, 1);
163
167
  return parent.unRegisterComponent(component);
164
168
  }
165
169
  var idx = components.indexOf(component);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.6.0
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.4.1
2
+ * amis-core v6.6.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -19,6 +19,7 @@ require('amis-formula');
19
19
  require('moment');
20
20
  var object = require('./utils/object.js');
21
21
  var tokenize = require('./utils/tokenize.js');
22
+ require('@rc-component/mini-decimal');
22
23
  var dataMapping = require('./utils/dataMapping.js');
23
24
  require('./utils/filter.js');
24
25
  var WithRootStore = require('./WithRootStore.js');
@@ -164,7 +165,7 @@ function HocStoreFactory(renderer) {
164
165
  // 目前主要的问题是,如果 combo 中表单项名字和 combo 本身的名字一样,会导致里面的值会被覆盖成数组
165
166
  ((_e = props.store) === null || _e === void 0 ? void 0 : _e.storeType) === 'ComboStore'
166
167
  ? undefined
167
- : helper.syncDataFromSuper(tslib.__assign(tslib.__assign({}, store.data), 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)), ((_f = props.updatePristineAfterStoreDataReInit) !== null && _f !== void 0 ? _f : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
168
169
  }
169
170
  else {
170
171
  store.initData(object.createObject(props.scope, props.data), ((_g = props.updatePristineAfterStoreDataReInit) !== null && _g !== void 0 ? _g : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
@@ -210,11 +211,16 @@ function HocStoreFactory(renderer) {
210
211
  return render(region, node, tslib.__assign(tslib.__assign({ data: this.store.data, dataUpdatedAt: this.store.updatedAt }, subProps), { scope: this.store.data, store: this.store }));
211
212
  };
212
213
  StoreFactory.prototype.render = function () {
213
- var _a = this.props; _a.detectField; var rest = tslib.__rest(_a, ["detectField"]);
214
+ var _a;
215
+ var _b = this.props; _b.detectField; var rest = tslib.__rest(_b, ["detectField"]);
214
216
  if (this.state.hidden || this.state.visible === false) {
215
217
  return null;
216
218
  }
217
- return (_J$X_(Component, tslib.__assign({}, rest /* todo */, this.state, { ref: this.refFn, data: this.store.data, dataUpdatedAt: this.store.updatedAt, store: this.store, scope: this.store.data, render: this.renderChild })));
219
+ var refConfig = ((_a = Component.prototype) === null || _a === void 0 ? void 0 : _a.isReactComponent) ||
220
+ Component.$$typeof === Symbol.for('react.forward_ref')
221
+ ? { ref: this.refFn }
222
+ : { forwardedRef: this.refFn };
223
+ return (_J$X_(Component, tslib.__assign({}, rest /* todo */, this.state, refConfig, { data: this.store.data, dataUpdatedAt: this.store.updatedAt, store: this.store, scope: this.store.data, render: this.renderChild })));
218
224
  };
219
225
  StoreFactory.displayName = "WithStore(".concat(Component.displayName || Component.name, ")");
220
226
  StoreFactory.ComposedComponent = Component;