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.
- package/README.md +6 -5
- package/dist/util-helpers.js +491 -73
- package/dist/util-helpers.js.map +1 -1
- package/dist/util-helpers.min.js +1 -1
- package/dist/util-helpers.min.js.map +1 -1
- package/esm/ajax.js +149 -0
- package/esm/blobToDataURL.js +9 -13
- package/esm/calculateCursorPosition.js +2 -2
- package/esm/dataURLToBlob.js +7 -6
- package/esm/download.js +171 -0
- package/esm/fileReader.js +67 -0
- package/esm/index.js +6 -3
- package/esm/interface.doc.js +125 -0
- package/esm/isBankCard.js +1 -1
- package/esm/isBusinessLicense.js +1 -1
- package/esm/isChinese.js +3 -3
- package/esm/isHMCard.js +1 -1
- package/esm/isIdCard.js +2 -2
- package/esm/isPassport.js +1 -1
- package/esm/isPassword.js +2 -2
- package/esm/isSocialCreditCode.js +1 -1
- package/esm/isSwiftCode.js +1 -1
- package/esm/isTWCard.js +1 -1
- package/esm/isUrl.js +1 -1
- package/esm/isVehicle.js +1 -1
- package/esm/normalizeString.js +1 -1
- package/esm/numberToChinese.js +3 -2
- package/esm/parseIdCard.js +2 -2
- package/esm/safeDate.js +27 -10
- package/esm/setDataURLPrefix.js +2 -2
- package/esm/transformFieldNames.js +2 -3
- package/esm/utils/config.js +1 -1
- package/esm/utils/type/index.js +3 -1
- package/esm/utils/type/isArrayBuffer.js +25 -0
- package/esm/utils/type/isBlob.js +27 -0
- package/esm/validatePassword.js +1 -1
- package/lib/ajax.js +156 -0
- package/lib/blobToDataURL.js +9 -13
- package/lib/calculateCursorPosition.js +2 -2
- package/lib/dataURLToBlob.js +7 -6
- package/lib/download.js +176 -0
- package/lib/fileReader.js +74 -0
- package/lib/index.js +22 -1
- package/lib/interface.doc.js +127 -0
- package/lib/isBankCard.js +1 -1
- package/lib/isBusinessLicense.js +1 -1
- package/lib/isChinese.js +3 -3
- package/lib/isHMCard.js +1 -1
- package/lib/isIdCard.js +2 -2
- package/lib/isPassport.js +1 -1
- package/lib/isPassword.js +2 -2
- package/lib/isSocialCreditCode.js +1 -1
- package/lib/isSwiftCode.js +1 -1
- package/lib/isTWCard.js +1 -1
- package/lib/isUrl.js +1 -1
- package/lib/isVehicle.js +1 -1
- package/lib/normalizeString.js +1 -1
- package/lib/numberToChinese.js +3 -2
- package/lib/parseIdCard.js +2 -2
- package/lib/safeDate.js +28 -11
- package/lib/setDataURLPrefix.js +2 -2
- package/lib/transformFieldNames.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/type/index.js +14 -0
- package/lib/utils/type/isArrayBuffer.js +32 -0
- package/lib/utils/type/isBlob.js +34 -0
- package/lib/validatePassword.js +1 -1
- package/package.json +2 -2
- package/types/ajax.d.ts +121 -0
- package/types/blobToDataURL.d.ts +6 -2
- package/types/calculateCursorPosition.d.ts +2 -2
- package/types/dataURLToBlob.d.ts +1 -1
- package/types/download.d.ts +78 -0
- package/types/fileReader.d.ts +3 -0
- package/types/index.d.ts +4 -1
- package/types/isBankCard.d.ts +1 -1
- package/types/isBusinessLicense.d.ts +1 -1
- package/types/isChinese.d.ts +3 -3
- package/types/isHMCard.d.ts +1 -1
- package/types/isIdCard.d.ts +2 -2
- package/types/isPassport.d.ts +1 -1
- package/types/isPassword.d.ts +2 -2
- package/types/isSocialCreditCode.d.ts +1 -1
- package/types/isSwiftCode.d.ts +1 -1
- package/types/isTWCard.d.ts +1 -1
- package/types/isUrl.d.ts +1 -1
- package/types/isVehicle.d.ts +1 -1
- package/types/normalizeString.d.ts +1 -1
- package/types/numberToChinese.d.ts +3 -2
- package/types/parseIdCard.d.ts +3 -3
- package/types/safeDate.d.ts +3 -23
- package/types/setDataURLPrefix.d.ts +2 -2
- package/types/transformFieldNames.d.ts +2 -2
- package/types/utils/type/index.d.ts +21 -19
- package/types/utils/type/isArrayBuffer.d.ts +21 -0
- package/types/utils/type/isBlob.d.ts +23 -0
- package/types/validatePassword.d.ts +1 -1
- package/esm/transformFieldNames.doc.js +0 -35
- package/lib/transformFieldNames.doc.js +0 -42
- /package/esm/{transformFieldNames.type.js → interface.type.js} +0 -0
- /package/lib/{transformFieldNames.type.js → interface.type.js} +0 -0
- /package/types/{transformFieldNames.type.d.ts → interface.type.d.ts} +0 -0
package/esm/isIdCard.js
CHANGED
|
@@ -29,8 +29,8 @@ function check(id) {
|
|
|
29
29
|
* @static
|
|
30
30
|
* @alias module:Validator.isIdCard
|
|
31
31
|
* @since 1.1.0
|
|
32
|
-
* @see
|
|
33
|
-
* @see
|
|
32
|
+
* @see {@link https://zh.wikipedia.org/wiki/中华人民共和国公民身份号码|中华人民共和国公民身份号码}
|
|
33
|
+
* @see {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
|
|
34
34
|
* @param {*} value 要检测的值
|
|
35
35
|
* @param {Object} [options] 配置项
|
|
36
36
|
* @param {boolean} [options.loose=false] 宽松模式,支持15位身份证号码
|
package/esm/isPassport.js
CHANGED
|
@@ -9,8 +9,8 @@ var reg = /^((e[\da-z])|(de)|(se)|(pe)|([khm][\da-z]))[\da-z]{7}$/i;
|
|
|
9
9
|
*
|
|
10
10
|
* @static
|
|
11
11
|
* @alias module:Validator.isPassport
|
|
12
|
-
* @see 参考 {@link https://zh.wikipedia.org/wiki/中华人民共和国护照#个人资料页|中华人民共和国护照#个人资料页}
|
|
13
12
|
* @since 1.1.0
|
|
13
|
+
* @see {@link https://zh.wikipedia.org/wiki/中华人民共和国护照#个人资料页|中华人民共和国护照#个人资料页}
|
|
14
14
|
* @param {*} value 要检测的值
|
|
15
15
|
* @returns {boolean} 值是否为护照号
|
|
16
16
|
* @example
|
package/esm/isPassword.js
CHANGED
|
@@ -5,11 +5,11 @@ import validatePassword from './validatePassword';
|
|
|
5
5
|
* <p><strong>注意:该校验只校验是否存在不同字符(大小写字母、数字、特殊符号),不判断长度。</strong></p>
|
|
6
6
|
* <p><i>如果需要更细致的验证,请使用 <a href="#.validatePassword">validatePassword</a></i></p>
|
|
7
7
|
*
|
|
8
|
-
* @see 参考 {@link https://baike.baidu.com/item/ASCII#3|ASCII}
|
|
9
8
|
* @static
|
|
10
9
|
* @alias module:Validator.isPassword
|
|
11
|
-
* @since 1.1.0
|
|
12
10
|
* @requires module:Validator.validatePassword
|
|
11
|
+
* @since 1.1.0
|
|
12
|
+
* @see {@link https://baike.baidu.com/item/ASCII#3|ASCII}
|
|
13
13
|
* @param {*} value 要检测的值
|
|
14
14
|
* @param {Object} [options] 配置项
|
|
15
15
|
* @param {number} [options.level=2] 密码强度 1-包含一种字符 2-包含两种字符 3-包含三种字符。(大写字母、小写字母、数字、特殊字符)
|
|
@@ -44,8 +44,8 @@ function sumCheckCode(preCode) {
|
|
|
44
44
|
*
|
|
45
45
|
* @static
|
|
46
46
|
* @alias module:Validator.isSocialCreditCode
|
|
47
|
-
* @see 参考 {@link https://zh.wikisource.org/zh-hans/GB_32100-2015_法人和其他组织统一社会信用代码编码规则|GB 32100-2015 法人和其他组织统一社会信用代码编码规则}
|
|
48
47
|
* @since 1.1.0
|
|
48
|
+
* @see {@link https://zh.wikisource.org/zh-hans/GB_32100-2015_法人和其他组织统一社会信用代码编码规则|GB 32100-2015 法人和其他组织统一社会信用代码编码规则}
|
|
49
49
|
* @param {*} value 要检测的值
|
|
50
50
|
* @param {Object} [options] 配置项
|
|
51
51
|
* @param {boolean} [options.checkCode=true] 是否校验最后一位校验码,如果为false,不校验校验位。
|
package/esm/isSwiftCode.js
CHANGED
|
@@ -6,8 +6,8 @@ var reg = /^[A-Z]{6}[A-Z\d]{2}(?:[A-Z\d]{3})?$/;
|
|
|
6
6
|
*
|
|
7
7
|
* @static
|
|
8
8
|
* @alias module:Validator.isSwiftCode
|
|
9
|
-
* @see 参考 {@link https://zh.wikipedia.org/wiki/ISO_9362|ISO 9362}
|
|
10
9
|
* @since 4.9.0
|
|
10
|
+
* @see {@link https://zh.wikipedia.org/wiki/ISO_9362|ISO 9362}
|
|
11
11
|
* @param {*} value 要检测的值
|
|
12
12
|
* @returns {boolean} 值是否为 Swift Code
|
|
13
13
|
* @example
|
package/esm/isTWCard.js
CHANGED
|
@@ -12,7 +12,7 @@ var singleRegTWCard = /^[\da-z]{10,12}$/i;
|
|
|
12
12
|
* @static
|
|
13
13
|
* @alias module:Validator.isTWCard
|
|
14
14
|
* @since 4.0.0
|
|
15
|
-
* @see
|
|
15
|
+
* @see {@link https://zh.wikipedia.org/wiki/台湾居民来往大陆通行证|台湾居民来往大陆通行证}
|
|
16
16
|
* @param {*} value 要检测的值
|
|
17
17
|
* @param {Object} [options] 配置项
|
|
18
18
|
* @param {boolean} [options.loose=false] 宽松模式。如果为true,表示支持一次性短期通行证
|
package/esm/isUrl.js
CHANGED
|
@@ -24,7 +24,7 @@ var regNonProtocal = new RegExp("^(?:".concat(serverReg, ")(?:").concat(portReg,
|
|
|
24
24
|
* @static
|
|
25
25
|
* @alias module:Validator.isUrl
|
|
26
26
|
* @since 3.4.0
|
|
27
|
-
* @see
|
|
27
|
+
* @see {@link https://zh.wikipedia.org/wiki/统一资源定位符|统一资源定位符}
|
|
28
28
|
* @param {*} value 要检测的值
|
|
29
29
|
* @returns {boolean} 值是否为url
|
|
30
30
|
* @example
|
package/esm/isVehicle.js
CHANGED
|
@@ -8,8 +8,8 @@ var reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕
|
|
|
8
8
|
*
|
|
9
9
|
* @static
|
|
10
10
|
* @alias module:Validator.isVehicle
|
|
11
|
-
* @see 参考 {@link https://baike.baidu.com/item/车牌号|车牌号}
|
|
12
11
|
* @since 1.1.0
|
|
12
|
+
* @see {@link https://baike.baidu.com/item/车牌号|车牌号}
|
|
13
13
|
* @param {*} value 要检测的值
|
|
14
14
|
* @returns {boolean} 值是否为车牌号
|
|
15
15
|
* @example
|
package/esm/normalizeString.js
CHANGED
|
@@ -6,8 +6,8 @@ import convertToString from './utils/convertToString';
|
|
|
6
6
|
*
|
|
7
7
|
* @static
|
|
8
8
|
* @alias module:Processor.normalizeString
|
|
9
|
-
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String#string_instances|String}
|
|
10
9
|
* @since 4.3.0
|
|
10
|
+
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String#string_instances|String}
|
|
11
11
|
* @param {*} value 待处理的值
|
|
12
12
|
* @returns {string} 规整化的值
|
|
13
13
|
* @example
|
package/esm/numberToChinese.js
CHANGED
|
@@ -130,8 +130,9 @@ function mapNumberChar(num) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
/**
|
|
133
|
-
*
|
|
134
|
-
*
|
|
133
|
+
* 数字转中文数字<br/><br/>
|
|
134
|
+
*
|
|
135
|
+
* 如果数字不在安全数字 -9007199254740991~9007199254740991 范围内,处理会有异常。
|
|
135
136
|
*
|
|
136
137
|
* @static
|
|
137
138
|
* @alias module:Processor.numberToChinese
|
package/esm/parseIdCard.js
CHANGED
|
@@ -69,9 +69,9 @@ var Provinces = [
|
|
|
69
69
|
* @static
|
|
70
70
|
* @alias module:Processor.parseIdCard
|
|
71
71
|
* @since 4.0.0
|
|
72
|
-
* @see
|
|
72
|
+
* @see {@link https://baike.baidu.com/item/居民身份证号码|居民身份证号码}
|
|
73
73
|
* @param {string} id 身份证号码,支持15位
|
|
74
|
-
* @returns {null
|
|
74
|
+
* @returns {IdCardInfo | null} 省份、生日、性别,省/市/区/年/月/日/性别编码。如果解析失败将返回 null 。
|
|
75
75
|
* @example
|
|
76
76
|
*
|
|
77
77
|
* parseIdCard('123456789123456'); // null
|
package/esm/safeDate.js
CHANGED
|
@@ -1,16 +1,37 @@
|
|
|
1
1
|
import _construct from "@babel/runtime/helpers/construct";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* @overload
|
|
4
|
+
* @return {Date}
|
|
5
|
+
*/
|
|
3
6
|
|
|
4
|
-
|
|
7
|
+
/**
|
|
8
|
+
* @overload
|
|
9
|
+
* @param {number | string | Date} value Unix时间戳、时间戳字符串 dateString 、Date 日期对象
|
|
10
|
+
* @return {Date}
|
|
11
|
+
*/
|
|
5
12
|
|
|
6
13
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
14
|
+
* @overload
|
|
15
|
+
* @param {number} year 表示年份的整数值。0 到 99 会被映射至 1900 年至 1999 年,其他值代表实际年份。
|
|
16
|
+
* @param {number} monthIndex 表示月份的整数值,从 0(1 月)到 11(12 月)。
|
|
17
|
+
* @param {number} [date] 表示一个月中的第几天的整数值,从 1 开始。默认值为 1。
|
|
18
|
+
* @param {number} [hours] 表示一天中的小时数的整数值 (24 小时制)。默认值为 0(午夜)。
|
|
19
|
+
* @param {number} [minutes] 表示一个完整时间(如 01:10:00)中的分钟部分的整数值。默认值为 0。
|
|
20
|
+
* @param {number} [seconds] 表示一个完整时间(如 01:10:00)中的秒部分的整数值。默认值为 0。
|
|
21
|
+
* @param {number} [ms] 表示一个完整时间的毫秒部分的整数值。默认值为 0。
|
|
22
|
+
* @return {Date}
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 创建一个 Date 实例日期对象,同 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date#%E5%8F%82%E6%95%B0">new Date()</a> <br/><br/>
|
|
27
|
+
*
|
|
28
|
+
* 规避了苹果设备浏览器不支持部分格式(例如,YYYY-MM-DD HH-mm 或 YYYY.MM.DD)。<br/>
|
|
29
|
+
* 如果参数为 undefined 正常返回 Date 。
|
|
9
30
|
*
|
|
10
31
|
* @static
|
|
11
32
|
* @alias module:Processor.safeDate
|
|
12
|
-
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date|Date}
|
|
13
33
|
* @since 4.4.0
|
|
34
|
+
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date|Date}
|
|
14
35
|
* @param {string|number|Date} [value] 日期时间字符串、毫秒数、日期对象
|
|
15
36
|
* @param {...number} args 月/日/时/分/秒/毫秒
|
|
16
37
|
* @returns {Date} Date 实例日期对象
|
|
@@ -22,8 +43,6 @@ import isNil from './utils/type/isNil';
|
|
|
22
43
|
* safeDate('2022.1.1 11:11'); // Sat Jan 01 2022 11:11:00 GMT+0800 (中国标准时间)
|
|
23
44
|
* safeDate(99, 1); // Mon Feb 01 1999 00:00:00 GMT+0800 (中国标准时间)
|
|
24
45
|
* safeDate(1646711233171); // Tue Mar 08 2022 11:47:13 GMT+0800 (中国标准时间)
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
46
|
*/
|
|
28
47
|
function safeDate(value) {
|
|
29
48
|
var safeValue = typeof value === 'string' ? value.replace(/[\\.-]/g, '/') : value;
|
|
@@ -34,8 +53,6 @@ function safeDate(value) {
|
|
|
34
53
|
// @ts-ignore
|
|
35
54
|
return _construct(Date, [safeValue].concat(args));
|
|
36
55
|
}
|
|
37
|
-
|
|
38
|
-
// @ts-ignore
|
|
39
|
-
return isNil(safeValue) ? new Date() : new Date(safeValue);
|
|
56
|
+
return typeof safeValue === 'undefined' ? new Date() : new Date(safeValue);
|
|
40
57
|
}
|
|
41
58
|
export default safeDate;
|
package/esm/setDataURLPrefix.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @static
|
|
6
6
|
* @alias module:Processor.setDataURLPrefix
|
|
7
|
-
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
|
|
8
|
-
* @see 参考 {@link https://mimesniff.spec.whatwg.org/#understanding-mime-types|MIME types}
|
|
9
7
|
* @since 4.1.0
|
|
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
10
|
* @param {string} data 数据本身
|
|
11
11
|
* @param {string} [mimetype="image/png"] MIME 类型
|
|
12
12
|
* @param {boolean} [base64=true] 添加 base64 标识
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
//
|
|
5
|
-
// 修改文档,请同步到 transformFieldNames.doc.js
|
|
4
|
+
// 如果修改文档,请同步修改 interface.doc.js
|
|
6
5
|
|
|
7
6
|
import { isObject } from './utils/type';
|
|
8
7
|
|
|
@@ -19,7 +18,7 @@ import { isObject } from './utils/type';
|
|
|
19
18
|
* @param {F} fieldNames 字段名映射
|
|
20
19
|
* @param {C} [childrenField] 子级数据字段名
|
|
21
20
|
* @param {'spread'|'self'} [nodeAssign='spread'] 节点赋值方式。spread表示使用展开运算符创建新值,self表示使用自身对象。
|
|
22
|
-
* @returns {import('./
|
|
21
|
+
* @returns {import('./interface.type.js').TransformFieldNames<D, F, C>}
|
|
23
22
|
* @example
|
|
24
23
|
*
|
|
25
24
|
* const options = [{code: '1', name: 'one'},{code:'2', name:'two'}];
|
package/esm/utils/config.js
CHANGED
package/esm/utils/type/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import isArguments from './isArguments';
|
|
2
2
|
import isArray from './isArray';
|
|
3
|
+
import isArrayBuffer from './isArrayBuffer';
|
|
4
|
+
import isBlob from './isBlob';
|
|
3
5
|
import isBoolean from './isBoolean';
|
|
4
6
|
import isDate from './isDate';
|
|
5
7
|
import isError from './isError';
|
|
@@ -24,4 +26,4 @@ import isUndefined from './isUndefined';
|
|
|
24
26
|
* @ignore
|
|
25
27
|
* @since 1.1.0
|
|
26
28
|
*/
|
|
27
|
-
export { isArguments, isArray, isBoolean, isDate, isError, isFunction, isObject, isNull, isNaN, isNumber, isRegExp, isString, isSymbol, isMap, isWeakMap, isSet, isWeakSet, isUndefined };
|
|
29
|
+
export { isArguments, isArray, isArrayBuffer, isBlob, isBoolean, isDate, isError, isFunction, isObject, isNull, isNaN, isNumber, isRegExp, isString, isSymbol, isMap, isWeakMap, isSet, isWeakSet, isUndefined };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import isType from './isType';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 检查值是否为ArrayBuffer对象
|
|
5
|
+
*
|
|
6
|
+
* @static
|
|
7
|
+
* @alias module:Type.isArrayBuffer
|
|
8
|
+
* @since 4.16.0
|
|
9
|
+
* @param {*} value 检查值
|
|
10
|
+
* @returns {boolean} 是否为ArrayBuffer对象
|
|
11
|
+
* @example
|
|
12
|
+
*
|
|
13
|
+
* isArrayBuffer(new ArrayBuffer(8))
|
|
14
|
+
* // => true
|
|
15
|
+
*
|
|
16
|
+
* isArrayBuffer({})
|
|
17
|
+
* // => false
|
|
18
|
+
*
|
|
19
|
+
* isArrayBuffer('2012')
|
|
20
|
+
* // => false
|
|
21
|
+
*/
|
|
22
|
+
function isArrayBuffer(value) {
|
|
23
|
+
return isType(value, 'ArrayBuffer');
|
|
24
|
+
}
|
|
25
|
+
export default isArrayBuffer;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import isType from './isType';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 检查值是否为Blob对象<br/><br/>
|
|
5
|
+
*
|
|
6
|
+
* <em style="font-weight: bold;">注意:该方法仅适用于浏览器端。</em>
|
|
7
|
+
*
|
|
8
|
+
* @static
|
|
9
|
+
* @alias module:Type.isBlob
|
|
10
|
+
* @since 4.16.0
|
|
11
|
+
* @param {*} value 检查值
|
|
12
|
+
* @returns {boolean} 是否为Blob对象
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* isBlob(new Blob(['a']))
|
|
16
|
+
* // => true
|
|
17
|
+
*
|
|
18
|
+
* isBlob({})
|
|
19
|
+
* // => false
|
|
20
|
+
*
|
|
21
|
+
* isBlob('2012')
|
|
22
|
+
* // => false
|
|
23
|
+
*/
|
|
24
|
+
function isBlob(value) {
|
|
25
|
+
return isType(value, 'Blob');
|
|
26
|
+
}
|
|
27
|
+
export default isBlob;
|
package/esm/validatePassword.js
CHANGED
|
@@ -129,10 +129,10 @@ function hasUnallowableCharacter(val, chars) {
|
|
|
129
129
|
/**
|
|
130
130
|
* 验证密码(数字、大小写字母、特殊字符、非法字符)
|
|
131
131
|
*
|
|
132
|
-
* @see 参考 {@link https://baike.baidu.com/item/ASCII#3|ASCII}
|
|
133
132
|
* @static
|
|
134
133
|
* @alias module:Validator.validatePassword
|
|
135
134
|
* @since 3.7.0
|
|
135
|
+
* @see {@link https://baike.baidu.com/item/ASCII#3|ASCII}
|
|
136
136
|
* @param {string} value 要检测的值
|
|
137
137
|
* @param {Object} [options] 配置项
|
|
138
138
|
* @param {number} [options.level=2] 密码强度 1-包含一种字符 2-包含两种字符 3-包含三种字符。(大写字母、小写字母、数字、特殊字符)
|
package/lib/ajax.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {XMLHttpRequest['onloadstart']} XMLHttpRequestEvent XMLHttpRequest 事件对象
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest|XMLHttpRequest}
|
|
14
|
+
* @typedef {Object} AjaxOptions ajax配置项
|
|
15
|
+
* @property {string} [method="get"] 创建请求时使用的方法
|
|
16
|
+
* @property {Document | XMLHttpRequestBodyInit | null} [data=null] 请求体被发送的数据
|
|
17
|
+
* @property {Object.<string, string>} [headers] 自定义请求头
|
|
18
|
+
* @property {XMLHttpRequestResponseType} [responseType] 响应类型
|
|
19
|
+
* @property {number} [timeout] 请求超时的毫秒数
|
|
20
|
+
* @property {boolean} [withCredentials=false] 跨域请求时是否需要使用凭证
|
|
21
|
+
* @property {boolean} [async=true] 是否异步执行操作
|
|
22
|
+
* @property {string|null} [user=null] 用户名,用于认证用途
|
|
23
|
+
* @property {string|null} [password=null] 密码,用于认证用途
|
|
24
|
+
* @property {XMLHttpRequestEvent} [onLoadStart] 接收到响应数据时触发
|
|
25
|
+
* @property {XMLHttpRequestEvent} [onProgress] 请求接收到更多数据时,周期性地触发
|
|
26
|
+
* @property {XMLHttpRequestEvent} [onAbort] 当 request 被停止时触发,例如当程序调用 XMLHttpRequest.abort() 时
|
|
27
|
+
* @property {XMLHttpRequestEvent} [onTimeout] 在预设时间内没有接收到响应时触发
|
|
28
|
+
* @property {XMLHttpRequestEvent} [onError] 当 request 遭遇错误时触发
|
|
29
|
+
* @property {XMLHttpRequestEvent} [onLoad] 请求成功完成时触发
|
|
30
|
+
* @property {XMLHttpRequestEvent} [onLoadEnd] 请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* 请求<br/><br/>
|
|
35
|
+
*
|
|
36
|
+
* <em style="font-weight: bold;">注意:该方法仅适用于浏览器端。</em>
|
|
37
|
+
*
|
|
38
|
+
* @static
|
|
39
|
+
* @alias module:Other.ajax
|
|
40
|
+
* @since 4.16.0
|
|
41
|
+
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest|XMLHttpRequest}
|
|
42
|
+
* @param {string} url 地址
|
|
43
|
+
* @param {AjaxOptions} [options] 配置项
|
|
44
|
+
* @returns {Promise<ProgressEvent<EventTarget>>}
|
|
45
|
+
* @example
|
|
46
|
+
* ajax('/somefile').then(res=>{
|
|
47
|
+
* // do something
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* ajax('/api', { method: 'post' }).then(res=>{
|
|
51
|
+
* // do something
|
|
52
|
+
* });
|
|
53
|
+
*/
|
|
54
|
+
function ajax(url, options) {
|
|
55
|
+
var _ref = options || {},
|
|
56
|
+
_ref$method = _ref.method,
|
|
57
|
+
method = _ref$method === void 0 ? 'get' : _ref$method,
|
|
58
|
+
_ref$data = _ref.data,
|
|
59
|
+
data = _ref$data === void 0 ? null : _ref$data,
|
|
60
|
+
timeout = _ref.timeout,
|
|
61
|
+
headers = _ref.headers,
|
|
62
|
+
_ref$withCredentials = _ref.withCredentials,
|
|
63
|
+
withCredentials = _ref$withCredentials === void 0 ? false : _ref$withCredentials,
|
|
64
|
+
_ref$async = _ref.async,
|
|
65
|
+
async = _ref$async === void 0 ? true : _ref$async,
|
|
66
|
+
_ref$user = _ref.user,
|
|
67
|
+
user = _ref$user === void 0 ? null : _ref$user,
|
|
68
|
+
_ref$password = _ref.password,
|
|
69
|
+
password = _ref$password === void 0 ? null : _ref$password,
|
|
70
|
+
responseType = _ref.responseType,
|
|
71
|
+
onAbort = _ref.onAbort,
|
|
72
|
+
onError = _ref.onError,
|
|
73
|
+
onLoad = _ref.onLoad,
|
|
74
|
+
onLoadEnd = _ref.onLoadEnd,
|
|
75
|
+
onLoadStart = _ref.onLoadStart,
|
|
76
|
+
onProgress = _ref.onProgress,
|
|
77
|
+
onTimeout = _ref.onTimeout;
|
|
78
|
+
return new Promise(function (resolve, reject) {
|
|
79
|
+
var xhr = new XMLHttpRequest();
|
|
80
|
+
xhr.open(method.toLowerCase(), url, async, user, password);
|
|
81
|
+
|
|
82
|
+
// 设置请求超时
|
|
83
|
+
if (typeof timeout === 'number' && timeout > 0) {
|
|
84
|
+
xhr.timeout = timeout;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// 跨域请求时是否需要使用凭证
|
|
88
|
+
xhr.withCredentials = withCredentials;
|
|
89
|
+
|
|
90
|
+
// 设置响应类型
|
|
91
|
+
if (responseType) {
|
|
92
|
+
xhr.responseType = responseType;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// 设置请求头
|
|
96
|
+
if (_typeof(headers) === 'object') {
|
|
97
|
+
Object.keys(headers).map(function (item) {
|
|
98
|
+
xhr.setRequestHeader(item, headers[item]);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 请求成功异步调用
|
|
104
|
+
* @param {XMLHttpRequestEvent} [cb] 回调方法
|
|
105
|
+
*/
|
|
106
|
+
var wrapSuccess = function wrapSuccess(cb) {
|
|
107
|
+
/**
|
|
108
|
+
* 内部方法
|
|
109
|
+
* @param {ProgressEvent<EventTarget>} e 事件对象
|
|
110
|
+
*/
|
|
111
|
+
return function (e) {
|
|
112
|
+
resolve(e);
|
|
113
|
+
cb === null || cb === void 0 ? void 0 : cb.call(xhr, e);
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 请求失败(中断/超时/失败)处理
|
|
119
|
+
* @param {XMLHttpRequestEvent} [cb] 回调方法
|
|
120
|
+
*/
|
|
121
|
+
var wrapError = function wrapError(cb) {
|
|
122
|
+
/**
|
|
123
|
+
* 内部方法
|
|
124
|
+
* @param {ProgressEvent<EventTarget>} e 事件对象
|
|
125
|
+
*/
|
|
126
|
+
return function (e) {
|
|
127
|
+
reject(e);
|
|
128
|
+
cb === null || cb === void 0 ? void 0 : cb.call(xhr, e);
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
// 事件处理
|
|
133
|
+
/**@type {Object.<keyof XMLHttpRequestEventTargetEventMap, XMLHttpRequestEvent | undefined>} */
|
|
134
|
+
var events = {
|
|
135
|
+
loadstart: onLoadStart,
|
|
136
|
+
progress: onProgress,
|
|
137
|
+
abort: wrapError(onAbort),
|
|
138
|
+
timeout: wrapError(onTimeout),
|
|
139
|
+
error: wrapError(onError),
|
|
140
|
+
load: wrapSuccess(onLoad),
|
|
141
|
+
loadend: onLoadEnd
|
|
142
|
+
};
|
|
143
|
+
/**@type {(keyof XMLHttpRequestEventTargetEventMap)[]} */
|
|
144
|
+
// @ts-ignore
|
|
145
|
+
var eventNames = Object.keys(events);
|
|
146
|
+
eventNames.map(function (item) {
|
|
147
|
+
var func = events[item];
|
|
148
|
+
if (func) {
|
|
149
|
+
xhr.addEventListener(item, func);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
xhr.send(data);
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
var _default = ajax;
|
|
156
|
+
exports["default"] = _default;
|
package/lib/blobToDataURL.js
CHANGED
|
@@ -4,17 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
+
var _fileReader = _interopRequireDefault(require("./fileReader"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
7
9
|
// file、blob文件如何预览图片?
|
|
8
10
|
// 方法1:将file或者blob类型文件转成base64数据,再作为src赋值给img标签
|
|
9
11
|
// 方法2:使用 window.URL.createObjectURL(blob) 为blob、file 创建一个指向该参数对象的URL
|
|
10
12
|
|
|
11
13
|
/**
|
|
12
|
-
* 将 Blob 或 File 对象转成 data:URL 格式的 Base64
|
|
14
|
+
* 将 Blob 或 File 对象转成 data:URL 格式的 Base64 字符串<br/><br/>
|
|
15
|
+
*
|
|
16
|
+
* <em style="font-weight: bold;">注意:该方法仅适用于浏览器端。</em>
|
|
13
17
|
*
|
|
18
|
+
* @ignore
|
|
14
19
|
* @static
|
|
15
20
|
* @alias module:Processor.blobToDataURL
|
|
16
|
-
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL|FileReader.readAsDataURL()}
|
|
17
21
|
* @since 4.1.0
|
|
22
|
+
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL|FileReader.readAsDataURL()}
|
|
23
|
+
* @deprecated 请使用 `fileReader` 方法
|
|
18
24
|
* @param {Blob} blob Blob 或 File 对象
|
|
19
25
|
* @returns {Promise<string>} data:URL 格式的 Base64 字符串。
|
|
20
26
|
* @example
|
|
@@ -32,17 +38,7 @@ exports["default"] = void 0;
|
|
|
32
38
|
* });
|
|
33
39
|
*/
|
|
34
40
|
function blobToDataURL(blob) {
|
|
35
|
-
return
|
|
36
|
-
var reader = new FileReader();
|
|
37
|
-
reader.readAsDataURL(blob);
|
|
38
|
-
// @ts-ignore
|
|
39
|
-
reader.onload = function () {
|
|
40
|
-
return resolve(reader.result);
|
|
41
|
-
};
|
|
42
|
-
reader.onerror = function (error) {
|
|
43
|
-
return reject(error);
|
|
44
|
-
};
|
|
45
|
-
});
|
|
41
|
+
return (0, _fileReader["default"])(blob);
|
|
46
42
|
}
|
|
47
43
|
var _default = blobToDataURL;
|
|
48
44
|
exports["default"] = _default;
|
|
@@ -14,8 +14,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
14
14
|
* @static
|
|
15
15
|
* @alias module:Other.calculateCursorPosition
|
|
16
16
|
* @since 4.6.0
|
|
17
|
-
* @see
|
|
18
|
-
* @see
|
|
17
|
+
* @see {@link https://2950v9.csb.app/|h5示例}
|
|
18
|
+
* @see {@link https://33ccy9.csb.app/|react示例}
|
|
19
19
|
* @param {number} prevPos 赋值前的光标位置,onChange/onInput的光标位置 e.target.selectionEnd
|
|
20
20
|
* @param {string} prevCtrlValue 上一个格式化后的值
|
|
21
21
|
* @param {string} rawValue 当前输入原值
|
package/lib/dataURLToBlob.js
CHANGED
|
@@ -9,8 +9,8 @@ exports["default"] = void 0;
|
|
|
9
9
|
*
|
|
10
10
|
* @static
|
|
11
11
|
* @alias module:Processor.dataURLToBlob
|
|
12
|
-
* @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Glossary/Base64|Base64}
|
|
13
12
|
* @since 4.1.0
|
|
13
|
+
* @see {@link https://developer.mozilla.org/zh-CN/docs/Glossary/Base64|Base64}
|
|
14
14
|
* @param {string} dataurl data: 协议的URL
|
|
15
15
|
* @returns {Blob} Blob 对象
|
|
16
16
|
* @example
|
|
@@ -18,17 +18,18 @@ exports["default"] = void 0;
|
|
|
18
18
|
* dataURLToBlob(dataurl); // Blob {size: 32, type: 'text/html'}
|
|
19
19
|
*/
|
|
20
20
|
function dataURLToBlob(dataurl) {
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
var
|
|
24
|
-
var
|
|
21
|
+
var parts = dataurl.split(',');
|
|
22
|
+
var meta = parts[0].substring(5).split(';');
|
|
23
|
+
var type = meta[0];
|
|
24
|
+
var decoder = meta.indexOf('base64') !== -1 ? atob : decodeURIComponent;
|
|
25
|
+
var bstr = decoder(parts[1]);
|
|
25
26
|
var n = bstr.length;
|
|
26
27
|
var u8arr = new Uint8Array(n);
|
|
27
28
|
while (n--) {
|
|
28
29
|
u8arr[n] = bstr.charCodeAt(n);
|
|
29
30
|
}
|
|
30
31
|
return new Blob([u8arr], {
|
|
31
|
-
type:
|
|
32
|
+
type: type
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
35
|
var _default = dataURLToBlob;
|