@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.16-hotfix
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.js +2047 -3489
- 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/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 +14 -67
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +4 -27
- 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 +11 -44
- 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.d.ts +1 -0
- package/es/table/pipeline/features/columnDrag.js +236 -303
- 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 +51 -42
- 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 +36 -71
- 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 +31 -83
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +9 -44
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/es/table/pipeline/features/utils/touchEventUtils.js +65 -0
- 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 -88
- 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/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/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 +14 -77
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +2 -27
- 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 +11 -62
- 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.d.ts +1 -0
- package/lib/table/pipeline/features/columnDrag.js +236 -309
- 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 +51 -58
- 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 +36 -81
- 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 -103
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +9 -65
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/lib/table/pipeline/features/utils/touchEventUtils.js +76 -0
- 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 -112
- 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/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 -21
- 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/package.json +2 -1
|
@@ -5,13 +5,9 @@ import _getIteratorMethod from "@babel/runtime-corejs3/core-js/get-iterator-meth
|
|
|
5
5
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
6
6
|
import _createClass from "@babel/runtime-corejs3/helpers/createClass";
|
|
7
7
|
import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck";
|
|
8
|
-
|
|
9
8
|
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; } } }; }
|
|
10
|
-
|
|
11
9
|
function _unsupportedIterableToArray(o, minLen) { var _context3; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context3 = Object.prototype.toString.call(o)).call(_context3, 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); }
|
|
12
|
-
|
|
13
10
|
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; }
|
|
14
|
-
|
|
15
11
|
import _Set from "@babel/runtime-corejs3/core-js-stable/set";
|
|
16
12
|
import _Map from "@babel/runtime-corejs3/core-js-stable/map";
|
|
17
13
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
@@ -19,30 +15,22 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
|
|
|
19
15
|
import isLeafNode from '../isLeafNode';
|
|
20
16
|
import { arrayUtils } from '../others';
|
|
21
17
|
import console from '../console';
|
|
22
|
-
|
|
23
18
|
var Wrapper = /*#__PURE__*/_createClass(function Wrapper(input) {
|
|
24
19
|
_classCallCheck(this, Wrapper);
|
|
25
|
-
|
|
26
20
|
_extends(this, input);
|
|
27
21
|
});
|
|
28
|
-
|
|
29
22
|
var TreeDataHelper = /*#__PURE__*/function () {
|
|
30
23
|
function TreeDataHelper(opts) {
|
|
31
24
|
var _this = this;
|
|
32
|
-
|
|
33
25
|
_classCallCheck(this, TreeDataHelper);
|
|
34
|
-
|
|
35
26
|
this.isDetached = function (node) {
|
|
36
27
|
var _a, _b, _c;
|
|
37
|
-
|
|
38
28
|
return (_c = (_b = (_a = _this.opts).isDetached) === null || _b === void 0 ? void 0 : _b.call(_a, node)) !== null && _c !== void 0 ? _c : false;
|
|
39
29
|
};
|
|
40
|
-
|
|
41
30
|
this.opts = opts;
|
|
42
31
|
this.valueSet = new _Set(opts.value);
|
|
43
32
|
this.initWrapperTree();
|
|
44
33
|
}
|
|
45
|
-
|
|
46
34
|
_createClass(TreeDataHelper, [{
|
|
47
35
|
key: "value",
|
|
48
36
|
get: function get() {
|
|
@@ -59,33 +47,27 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
59
47
|
this.wrapperMap = new _Map();
|
|
60
48
|
var getNodeValue = this.opts.getNodeValue;
|
|
61
49
|
var isDetached = this.isDetached,
|
|
62
|
-
|
|
50
|
+
wrapperMap = this.wrapperMap;
|
|
63
51
|
dfs(this.rootWrapper, this.opts.tree, false);
|
|
64
|
-
|
|
65
52
|
function dfs(parentWrapper, nodes, inheritParentChecked) {
|
|
66
53
|
// allChildrenChecked 先默认设置为 true
|
|
67
54
|
// dfs 过程中可能会更新 allChildrenChecked
|
|
68
55
|
parentWrapper.allChildrenChecked = true;
|
|
69
|
-
|
|
70
56
|
if (process.env.NODE_ENV !== 'production') {
|
|
71
57
|
if (nodes.every(isDetached)) {
|
|
72
58
|
console.warn('TreeDataHelper 检测到部分节点的下所有子节点均为 detached 状态,这将导致该节点变为「无效节点」', parentWrapper.node);
|
|
73
59
|
}
|
|
74
60
|
}
|
|
75
|
-
|
|
76
61
|
var _iterator = _createForOfIteratorHelper(nodes),
|
|
77
|
-
|
|
78
|
-
|
|
62
|
+
_step;
|
|
79
63
|
try {
|
|
80
64
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
81
65
|
var node = _step.value;
|
|
82
66
|
var detached = isDetached(node);
|
|
83
67
|
var exactChecked = valueSet.has(getNodeValue(node));
|
|
84
|
-
|
|
85
68
|
if (exactChecked && !detached) {
|
|
86
69
|
parentWrapper.anyDescendentsChecked = true;
|
|
87
70
|
}
|
|
88
|
-
|
|
89
71
|
var parentChecked = !detached && inheritParentChecked;
|
|
90
72
|
var checked = exactChecked || parentChecked;
|
|
91
73
|
var wrapper = new Wrapper({
|
|
@@ -99,25 +81,20 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
99
81
|
});
|
|
100
82
|
wrapperMap.set(getNodeValue(node), wrapper);
|
|
101
83
|
parentWrapper.children.push(wrapper);
|
|
102
|
-
|
|
103
84
|
if (!isLeafNode(node)) {
|
|
104
85
|
wrapper.children = [];
|
|
105
86
|
dfs(wrapper, node.children, checked);
|
|
106
|
-
|
|
107
87
|
if (wrapper.anyDescendentsChecked && !detached) {
|
|
108
88
|
parentWrapper.anyDescendentsChecked = true;
|
|
109
89
|
}
|
|
110
|
-
|
|
111
90
|
if (wrapper.allChildrenChecked) {
|
|
112
|
-
wrapper.checked = true;
|
|
113
|
-
|
|
91
|
+
wrapper.checked = true;
|
|
92
|
+
// 当一个节点因为「子节点被全选」而变为 checked 时,我们需要更新子节点的 parentChecked 字段
|
|
114
93
|
var _iterator2 = _createForOfIteratorHelper(wrapper.children),
|
|
115
|
-
|
|
116
|
-
|
|
94
|
+
_step2;
|
|
117
95
|
try {
|
|
118
96
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
119
97
|
var child = _step2.value;
|
|
120
|
-
|
|
121
98
|
if (!child.detached) {
|
|
122
99
|
child.parentChecked = true;
|
|
123
100
|
}
|
|
@@ -129,7 +106,6 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
129
106
|
}
|
|
130
107
|
}
|
|
131
108
|
}
|
|
132
|
-
|
|
133
109
|
if (!wrapper.checked && !detached) {
|
|
134
110
|
parentWrapper.allChildrenChecked = false;
|
|
135
111
|
}
|
|
@@ -159,7 +135,6 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
159
135
|
if (this.isChecked(nodeValue)) {
|
|
160
136
|
return this.getCleanValue();
|
|
161
137
|
}
|
|
162
|
-
|
|
163
138
|
var nextValue = arrayUtils.merge(this.value, [nodeValue]);
|
|
164
139
|
return new TreeDataHelper(_extends(_extends({}, this.opts), {
|
|
165
140
|
value: nextValue
|
|
@@ -169,11 +144,9 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
169
144
|
key: "getValueAfterUncheck",
|
|
170
145
|
value: function getValueAfterUncheck(nodeValue) {
|
|
171
146
|
var _context;
|
|
172
|
-
|
|
173
147
|
if (!this.isChecked(nodeValue)) {
|
|
174
148
|
return this.getCleanValue();
|
|
175
149
|
}
|
|
176
|
-
|
|
177
150
|
var wrapper = this.wrapperMap.get(nodeValue);
|
|
178
151
|
var getNodeValue = this.opts.getNodeValue;
|
|
179
152
|
var appendArray = getAppendArray(wrapper);
|
|
@@ -182,23 +155,18 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
182
155
|
return new TreeDataHelper(_extends(_extends({}, this.opts), {
|
|
183
156
|
value: nextValue
|
|
184
157
|
})).getCleanValue();
|
|
185
|
-
|
|
186
158
|
function getAppendArray(startWrapper) {
|
|
187
159
|
var result = [];
|
|
188
160
|
var current = startWrapper;
|
|
189
|
-
|
|
190
161
|
while (current.parentChecked && !current.detached) {
|
|
191
162
|
var _iterator3 = _createForOfIteratorHelper(current.parent.children),
|
|
192
|
-
|
|
193
|
-
|
|
163
|
+
_step3;
|
|
194
164
|
try {
|
|
195
165
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
196
166
|
var sibling = _step3.value;
|
|
197
|
-
|
|
198
167
|
if (sibling === current || sibling.exactChecked || sibling.detached) {
|
|
199
168
|
continue;
|
|
200
169
|
}
|
|
201
|
-
|
|
202
170
|
result.push(getNodeValue(sibling.node));
|
|
203
171
|
}
|
|
204
172
|
} catch (err) {
|
|
@@ -206,45 +174,34 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
206
174
|
} finally {
|
|
207
175
|
_iterator3.f();
|
|
208
176
|
}
|
|
209
|
-
|
|
210
177
|
current = current.parent;
|
|
211
178
|
}
|
|
212
|
-
|
|
213
179
|
return result;
|
|
214
180
|
}
|
|
215
|
-
|
|
216
181
|
function getRemoveSet(startWrapper) {
|
|
217
182
|
var result = new _Set();
|
|
218
|
-
var wrapper = startWrapper;
|
|
219
|
-
|
|
183
|
+
var wrapper = startWrapper;
|
|
184
|
+
// 不断向上收集选中的父节点
|
|
220
185
|
while (true) {
|
|
221
186
|
result.add(getNodeValue(wrapper.node));
|
|
222
|
-
|
|
223
187
|
if (wrapper.detached || !wrapper.parentChecked) {
|
|
224
188
|
break;
|
|
225
189
|
}
|
|
226
|
-
|
|
227
190
|
wrapper = wrapper.parent;
|
|
228
191
|
}
|
|
229
|
-
|
|
230
192
|
function dfs(wrappers) {
|
|
231
193
|
if (wrappers == null) {
|
|
232
194
|
return;
|
|
233
195
|
}
|
|
234
|
-
|
|
235
196
|
var _iterator4 = _createForOfIteratorHelper(wrappers),
|
|
236
|
-
|
|
237
|
-
|
|
197
|
+
_step4;
|
|
238
198
|
try {
|
|
239
199
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
240
200
|
var _wrapper = _step4.value;
|
|
241
|
-
|
|
242
201
|
if (_wrapper.detached || !_wrapper.checked) {
|
|
243
202
|
continue;
|
|
244
203
|
}
|
|
245
|
-
|
|
246
204
|
result.add(getNodeValue(_wrapper.node));
|
|
247
|
-
|
|
248
205
|
if (!isLeafNode(_wrapper) && _wrapper.anyDescendentsChecked) {
|
|
249
206
|
dfs(_wrapper.children);
|
|
250
207
|
}
|
|
@@ -254,9 +211,8 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
254
211
|
} finally {
|
|
255
212
|
_iterator4.f();
|
|
256
213
|
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
|
|
214
|
+
}
|
|
215
|
+
// 收集所有的子孙节点
|
|
260
216
|
dfs(startWrapper.children);
|
|
261
217
|
return result;
|
|
262
218
|
}
|
|
@@ -274,34 +230,27 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
274
230
|
key: "getNode",
|
|
275
231
|
value: function getNode(nodeValue) {
|
|
276
232
|
var _a;
|
|
277
|
-
|
|
278
233
|
return (_a = this.wrapperMap.get(nodeValue)) === null || _a === void 0 ? void 0 : _a.node;
|
|
279
234
|
}
|
|
280
235
|
}, {
|
|
281
236
|
key: "getCleanValue",
|
|
282
237
|
value: function getCleanValue() {
|
|
283
238
|
var _context2,
|
|
284
|
-
|
|
285
|
-
|
|
239
|
+
_this2 = this;
|
|
286
240
|
var _this$opts = this.opts,
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
241
|
+
checkedStrategy = _this$opts.checkedStrategy,
|
|
242
|
+
getNodeValue = _this$opts.getNodeValue;
|
|
290
243
|
var result = _filterInstanceProperty(_context2 = this.value).call(_context2, function (nodeValue) {
|
|
291
244
|
return !_this2.wrapperMap.has(nodeValue);
|
|
292
245
|
});
|
|
293
|
-
|
|
294
246
|
dfs(this.rootWrapper.children);
|
|
295
247
|
return result;
|
|
296
|
-
|
|
297
248
|
function dfs(wrappers) {
|
|
298
249
|
var _iterator5 = _createForOfIteratorHelper(wrappers),
|
|
299
|
-
|
|
300
|
-
|
|
250
|
+
_step5;
|
|
301
251
|
try {
|
|
302
252
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
303
253
|
var wrapper = _step5.value;
|
|
304
|
-
|
|
305
254
|
if (wrapper.checked) {
|
|
306
255
|
if (checkedStrategy === 'all') {
|
|
307
256
|
result.push(getNodeValue(wrapper.node));
|
|
@@ -316,7 +265,6 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
316
265
|
}
|
|
317
266
|
}
|
|
318
267
|
}
|
|
319
|
-
|
|
320
268
|
if (!isLeafNode(wrapper)) {
|
|
321
269
|
dfs(wrapper.children);
|
|
322
270
|
}
|
|
@@ -329,8 +277,6 @@ var TreeDataHelper = /*#__PURE__*/function () {
|
|
|
329
277
|
}
|
|
330
278
|
}
|
|
331
279
|
}]);
|
|
332
|
-
|
|
333
280
|
return TreeDataHelper;
|
|
334
281
|
}();
|
|
335
|
-
|
|
336
282
|
export { TreeDataHelper as default };
|
package/lib/_utils/arrayUtil.js
CHANGED
|
@@ -4,23 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.isArrayValueRepeat = void 0;
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* 检查数组value的值是否唯一
|
|
10
9
|
* @param value 需要检查值是否唯一的数组
|
|
11
10
|
*/
|
|
12
11
|
var isArrayValueRepeat = function isArrayValueRepeat(value) {
|
|
13
12
|
var hash = {};
|
|
14
|
-
|
|
15
13
|
for (var i in value) {
|
|
16
14
|
if (hash[value[i]]) {
|
|
17
15
|
return true;
|
|
18
16
|
}
|
|
19
|
-
|
|
20
17
|
hash[value[i]] = true;
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
return false;
|
|
24
20
|
};
|
|
25
|
-
|
|
26
21
|
exports.isArrayValueRepeat = isArrayValueRepeat;
|
package/lib/_utils/devwarning.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
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.default = _default;
|
|
9
|
-
|
|
10
8
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
11
|
-
|
|
12
9
|
var warned = {};
|
|
13
|
-
|
|
14
10
|
function _default(valid, component, message) {
|
|
15
11
|
if (process.env.NODE_ENV !== 'production' && valid && !warned[message]) {
|
|
16
12
|
var _context;
|
|
17
|
-
|
|
18
13
|
warned[message] = true;
|
|
19
14
|
console.warn((0, _concat.default)(_context = "Warning: [kd-ui]-".concat(component, ": ")).call(_context, message));
|
|
20
15
|
}
|
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
|
}
|