util-helpers 4.15.3 → 4.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +6 -5
  2. package/dist/util-helpers.js +491 -73
  3. package/dist/util-helpers.js.map +1 -1
  4. package/dist/util-helpers.min.js +1 -1
  5. package/dist/util-helpers.min.js.map +1 -1
  6. package/esm/ajax.js +149 -0
  7. package/esm/blobToDataURL.js +9 -13
  8. package/esm/calculateCursorPosition.js +2 -2
  9. package/esm/dataURLToBlob.js +7 -6
  10. package/esm/download.js +171 -0
  11. package/esm/fileReader.js +67 -0
  12. package/esm/index.js +6 -3
  13. package/esm/interface.doc.js +125 -0
  14. package/esm/isBankCard.js +1 -1
  15. package/esm/isBusinessLicense.js +1 -1
  16. package/esm/isChinese.js +3 -3
  17. package/esm/isHMCard.js +1 -1
  18. package/esm/isIdCard.js +2 -2
  19. package/esm/isPassport.js +1 -1
  20. package/esm/isPassword.js +2 -2
  21. package/esm/isSocialCreditCode.js +1 -1
  22. package/esm/isSwiftCode.js +1 -1
  23. package/esm/isTWCard.js +1 -1
  24. package/esm/isUrl.js +1 -1
  25. package/esm/isVehicle.js +1 -1
  26. package/esm/normalizeString.js +1 -1
  27. package/esm/numberToChinese.js +3 -2
  28. package/esm/parseIdCard.js +2 -2
  29. package/esm/safeDate.js +27 -10
  30. package/esm/setDataURLPrefix.js +2 -2
  31. package/esm/transformFieldNames.js +2 -3
  32. package/esm/utils/config.js +1 -1
  33. package/esm/utils/type/index.js +3 -1
  34. package/esm/utils/type/isArrayBuffer.js +25 -0
  35. package/esm/utils/type/isBlob.js +27 -0
  36. package/esm/validatePassword.js +1 -1
  37. package/lib/ajax.js +156 -0
  38. package/lib/blobToDataURL.js +9 -13
  39. package/lib/calculateCursorPosition.js +2 -2
  40. package/lib/dataURLToBlob.js +7 -6
  41. package/lib/download.js +176 -0
  42. package/lib/fileReader.js +74 -0
  43. package/lib/index.js +22 -1
  44. package/lib/interface.doc.js +127 -0
  45. package/lib/isBankCard.js +1 -1
  46. package/lib/isBusinessLicense.js +1 -1
  47. package/lib/isChinese.js +3 -3
  48. package/lib/isHMCard.js +1 -1
  49. package/lib/isIdCard.js +2 -2
  50. package/lib/isPassport.js +1 -1
  51. package/lib/isPassword.js +2 -2
  52. package/lib/isSocialCreditCode.js +1 -1
  53. package/lib/isSwiftCode.js +1 -1
  54. package/lib/isTWCard.js +1 -1
  55. package/lib/isUrl.js +1 -1
  56. package/lib/isVehicle.js +1 -1
  57. package/lib/normalizeString.js +1 -1
  58. package/lib/numberToChinese.js +3 -2
  59. package/lib/parseIdCard.js +2 -2
  60. package/lib/safeDate.js +28 -11
  61. package/lib/setDataURLPrefix.js +2 -2
  62. package/lib/transformFieldNames.js +1 -1
  63. package/lib/utils/config.js +1 -1
  64. package/lib/utils/type/index.js +14 -0
  65. package/lib/utils/type/isArrayBuffer.js +32 -0
  66. package/lib/utils/type/isBlob.js +34 -0
  67. package/lib/validatePassword.js +1 -1
  68. package/package.json +2 -2
  69. package/types/ajax.d.ts +121 -0
  70. package/types/blobToDataURL.d.ts +6 -2
  71. package/types/calculateCursorPosition.d.ts +2 -2
  72. package/types/dataURLToBlob.d.ts +1 -1
  73. package/types/download.d.ts +78 -0
  74. package/types/fileReader.d.ts +3 -0
  75. package/types/index.d.ts +4 -1
  76. package/types/isBankCard.d.ts +1 -1
  77. package/types/isBusinessLicense.d.ts +1 -1
  78. package/types/isChinese.d.ts +3 -3
  79. package/types/isHMCard.d.ts +1 -1
  80. package/types/isIdCard.d.ts +2 -2
  81. package/types/isPassport.d.ts +1 -1
  82. package/types/isPassword.d.ts +2 -2
  83. package/types/isSocialCreditCode.d.ts +1 -1
  84. package/types/isSwiftCode.d.ts +1 -1
  85. package/types/isTWCard.d.ts +1 -1
  86. package/types/isUrl.d.ts +1 -1
  87. package/types/isVehicle.d.ts +1 -1
  88. package/types/normalizeString.d.ts +1 -1
  89. package/types/numberToChinese.d.ts +3 -2
  90. package/types/parseIdCard.d.ts +3 -3
  91. package/types/safeDate.d.ts +3 -23
  92. package/types/setDataURLPrefix.d.ts +2 -2
  93. package/types/transformFieldNames.d.ts +2 -2
  94. package/types/utils/type/index.d.ts +21 -19
  95. package/types/utils/type/isArrayBuffer.d.ts +21 -0
  96. package/types/utils/type/isBlob.d.ts +23 -0
  97. package/types/validatePassword.d.ts +1 -1
  98. package/esm/transformFieldNames.doc.js +0 -35
  99. package/lib/transformFieldNames.doc.js +0 -42
  100. /package/esm/{transformFieldNames.type.js → interface.type.js} +0 -0
  101. /package/lib/{transformFieldNames.type.js → interface.type.js} +0 -0
  102. /package/types/{transformFieldNames.type.d.ts → interface.type.d.ts} +0 -0
@@ -1,7 +1,8 @@
1
1
  export default numberToChinese;
2
2
  /**
3
- * 数字转中文数字
4
- * 不在安全数字 -9007199254740991~9007199254740991 内,处理会有异常
3
+ * 数字转中文数字<br/><br/>
4
+ *
5
+ * 如果数字不在安全数字 -9007199254740991~9007199254740991 范围内,处理会有异常。
5
6
  *
6
7
  * @static
7
8
  * @alias module:Processor.numberToChinese
@@ -76,9 +76,9 @@ export type IdCardInfo = {
76
76
  * @static
77
77
  * @alias module:Processor.parseIdCard
78
78
  * @since 4.0.0
79
- * @see 参考 {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
79
+ * @see {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
80
80
  * @param {string} id 身份证号码,支持15位
81
- * @returns {null|IdCardInfo} null 或 省份、生日、性别,省/市/区/年/月/日/性别编码
81
+ * @returns {IdCardInfo | null} 省份、生日、性别,省/市/区/年/月/日/性别编码。如果解析失败将返回 null
82
82
  * @example
83
83
  *
84
84
  * parseIdCard('123456789123456'); // null
@@ -104,4 +104,4 @@ export type IdCardInfo = {
104
104
  * }
105
105
  *
106
106
  */
107
- declare function parseIdCard(id: string): null | IdCardInfo;
107
+ declare function parseIdCard(id: string): IdCardInfo | null;
@@ -1,24 +1,4 @@
1
1
  export default safeDate;
2
- /**
3
- * 创建一个 Date 实例日期对象,同 new Date() 。<br/>
4
- * 规避了苹果设备浏览器不支持部分格式(YYYY-MM-DD HH-mm YYYY.MM.DD)。
5
- *
6
- * @static
7
- * @alias module:Processor.safeDate
8
- * @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date|Date}
9
- * @since 4.4.0
10
- * @param {string|number|Date} [value] 日期时间字符串、毫秒数、日期对象
11
- * @param {...number} args 月/日/时/分/秒/毫秒
12
- * @returns {Date} Date 实例日期对象
13
- * @example
14
- *
15
- * safeDate('2022-1-1'); // Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
16
- * safeDate('2022/1/1'); // Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
17
- * safeDate('2022.1.1'); // Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
18
- * safeDate('2022.1.1 11:11'); // Sat Jan 01 2022 11:11:00 GMT+0800 (中国标准时间)
19
- * safeDate(99, 1); // Mon Feb 01 1999 00:00:00 GMT+0800 (中国标准时间)
20
- * safeDate(1646711233171); // Tue Mar 08 2022 11:47:13 GMT+0800 (中国标准时间)
21
- *
22
- *
23
- */
24
- declare function safeDate(value?: string | number | Date | undefined, ...args: number[]): Date;
2
+ declare function safeDate(): Date;
3
+ declare function safeDate(value: number | string | Date): Date;
4
+ declare function safeDate(year: number, monthIndex: number, date?: number | undefined, hours?: number | undefined, minutes?: number | undefined, seconds?: number | undefined, ms?: number | undefined): Date;
@@ -5,9 +5,9 @@ export default setDataURLPrefix;
5
5
  *
6
6
  * @static
7
7
  * @alias module:Processor.setDataURLPrefix
8
- * @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
9
- * @see 参考 {@link https://mimesniff.spec.whatwg.org/#understanding-mime-types|MIME types}
10
8
  * @since 4.1.0
9
+ * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
10
+ * @see {@link https://mimesniff.spec.whatwg.org/#understanding-mime-types|MIME types}
11
11
  * @param {string} data 数据本身
12
12
  * @param {string} [mimetype="image/png"] MIME 类型
13
13
  * @param {boolean} [base64=true] 添加 base64 标识
@@ -12,7 +12,7 @@ export default transformFieldNames;
12
12
  * @param {F} fieldNames 字段名映射
13
13
  * @param {C} [childrenField] 子级数据字段名
14
14
  * @param {'spread'|'self'} [nodeAssign='spread'] 节点赋值方式。spread表示使用展开运算符创建新值,self表示使用自身对象。
15
- * @returns {import('./transformFieldNames.type.js').TransformFieldNames<D, F, C>}
15
+ * @returns {import('./interface.type.js').TransformFieldNames<D, F, C>}
16
16
  * @example
17
17
  *
18
18
  * const options = [{code: '1', name: 'one'},{code:'2', name:'two'}];
@@ -32,4 +32,4 @@ export default transformFieldNames;
32
32
  * const newOptions4 = transformFieldNames(options3, {label: 'name', value: 'code', children: 'childs'}, 'childs');
33
33
  * // [{value: '1', label: 'one'},{value:'2', label:'two', children: [{value: '2-1', label:'two-one'}]}]
34
34
  */
35
- declare function transformFieldNames<D extends unknown, F extends Record<string, keyof D>, C extends string>(data: D[], fieldNames: F, childrenField?: C | undefined, nodeAssign?: "spread" | "self" | undefined): import("./transformFieldNames.type.js").TransformFieldNames<D, F, C>;
35
+ declare function transformFieldNames<D extends unknown, F extends Record<string, keyof D>, C extends string>(data: D[], fieldNames: F, childrenField?: C | undefined, nodeAssign?: "spread" | "self" | undefined): import("./interface.type.js").TransformFieldNames<D, F, C>;
@@ -1,19 +1,21 @@
1
- import isArguments from "./isArguments";
2
- import isArray from "./isArray";
3
- import isBoolean from "./isBoolean";
4
- import isDate from "./isDate";
5
- import isError from "./isError";
6
- import isFunction from "./isFunction";
7
- import isObject from "./isObject";
8
- import isNull from "./isNull";
9
- import isNaN from "./isNaN";
10
- import isNumber from "./isNumber";
11
- import isRegExp from "./isRegExp";
12
- import isString from "./isString";
13
- import isSymbol from "./isSymbol";
14
- import isMap from "./isMap";
15
- import isWeakMap from "./isWeakMap";
16
- import isSet from "./isSet";
17
- import isWeakSet from "./isWeakSet";
18
- import isUndefined from "./isUndefined";
19
- export { isArguments, isArray, isBoolean, isDate, isError, isFunction, isObject, isNull, isNaN, isNumber, isRegExp, isString, isSymbol, isMap, isWeakMap, isSet, isWeakSet, isUndefined };
1
+ import isArguments from './isArguments';
2
+ import isArray from './isArray';
3
+ import isArrayBuffer from './isArrayBuffer';
4
+ import isBlob from './isBlob';
5
+ import isBoolean from './isBoolean';
6
+ import isDate from './isDate';
7
+ import isError from './isError';
8
+ import isFunction from './isFunction';
9
+ import isObject from './isObject';
10
+ import isNull from './isNull';
11
+ import isNaN from './isNaN';
12
+ import isNumber from './isNumber';
13
+ import isRegExp from './isRegExp';
14
+ import isString from './isString';
15
+ import isSymbol from './isSymbol';
16
+ import isMap from './isMap';
17
+ import isWeakMap from './isWeakMap';
18
+ import isSet from './isSet';
19
+ import isWeakSet from './isWeakSet';
20
+ import isUndefined from './isUndefined';
21
+ export { isArguments, isArray, isArrayBuffer, isBlob, isBoolean, isDate, isError, isFunction, isObject, isNull, isNaN, isNumber, isRegExp, isString, isSymbol, isMap, isWeakMap, isSet, isWeakSet, isUndefined };
@@ -0,0 +1,21 @@
1
+ export default isArrayBuffer;
2
+ /**
3
+ * 检查值是否为ArrayBuffer对象
4
+ *
5
+ * @static
6
+ * @alias module:Type.isArrayBuffer
7
+ * @since 4.16.0
8
+ * @param {*} value 检查值
9
+ * @returns {boolean} 是否为ArrayBuffer对象
10
+ * @example
11
+ *
12
+ * isArrayBuffer(new ArrayBuffer(8))
13
+ * // => true
14
+ *
15
+ * isArrayBuffer({})
16
+ * // => false
17
+ *
18
+ * isArrayBuffer('2012')
19
+ * // => false
20
+ */
21
+ declare function isArrayBuffer(value: any): boolean;
@@ -0,0 +1,23 @@
1
+ export default isBlob;
2
+ /**
3
+ * 检查值是否为Blob对象<br/><br/>
4
+ *
5
+ * <em style="font-weight: bold;">注意:该方法仅适用于浏览器端。</em>
6
+ *
7
+ * @static
8
+ * @alias module:Type.isBlob
9
+ * @since 4.16.0
10
+ * @param {*} value 检查值
11
+ * @returns {boolean} 是否为Blob对象
12
+ * @example
13
+ *
14
+ * isBlob(new Blob(['a']))
15
+ * // => true
16
+ *
17
+ * isBlob({})
18
+ * // => false
19
+ *
20
+ * isBlob('2012')
21
+ * // => false
22
+ */
23
+ declare function isBlob(value: any): boolean;
@@ -58,10 +58,10 @@ export type ValidatePasswordReturn = {
58
58
  /**
59
59
  * 验证密码(数字、大小写字母、特殊字符、非法字符)
60
60
  *
61
- * @see 参考 {@link https://baike.baidu.com/item/ASCII#3|ASCII}
62
61
  * @static
63
62
  * @alias module:Validator.validatePassword
64
63
  * @since 3.7.0
64
+ * @see {@link https://baike.baidu.com/item/ASCII#3|ASCII}
65
65
  * @param {string} value 要检测的值
66
66
  * @param {Object} [options] 配置项
67
67
  * @param {number} [options.level=2] 密码强度 1-包含一种字符 2-包含两种字符 3-包含三种字符。(大写字母、小写字母、数字、特殊字符)
@@ -1,35 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- // 该文件用于 jsdoc 生成文件。因为一些 typescript 语法, jsdoc 不支持,导致生成文档报错。
3
-
4
- /**
5
- * 转换字段名,返回一个转换字段后的值,不改变原值。
6
- *
7
- * @static
8
- * @alias module:Tree.transformFieldNames
9
- * @since 4.14.0
10
- * @param {object[]} data 对象数组。如果是树结构数据,需要指定第三个参数 childrenField
11
- * @param {object} fieldNames 字段名映射
12
- * @param {string} [childrenField] 子级数据字段名
13
- * @param {'spread'|'self'} [nodeAssign='spread'] 节点赋值方式。spread表示使用展开运算符创建新值,self表示使用自身对象。
14
- * @returns {object[]}
15
- * @example
16
- *
17
- * const options = [{code: '1', name: 'one'},{code:'2', name:'two'}];
18
- * const newOptions = transformFieldNames(options, {label: 'name', value: 'code'});
19
- * // [{value: '1', label: 'one'},{value:'2', label:'two'}]
20
- *
21
- * // 嵌套数据,指定子级字段名 children
22
- * const options2 = [{code: '1', name: 'one'},{code:'2', name:'two', children: [{code:'2-1', name:'two-one', children: [{code: '2-1-1', name:'two-one-one'}]}]}];
23
- * const newOptions2 = transformFieldNames(options2, {label: 'name', value: 'code'}, 'children');
24
- * // [{value: '1', label: 'one'},{value:'2', label:'two', children: [{value: '2-1', label:'two-one', children: [{value: '2-1-1', label:'two-one-one'}]}]}]
25
- *
26
- * const options3 = [{code: '1', name: 'one'},{code:'2', name:'two', childs: [{code:'2-1', name:'two-one'}]}];
27
- * const newOptions3 = transformFieldNames(options3, {label: 'name', value: 'code'}, 'childs');
28
- * // [{value: '1', label: 'one'},{value:'2', label:'two', childs: [{value: '2-1', label:'two-one'}]}]
29
- *
30
- * // 嵌套数据,并替换子集字段名
31
- * const newOptions4 = transformFieldNames(options3, {label: 'name', value: 'code', children: 'childs'}, 'childs');
32
- * // [{value: '1', label: 'one'},{value:'2', label:'two', children: [{value: '2-1', label:'two-one'}]}]
33
- */
34
- function transformFieldNames(data, fieldNames, childrenField) {}
35
- export default transformFieldNames;
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- /* eslint-disable no-unused-vars */
8
- // 该文件用于 jsdoc 生成文件。因为一些 typescript 语法, jsdoc 不支持,导致生成文档报错。
9
-
10
- /**
11
- * 转换字段名,返回一个转换字段后的值,不改变原值。
12
- *
13
- * @static
14
- * @alias module:Tree.transformFieldNames
15
- * @since 4.14.0
16
- * @param {object[]} data 对象数组。如果是树结构数据,需要指定第三个参数 childrenField
17
- * @param {object} fieldNames 字段名映射
18
- * @param {string} [childrenField] 子级数据字段名
19
- * @param {'spread'|'self'} [nodeAssign='spread'] 节点赋值方式。spread表示使用展开运算符创建新值,self表示使用自身对象。
20
- * @returns {object[]}
21
- * @example
22
- *
23
- * const options = [{code: '1', name: 'one'},{code:'2', name:'two'}];
24
- * const newOptions = transformFieldNames(options, {label: 'name', value: 'code'});
25
- * // [{value: '1', label: 'one'},{value:'2', label:'two'}]
26
- *
27
- * // 嵌套数据,指定子级字段名 children
28
- * const options2 = [{code: '1', name: 'one'},{code:'2', name:'two', children: [{code:'2-1', name:'two-one', children: [{code: '2-1-1', name:'two-one-one'}]}]}];
29
- * const newOptions2 = transformFieldNames(options2, {label: 'name', value: 'code'}, 'children');
30
- * // [{value: '1', label: 'one'},{value:'2', label:'two', children: [{value: '2-1', label:'two-one', children: [{value: '2-1-1', label:'two-one-one'}]}]}]
31
- *
32
- * const options3 = [{code: '1', name: 'one'},{code:'2', name:'two', childs: [{code:'2-1', name:'two-one'}]}];
33
- * const newOptions3 = transformFieldNames(options3, {label: 'name', value: 'code'}, 'childs');
34
- * // [{value: '1', label: 'one'},{value:'2', label:'two', childs: [{value: '2-1', label:'two-one'}]}]
35
- *
36
- * // 嵌套数据,并替换子集字段名
37
- * const newOptions4 = transformFieldNames(options3, {label: 'name', value: 'code', children: 'childs'}, 'childs');
38
- * // [{value: '1', label: 'one'},{value:'2', label:'two', children: [{value: '2-1', label:'two-one'}]}]
39
- */
40
- function transformFieldNames(data, fieldNames, childrenField) {}
41
- var _default = transformFieldNames;
42
- exports["default"] = _default;