util-helpers 4.16.2 → 4.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/dist/util-helpers.js +1542 -4040
  2. package/dist/util-helpers.js.map +1 -1
  3. package/dist/util-helpers.min.js +1 -1
  4. package/dist/util-helpers.min.js.map +1 -1
  5. package/esm/ajax.js +50 -146
  6. package/esm/blobToDataURL.js +4 -34
  7. package/esm/bytesToSize.js +12 -37
  8. package/esm/calculateCursorPosition.js +30 -52
  9. package/esm/dataURLToBlob.js +14 -28
  10. package/esm/divide.js +24 -48
  11. package/esm/download.js +83 -164
  12. package/esm/fileReader.js +18 -64
  13. package/esm/filterTree.js +25 -55
  14. package/esm/findTreeNode.js +39 -67
  15. package/esm/findTreeNodes.js +35 -66
  16. package/esm/findTreeSelect.js +38 -74
  17. package/esm/formatBankCard.js +13 -43
  18. package/esm/formatMobile.js +17 -43
  19. package/esm/formatMoney.js +59 -139
  20. package/esm/index.js +55 -130
  21. package/esm/isBankCard.js +22 -57
  22. package/esm/isBusinessLicense.js +32 -78
  23. package/esm/isChinese.js +23 -66
  24. package/esm/isEmail.js +6 -21
  25. package/esm/isHMCard.js +5 -28
  26. package/esm/isIPv4.js +5 -22
  27. package/esm/isIPv6.js +5 -36
  28. package/esm/isIdCard.js +27 -66
  29. package/esm/isMobile.js +5 -20
  30. package/esm/isPassport.js +5 -22
  31. package/esm/isPassword.js +7 -48
  32. package/esm/isPostcode.js +5 -20
  33. package/esm/isPromiseLike.js +3 -18
  34. package/esm/isQQ.js +5 -20
  35. package/esm/isSocialCreditCode.js +28 -83
  36. package/esm/isSwiftCode.js +6 -25
  37. package/esm/isTWCard.js +11 -37
  38. package/esm/isTelephone.js +6 -27
  39. package/esm/isUrl.js +5 -44
  40. package/esm/isVehicle.js +5 -28
  41. package/esm/isWX.js +5 -20
  42. package/esm/listToTree.js +51 -120
  43. package/esm/minus.js +21 -39
  44. package/esm/normalizeString.js +8 -29
  45. package/esm/numberToChinese.js +96 -215
  46. package/esm/padZero.js +14 -36
  47. package/esm/parseIdCard.js +64 -129
  48. package/esm/plus.js +21 -39
  49. package/esm/randomString.js +13 -45
  50. package/esm/replaceChar.js +27 -77
  51. package/esm/round.js +14 -31
  52. package/esm/safeDate.js +12 -55
  53. package/esm/setDataURLPrefix.js +6 -29
  54. package/esm/strlen.js +14 -30
  55. package/esm/times.js +24 -42
  56. package/esm/transformFieldNames.js +37 -93
  57. package/esm/treeToList.js +25 -84
  58. package/esm/utils/config.js +4 -14
  59. package/esm/utils/constants.js +4 -4
  60. package/esm/utils/convertToString.js +4 -9
  61. package/esm/utils/devWarn.js +11 -11
  62. package/esm/utils/math.util.js +95 -181
  63. package/esm/utils/type/isBlob.js +4 -24
  64. package/esm/utils/type/isNaN.js +4 -19
  65. package/esm/utils/type/isNil.js +5 -13
  66. package/esm/utils/type/isNull.js +3 -18
  67. package/esm/utils/type/isNumber.js +4 -28
  68. package/esm/utils/type/isObject.js +4 -23
  69. package/esm/utils/type/isString.js +4 -19
  70. package/esm/utils/type/isSymbol.js +4 -19
  71. package/esm/utils/type/isType.js +3 -12
  72. package/esm/utils/type/isUndefined.js +3 -21
  73. package/esm/validatePassword.js +86 -237
  74. package/esm/waitTime.js +7 -26
  75. package/lib/ajax.js +51 -152
  76. package/lib/blobToDataURL.js +5 -40
  77. package/lib/bytesToSize.js +13 -43
  78. package/lib/calculateCursorPosition.js +32 -58
  79. package/lib/dataURLToBlob.js +15 -34
  80. package/lib/divide.js +26 -60
  81. package/lib/download.js +85 -169
  82. package/lib/fileReader.js +19 -70
  83. package/lib/filterTree.js +27 -66
  84. package/lib/findTreeNode.js +40 -77
  85. package/lib/findTreeNodes.js +36 -76
  86. package/lib/findTreeSelect.js +40 -82
  87. package/lib/formatBankCard.js +15 -50
  88. package/lib/formatMobile.js +19 -50
  89. package/lib/formatMoney.js +60 -150
  90. package/lib/index.js +117 -395
  91. package/lib/isBankCard.js +24 -64
  92. package/lib/isBusinessLicense.js +34 -85
  93. package/lib/isChinese.js +24 -73
  94. package/lib/isEmail.js +7 -27
  95. package/lib/isHMCard.js +7 -35
  96. package/lib/isIPv4.js +7 -29
  97. package/lib/isIPv6.js +7 -43
  98. package/lib/isIdCard.js +29 -73
  99. package/lib/isMobile.js +7 -27
  100. package/lib/isPassport.js +7 -29
  101. package/lib/isPassword.js +9 -55
  102. package/lib/isPostcode.js +7 -27
  103. package/lib/isPromiseLike.js +4 -24
  104. package/lib/isQQ.js +7 -27
  105. package/lib/isSocialCreditCode.js +30 -90
  106. package/lib/isSwiftCode.js +7 -32
  107. package/lib/isTWCard.js +13 -44
  108. package/lib/isTelephone.js +7 -33
  109. package/lib/isUrl.js +6 -49
  110. package/lib/isVehicle.js +7 -35
  111. package/lib/isWX.js +7 -27
  112. package/lib/listToTree.js +53 -131
  113. package/lib/minus.js +23 -51
  114. package/lib/normalizeString.js +10 -36
  115. package/lib/numberToChinese.js +98 -222
  116. package/lib/padZero.js +16 -43
  117. package/lib/parseIdCard.js +65 -138
  118. package/lib/plus.js +23 -51
  119. package/lib/randomString.js +14 -51
  120. package/lib/replaceChar.js +28 -83
  121. package/lib/round.js +15 -37
  122. package/lib/safeDate.js +13 -63
  123. package/lib/setDataURLPrefix.js +7 -35
  124. package/lib/strlen.js +16 -37
  125. package/lib/times.js +26 -53
  126. package/lib/transformFieldNames.js +38 -101
  127. package/lib/treeToList.js +27 -94
  128. package/lib/utils/config.js +6 -23
  129. package/lib/utils/constants.js +3 -11
  130. package/lib/utils/convertToString.js +6 -16
  131. package/lib/utils/devWarn.js +13 -17
  132. package/lib/utils/math.util.js +95 -185
  133. package/lib/utils/type/isBlob.js +6 -31
  134. package/lib/utils/type/isNaN.js +6 -26
  135. package/lib/utils/type/isNil.js +7 -20
  136. package/lib/utils/type/isNull.js +4 -24
  137. package/lib/utils/type/isNumber.js +6 -35
  138. package/lib/utils/type/isObject.js +5 -29
  139. package/lib/utils/type/isString.js +6 -26
  140. package/lib/utils/type/isSymbol.js +6 -26
  141. package/lib/utils/type/isType.js +4 -18
  142. package/lib/utils/type/isUndefined.js +4 -27
  143. package/lib/validatePassword.js +87 -244
  144. package/lib/waitTime.js +8 -32
  145. package/package.json +21 -25
  146. package/types/ajax.d.ts +38 -95
  147. package/types/blobToDataURL.d.ts +2 -2
  148. package/types/bytesToSize.d.ts +7 -6
  149. package/types/calculateCursorPosition.d.ts +10 -9
  150. package/types/dataURLToBlob.d.ts +5 -5
  151. package/types/divide.d.ts +2 -2
  152. package/types/download.d.ts +22 -38
  153. package/types/fileReader.d.ts +35 -2
  154. package/types/filterTree.d.ts +6 -7
  155. package/types/findTreeNode.d.ts +5 -7
  156. package/types/findTreeNodes.d.ts +5 -7
  157. package/types/findTreeSelect.d.ts +5 -7
  158. package/types/formatBankCard.d.ts +8 -5
  159. package/types/formatMobile.d.ts +7 -4
  160. package/types/formatMoney.d.ts +8 -7
  161. package/types/index.d.ts +125 -55
  162. package/types/isBankCard.d.ts +9 -8
  163. package/types/isBusinessLicense.d.ts +8 -5
  164. package/types/isChinese.d.ts +9 -8
  165. package/types/isEmail.d.ts +1 -1
  166. package/types/isHMCard.d.ts +2 -2
  167. package/types/isIPv4.d.ts +1 -1
  168. package/types/isIPv6.d.ts +1 -1
  169. package/types/isIdCard.d.ts +8 -7
  170. package/types/isMobile.d.ts +1 -1
  171. package/types/isPassport.d.ts +2 -2
  172. package/types/isPassword.d.ts +4 -7
  173. package/types/isPostcode.d.ts +1 -1
  174. package/types/isPromiseLike.d.ts +1 -1
  175. package/types/isQQ.d.ts +1 -1
  176. package/types/isSocialCreditCode.d.ts +8 -5
  177. package/types/isSwiftCode.d.ts +2 -2
  178. package/types/isTWCard.d.ts +6 -5
  179. package/types/isTelephone.d.ts +1 -1
  180. package/types/isUrl.d.ts +2 -2
  181. package/types/isVehicle.d.ts +2 -2
  182. package/types/isWX.d.ts +1 -1
  183. package/types/listToTree.d.ts +12 -12
  184. package/types/minus.d.ts +3 -2
  185. package/types/normalizeString.d.ts +2 -2
  186. package/types/numberToChinese.d.ts +13 -12
  187. package/types/padZero.d.ts +2 -2
  188. package/types/parseIdCard.d.ts +17 -56
  189. package/types/plus.d.ts +3 -2
  190. package/types/randomString.d.ts +2 -2
  191. package/types/replaceChar.d.ts +15 -11
  192. package/types/round.d.ts +2 -2
  193. package/types/safeDate.d.ts +24 -2
  194. package/types/setDataURLPrefix.d.ts +5 -5
  195. package/types/strlen.d.ts +1 -1
  196. package/types/times.d.ts +3 -2
  197. package/types/transformFieldNames.d.ts +12 -10
  198. package/types/treeToList.d.ts +1 -1
  199. package/types/utils/config.d.ts +6 -5
  200. package/types/utils/constants.d.ts +2 -2
  201. package/types/utils/convertToString.d.ts +1 -1
  202. package/types/utils/devWarn.d.ts +1 -1
  203. package/types/utils/math.util.d.ts +15 -9
  204. package/types/utils/type/index.d.ts +7 -0
  205. package/types/utils/type/isArguments.d.ts +1 -1
  206. package/types/utils/type/isArray.d.ts +1 -1
  207. package/types/utils/type/isArrayBuffer.d.ts +1 -1
  208. package/types/utils/type/isBlob.d.ts +1 -1
  209. package/types/utils/type/isBoolean.d.ts +1 -1
  210. package/types/utils/type/isDate.d.ts +1 -1
  211. package/types/utils/type/isError.d.ts +1 -1
  212. package/types/utils/type/isFunction.d.ts +1 -1
  213. package/types/utils/type/isMap.d.ts +1 -1
  214. package/types/utils/type/isNaN.d.ts +1 -1
  215. package/types/utils/type/isNil.d.ts +1 -1
  216. package/types/utils/type/isNull.d.ts +1 -1
  217. package/types/utils/type/isNumber.d.ts +1 -1
  218. package/types/utils/type/isObject.d.ts +1 -1
  219. package/types/utils/type/isRegExp.d.ts +1 -1
  220. package/types/utils/type/isSet.d.ts +1 -1
  221. package/types/utils/type/isString.d.ts +1 -1
  222. package/types/utils/type/isSymbol.d.ts +1 -1
  223. package/types/utils/type/isType.d.ts +1 -1
  224. package/types/utils/type/isUndefined.d.ts +1 -1
  225. package/types/utils/type/isWeakMap.d.ts +1 -1
  226. package/types/utils/type/isWeakSet.d.ts +1 -1
  227. package/types/validatePassword.d.ts +17 -48
  228. package/types/waitTime.d.ts +2 -2
  229. package/esm/interface.doc.js +0 -125
  230. package/esm/interface.type.js +0 -17
  231. package/esm/utils/type/index.js +0 -29
  232. package/esm/utils/type/isArguments.js +0 -22
  233. package/esm/utils/type/isArray.js +0 -22
  234. package/esm/utils/type/isArrayBuffer.js +0 -25
  235. package/esm/utils/type/isBoolean.js +0 -22
  236. package/esm/utils/type/isDate.js +0 -22
  237. package/esm/utils/type/isError.js +0 -22
  238. package/esm/utils/type/isFunction.js +0 -22
  239. package/esm/utils/type/isMap.js +0 -22
  240. package/esm/utils/type/isRegExp.js +0 -22
  241. package/esm/utils/type/isSet.js +0 -22
  242. package/esm/utils/type/isWeakMap.js +0 -22
  243. package/esm/utils/type/isWeakSet.js +0 -22
  244. package/lib/interface.doc.js +0 -127
  245. package/lib/interface.type.js +0 -5
  246. package/lib/utils/type/index.js +0 -146
  247. package/lib/utils/type/isArguments.js +0 -29
  248. package/lib/utils/type/isArray.js +0 -29
  249. package/lib/utils/type/isArrayBuffer.js +0 -32
  250. package/lib/utils/type/isBoolean.js +0 -29
  251. package/lib/utils/type/isDate.js +0 -29
  252. package/lib/utils/type/isError.js +0 -29
  253. package/lib/utils/type/isFunction.js +0 -29
  254. package/lib/utils/type/isMap.js +0 -29
  255. package/lib/utils/type/isRegExp.js +0 -29
  256. package/lib/utils/type/isSet.js +0 -29
  257. package/lib/utils/type/isWeakMap.js +0 -29
  258. package/lib/utils/type/isWeakSet.js +0 -29
  259. package/types/interface.type.d.ts +0 -2
@@ -1,71 +1,40 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
3
- import { isObject } from "./utils/type";
1
+ import { __values, __spreadArray, __read } from 'tslib';
2
+ import isObject from './utils/type/isObject.js';
4
3
 
5
- /**
6
- * 查找树结构数据多个节点
7
- *
8
- * @static
9
- * @alias module:Tree.findTreeNodes
10
- * @since 4.15.0
11
- * @template {any} T
12
- * @template {(item: T) => boolean} F
13
- * @param {T[]} tree 树结构数据
14
- * @param {F} predicate 遍历每一项执行的函数,参数是当前遍历到的节点数据,如果返回 Truthy ,返回结果将包含该节点
15
- * @param {string} [childrenField='children'] 子级字段名
16
- * @returns {T[]}
17
- * @example
18
- * const menus = [{ "id": "1", "name": "首页", "code": "trade", "pid": null }, { "id": "2", "name": "交易管理", "code": "trade", "pid": null, "children": [{ "id": "3", "name": "交易查询", "code": "trade-1", "pid": "2", "children": [{ "id": "4", "name": "交易查询-查询操作", "code": "trade-1-1", "pid": "3" }] }] }, { "id": "5", "name": "权限管理", "code": "authorization", "pid": null, "children": [{ "id": "6", "name": "角色管理", "code": "authorization-1", "pid": "5" }, { "id": "7", "name": "用户管理", "code": "authorization-2", "pid": "5" }] }];
19
- *
20
- * findTreeNodes(menus, item=>item.id === '2');
21
- * // [{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]}]
22
- *
23
- * findTreeNodes(menus, item=>item.name.indexOf('管理') > -1);
24
- * // [{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]},{"id":"5","name":"权限管理","code":"authorization","pid":null,"children":[{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"},{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"}]
25
- *
26
- * findTreeNodes(menus, item=>item.id === '1' || item.id === '7');
27
- * // [{"id":"1","name":"首页","code":"trade","pid":null},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]
28
- *
29
- * findTreeNodes(menus, item=>item.id === 'not found');
30
- * // []
31
- */
32
- function findTreeNodes(tree, predicate) {
33
- var childrenField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'children';
34
- var stack = [];
35
-
36
- /** @type {T[]} */
37
- var nodes = [];
38
- if (!Array.isArray(tree)) {
39
- return nodes;
40
- }
41
- var _iterator = _createForOfIteratorHelper(tree),
42
- _step;
43
- try {
44
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
45
- var item = _step.value;
46
- stack.push(item);
47
- while (stack.length) {
48
- /** @type {T} */
49
- // @ts-ignore
50
- var temp = stack.pop();
51
- if (predicate(temp)) {
52
- nodes.push(temp);
4
+ function findTreeNodes(tree, predicate, childrenField) {
5
+ var e_1, _a;
6
+ if (childrenField === void 0) { childrenField = 'children'; }
7
+ var stack = [];
8
+ var nodes = [];
9
+ if (!Array.isArray(tree)) {
10
+ return nodes;
11
+ }
12
+ try {
13
+ for (var tree_1 = __values(tree), tree_1_1 = tree_1.next(); !tree_1_1.done; tree_1_1 = tree_1.next()) {
14
+ var item = tree_1_1.value;
15
+ stack.push(item);
16
+ while (stack.length) {
17
+ var temp = stack.pop();
18
+ if (predicate(temp)) {
19
+ nodes.push(temp);
20
+ }
21
+ if (isObject(temp)) {
22
+ var childs = temp[childrenField];
23
+ if (Array.isArray(childs) && childs.length > 0) {
24
+ stack.push.apply(stack, __spreadArray([], __read(childs), false));
25
+ }
26
+ }
27
+ }
53
28
  }
54
- if (isObject(temp)) {
55
- /** @type {T[]} */
56
- // @ts-ignore
57
- var childs = temp[childrenField];
58
- if (Array.isArray(childs) && childs.length > 0) {
59
- stack.push.apply(stack, _toConsumableArray(childs));
60
- }
29
+ }
30
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
31
+ finally {
32
+ try {
33
+ if (tree_1_1 && !tree_1_1.done && (_a = tree_1.return)) _a.call(tree_1);
61
34
  }
62
- }
35
+ finally { if (e_1) throw e_1.error; }
63
36
  }
64
- } catch (err) {
65
- _iterator.e(err);
66
- } finally {
67
- _iterator.f();
68
- }
69
- return nodes;
37
+ return nodes;
70
38
  }
71
- export default findTreeNodes;
39
+
40
+ export { findTreeNodes as default };
@@ -1,79 +1,43 @@
1
- import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
2
- import { isObject } from "./utils/type";
1
+ import { __values } from 'tslib';
2
+ import isObject from './utils/type/isObject.js';
3
3
 
4
- /**
5
- * 内部实现
6
- *
7
- * @private
8
- * @template {any} T
9
- * @template {(item: T) => boolean} F
10
- * @param {T[]} tree 树结构数据
11
- * @param {F} predicate 遍历每一项执行的函数,参数是当前遍历到的节点数据,如果返回 Truthy 将返回包含该节点的所有父级节点
12
- * @param {string} [childrenField] 子级字段名
13
- * @param {T[]} [path=[]] 当前遍历路径
14
- * @returns {T[]}
15
- */
16
- function internalFindTreeSelect(tree, predicate, childrenField) {
17
- var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
18
- if (!Array.isArray(tree)) {
19
- return [];
20
- }
21
- var _iterator = _createForOfIteratorHelper(tree),
22
- _step;
23
- try {
24
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
25
- var item = _step.value;
26
- path.push(item);
27
- if (predicate(item)) {
28
- return path;
29
- }
30
- if (isObject(item)) {
31
- /** @type {T[]} */
32
- // @ts-ignore
33
- var childs = item[childrenField];
34
- if (Array.isArray(childs) && childs.length > 0) {
35
- var findChildren = internalFindTreeSelect(childs, predicate, childrenField, path);
36
- if (findChildren.length > 0) {
37
- return findChildren;
38
- }
4
+ function internalFindTreeSelect(tree, predicate, childrenField, path) {
5
+ var e_1, _a;
6
+ if (path === void 0) { path = []; }
7
+ if (!Array.isArray(tree)) {
8
+ return [];
9
+ }
10
+ try {
11
+ for (var tree_1 = __values(tree), tree_1_1 = tree_1.next(); !tree_1_1.done; tree_1_1 = tree_1.next()) {
12
+ var item = tree_1_1.value;
13
+ path.push(item);
14
+ if (predicate(item)) {
15
+ return path;
16
+ }
17
+ if (isObject(item)) {
18
+ var childs = item[childrenField];
19
+ if (Array.isArray(childs) && childs.length > 0) {
20
+ var findChildren = internalFindTreeSelect(childs, predicate, childrenField, path);
21
+ if (findChildren.length > 0) {
22
+ return findChildren;
23
+ }
24
+ }
25
+ }
26
+ path.pop();
27
+ }
28
+ }
29
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
30
+ finally {
31
+ try {
32
+ if (tree_1_1 && !tree_1_1.done && (_a = tree_1.return)) _a.call(tree_1);
39
33
  }
40
- }
41
- path.pop();
34
+ finally { if (e_1) throw e_1.error; }
42
35
  }
43
- } catch (err) {
44
- _iterator.e(err);
45
- } finally {
46
- _iterator.f();
47
- }
48
- return [];
36
+ return [];
49
37
  }
50
-
51
- /**
52
- * 查找包含当前节点的所有父级节点
53
- *
54
- * @static
55
- * @alias module:Tree.findTreeSelect
56
- * @since 4.14.0
57
- * @template {any} T
58
- * @template {(item: T) => boolean} F
59
- * @param {T[]} tree 树结构数据
60
- * @param {F} predicate 遍历每一项执行的函数,参数是当前遍历到的节点数据,如果返回 Truthy 将返回包含该节点的所有父级节点
61
- * @param {string} [childrenField='children'] 子级字段名
62
- * @returns {T[]}
63
- * @example
64
- * const menus = [{ "id": "1", "name": "首页", "code": "trade", "pid": null }, { "id": "2", "name": "交易管理", "code": "trade", "pid": null, "children": [{ "id": "3", "name": "交易查询", "code": "trade-1", "pid": "2", "children": [{ "id": "4", "name": "交易查询-查询操作", "code": "trade-1-1", "pid": "3" }] }] }, { "id": "5", "name": "权限管理", "code": "authorization", "pid": null, "children": [{ "id": "6", "name": "角色管理", "code": "authorization-1", "pid": "5" }, { "id": "7", "name": "用户管理", "code": "authorization-2", "pid": "5" }] }];
65
- *
66
- * findTreeSelect(menus, item => item.id === '2');
67
- * // [{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]}]
68
- *
69
- * findTreeSelect(menus, item => item.id === '7');
70
- * // [{"id":"5","name":"权限管理","code":"authorization","pid":null,"children":[{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]
71
- *
72
- * findTreeSelect(menus, item => item.id === 'not found');
73
- * // []
74
- */
75
- function findTreeSelect(tree, predicate) {
76
- var childrenField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'children';
77
- return internalFindTreeSelect(tree, predicate, childrenField);
38
+ function findTreeSelect(tree, predicate, childrenField) {
39
+ if (childrenField === void 0) { childrenField = 'children'; }
40
+ return internalFindTreeSelect(tree, predicate, childrenField);
78
41
  }
79
- export default findTreeSelect;
42
+
43
+ export { findTreeSelect as default };
@@ -1,45 +1,15 @@
1
- import normalizeString from './normalizeString';
1
+ import normalizeString from './normalizeString.js';
2
2
 
3
- /**
4
- * 格式化银行卡号
5
- *
6
- * @static
7
- * @alias module:Processor.formatBankCard
8
- * @since 1.1.0
9
- * @param {string} bankCardNo 要处理的字符串
10
- * @param {Object} [options] 配置项
11
- * @param {string} [options.spaceMark=' '] 间隔字符
12
- * @param {number} [options.length=4] 间隔长度
13
- * @returns {string} 格式化的银行卡号
14
- * @example
15
- *
16
- * // 19位银行卡
17
- * formatBankCard('6228480402564890018'); // 6228 4804 0256 4890 018
18
- *
19
- * // 16位银行卡
20
- * formatBankCard('6228480402564890'); // 6228 4804 0256 4890
21
- *
22
- * // 脱敏银行卡
23
- * formatBankCard('6228********890'); // 6228 **** **** 890
24
- *
25
- * // 16位银行卡,"-"间隔
26
- * formatBankCard('6228480402564890', {spaceMark: '-'}); // 6228-4804-0256-4890
27
- *
28
- */
29
- function formatBankCard() {
30
- var bankCardNo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
31
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
32
- // @ts-ignore
33
- // TODO 下个版本废弃 char
34
- var _options$char = options["char"],
35
- _char = _options$char === void 0 ? ' ' : _options$char,
36
- _options$length = options.length,
37
- length = _options$length === void 0 ? 4 : _options$length;
38
- var realSpaceMark = 'spaceMark' in options ? options.spaceMark : _char;
39
- var reg = new RegExp("(.{".concat(length, "})"), 'g');
40
- var regChar = new RegExp("".concat(realSpaceMark), 'g');
41
- var realValue = normalizeString(bankCardNo).replace(regChar, '');
42
- var str = realValue.replace(reg, "$1".concat(realSpaceMark));
43
- return realValue.length % length === 0 ? str.substring(0, str.length - 1) : str;
3
+ function formatBankCard(bankCardNo, options) {
4
+ if (bankCardNo === void 0) { bankCardNo = ''; }
5
+ if (options === void 0) { options = {}; }
6
+ var _a = options.char, char = _a === void 0 ? ' ' : _a, _b = options.length, length = _b === void 0 ? 4 : _b;
7
+ var realSpaceMark = 'spaceMark' in options ? options.spaceMark : char;
8
+ var reg = new RegExp("(.{".concat(length, "})"), 'g');
9
+ var regChar = new RegExp("".concat(realSpaceMark), 'g');
10
+ var realValue = normalizeString(bankCardNo).replace(regChar, '');
11
+ var str = realValue.replace(reg, "$1".concat(realSpaceMark));
12
+ return realValue.length % length === 0 ? str.substring(0, str.length - 1) : str;
44
13
  }
45
- export default formatBankCard;
14
+
15
+ export { formatBankCard as default };
@@ -1,45 +1,19 @@
1
- import normalizeString from './normalizeString';
1
+ import normalizeString from './normalizeString.js';
2
2
 
3
- /**
4
- * 格式化手机号码
5
- *
6
- * @static
7
- * @alias module:Processor.formatMobile
8
- * @since 4.5.0
9
- * @param {string} mobileNo 手机号码
10
- * @param {object} [options] 配置项
11
- * @param {string} [options.spaceMark=' '] 间隔字符
12
- * @returns {string} 格式化后的手机号码
13
- * @example
14
- *
15
- * formatMobile('13345678900'); // 133 4567 8900
16
- * formatMobile('13345678900', { spaceMark: '-' }); // 133-4567-8900
17
- *
18
- * // 脱敏手机号码
19
- * formatMobile('133****1234'); // 133 **** 1234
20
- * formatMobile('133****1234', { spaceMark: '-' }); // 133-****-1234
21
- *
22
- * // 手机号码位数不够
23
- * formatMobile('133'); // 133
24
- * formatMobile('133456'); // 133 456
25
- * formatMobile('13345678'); // 133 4567 8
26
- *
27
- */
28
- function formatMobile(mobileNo) {
29
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
30
- // @ts-ignore
31
- // TODO 下个版本废弃 char
32
- var _options$char = options["char"],
33
- _char = _options$char === void 0 ? ' ' : _options$char;
34
- var realSpaceMark = 'spaceMark' in options ? options.spaceMark : _char;
35
- var regChar = new RegExp(realSpaceMark, 'g');
36
- var realValue = normalizeString(mobileNo).replace(regChar, '').substring(0, 11);
37
- if (realValue.length > 7) {
38
- return realValue.replace(/^(...)(....)/g, "$1".concat(realSpaceMark, "$2").concat(realSpaceMark));
39
- }
40
- if (realValue.length > 3) {
41
- return realValue.replace(/^(...)/g, "$1".concat(realSpaceMark));
42
- }
43
- return realValue;
3
+ function formatMobile(mobileNo, options) {
4
+ if (mobileNo === void 0) { mobileNo = ''; }
5
+ if (options === void 0) { options = {}; }
6
+ var _a = options.char, char = _a === void 0 ? ' ' : _a;
7
+ var realSpaceMark = 'spaceMark' in options ? options.spaceMark : char;
8
+ var regChar = new RegExp(realSpaceMark, 'g');
9
+ var realValue = normalizeString(mobileNo).replace(regChar, '').substring(0, 11);
10
+ if (realValue.length > 7) {
11
+ return realValue.replace(/^(...)(....)/g, "$1".concat(realSpaceMark, "$2").concat(realSpaceMark));
12
+ }
13
+ if (realValue.length > 3) {
14
+ return realValue.replace(/^(...)/g, "$1".concat(realSpaceMark));
15
+ }
16
+ return realValue;
44
17
  }
45
- export default formatMobile;
18
+
19
+ export { formatMobile as default };
@@ -1,147 +1,67 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { checkBoundary, scientificToNumber, isScientificNumber } from './utils/math.util';
3
- import isNaN from './utils/type/isNaN';
4
- import { trimLeftZero } from './utils/math.util';
5
- import devWarn from './utils/devWarn';
6
- var reg = /^[+-]?\d*\.?\d*$/;
1
+ import { __read } from 'tslib';
2
+ import { scientificToNumber, isScientificNumber, checkBoundary, trimLeftZero } from './utils/math.util.js';
3
+ import _isNaN from './utils/type/isNaN.js';
4
+ import devWarn from './utils/devWarn.js';
7
5
 
8
- /**
9
- * 检查数字或数字字符串
10
- *
11
- * @private
12
- * @param {string} num
13
- * @returns 是否为数字
14
- */
6
+ var reg = /^[+-]?\d*\.?\d*$/;
15
7
  function checkNumber(num) {
16
- if (!(reg.test(num) || isScientificNumber(num)) || isNaN(num) || typeof num !== 'number' && typeof num !== 'string' || num === '') {
17
- devWarn("".concat(num, " invalid parameter."));
18
- return false;
19
- }
20
-
21
- // 数字超限如果不是是字符串,可能有异常
22
- // 如 1111111111111111111111 // => 1.1111111111111111e+21
23
- if (typeof num === 'number') {
24
- checkBoundary(num);
25
- }
26
- return true;
8
+ if ((typeof num !== 'number' && typeof num !== 'string') || (typeof num === 'number' && _isNaN(num)) || (typeof num === 'string' && (!(reg.test(num) || isScientificNumber(num)) || num === ''))) {
9
+ devWarn("".concat(num, " invalid parameter."));
10
+ return false;
11
+ }
12
+ if (typeof num === 'number') {
13
+ checkBoundary(num);
14
+ }
15
+ return true;
27
16
  }
28
-
29
- /**
30
- * 格式化整数部分
31
- *
32
- * @private
33
- * @param {string} intStr 数字字符串
34
- * @param {string} thousand 千分位符号
35
- * @returns 格式化后的值
36
- */
37
17
  function formatInt(intStr, thousand) {
38
- var txt = '';
39
- intStr = trimLeftZero(intStr);
40
- intStr = intStr[0] === '+' ? intStr.substring(1) : intStr; // 去掉+符号
41
- var negativeSymbol = Number(intStr) < 0 ? '-' : '';
42
- var reArr = negativeSymbol ? intStr.substring(1).split('').reverse() : intStr.split('').reverse();
43
- for (var i = 0; i < reArr.length; i++) {
44
- txt += reArr[i] + ((i + 1) % 3 === 0 && i + 1 !== reArr.length ? thousand : '');
45
- }
46
- return negativeSymbol + txt.split('').reverse().join('');
18
+ var txt = '';
19
+ intStr = trimLeftZero(intStr);
20
+ intStr = intStr[0] === '+' ? intStr.substring(1) : intStr;
21
+ var negativeSymbol = Number(intStr) < 0 ? '-' : '';
22
+ var reArr = negativeSymbol ? intStr.substring(1).split('').reverse() : intStr.split('').reverse();
23
+ for (var i = 0; i < reArr.length; i++) {
24
+ txt += reArr[i] + ((i + 1) % 3 === 0 && i + 1 !== reArr.length ? thousand : '');
25
+ }
26
+ return negativeSymbol + txt.split('').reverse().join('');
47
27
  }
48
-
49
- /**
50
- * 格式化小数部分,如果使用 toFixed,超大额数字会自动被截断
51
- *
52
- * @private
53
- * @param {string} decStr 小数点部分的字符串
54
- * @param {number} precision 保留位数
55
- * @param {string} decimal 小数点符号
56
- * @returns 格式化后的值
57
- */
58
28
  function formatDec(decStr, precision, decimal) {
59
- if (precision === 0) {
60
- return '';
61
- }
62
- var zero = 0;
63
- var ret = '';
64
- if (decStr && Number(decStr) > 0) {
65
- var tmpNum = parseFloat('0.' + decStr);
66
- ret = tmpNum.toFixed(precision).substring(2);
67
- } else {
68
- ret = zero.toFixed(precision).substring(2);
69
- }
70
- return decimal + ret;
29
+ if (precision === 0) {
30
+ return '';
31
+ }
32
+ var zero = 0;
33
+ var ret = '';
34
+ if (decStr && Number(decStr) > 0) {
35
+ var tmpNum = parseFloat('0.' + decStr);
36
+ ret = tmpNum.toFixed(precision).substring(2);
37
+ }
38
+ else {
39
+ ret = zero.toFixed(precision).substring(2);
40
+ }
41
+ return decimal + ret;
71
42
  }
72
-
73
- /**
74
- * 格式化金额
75
- *
76
- * @static
77
- * @alias module:Processor.formatMoney
78
- * @since 1.1.0
79
- * @param {string | number} num 需转换金额 (最大:9007199254740991 最小: -9007199254740991)
80
- * @param {Object} [options] 金额格式化配置
81
- * @param {number} [options.precision=2] 保留位数 (最高:10位)
82
- * @param {string} [options.symbol] 货币符号
83
- * @param {string} [options.thousand=","] 千分位符号
84
- * @param {string} [options.decimal="."] 小数位符号
85
- * @returns {string} 格式化的金额
86
- * @example
87
- *
88
- * // 整数
89
- * formatMoney(1000); // 1,000.00
90
- *
91
- * // 小数(默认保留2位小数)
92
- * formatMoney(3000.03); // 3,000.03
93
- *
94
- * // 保留4位小数
95
- * formatMoney(3000.03, { precision: 4 }); // 3,000.0300
96
- *
97
- * // 保留10位小数
98
- * formatMoney(1500.2, { precision: 10 }); // 1,500.2000000000
99
- *
100
- * // 自定义单位符号
101
- * formatMoney(1000.00, { symbol: '$' }); // $1,000.00
102
- *
103
- * // 自定义千位分割符(默认',')
104
- * formatMoney(1000.00, { thousand: '|' }); // 1|000.00
105
- *
106
- * // 自定义小数位分割符(默认'.')
107
- * formatMoney(1000.00, { decimal: '&' }); // 1,000&00
108
- *
109
- * // 字符串数字
110
- * formatMoney('3000.03', { precision: 4 }); // 3,000.0300
111
- */
112
- var formatMoney = function formatMoney(num) {
113
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
114
- var _options$precision = options.precision,
115
- precision = _options$precision === void 0 ? 2 : _options$precision,
116
- symbol = options.symbol,
117
- _options$thousand = options.thousand,
118
- thousand = _options$thousand === void 0 ? ',' : _options$thousand,
119
- _options$decimal = options.decimal,
120
- decimal = _options$decimal === void 0 ? '.' : _options$decimal;
121
-
122
- // 数字参数不正确,返回空字符串
123
- // @ts-ignore
124
- if (!checkNumber(num)) {
125
- return '';
126
- }
127
-
128
- // 参数规整化
129
- if (typeof precision !== 'number' || isNaN(precision) || precision < 0) {
130
- precision = 2;
131
- } else if (precision > 10) {
132
- precision = 10;
133
- }
134
- symbol = typeof symbol === 'string' ? symbol : '';
135
- thousand = typeof thousand === 'string' ? thousand : ',';
136
- decimal = typeof decimal === 'string' ? decimal : '.';
137
-
138
- // 转换数字字符串,支持科学记数法
139
- var strNum = scientificToNumber(num) + '';
140
- // 整数和小数部分
141
- var _strNum$split = strNum.split('.'),
142
- _strNum$split2 = _slicedToArray(_strNum$split, 2),
143
- intStr = _strNum$split2[0],
144
- decStr = _strNum$split2[1];
145
- return symbol + formatInt(intStr, thousand) + formatDec(decStr, precision, decimal);
43
+ var formatMoney = function (num, options) {
44
+ if (options === void 0) { options = {}; }
45
+ var _a = options.precision, precision = _a === void 0 ? 2 : _a, symbol = options.symbol, _b = options.thousand, thousand = _b === void 0 ? ',' : _b, _c = options.decimal, decimal = _c === void 0 ? '.' : _c;
46
+ if (!checkNumber(num)) {
47
+ return '';
48
+ }
49
+ if (typeof num === 'number' && !isFinite(num)) {
50
+ return num + '';
51
+ }
52
+ if (typeof precision !== 'number' || _isNaN(precision) || precision < 0) {
53
+ precision = 2;
54
+ }
55
+ else if (precision > 10) {
56
+ precision = 10;
57
+ }
58
+ symbol = typeof symbol === 'string' ? symbol : '';
59
+ thousand = typeof thousand === 'string' ? thousand : ',';
60
+ decimal = typeof decimal === 'string' ? decimal : '.';
61
+ var strNum = scientificToNumber(num) + '';
62
+ var _d = __read(strNum.split('.'), 2), intStr = _d[0], decStr = _d[1];
63
+ return symbol + formatInt(intStr, thousand) + formatDec(decStr, precision, decimal);
146
64
  };
147
- export default formatMoney;
65
+ var formatMoney$1 = formatMoney;
66
+
67
+ export { formatMoney$1 as default };