@ivujs/i-utils 1.1.14 → 1.1.16

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 (213) hide show
  1. package/dist/cjs/ID-card/index.cjs +87 -0
  2. package/dist/cjs/array/index.cjs +470 -0
  3. package/dist/cjs/clipboard/index.cjs +128 -0
  4. package/dist/cjs/color/index.cjs +193 -0
  5. package/dist/cjs/constants/date.cjs +178 -0
  6. package/dist/cjs/constants/id-card.cjs +52 -0
  7. package/dist/cjs/constants/keycode.cjs +117 -0
  8. package/dist/cjs/constants/lang.cjs +13 -0
  9. package/dist/cjs/constants/math.cjs +13 -0
  10. package/dist/cjs/constants/regexp.cjs +53 -0
  11. package/dist/cjs/constants/sort.cjs +15 -0
  12. package/dist/cjs/cookie/index.cjs +70 -0
  13. package/dist/cjs/crypto/aes/aes.cjs +480 -0
  14. package/dist/cjs/crypto/aes/index.cjs +27 -0
  15. package/dist/cjs/crypto/base32/base32.cjs +357 -0
  16. package/dist/cjs/crypto/base32/index.cjs +41 -0
  17. package/dist/cjs/crypto/base64/base64.cjs +348 -0
  18. package/dist/cjs/crypto/base64/index.cjs +59 -0
  19. package/dist/cjs/crypto/des/des.cjs +257 -0
  20. package/dist/cjs/crypto/des/index.cjs +28 -0
  21. package/dist/cjs/crypto/md5/index.cjs +24 -0
  22. package/dist/cjs/crypto/md5/md5.cjs +897 -0
  23. package/dist/cjs/crypto/sha/sha1/index.cjs +24 -0
  24. package/dist/cjs/crypto/sha/sha1/sha1.cjs +529 -0
  25. package/dist/cjs/crypto/sha/sha256/index.cjs +43 -0
  26. package/dist/cjs/crypto/sha/sha256/sha256.cjs +595 -0
  27. package/dist/cjs/crypto/sha/sha3/index.cjs +41 -0
  28. package/dist/cjs/crypto/sha/sha3/sha3.cjs +624 -0
  29. package/dist/cjs/crypto/sha/sha512/index.cjs +81 -0
  30. package/dist/cjs/crypto/sha/sha512/sha512.cjs +950 -0
  31. package/dist/cjs/crypto/sm/lib/asn1.cjs +149 -0
  32. package/dist/cjs/crypto/sm/lib/ec.cjs +315 -0
  33. package/dist/cjs/crypto/sm/lib/jsbn.cjs +1608 -0
  34. package/dist/cjs/crypto/sm/lib/sm3.cjs +158 -0
  35. package/dist/cjs/crypto/sm/lib/utils.cjs +170 -0
  36. package/dist/cjs/crypto/sm/sm2/index.cjs +112 -0
  37. package/dist/cjs/crypto/sm/sm2/sm2.cjs +231 -0
  38. package/dist/cjs/crypto/sm/sm3/index.cjs +15 -0
  39. package/dist/cjs/crypto/sm/sm3/sm3.cjs +93 -0
  40. package/dist/cjs/crypto/sm/sm4/index.cjs +27 -0
  41. package/dist/cjs/crypto/sm/sm4/sm4.cjs +327 -0
  42. package/dist/cjs/crypto/tea/index.cjs +25 -0
  43. package/dist/cjs/crypto/tea/tea.cjs +187 -0
  44. package/dist/cjs/date/index.cjs +1266 -0
  45. package/dist/cjs/desensitized/index.cjs +75 -0
  46. package/dist/cjs/device/index.cjs +151 -0
  47. package/dist/cjs/dom/index.cjs +129 -0
  48. package/dist/cjs/file/index.cjs +333 -0
  49. package/dist/cjs/function/index.cjs +69 -0
  50. package/dist/cjs/id/index.cjs +1 -1
  51. package/dist/cjs/index.cjs +398 -47
  52. package/dist/cjs/keycode/index.cjs +33 -0
  53. package/dist/cjs/math/index.cjs +278 -0
  54. package/dist/cjs/number/index.cjs +31 -0
  55. package/dist/cjs/object/index.cjs +272 -0
  56. package/dist/cjs/pagination/index.cjs +131 -0
  57. package/dist/cjs/random/index.cjs +24 -0
  58. package/dist/cjs/regexp/index.cjs +100 -0
  59. package/dist/cjs/storage/index.cjs +11 -0
  60. package/dist/cjs/storage/localStorage.cjs +37 -0
  61. package/dist/cjs/storage/sessionStorage.cjs +37 -0
  62. package/dist/cjs/string/index.cjs +358 -0
  63. package/dist/cjs/url/index.cjs +258 -0
  64. package/dist/cjs/validate/index.cjs +468 -0
  65. package/dist/cjs/weapp/index.cjs +142 -0
  66. package/dist/es/ID-card/index.d.ts +31 -0
  67. package/dist/es/ID-card/index.mjs +81 -0
  68. package/dist/es/array/index.d.ts +203 -0
  69. package/dist/es/array/index.mjs +441 -0
  70. package/dist/es/clipboard/index.d.ts +29 -0
  71. package/dist/es/clipboard/index.mjs +122 -0
  72. package/dist/es/color/index.d.ts +52 -0
  73. package/dist/es/color/index.mjs +183 -0
  74. package/dist/es/constants/date.d.ts +174 -0
  75. package/dist/es/constants/date.mjs +176 -0
  76. package/dist/es/constants/id-card.d.ts +43 -0
  77. package/dist/es/constants/id-card.mjs +50 -0
  78. package/dist/es/constants/index.d.ts +7 -0
  79. package/dist/es/constants/keycode.d.ts +103 -0
  80. package/dist/es/constants/keycode.mjs +115 -0
  81. package/dist/es/constants/lang.d.ts +4 -0
  82. package/dist/es/constants/lang.mjs +11 -0
  83. package/dist/es/constants/math.d.ts +4 -0
  84. package/dist/es/constants/math.mjs +11 -0
  85. package/dist/es/constants/regexp.d.ts +24 -0
  86. package/dist/es/constants/regexp.mjs +51 -0
  87. package/dist/es/constants/sort.d.ts +5 -0
  88. package/dist/es/constants/sort.mjs +13 -0
  89. package/dist/es/cookie/index.d.ts +29 -0
  90. package/dist/es/cookie/index.mjs +64 -0
  91. package/dist/es/crypto/aes/aes.d.ts +156 -0
  92. package/dist/es/crypto/aes/aes.mjs +478 -0
  93. package/dist/es/crypto/aes/index.d.ts +16 -0
  94. package/dist/es/crypto/aes/index.mjs +24 -0
  95. package/dist/es/crypto/base32/base32.d.ts +3 -0
  96. package/dist/es/crypto/base32/base32.mjs +353 -0
  97. package/dist/es/crypto/base32/index.d.ts +24 -0
  98. package/dist/es/crypto/base32/index.mjs +36 -0
  99. package/dist/es/crypto/base64/base64.d.ts +5 -0
  100. package/dist/es/crypto/base64/base64.mjs +342 -0
  101. package/dist/es/crypto/base64/index.d.ts +36 -0
  102. package/dist/es/crypto/base64/index.mjs +52 -0
  103. package/dist/es/crypto/des/des.d.ts +52 -0
  104. package/dist/es/crypto/des/des.mjs +255 -0
  105. package/dist/es/crypto/des/index.d.ts +14 -0
  106. package/dist/es/crypto/des/index.mjs +25 -0
  107. package/dist/es/crypto/index.d.ts +8 -0
  108. package/dist/es/crypto/md5/index.d.ts +13 -0
  109. package/dist/es/crypto/md5/index.mjs +21 -0
  110. package/dist/es/crypto/md5/md5.d.ts +144 -0
  111. package/dist/es/crypto/md5/md5.mjs +894 -0
  112. package/dist/es/crypto/sha/index.d.ts +4 -0
  113. package/dist/es/crypto/sha/sha1/index.d.ts +13 -0
  114. package/dist/es/crypto/sha/sha1/index.mjs +21 -0
  115. package/dist/es/crypto/sha/sha1/sha1.d.ts +2 -0
  116. package/dist/es/crypto/sha/sha1/sha1.mjs +526 -0
  117. package/dist/es/crypto/sha/sha256/index.d.ts +26 -0
  118. package/dist/es/crypto/sha/sha256/index.mjs +38 -0
  119. package/dist/es/crypto/sha/sha256/sha256.d.ts +4 -0
  120. package/dist/es/crypto/sha/sha256/sha256.mjs +590 -0
  121. package/dist/es/crypto/sha/sha3/index.d.ts +24 -0
  122. package/dist/es/crypto/sha/sha3/index.mjs +36 -0
  123. package/dist/es/crypto/sha/sha3/sha3.d.ts +4 -0
  124. package/dist/es/crypto/sha/sha3/sha3.mjs +619 -0
  125. package/dist/es/crypto/sha/sha512/index.d.ts +52 -0
  126. package/dist/es/crypto/sha/sha512/index.mjs +72 -0
  127. package/dist/es/crypto/sha/sha512/sha512.d.ts +8 -0
  128. package/dist/es/crypto/sha/sha512/sha512.mjs +941 -0
  129. package/dist/es/crypto/sm/index.d.ts +3 -0
  130. package/dist/es/crypto/sm/lib/asn1.d.ts +12 -0
  131. package/dist/es/crypto/sm/lib/asn1.mjs +146 -0
  132. package/dist/es/crypto/sm/lib/ec.d.ts +126 -0
  133. package/dist/es/crypto/sm/lib/ec.mjs +312 -0
  134. package/dist/es/crypto/sm/lib/jsbn.d.ts +198 -0
  135. package/dist/es/crypto/sm/lib/jsbn.mjs +1605 -0
  136. package/dist/es/crypto/sm/lib/sm3.d.ts +5 -0
  137. package/dist/es/crypto/sm/lib/sm3.mjs +155 -0
  138. package/dist/es/crypto/sm/lib/utils.d.ts +53 -0
  139. package/dist/es/crypto/sm/lib/utils.mjs +158 -0
  140. package/dist/es/crypto/sm/sm2/index.d.ts +71 -0
  141. package/dist/es/crypto/sm/sm2/index.mjs +101 -0
  142. package/dist/es/crypto/sm/sm2/sm2.d.ts +34 -0
  143. package/dist/es/crypto/sm/sm2/sm2.mjs +220 -0
  144. package/dist/es/crypto/sm/sm3/index.d.ts +7 -0
  145. package/dist/es/crypto/sm/sm3/index.mjs +13 -0
  146. package/dist/es/crypto/sm/sm3/sm3.d.ts +1 -0
  147. package/dist/es/crypto/sm/sm3/sm3.mjs +91 -0
  148. package/dist/es/crypto/sm/sm4/index.d.ts +16 -0
  149. package/dist/es/crypto/sm/sm4/index.mjs +24 -0
  150. package/dist/es/crypto/sm/sm4/sm4.d.ts +2 -0
  151. package/dist/es/crypto/sm/sm4/sm4.mjs +324 -0
  152. package/dist/es/crypto/tea/index.d.ts +14 -0
  153. package/dist/es/crypto/tea/index.mjs +22 -0
  154. package/dist/es/crypto/tea/tea.d.ts +69 -0
  155. package/dist/es/crypto/tea/tea.mjs +185 -0
  156. package/dist/es/date/index.d.ts +547 -0
  157. package/dist/es/date/index.mjs +1179 -0
  158. package/dist/es/desensitized/index.d.ts +38 -0
  159. package/dist/es/desensitized/index.mjs +69 -0
  160. package/dist/es/device/index.d.ts +67 -0
  161. package/dist/es/device/index.mjs +137 -0
  162. package/dist/es/dom/index.d.ts +57 -0
  163. package/dist/es/dom/index.mjs +119 -0
  164. package/dist/es/file/index.d.ts +93 -0
  165. package/dist/es/file/index.mjs +317 -0
  166. package/dist/es/function/index.d.ts +23 -0
  167. package/dist/es/function/index.mjs +65 -0
  168. package/dist/es/id/index.mjs +1 -1
  169. package/dist/es/index.d.ts +25 -42
  170. package/dist/es/index.mjs +54 -40
  171. package/dist/es/keycode/index.d.ts +12 -0
  172. package/dist/es/keycode/index.mjs +30 -0
  173. package/dist/es/math/index.d.ts +66 -0
  174. package/dist/es/math/index.mjs +268 -0
  175. package/dist/es/number/index.d.ts +14 -0
  176. package/dist/es/number/index.mjs +28 -0
  177. package/dist/es/object/index.d.ts +83 -0
  178. package/dist/es/object/index.mjs +259 -0
  179. package/dist/es/pagination/index.d.ts +34 -0
  180. package/dist/es/pagination/index.mjs +125 -0
  181. package/dist/es/random/index.d.ts +15 -0
  182. package/dist/es/random/index.mjs +21 -0
  183. package/dist/es/regexp/index.d.ts +63 -0
  184. package/dist/es/regexp/index.mjs +89 -0
  185. package/dist/es/storage/index.d.ts +7 -0
  186. package/dist/es/storage/index.mjs +9 -0
  187. package/dist/es/storage/localStorage.d.ts +21 -0
  188. package/dist/es/storage/localStorage.mjs +32 -0
  189. package/dist/es/storage/sessionStorage.d.ts +21 -0
  190. package/dist/es/storage/sessionStorage.mjs +32 -0
  191. package/dist/es/string/index.d.ts +121 -0
  192. package/dist/es/string/index.mjs +339 -0
  193. package/dist/es/url/index.d.ts +118 -0
  194. package/dist/es/url/index.mjs +240 -0
  195. package/dist/es/validate/index.d.ts +228 -0
  196. package/dist/es/validate/index.mjs +431 -0
  197. package/dist/es/weapp/index.d.ts +57 -0
  198. package/dist/es/weapp/index.mjs +131 -0
  199. package/dist/index.d.ts +2850 -53
  200. package/dist/lib/index.full.cjs.js +14230 -67
  201. package/dist/lib/index.full.cjs.min.js +64 -2
  202. package/dist/lib/index.full.cjs.min.js.map +1 -1
  203. package/dist/lib/index.full.esm.js +13881 -63
  204. package/dist/lib/index.full.esm.min.js +59 -2
  205. package/dist/lib/index.full.esm.min.js.map +1 -1
  206. package/dist/lib/index.full.umd.js +14230 -67
  207. package/dist/lib/index.full.umd.min.js +64 -2
  208. package/dist/lib/index.full.umd.min.js.map +1 -1
  209. package/dist/resolver/auto-imports.cjs +337 -11
  210. package/dist/resolver/auto-imports.mjs +337 -11
  211. package/dist/resolver/index.cjs +1 -1
  212. package/dist/resolver/index.mjs +1 -1
  213. package/package.json +1 -1
@@ -0,0 +1,38 @@
1
+ /**
2
+ * 指定位置的字符串转为星号
3
+ * @param {String|Number} value 字符串参数
4
+ * @param {Number} start 转换开始位置
5
+ * @param {Number} len 显示星号的长度
6
+ * @returns {String} 返回转化后字符串
7
+ */
8
+ export function formatStartOf(value: string | number, start: number, len: number): string;
9
+ /**
10
+ * 姓名中间转为星号
11
+ * @param {String} value 姓名
12
+ * @returns {String} 返回转化后字符串
13
+ */
14
+ export function formatStartOfName(value: string): string;
15
+ /**
16
+ * 手机号码固定位数转为星号
17
+ * @param {String} value 手机号码
18
+ * @param {Number} start 前缀长度,默认3位
19
+ * @param {Number} len 显示星号的长度,默认4位
20
+ * @returns {String} 返回转化后字符串
21
+ */
22
+ export function formatStartOfMobile(value: string, start?: number, len?: number): string;
23
+ /**
24
+ * 身份证号码固定位数转为星号
25
+ * @param {String} value 身份证号码
26
+ * @param {Number} start 前缀长度,默认4位
27
+ * @param {Number} len 显示星号的长度,默认8位
28
+ * @returns {String} 返回转化后字符串
29
+ */
30
+ export function formatStartOfIDCard(value: string, start?: number, len?: number): string;
31
+ /**
32
+ * 银行卡号固定位数转为星号
33
+ * @param {String} value 银行卡号
34
+ * @param {Number} start 前缀长度,默认4位
35
+ * @param {Number} len 显示星号的长度,默认10位
36
+ * @returns {String} 返回转化后字符串
37
+ */
38
+ export function formatStartOfBankCard(value: string, start?: number, len?: number): string;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * 指定位置的字符串转为星号
3
+ * @param {String|Number} value 字符串参数
4
+ * @param {Number} start 转换开始位置
5
+ * @param {Number} len 显示星号的长度
6
+ * @returns {String} 返回转化后字符串
7
+ */
8
+ function formatStartOf(value, start, len) {
9
+ value = String(value);
10
+ if (start > value.length)
11
+ return value;
12
+ // len小于0和len大于剩余长度
13
+ let startStr = "";
14
+ if (len < 0)
15
+ len = 0;
16
+ if (len > value.length - start) {
17
+ len = value.length - start;
18
+ }
19
+ startStr = String().padEnd(len, "*");
20
+ return value.substring(0, start) + startStr + value.substring(start + len);
21
+ }
22
+ /**
23
+ * 姓名中间转为星号
24
+ * @param {String} value 姓名
25
+ * @returns {String} 返回转化后字符串
26
+ */
27
+ function formatStartOfName(value) {
28
+ if (value.length === 2) {
29
+ return formatStartOf(value, 1, 1);
30
+ }
31
+ else if (value.length > 2) {
32
+ return formatStartOf(value, 1, value.length - 2);
33
+ }
34
+ else {
35
+ return value;
36
+ }
37
+ }
38
+ /**
39
+ * 手机号码固定位数转为星号
40
+ * @param {String} value 手机号码
41
+ * @param {Number} start 前缀长度,默认3位
42
+ * @param {Number} len 显示星号的长度,默认4位
43
+ * @returns {String} 返回转化后字符串
44
+ */
45
+ function formatStartOfMobile(value, start = 3, len = 4) {
46
+ return formatStartOf(value, start, len);
47
+ }
48
+ /**
49
+ * 身份证号码固定位数转为星号
50
+ * @param {String} value 身份证号码
51
+ * @param {Number} start 前缀长度,默认4位
52
+ * @param {Number} len 显示星号的长度,默认8位
53
+ * @returns {String} 返回转化后字符串
54
+ */
55
+ function formatStartOfIDCard(value, start = 4, len = 8) {
56
+ return formatStartOf(value, start, len);
57
+ }
58
+ /**
59
+ * 银行卡号固定位数转为星号
60
+ * @param {String} value 银行卡号
61
+ * @param {Number} start 前缀长度,默认4位
62
+ * @param {Number} len 显示星号的长度,默认10位
63
+ * @returns {String} 返回转化后字符串
64
+ */
65
+ function formatStartOfBankCard(value, start = 4, len = 11) {
66
+ return formatStartOf(value, start, len);
67
+ }
68
+
69
+ export { formatStartOf, formatStartOfBankCard, formatStartOfIDCard, formatStartOfMobile, formatStartOfName };
@@ -0,0 +1,67 @@
1
+ /**
2
+ * 获取浏览器信息
3
+ * @description 会获取到浏览器对应的名称以及版本
4
+ * @returns {Object} 返回浏览器信息
5
+ */
6
+ export function getBrowserInfo(): Object;
7
+ /**
8
+ * 判断是pc端
9
+ * @returns {Boolean} 返回true和false
10
+ */
11
+ export function isPc(): boolean;
12
+ /**
13
+ * 判断是手机端
14
+ * @description 包含 android、iphone、黑莓手机、微软手机 等多种操作系统机型
15
+ * @returns {Boolean} 返回true和false
16
+ */
17
+ export function isPhone(): boolean;
18
+ /**
19
+ * 判断是 android
20
+ * @returns {Boolean} 返回true和false
21
+ */
22
+ export function isAndroid(): boolean;
23
+ /**
24
+ * 判断是 ios
25
+ * @returns {Boolean} 返回true和false
26
+ */
27
+ export function isIos(): boolean;
28
+ /**
29
+ * 判断是 windows phone
30
+ * @returns {Boolean} 返回true和false
31
+ */
32
+ export function isWindowsPhone(): boolean;
33
+ /**
34
+ * 判断是 windows
35
+ * @returns {Boolean} 返回true和false
36
+ */
37
+ export function isWindows(): boolean;
38
+ /**
39
+ * 判断是 linux
40
+ * @returns {Boolean} 返回true和false
41
+ */
42
+ export function isLinux(): boolean;
43
+ /**
44
+ * 判断是 Mac
45
+ * @returns {Boolean} 返回true和false
46
+ */
47
+ export function isMac(): boolean;
48
+ /**
49
+ * 判断是iphone
50
+ *@returns {Boolean} 返回true和false
51
+ */
52
+ export function isIphone(): boolean;
53
+ /**
54
+ * 判断是ipad
55
+ *@return {Boolean} 返回true和false
56
+ */
57
+ export function isIpad(): boolean;
58
+ /**
59
+ * 判断是微信内置浏览器
60
+ * @returns {Boolean} 返回true和false
61
+ */
62
+ export function isWeixin(): boolean;
63
+ /**
64
+ * 判断是QQ内置浏览器
65
+ * @returns {Boolean} 返回true和false
66
+ */
67
+ export function isQQ(): boolean;
@@ -0,0 +1,137 @@
1
+ /* 浏览器信息 */
2
+ /**
3
+ * 获取浏览器信息
4
+ * @description 会获取到浏览器对应的名称以及版本
5
+ * @returns {Object} 返回浏览器信息
6
+ */
7
+ function getBrowserInfo() {
8
+ let ua = window.navigator.userAgent.toLowerCase();
9
+ // ie
10
+ let ie = ua.match(/rv:([\d.]+)\) like gecko/) || ua.match(/msie ([\d\.]+)/);
11
+ // edge
12
+ let edge = ua.match(/edg\/([\d\.]+)/);
13
+ // firefox
14
+ let firefox = ua.match(/firefox\/([\d\.]+)/);
15
+ // opera
16
+ let opera = ua.match(/(?:opera|opr).([\d\.]+)/);
17
+ // chrome
18
+ let chrome = ua.match(/chrome\/([\d\.]+)/);
19
+ // safari
20
+ let safari = ua.match(/version\/([\d\.]+).*safari/);
21
+ // 判断类型
22
+ if (ie)
23
+ return { name: "ie", version: ie[1] };
24
+ if (edge)
25
+ return { name: "edge", version: edge[1] };
26
+ if (firefox)
27
+ return { name: "firefox", version: firefox[1] };
28
+ if (opera)
29
+ return { name: "opera", version: opera[1] };
30
+ if (chrome)
31
+ return { name: "chrome", version: chrome[1] };
32
+ if (safari)
33
+ return { name: "safari", version: safari[1] };
34
+ return "unknown";
35
+ }
36
+ /* 设备类型 */
37
+ /**
38
+ * 判断是pc端
39
+ * @returns {Boolean} 返回true和false
40
+ */
41
+ function isPc() {
42
+ return !isPhone();
43
+ }
44
+ /**
45
+ * 判断是手机端
46
+ * @description 包含 android、iphone、黑莓手机、微软手机 等多种操作系统机型
47
+ * @returns {Boolean} 返回true和false
48
+ */
49
+ function isPhone() {
50
+ let ua = window.navigator.userAgent;
51
+ return /Android|webOS|iPhone|iPod|BlackBerry|Windows Phone|IEMobile/i.test(ua);
52
+ }
53
+ /* 操作系统类型 */
54
+ /**
55
+ * 判断是 android
56
+ * @returns {Boolean} 返回true和false
57
+ */
58
+ function isAndroid() {
59
+ let ua = window.navigator.userAgent;
60
+ return /Android|BlackBerry/i.test(ua);
61
+ }
62
+ /**
63
+ * 判断是 ios
64
+ * @returns {Boolean} 返回true和false
65
+ */
66
+ function isIos() {
67
+ let ua = window.navigator.userAgent;
68
+ return /iPhone|iPad|iPod|iOS/i.test(ua);
69
+ }
70
+ /**
71
+ * 判断是 windows phone
72
+ * @returns {Boolean} 返回true和false
73
+ */
74
+ function isWindowsPhone() {
75
+ let ua = window.navigator.userAgent;
76
+ return /Windows Phone/i.test(ua);
77
+ }
78
+ /**
79
+ * 判断是 windows
80
+ * @returns {Boolean} 返回true和false
81
+ */
82
+ function isWindows() {
83
+ let ua = window.navigator.userAgent;
84
+ return /win/i.test(ua);
85
+ }
86
+ /**
87
+ * 判断是 linux
88
+ * @returns {Boolean} 返回true和false
89
+ */
90
+ function isLinux() {
91
+ let ua = window.navigator.userAgent;
92
+ return /linux/i.test(ua);
93
+ }
94
+ /**
95
+ * 判断是 Mac
96
+ * @returns {Boolean} 返回true和false
97
+ */
98
+ function isMac() {
99
+ let ua = window.navigator.userAgent;
100
+ return /mac/i.test(ua);
101
+ }
102
+ /* 苹果设备类型 */
103
+ /**
104
+ * 判断是iphone
105
+ *@returns {Boolean} 返回true和false
106
+ */
107
+ function isIphone() {
108
+ let ua = window.navigator.userAgent;
109
+ return /iPhone/i.test(ua);
110
+ }
111
+ /**
112
+ * 判断是ipad
113
+ *@return {Boolean} 返回true和false
114
+ */
115
+ function isIpad() {
116
+ let ua = window.navigator.userAgent;
117
+ return /iPod/i.test(ua);
118
+ }
119
+ /* 手机浏览器类型 */
120
+ /**
121
+ * 判断是微信内置浏览器
122
+ * @returns {Boolean} 返回true和false
123
+ */
124
+ function isWeixin() {
125
+ let ua = window.navigator.userAgent;
126
+ return /MicroMessenger/i.test(ua);
127
+ }
128
+ /**
129
+ * 判断是QQ内置浏览器
130
+ * @returns {Boolean} 返回true和false
131
+ */
132
+ function isQQ() {
133
+ let ua = window.navigator.userAgent;
134
+ return /QQ/i.test(ua);
135
+ }
136
+
137
+ export { getBrowserInfo, isAndroid, isIos, isIpad, isIphone, isLinux, isMac, isPc, isPhone, isQQ, isWeixin, isWindows, isWindowsPhone };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * 判断元素包含某个类名
3
+ * @param {Element} elem 元素
4
+ * @param {String} className 类名
5
+ * @return {Boolean} 返回true和false
6
+ */
7
+ export function hasClass(elem: Element, className: string): boolean;
8
+ /**
9
+ * 元素添加类名
10
+ * @param {Element} elem 元素
11
+ * @param {String} className 类名
12
+ */
13
+ export function addClass(elem: Element, className: string): void;
14
+ /**
15
+ * 元素删除类名
16
+ * @param {Element} elem 元素
17
+ * @param {String} className 类名
18
+ */
19
+ export function removeClass(elem: Element, className: string): void;
20
+ /**
21
+ * 元素替换类名
22
+ * @param {Element} elem 元素
23
+ * @param {String} newClassName 新的类名
24
+ * @param {String} oldClassName 被替换掉的旧类名
25
+ */
26
+ export function replaceClass(elem: Element, newClassName: string, oldClassName: string): void;
27
+ /**
28
+ * 添加元素的style样式
29
+ * @param {Element} elem 元素
30
+ * @param {Object} styles 样式属性集合
31
+ */
32
+ export function addStyle(elem: Element, styles?: Object): void;
33
+ /**
34
+ * 获取元素的style样式
35
+ * @param {Element} elem 元素
36
+ * @param {String} name 属性
37
+ * @returns {String} 返回样式的值
38
+ */
39
+ export function getStyle(elem: Element, name: string): string;
40
+ /**
41
+ * 删除元素的style样式
42
+ * @param {Element} elem 元素
43
+ * @param {String} name 属性
44
+ */
45
+ export function removeStyle(elem: Element, name: string): void;
46
+ /**
47
+ * html标签转义
48
+ * @param {String} htmlStr html字符串
49
+ * @returns {String} 返回转义后的字符串
50
+ */
51
+ export function htmlEncode(htmlStr: string): string;
52
+ /**
53
+ * html标签解码
54
+ * @param {String} htmlStr html字符串
55
+ * @returns {String} 返回解析后的字符串
56
+ */
57
+ export function htmlDecode(htmlStr: string): string;
@@ -0,0 +1,119 @@
1
+ /* Class操作 */
2
+ /**
3
+ * 判断元素包含某个类名
4
+ * @param {Element} elem 元素
5
+ * @param {String} className 类名
6
+ * @return {Boolean} 返回true和false
7
+ */
8
+ function hasClass(elem, className) {
9
+ return elem.className.indexOf(className) > 0;
10
+ }
11
+ /**
12
+ * 元素添加类名
13
+ * @param {Element} elem 元素
14
+ * @param {String} className 类名
15
+ */
16
+ function addClass(elem, className) {
17
+ if (!hasClass(elem, className)) {
18
+ elem.className += " " + className;
19
+ }
20
+ }
21
+ /**
22
+ * 元素删除类名
23
+ * @param {Element} elem 元素
24
+ * @param {String} className 类名
25
+ */
26
+ function removeClass(elem, className) {
27
+ if (hasClass(elem, className)) {
28
+ elem.className = elem.className.replace(new RegExp(className, "gm"), "");
29
+ }
30
+ }
31
+ /**
32
+ * 元素替换类名
33
+ * @param {Element} elem 元素
34
+ * @param {String} newClassName 新的类名
35
+ * @param {String} oldClassName 被替换掉的旧类名
36
+ */
37
+ function replaceClass(elem, newClassName, oldClassName) {
38
+ removeClass(elem, oldClassName);
39
+ addClass(elem, newClassName);
40
+ }
41
+ /* Style操作 */
42
+ /**
43
+ * 添加元素的style样式
44
+ * @param {Element} elem 元素
45
+ * @param {Object} styles 样式属性集合
46
+ */
47
+ function addStyle(elem, styles = {}) {
48
+ if (!elem)
49
+ return;
50
+ for (let key in styles) {
51
+ elem.style[key] = styles[key];
52
+ }
53
+ }
54
+ /**
55
+ * 获取元素的style样式
56
+ * @param {Element} elem 元素
57
+ * @param {String} name 属性
58
+ * @returns {String} 返回样式的值
59
+ */
60
+ function getStyle(elem, name) {
61
+ if (!elem)
62
+ return;
63
+ return elem.style[name];
64
+ }
65
+ /**
66
+ * 删除元素的style样式
67
+ * @param {Element} elem 元素
68
+ * @param {String} name 属性
69
+ */
70
+ function removeStyle(elem, name) {
71
+ if (!elem)
72
+ return;
73
+ elem.style.removeProperty(name);
74
+ }
75
+ /* Html转码 */
76
+ /**
77
+ * html标签转义
78
+ * @param {String} htmlStr html字符串
79
+ * @returns {String} 返回转义后的字符串
80
+ */
81
+ function htmlEncode(htmlStr) {
82
+ const temp = {
83
+ "<": "&lt;",
84
+ ">": "&gt;",
85
+ "&": "&amp;",
86
+ "(": "&#40;",
87
+ ")": "&#41;",
88
+ "/": "&#47;",
89
+ " ": "&nbsp;",
90
+ '"': "&quot;",
91
+ "'": "&#39;",
92
+ };
93
+ return htmlStr.replace(/[<>&|()\/ '"]/g, function (c) {
94
+ return temp[c];
95
+ });
96
+ }
97
+ /**
98
+ * html标签解码
99
+ * @param {String} htmlStr html字符串
100
+ * @returns {String} 返回解析后的字符串
101
+ */
102
+ function htmlDecode(htmlStr) {
103
+ const temp = {
104
+ "&lt;": "<",
105
+ "&gt;": ">",
106
+ "&amp;": "&",
107
+ "&#40;": "(",
108
+ "&#41;": ")",
109
+ "&#47;": "/",
110
+ "&nbsp;": " ",
111
+ "&quot;": '"',
112
+ "&#39;": "'",
113
+ };
114
+ return htmlStr.replace(/(&lt;|&gt;|&amp;|&#40;|&#41;|&#47;|&nbsp;|&quot;|&#39;)/gi, function (all, t) {
115
+ return temp[t];
116
+ });
117
+ }
118
+
119
+ export { addClass, addStyle, getStyle, hasClass, htmlDecode, htmlEncode, removeClass, removeStyle, replaceClass };
@@ -0,0 +1,93 @@
1
+ /**
2
+ * 格式化文件大小自动转为 B,KB,MB,GB
3
+ * @param {Number} size 文件的大小,单位byte字节
4
+ * @returns {String} 返回格式化后的字符串
5
+ */
6
+ export function formatFileSize(size: number): string;
7
+ /**
8
+ * 获得文件名称
9
+ * @param {String} fileName 文件的全名称,例如:测试图片.jpg
10
+ * @returns {String} 返回文件的名称
11
+ */
12
+ export function getFileName(fileName: string): string;
13
+ /**
14
+ * 获得文件后缀名
15
+ * @param {String} value 文件地址路径或者文件全名称,例如:http://xxx.com/mytest.jpg,测试图片.jpg
16
+ * @returns {String} 返回文件后缀名
17
+ */
18
+ export function getFileSuffix(value: string): string;
19
+ /**
20
+ * file转blob
21
+ * @param {File} file file文件
22
+ * @returns {Promise} 返回Promise的blob
23
+ */
24
+ export function fileToBlob(file: File): Promise<any>;
25
+ /**
26
+ * file转base64
27
+ * @param {File} file file文件
28
+ * @returns {Promise} 返回Promise的base64
29
+ */
30
+ export function fileToBase64(file: File): Promise<any>;
31
+ /**
32
+ * file转url
33
+ * @description 适用于本地上传图片并预览,需要注意 URL.revokeObjectURL(file) 内存释放
34
+ * @param {File} file file文件
35
+ * @returns {Promise} 返回Promise的url
36
+ */
37
+ export function fileToUrl(file: File): Promise<any>;
38
+ /**
39
+ * url赚file
40
+ * @param {String} url url地址
41
+ * @returns {Promise} 返回Promise的file
42
+ */
43
+ export function urlToFile(url: string): Promise<any>;
44
+ /**
45
+ * blob转file
46
+ * @param {Blob} blob blob数据
47
+ * @param {String} fileName 文件名称,默认以时间戳命名
48
+ * @returns {Promise} 返回Promise的file
49
+ */
50
+ export function blobToFile(blob: Blob, fileName?: string): Promise<any>;
51
+ /**
52
+ * blob转文本
53
+ * @param {Blob} blob blob数据
54
+ * @returns {Promise} 返回Promise的文本
55
+ */
56
+ export function blobToText(blob: Blob): Promise<any>;
57
+ /**
58
+ * blob转base64
59
+ * @param {Blob} blob blob数据
60
+ * @returns {Promise} 返回Promise的base64
61
+ */
62
+ export function blobToBase64(blob: Blob): Promise<any>;
63
+ /**
64
+ * base64转file
65
+ * @param {String} base64 base64数据
66
+ * @param {String} fileName 文件名称,默认以时间戳命名
67
+ * @returns {Promise} 返回Promise的file
68
+ */
69
+ export function base64ToFile(base64: string, fileName?: string): Promise<any>;
70
+ /**
71
+ * base64转成blob
72
+ * @param {String} base64 base64数据
73
+ * @returns {Promise} 返回Promise的blob
74
+ */
75
+ export function base64ToBlob(base64: string): Promise<any>;
76
+ /**
77
+ * 图片url转base64
78
+ * @param {String} imgUrl 图片url地址
79
+ * @returns {Promise} 返回Promise的base64
80
+ */
81
+ export function urlToBase64(imgUrl: string): Promise<any>;
82
+ /**
83
+ * 下载blob格式的文件
84
+ * @param {Blob} blob blob数据
85
+ * @param {String} fileName 下载的文件名,不写后缀名则默认为原文件类型
86
+ */
87
+ export function downloadBlobFile(blob: Blob, fileName: string): void;
88
+ /**
89
+ * 通过文件url地址下载
90
+ * @param {String} fileUrl url文件地址
91
+ * @param {String} fileName 下载的文件名,不写后缀名则默认为原文件类型
92
+ */
93
+ export function downloadFileUrl(fileUrl: string, fileName: string): void;