amis-core 6.4.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.
- package/esm/Root.js +1 -1
- package/esm/RootRenderer.js +1 -1
- package/esm/SchemaRenderer.js +1 -1
- package/esm/Scoped.js +1 -1
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +1 -1
- package/esm/actions/Action.js +1 -1
- package/esm/actions/AjaxAction.js +1 -1
- package/esm/actions/BreakAction.js +1 -1
- package/esm/actions/BroadcastAction.js +1 -1
- package/esm/actions/CmptAction.js +1 -1
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +1 -1
- package/esm/actions/CustomAction.js +1 -1
- package/esm/actions/DialogAction.js +1 -1
- package/esm/actions/DrawerAction.js +1 -1
- package/esm/actions/EmailAction.js +1 -1
- package/esm/actions/EventAction.js +1 -1
- package/esm/actions/LinkAction.js +1 -1
- package/esm/actions/LoopAction.js +1 -1
- package/esm/actions/PageAction.js +1 -1
- package/esm/actions/ParallelAction.js +1 -1
- package/esm/actions/PrintAction.js +1 -1
- package/esm/actions/StatusAction.js +1 -1
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +1 -1
- package/esm/actions/WaitAction.js +1 -1
- package/esm/components/CustomStyle.js +1 -1
- package/esm/components/ErrorBoundary.js +1 -1
- package/esm/components/LazyComponent.js +1 -1
- package/esm/components/Overlay.js +1 -1
- package/esm/components/PopOver.js +1 -1
- package/esm/env.js +1 -1
- package/esm/envOverwrite.js +1 -1
- package/esm/factory.js +1 -1
- package/esm/index.js +2 -2
- package/esm/locale.js +1 -1
- package/esm/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +12 -0
- package/esm/node_modules/@babel/runtime/helpers/esm/createClass.js +26 -0
- package/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +23 -0
- package/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +19 -0
- package/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +14 -0
- package/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +16 -0
- package/esm/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +184 -0
- package/esm/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +56 -0
- package/esm/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +119 -0
- package/esm/node_modules/@rc-component/mini-decimal/es/numberUtil.js +105 -0
- package/esm/node_modules/@rc-component/mini-decimal/es/supportUtil.js +10 -0
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.js +1 -1
- package/esm/renderers/Item.js +1 -1
- package/esm/renderers/Options.js +1 -1
- package/esm/renderers/Placeholder.js +1 -1
- package/esm/renderers/builtin.js +1 -1
- package/esm/renderers/register.js +1 -1
- package/esm/renderers/wrapControl.js +1 -1
- package/esm/store/app.js +1 -1
- package/esm/store/combo.js +1 -1
- package/esm/store/crud.js +1 -1
- package/esm/store/form.js +1 -1
- package/esm/store/formItem.js +1 -1
- package/esm/store/iRenderer.js +1 -1
- package/esm/store/index.js +1 -1
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.js +1 -1
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.js +1 -1
- package/esm/store/root.js +1 -1
- package/esm/store/service.js +1 -1
- package/esm/store/status.js +1 -1
- package/esm/store/table.js +1 -1
- package/esm/store/table2.js +1 -1
- package/esm/theme.js +1 -1
- package/esm/utils/Animation.js +1 -1
- package/esm/utils/ColorScale.js +1 -1
- package/esm/utils/DataSchema.js +1 -1
- package/esm/utils/DataScope.js +1 -1
- package/esm/utils/RootClose.js +1 -1
- package/esm/utils/SimpleMap.js +1 -1
- package/esm/utils/api.js +1 -1
- package/esm/utils/arraySlice.js +1 -1
- package/esm/utils/attachmentAdpator.js +1 -1
- package/esm/utils/autobind.js +1 -1
- package/esm/utils/browser.js +1 -1
- package/esm/utils/columnsSplit.js +1 -1
- package/esm/utils/concatData.js +1 -1
- package/esm/utils/dataMapping.js +1 -1
- package/esm/utils/date.js +1 -1
- package/esm/utils/debug.js +1 -1
- package/esm/utils/decodeEntity.js +1 -1
- package/esm/utils/dom.js +1 -1
- package/esm/utils/errors.js +1 -1
- package/esm/utils/escapeHtml.js +1 -1
- package/esm/utils/filter-schema.js +1 -1
- package/esm/utils/filter.js +1 -1
- package/esm/utils/formatDuration.js +1 -1
- package/esm/utils/formula.js +1 -1
- package/esm/utils/getVariable.js +1 -1
- package/esm/utils/grammar.js +1 -1
- package/esm/utils/handleAction.js +1 -1
- package/esm/utils/helper.js +1 -1
- package/esm/utils/highlight.js +1 -1
- package/esm/utils/icon.js +1 -1
- package/esm/utils/image.js +1 -1
- package/esm/utils/isPureVariable.js +1 -1
- package/esm/utils/json-schema-2-amis-schema.js +1 -1
- package/esm/utils/keyToPath.js +1 -1
- package/esm/utils/labelToString.js +1 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +1 -1
- package/esm/utils/memoryParse.js +1 -1
- package/esm/utils/normalizeLink.js +1 -1
- package/esm/utils/normalizeOptions.js +1 -1
- package/esm/utils/object.js +1 -1
- package/esm/utils/offset.js +1 -1
- package/esm/utils/offsetParent.js +1 -1
- package/esm/utils/optionValueCompare.js +1 -1
- package/esm/utils/position.js +1 -1
- package/esm/utils/prettyBytes.js +1 -1
- package/esm/utils/printElement.js +1 -1
- package/esm/utils/renderer-event.js +1 -1
- package/esm/utils/replaceText.js +1 -1
- package/esm/utils/resize-sensor.js +1 -1
- package/esm/utils/resolveCondition.js +1 -1
- package/esm/utils/resolveVariable.js +1 -1
- package/esm/utils/resolveVariableAndFilter.js +1 -1
- package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/esm/utils/scrollPosition.js +1 -1
- package/esm/utils/string2regExp.js +1 -1
- package/esm/utils/stripNumber.js +5 -2
- package/esm/utils/style-helper.js +1 -1
- package/esm/utils/style.js +1 -1
- package/esm/utils/toNumber.js +1 -1
- package/esm/utils/tokenize.js +1 -1
- package/esm/utils/tpl-builtin.js +1 -1
- package/esm/utils/tpl-lodash.js +1 -1
- package/esm/utils/tpl.js +1 -1
- package/esm/utils/uncontrollable.js +1 -1
- package/esm/utils/validateId.js +1 -1
- package/esm/utils/validations.js +1 -1
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +1 -1
- package/lib/SchemaRenderer.js +1 -1
- package/lib/Scoped.js +1 -1
- package/lib/StatusScoped.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +1 -1
- package/lib/actions/Action.js +1 -1
- package/lib/actions/AjaxAction.js +1 -1
- package/lib/actions/BreakAction.js +1 -1
- package/lib/actions/BroadcastAction.js +1 -1
- package/lib/actions/CmptAction.js +1 -1
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +1 -1
- package/lib/actions/CustomAction.js +1 -1
- package/lib/actions/DialogAction.js +1 -1
- package/lib/actions/DrawerAction.js +1 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/EventAction.js +1 -1
- package/lib/actions/LinkAction.js +1 -1
- package/lib/actions/LoopAction.js +1 -1
- package/lib/actions/PageAction.js +1 -1
- package/lib/actions/ParallelAction.js +1 -1
- package/lib/actions/PrintAction.js +1 -1
- package/lib/actions/StatusAction.js +1 -1
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +1 -1
- package/lib/actions/WaitAction.js +1 -1
- package/lib/components/CustomStyle.js +1 -1
- package/lib/components/ErrorBoundary.js +1 -1
- package/lib/components/LazyComponent.js +1 -1
- package/lib/components/Overlay.js +1 -1
- package/lib/components/PopOver.js +1 -1
- package/lib/env.js +1 -1
- package/lib/envOverwrite.js +1 -1
- package/lib/factory.js +1 -1
- package/lib/index.js +2 -2
- package/lib/locale.js +1 -1
- package/lib/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +16 -0
- package/lib/node_modules/@babel/runtime/helpers/esm/createClass.js +30 -0
- package/lib/node_modules/@babel/runtime/helpers/esm/defineProperty.js +27 -0
- package/lib/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +23 -0
- package/lib/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +18 -0
- package/lib/node_modules/@babel/runtime/helpers/esm/typeof.js +20 -0
- package/lib/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +188 -0
- package/lib/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +61 -0
- package/lib/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +123 -0
- package/lib/node_modules/@rc-component/mini-decimal/es/numberUtil.js +114 -0
- package/lib/node_modules/@rc-component/mini-decimal/es/supportUtil.js +14 -0
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.js +1 -1
- package/lib/renderers/Item.js +1 -1
- package/lib/renderers/Options.js +1 -1
- package/lib/renderers/Placeholder.js +1 -1
- package/lib/renderers/builtin.js +1 -1
- package/lib/renderers/register.js +1 -1
- package/lib/renderers/wrapControl.js +1 -1
- package/lib/store/app.js +1 -1
- package/lib/store/combo.d.ts +25 -24
- package/lib/store/combo.js +1 -1
- package/lib/store/crud.js +1 -1
- package/lib/store/form.d.ts +11 -10
- package/lib/store/form.js +1 -1
- package/lib/store/formItem.js +1 -1
- package/lib/store/iRenderer.js +1 -1
- package/lib/store/index.js +1 -1
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.js +1 -1
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.js +1 -1
- package/lib/store/root.js +1 -1
- package/lib/store/service.js +1 -1
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +21 -20
- package/lib/store/table.js +1 -1
- package/lib/store/table2.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/utils/Animation.js +1 -1
- package/lib/utils/ColorScale.js +1 -1
- package/lib/utils/DataSchema.js +1 -1
- package/lib/utils/DataScope.js +1 -1
- package/lib/utils/RootClose.js +1 -1
- package/lib/utils/SimpleMap.js +1 -1
- package/lib/utils/api.js +1 -1
- package/lib/utils/arraySlice.js +1 -1
- package/lib/utils/attachmentAdpator.js +1 -1
- package/lib/utils/autobind.js +1 -1
- package/lib/utils/browser.js +1 -1
- package/lib/utils/columnsSplit.js +1 -1
- package/lib/utils/concatData.js +1 -1
- package/lib/utils/dataMapping.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/debug.js +1 -1
- package/lib/utils/decodeEntity.js +1 -1
- package/lib/utils/dom.js +1 -1
- package/lib/utils/errors.js +1 -1
- package/lib/utils/escapeHtml.js +1 -1
- package/lib/utils/filter-schema.js +1 -1
- package/lib/utils/filter.js +1 -1
- package/lib/utils/formatDuration.js +1 -1
- package/lib/utils/formula.js +1 -1
- package/lib/utils/getVariable.js +1 -1
- package/lib/utils/grammar.js +1 -1
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/helper.js +1 -1
- package/lib/utils/highlight.js +1 -1
- package/lib/utils/icon.js +1 -1
- package/lib/utils/image.js +1 -1
- package/lib/utils/isPureVariable.js +1 -1
- package/lib/utils/json-schema-2-amis-schema.js +1 -1
- package/lib/utils/keyToPath.js +1 -1
- package/lib/utils/labelToString.js +1 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +1 -1
- package/lib/utils/memoryParse.js +1 -1
- package/lib/utils/normalizeLink.js +1 -1
- package/lib/utils/normalizeOptions.js +1 -1
- package/lib/utils/object.js +1 -1
- package/lib/utils/offset.js +1 -1
- package/lib/utils/offsetParent.js +1 -1
- package/lib/utils/optionValueCompare.js +1 -1
- package/lib/utils/position.js +1 -1
- package/lib/utils/prettyBytes.js +1 -1
- package/lib/utils/printElement.js +1 -1
- package/lib/utils/renderer-event.js +1 -1
- package/lib/utils/replaceText.js +1 -1
- package/lib/utils/resize-sensor.js +1 -1
- package/lib/utils/resolveCondition.js +1 -1
- package/lib/utils/resolveVariable.js +1 -1
- package/lib/utils/resolveVariableAndFilter.js +1 -1
- package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/lib/utils/scrollPosition.js +1 -1
- package/lib/utils/string2regExp.js +1 -1
- package/lib/utils/stripNumber.js +5 -2
- package/lib/utils/style-helper.js +1 -1
- package/lib/utils/style.js +1 -1
- package/lib/utils/toNumber.js +1 -1
- package/lib/utils/tokenize.js +1 -1
- package/lib/utils/tpl-builtin.js +1 -1
- package/lib/utils/tpl-lodash.js +1 -1
- package/lib/utils/tpl.js +1 -1
- package/lib/utils/uncontrollable.js +1 -1
- package/lib/utils/validateId.js +1 -1
- package/lib/utils/validations.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,56 @@
|
|
|
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 };
|
|
@@ -0,0 +1,119 @@
|
|
|
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 };
|
|
@@ -0,0 +1,105 @@
|
|
|
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 };
|
package/esm/polyfills.js
CHANGED
package/esm/renderers/Form.js
CHANGED
package/esm/renderers/Item.js
CHANGED
package/esm/renderers/Options.js
CHANGED
package/esm/renderers/builtin.js
CHANGED
package/esm/store/app.js
CHANGED
package/esm/store/combo.js
CHANGED
package/esm/store/crud.js
CHANGED
package/esm/store/form.js
CHANGED
package/esm/store/formItem.js
CHANGED
package/esm/store/iRenderer.js
CHANGED
package/esm/store/index.js
CHANGED
package/esm/store/list.js
CHANGED
package/esm/store/manager.js
CHANGED
package/esm/store/modal.js
CHANGED
package/esm/store/node.js
CHANGED
package/esm/store/pagination.js
CHANGED
package/esm/store/root.js
CHANGED
package/esm/store/service.js
CHANGED
package/esm/store/status.js
CHANGED
package/esm/store/table.js
CHANGED
package/esm/store/table2.js
CHANGED
package/esm/theme.js
CHANGED
package/esm/utils/Animation.js
CHANGED
package/esm/utils/ColorScale.js
CHANGED
package/esm/utils/DataSchema.js
CHANGED
package/esm/utils/DataScope.js
CHANGED
package/esm/utils/RootClose.js
CHANGED
package/esm/utils/SimpleMap.js
CHANGED
package/esm/utils/api.js
CHANGED
package/esm/utils/arraySlice.js
CHANGED
package/esm/utils/autobind.js
CHANGED
package/esm/utils/browser.js
CHANGED
package/esm/utils/concatData.js
CHANGED
package/esm/utils/dataMapping.js
CHANGED
package/esm/utils/date.js
CHANGED
package/esm/utils/debug.js
CHANGED
package/esm/utils/dom.js
CHANGED
package/esm/utils/errors.js
CHANGED
package/esm/utils/escapeHtml.js
CHANGED