amis-core 6.3.0 → 6.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +1 -1
  3. package/esm/SchemaRenderer.js +3 -2
  4. package/esm/Scoped.d.ts +1 -0
  5. package/esm/Scoped.js +28 -14
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +1 -1
  9. package/esm/actions/Action.js +4 -2
  10. package/esm/actions/AjaxAction.js +29 -19
  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 +1 -1
  16. package/esm/actions/CustomAction.js +1 -1
  17. package/esm/actions/DialogAction.js +30 -14
  18. package/esm/actions/DrawerAction.js +15 -7
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/EventAction.js +1 -1
  21. package/esm/actions/LinkAction.js +1 -1
  22. package/esm/actions/LoopAction.js +1 -1
  23. package/esm/actions/PageAction.js +1 -1
  24. package/esm/actions/ParallelAction.js +1 -1
  25. package/esm/actions/PrintAction.d.ts +2 -2
  26. package/esm/actions/PrintAction.js +6 -6
  27. package/esm/actions/StatusAction.js +1 -1
  28. package/esm/actions/SwitchAction.js +1 -1
  29. package/esm/actions/ToastAction.js +1 -1
  30. package/esm/actions/WaitAction.js +1 -1
  31. package/esm/components/CustomStyle.js +1 -4
  32. package/esm/components/ErrorBoundary.js +1 -1
  33. package/esm/components/LazyComponent.js +1 -1
  34. package/esm/components/Overlay.js +1 -1
  35. package/esm/components/PopOver.js +1 -1
  36. package/esm/env.js +1 -1
  37. package/esm/envOverwrite.js +1 -1
  38. package/esm/factory.d.ts +1 -0
  39. package/esm/factory.js +1 -1
  40. package/esm/index.js +2 -2
  41. package/esm/locale.js +1 -1
  42. package/esm/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +12 -0
  43. package/esm/node_modules/@babel/runtime/helpers/esm/createClass.js +26 -0
  44. package/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +23 -0
  45. package/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +19 -0
  46. package/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +14 -0
  47. package/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +16 -0
  48. package/esm/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +184 -0
  49. package/esm/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +56 -0
  50. package/esm/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +119 -0
  51. package/esm/node_modules/@rc-component/mini-decimal/es/numberUtil.js +105 -0
  52. package/esm/node_modules/@rc-component/mini-decimal/es/supportUtil.js +10 -0
  53. package/esm/polyfills.js +1 -1
  54. package/esm/renderers/Form.d.ts +3 -2
  55. package/esm/renderers/Form.js +55 -44
  56. package/esm/renderers/Item.js +1 -1
  57. package/esm/renderers/Options.js +1 -1
  58. package/esm/renderers/Placeholder.js +1 -1
  59. package/esm/renderers/builtin.js +1 -1
  60. package/esm/renderers/register.js +1 -1
  61. package/esm/renderers/wrapControl.js +31 -27
  62. package/esm/store/app.js +1 -1
  63. package/esm/store/combo.js +1 -1
  64. package/esm/store/crud.js +12 -6
  65. package/esm/store/form.js +1 -1
  66. package/esm/store/formItem.js +1 -1
  67. package/esm/store/iRenderer.js +6 -3
  68. package/esm/store/index.js +1 -1
  69. package/esm/store/list.d.ts +13 -0
  70. package/esm/store/list.js +14 -1
  71. package/esm/store/manager.js +1 -1
  72. package/esm/store/modal.js +1 -1
  73. package/esm/store/node.js +1 -1
  74. package/esm/store/pagination.js +1 -1
  75. package/esm/store/root.js +1 -1
  76. package/esm/store/service.js +1 -1
  77. package/esm/store/status.js +1 -1
  78. package/esm/store/table.d.ts +1 -0
  79. package/esm/store/table.js +5 -1
  80. package/esm/store/table2.js +1 -1
  81. package/esm/theme.js +1 -1
  82. package/esm/types.d.ts +1 -1
  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 +1 -1
  87. package/esm/utils/RootClose.js +1 -1
  88. package/esm/utils/SimpleMap.js +1 -1
  89. package/esm/utils/api.js +1 -1
  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.js +1 -1
  98. package/esm/utils/debug.js +1 -1
  99. package/esm/utils/decodeEntity.js +1 -1
  100. package/esm/utils/dom.js +3 -3
  101. package/esm/utils/errors.js +1 -1
  102. package/esm/utils/escapeHtml.js +1 -1
  103. package/esm/utils/filter-schema.js +1 -1
  104. package/esm/utils/filter.js +1 -1
  105. package/esm/utils/formatDuration.js +1 -1
  106. package/esm/utils/formula.js +1 -1
  107. package/esm/utils/getVariable.js +1 -1
  108. package/esm/utils/grammar.js +1 -1
  109. package/esm/utils/handleAction.js +1 -1
  110. package/esm/utils/helper.js +3 -3
  111. package/esm/utils/highlight.js +1 -1
  112. package/esm/utils/icon.js +1 -1
  113. package/esm/utils/image.js +1 -1
  114. package/esm/utils/isPureVariable.js +1 -1
  115. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  116. package/esm/utils/keyToPath.js +1 -1
  117. package/esm/utils/labelToString.js +1 -1
  118. package/esm/utils/makeSorter.js +1 -1
  119. package/esm/utils/math.js +1 -1
  120. package/esm/utils/memoryParse.js +1 -1
  121. package/esm/utils/normalizeLink.js +1 -1
  122. package/esm/utils/normalizeOptions.js +1 -1
  123. package/esm/utils/object.js +1 -1
  124. package/esm/utils/offset.js +1 -1
  125. package/esm/utils/offsetParent.js +1 -1
  126. package/esm/utils/optionValueCompare.js +1 -1
  127. package/esm/utils/position.js +1 -1
  128. package/esm/utils/prettyBytes.js +1 -1
  129. package/esm/utils/printElement.js +1 -1
  130. package/esm/utils/renderer-event.d.ts +2 -0
  131. package/esm/utils/renderer-event.js +13 -1
  132. package/esm/utils/replaceText.js +1 -1
  133. package/esm/utils/resize-sensor.js +1 -1
  134. package/esm/utils/resolveCondition.js +1 -1
  135. package/esm/utils/resolveVariable.js +1 -1
  136. package/esm/utils/resolveVariableAndFilter.js +1 -1
  137. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  138. package/esm/utils/scrollPosition.js +1 -1
  139. package/esm/utils/string2regExp.js +1 -1
  140. package/esm/utils/stripNumber.js +5 -2
  141. package/esm/utils/style-helper.js +1 -1
  142. package/esm/utils/style.js +1 -1
  143. package/esm/utils/toNumber.js +1 -1
  144. package/esm/utils/tokenize.js +1 -1
  145. package/esm/utils/tpl-builtin.js +1 -1
  146. package/esm/utils/tpl-lodash.js +1 -1
  147. package/esm/utils/tpl.js +4 -4
  148. package/esm/utils/uncontrollable.js +1 -1
  149. package/esm/utils/validateId.js +1 -1
  150. package/esm/utils/validations.js +1 -1
  151. package/lib/Root.js +1 -1
  152. package/lib/RootRenderer.js +1 -1
  153. package/lib/SchemaRenderer.js +3 -2
  154. package/lib/Scoped.d.ts +1 -0
  155. package/lib/Scoped.js +28 -14
  156. package/lib/StatusScoped.js +1 -1
  157. package/lib/WithRootStore.js +1 -1
  158. package/lib/WithStore.js +1 -1
  159. package/lib/actions/Action.js +4 -2
  160. package/lib/actions/AjaxAction.js +29 -19
  161. package/lib/actions/BreakAction.js +1 -1
  162. package/lib/actions/BroadcastAction.js +1 -1
  163. package/lib/actions/CmptAction.js +2 -2
  164. package/lib/actions/ContinueAction.js +1 -1
  165. package/lib/actions/CopyAction.js +1 -1
  166. package/lib/actions/CustomAction.js +1 -1
  167. package/lib/actions/DialogAction.js +30 -14
  168. package/lib/actions/DrawerAction.js +15 -7
  169. package/lib/actions/EmailAction.js +1 -1
  170. package/lib/actions/EventAction.js +1 -1
  171. package/lib/actions/LinkAction.js +1 -1
  172. package/lib/actions/LoopAction.js +1 -1
  173. package/lib/actions/PageAction.js +1 -1
  174. package/lib/actions/ParallelAction.js +1 -1
  175. package/lib/actions/PrintAction.d.ts +2 -2
  176. package/lib/actions/PrintAction.js +6 -6
  177. package/lib/actions/StatusAction.js +1 -1
  178. package/lib/actions/SwitchAction.js +1 -1
  179. package/lib/actions/ToastAction.js +1 -1
  180. package/lib/actions/WaitAction.js +1 -1
  181. package/lib/components/CustomStyle.js +1 -4
  182. package/lib/components/ErrorBoundary.js +1 -1
  183. package/lib/components/LazyComponent.js +1 -1
  184. package/lib/components/Overlay.js +1 -1
  185. package/lib/components/PopOver.js +1 -1
  186. package/lib/env.js +1 -1
  187. package/lib/envOverwrite.js +1 -1
  188. package/lib/factory.d.ts +1 -0
  189. package/lib/factory.js +1 -1
  190. package/lib/index.js +2 -2
  191. package/lib/locale.js +1 -1
  192. package/lib/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +16 -0
  193. package/lib/node_modules/@babel/runtime/helpers/esm/createClass.js +30 -0
  194. package/lib/node_modules/@babel/runtime/helpers/esm/defineProperty.js +27 -0
  195. package/lib/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +23 -0
  196. package/lib/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +18 -0
  197. package/lib/node_modules/@babel/runtime/helpers/esm/typeof.js +20 -0
  198. package/lib/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +188 -0
  199. package/lib/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +61 -0
  200. package/lib/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +123 -0
  201. package/lib/node_modules/@rc-component/mini-decimal/es/numberUtil.js +114 -0
  202. package/lib/node_modules/@rc-component/mini-decimal/es/supportUtil.js +14 -0
  203. package/lib/polyfills.js +1 -1
  204. package/lib/renderers/Form.d.ts +3 -2
  205. package/lib/renderers/Form.js +55 -44
  206. package/lib/renderers/Item.js +1 -1
  207. package/lib/renderers/Options.js +1 -1
  208. package/lib/renderers/Placeholder.js +1 -1
  209. package/lib/renderers/builtin.js +1 -1
  210. package/lib/renderers/register.js +1 -1
  211. package/lib/renderers/wrapControl.js +31 -27
  212. package/lib/store/app.js +1 -1
  213. package/lib/store/combo.js +1 -1
  214. package/lib/store/crud.js +12 -6
  215. package/lib/store/form.js +1 -1
  216. package/lib/store/formItem.js +1 -1
  217. package/lib/store/iRenderer.js +5 -2
  218. package/lib/store/index.js +1 -1
  219. package/lib/store/list.d.ts +13 -0
  220. package/lib/store/list.js +14 -1
  221. package/lib/store/manager.js +1 -1
  222. package/lib/store/modal.js +1 -1
  223. package/lib/store/node.js +1 -1
  224. package/lib/store/pagination.js +1 -1
  225. package/lib/store/root.js +1 -1
  226. package/lib/store/service.js +1 -1
  227. package/lib/store/status.js +1 -1
  228. package/lib/store/table.d.ts +1 -0
  229. package/lib/store/table.js +5 -1
  230. package/lib/store/table2.js +1 -1
  231. package/lib/theme.js +1 -1
  232. package/lib/types.d.ts +1 -1
  233. package/lib/utils/Animation.js +1 -1
  234. package/lib/utils/ColorScale.js +1 -1
  235. package/lib/utils/DataSchema.js +1 -1
  236. package/lib/utils/DataScope.js +1 -1
  237. package/lib/utils/RootClose.js +1 -1
  238. package/lib/utils/SimpleMap.js +1 -1
  239. package/lib/utils/api.js +1 -1
  240. package/lib/utils/arraySlice.js +1 -1
  241. package/lib/utils/attachmentAdpator.js +1 -1
  242. package/lib/utils/autobind.js +1 -1
  243. package/lib/utils/browser.js +1 -1
  244. package/lib/utils/columnsSplit.js +1 -1
  245. package/lib/utils/concatData.js +1 -1
  246. package/lib/utils/dataMapping.js +1 -1
  247. package/lib/utils/date.js +1 -1
  248. package/lib/utils/debug.js +1 -1
  249. package/lib/utils/decodeEntity.js +1 -1
  250. package/lib/utils/dom.js +3 -3
  251. package/lib/utils/errors.js +1 -1
  252. package/lib/utils/escapeHtml.js +1 -1
  253. package/lib/utils/filter-schema.js +1 -1
  254. package/lib/utils/filter.js +1 -1
  255. package/lib/utils/formatDuration.js +1 -1
  256. package/lib/utils/formula.js +1 -1
  257. package/lib/utils/getVariable.js +1 -1
  258. package/lib/utils/grammar.js +1 -1
  259. package/lib/utils/handleAction.js +1 -1
  260. package/lib/utils/helper.js +3 -4
  261. package/lib/utils/highlight.js +1 -1
  262. package/lib/utils/icon.js +1 -1
  263. package/lib/utils/image.js +1 -1
  264. package/lib/utils/isPureVariable.js +1 -1
  265. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  266. package/lib/utils/keyToPath.js +1 -1
  267. package/lib/utils/labelToString.js +1 -1
  268. package/lib/utils/makeSorter.js +1 -1
  269. package/lib/utils/math.js +1 -1
  270. package/lib/utils/memoryParse.js +1 -1
  271. package/lib/utils/normalizeLink.js +1 -1
  272. package/lib/utils/normalizeOptions.js +1 -1
  273. package/lib/utils/object.js +1 -1
  274. package/lib/utils/offset.js +1 -1
  275. package/lib/utils/offsetParent.js +1 -1
  276. package/lib/utils/optionValueCompare.js +1 -1
  277. package/lib/utils/position.js +1 -1
  278. package/lib/utils/prettyBytes.js +1 -1
  279. package/lib/utils/printElement.js +1 -1
  280. package/lib/utils/renderer-event.d.ts +2 -0
  281. package/lib/utils/renderer-event.js +13 -1
  282. package/lib/utils/replaceText.js +1 -1
  283. package/lib/utils/resize-sensor.js +1 -1
  284. package/lib/utils/resolveCondition.js +1 -1
  285. package/lib/utils/resolveVariable.js +1 -1
  286. package/lib/utils/resolveVariableAndFilter.js +1 -1
  287. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  288. package/lib/utils/scrollPosition.js +1 -1
  289. package/lib/utils/string2regExp.js +1 -1
  290. package/lib/utils/stripNumber.js +5 -2
  291. package/lib/utils/style-helper.js +1 -1
  292. package/lib/utils/style.js +1 -1
  293. package/lib/utils/toNumber.js +1 -1
  294. package/lib/utils/tokenize.js +1 -1
  295. package/lib/utils/tpl-builtin.js +1 -1
  296. package/lib/utils/tpl-lodash.js +1 -1
  297. package/lib/utils/tpl.js +4 -4
  298. package/lib/utils/uncontrollable.js +1 -1
  299. package/lib/utils/validateId.js +1 -1
  300. package/lib/utils/validations.js +1 -1
  301. package/package.json +2 -2
@@ -0,0 +1,123 @@
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
+ /**
16
+ * We can remove this when IE not support anymore
17
+ */
18
+ var NumberDecimal = /*#__PURE__*/function () {
19
+ function NumberDecimal(value) {
20
+ classCallCheck["default"](this, NumberDecimal);
21
+ defineProperty["default"](this, "origin", '');
22
+ defineProperty["default"](this, "number", void 0);
23
+ defineProperty["default"](this, "empty", void 0);
24
+ if (numberUtil.isEmpty(value)) {
25
+ this.empty = true;
26
+ return;
27
+ }
28
+ this.origin = String(value);
29
+ this.number = Number(value);
30
+ }
31
+ createClass["default"](NumberDecimal, [{
32
+ key: "negate",
33
+ value: function negate() {
34
+ return new NumberDecimal(-this.toNumber());
35
+ }
36
+ }, {
37
+ key: "add",
38
+ value: function add(value) {
39
+ if (this.isInvalidate()) {
40
+ return new NumberDecimal(value);
41
+ }
42
+ var target = Number(value);
43
+ if (Number.isNaN(target)) {
44
+ return this;
45
+ }
46
+ var number = this.number + target;
47
+
48
+ // [Legacy] Back to safe integer
49
+ if (number > Number.MAX_SAFE_INTEGER) {
50
+ return new NumberDecimal(Number.MAX_SAFE_INTEGER);
51
+ }
52
+ if (number < Number.MIN_SAFE_INTEGER) {
53
+ return new NumberDecimal(Number.MIN_SAFE_INTEGER);
54
+ }
55
+ var maxPrecision = Math.max(numberUtil.getNumberPrecision(this.number), numberUtil.getNumberPrecision(target));
56
+ return new NumberDecimal(number.toFixed(maxPrecision));
57
+ }
58
+ }, {
59
+ key: "multi",
60
+ value: function multi(value) {
61
+ var target = Number(value);
62
+ if (this.isInvalidate() || Number.isNaN(target)) {
63
+ return new NumberDecimal(NaN);
64
+ }
65
+ var number = this.number * target;
66
+
67
+ // [Legacy] Back to safe integer
68
+ if (number > Number.MAX_SAFE_INTEGER) {
69
+ return new NumberDecimal(Number.MAX_SAFE_INTEGER);
70
+ }
71
+ if (number < Number.MIN_SAFE_INTEGER) {
72
+ return new NumberDecimal(Number.MIN_SAFE_INTEGER);
73
+ }
74
+ var maxPrecision = Math.max(numberUtil.getNumberPrecision(this.number), numberUtil.getNumberPrecision(target));
75
+ return new NumberDecimal(number.toFixed(maxPrecision));
76
+ }
77
+ }, {
78
+ key: "isEmpty",
79
+ value: function isEmpty() {
80
+ return this.empty;
81
+ }
82
+ }, {
83
+ key: "isNaN",
84
+ value: function isNaN() {
85
+ return Number.isNaN(this.number);
86
+ }
87
+ }, {
88
+ key: "isInvalidate",
89
+ value: function isInvalidate() {
90
+ return this.isEmpty() || this.isNaN();
91
+ }
92
+ }, {
93
+ key: "equals",
94
+ value: function equals(target) {
95
+ return this.toNumber() === (target === null || target === void 0 ? void 0 : target.toNumber());
96
+ }
97
+ }, {
98
+ key: "lessEquals",
99
+ value: function lessEquals(target) {
100
+ return this.add(target.negate().toString()).toNumber() <= 0;
101
+ }
102
+ }, {
103
+ key: "toNumber",
104
+ value: function toNumber() {
105
+ return this.number;
106
+ }
107
+ }, {
108
+ key: "toString",
109
+ value: function toString() {
110
+ var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
111
+ if (!safe) {
112
+ return this.origin;
113
+ }
114
+ if (this.isInvalidate()) {
115
+ return '';
116
+ }
117
+ return numberUtil.num2str(this.number);
118
+ }
119
+ }]);
120
+ return NumberDecimal;
121
+ }();
122
+
123
+ exports["default"] = NumberDecimal;
@@ -0,0 +1,114 @@
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 supportUtil = require('./supportUtil.js');
11
+
12
+ function isEmpty(value) {
13
+ return !value && value !== 0 && !Number.isNaN(value) || !String(value).trim();
14
+ }
15
+
16
+ /**
17
+ * Format string number to readable number
18
+ */
19
+ function trimNumber(numStr) {
20
+ var str = numStr.trim();
21
+ var negative = str.startsWith('-');
22
+ if (negative) {
23
+ str = str.slice(1);
24
+ }
25
+ str = str
26
+ // Remove decimal 0. `1.000` => `1.`, `1.100` => `1.1`
27
+ .replace(/(\.\d*[^0])0*$/, '$1')
28
+ // Remove useless decimal. `1.` => `1`
29
+ .replace(/\.0*$/, '')
30
+ // Remove integer 0. `0001` => `1`, 000.1' => `.1`
31
+ .replace(/^0+/, '');
32
+ if (str.startsWith('.')) {
33
+ str = "0".concat(str);
34
+ }
35
+ var trimStr = str || '0';
36
+ var splitNumber = trimStr.split('.');
37
+ var integerStr = splitNumber[0] || '0';
38
+ var decimalStr = splitNumber[1] || '0';
39
+ if (integerStr === '0' && decimalStr === '0') {
40
+ negative = false;
41
+ }
42
+ var negativeStr = negative ? '-' : '';
43
+ return {
44
+ negative: negative,
45
+ negativeStr: negativeStr,
46
+ trimStr: trimStr,
47
+ integerStr: integerStr,
48
+ decimalStr: decimalStr,
49
+ fullStr: "".concat(negativeStr).concat(trimStr)
50
+ };
51
+ }
52
+ function isE(number) {
53
+ var str = String(number);
54
+ return !Number.isNaN(Number(str)) && str.includes('e');
55
+ }
56
+
57
+ /**
58
+ * [Legacy] Convert 1e-9 to 0.000000001.
59
+ * This may lose some precision if user really want 1e-9.
60
+ */
61
+ function getNumberPrecision(number) {
62
+ var numStr = String(number);
63
+ if (isE(number)) {
64
+ var precision = Number(numStr.slice(numStr.indexOf('e-') + 2));
65
+ var decimalMatch = numStr.match(/\.(\d+)/);
66
+ if (decimalMatch !== null && decimalMatch !== void 0 && decimalMatch[1]) {
67
+ precision += decimalMatch[1].length;
68
+ }
69
+ return precision;
70
+ }
71
+ return numStr.includes('.') && validateNumber(numStr) ? numStr.length - numStr.indexOf('.') - 1 : 0;
72
+ }
73
+
74
+ /**
75
+ * Convert number (includes scientific notation) to -xxx.yyy format
76
+ */
77
+ function num2str(number) {
78
+ var numStr = String(number);
79
+ if (isE(number)) {
80
+ if (number > Number.MAX_SAFE_INTEGER) {
81
+ return String(supportUtil.supportBigInt() ? BigInt(number).toString() : Number.MAX_SAFE_INTEGER);
82
+ }
83
+ if (number < Number.MIN_SAFE_INTEGER) {
84
+ return String(supportUtil.supportBigInt() ? BigInt(number).toString() : Number.MIN_SAFE_INTEGER);
85
+ }
86
+ numStr = number.toFixed(getNumberPrecision(numStr));
87
+ }
88
+ return trimNumber(numStr).fullStr;
89
+ }
90
+ function validateNumber(num) {
91
+ if (typeof num === 'number') {
92
+ return !Number.isNaN(num);
93
+ }
94
+
95
+ // Empty
96
+ if (!num) {
97
+ return false;
98
+ }
99
+ return (
100
+ // Normal type: 11.28
101
+ /^\s*-?\d+(\.\d+)?\s*$/.test(num) ||
102
+ // Pre-number: 1.
103
+ /^\s*-?\d+\.\s*$/.test(num) ||
104
+ // Post-number: .1
105
+ /^\s*-?\.\d+\s*$/.test(num)
106
+ );
107
+ }
108
+
109
+ exports.getNumberPrecision = getNumberPrecision;
110
+ exports.isE = isE;
111
+ exports.isEmpty = isEmpty;
112
+ exports.num2str = num2str;
113
+ exports.trimNumber = trimNumber;
114
+ exports.validateNumber = validateNumber;
@@ -0,0 +1,14 @@
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 supportBigInt() {
11
+ return typeof BigInt === 'function';
12
+ }
13
+
14
+ exports.supportBigInt = supportBigInt;
package/lib/polyfills.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.3.0
2
+ * amis-core v6.4.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -355,9 +355,10 @@ export default class Form extends React.Component<FormProps, object> {
355
355
  addHook(fn: () => any, type?: 'validate' | 'init' | 'flush', enforce?: 'prev' | 'post'): () => void;
356
356
  removeHook(fn: () => any, type?: string): void;
357
357
  handleChange(value: any, name: string, submit: boolean, changePristine?: boolean): void;
358
- formItemDispatchEvent(type: string, data: any): any;
358
+ formItemDispatchEvent(type: string, data: any): Promise<import("../utils").RendererEvent<any, any>>;
359
359
  emittedData: any;
360
- emitChange(submit: boolean, skipIfNothingChanges?: boolean): Promise<void>;
360
+ emitting: boolean;
361
+ emitChange(submit: boolean, emitedFromWatch?: boolean): Promise<void>;
361
362
  handleBulkChange(values: Object, submit: boolean): void;
362
363
  handleFormSubmit(e: React.UIEvent<any>): any;
363
364
  handleReset(action: any): (data: any) => void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.3.0
2
+ * amis-core v6.4.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -87,6 +87,7 @@ var Form = /** @class */ (function (_super) {
87
87
  // 如果开启了 lazyChange,需要一个 flush 方法把队列中值应用上。
88
88
  _this.flushing = false;
89
89
  _this.emittedData = null;
90
+ _this.emitting = false;
90
91
  _this.onInit = _this.onInit.bind(_this);
91
92
  _this.handleAction = _this.handleAction.bind(_this);
92
93
  _this.handleQuery = _this.handleQuery.bind(_this);
@@ -203,7 +204,6 @@ var Form = /** @class */ (function (_super) {
203
204
  return helper.until(function () { return store.checkRemote(initAsyncApi, store.data); }, function (ret) { return ret && ret[initFinishedField || 'finished']; }, function (cancel) { return (_this.asyncCancel = cancel); }, initCheckInterval);
204
205
  }
205
206
  })
206
- .then(this.dispatchInited)
207
207
  .then(this.initInterval)
208
208
  .then(this.onInit);
209
209
  }
@@ -224,8 +224,8 @@ var Form = /** @class */ (function (_super) {
224
224
  successMessage: fetchSuccess,
225
225
  errorMessage: fetchFailed
226
226
  })
227
- .then(this.dispatchInited)
228
- .then(this.initInterval);
227
+ .then(this.initInterval)
228
+ .then(this.dispatchInited);
229
229
  }
230
230
  };
231
231
  Form.prototype.componentWillUnmount = function () {
@@ -255,20 +255,18 @@ var Form = /** @class */ (function (_super) {
255
255
  Form.prototype.dispatchInited = function (value) {
256
256
  var _a;
257
257
  return tslib.__awaiter(this, void 0, void 0, function () {
258
- var _b, data, store, dispatchEvent;
258
+ var _b, data, store, dispatchEvent, result;
259
259
  return tslib.__generator(this, function (_c) {
260
260
  switch (_c.label) {
261
261
  case 0:
262
262
  _b = this.props, data = _b.data, store = _b.store, dispatchEvent = _b.dispatchEvent;
263
- if (store.fetching) {
263
+ if (!mobxStateTree.isAlive(store) || store.fetching) {
264
264
  return [2 /*return*/, value];
265
265
  }
266
- // 派发init事件,参数为初始化数据
267
266
  return [4 /*yield*/, dispatchEvent('inited', object.createObject(data, tslib.__assign(tslib.__assign({}, value === null || value === void 0 ? void 0 : value.data), { responseData: (_a = value === null || value === void 0 ? void 0 : value.data) !== null && _a !== void 0 ? _a : {}, responseStatus: store.error ? 1 : 0, responseMsg: store.msg })))];
268
267
  case 1:
269
- // 派发init事件,参数为初始化数据
270
- _c.sent();
271
- return [2 /*return*/, value];
268
+ result = _c.sent();
269
+ return [2 /*return*/, result];
272
270
  }
273
271
  });
274
272
  });
@@ -289,7 +287,7 @@ var Form = /** @class */ (function (_super) {
289
287
  };
290
288
  Form.prototype.onInit = function () {
291
289
  return tslib.__awaiter(this, void 0, void 0, function () {
292
- var _a, onInit, store, persistData, submitOnInit, data, initedAt, hooks, groupedHooks;
290
+ var _a, onInit, store, persistData, submitOnInit, data, initedAt, hooks, groupedHooks, dispatch;
293
291
  return tslib.__generator(this, function (_b) {
294
292
  switch (_b.label) {
295
293
  case 0:
@@ -334,6 +332,13 @@ var Form = /** @class */ (function (_super) {
334
332
  data = object.cloneObject(store.data);
335
333
  }
336
334
  onInit && onInit(data, this.props);
335
+ return [4 /*yield*/, this.dispatchInited({ data: data })];
336
+ case 4:
337
+ dispatch = _b.sent();
338
+ if (dispatch === null || dispatch === void 0 ? void 0 : dispatch.prevented) {
339
+ return [2 /*return*/];
340
+ }
341
+ // submitOnInit
337
342
  submitOnInit &&
338
343
  this.handleAction(undefined, {
339
344
  type: 'submit'
@@ -359,7 +364,8 @@ var Form = /** @class */ (function (_super) {
359
364
  store.updateData((_c = {},
360
365
  _c[initFinishedField || 'finished'] = false,
361
366
  _c));
362
- if (!api.isEffectiveApi(initApi, store.data)) return [3 /*break*/, 3];
367
+ result = undefined;
368
+ if (!api.isEffectiveApi(initApi, store.data)) return [3 /*break*/, 2];
363
369
  return [4 /*yield*/, store.fetchInitData(initApi, store.data, {
364
370
  successMessage: fetchSuccess,
365
371
  errorMessage: fetchFailed,
@@ -375,20 +381,18 @@ var Form = /** @class */ (function (_super) {
375
381
  })];
376
382
  case 1:
377
383
  result = _d.sent();
378
- // 派发初始化接口请求完成事件
379
- return [4 /*yield*/, this.dispatchInited(result)];
380
- case 2:
381
- // 派发初始化接口请求完成事件
382
- _d.sent();
383
384
  if (result === null || result === void 0 ? void 0 : result.ok) {
384
385
  this.initInterval(result);
385
386
  store.reset(undefined, false);
386
387
  }
387
- return [3 /*break*/, 4];
388
- case 3:
388
+ return [3 /*break*/, 3];
389
+ case 2:
389
390
  store.reset(undefined, false);
390
- _d.label = 4;
391
- case 4: return [2 /*return*/];
391
+ _d.label = 3;
392
+ case 3:
393
+ // 派发初始化接口请求完成事件
394
+ this.dispatchInited(result);
395
+ return [2 /*return*/];
392
396
  }
393
397
  });
394
398
  });
@@ -490,7 +494,7 @@ var Form = /** @class */ (function (_super) {
490
494
  return tslib.__generator(this, function (_a) {
491
495
  switch (_a.label) {
492
496
  case 0:
493
- _a.trys.push([0, , 3, 4]);
497
+ _a.trys.push([0, , 4, 5]);
494
498
  if (this.flushing) {
495
499
  return [2 /*return*/];
496
500
  }
@@ -499,14 +503,16 @@ var Form = /** @class */ (function (_super) {
499
503
  return [4 /*yield*/, Promise.all(hooks.map(function (fn) { return fn(); }))];
500
504
  case 1:
501
505
  _a.sent();
506
+ if (!!this.emitting) return [3 /*break*/, 3];
502
507
  return [4 /*yield*/, this.lazyEmitChange.flush()];
503
508
  case 2:
504
509
  _a.sent();
505
- return [3 /*break*/, 4];
506
- case 3:
510
+ _a.label = 3;
511
+ case 3: return [3 /*break*/, 5];
512
+ case 4:
507
513
  this.flushing = false;
508
514
  return [7 /*endfinally*/];
509
- case 4: return [2 /*return*/];
515
+ case 5: return [2 /*return*/];
510
516
  }
511
517
  });
512
518
  });
@@ -560,32 +566,34 @@ var Form = /** @class */ (function (_super) {
560
566
  var dispatchEvent = this.props.dispatchEvent;
561
567
  return dispatchEvent(type, data);
562
568
  };
563
- Form.prototype.emitChange = function (submit, skipIfNothingChanges) {
564
- if (skipIfNothingChanges === void 0) { skipIfNothingChanges = false; }
569
+ Form.prototype.emitChange = function (submit, emitedFromWatch) {
570
+ if (emitedFromWatch === void 0) { emitedFromWatch = false; }
565
571
  return tslib.__awaiter(this, void 0, void 0, function () {
566
- var _a, onChange, store, submitOnChange, dispatchEvent, data, diff, changeProps, dispatcher;
572
+ var _a, onChange, store, submitOnChange, dispatchEvent_1, data, diff, changeProps, dispatcher;
567
573
  return tslib.__generator(this, function (_b) {
568
574
  switch (_b.label) {
569
575
  case 0:
570
- _a = this.props, onChange = _a.onChange, store = _a.store, submitOnChange = _a.submitOnChange, dispatchEvent = _a.dispatchEvent, data = _a.data;
576
+ _b.trys.push([0, , 4, 5]);
577
+ this.emitting = true;
578
+ _a = this.props, onChange = _a.onChange, store = _a.store, submitOnChange = _a.submitOnChange, dispatchEvent_1 = _a.dispatchEvent, data = _a.data;
571
579
  if (!mobxStateTree.isAlive(store)) {
572
580
  return [2 /*return*/];
573
581
  }
574
582
  diff = helper.difference(store.data, store.pristine);
575
- if (skipIfNothingChanges &&
583
+ if (emitedFromWatch &&
576
584
  (!Object.keys(diff).length || isEqual__default["default"](store.data, this.emittedData))) {
577
585
  return [2 /*return*/];
578
586
  }
579
587
  this.emittedData = store.data;
580
588
  changeProps = [store.data, diff, this.props];
581
- return [4 /*yield*/, dispatchEvent('change', object.createObject(data, store.data))];
589
+ return [4 /*yield*/, dispatchEvent_1('change', object.createObject(data, store.data))];
582
590
  case 1:
583
591
  dispatcher = _b.sent();
584
592
  if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented)) {
585
593
  onChange && onChange.apply(null, changeProps);
586
594
  }
587
595
  store.clearRestError();
588
- if (!(submit || (submitOnChange && store.inited))) return [3 /*break*/, 3];
596
+ if (!(!emitedFromWatch && (submit || (submitOnChange && store.inited)))) return [3 /*break*/, 3];
589
597
  return [4 /*yield*/, this.handleAction(undefined, {
590
598
  type: 'submit',
591
599
  // 如果这里不跳过,会相互依赖死循环,flush 会 让 emiteChange 立即执行
@@ -595,7 +603,11 @@ var Form = /** @class */ (function (_super) {
595
603
  case 2:
596
604
  _b.sent();
597
605
  _b.label = 3;
598
- case 3: return [2 /*return*/];
606
+ case 3: return [3 /*break*/, 5];
607
+ case 4:
608
+ this.emitting = false;
609
+ return [7 /*endfinally*/];
610
+ case 5: return [2 /*return*/];
599
611
  }
600
612
  });
601
613
  });
@@ -640,7 +652,7 @@ var Form = /** @class */ (function (_super) {
640
652
  var _a, _b;
641
653
  if (throwErrors === void 0) { throwErrors = false; }
642
654
  return tslib.__awaiter(this, void 0, void 0, function () {
643
- var _c, store, onSubmit, api$1, asyncApi, finishedField, checkInterval, _d, saveSuccess, saveFailed, resetAfterSubmit, clearAfterSubmit, onAction, onSaved, onReset, onFinished, onFailed, redirect, reload, target, env, onChange, clearPersistDataAfterSubmit, trimValues, dispatchEvent, __, fields, validationRes, dispatcher, _e, dispatchEvent_1, onEvent, submitEvent, dispatcher, successMsg, failMsg;
655
+ var _c, store, onSubmit, api$1, asyncApi, finishedField, checkInterval, _d, saveSuccess, saveFailed, resetAfterSubmit, clearAfterSubmit, onAction, onSaved, onReset, onFinished, onFailed, redirect, reload, target, env, onChange, clearPersistDataAfterSubmit, trimValues, dispatchEvent, __, fields, validationRes, dispatcher, _e, dispatchEvent_2, onEvent, submitEvent, dispatcher, successMsg, failMsg;
644
656
  var _this = this;
645
657
  return tslib.__generator(this, function (_f) {
646
658
  switch (_f.label) {
@@ -688,9 +700,9 @@ var Form = /** @class */ (function (_super) {
688
700
  action.actionType === 'confirm' ||
689
701
  action.actionType === 'reset-and-submit' ||
690
702
  action.actionType === 'clear-and-submit')) return [3 /*break*/, 8];
691
- _e = this.props, dispatchEvent_1 = _e.dispatchEvent, onEvent = _e.onEvent;
703
+ _e = this.props, dispatchEvent_2 = _e.dispatchEvent, onEvent = _e.onEvent;
692
704
  submitEvent = (_b = (_a = onEvent === null || onEvent === void 0 ? void 0 : onEvent.submit) === null || _a === void 0 ? void 0 : _a.actions) === null || _b === void 0 ? void 0 : _b.length;
693
- return [4 /*yield*/, dispatchEvent_1('submit', this.props.data)];
705
+ return [4 /*yield*/, dispatchEvent_2('submit', this.props.data)];
694
706
  case 7:
695
707
  dispatcher = _f.sent();
696
708
  if ((dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented) || submitEvent) {
@@ -720,12 +732,12 @@ var Form = /** @class */ (function (_super) {
720
732
  _b.label = 2;
721
733
  case 2:
722
734
  // 走到这里代表校验成功了
723
- dispatchEvent_1('validateSucc', this.props.data);
735
+ dispatchEvent_2('validateSucc', this.props.data);
724
736
  if (target) {
725
737
  this.submitToTarget(Scoped.filterTarget(target, values), values);
726
738
  /** 可能配置页面跳转事件,页面路由变化导致persistKey不一致,无法清除持久化数据,所以提交成功事件之前先清理一下 */
727
739
  clearPersistDataAfterSubmit && store.clearLocalPersistData();
728
- dispatchEvent_1('submitSucc', object.createObject(this.props.data, values));
740
+ dispatchEvent_2('submitSucc', object.createObject(this.props.data, values));
729
741
  }
730
742
  else if (action.actionType === 'reload') {
731
743
  action.target &&
@@ -776,7 +788,7 @@ var Form = /** @class */ (function (_super) {
776
788
  switch (_a.label) {
777
789
  case 0:
778
790
  clearPersistDataAfterSubmit && store.clearLocalPersistData();
779
- return [4 /*yield*/, dispatchEvent_1('submitSucc', object.createObject(this.props.data, { result: result }))];
791
+ return [4 /*yield*/, dispatchEvent_2('submitSucc', object.createObject(this.props.data, { result: result }))];
780
792
  case 1:
781
793
  dispatcher = _a.sent();
782
794
  if (!api.isEffectiveApi(finnalAsyncApi_1, store.data) ||
@@ -788,7 +800,7 @@ var Form = /** @class */ (function (_super) {
788
800
  }
789
801
  cbResult = helper.until(function () { return store.checkRemote(finnalAsyncApi_1, store.data); }, function (ret) { return ret && ret[finishedField || 'finished']; }, function (cancel) { return (_this.asyncCancel = cancel); }, checkInterval).then(function (value) {
790
802
  // 派发asyncApiFinished事件
791
- dispatchEvent_1('asyncApiFinished', store.data);
803
+ dispatchEvent_2('asyncApiFinished', store.data);
792
804
  });
793
805
  return [2 /*return*/, {
794
806
  cbResult: cbResult,
@@ -801,7 +813,7 @@ var Form = /** @class */ (function (_super) {
801
813
  var dispatcher;
802
814
  return tslib.__generator(this, function (_a) {
803
815
  switch (_a.label) {
804
- case 0: return [4 /*yield*/, dispatchEvent_1('submitFail', object.createObject(this.props.data, { error: result }))];
816
+ case 0: return [4 /*yield*/, dispatchEvent_2('submitFail', object.createObject(this.props.data, { error: result }))];
805
817
  case 1:
806
818
  dispatcher = _a.sent();
807
819
  return [2 /*return*/, {
@@ -841,7 +853,7 @@ var Form = /** @class */ (function (_super) {
841
853
  else {
842
854
  clearPersistDataAfterSubmit && store.clearLocalPersistData();
843
855
  // type为submit,但是没有配api以及target时,只派发事件
844
- dispatchEvent_1('submitSucc', object.createObject(this.props.data, values));
856
+ dispatchEvent_2('submitSucc', object.createObject(this.props.data, values));
845
857
  }
846
858
  return [2 /*return*/, Promise.resolve(null)];
847
859
  }
@@ -1473,8 +1485,7 @@ var FormRenderer = /** @class */ (function (_super) {
1473
1485
  onChange(store.data, helper.difference(store.data, store.pristine), this.props);
1474
1486
  };
1475
1487
  FormRenderer.prototype.getData = function () {
1476
- var store = this.props.store;
1477
- return store.data;
1488
+ return this.getValues();
1478
1489
  };
1479
1490
  FormRenderer.contextType = Scoped.ScopedContext;
1480
1491
  FormRenderer = tslib.__decorate([
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.3.0
2
+ * amis-core v6.4.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.3.0
2
+ * amis-core v6.4.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.3.0
2
+ * amis-core v6.4.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.3.0
2
+ * amis-core v6.4.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.3.0
2
+ * amis-core v6.4.1
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5