@kdcloudjs/table 1.2.1-canary.6 → 1.2.1-canary.7-hotfix.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/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.css.map +0 -0
- package/dist/@kdcloudjs/table.js +1755 -3334
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +16 -16
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/dist/default-theme.js +0 -0
- package/dist/kd-ui-complete.less +0 -0
- package/dist/kd-ui.less +0 -0
- package/dist/theme.js +0 -0
- package/es/_utils/arrayUtil.js +0 -3
- package/es/_utils/devwarning.js +0 -1
- package/es/_utils/formatUtil.js +35 -96
- package/es/_utils/hooks.js +18 -42
- package/es/_utils/index.js +0 -2
- package/es/_utils/numberUtil.js +32 -55
- package/es/_utils/omit.js +0 -2
- package/es/_utils/type.js +0 -2
- package/es/_utils/usePopper.js +74 -137
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/config-provider/configProvider.js +2 -7
- package/es/config-provider/defaultConfig.js +0 -1
- package/es/index.js +0 -2
- package/es/locale/locale.js +5 -43
- package/es/table/base/calculations.js +22 -72
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +4 -4
- package/es/table/base/header.js +16 -69
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +4 -28
- package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
- package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
- package/es/table/base/helpers/getRichVisibleRectsStream.js +13 -45
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +14 -35
- package/es/table/base/loading.js +6 -8
- package/es/table/base/renderTemplates.js +26 -44
- package/es/table/base/styles.js +0 -9
- package/es/table/base/table.js +95 -181
- package/es/table/base/utils.js +14 -54
- package/es/table/common-views.js +0 -7
- package/es/table/internals.js +0 -13
- package/es/table/pipeline/features/autoFill.js +11 -40
- package/es/table/pipeline/features/autoRowSpan.js +1 -14
- package/es/table/pipeline/features/colGroupExtendable.js +4 -19
- package/es/table/pipeline/features/columnDrag.js +41 -96
- package/es/table/pipeline/features/columnFilter.js +11 -48
- package/es/table/pipeline/features/columnHover.js +1 -7
- package/es/table/pipeline/features/columnRangeHover.js +1 -8
- package/es/table/pipeline/features/columnResizeWidth.js +11 -37
- package/es/table/pipeline/features/contextMenu.js +18 -89
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +25 -48
- package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
- package/es/table/pipeline/features/filter/util.js +0 -4
- package/es/table/pipeline/features/footerDataSource.js +0 -3
- package/es/table/pipeline/features/mergeCellHover.js +0 -1
- package/es/table/pipeline/features/multiSelect.js +15 -57
- package/es/table/pipeline/features/rangeSelection.js +63 -142
- package/es/table/pipeline/features/rowDetail.js +2 -41
- package/es/table/pipeline/features/rowDrag.js +38 -76
- package/es/table/pipeline/features/rowGrouping.js +2 -35
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +32 -89
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +14 -46
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/pipeline.js +11 -51
- package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
- package/es/table/pivot/cross-table/cross-table.js +22 -28
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +31 -71
- package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
- package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
- package/es/table/transforms/autoRowSpan.js +1 -15
- package/es/table/transforms/autoWidth.js +10 -32
- package/es/table/transforms/buildTree.js +1 -2
- package/es/table/transforms/columnHover.js +9 -15
- package/es/table/transforms/columnRangeHover.js +12 -19
- package/es/table/transforms/columnResize.js +15 -37
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.js +36 -93
- package/es/table/transforms/tips.js +1 -6
- package/es/table/transforms/treeMode.js +30 -69
- package/es/table/transforms/visible.js +0 -2
- package/es/table/use/useResizeObserver.js +1 -4
- package/es/table/utils/applyTransforms.js +0 -1
- package/es/table/utils/browserType.js +12 -19
- package/es/table/utils/buildTree.js +4 -19
- package/es/table/utils/collectNodes.js +1 -10
- package/es/table/utils/console.js +0 -14
- package/es/table/utils/copyToClipboard.js +0 -4
- package/es/table/utils/element.js +14 -41
- package/es/table/utils/exportTableAsExcel.js +4 -40
- package/es/table/utils/getTreeDepth.js +1 -9
- package/es/table/utils/groupBy.js +1 -10
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +1 -12
- package/es/table/utils/mergeCellProps.js +6 -13
- package/es/table/utils/others.js +3 -16
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +2 -15
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
- package/es/table/utils/uiDegrade.js +0 -5
- package/lib/_utils/arrayUtil.js +0 -5
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +35 -100
- package/lib/_utils/hooks.js +18 -53
- package/lib/_utils/index.js +0 -6
- package/lib/_utils/numberUtil.js +32 -63
- package/lib/_utils/omit.js +0 -5
- package/lib/_utils/react-children.js +0 -5
- package/lib/_utils/type.js +0 -6
- package/lib/_utils/usePopper.js +74 -158
- package/lib/config-provider/ConfigContext.js +1 -4
- package/lib/config-provider/compDefaultProps.js +0 -1
- package/lib/config-provider/configProvider.js +3 -18
- package/lib/config-provider/defaultConfig.js +0 -5
- package/lib/config-provider/index.js +0 -6
- package/lib/index.js +2 -8
- package/lib/locale/index.js +0 -7
- package/lib/locale/locale.js +5 -57
- package/lib/table/base/calculations.js +22 -83
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +4 -16
- package/lib/table/base/header.js +16 -79
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +2 -28
- package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
- package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
- package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +13 -63
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +14 -45
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +6 -12
- package/lib/table/base/renderTemplates.js +27 -58
- package/lib/table/base/styles.js +0 -21
- package/lib/table/base/table.js +95 -214
- package/lib/table/base/utils.js +14 -89
- package/lib/table/common-views.js +0 -16
- package/lib/table/index.js +0 -13
- package/lib/table/internals.js +0 -14
- package/lib/table/pipeline/features/autoFill.js +11 -47
- package/lib/table/pipeline/features/autoRowSpan.js +1 -19
- package/lib/table/pipeline/features/buildTree.js +0 -2
- package/lib/table/pipeline/features/colGroupExtendable.js +4 -32
- package/lib/table/pipeline/features/columnDrag.js +41 -102
- package/lib/table/pipeline/features/columnFilter.js +11 -62
- package/lib/table/pipeline/features/columnHover.js +1 -11
- package/lib/table/pipeline/features/columnRangeHover.js +1 -13
- package/lib/table/pipeline/features/columnResizeWidth.js +11 -53
- package/lib/table/pipeline/features/contextMenu.js +18 -113
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +25 -70
- package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +0 -7
- package/lib/table/pipeline/features/footerDataSource.js +0 -10
- package/lib/table/pipeline/features/index.js +0 -23
- package/lib/table/pipeline/features/mergeCellHover.js +0 -5
- package/lib/table/pipeline/features/multiSelect.js +15 -71
- package/lib/table/pipeline/features/rangeSelection.js +63 -159
- package/lib/table/pipeline/features/rowDetail.js +2 -65
- package/lib/table/pipeline/features/rowDrag.js +38 -87
- package/lib/table/pipeline/features/rowGrouping.js +2 -55
- package/lib/table/pipeline/features/singleSelect.js +0 -34
- package/lib/table/pipeline/features/sort.js +31 -108
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +14 -67
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/index.js +0 -8
- package/lib/table/pipeline/pipeline.js +11 -60
- package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
- package/lib/table/pivot/cross-table/cross-table.js +22 -36
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
- package/lib/table/pivot/cross-tree-table/index.js +0 -3
- package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
- package/lib/table/pivot/pivot-utils/builders.js +31 -82
- package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
- package/lib/table/pivot/pivot-utils/index.js +0 -7
- package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
- package/lib/table/style/css.js +0 -1
- package/lib/table/style/index.js +0 -1
- package/lib/table/transforms/autoRowSpan.js +1 -21
- package/lib/table/transforms/autoWidth.js +10 -53
- package/lib/table/transforms/buildTree.js +1 -4
- package/lib/table/transforms/columnHover.js +9 -22
- package/lib/table/transforms/columnRangeHover.js +12 -27
- package/lib/table/transforms/columnResize.js +15 -56
- package/lib/table/transforms/flatten.js +0 -5
- package/lib/table/transforms/index.js +0 -12
- package/lib/table/transforms/orderField.js +0 -7
- package/lib/table/transforms/sort.js +36 -117
- package/lib/table/transforms/tips.js +1 -16
- package/lib/table/transforms/treeMode.js +30 -96
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +1 -8
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/browserType.js +12 -19
- package/lib/table/utils/buildTree.js +4 -30
- package/lib/table/utils/collectNodes.js +1 -15
- package/lib/table/utils/console.js +0 -16
- package/lib/table/utils/copyToClipboard.js +0 -6
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +4 -49
- package/lib/table/utils/getTreeDepth.js +1 -14
- package/lib/table/utils/groupBy.js +1 -14
- package/lib/table/utils/index.js +0 -22
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +1 -21
- package/lib/table/utils/mergeCellProps.js +6 -17
- package/lib/table/utils/others.js +3 -31
- package/lib/table/utils/proto.js +2 -33
- package/lib/table/utils/selectColumn.js +0 -1
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +2 -22
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
- package/lib/table/utils/uiDegrade.js +1 -8
- package/package.json +2 -1
- package/lib/style/color/colors.less +0 -2
- package/lib/style/core/index.less +0 -2
- package/lib/style/core/motion/other.less +0 -28
- package/lib/style/core/motion/slide.less +0 -53
- package/lib/style/core/motion.less +0 -2
- package/lib/style/core/reset.less +0 -186
- package/lib/style/index.css +0 -410
- package/lib/style/index.less +0 -2
- package/lib/style/mixins/index.less +0 -19
- package/lib/style/mixins/overlay.less +0 -22
- package/lib/style/mixins/reset.less +0 -13
- package/lib/style/themes/default.less +0 -445
- package/lib/style/themes/index.less +0 -1
- package/lib/table/style/index.css +0 -0
- package/lib/table/style/index.less +0 -1
package/lib/_utils/formatUtil.js
CHANGED
|
@@ -1,38 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.formatEditNumber = formatEditNumber;
|
|
9
8
|
exports.formatNumber = formatNumber;
|
|
10
|
-
|
|
11
9
|
var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
|
|
12
|
-
|
|
13
10
|
var _parseFloat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/number/parse-float"));
|
|
14
|
-
|
|
15
11
|
var _isNan = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/number/is-nan"));
|
|
16
|
-
|
|
17
12
|
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
18
|
-
|
|
19
13
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
20
|
-
|
|
21
14
|
var _numberUtil = require("./numberUtil");
|
|
22
|
-
|
|
23
15
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
24
16
|
var t = {};
|
|
25
|
-
|
|
26
17
|
for (var p in s) {
|
|
27
18
|
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
28
19
|
}
|
|
29
|
-
|
|
30
20
|
if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
|
|
31
21
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
32
22
|
}
|
|
33
23
|
return t;
|
|
34
24
|
};
|
|
35
|
-
|
|
36
25
|
/**
|
|
37
26
|
* [数值类型格式化]
|
|
38
27
|
* @param {[type]} num [待格式化的数字]
|
|
@@ -57,17 +46,15 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
|
57
46
|
*/
|
|
58
47
|
function formatNumber(num, formatParams) {
|
|
59
48
|
var _context;
|
|
60
|
-
|
|
61
49
|
var _formatParams$mask = formatParams.mask,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
50
|
+
mask = _formatParams$mask === void 0 ? '' : _formatParams$mask,
|
|
51
|
+
_formatParams$zeroSho = formatParams.zeroShow,
|
|
52
|
+
zeroShow = _formatParams$zeroSho === void 0 ? false : _formatParams$zeroSho,
|
|
53
|
+
decimalLength = formatParams.decimalLength,
|
|
54
|
+
_formatParams$showDec = formatParams.showDecimalTailZero,
|
|
55
|
+
showDecimalTailZero = _formatParams$showDec === void 0 ? false : _formatParams$showDec,
|
|
56
|
+
isRound = formatParams.isRound,
|
|
57
|
+
param = __rest(formatParams, ["mask", "zeroShow", "decimalLength", "showDecimalTailZero", "isRound"]);
|
|
71
58
|
if (decimalLength !== undefined && (decimalLength < 0 || decimalLength > 100)) return num + '';
|
|
72
59
|
if (num === undefined || num === null) num = '';
|
|
73
60
|
var numInfo = {
|
|
@@ -75,38 +62,31 @@ function formatNumber(num, formatParams) {
|
|
|
75
62
|
intStr: '',
|
|
76
63
|
decimalStr: ''
|
|
77
64
|
};
|
|
78
|
-
|
|
79
65
|
if (typeof num === 'number') {
|
|
80
66
|
numInfo.numStr = num + '';
|
|
81
67
|
} else {
|
|
82
68
|
numInfo.numStr = num.replace(/,/g, '');
|
|
83
|
-
|
|
84
69
|
if ((0, _numberUtil.isExp)(numInfo.numStr)) {
|
|
85
70
|
numInfo.numStr = (0, _numberUtil.exponentToFloat)(numInfo.numStr);
|
|
86
71
|
}
|
|
87
72
|
}
|
|
88
|
-
|
|
89
|
-
|
|
73
|
+
var floatNum = (0, _parseFloat.default)(numInfo.numStr);
|
|
74
|
+
// 非纯数字不处理,直接返回''
|
|
90
75
|
// if (Number.isNaN(floatNum)) return ''
|
|
91
|
-
|
|
92
76
|
if ((0, _isNan.default)(Number(num))) {
|
|
93
77
|
// throw new Error('toFixed() number argument must be a valid number')
|
|
94
78
|
return num + '';
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
79
|
+
}
|
|
80
|
+
// 为零不显示,且等于零,直接返回''
|
|
98
81
|
if (!zeroShow && Number(num) === 0) return '';
|
|
99
82
|
var maskInfo = analyzMask(mask);
|
|
100
83
|
if (maskInfo.errorMask) return numInfo.numStr;
|
|
101
84
|
var isIncludePercent = (0, _includes.default)(_context = numInfo.numStr).call(_context, '%');
|
|
102
|
-
|
|
103
85
|
if (maskInfo.percent) {
|
|
104
86
|
if (!isIncludePercent) {
|
|
105
87
|
var _context2;
|
|
106
|
-
|
|
107
88
|
var point = numInfo.numStr.indexOf('.');
|
|
108
89
|
var length = numInfo.numStr.length;
|
|
109
|
-
|
|
110
90
|
if (point < 0) {
|
|
111
91
|
numInfo.numStr = numInfo.numStr + '00';
|
|
112
92
|
} else if (point === length - 1) {
|
|
@@ -116,28 +96,22 @@ function formatNumber(num, formatParams) {
|
|
|
116
96
|
} else {
|
|
117
97
|
var numStr = numInfo.numStr.replace('.', '');
|
|
118
98
|
numInfo.numStr = numStr.substring(0, point + 2) + '.' + numStr.substring(point + 2);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
99
|
+
}
|
|
100
|
+
// 去掉数字前面的零
|
|
122
101
|
numInfo.numStr = numInfo.numStr.replace(/^0+/, '');
|
|
123
102
|
if (numInfo.numStr === '.') numInfo.numStr = '0';
|
|
124
|
-
|
|
125
103
|
if ((0, _includes.default)(_context2 = numInfo.numStr).call(_context2, '-')) {
|
|
126
104
|
// 负数的情况 去掉前面的0
|
|
127
105
|
numInfo.numStr = numInfo.numStr.replace('-', '');
|
|
128
106
|
numInfo.numStr = numInfo.numStr.replace(/^0+/, '');
|
|
129
107
|
numInfo.numStr = '-' + numInfo.numStr;
|
|
130
108
|
}
|
|
131
|
-
|
|
132
109
|
floatNum = floatNum * 100;
|
|
133
110
|
}
|
|
134
111
|
}
|
|
135
|
-
|
|
136
112
|
var isNegativeNumber = floatNum < 0; // 是否是负数
|
|
137
|
-
|
|
138
113
|
if (isNegativeNumber) {
|
|
139
114
|
var _context3;
|
|
140
|
-
|
|
141
115
|
floatNum = Math.abs(floatNum);
|
|
142
116
|
numInfo.numStr = (0, _slice.default)(_context3 = numInfo.numStr).call(_context3, 1); // 去除第一个负号
|
|
143
117
|
}
|
|
@@ -145,34 +119,28 @@ function formatNumber(num, formatParams) {
|
|
|
145
119
|
var numStrArr = numInfo.numStr.split('.');
|
|
146
120
|
numInfo.intStr = numStrArr[0];
|
|
147
121
|
numInfo.decimalStr = numStrArr[1] || '';
|
|
148
|
-
|
|
149
122
|
if (!showDecimalTailZero) {
|
|
150
123
|
numInfo = cutTailZero(numInfo);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
|
|
124
|
+
}
|
|
125
|
+
// 小数部分处理。暂时不考虑其他。只校验位数和尾数补零问题,整数
|
|
154
126
|
if (decimalLength !== undefined && decimalLength >= 0) {
|
|
155
127
|
// floatNum = Number.parseFloat(numInfo.numStr) // 当整数位数大于16位时,parseFloat会丢掉末尾的值,有问题!!!
|
|
156
128
|
numInfo.numStr = (0, _numberUtil.toFixed)(numInfo.numStr, decimalLength, isRound);
|
|
157
|
-
numStrArr = numInfo.numStr.split('.');
|
|
158
|
-
|
|
129
|
+
numStrArr = numInfo.numStr.split('.');
|
|
130
|
+
// 去除整数部分多余的 0
|
|
159
131
|
var intStr = numStrArr[0].replace(/^0+/, '');
|
|
160
132
|
numInfo.intStr = intStr === '' ? '0' : intStr;
|
|
161
133
|
numInfo.decimalStr = numStrArr[1] || '';
|
|
162
|
-
|
|
163
134
|
if (!showDecimalTailZero) {
|
|
164
135
|
numInfo = cutTailZero(numInfo);
|
|
165
136
|
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
137
|
+
}
|
|
138
|
+
// 整数部分格式化
|
|
169
139
|
var formatValue = intFormatMask(maskInfo.intMask, numInfo.intStr);
|
|
170
140
|
var currencySign = maskInfo.currencySign ? '$' : '';
|
|
171
|
-
|
|
172
141
|
if (param.symbol) {
|
|
173
142
|
currencySign = param.symbol;
|
|
174
143
|
}
|
|
175
|
-
|
|
176
144
|
return currencySign + (isNegativeNumber ? '-' : '') + (formatValue || numInfo.intStr || '0') + (numInfo.decimalStr.length > 0 ? '.' : '') + numInfo.decimalStr + (maskInfo.percent ? '%' : '');
|
|
177
145
|
}
|
|
178
146
|
/**
|
|
@@ -181,17 +149,15 @@ function formatNumber(num, formatParams) {
|
|
|
181
149
|
* @param {*} num
|
|
182
150
|
* @param {*} param
|
|
183
151
|
*/
|
|
184
|
-
|
|
185
|
-
|
|
186
152
|
function formatEditNumber(num, _ref) {
|
|
187
153
|
var _ref$zeroShow = _ref.zeroShow,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
154
|
+
zeroShow = _ref$zeroShow === void 0 ? false : _ref$zeroShow,
|
|
155
|
+
decimalLength = _ref.decimalLength,
|
|
156
|
+
_ref$showDecimalTailZ = _ref.showDecimalTailZero,
|
|
157
|
+
showDecimalTailZero = _ref$showDecimalTailZ === void 0 ? false : _ref$showDecimalTailZ,
|
|
158
|
+
_ref$roundMethod = _ref.roundMethod,
|
|
159
|
+
roundMethod = _ref$roundMethod === void 0 ? '0' : _ref$roundMethod,
|
|
160
|
+
symbol = _ref.symbol;
|
|
195
161
|
// 如果精度超过100,直接返回数值
|
|
196
162
|
if (decimalLength && (decimalLength < 0 || decimalLength > 100)) return num + '';
|
|
197
163
|
if (num === undefined || num === null) num = '';
|
|
@@ -200,31 +166,25 @@ function formatEditNumber(num, _ref) {
|
|
|
200
166
|
intStr: '',
|
|
201
167
|
decimalStr: ''
|
|
202
168
|
};
|
|
203
|
-
|
|
204
169
|
if (typeof num === 'number') {
|
|
205
170
|
numInfo.numStr = num + '';
|
|
206
171
|
} else {
|
|
207
172
|
numInfo.numStr = num.replace(/,/g, '');
|
|
208
|
-
|
|
209
173
|
if ((0, _numberUtil.isExp)(numInfo.numStr)) {
|
|
210
174
|
numInfo.numStr = (0, _numberUtil.exponentToFloat)(numInfo.numStr);
|
|
211
175
|
}
|
|
212
|
-
|
|
213
176
|
if (symbol && numInfo.numStr.indexOf(symbol) === 0) {
|
|
214
177
|
numInfo.numStr = numInfo.numStr.replace(symbol, '');
|
|
215
178
|
}
|
|
216
179
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
180
|
+
var floatNum = (0, _parseFloat.default)(numInfo.numStr);
|
|
181
|
+
// 非纯数字不处理,直接返回''
|
|
182
|
+
if ((0, _isNan.default)(floatNum)) return '';
|
|
183
|
+
// 为零不显示,且等于零,直接返回''
|
|
222
184
|
if (!zeroShow && floatNum === 0) return '';
|
|
223
185
|
var isNegativeNumber = floatNum < 0; // 是否是负数
|
|
224
|
-
|
|
225
186
|
if (isNegativeNumber) {
|
|
226
187
|
var _context4;
|
|
227
|
-
|
|
228
188
|
floatNum = Math.abs(floatNum);
|
|
229
189
|
numInfo.numStr = (0, _slice.default)(_context4 = numInfo.numStr).call(_context4, 1); // 去除第一个负号
|
|
230
190
|
}
|
|
@@ -232,29 +192,23 @@ function formatEditNumber(num, _ref) {
|
|
|
232
192
|
var numStrArr = numInfo.numStr.split('.');
|
|
233
193
|
numInfo.intStr = numStrArr[0];
|
|
234
194
|
numInfo.decimalStr = numStrArr[1] || '';
|
|
235
|
-
|
|
236
195
|
if (!showDecimalTailZero) {
|
|
237
196
|
numInfo = cutTailZero(numInfo);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
|
|
197
|
+
}
|
|
198
|
+
// 小数部分处理。暂时不考虑其他。只校验位数和尾数补零问题,整数
|
|
241
199
|
if (decimalLength != null && decimalLength >= 0) {
|
|
242
200
|
// floatNum = Number.parseFloat(numInfo.numStr) // 当整数位数大于16位时,parseFloat会丢掉末尾的值
|
|
243
201
|
var isRound = roundMethod.toString() === '1'; // 是否四舍五入
|
|
244
|
-
|
|
245
202
|
numInfo.numStr = (0, _numberUtil.toFixed)(numInfo.numStr, decimalLength, isRound);
|
|
246
203
|
numStrArr = numInfo.numStr.split('.');
|
|
247
204
|
numInfo.intStr = numStrArr[0];
|
|
248
205
|
numInfo.decimalStr = numStrArr[1] || '';
|
|
249
|
-
|
|
250
206
|
if (!showDecimalTailZero) {
|
|
251
207
|
numInfo = cutTailZero(numInfo);
|
|
252
208
|
}
|
|
253
209
|
}
|
|
254
|
-
|
|
255
210
|
return (isNegativeNumber ? '-' : '') + (numInfo.intStr || '0') + (numInfo.decimalStr.length > 0 ? '.' : '') + numInfo.decimalStr;
|
|
256
211
|
}
|
|
257
|
-
|
|
258
212
|
function analyzMask(mask) {
|
|
259
213
|
var maskInfo = {
|
|
260
214
|
errorMask: false,
|
|
@@ -266,27 +220,20 @@ function analyzMask(mask) {
|
|
|
266
220
|
};
|
|
267
221
|
mask = mask.replace(/%%/g, '');
|
|
268
222
|
maskInfo.currencySign = mask.indexOf('$') >= 0; // 是否显示货币标识
|
|
269
|
-
|
|
270
223
|
maskInfo.percent = mask.indexOf('%') >= 0; // 是否有百分号
|
|
271
|
-
|
|
272
224
|
mask = mask.replace(/%/g, '').replace(/\$/g, ''); // 清楚上面的特殊字符
|
|
273
|
-
|
|
274
225
|
var masks = mask.split('.'); // 以小数点为界切分掩码
|
|
275
|
-
|
|
276
226
|
if (masks.length > 2) {
|
|
277
227
|
maskInfo.errorMask = true;
|
|
278
228
|
}
|
|
279
|
-
|
|
280
229
|
maskInfo.intMask = masks[0];
|
|
281
230
|
maskInfo.decimalMask = masks[1];
|
|
282
231
|
maskInfo.formatMask = mask;
|
|
283
232
|
return maskInfo;
|
|
284
233
|
}
|
|
285
|
-
|
|
286
234
|
function cutTailZero(numInfo) {
|
|
287
235
|
var decimalStr = numInfo.decimalStr;
|
|
288
236
|
var len = decimalStr.length;
|
|
289
|
-
|
|
290
237
|
if (len > 0) {
|
|
291
238
|
for (var i = len - 1; i >= 0; i--) {
|
|
292
239
|
if (decimalStr[i] === '0') {
|
|
@@ -295,28 +242,22 @@ function cutTailZero(numInfo) {
|
|
|
295
242
|
break;
|
|
296
243
|
}
|
|
297
244
|
}
|
|
298
|
-
|
|
299
245
|
numInfo.decimalStr = decimalStr;
|
|
300
246
|
}
|
|
301
|
-
|
|
302
247
|
return numInfo;
|
|
303
248
|
}
|
|
304
|
-
|
|
305
249
|
function intFormatMask(intMask, intValue) {
|
|
306
250
|
var numGroupFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
307
251
|
var index = 0;
|
|
308
252
|
var firstHashIndex = intMask.indexOf('#');
|
|
309
253
|
var lastHashIndex = intMask.lastIndexOf('#');
|
|
310
254
|
var formatValue = '';
|
|
311
|
-
|
|
312
255
|
if (intMask.split(',').length > 1) {
|
|
313
256
|
// 如果包含多个分隔符,则认为是末尾分隔符为分组数
|
|
314
257
|
lastHashIndex = intMask.length - 1 - intMask.lastIndexOf(',');
|
|
315
258
|
}
|
|
316
|
-
|
|
317
259
|
for (var i = intMask.length - 1; i >= 0;) {
|
|
318
260
|
var char = intMask.charAt(i);
|
|
319
|
-
|
|
320
261
|
switch (char) {
|
|
321
262
|
case '0':
|
|
322
263
|
// 数字必录
|
|
@@ -324,35 +265,29 @@ function intFormatMask(intMask, intValue) {
|
|
|
324
265
|
index++;
|
|
325
266
|
i--;
|
|
326
267
|
break;
|
|
327
|
-
|
|
328
268
|
case '9':
|
|
329
269
|
// 数字可选
|
|
330
270
|
formatValue = intValue.charAt(intValue.length - 1 - index) + formatValue;
|
|
331
271
|
index++;
|
|
332
272
|
i--;
|
|
333
273
|
break;
|
|
334
|
-
|
|
335
274
|
case '#':
|
|
336
275
|
// 递归
|
|
337
276
|
formatValue = intValue.charAt(intValue.length - 1 - index) + formatValue;
|
|
338
277
|
index++;
|
|
339
278
|
i = i === firstHashIndex ? lastHashIndex : i - 1;
|
|
340
279
|
break;
|
|
341
|
-
|
|
342
280
|
default:
|
|
343
281
|
if (numGroupFormat) char = numGroupFormat;
|
|
344
282
|
formatValue = char + formatValue;
|
|
345
283
|
i--;
|
|
346
284
|
break;
|
|
347
285
|
}
|
|
348
|
-
|
|
349
286
|
if (index >= intValue.length) break;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
|
|
287
|
+
}
|
|
288
|
+
// 如果第一个字符不是数字,去掉
|
|
353
289
|
if (formatValue && !/^[0-9]*$/.test(formatValue.charAt(0))) {
|
|
354
290
|
formatValue = formatValue.substring(1);
|
|
355
291
|
}
|
|
356
|
-
|
|
357
292
|
return formatValue;
|
|
358
293
|
}
|
package/lib/_utils/hooks.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
|
|
4
|
-
|
|
5
4
|
var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
|
|
6
|
-
|
|
7
5
|
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
|
|
8
|
-
|
|
9
6
|
var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
|
|
10
|
-
|
|
11
7
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
12
|
-
|
|
13
8
|
Object.defineProperty(exports, "__esModule", {
|
|
14
9
|
value: true
|
|
15
10
|
});
|
|
@@ -17,23 +12,14 @@ exports.useMergedState = useMergedState;
|
|
|
17
12
|
exports.useOnClickOutside = useOnClickOutside;
|
|
18
13
|
exports.usePrevious = usePrevious;
|
|
19
14
|
exports.useResizeObserver = useResizeObserver;
|
|
20
|
-
|
|
21
15
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
22
|
-
|
|
23
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
24
|
-
|
|
25
17
|
var _react = require("react");
|
|
26
|
-
|
|
27
18
|
var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill"));
|
|
28
|
-
|
|
29
19
|
var _devwarning = _interopRequireDefault(require("./devwarning"));
|
|
30
|
-
|
|
31
20
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
32
|
-
|
|
33
21
|
function _unsupportedIterableToArray(o, minLen) { var _context; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
34
|
-
|
|
35
22
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
36
|
-
|
|
37
23
|
/**
|
|
38
24
|
* @description 点击指定区域外执行回调
|
|
39
25
|
*
|
|
@@ -45,12 +31,10 @@ function useOnClickOutside(refs, handler) {
|
|
|
45
31
|
(0, _react.useEffect)(function () {
|
|
46
32
|
var listener = function listener(event) {
|
|
47
33
|
var _iterator = _createForOfIteratorHelper(refs),
|
|
48
|
-
|
|
49
|
-
|
|
34
|
+
_step;
|
|
50
35
|
try {
|
|
51
36
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
52
37
|
var ref = _step.value;
|
|
53
|
-
|
|
54
38
|
if (!ref.current || ref.current.contains(event.target)) {
|
|
55
39
|
return;
|
|
56
40
|
}
|
|
@@ -60,10 +44,8 @@ function useOnClickOutside(refs, handler) {
|
|
|
60
44
|
} finally {
|
|
61
45
|
_iterator.f();
|
|
62
46
|
}
|
|
63
|
-
|
|
64
47
|
handler(event);
|
|
65
48
|
};
|
|
66
|
-
|
|
67
49
|
document.addEventListener('mousedown', listener);
|
|
68
50
|
document.addEventListener('touchstart', listener);
|
|
69
51
|
return function () {
|
|
@@ -87,52 +69,42 @@ function useOnClickOutside(refs, handler) {
|
|
|
87
69
|
* })} [option]
|
|
88
70
|
* @returns {[R, (value: T) => void]}
|
|
89
71
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
function useMergedState(defaultStateValue, // 初始state
|
|
72
|
+
function useMergedState(defaultStateValue,
|
|
73
|
+
// 初始state
|
|
93
74
|
option) {
|
|
94
75
|
var _ref = option || {},
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
76
|
+
defaultValue = _ref.defaultValue,
|
|
77
|
+
value = _ref.value,
|
|
78
|
+
onChange = _ref.onChange,
|
|
79
|
+
postState = _ref.postState;
|
|
100
80
|
var _useState = (0, _react.useState)(function () {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
innerValue = _useState2[0],
|
|
113
|
-
setInnerValue = _useState2[1];
|
|
114
|
-
|
|
81
|
+
if (value !== undefined) {
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
if (defaultValue !== undefined) {
|
|
85
|
+
return typeof defaultValue === 'function' ? defaultValue() : defaultValue;
|
|
86
|
+
}
|
|
87
|
+
return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;
|
|
88
|
+
}),
|
|
89
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
90
|
+
innerValue = _useState2[0],
|
|
91
|
+
setInnerValue = _useState2[1];
|
|
115
92
|
var mergedValue = value !== undefined ? value : innerValue;
|
|
116
|
-
|
|
117
93
|
if (postState) {
|
|
118
94
|
mergedValue = postState(mergedValue);
|
|
119
95
|
}
|
|
120
|
-
|
|
121
96
|
function triggerChange(newValue) {
|
|
122
97
|
setInnerValue(newValue);
|
|
123
|
-
|
|
124
98
|
if (mergedValue !== newValue && onChange) {
|
|
125
99
|
onChange(newValue, mergedValue);
|
|
126
100
|
}
|
|
127
101
|
}
|
|
128
|
-
|
|
129
102
|
var firstRenderRef = (0, _react.useRef)(true);
|
|
130
103
|
(0, _react.useEffect)(function () {
|
|
131
104
|
if (firstRenderRef.current) {
|
|
132
105
|
firstRenderRef.current = false;
|
|
133
106
|
return;
|
|
134
107
|
}
|
|
135
|
-
|
|
136
108
|
if (value === undefined) {
|
|
137
109
|
setInnerValue(value);
|
|
138
110
|
}
|
|
@@ -145,8 +117,6 @@ option) {
|
|
|
145
117
|
* @export
|
|
146
118
|
* @param {P} value
|
|
147
119
|
*/
|
|
148
|
-
|
|
149
|
-
|
|
150
120
|
function usePrevious(value) {
|
|
151
121
|
var ref = (0, _react.useRef)(value);
|
|
152
122
|
(0, _react.useEffect)(function () {
|
|
@@ -154,28 +124,23 @@ function usePrevious(value) {
|
|
|
154
124
|
}, [value]);
|
|
155
125
|
return ref.current;
|
|
156
126
|
}
|
|
157
|
-
|
|
158
127
|
function useResizeObserver(element, handler) {
|
|
159
128
|
(0, _react.useEffect)(function () {
|
|
160
129
|
if (!element) {
|
|
161
130
|
(0, _devwarning.default)(!element && element !== null, 'useResizeMeasure', 'useResizeMeasure指定的元素不存在');
|
|
162
131
|
return;
|
|
163
132
|
}
|
|
164
|
-
|
|
165
133
|
var measure = function measure(entries) {
|
|
166
134
|
if (!entries[0] || !entries[0].contentRect) {
|
|
167
135
|
return;
|
|
168
136
|
}
|
|
169
|
-
|
|
170
137
|
var contentRect = entries[0].contentRect;
|
|
171
138
|
var hide = contentRect.width === 0 && contentRect.height === 0; // 隐藏条件:高宽都为0
|
|
172
|
-
|
|
173
139
|
var rect = (0, _extends2.default)({
|
|
174
140
|
hide: hide
|
|
175
141
|
}, contentRect);
|
|
176
142
|
handler && handler(rect);
|
|
177
143
|
};
|
|
178
|
-
|
|
179
144
|
var resizeObserver = new _resizeObserverPolyfill.default(measure);
|
|
180
145
|
resizeObserver && resizeObserver.observe(element);
|
|
181
146
|
return function () {
|
package/lib/_utils/index.js
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.getCompProps = void 0;
|
|
9
|
-
|
|
10
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var _compDefaultProps = _interopRequireDefault(require("../config-provider/compDefaultProps"));
|
|
13
|
-
|
|
14
10
|
// kd-ui提供组件默认属性
|
|
15
|
-
|
|
16
11
|
/**
|
|
17
12
|
* 结合compDefaultProps、用户自定义默认属性和组件当前属性获取组件实际应用属性
|
|
18
13
|
* @param {keyof typeof compDefaultProps} compName 组件名
|
|
@@ -24,5 +19,4 @@ var getCompProps = function getCompProps(compName, userDefaultProps, compProps)
|
|
|
24
19
|
var userProps = userDefaultProps && userDefaultProps[compName] || {};
|
|
25
20
|
return (0, _extends2.default)({}, defaultProps, userProps, compProps || {});
|
|
26
21
|
};
|
|
27
|
-
|
|
28
22
|
exports.getCompProps = getCompProps;
|