@ivujs/i-utils 1.1.16 → 1.1.18

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/README.md +21 -19
  2. package/dist/cjs/index.cjs +5 -400
  3. package/dist/es/index.d.ts +1 -26
  4. package/dist/es/index.mjs +2 -55
  5. package/dist/index.d.ts +11 -2851
  6. package/dist/lib/index.full.umd.js +33 -14240
  7. package/dist/lib/index.full.umd.min.js +2 -64
  8. package/dist/lib/index.full.umd.min.js.map +1 -1
  9. package/dist/resolver/auto-imports.cjs +1 -337
  10. package/dist/resolver/auto-imports.mjs +1 -337
  11. package/dist/resolver/index.cjs +1 -1
  12. package/dist/resolver/index.d.ts +1 -1
  13. package/dist/resolver/index.mjs +1 -1
  14. package/package.json +6 -18
  15. package/dist/cjs/ID-card/index.cjs +0 -87
  16. package/dist/cjs/array/index.cjs +0 -470
  17. package/dist/cjs/clipboard/index.cjs +0 -128
  18. package/dist/cjs/color/index.cjs +0 -193
  19. package/dist/cjs/constants/date.cjs +0 -178
  20. package/dist/cjs/constants/id-card.cjs +0 -52
  21. package/dist/cjs/constants/keycode.cjs +0 -117
  22. package/dist/cjs/constants/lang.cjs +0 -13
  23. package/dist/cjs/constants/math.cjs +0 -13
  24. package/dist/cjs/constants/regexp.cjs +0 -53
  25. package/dist/cjs/constants/sort.cjs +0 -15
  26. package/dist/cjs/cookie/index.cjs +0 -70
  27. package/dist/cjs/crypto/aes/aes.cjs +0 -480
  28. package/dist/cjs/crypto/aes/index.cjs +0 -27
  29. package/dist/cjs/crypto/base32/base32.cjs +0 -357
  30. package/dist/cjs/crypto/base32/index.cjs +0 -41
  31. package/dist/cjs/crypto/base64/base64.cjs +0 -348
  32. package/dist/cjs/crypto/base64/index.cjs +0 -59
  33. package/dist/cjs/crypto/des/des.cjs +0 -257
  34. package/dist/cjs/crypto/des/index.cjs +0 -28
  35. package/dist/cjs/crypto/md5/index.cjs +0 -24
  36. package/dist/cjs/crypto/md5/md5.cjs +0 -897
  37. package/dist/cjs/crypto/sha/sha1/index.cjs +0 -24
  38. package/dist/cjs/crypto/sha/sha1/sha1.cjs +0 -529
  39. package/dist/cjs/crypto/sha/sha256/index.cjs +0 -43
  40. package/dist/cjs/crypto/sha/sha256/sha256.cjs +0 -595
  41. package/dist/cjs/crypto/sha/sha3/index.cjs +0 -41
  42. package/dist/cjs/crypto/sha/sha3/sha3.cjs +0 -624
  43. package/dist/cjs/crypto/sha/sha512/index.cjs +0 -81
  44. package/dist/cjs/crypto/sha/sha512/sha512.cjs +0 -950
  45. package/dist/cjs/crypto/sm/lib/asn1.cjs +0 -149
  46. package/dist/cjs/crypto/sm/lib/ec.cjs +0 -315
  47. package/dist/cjs/crypto/sm/lib/jsbn.cjs +0 -1608
  48. package/dist/cjs/crypto/sm/lib/sm3.cjs +0 -158
  49. package/dist/cjs/crypto/sm/lib/utils.cjs +0 -170
  50. package/dist/cjs/crypto/sm/sm2/index.cjs +0 -112
  51. package/dist/cjs/crypto/sm/sm2/sm2.cjs +0 -231
  52. package/dist/cjs/crypto/sm/sm3/index.cjs +0 -15
  53. package/dist/cjs/crypto/sm/sm3/sm3.cjs +0 -93
  54. package/dist/cjs/crypto/sm/sm4/index.cjs +0 -27
  55. package/dist/cjs/crypto/sm/sm4/sm4.cjs +0 -327
  56. package/dist/cjs/crypto/tea/index.cjs +0 -25
  57. package/dist/cjs/crypto/tea/tea.cjs +0 -187
  58. package/dist/cjs/date/index.cjs +0 -1266
  59. package/dist/cjs/desensitized/index.cjs +0 -75
  60. package/dist/cjs/device/index.cjs +0 -151
  61. package/dist/cjs/dom/index.cjs +0 -129
  62. package/dist/cjs/file/index.cjs +0 -333
  63. package/dist/cjs/function/index.cjs +0 -69
  64. package/dist/cjs/keycode/index.cjs +0 -33
  65. package/dist/cjs/math/index.cjs +0 -278
  66. package/dist/cjs/number/index.cjs +0 -31
  67. package/dist/cjs/object/index.cjs +0 -272
  68. package/dist/cjs/pagination/index.cjs +0 -131
  69. package/dist/cjs/random/index.cjs +0 -24
  70. package/dist/cjs/regexp/index.cjs +0 -100
  71. package/dist/cjs/storage/index.cjs +0 -11
  72. package/dist/cjs/storage/localStorage.cjs +0 -37
  73. package/dist/cjs/storage/sessionStorage.cjs +0 -37
  74. package/dist/cjs/string/index.cjs +0 -358
  75. package/dist/cjs/url/index.cjs +0 -258
  76. package/dist/cjs/validate/index.cjs +0 -468
  77. package/dist/cjs/weapp/index.cjs +0 -142
  78. package/dist/es/ID-card/index.d.ts +0 -31
  79. package/dist/es/ID-card/index.mjs +0 -81
  80. package/dist/es/array/index.d.ts +0 -203
  81. package/dist/es/array/index.mjs +0 -441
  82. package/dist/es/clipboard/index.d.ts +0 -29
  83. package/dist/es/clipboard/index.mjs +0 -122
  84. package/dist/es/color/index.d.ts +0 -52
  85. package/dist/es/color/index.mjs +0 -183
  86. package/dist/es/constants/date.d.ts +0 -174
  87. package/dist/es/constants/date.mjs +0 -176
  88. package/dist/es/constants/id-card.d.ts +0 -43
  89. package/dist/es/constants/id-card.mjs +0 -50
  90. package/dist/es/constants/index.d.ts +0 -7
  91. package/dist/es/constants/keycode.d.ts +0 -103
  92. package/dist/es/constants/keycode.mjs +0 -115
  93. package/dist/es/constants/lang.d.ts +0 -4
  94. package/dist/es/constants/lang.mjs +0 -11
  95. package/dist/es/constants/math.d.ts +0 -4
  96. package/dist/es/constants/math.mjs +0 -11
  97. package/dist/es/constants/regexp.d.ts +0 -24
  98. package/dist/es/constants/regexp.mjs +0 -51
  99. package/dist/es/constants/sort.d.ts +0 -5
  100. package/dist/es/constants/sort.mjs +0 -13
  101. package/dist/es/cookie/index.d.ts +0 -29
  102. package/dist/es/cookie/index.mjs +0 -64
  103. package/dist/es/crypto/aes/aes.d.ts +0 -156
  104. package/dist/es/crypto/aes/aes.mjs +0 -478
  105. package/dist/es/crypto/aes/index.d.ts +0 -16
  106. package/dist/es/crypto/aes/index.mjs +0 -24
  107. package/dist/es/crypto/base32/base32.d.ts +0 -3
  108. package/dist/es/crypto/base32/base32.mjs +0 -353
  109. package/dist/es/crypto/base32/index.d.ts +0 -24
  110. package/dist/es/crypto/base32/index.mjs +0 -36
  111. package/dist/es/crypto/base64/base64.d.ts +0 -5
  112. package/dist/es/crypto/base64/base64.mjs +0 -342
  113. package/dist/es/crypto/base64/index.d.ts +0 -36
  114. package/dist/es/crypto/base64/index.mjs +0 -52
  115. package/dist/es/crypto/des/des.d.ts +0 -52
  116. package/dist/es/crypto/des/des.mjs +0 -255
  117. package/dist/es/crypto/des/index.d.ts +0 -14
  118. package/dist/es/crypto/des/index.mjs +0 -25
  119. package/dist/es/crypto/index.d.ts +0 -8
  120. package/dist/es/crypto/md5/index.d.ts +0 -13
  121. package/dist/es/crypto/md5/index.mjs +0 -21
  122. package/dist/es/crypto/md5/md5.d.ts +0 -144
  123. package/dist/es/crypto/md5/md5.mjs +0 -894
  124. package/dist/es/crypto/sha/index.d.ts +0 -4
  125. package/dist/es/crypto/sha/sha1/index.d.ts +0 -13
  126. package/dist/es/crypto/sha/sha1/index.mjs +0 -21
  127. package/dist/es/crypto/sha/sha1/sha1.d.ts +0 -2
  128. package/dist/es/crypto/sha/sha1/sha1.mjs +0 -526
  129. package/dist/es/crypto/sha/sha256/index.d.ts +0 -26
  130. package/dist/es/crypto/sha/sha256/index.mjs +0 -38
  131. package/dist/es/crypto/sha/sha256/sha256.d.ts +0 -4
  132. package/dist/es/crypto/sha/sha256/sha256.mjs +0 -590
  133. package/dist/es/crypto/sha/sha3/index.d.ts +0 -24
  134. package/dist/es/crypto/sha/sha3/index.mjs +0 -36
  135. package/dist/es/crypto/sha/sha3/sha3.d.ts +0 -4
  136. package/dist/es/crypto/sha/sha3/sha3.mjs +0 -619
  137. package/dist/es/crypto/sha/sha512/index.d.ts +0 -52
  138. package/dist/es/crypto/sha/sha512/index.mjs +0 -72
  139. package/dist/es/crypto/sha/sha512/sha512.d.ts +0 -8
  140. package/dist/es/crypto/sha/sha512/sha512.mjs +0 -941
  141. package/dist/es/crypto/sm/index.d.ts +0 -3
  142. package/dist/es/crypto/sm/lib/asn1.d.ts +0 -12
  143. package/dist/es/crypto/sm/lib/asn1.mjs +0 -146
  144. package/dist/es/crypto/sm/lib/ec.d.ts +0 -126
  145. package/dist/es/crypto/sm/lib/ec.mjs +0 -312
  146. package/dist/es/crypto/sm/lib/jsbn.d.ts +0 -198
  147. package/dist/es/crypto/sm/lib/jsbn.mjs +0 -1605
  148. package/dist/es/crypto/sm/lib/sm3.d.ts +0 -5
  149. package/dist/es/crypto/sm/lib/sm3.mjs +0 -155
  150. package/dist/es/crypto/sm/lib/utils.d.ts +0 -53
  151. package/dist/es/crypto/sm/lib/utils.mjs +0 -158
  152. package/dist/es/crypto/sm/sm2/index.d.ts +0 -71
  153. package/dist/es/crypto/sm/sm2/index.mjs +0 -101
  154. package/dist/es/crypto/sm/sm2/sm2.d.ts +0 -34
  155. package/dist/es/crypto/sm/sm2/sm2.mjs +0 -220
  156. package/dist/es/crypto/sm/sm3/index.d.ts +0 -7
  157. package/dist/es/crypto/sm/sm3/index.mjs +0 -13
  158. package/dist/es/crypto/sm/sm3/sm3.d.ts +0 -1
  159. package/dist/es/crypto/sm/sm3/sm3.mjs +0 -91
  160. package/dist/es/crypto/sm/sm4/index.d.ts +0 -16
  161. package/dist/es/crypto/sm/sm4/index.mjs +0 -24
  162. package/dist/es/crypto/sm/sm4/sm4.d.ts +0 -2
  163. package/dist/es/crypto/sm/sm4/sm4.mjs +0 -324
  164. package/dist/es/crypto/tea/index.d.ts +0 -14
  165. package/dist/es/crypto/tea/index.mjs +0 -22
  166. package/dist/es/crypto/tea/tea.d.ts +0 -69
  167. package/dist/es/crypto/tea/tea.mjs +0 -185
  168. package/dist/es/date/index.d.ts +0 -547
  169. package/dist/es/date/index.mjs +0 -1179
  170. package/dist/es/desensitized/index.d.ts +0 -38
  171. package/dist/es/desensitized/index.mjs +0 -69
  172. package/dist/es/device/index.d.ts +0 -67
  173. package/dist/es/device/index.mjs +0 -137
  174. package/dist/es/dom/index.d.ts +0 -57
  175. package/dist/es/dom/index.mjs +0 -119
  176. package/dist/es/file/index.d.ts +0 -93
  177. package/dist/es/file/index.mjs +0 -317
  178. package/dist/es/function/index.d.ts +0 -23
  179. package/dist/es/function/index.mjs +0 -65
  180. package/dist/es/keycode/index.d.ts +0 -12
  181. package/dist/es/keycode/index.mjs +0 -30
  182. package/dist/es/math/index.d.ts +0 -66
  183. package/dist/es/math/index.mjs +0 -268
  184. package/dist/es/number/index.d.ts +0 -14
  185. package/dist/es/number/index.mjs +0 -28
  186. package/dist/es/object/index.d.ts +0 -83
  187. package/dist/es/object/index.mjs +0 -259
  188. package/dist/es/pagination/index.d.ts +0 -34
  189. package/dist/es/pagination/index.mjs +0 -125
  190. package/dist/es/random/index.d.ts +0 -15
  191. package/dist/es/random/index.mjs +0 -21
  192. package/dist/es/regexp/index.d.ts +0 -63
  193. package/dist/es/regexp/index.mjs +0 -89
  194. package/dist/es/storage/index.d.ts +0 -7
  195. package/dist/es/storage/index.mjs +0 -9
  196. package/dist/es/storage/localStorage.d.ts +0 -21
  197. package/dist/es/storage/localStorage.mjs +0 -32
  198. package/dist/es/storage/sessionStorage.d.ts +0 -21
  199. package/dist/es/storage/sessionStorage.mjs +0 -32
  200. package/dist/es/string/index.d.ts +0 -121
  201. package/dist/es/string/index.mjs +0 -339
  202. package/dist/es/url/index.d.ts +0 -118
  203. package/dist/es/url/index.mjs +0 -240
  204. package/dist/es/validate/index.d.ts +0 -228
  205. package/dist/es/validate/index.mjs +0 -431
  206. package/dist/es/weapp/index.d.ts +0 -57
  207. package/dist/es/weapp/index.mjs +0 -131
  208. package/dist/lib/index.full.cjs.js +0 -14264
  209. package/dist/lib/index.full.cjs.min.js +0 -69
  210. package/dist/lib/index.full.cjs.min.js.map +0 -1
  211. package/dist/lib/index.full.esm.js +0 -13910
  212. package/dist/lib/index.full.esm.min.js +0 -64
  213. package/dist/lib/index.full.esm.min.js.map +0 -1
@@ -1,75 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * 指定位置的字符串转为星号
5
- * @param {String|Number} value 字符串参数
6
- * @param {Number} start 转换开始位置
7
- * @param {Number} len 显示星号的长度
8
- * @returns {String} 返回转化后字符串
9
- */
10
- function formatStartOf(value, start, len) {
11
- value = String(value);
12
- if (start > value.length)
13
- return value;
14
- // len小于0和len大于剩余长度
15
- let startStr = "";
16
- if (len < 0)
17
- len = 0;
18
- if (len > value.length - start) {
19
- len = value.length - start;
20
- }
21
- startStr = String().padEnd(len, "*");
22
- return value.substring(0, start) + startStr + value.substring(start + len);
23
- }
24
- /**
25
- * 姓名中间转为星号
26
- * @param {String} value 姓名
27
- * @returns {String} 返回转化后字符串
28
- */
29
- function formatStartOfName(value) {
30
- if (value.length === 2) {
31
- return formatStartOf(value, 1, 1);
32
- }
33
- else if (value.length > 2) {
34
- return formatStartOf(value, 1, value.length - 2);
35
- }
36
- else {
37
- return value;
38
- }
39
- }
40
- /**
41
- * 手机号码固定位数转为星号
42
- * @param {String} value 手机号码
43
- * @param {Number} start 前缀长度,默认3位
44
- * @param {Number} len 显示星号的长度,默认4位
45
- * @returns {String} 返回转化后字符串
46
- */
47
- function formatStartOfMobile(value, start = 3, len = 4) {
48
- return formatStartOf(value, start, len);
49
- }
50
- /**
51
- * 身份证号码固定位数转为星号
52
- * @param {String} value 身份证号码
53
- * @param {Number} start 前缀长度,默认4位
54
- * @param {Number} len 显示星号的长度,默认8位
55
- * @returns {String} 返回转化后字符串
56
- */
57
- function formatStartOfIDCard(value, start = 4, len = 8) {
58
- return formatStartOf(value, start, len);
59
- }
60
- /**
61
- * 银行卡号固定位数转为星号
62
- * @param {String} value 银行卡号
63
- * @param {Number} start 前缀长度,默认4位
64
- * @param {Number} len 显示星号的长度,默认10位
65
- * @returns {String} 返回转化后字符串
66
- */
67
- function formatStartOfBankCard(value, start = 4, len = 11) {
68
- return formatStartOf(value, start, len);
69
- }
70
-
71
- exports.formatStartOf = formatStartOf;
72
- exports.formatStartOfBankCard = formatStartOfBankCard;
73
- exports.formatStartOfIDCard = formatStartOfIDCard;
74
- exports.formatStartOfMobile = formatStartOfMobile;
75
- exports.formatStartOfName = formatStartOfName;
@@ -1,151 +0,0 @@
1
- 'use strict';
2
-
3
- /* 浏览器信息 */
4
- /**
5
- * 获取浏览器信息
6
- * @description 会获取到浏览器对应的名称以及版本
7
- * @returns {Object} 返回浏览器信息
8
- */
9
- function getBrowserInfo() {
10
- let ua = window.navigator.userAgent.toLowerCase();
11
- // ie
12
- let ie = ua.match(/rv:([\d.]+)\) like gecko/) || ua.match(/msie ([\d\.]+)/);
13
- // edge
14
- let edge = ua.match(/edg\/([\d\.]+)/);
15
- // firefox
16
- let firefox = ua.match(/firefox\/([\d\.]+)/);
17
- // opera
18
- let opera = ua.match(/(?:opera|opr).([\d\.]+)/);
19
- // chrome
20
- let chrome = ua.match(/chrome\/([\d\.]+)/);
21
- // safari
22
- let safari = ua.match(/version\/([\d\.]+).*safari/);
23
- // 判断类型
24
- if (ie)
25
- return { name: "ie", version: ie[1] };
26
- if (edge)
27
- return { name: "edge", version: edge[1] };
28
- if (firefox)
29
- return { name: "firefox", version: firefox[1] };
30
- if (opera)
31
- return { name: "opera", version: opera[1] };
32
- if (chrome)
33
- return { name: "chrome", version: chrome[1] };
34
- if (safari)
35
- return { name: "safari", version: safari[1] };
36
- return "unknown";
37
- }
38
- /* 设备类型 */
39
- /**
40
- * 判断是pc端
41
- * @returns {Boolean} 返回true和false
42
- */
43
- function isPc() {
44
- return !isPhone();
45
- }
46
- /**
47
- * 判断是手机端
48
- * @description 包含 android、iphone、黑莓手机、微软手机 等多种操作系统机型
49
- * @returns {Boolean} 返回true和false
50
- */
51
- function isPhone() {
52
- let ua = window.navigator.userAgent;
53
- return /Android|webOS|iPhone|iPod|BlackBerry|Windows Phone|IEMobile/i.test(ua);
54
- }
55
- /* 操作系统类型 */
56
- /**
57
- * 判断是 android
58
- * @returns {Boolean} 返回true和false
59
- */
60
- function isAndroid() {
61
- let ua = window.navigator.userAgent;
62
- return /Android|BlackBerry/i.test(ua);
63
- }
64
- /**
65
- * 判断是 ios
66
- * @returns {Boolean} 返回true和false
67
- */
68
- function isIos() {
69
- let ua = window.navigator.userAgent;
70
- return /iPhone|iPad|iPod|iOS/i.test(ua);
71
- }
72
- /**
73
- * 判断是 windows phone
74
- * @returns {Boolean} 返回true和false
75
- */
76
- function isWindowsPhone() {
77
- let ua = window.navigator.userAgent;
78
- return /Windows Phone/i.test(ua);
79
- }
80
- /**
81
- * 判断是 windows
82
- * @returns {Boolean} 返回true和false
83
- */
84
- function isWindows() {
85
- let ua = window.navigator.userAgent;
86
- return /win/i.test(ua);
87
- }
88
- /**
89
- * 判断是 linux
90
- * @returns {Boolean} 返回true和false
91
- */
92
- function isLinux() {
93
- let ua = window.navigator.userAgent;
94
- return /linux/i.test(ua);
95
- }
96
- /**
97
- * 判断是 Mac
98
- * @returns {Boolean} 返回true和false
99
- */
100
- function isMac() {
101
- let ua = window.navigator.userAgent;
102
- return /mac/i.test(ua);
103
- }
104
- /* 苹果设备类型 */
105
- /**
106
- * 判断是iphone
107
- *@returns {Boolean} 返回true和false
108
- */
109
- function isIphone() {
110
- let ua = window.navigator.userAgent;
111
- return /iPhone/i.test(ua);
112
- }
113
- /**
114
- * 判断是ipad
115
- *@return {Boolean} 返回true和false
116
- */
117
- function isIpad() {
118
- let ua = window.navigator.userAgent;
119
- return /iPod/i.test(ua);
120
- }
121
- /* 手机浏览器类型 */
122
- /**
123
- * 判断是微信内置浏览器
124
- * @returns {Boolean} 返回true和false
125
- */
126
- function isWeixin() {
127
- let ua = window.navigator.userAgent;
128
- return /MicroMessenger/i.test(ua);
129
- }
130
- /**
131
- * 判断是QQ内置浏览器
132
- * @returns {Boolean} 返回true和false
133
- */
134
- function isQQ() {
135
- let ua = window.navigator.userAgent;
136
- return /QQ/i.test(ua);
137
- }
138
-
139
- exports.getBrowserInfo = getBrowserInfo;
140
- exports.isAndroid = isAndroid;
141
- exports.isIos = isIos;
142
- exports.isIpad = isIpad;
143
- exports.isIphone = isIphone;
144
- exports.isLinux = isLinux;
145
- exports.isMac = isMac;
146
- exports.isPc = isPc;
147
- exports.isPhone = isPhone;
148
- exports.isQQ = isQQ;
149
- exports.isWeixin = isWeixin;
150
- exports.isWindows = isWindows;
151
- exports.isWindowsPhone = isWindowsPhone;
@@ -1,129 +0,0 @@
1
- 'use strict';
2
-
3
- /* Class操作 */
4
- /**
5
- * 判断元素包含某个类名
6
- * @param {Element} elem 元素
7
- * @param {String} className 类名
8
- * @return {Boolean} 返回true和false
9
- */
10
- function hasClass(elem, className) {
11
- return elem.className.indexOf(className) > 0;
12
- }
13
- /**
14
- * 元素添加类名
15
- * @param {Element} elem 元素
16
- * @param {String} className 类名
17
- */
18
- function addClass(elem, className) {
19
- if (!hasClass(elem, className)) {
20
- elem.className += " " + className;
21
- }
22
- }
23
- /**
24
- * 元素删除类名
25
- * @param {Element} elem 元素
26
- * @param {String} className 类名
27
- */
28
- function removeClass(elem, className) {
29
- if (hasClass(elem, className)) {
30
- elem.className = elem.className.replace(new RegExp(className, "gm"), "");
31
- }
32
- }
33
- /**
34
- * 元素替换类名
35
- * @param {Element} elem 元素
36
- * @param {String} newClassName 新的类名
37
- * @param {String} oldClassName 被替换掉的旧类名
38
- */
39
- function replaceClass(elem, newClassName, oldClassName) {
40
- removeClass(elem, oldClassName);
41
- addClass(elem, newClassName);
42
- }
43
- /* Style操作 */
44
- /**
45
- * 添加元素的style样式
46
- * @param {Element} elem 元素
47
- * @param {Object} styles 样式属性集合
48
- */
49
- function addStyle(elem, styles = {}) {
50
- if (!elem)
51
- return;
52
- for (let key in styles) {
53
- elem.style[key] = styles[key];
54
- }
55
- }
56
- /**
57
- * 获取元素的style样式
58
- * @param {Element} elem 元素
59
- * @param {String} name 属性
60
- * @returns {String} 返回样式的值
61
- */
62
- function getStyle(elem, name) {
63
- if (!elem)
64
- return;
65
- return elem.style[name];
66
- }
67
- /**
68
- * 删除元素的style样式
69
- * @param {Element} elem 元素
70
- * @param {String} name 属性
71
- */
72
- function removeStyle(elem, name) {
73
- if (!elem)
74
- return;
75
- elem.style.removeProperty(name);
76
- }
77
- /* Html转码 */
78
- /**
79
- * html标签转义
80
- * @param {String} htmlStr html字符串
81
- * @returns {String} 返回转义后的字符串
82
- */
83
- function htmlEncode(htmlStr) {
84
- const temp = {
85
- "<": "&lt;",
86
- ">": "&gt;",
87
- "&": "&amp;",
88
- "(": "&#40;",
89
- ")": "&#41;",
90
- "/": "&#47;",
91
- " ": "&nbsp;",
92
- '"': "&quot;",
93
- "'": "&#39;",
94
- };
95
- return htmlStr.replace(/[<>&|()\/ '"]/g, function (c) {
96
- return temp[c];
97
- });
98
- }
99
- /**
100
- * html标签解码
101
- * @param {String} htmlStr html字符串
102
- * @returns {String} 返回解析后的字符串
103
- */
104
- function htmlDecode(htmlStr) {
105
- const temp = {
106
- "&lt;": "<",
107
- "&gt;": ">",
108
- "&amp;": "&",
109
- "&#40;": "(",
110
- "&#41;": ")",
111
- "&#47;": "/",
112
- "&nbsp;": " ",
113
- "&quot;": '"',
114
- "&#39;": "'",
115
- };
116
- return htmlStr.replace(/(&lt;|&gt;|&amp;|&#40;|&#41;|&#47;|&nbsp;|&quot;|&#39;)/gi, function (all, t) {
117
- return temp[t];
118
- });
119
- }
120
-
121
- exports.addClass = addClass;
122
- exports.addStyle = addStyle;
123
- exports.getStyle = getStyle;
124
- exports.hasClass = hasClass;
125
- exports.htmlDecode = htmlDecode;
126
- exports.htmlEncode = htmlEncode;
127
- exports.removeClass = removeClass;
128
- exports.removeStyle = removeStyle;
129
- exports.replaceClass = replaceClass;
@@ -1,333 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('../validate/index.cjs');
4
-
5
- /* 文件信息处理 */
6
- /**
7
- * 格式化文件大小自动转为 B,KB,MB,GB
8
- * @param {Number} size 文件的大小,单位byte字节
9
- * @returns {String} 返回格式化后的字符串
10
- */
11
- function formatFileSize(size) {
12
- if (index.isEmpty(size))
13
- return "0B";
14
- if (size < 1024) {
15
- return size + "B";
16
- }
17
- else if (size < 1024 * 1024) {
18
- return (size / 1024).toFixed(2) + "KB";
19
- }
20
- else if (size < 1024 * 1024 * 1024) {
21
- return (size / (1024 * 1024)).toFixed(2) + "MB";
22
- }
23
- else {
24
- return (size / (1024 * 1024 * 1024)).toFixed(2) + "GB";
25
- }
26
- }
27
- /**
28
- * 获得文件名称
29
- * @param {String} fileName 文件的全名称,例如:测试图片.jpg
30
- * @returns {String} 返回文件的名称
31
- */
32
- function getFileName(fileName) {
33
- if (index.isEmpty(fileName))
34
- return;
35
- return fileName.substring(0, fileName.lastIndexOf("."));
36
- }
37
- /**
38
- * 获得文件后缀名
39
- * @param {String} value 文件地址路径或者文件全名称,例如:http://xxx.com/mytest.jpg,测试图片.jpg
40
- * @returns {String} 返回文件后缀名
41
- */
42
- function getFileSuffix(value) {
43
- if (index.isEmpty(value))
44
- return;
45
- return value.substring(value.lastIndexOf(".") + 1).toLowerCase();
46
- }
47
- /* 文件转换 */
48
- /**
49
- * file转blob
50
- * @param {File} file file文件
51
- * @returns {Promise} 返回Promise的blob
52
- */
53
- function fileToBlob(file) {
54
- return new Promise((resolve, reject) => {
55
- // 读取解析文件
56
- let reader = new FileReader();
57
- reader.readAsArrayBuffer(file);
58
- // 加载成功
59
- reader.onload = (e) => {
60
- const blob = new Blob([e.target.result], { type: file.type });
61
- resolve(blob);
62
- };
63
- // 加载失败
64
- reader.onerror = function (err) {
65
- console.error(err);
66
- reject(err);
67
- };
68
- });
69
- }
70
- /**
71
- * file转base64
72
- * @param {File} file file文件
73
- * @returns {Promise} 返回Promise的base64
74
- */
75
- function fileToBase64(file) {
76
- return new Promise((resolve, reject) => {
77
- // 读取解析文件
78
- let reader = new FileReader();
79
- reader.readAsDataURL(file);
80
- // 加载成功
81
- reader.onload = function (e) {
82
- resolve(e.target.result);
83
- };
84
- // 加载失败
85
- reader.onerror = function (err) {
86
- console.error(err);
87
- reject(err);
88
- };
89
- });
90
- }
91
- /**
92
- * file转url
93
- * @description 适用于本地上传图片并预览,需要注意 URL.revokeObjectURL(file) 内存释放
94
- * @param {File} file file文件
95
- * @returns {Promise} 返回Promise的url
96
- */
97
- function fileToUrl(file) {
98
- return new Promise((resolve, reject) => {
99
- try {
100
- resolve(URL.createObjectURL(file));
101
- }
102
- catch (err) {
103
- // 捕捉异常
104
- console.error(err);
105
- URL.revokeObjectURL(file);
106
- reject(err);
107
- }
108
- });
109
- }
110
- /**
111
- * url赚file
112
- * @param {String} url url地址
113
- * @returns {Promise} 返回Promise的file
114
- */
115
- function urlToFile(url) {
116
- return new Promise(async (resolve, reject) => {
117
- try {
118
- let res = await window.fetch(url);
119
- if (res.status === 200) {
120
- let blob = await res.blob();
121
- let file = await blobToFile(blob);
122
- resolve(file);
123
- }
124
- }
125
- catch (err) {
126
- console.error(err);
127
- reject(err);
128
- }
129
- });
130
- }
131
- /**
132
- * blob转file
133
- * @param {Blob} blob blob数据
134
- * @param {String} fileName 文件名称,默认以时间戳命名
135
- * @returns {Promise} 返回Promise的file
136
- */
137
- function blobToFile(blob, fileName = Date.now()) {
138
- return new Promise((resolve, reject) => {
139
- try {
140
- const mime = blob.type;
141
- const size = blob.size;
142
- const fileSuffix = mime.split("/")[1];
143
- const file = new File([blob], `${Date.now()}.${fileSuffix}`, {
144
- type: mime,
145
- size: size,
146
- name: `${fileName}.${fileSuffix}`,
147
- lastModified: Date.now(),
148
- lastModifiedDate: new Date(),
149
- });
150
- resolve(file);
151
- }
152
- catch (err) {
153
- // 捕捉异常
154
- console.error(err);
155
- reject(err);
156
- }
157
- });
158
- }
159
- /**
160
- * blob转文本
161
- * @param {Blob} blob blob数据
162
- * @returns {Promise} 返回Promise的文本
163
- */
164
- function blobToText(blob) {
165
- return new Promise((resolve, reject) => {
166
- const reader = new FileReader();
167
- reader.onload = function (event) {
168
- resolve(event.target.result);
169
- };
170
- reader.onerror = function (error) {
171
- reject(error);
172
- };
173
- reader.readAsText(blob);
174
- });
175
- }
176
- /**
177
- * blob转base64
178
- * @param {Blob} blob blob数据
179
- * @returns {Promise} 返回Promise的base64
180
- */
181
- function blobToBase64(blob) {
182
- return new Promise((resolve, reject) => {
183
- // 读取解析文件
184
- let reader = new FileReader();
185
- reader.readAsDataURL(blob);
186
- // 加载成功
187
- reader.onload = function (e) {
188
- resolve(e.target.result);
189
- };
190
- // 加载失败
191
- reader.onerror = function (err) {
192
- console.error(err);
193
- reject(err);
194
- };
195
- });
196
- }
197
- /**
198
- * base64转file
199
- * @param {String} base64 base64数据
200
- * @param {String} fileName 文件名称,默认以时间戳命名
201
- * @returns {Promise} 返回Promise的file
202
- */
203
- function base64ToFile(base64, fileName = Date.now()) {
204
- return new Promise((resolve, reject) => {
205
- try {
206
- const arr = base64.split(",");
207
- const mime = arr[0].match(/:(.*?);/)[1];
208
- const fileSuffix = mime.split("/")[1];
209
- const bstr = window.atob(arr[1]);
210
- let n = bstr.length;
211
- const u8arr = new Uint8Array(n);
212
- while (n--) {
213
- u8arr[n] = bstr.charCodeAt(n);
214
- }
215
- resolve(new File([u8arr], `${fileName}.${fileSuffix}`, { type: mime }));
216
- }
217
- catch (err) {
218
- // 捕捉异常
219
- console.error(err);
220
- reject(err);
221
- }
222
- });
223
- }
224
- /**
225
- * base64转成blob
226
- * @param {String} base64 base64数据
227
- * @returns {Promise} 返回Promise的blob
228
- */
229
- function base64ToBlob(base64) {
230
- return new Promise((resolve, reject) => {
231
- try {
232
- const arr = base64.split(",");
233
- const mime = arr[0].match(/:(.*?);/)[1];
234
- const bstr = window.atob(arr[1]);
235
- let n = bstr.length;
236
- const u8arr = new Uint8Array(n);
237
- while (n--) {
238
- u8arr[n] = bstr.charCodeAt(n);
239
- }
240
- resolve(new Blob([u8arr], { type: mime }));
241
- }
242
- catch (err) {
243
- // 捕捉异常
244
- console.error(err);
245
- reject(err);
246
- }
247
- });
248
- }
249
- /**
250
- * 图片url转base64
251
- * @param {String} imgUrl 图片url地址
252
- * @returns {Promise} 返回Promise的base64
253
- */
254
- function urlToBase64(imgUrl) {
255
- return new Promise((resolve, reject) => {
256
- // 设置图片
257
- const img = new Image();
258
- img.src = imgUrl;
259
- // 加载成功
260
- img.onload = function () {
261
- // 画图
262
- const canvas = document.createElement("canvas");
263
- const context = canvas.getContext("2d");
264
- canvas.width = img.width;
265
- canvas.height = img.height;
266
- context.drawImage(img, 0, 0, img.width, img.height);
267
- // 转为base64
268
- const base64 = canvas.toDataURL("image/png");
269
- resolve(base64);
270
- };
271
- // 加载失败
272
- img.onerror = function (err) {
273
- console.error(err);
274
- reject(err);
275
- };
276
- });
277
- }
278
- /* 下载文件 */
279
- /**
280
- * 下载blob格式的文件
281
- * @param {Blob} blob blob数据
282
- * @param {String} fileName 下载的文件名,不写后缀名则默认为原文件类型
283
- */
284
- function downloadBlobFile(blob, fileName) {
285
- try {
286
- const objUrl = window.URL.createObjectURL(blob);
287
- const link = window.document.createElement("a");
288
- link.download = fileName;
289
- link.href = objUrl;
290
- link.click();
291
- URL.revokeObjectURL(objUrl);
292
- }
293
- catch (error) {
294
- console.error(error);
295
- }
296
- }
297
- /**
298
- * 通过文件url地址下载
299
- * @param {String} fileUrl url文件地址
300
- * @param {String} fileName 下载的文件名,不写后缀名则默认为原文件类型
301
- */
302
- function downloadFileUrl(fileUrl, fileName) {
303
- try {
304
- const link = window.document.createElement("a");
305
- link.download = fileName;
306
- link.href = fileUrl;
307
- link.target = "_blank";
308
- // 生成节点点击
309
- window.document.body.appendChild(link);
310
- link.click();
311
- // 点击后移除节点
312
- window.document.body.removeChild(link);
313
- }
314
- catch (error) {
315
- console.error(error);
316
- }
317
- }
318
-
319
- exports.base64ToBlob = base64ToBlob;
320
- exports.base64ToFile = base64ToFile;
321
- exports.blobToBase64 = blobToBase64;
322
- exports.blobToFile = blobToFile;
323
- exports.blobToText = blobToText;
324
- exports.downloadBlobFile = downloadBlobFile;
325
- exports.downloadFileUrl = downloadFileUrl;
326
- exports.fileToBase64 = fileToBase64;
327
- exports.fileToBlob = fileToBlob;
328
- exports.fileToUrl = fileToUrl;
329
- exports.formatFileSize = formatFileSize;
330
- exports.getFileName = getFileName;
331
- exports.getFileSuffix = getFileSuffix;
332
- exports.urlToBase64 = urlToBase64;
333
- exports.urlToFile = urlToFile;