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,119 +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 { getNumberPrecision, num2str, isEmpty } from './numberUtil.js';
10
-
11
- /**
12
- * We can remove this when IE not support anymore
13
- */
14
- var NumberDecimal = /*#__PURE__*/function () {
15
- function NumberDecimal(value) {
16
- _classCallCheck(this, NumberDecimal);
17
- _defineProperty(this, "origin", '');
18
- _defineProperty(this, "number", void 0);
19
- _defineProperty(this, "empty", void 0);
20
- if (isEmpty(value)) {
21
- this.empty = true;
22
- return;
23
- }
24
- this.origin = String(value);
25
- this.number = Number(value);
26
- }
27
- _createClass(NumberDecimal, [{
28
- key: "negate",
29
- value: function negate() {
30
- return new NumberDecimal(-this.toNumber());
31
- }
32
- }, {
33
- key: "add",
34
- value: function add(value) {
35
- if (this.isInvalidate()) {
36
- return new NumberDecimal(value);
37
- }
38
- var target = Number(value);
39
- if (Number.isNaN(target)) {
40
- return this;
41
- }
42
- var number = this.number + target;
43
-
44
- // [Legacy] Back to safe integer
45
- if (number > Number.MAX_SAFE_INTEGER) {
46
- return new NumberDecimal(Number.MAX_SAFE_INTEGER);
47
- }
48
- if (number < Number.MIN_SAFE_INTEGER) {
49
- return new NumberDecimal(Number.MIN_SAFE_INTEGER);
50
- }
51
- var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));
52
- return new NumberDecimal(number.toFixed(maxPrecision));
53
- }
54
- }, {
55
- key: "multi",
56
- value: function multi(value) {
57
- var target = Number(value);
58
- if (this.isInvalidate() || Number.isNaN(target)) {
59
- return new NumberDecimal(NaN);
60
- }
61
- var number = this.number * target;
62
-
63
- // [Legacy] Back to safe integer
64
- if (number > Number.MAX_SAFE_INTEGER) {
65
- return new NumberDecimal(Number.MAX_SAFE_INTEGER);
66
- }
67
- if (number < Number.MIN_SAFE_INTEGER) {
68
- return new NumberDecimal(Number.MIN_SAFE_INTEGER);
69
- }
70
- var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));
71
- return new NumberDecimal(number.toFixed(maxPrecision));
72
- }
73
- }, {
74
- key: "isEmpty",
75
- value: function isEmpty() {
76
- return this.empty;
77
- }
78
- }, {
79
- key: "isNaN",
80
- value: function isNaN() {
81
- return Number.isNaN(this.number);
82
- }
83
- }, {
84
- key: "isInvalidate",
85
- value: function isInvalidate() {
86
- return this.isEmpty() || this.isNaN();
87
- }
88
- }, {
89
- key: "equals",
90
- value: function equals(target) {
91
- return this.toNumber() === (target === null || target === void 0 ? void 0 : target.toNumber());
92
- }
93
- }, {
94
- key: "lessEquals",
95
- value: function lessEquals(target) {
96
- return this.add(target.negate().toString()).toNumber() <= 0;
97
- }
98
- }, {
99
- key: "toNumber",
100
- value: function toNumber() {
101
- return this.number;
102
- }
103
- }, {
104
- key: "toString",
105
- value: function toString() {
106
- var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
107
- if (!safe) {
108
- return this.origin;
109
- }
110
- if (this.isInvalidate()) {
111
- return '';
112
- }
113
- return num2str(this.number);
114
- }
115
- }]);
116
- return NumberDecimal;
117
- }();
118
-
119
- export { NumberDecimal as default };
@@ -1,105 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- import { supportBigInt } from './supportUtil.js';
7
-
8
- function isEmpty(value) {
9
- return !value && value !== 0 && !Number.isNaN(value) || !String(value).trim();
10
- }
11
-
12
- /**
13
- * Format string number to readable number
14
- */
15
- function trimNumber(numStr) {
16
- var str = numStr.trim();
17
- var negative = str.startsWith('-');
18
- if (negative) {
19
- str = str.slice(1);
20
- }
21
- str = str
22
- // Remove decimal 0. `1.000` => `1.`, `1.100` => `1.1`
23
- .replace(/(\.\d*[^0])0*$/, '$1')
24
- // Remove useless decimal. `1.` => `1`
25
- .replace(/\.0*$/, '')
26
- // Remove integer 0. `0001` => `1`, 000.1' => `.1`
27
- .replace(/^0+/, '');
28
- if (str.startsWith('.')) {
29
- str = "0".concat(str);
30
- }
31
- var trimStr = str || '0';
32
- var splitNumber = trimStr.split('.');
33
- var integerStr = splitNumber[0] || '0';
34
- var decimalStr = splitNumber[1] || '0';
35
- if (integerStr === '0' && decimalStr === '0') {
36
- negative = false;
37
- }
38
- var negativeStr = negative ? '-' : '';
39
- return {
40
- negative: negative,
41
- negativeStr: negativeStr,
42
- trimStr: trimStr,
43
- integerStr: integerStr,
44
- decimalStr: decimalStr,
45
- fullStr: "".concat(negativeStr).concat(trimStr)
46
- };
47
- }
48
- function isE(number) {
49
- var str = String(number);
50
- return !Number.isNaN(Number(str)) && str.includes('e');
51
- }
52
-
53
- /**
54
- * [Legacy] Convert 1e-9 to 0.000000001.
55
- * This may lose some precision if user really want 1e-9.
56
- */
57
- function getNumberPrecision(number) {
58
- var numStr = String(number);
59
- if (isE(number)) {
60
- var precision = Number(numStr.slice(numStr.indexOf('e-') + 2));
61
- var decimalMatch = numStr.match(/\.(\d+)/);
62
- if (decimalMatch !== null && decimalMatch !== void 0 && decimalMatch[1]) {
63
- precision += decimalMatch[1].length;
64
- }
65
- return precision;
66
- }
67
- return numStr.includes('.') && validateNumber(numStr) ? numStr.length - numStr.indexOf('.') - 1 : 0;
68
- }
69
-
70
- /**
71
- * Convert number (includes scientific notation) to -xxx.yyy format
72
- */
73
- function num2str(number) {
74
- var numStr = String(number);
75
- if (isE(number)) {
76
- if (number > Number.MAX_SAFE_INTEGER) {
77
- return String(supportBigInt() ? BigInt(number).toString() : Number.MAX_SAFE_INTEGER);
78
- }
79
- if (number < Number.MIN_SAFE_INTEGER) {
80
- return String(supportBigInt() ? BigInt(number).toString() : Number.MIN_SAFE_INTEGER);
81
- }
82
- numStr = number.toFixed(getNumberPrecision(numStr));
83
- }
84
- return trimNumber(numStr).fullStr;
85
- }
86
- function validateNumber(num) {
87
- if (typeof num === 'number') {
88
- return !Number.isNaN(num);
89
- }
90
-
91
- // Empty
92
- if (!num) {
93
- return false;
94
- }
95
- return (
96
- // Normal type: 11.28
97
- /^\s*-?\d+(\.\d+)?\s*$/.test(num) ||
98
- // Pre-number: 1.
99
- /^\s*-?\d+\.\s*$/.test(num) ||
100
- // Post-number: .1
101
- /^\s*-?\.\d+\s*$/.test(num)
102
- );
103
- }
104
-
105
- export { getNumberPrecision, isE, isEmpty, num2str, trimNumber, validateNumber };
@@ -1,10 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- function supportBigInt() {
7
- return typeof BigInt === 'function';
8
- }
9
-
10
- export { supportBigInt };
@@ -1,16 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- function _classCallCheck(instance, Constructor) {
11
- if (!(instance instanceof Constructor)) {
12
- throw new TypeError("Cannot call a class as a function");
13
- }
14
- }
15
-
16
- exports["default"] = _classCallCheck;
@@ -1,30 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- var toPropertyKey = require('./toPropertyKey.js');
11
-
12
- function _defineProperties(target, props) {
13
- for (var i = 0; i < props.length; i++) {
14
- var descriptor = props[i];
15
- descriptor.enumerable = descriptor.enumerable || false;
16
- descriptor.configurable = true;
17
- if ("value" in descriptor) descriptor.writable = true;
18
- Object.defineProperty(target, toPropertyKey["default"](descriptor.key), descriptor);
19
- }
20
- }
21
- function _createClass(Constructor, protoProps, staticProps) {
22
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
23
- if (staticProps) _defineProperties(Constructor, staticProps);
24
- Object.defineProperty(Constructor, "prototype", {
25
- writable: false
26
- });
27
- return Constructor;
28
- }
29
-
30
- exports["default"] = _createClass;
@@ -1,27 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- var toPropertyKey = require('./toPropertyKey.js');
11
-
12
- function _defineProperty(obj, key, value) {
13
- key = toPropertyKey["default"](key);
14
- if (key in obj) {
15
- Object.defineProperty(obj, key, {
16
- value: value,
17
- enumerable: true,
18
- configurable: true,
19
- writable: true
20
- });
21
- } else {
22
- obj[key] = value;
23
- }
24
- return obj;
25
- }
26
-
27
- exports["default"] = _defineProperty;
@@ -1,23 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- var _typeof = require('./typeof.js');
11
-
12
- function toPrimitive(t, r) {
13
- if ("object" != _typeof["default"](t) || !t) return t;
14
- var e = t[Symbol.toPrimitive];
15
- if (void 0 !== e) {
16
- var i = e.call(t, r || "default");
17
- if ("object" != _typeof["default"](i)) return i;
18
- throw new TypeError("@@toPrimitive must return a primitive value.");
19
- }
20
- return ("string" === r ? String : Number)(t);
21
- }
22
-
23
- exports["default"] = toPrimitive;
@@ -1,18 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- var _typeof = require('./typeof.js');
11
- var toPrimitive = require('./toPrimitive.js');
12
-
13
- function toPropertyKey(t) {
14
- var i = toPrimitive["default"](t, "string");
15
- return "symbol" == _typeof["default"](i) ? i : i + "";
16
- }
17
-
18
- exports["default"] = toPropertyKey;
@@ -1,20 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- function _typeof(o) {
11
- "@babel/helpers - typeof";
12
-
13
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
14
- return typeof o;
15
- } : function (o) {
16
- return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
17
- }, _typeof(o);
18
- }
19
-
20
- exports["default"] = _typeof;
@@ -1,188 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- var classCallCheck = require('../../../@babel/runtime/helpers/esm/classCallCheck.js');
11
- var createClass = require('../../../@babel/runtime/helpers/esm/createClass.js');
12
- var defineProperty = require('../../../@babel/runtime/helpers/esm/defineProperty.js');
13
- var numberUtil = require('./numberUtil.js');
14
-
15
- var BigIntDecimal = /*#__PURE__*/function () {
16
- /** BigInt will convert `0009` to `9`. We need record the len of decimal */
17
-
18
- function BigIntDecimal(value) {
19
- classCallCheck["default"](this, BigIntDecimal);
20
- defineProperty["default"](this, "origin", '');
21
- defineProperty["default"](this, "negative", void 0);
22
- defineProperty["default"](this, "integer", void 0);
23
- defineProperty["default"](this, "decimal", void 0);
24
- defineProperty["default"](this, "decimalLen", void 0);
25
- defineProperty["default"](this, "empty", void 0);
26
- defineProperty["default"](this, "nan", void 0);
27
- if (numberUtil.isEmpty(value)) {
28
- this.empty = true;
29
- return;
30
- }
31
- this.origin = String(value);
32
-
33
- // Act like Number convert
34
- if (value === '-' || Number.isNaN(value)) {
35
- this.nan = true;
36
- return;
37
- }
38
- var mergedValue = value;
39
-
40
- // We need convert back to Number since it require `toFixed` to handle this
41
- if (numberUtil.isE(mergedValue)) {
42
- mergedValue = Number(mergedValue);
43
- }
44
- mergedValue = typeof mergedValue === 'string' ? mergedValue : numberUtil.num2str(mergedValue);
45
- if (numberUtil.validateNumber(mergedValue)) {
46
- var trimRet = numberUtil.trimNumber(mergedValue);
47
- this.negative = trimRet.negative;
48
- var numbers = trimRet.trimStr.split('.');
49
- this.integer = BigInt(numbers[0]);
50
- var decimalStr = numbers[1] || '0';
51
- this.decimal = BigInt(decimalStr);
52
- this.decimalLen = decimalStr.length;
53
- } else {
54
- this.nan = true;
55
- }
56
- }
57
- createClass["default"](BigIntDecimal, [{
58
- key: "getMark",
59
- value: function getMark() {
60
- return this.negative ? '-' : '';
61
- }
62
- }, {
63
- key: "getIntegerStr",
64
- value: function getIntegerStr() {
65
- return this.integer.toString();
66
- }
67
-
68
- /**
69
- * @private get decimal string
70
- */
71
- }, {
72
- key: "getDecimalStr",
73
- value: function getDecimalStr() {
74
- return this.decimal.toString().padStart(this.decimalLen, '0');
75
- }
76
-
77
- /**
78
- * @private Align BigIntDecimal with same decimal length. e.g. 12.3 + 5 = 1230000
79
- * This is used for add function only.
80
- */
81
- }, {
82
- key: "alignDecimal",
83
- value: function alignDecimal(decimalLength) {
84
- var str = "".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(decimalLength, '0'));
85
- return BigInt(str);
86
- }
87
- }, {
88
- key: "negate",
89
- value: function negate() {
90
- var clone = new BigIntDecimal(this.toString());
91
- clone.negative = !clone.negative;
92
- return clone;
93
- }
94
- }, {
95
- key: "cal",
96
- value: function cal(offset, calculator, calDecimalLen) {
97
- var maxDecimalLength = Math.max(this.getDecimalStr().length, offset.getDecimalStr().length);
98
- var myAlignedDecimal = this.alignDecimal(maxDecimalLength);
99
- var offsetAlignedDecimal = offset.alignDecimal(maxDecimalLength);
100
- var valueStr = calculator(myAlignedDecimal, offsetAlignedDecimal).toString();
101
- var nextDecimalLength = calDecimalLen(maxDecimalLength);
102
-
103
- // We need fill string length back to `maxDecimalLength` to avoid parser failed
104
- var _trimNumber = numberUtil.trimNumber(valueStr),
105
- negativeStr = _trimNumber.negativeStr,
106
- trimStr = _trimNumber.trimStr;
107
- var hydrateValueStr = "".concat(negativeStr).concat(trimStr.padStart(nextDecimalLength + 1, '0'));
108
- return new BigIntDecimal("".concat(hydrateValueStr.slice(0, -nextDecimalLength), ".").concat(hydrateValueStr.slice(-nextDecimalLength)));
109
- }
110
- }, {
111
- key: "add",
112
- value: function add(value) {
113
- if (this.isInvalidate()) {
114
- return new BigIntDecimal(value);
115
- }
116
- var offset = new BigIntDecimal(value);
117
- if (offset.isInvalidate()) {
118
- return this;
119
- }
120
- return this.cal(offset, function (num1, num2) {
121
- return num1 + num2;
122
- }, function (len) {
123
- return len;
124
- });
125
- }
126
- }, {
127
- key: "multi",
128
- value: function multi(value) {
129
- var target = new BigIntDecimal(value);
130
- if (this.isInvalidate() || target.isInvalidate()) {
131
- return new BigIntDecimal(NaN);
132
- }
133
- return this.cal(target, function (num1, num2) {
134
- return num1 * num2;
135
- }, function (len) {
136
- return len * 2;
137
- });
138
- }
139
- }, {
140
- key: "isEmpty",
141
- value: function isEmpty() {
142
- return this.empty;
143
- }
144
- }, {
145
- key: "isNaN",
146
- value: function isNaN() {
147
- return this.nan;
148
- }
149
- }, {
150
- key: "isInvalidate",
151
- value: function isInvalidate() {
152
- return this.isEmpty() || this.isNaN();
153
- }
154
- }, {
155
- key: "equals",
156
- value: function equals(target) {
157
- return this.toString() === (target === null || target === void 0 ? void 0 : target.toString());
158
- }
159
- }, {
160
- key: "lessEquals",
161
- value: function lessEquals(target) {
162
- return this.add(target.negate().toString()).toNumber() <= 0;
163
- }
164
- }, {
165
- key: "toNumber",
166
- value: function toNumber() {
167
- if (this.isNaN()) {
168
- return NaN;
169
- }
170
- return Number(this.toString());
171
- }
172
- }, {
173
- key: "toString",
174
- value: function toString() {
175
- var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
176
- if (!safe) {
177
- return this.origin;
178
- }
179
- if (this.isInvalidate()) {
180
- return '';
181
- }
182
- return numberUtil.trimNumber("".concat(this.getMark()).concat(this.getIntegerStr(), ".").concat(this.getDecimalStr())).fullStr;
183
- }
184
- }]);
185
- return BigIntDecimal;
186
- }();
187
-
188
- exports["default"] = BigIntDecimal;
@@ -1,61 +0,0 @@
1
- /**
2
- * amis-core v6.4.1
3
- * Copyright 2018-2024 fex
4
- */
5
-
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- var BigIntDecimal = require('./BigIntDecimal.js');
11
- var NumberDecimal = require('./NumberDecimal.js');
12
- var numberUtil = require('./numberUtil.js');
13
- var supportUtil = require('./supportUtil.js');
14
-
15
- /* eslint-disable max-classes-per-file */
16
- function getMiniDecimal(value) {
17
- // We use BigInt here.
18
- // Will fallback to Number if not support.
19
- if (supportUtil.supportBigInt()) {
20
- return new BigIntDecimal["default"](value);
21
- }
22
- return new NumberDecimal["default"](value);
23
- }
24
-
25
- /**
26
- * Align the logic of toFixed to around like 1.5 => 2.
27
- * If set `cutOnly`, will just remove the over decimal part.
28
- */
29
- function toFixed(numStr, separatorStr, precision) {
30
- var cutOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
31
- if (numStr === '') {
32
- return '';
33
- }
34
- var _trimNumber = numberUtil.trimNumber(numStr),
35
- negativeStr = _trimNumber.negativeStr,
36
- integerStr = _trimNumber.integerStr,
37
- decimalStr = _trimNumber.decimalStr;
38
- var precisionDecimalStr = "".concat(separatorStr).concat(decimalStr);
39
- var numberWithoutDecimal = "".concat(negativeStr).concat(integerStr);
40
- if (precision >= 0) {
41
- // We will get last + 1 number to check if need advanced number
42
- var advancedNum = Number(decimalStr[precision]);
43
- if (advancedNum >= 5 && !cutOnly) {
44
- var advancedDecimal = getMiniDecimal(numStr).add("".concat(negativeStr, "0.").concat('0'.repeat(precision)).concat(10 - advancedNum));
45
- return toFixed(advancedDecimal.toString(), separatorStr, precision, cutOnly);
46
- }
47
- if (precision === 0) {
48
- return numberWithoutDecimal;
49
- }
50
- return "".concat(numberWithoutDecimal).concat(separatorStr).concat(decimalStr.padEnd(precision, '0').slice(0, precision));
51
- }
52
- if (precisionDecimalStr === '.0') {
53
- return numberWithoutDecimal;
54
- }
55
- return "".concat(numberWithoutDecimal).concat(precisionDecimalStr);
56
- }
57
-
58
- exports.BigIntDecimal = BigIntDecimal["default"];
59
- exports.NumberDecimal = NumberDecimal["default"];
60
- exports["default"] = getMiniDecimal;
61
- exports.toFixed = toFixed;