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
 
@@ -274,13 +274,14 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
274
274
  };
275
275
  }
276
276
  function insertCustomStyle(prams) {
277
+ var _a;
277
278
  var themeCss = prams.themeCss, classNames = prams.classNames, id = prams.id, defaultData = prams.defaultData, customStyleClassPrefix = prams.customStyleClassPrefix, doc = prams.doc, data = prams.data;
278
279
  if (!themeCss) {
279
280
  return;
280
281
  }
281
282
  var value = formatStyle(themeCss, classNames, id, defaultData, data).value;
282
283
  value = customStyleClassPrefix ? "".concat(customStyleClassPrefix, " ").concat(value) : value;
283
- var classId = id.replace('u:', '');
284
+ var classId = ((_a = id === null || id === void 0 ? void 0 : id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id + '';
284
285
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
285
286
  classId += "-".concat(data.index);
286
287
  }
@@ -335,7 +336,9 @@ function traverseStyle(style, path, result) {
335
336
  * 设置源码编辑自定义样式
336
337
  */
337
338
  function insertEditCustomStyle(params) {
338
- var customStyle = params.customStyle, id = params.id, doc = params.doc, data = params.data;
339
+ var _a, _b;
340
+ var customStyle = params.customStyle, doc = params.doc, data = params.data;
341
+ 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 + '';
339
342
  var styles = {};
340
343
  traverseStyle(customStyle, '', styles);
341
344
  var content = '';
@@ -344,7 +347,7 @@ function insertEditCustomStyle(params) {
344
347
  index = "-".concat(data.index);
345
348
  }
346
349
  if (!isEmpty__default["default"](styles)) {
347
- var className_1 = "wrapperCustomStyle-".concat(id === null || id === void 0 ? void 0 : id.replace('u:', '')).concat(index);
350
+ var className_1 = "wrapperCustomStyle-".concat(id).concat(index);
348
351
  Object.keys(styles).forEach(function (key) {
349
352
  if (!isObject__default["default"](styles[key])) {
350
353
  content += "\n.".concat(className_1, " {\n ").concat(key, ": ").concat(resolveVariableAndFilter.resolveVariableAndFilter(styles[key].replace(/['|"]/g, ''), data, '| raw') || styles[key], "\n}");
@@ -372,16 +375,17 @@ function insertEditCustomStyle(params) {
372
375
  }
373
376
  insertStyle({
374
377
  style: content,
375
- classId: 'wrapperCustomStyle-' + ((id === null || id === void 0 ? void 0 : id.replace('u:', '')) || helper.uuid()) + index,
378
+ classId: 'wrapperCustomStyle-' + (id || helper.uuid()) + index,
376
379
  doc: doc,
377
- id: id === null || id === void 0 ? void 0 : id.replace('u:', '').replace(/(-.*)/, '')
380
+ id: id.replace(/(-.*)/, '')
378
381
  });
379
382
  }
380
383
  /**
381
384
  * 移除自定义样式
382
385
  */
383
386
  function removeCustomStyle(type, id, doc, data) {
384
- var styleId = 'amis-' + (type ? type + '-' : '') + id.replace('u:', '');
387
+ var _a;
388
+ var styleId = 'amis-' + (type ? type + '-' : '') + (((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id + '');
385
389
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
386
390
  styleId += "-".concat(data.index);
387
391
  }
@@ -405,6 +409,7 @@ function formatInputThemeCss(themeCss) {
405
409
  return inputFontThemeCss;
406
410
  }
407
411
  function setThemeClassName(params) {
412
+ var _a;
408
413
  var name = params.name, id = params.id, themeCss = params.themeCss, extra = params.extra, data = params.data;
409
414
  if (!id || !themeCss) {
410
415
  return '';
@@ -416,7 +421,9 @@ function setThemeClassName(params) {
416
421
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
417
422
  index = "-".concat(data.index);
418
423
  }
419
- return "".concat(name, "-").concat(id.replace('u:', '')) + (extra ? "-".concat(extra) : '') + index;
424
+ return ("".concat(name, "-").concat(((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id) +
425
+ (extra ? "-".concat(extra) : '') +
426
+ index);
420
427
  }
421
428
 
422
429
  exports.addStyle = addStyle;
@@ -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
 
@@ -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.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
 
@@ -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.1
2
+ * amis-core v6.6.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.1
2
+ * amis-core v6.6.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.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
 
@@ -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.1",
3
+ "version": "6.6.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.1",
51
+ "@rc-component/mini-decimal": "^1.0.1",
52
+ "amis-formula": "^6.6.0",
52
53
  "classnames": "2.3.2",
53
54
  "file-saver": "^2.0.2",
54
55
  "hoist-non-react-statics": "^3.3.2",
@@ -1,12 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- function _classCallCheck(instance, Constructor) {
7
- if (!(instance instanceof Constructor)) {
8
- throw new TypeError("Cannot call a class as a function");
9
- }
10
- }
11
-
12
- export { _classCallCheck as default };
@@ -1,26 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- import toPropertyKey from './toPropertyKey.js';
7
-
8
- function _defineProperties(target, props) {
9
- for (var i = 0; i < props.length; i++) {
10
- var descriptor = props[i];
11
- descriptor.enumerable = descriptor.enumerable || false;
12
- descriptor.configurable = true;
13
- if ("value" in descriptor) descriptor.writable = true;
14
- Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
15
- }
16
- }
17
- function _createClass(Constructor, protoProps, staticProps) {
18
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
19
- if (staticProps) _defineProperties(Constructor, staticProps);
20
- Object.defineProperty(Constructor, "prototype", {
21
- writable: false
22
- });
23
- return Constructor;
24
- }
25
-
26
- export { _createClass as default };
@@ -1,23 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- import toPropertyKey from './toPropertyKey.js';
7
-
8
- function _defineProperty(obj, key, value) {
9
- key = toPropertyKey(key);
10
- if (key in obj) {
11
- Object.defineProperty(obj, key, {
12
- value: value,
13
- enumerable: true,
14
- configurable: true,
15
- writable: true
16
- });
17
- } else {
18
- obj[key] = value;
19
- }
20
- return obj;
21
- }
22
-
23
- export { _defineProperty as default };
@@ -1,19 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- import _typeof from './typeof.js';
7
-
8
- function toPrimitive(t, r) {
9
- if ("object" != _typeof(t) || !t) return t;
10
- var e = t[Symbol.toPrimitive];
11
- if (void 0 !== e) {
12
- var i = e.call(t, r || "default");
13
- if ("object" != _typeof(i)) return i;
14
- throw new TypeError("@@toPrimitive must return a primitive value.");
15
- }
16
- return ("string" === r ? String : Number)(t);
17
- }
18
-
19
- export { toPrimitive as default };
@@ -1,14 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- import _typeof from './typeof.js';
7
- import toPrimitive from './toPrimitive.js';
8
-
9
- function toPropertyKey(t) {
10
- var i = toPrimitive(t, "string");
11
- return "symbol" == _typeof(i) ? i : i + "";
12
- }
13
-
14
- export { toPropertyKey as default };
@@ -1,16 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- function _typeof(o) {
7
- "@babel/helpers - typeof";
8
-
9
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
10
- return typeof o;
11
- } : function (o) {
12
- return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
13
- }, _typeof(o);
14
- }
15
-
16
- export { _typeof as default };
@@ -1,184 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- import _classCallCheck from '../../../@babel/runtime/helpers/esm/classCallCheck.js';
7
- import _createClass from '../../../@babel/runtime/helpers/esm/createClass.js';
8
- import _defineProperty from '../../../@babel/runtime/helpers/esm/defineProperty.js';
9
- import { trimNumber, isEmpty, isE, num2str, validateNumber } from './numberUtil.js';
10
-
11
- var BigIntDecimal = /*#__PURE__*/function () {
12
- /** BigInt will convert `0009` to `9`. We need record the len of decimal */
13
-
14
- function BigIntDecimal(value) {
15
- _classCallCheck(this, BigIntDecimal);
16
- _defineProperty(this, "origin", '');
17
- _defineProperty(this, "negative", void 0);
18
- _defineProperty(this, "integer", void 0);
19
- _defineProperty(this, "decimal", void 0);
20
- _defineProperty(this, "decimalLen", void 0);
21
- _defineProperty(this, "empty", void 0);
22
- _defineProperty(this, "nan", void 0);
23
- if (isEmpty(value)) {
24
- this.empty = true;
25
- return;
26
- }
27
- this.origin = String(value);
28
-
29
- // Act like Number convert
30
- if (value === '-' || Number.isNaN(value)) {
31
- this.nan = true;
32
- return;
33
- }
34
- var mergedValue = value;
35
-
36
- // We need convert back to Number since it require `toFixed` to handle this
37
- if (isE(mergedValue)) {
38
- mergedValue = Number(mergedValue);
39
- }
40
- mergedValue = typeof mergedValue === 'string' ? mergedValue : num2str(mergedValue);
41
- if (validateNumber(mergedValue)) {
42
- var trimRet = trimNumber(mergedValue);
43
- this.negative = trimRet.negative;
44
- var numbers = trimRet.trimStr.split('.');
45
- this.integer = BigInt(numbers[0]);
46
- var decimalStr = numbers[1] || '0';
47
- this.decimal = BigInt(decimalStr);
48
- this.decimalLen = decimalStr.length;
49
- } else {
50
- this.nan = true;
51
- }
52
- }
53
- _createClass(BigIntDecimal, [{
54
- key: "getMark",
55
- value: function getMark() {
56
- return this.negative ? '-' : '';
57
- }
58
- }, {
59
- key: "getIntegerStr",
60
- value: function getIntegerStr() {
61
- return this.integer.toString();
62
- }
63
-
64
- /**
65
- * @private get decimal string
66
- */
67
- }, {
68
- key: "getDecimalStr",
69
- value: function getDecimalStr() {
70
- return this.decimal.toString().padStart(this.decimalLen, '0');
71
- }
72
-
73
- /**
74
- * @private Align BigIntDecimal with same decimal length. e.g. 12.3 + 5 = 1230000
75
- * This is used for add function only.
76
- */
77
- }, {
78
- key: "alignDecimal",
79
- value: function alignDecimal(decimalLength) {
80
- var str = "".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(decimalLength, '0'));
81
- return BigInt(str);
82
- }
83
- }, {
84
- key: "negate",
85
- value: function negate() {
86
- var clone = new BigIntDecimal(this.toString());
87
- clone.negative = !clone.negative;
88
- return clone;
89
- }
90
- }, {
91
- key: "cal",
92
- value: function cal(offset, calculator, calDecimalLen) {
93
- var maxDecimalLength = Math.max(this.getDecimalStr().length, offset.getDecimalStr().length);
94
- var myAlignedDecimal = this.alignDecimal(maxDecimalLength);
95
- var offsetAlignedDecimal = offset.alignDecimal(maxDecimalLength);
96
- var valueStr = calculator(myAlignedDecimal, offsetAlignedDecimal).toString();
97
- var nextDecimalLength = calDecimalLen(maxDecimalLength);
98
-
99
- // We need fill string length back to `maxDecimalLength` to avoid parser failed
100
- var _trimNumber = trimNumber(valueStr),
101
- negativeStr = _trimNumber.negativeStr,
102
- trimStr = _trimNumber.trimStr;
103
- var hydrateValueStr = "".concat(negativeStr).concat(trimStr.padStart(nextDecimalLength + 1, '0'));
104
- return new BigIntDecimal("".concat(hydrateValueStr.slice(0, -nextDecimalLength), ".").concat(hydrateValueStr.slice(-nextDecimalLength)));
105
- }
106
- }, {
107
- key: "add",
108
- value: function add(value) {
109
- if (this.isInvalidate()) {
110
- return new BigIntDecimal(value);
111
- }
112
- var offset = new BigIntDecimal(value);
113
- if (offset.isInvalidate()) {
114
- return this;
115
- }
116
- return this.cal(offset, function (num1, num2) {
117
- return num1 + num2;
118
- }, function (len) {
119
- return len;
120
- });
121
- }
122
- }, {
123
- key: "multi",
124
- value: function multi(value) {
125
- var target = new BigIntDecimal(value);
126
- if (this.isInvalidate() || target.isInvalidate()) {
127
- return new BigIntDecimal(NaN);
128
- }
129
- return this.cal(target, function (num1, num2) {
130
- return num1 * num2;
131
- }, function (len) {
132
- return len * 2;
133
- });
134
- }
135
- }, {
136
- key: "isEmpty",
137
- value: function isEmpty() {
138
- return this.empty;
139
- }
140
- }, {
141
- key: "isNaN",
142
- value: function isNaN() {
143
- return this.nan;
144
- }
145
- }, {
146
- key: "isInvalidate",
147
- value: function isInvalidate() {
148
- return this.isEmpty() || this.isNaN();
149
- }
150
- }, {
151
- key: "equals",
152
- value: function equals(target) {
153
- return this.toString() === (target === null || target === void 0 ? void 0 : target.toString());
154
- }
155
- }, {
156
- key: "lessEquals",
157
- value: function lessEquals(target) {
158
- return this.add(target.negate().toString()).toNumber() <= 0;
159
- }
160
- }, {
161
- key: "toNumber",
162
- value: function toNumber() {
163
- if (this.isNaN()) {
164
- return NaN;
165
- }
166
- return Number(this.toString());
167
- }
168
- }, {
169
- key: "toString",
170
- value: function toString() {
171
- var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
172
- if (!safe) {
173
- return this.origin;
174
- }
175
- if (this.isInvalidate()) {
176
- return '';
177
- }
178
- return trimNumber("".concat(this.getMark()).concat(this.getIntegerStr(), ".").concat(this.getDecimalStr())).fullStr;
179
- }
180
- }]);
181
- return BigIntDecimal;
182
- }();
183
-
184
- export { BigIntDecimal as default };
@@ -1,56 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- import BigIntDecimal from './BigIntDecimal.js';
7
- export { default as BigIntDecimal } from './BigIntDecimal.js';
8
- import NumberDecimal from './NumberDecimal.js';
9
- export { default as NumberDecimal } from './NumberDecimal.js';
10
- import { trimNumber } from './numberUtil.js';
11
- import { supportBigInt } from './supportUtil.js';
12
-
13
- /* eslint-disable max-classes-per-file */
14
- function getMiniDecimal(value) {
15
- // We use BigInt here.
16
- // Will fallback to Number if not support.
17
- if (supportBigInt()) {
18
- return new BigIntDecimal(value);
19
- }
20
- return new NumberDecimal(value);
21
- }
22
-
23
- /**
24
- * Align the logic of toFixed to around like 1.5 => 2.
25
- * If set `cutOnly`, will just remove the over decimal part.
26
- */
27
- function toFixed(numStr, separatorStr, precision) {
28
- var cutOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
29
- if (numStr === '') {
30
- return '';
31
- }
32
- var _trimNumber = trimNumber(numStr),
33
- negativeStr = _trimNumber.negativeStr,
34
- integerStr = _trimNumber.integerStr,
35
- decimalStr = _trimNumber.decimalStr;
36
- var precisionDecimalStr = "".concat(separatorStr).concat(decimalStr);
37
- var numberWithoutDecimal = "".concat(negativeStr).concat(integerStr);
38
- if (precision >= 0) {
39
- // We will get last + 1 number to check if need advanced number
40
- var advancedNum = Number(decimalStr[precision]);
41
- if (advancedNum >= 5 && !cutOnly) {
42
- var advancedDecimal = getMiniDecimal(numStr).add("".concat(negativeStr, "0.").concat('0'.repeat(precision)).concat(10 - advancedNum));
43
- return toFixed(advancedDecimal.toString(), separatorStr, precision, cutOnly);
44
- }
45
- if (precision === 0) {
46
- return numberWithoutDecimal;
47
- }
48
- return "".concat(numberWithoutDecimal).concat(separatorStr).concat(decimalStr.padEnd(precision, '0').slice(0, precision));
49
- }
50
- if (precisionDecimalStr === '.0') {
51
- return numberWithoutDecimal;
52
- }
53
- return "".concat(numberWithoutDecimal).concat(precisionDecimalStr);
54
- }
55
-
56
- export { getMiniDecimal as default, toFixed };