amis-core 6.4.0 → 6.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 (287) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +1 -1
  3. package/esm/SchemaRenderer.js +15 -5
  4. package/esm/Scoped.d.ts +1 -1
  5. package/esm/Scoped.js +2 -1
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +9 -3
  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 +1 -1
  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 +40 -6
  45. package/esm/renderers/Item.d.ts +27 -60
  46. package/esm/renderers/Item.js +74 -6
  47. package/esm/renderers/Options.js +2 -1
  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 +7 -1
  52. package/esm/store/app.js +2 -1
  53. package/esm/store/combo.js +1 -1
  54. package/esm/store/crud.js +2 -1
  55. package/esm/store/form.js +2 -1
  56. package/esm/store/formItem.js +11 -1
  57. package/esm/store/iRenderer.js +2 -1
  58. package/esm/store/index.js +1 -1
  59. package/esm/store/list.js +1 -1
  60. package/esm/store/manager.js +1 -1
  61. package/esm/store/modal.js +1 -1
  62. package/esm/store/node.js +1 -1
  63. package/esm/store/pagination.js +2 -1
  64. package/esm/store/root.js +2 -1
  65. package/esm/store/service.js +2 -1
  66. package/esm/store/status.js +1 -1
  67. package/esm/store/table.js +2 -1
  68. package/esm/store/table2.js +1 -1
  69. package/esm/theme.js +1 -1
  70. package/esm/types.d.ts +1 -0
  71. package/esm/utils/Animation.js +1 -1
  72. package/esm/utils/ColorScale.js +1 -1
  73. package/esm/utils/DataSchema.js +1 -1
  74. package/esm/utils/DataScope.js +1 -1
  75. package/esm/utils/RootClose.js +1 -1
  76. package/esm/utils/SimpleMap.js +1 -1
  77. package/esm/utils/api.js +21 -3
  78. package/esm/utils/arraySlice.js +1 -1
  79. package/esm/utils/attachmentAdpator.js +1 -1
  80. package/esm/utils/autobind.js +1 -1
  81. package/esm/utils/browser.js +1 -1
  82. package/esm/utils/columnsSplit.js +1 -1
  83. package/esm/utils/concatData.js +1 -1
  84. package/esm/utils/dataMapping.js +1 -1
  85. package/esm/utils/date.d.ts +3 -1
  86. package/esm/utils/date.js +11 -5
  87. package/esm/utils/debug.js +1 -1
  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.js +7 -4
  93. package/esm/utils/filter.js +1 -1
  94. package/esm/utils/formatDuration.js +1 -1
  95. package/esm/utils/formula.js +2 -1
  96. package/esm/utils/getVariable.js +1 -1
  97. package/esm/utils/grammar.js +1 -1
  98. package/esm/utils/handleAction.js +1 -1
  99. package/esm/utils/helper.js +2 -1
  100. package/esm/utils/highlight.js +1 -1
  101. package/esm/utils/icon.js +1 -1
  102. package/esm/utils/image.js +1 -1
  103. package/esm/utils/isPureVariable.js +1 -1
  104. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  105. package/esm/utils/keyToPath.js +1 -1
  106. package/esm/utils/labelToString.js +1 -1
  107. package/esm/utils/makeSorter.js +1 -1
  108. package/esm/utils/math.js +1 -1
  109. package/esm/utils/memoryParse.js +1 -1
  110. package/esm/utils/normalizeLink.js +1 -1
  111. package/esm/utils/normalizeOptions.d.ts +1 -1
  112. package/esm/utils/normalizeOptions.js +3 -2
  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/printElement.js +1 -1
  120. package/esm/utils/renderer-event.js +3 -3
  121. package/esm/utils/replaceText.js +1 -1
  122. package/esm/utils/resize-sensor.js +1 -1
  123. package/esm/utils/resolveCondition.d.ts +2 -1
  124. package/esm/utils/resolveCondition.js +60 -8
  125. package/esm/utils/resolveVariable.js +1 -1
  126. package/esm/utils/resolveVariableAndFilter.js +1 -1
  127. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  128. package/esm/utils/scrollPosition.js +1 -1
  129. package/esm/utils/string2regExp.js +1 -1
  130. package/esm/utils/stripNumber.js +5 -2
  131. package/esm/utils/style-helper.js +5 -3
  132. package/esm/utils/style.js +2 -1
  133. package/esm/utils/toNumber.js +1 -1
  134. package/esm/utils/tokenize.js +1 -1
  135. package/esm/utils/tpl-builtin.js +2 -1
  136. package/esm/utils/tpl-lodash.js +2 -1
  137. package/esm/utils/tpl.d.ts +8 -1
  138. package/esm/utils/tpl.js +18 -5
  139. package/esm/utils/uncontrollable.js +1 -1
  140. package/esm/utils/validateId.js +1 -1
  141. package/esm/utils/validations.js +2 -1
  142. package/lib/Root.js +1 -1
  143. package/lib/RootRenderer.d.ts +1 -1
  144. package/lib/RootRenderer.js +1 -1
  145. package/lib/SchemaRenderer.js +15 -5
  146. package/lib/Scoped.d.ts +1 -1
  147. package/lib/Scoped.js +2 -1
  148. package/lib/StatusScoped.js +1 -1
  149. package/lib/WithRootStore.js +1 -1
  150. package/lib/WithStore.js +9 -3
  151. package/lib/actions/Action.js +5 -4
  152. package/lib/actions/AjaxAction.js +2 -2
  153. package/lib/actions/BreakAction.js +1 -1
  154. package/lib/actions/BroadcastAction.js +1 -1
  155. package/lib/actions/CmptAction.js +2 -2
  156. package/lib/actions/ContinueAction.js +1 -1
  157. package/lib/actions/CopyAction.js +4 -4
  158. package/lib/actions/CustomAction.js +2 -1
  159. package/lib/actions/DialogAction.js +2 -1
  160. package/lib/actions/DrawerAction.js +2 -1
  161. package/lib/actions/EmailAction.js +1 -1
  162. package/lib/actions/EventAction.js +2 -1
  163. package/lib/actions/LinkAction.js +1 -1
  164. package/lib/actions/LoopAction.js +2 -1
  165. package/lib/actions/PageAction.js +1 -1
  166. package/lib/actions/ParallelAction.js +1 -1
  167. package/lib/actions/PrintAction.d.ts +1 -1
  168. package/lib/actions/PrintAction.js +12 -6
  169. package/lib/actions/StatusAction.js +1 -1
  170. package/lib/actions/SwitchAction.js +2 -2
  171. package/lib/actions/ToastAction.js +1 -1
  172. package/lib/actions/WaitAction.js +1 -1
  173. package/lib/components/CustomStyle.js +1 -1
  174. package/lib/components/ErrorBoundary.js +1 -1
  175. package/lib/components/LazyComponent.js +1 -1
  176. package/lib/components/Overlay.js +2 -1
  177. package/lib/components/PopOver.js +2 -1
  178. package/lib/env.d.ts +2 -4
  179. package/lib/env.js +1 -1
  180. package/lib/envOverwrite.js +1 -1
  181. package/lib/factory.js +1 -1
  182. package/lib/index.js +4 -2
  183. package/lib/locale.js +2 -1
  184. package/lib/polyfills.js +1 -1
  185. package/lib/renderers/Form.d.ts +1 -1
  186. package/lib/renderers/Form.js +40 -6
  187. package/lib/renderers/Item.d.ts +27 -60
  188. package/lib/renderers/Item.js +74 -6
  189. package/lib/renderers/Options.js +2 -1
  190. package/lib/renderers/Placeholder.js +1 -1
  191. package/lib/renderers/builtin.js +1 -1
  192. package/lib/renderers/register.js +1 -1
  193. package/lib/renderers/wrapControl.js +7 -1
  194. package/lib/store/app.js +2 -1
  195. package/lib/store/combo.d.ts +25 -24
  196. package/lib/store/combo.js +1 -1
  197. package/lib/store/crud.js +2 -1
  198. package/lib/store/form.d.ts +11 -10
  199. package/lib/store/form.js +2 -1
  200. package/lib/store/formItem.js +11 -1
  201. package/lib/store/iRenderer.js +2 -1
  202. package/lib/store/index.js +1 -1
  203. package/lib/store/list.js +1 -1
  204. package/lib/store/manager.js +1 -1
  205. package/lib/store/modal.js +1 -1
  206. package/lib/store/node.js +1 -1
  207. package/lib/store/pagination.js +2 -1
  208. package/lib/store/root.js +2 -1
  209. package/lib/store/service.js +2 -1
  210. package/lib/store/status.js +1 -1
  211. package/lib/store/table.d.ts +21 -20
  212. package/lib/store/table.js +2 -1
  213. package/lib/store/table2.js +1 -1
  214. package/lib/theme.js +1 -1
  215. package/lib/types.d.ts +1 -0
  216. package/lib/utils/Animation.js +1 -1
  217. package/lib/utils/ColorScale.js +1 -1
  218. package/lib/utils/DataSchema.js +1 -1
  219. package/lib/utils/DataScope.js +1 -1
  220. package/lib/utils/RootClose.js +1 -1
  221. package/lib/utils/SimpleMap.js +1 -1
  222. package/lib/utils/api.js +23 -3
  223. package/lib/utils/arraySlice.js +1 -1
  224. package/lib/utils/attachmentAdpator.js +1 -1
  225. package/lib/utils/autobind.js +1 -1
  226. package/lib/utils/browser.js +1 -1
  227. package/lib/utils/columnsSplit.js +1 -1
  228. package/lib/utils/concatData.js +1 -1
  229. package/lib/utils/dataMapping.js +1 -1
  230. package/lib/utils/date.d.ts +3 -1
  231. package/lib/utils/date.js +11 -5
  232. package/lib/utils/debug.js +1 -1
  233. package/lib/utils/decodeEntity.js +1 -1
  234. package/lib/utils/dom.js +1 -1
  235. package/lib/utils/errors.js +1 -1
  236. package/lib/utils/escapeHtml.js +1 -1
  237. package/lib/utils/filter-schema.js +6 -3
  238. package/lib/utils/filter.js +1 -1
  239. package/lib/utils/formatDuration.js +1 -1
  240. package/lib/utils/formula.js +2 -1
  241. package/lib/utils/getVariable.js +1 -1
  242. package/lib/utils/grammar.js +1 -1
  243. package/lib/utils/handleAction.js +1 -1
  244. package/lib/utils/helper.js +2 -1
  245. package/lib/utils/highlight.js +1 -1
  246. package/lib/utils/icon.js +1 -1
  247. package/lib/utils/image.js +1 -1
  248. package/lib/utils/isPureVariable.js +1 -1
  249. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  250. package/lib/utils/keyToPath.js +1 -1
  251. package/lib/utils/labelToString.js +1 -1
  252. package/lib/utils/makeSorter.js +1 -1
  253. package/lib/utils/math.js +1 -1
  254. package/lib/utils/memoryParse.js +1 -1
  255. package/lib/utils/normalizeLink.js +1 -1
  256. package/lib/utils/normalizeOptions.d.ts +1 -1
  257. package/lib/utils/normalizeOptions.js +3 -2
  258. package/lib/utils/object.js +1 -1
  259. package/lib/utils/offset.js +1 -1
  260. package/lib/utils/offsetParent.js +1 -1
  261. package/lib/utils/optionValueCompare.js +1 -1
  262. package/lib/utils/position.js +1 -1
  263. package/lib/utils/prettyBytes.js +1 -1
  264. package/lib/utils/printElement.js +1 -1
  265. package/lib/utils/renderer-event.js +2 -2
  266. package/lib/utils/replaceText.js +1 -1
  267. package/lib/utils/resize-sensor.js +1 -1
  268. package/lib/utils/resolveCondition.d.ts +2 -1
  269. package/lib/utils/resolveCondition.js +60 -7
  270. package/lib/utils/resolveVariable.js +1 -1
  271. package/lib/utils/resolveVariableAndFilter.js +1 -1
  272. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  273. package/lib/utils/scrollPosition.js +1 -1
  274. package/lib/utils/string2regExp.js +1 -1
  275. package/lib/utils/stripNumber.js +5 -2
  276. package/lib/utils/style-helper.js +5 -3
  277. package/lib/utils/style.js +2 -1
  278. package/lib/utils/toNumber.js +1 -1
  279. package/lib/utils/tokenize.js +1 -1
  280. package/lib/utils/tpl-builtin.js +2 -1
  281. package/lib/utils/tpl-lodash.js +2 -1
  282. package/lib/utils/tpl.d.ts +8 -1
  283. package/lib/utils/tpl.js +17 -3
  284. package/lib/utils/uncontrollable.js +1 -1
  285. package/lib/utils/validateId.js +1 -1
  286. package/lib/utils/validations.js +2 -1
  287. package/package.json +3 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/lib/utils/math.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,7 +1,7 @@
1
1
  import { Options } from '../types';
2
2
  export declare function normalizeOptions(options: string | {
3
3
  [propName: string]: string;
4
- } | Array<string> | Options, share?: {
4
+ } | Array<string | number> | Options, share?: {
5
5
  values: Array<any>;
6
6
  options: Array<any>;
7
7
  }, valueField?: string): Options;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -40,7 +40,8 @@ function normalizeOptions(options, share, valueField) {
40
40
  });
41
41
  }
42
42
  else if (Array.isArray(options) &&
43
- typeof options[0] === 'string') {
43
+ (typeof options[0] === 'string' ||
44
+ typeof options[0] === 'number')) {
44
45
  return options.map(function (item) {
45
46
  var _a;
46
47
  var idx = share.values.indexOf(item);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -341,7 +341,7 @@ function getMatchedEventTargets(tree, ctx, index, condition, oldCondition) {
341
341
  var result;
342
342
  return tslib.__generator(this, function (_a) {
343
343
  switch (_a.label) {
344
- case 0: return [4 /*yield*/, tpl.evalExpressionWithConditionBuilder(condition, object.createObject(ctx, data))];
344
+ case 0: return [4 /*yield*/, tpl.evalExpressionWithConditionBuilderAsync(condition, object.createObject(ctx, data))];
345
345
  case 1:
346
346
  result = _a.sent();
347
347
  result && targets.push(item);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,4 +1,5 @@
1
- export declare function resolveCondition(conditions: any, data: any, defaultResult?: boolean): Promise<boolean>;
1
+ export declare function resolveConditionAsync(conditions: any, data: any, defaultResult?: boolean): Promise<boolean>;
2
+ export declare function resolveCondition(conditions: any, data: any, defaultResult?: boolean): boolean | Promise<boolean>;
2
3
  export declare function registerConditionComputer(op: string, func: (left: any, right: any, fieldType?: string) => boolean, fieldType?: string): void;
3
4
  export declare function getConditionComputers(): {
4
5
  [op: string]: (left: any, right: any, fieldType?: string | undefined) => boolean;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -16,6 +16,12 @@ var startsWith = require('lodash/startsWith');
16
16
  var resolveVariableAndFilterForAsync = require('./resolveVariableAndFilterForAsync.js');
17
17
  var moment = require('moment');
18
18
  var capitalize = require('lodash/capitalize');
19
+ require('amis-formula');
20
+ require('lodash/isPlainObject');
21
+ var isPureVariable = require('./isPureVariable.js');
22
+ require('@rc-component/mini-decimal');
23
+ var resolveVariableAndFilter = require('./resolveVariableAndFilter.js');
24
+ require('./filter.js');
19
25
 
20
26
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
27
 
@@ -30,7 +36,7 @@ var capitalize__default = /*#__PURE__*/_interopDefaultLegacy(capitalize);
30
36
  var conditionResolverMap = {};
31
37
  var DEFAULT_RESULT = true;
32
38
  var conditionComputeErrorHandler;
33
- function resolveCondition(conditions, data, defaultResult) {
39
+ function resolveConditionAsync(conditions, data, defaultResult) {
34
40
  if (defaultResult === void 0) { defaultResult = true; }
35
41
  return tslib.__awaiter(this, void 0, void 0, function () {
36
42
  var e_1;
@@ -46,7 +52,7 @@ function resolveCondition(conditions, data, defaultResult) {
46
52
  _a.label = 1;
47
53
  case 1:
48
54
  _a.trys.push([1, 3, , 6]);
49
- return [4 /*yield*/, computeConditions(conditions.children, conditions.conjunction, data)];
55
+ return [4 /*yield*/, computeConditionsAsync(conditions.children, conditions.conjunction, data)];
50
56
  case 2: return [2 /*return*/, _a.sent()];
51
57
  case 3:
52
58
  e_1 = _a.sent();
@@ -59,7 +65,26 @@ function resolveCondition(conditions, data, defaultResult) {
59
65
  });
60
66
  });
61
67
  }
62
- function computeConditions(conditions, conjunction, data) {
68
+ function resolveCondition(conditions, data, defaultResult) {
69
+ if (defaultResult === void 0) { defaultResult = true; }
70
+ if (!conditions ||
71
+ !conditions.conjunction ||
72
+ !Array.isArray(conditions.children) ||
73
+ !conditions.children.length) {
74
+ return defaultResult;
75
+ }
76
+ try {
77
+ return computeConditions(conditions.children, conditions.conjunction, data);
78
+ }
79
+ catch (e) {
80
+ // 如果函数未定义,则交给handler
81
+ if (e.name === 'FormulaEvalError') {
82
+ return conditionComputeErrorHandler === null || conditionComputeErrorHandler === void 0 ? void 0 : conditionComputeErrorHandler(conditions.children, conditions.conjunction, data);
83
+ }
84
+ return defaultResult;
85
+ }
86
+ }
87
+ function computeConditionsAsync(conditions, conjunction, data) {
63
88
  if (conjunction === void 0) { conjunction = 'and'; }
64
89
  return tslib.__awaiter(this, void 0, void 0, function () {
65
90
  var computeResult, index, len, item, result, _a;
@@ -73,11 +98,11 @@ function computeConditions(conditions, conjunction, data) {
73
98
  if (!(index < len)) return [3 /*break*/, 7];
74
99
  item = conditions[index];
75
100
  if (!(item.conjunction && Array.isArray(item.children) && item.children.length)) return [3 /*break*/, 3];
76
- return [4 /*yield*/, computeConditions(item.children, item.conjunction, data)];
101
+ return [4 /*yield*/, computeConditionsAsync(item.children, item.conjunction, data)];
77
102
  case 2:
78
103
  _a = _b.sent();
79
104
  return [3 /*break*/, 5];
80
- case 3: return [4 /*yield*/, computeCondition(item, index, data)];
105
+ case 3: return [4 /*yield*/, computeConditionAsync(item, index, data)];
81
106
  case 4:
82
107
  _a = _b.sent();
83
108
  _b.label = 5;
@@ -97,7 +122,23 @@ function computeConditions(conditions, conjunction, data) {
97
122
  });
98
123
  });
99
124
  }
100
- function computeCondition(rule, index, data) {
125
+ function computeConditions(conditions, conjunction, data) {
126
+ if (conjunction === void 0) { conjunction = 'and'; }
127
+ var computeResult = true;
128
+ for (var index = 0, len = conditions.length; index < len; index++) {
129
+ var item = conditions[index];
130
+ var result = item.conjunction && Array.isArray(item.children) && item.children.length
131
+ ? computeConditions(item.children, item.conjunction, data)
132
+ : computeCondition(item, index, data);
133
+ computeResult = !!result;
134
+ if ((result && conjunction === 'or') ||
135
+ (!result && conjunction === 'and')) {
136
+ break;
137
+ }
138
+ }
139
+ return computeResult;
140
+ }
141
+ function computeConditionAsync(rule, index, data) {
101
142
  var _a;
102
143
  return tslib.__awaiter(this, void 0, void 0, function () {
103
144
  var leftValue, rightValue, func;
@@ -114,6 +155,17 @@ function computeCondition(rule, index, data) {
114
155
  });
115
156
  });
116
157
  }
158
+ function computeCondition(rule, index, data) {
159
+ var _a;
160
+ var leftValue = get__default["default"](data, rule.left.field);
161
+ var rightValue = isPureVariable.isPureVariable(rule.right)
162
+ ? resolveVariableAndFilter.resolveVariableAndFilter(rule.right, data)
163
+ : rule.right;
164
+ var func = (_a = conditionResolverMap["".concat(rule.op, "For").concat(capitalize__default["default"](rule.left.type))]) !== null && _a !== void 0 ? _a : conditionResolverMap[rule.op];
165
+ return func && typeof func === 'function'
166
+ ? func(leftValue, rightValue, rule.left.type)
167
+ : DEFAULT_RESULT;
168
+ }
117
169
  function startsWithFunc(left, right) {
118
170
  if (left === undefined || right === undefined) {
119
171
  return DEFAULT_RESULT;
@@ -335,4 +387,5 @@ registerConditionComputer('ends_with', endsWithFunc);
335
387
  exports.getConditionComputers = getConditionComputers;
336
388
  exports.registerConditionComputer = registerConditionComputer;
337
389
  exports.resolveCondition = resolveCondition;
390
+ exports.resolveConditionAsync = resolveConditionAsync;
338
391
  exports.setConditionComputeErrorHandler = setConditionComputeErrorHandler;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,11 +7,14 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
+ var miniDecimal = require('@rc-component/mini-decimal');
11
+
10
12
  // 主要用于解决 0.1+0.2 结果的精度问题导致太长
11
13
  function stripNumber(number, precision) {
12
14
  if (precision === void 0) { precision = 16; }
13
15
  if (typeof number === 'number' && !Number.isInteger(number)) {
14
- return parseFloat(number.toPrecision(precision));
16
+ // return parseFloat(number.toPrecision(precision));
17
+ return parseFloat(miniDecimal.toFixed(number.toString(), '.', precision));
15
18
  }
16
19
  else {
17
20
  return number;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -372,9 +372,11 @@ function insertEditCustomStyle(params) {
372
372
  }
373
373
  insertStyle({
374
374
  style: content,
375
- classId: 'wrapperCustomStyle-' + ((id === null || id === void 0 ? void 0 : id.replace('u:', '')) || helper.uuid()) + index,
375
+ classId: 'wrapperCustomStyle-' +
376
+ ((typeof id === 'string' ? id.replace('u:', '') : '') || helper.uuid()) +
377
+ index,
376
378
  doc: doc,
377
- id: id === null || id === void 0 ? void 0 : id.replace('u:', '').replace(/(-.*)/, '')
379
+ id: typeof id === 'string' ? id.replace('u:', '').replace(/(-.*)/, '') : ''
378
380
  });
379
381
  }
380
382
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -11,6 +11,7 @@ require('tslib');
11
11
  require('amis-formula');
12
12
  require('moment');
13
13
  require('lodash/isPlainObject');
14
+ require('@rc-component/mini-decimal');
14
15
  var resolveVariableAndFilter = require('./resolveVariableAndFilter.js');
15
16
  require('./filter.js');
16
17
  var mapValues = require('lodash/mapValues');
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -12,6 +12,7 @@ var amisFormula = require('amis-formula');
12
12
  require('moment');
13
13
  require('lodash/isPlainObject');
14
14
  var tokenize = require('./tokenize.js');
15
+ require('@rc-component/mini-decimal');
15
16
  var resolveVariableAndFilterForAsync = require('./resolveVariableAndFilterForAsync.js');
16
17
  require('./filter.js');
17
18
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -12,6 +12,7 @@ var template = require('lodash/template');
12
12
  var amisFormula = require('amis-formula');
13
13
  var moment = require('moment');
14
14
  require('lodash/isPlainObject');
15
+ require('@rc-component/mini-decimal');
15
16
  require('./filter.js');
16
17
 
17
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -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/lib/utils/tpl.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -112,19 +112,32 @@ function evalExpression(expression, data) {
112
112
  * @param data 上下文
113
113
  * @returns
114
114
  */
115
- function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
115
+ function evalExpressionWithConditionBuilderAsync(expression, data, defaultResult) {
116
116
  return tslib.__awaiter(this, void 0, void 0, function () {
117
117
  return tslib.__generator(this, function (_a) {
118
118
  switch (_a.label) {
119
119
  case 0:
120
120
  if (!(Object.prototype.toString.call(expression) === '[object Object]')) return [3 /*break*/, 2];
121
- return [4 /*yield*/, resolveCondition.resolveCondition(expression, data, defaultResult)];
121
+ return [4 /*yield*/, resolveCondition.resolveConditionAsync(expression, data, defaultResult)];
122
122
  case 1: return [2 /*return*/, _a.sent()];
123
123
  case 2: return [2 /*return*/, evalExpression(String(expression), data)];
124
124
  }
125
125
  });
126
126
  });
127
127
  }
128
+ /**
129
+ * 解析表达式(支持condition-builder)
130
+ * @param expression 表达式 or condition-builder对象
131
+ * @param data 上下文
132
+ * @returns
133
+ */
134
+ function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
135
+ // 支持ConditionBuilder
136
+ if (Object.prototype.toString.call(expression) === '[object Object]') {
137
+ return resolveCondition.resolveCondition(expression, data, defaultResult);
138
+ }
139
+ return evalExpression(String(expression), data);
140
+ }
128
141
  function evalFormula(expression, data) {
129
142
  var ast = tokenize.memoParse(expression, {
130
143
  evalMode: false
@@ -175,6 +188,7 @@ function evalJS(js, data) {
175
188
  exports.asyncFilter = asyncFilter;
176
189
  exports.evalExpression = evalExpression;
177
190
  exports.evalExpressionWithConditionBuilder = evalExpressionWithConditionBuilder;
191
+ exports.evalExpressionWithConditionBuilderAsync = evalExpressionWithConditionBuilderAsync;
178
192
  exports.evalJS = evalJS;
179
193
  exports.filter = filter;
180
194
  exports.registerTplEnginer = registerTplEnginer;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.0
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -13,6 +13,7 @@ var tpl = require('./tpl.js');
13
13
  require('amis-formula');
14
14
  var isPlainObject = require('lodash/isPlainObject');
15
15
  var isPureVariable = require('./isPureVariable.js');
16
+ require('@rc-component/mini-decimal');
16
17
  var resolveVariableAndFilter = require('./resolveVariableAndFilter.js');
17
18
  require('./filter.js');
18
19
  var memoize = require('lodash/memoize');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amis-core",
3
- "version": "6.4.0",
3
+ "version": "6.5.0",
4
4
  "description": "amis-core",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",
@@ -48,7 +48,8 @@
48
48
  "esm"
49
49
  ],
50
50
  "dependencies": {
51
- "amis-formula": "^6.4.0",
51
+ "@rc-component/mini-decimal": "^1.0.1",
52
+ "amis-formula": "^6.5.0",
52
53
  "classnames": "2.3.2",
53
54
  "file-saver": "^2.0.2",
54
55
  "hoist-non-react-statics": "^3.3.2",