@ivujs/i-utils 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +40 -42
  2. package/dist/cjs/ID-card/index.cjs +21 -13
  3. package/dist/cjs/array/index.cjs +40 -34
  4. package/dist/cjs/clipboard/index.cjs +14 -10
  5. package/dist/cjs/color/index.cjs +73 -59
  6. package/dist/cjs/cookie/index.cjs +16 -13
  7. package/dist/cjs/crypto/base64/base64.cjs +398 -206
  8. package/dist/cjs/crypto/base64/index.cjs +58 -35
  9. package/dist/cjs/crypto/md5/index.cjs +33 -8
  10. package/dist/cjs/crypto/md5/md5.cjs +298 -844
  11. package/dist/cjs/crypto/sha256/index.cjs +95 -0
  12. package/dist/cjs/crypto/sha256/sha256.cjs +557 -0
  13. package/dist/cjs/crypto/sm3/index.cjs +27 -0
  14. package/dist/cjs/crypto/sm3/sm3.cjs +200 -0
  15. package/dist/cjs/crypto/sm4/index.cjs +101 -0
  16. package/dist/cjs/crypto/sm4/sm4.cjs +498 -0
  17. package/dist/cjs/date/index.cjs +379 -335
  18. package/dist/cjs/desensitized/index.cjs +21 -18
  19. package/dist/cjs/device/index.cjs +33 -30
  20. package/dist/cjs/dom/index.cjs +26 -23
  21. package/dist/cjs/file/index.cjs +51 -41
  22. package/dist/cjs/function/index.cjs +22 -19
  23. package/dist/cjs/id/index.cjs +6 -2
  24. package/dist/cjs/index.cjs +108 -127
  25. package/dist/cjs/keycode/index.cjs +9 -12
  26. package/dist/cjs/math/index.cjs +113 -81
  27. package/dist/cjs/number/index.cjs +10 -7
  28. package/dist/cjs/object/index.cjs +77 -30
  29. package/dist/cjs/pagination/index.cjs +25 -10
  30. package/dist/cjs/random/index.cjs +8 -5
  31. package/dist/cjs/regexp/index.cjs +23 -20
  32. package/dist/cjs/storage/index.cjs +4 -1
  33. package/dist/cjs/storage/localStorage.cjs +5 -5
  34. package/dist/cjs/storage/sessionStorage.cjs +6 -6
  35. package/dist/cjs/string/index.cjs +66 -63
  36. package/dist/cjs/url/index.cjs +83 -80
  37. package/dist/cjs/validate/index.cjs +122 -106
  38. package/dist/es/ID-card/index.d.ts +19 -14
  39. package/dist/es/ID-card/index.mjs +22 -14
  40. package/dist/es/array/index.d.ts +56 -50
  41. package/dist/es/array/index.mjs +40 -34
  42. package/dist/es/clipboard/index.d.ts +10 -7
  43. package/dist/es/clipboard/index.mjs +14 -10
  44. package/dist/es/color/index.d.ts +28 -25
  45. package/dist/es/color/index.mjs +73 -59
  46. package/dist/es/constants/date.d.ts +4 -174
  47. package/dist/es/constants/id-card.d.ts +4 -43
  48. package/dist/es/constants/index.d.ts +11 -7
  49. package/dist/es/constants/keycode.d.ts +1 -103
  50. package/dist/es/constants/lang.d.ts +4 -4
  51. package/dist/es/constants/math.d.ts +4 -4
  52. package/dist/es/constants/regexp.d.ts +4 -24
  53. package/dist/es/constants/sort.d.ts +4 -5
  54. package/dist/es/cookie/index.d.ts +13 -13
  55. package/dist/es/cookie/index.mjs +16 -13
  56. package/dist/es/crypto/base64/base64.d.ts +8 -5
  57. package/dist/es/crypto/base64/base64.mjs +393 -204
  58. package/dist/es/crypto/base64/index.d.ts +41 -24
  59. package/dist/es/crypto/base64/index.mjs +53 -32
  60. package/dist/es/crypto/index.d.ts +8 -8
  61. package/dist/es/crypto/md5/index.d.ts +20 -7
  62. package/dist/es/crypto/md5/index.mjs +32 -9
  63. package/dist/es/crypto/md5/md5.d.ts +9 -142
  64. package/dist/es/crypto/md5/md5.mjs +299 -844
  65. package/dist/es/crypto/sha256/index.d.ts +52 -0
  66. package/dist/es/crypto/sha256/index.mjs +86 -0
  67. package/dist/es/crypto/sha256/sha256.d.ts +82 -0
  68. package/dist/es/crypto/sha256/sha256.mjs +548 -0
  69. package/dist/es/crypto/sm3/index.d.ts +13 -0
  70. package/dist/es/crypto/sm3/index.mjs +24 -0
  71. package/dist/es/crypto/sm3/sm3.d.ts +3 -0
  72. package/dist/es/crypto/sm3/sm3.mjs +197 -0
  73. package/dist/es/crypto/sm4/index.d.ts +56 -0
  74. package/dist/es/crypto/sm4/index.mjs +95 -0
  75. package/dist/es/crypto/sm4/sm4.d.ts +48 -0
  76. package/dist/es/crypto/sm4/sm4.mjs +490 -0
  77. package/dist/es/date/index.d.ts +236 -175
  78. package/dist/es/date/index.mjs +378 -335
  79. package/dist/es/desensitized/index.d.ts +26 -23
  80. package/dist/es/desensitized/index.mjs +21 -18
  81. package/dist/es/device/index.d.ts +31 -25
  82. package/dist/es/device/index.mjs +33 -30
  83. package/dist/es/dom/index.d.ts +32 -29
  84. package/dist/es/dom/index.mjs +26 -23
  85. package/dist/es/file/index.d.ts +30 -30
  86. package/dist/es/file/index.mjs +51 -41
  87. package/dist/es/function/index.d.ts +10 -7
  88. package/dist/es/function/index.mjs +22 -19
  89. package/dist/es/id/index.d.ts +3 -0
  90. package/dist/es/id/index.mjs +6 -2
  91. package/dist/es/index.d.ts +24 -25
  92. package/dist/es/index.mjs +6 -23
  93. package/dist/es/keycode/index.d.ts +6 -6
  94. package/dist/es/keycode/index.mjs +9 -12
  95. package/dist/es/math/index.d.ts +37 -37
  96. package/dist/es/math/index.mjs +113 -81
  97. package/dist/es/number/index.d.ts +7 -7
  98. package/dist/es/number/index.mjs +10 -7
  99. package/dist/es/object/index.d.ts +20 -19
  100. package/dist/es/object/index.mjs +77 -30
  101. package/dist/es/pagination/index.d.ts +39 -6
  102. package/dist/es/pagination/index.mjs +25 -10
  103. package/dist/es/random/index.d.ts +10 -7
  104. package/dist/es/random/index.mjs +8 -5
  105. package/dist/es/regexp/index.d.ts +30 -30
  106. package/dist/es/regexp/index.mjs +23 -20
  107. package/dist/es/storage/index.d.ts +10 -4
  108. package/dist/es/storage/index.mjs +4 -1
  109. package/dist/es/storage/localStorage.d.ts +9 -9
  110. package/dist/es/storage/localStorage.mjs +5 -5
  111. package/dist/es/storage/sessionStorage.d.ts +9 -9
  112. package/dist/es/storage/sessionStorage.mjs +6 -6
  113. package/dist/es/string/index.d.ts +62 -59
  114. package/dist/es/string/index.mjs +66 -63
  115. package/dist/es/url/index.d.ts +65 -65
  116. package/dist/es/url/index.mjs +83 -80
  117. package/dist/es/validate/index.d.ts +83 -80
  118. package/dist/es/validate/index.mjs +122 -106
  119. package/dist/index.d.ts +2355 -2803
  120. package/dist/lib/index.full.umd.js +3297 -9474
  121. package/dist/lib/index.full.umd.min.js +2 -64
  122. package/dist/lib/index.full.umd.min.js.map +1 -1
  123. package/dist/resolver/auto-imports.cjs +38 -31
  124. package/dist/resolver/auto-imports.mjs +38 -31
  125. package/dist/resolver/index.cjs +1 -2
  126. package/dist/resolver/index.d.ts +1 -1
  127. package/dist/resolver/index.mjs +1 -2
  128. package/package.json +96 -90
  129. package/dist/cjs/crypto/aes/aes.cjs +0 -480
  130. package/dist/cjs/crypto/aes/index.cjs +0 -27
  131. package/dist/cjs/crypto/base32/base32.cjs +0 -357
  132. package/dist/cjs/crypto/base32/index.cjs +0 -41
  133. package/dist/cjs/crypto/des/des.cjs +0 -257
  134. package/dist/cjs/crypto/des/index.cjs +0 -28
  135. package/dist/cjs/crypto/sha/sha1/index.cjs +0 -24
  136. package/dist/cjs/crypto/sha/sha1/sha1.cjs +0 -529
  137. package/dist/cjs/crypto/sha/sha256/index.cjs +0 -43
  138. package/dist/cjs/crypto/sha/sha256/sha256.cjs +0 -595
  139. package/dist/cjs/crypto/sha/sha3/index.cjs +0 -41
  140. package/dist/cjs/crypto/sha/sha3/sha3.cjs +0 -624
  141. package/dist/cjs/crypto/sha/sha512/index.cjs +0 -81
  142. package/dist/cjs/crypto/sha/sha512/sha512.cjs +0 -950
  143. package/dist/cjs/crypto/sm/lib/asn1.cjs +0 -149
  144. package/dist/cjs/crypto/sm/lib/ec.cjs +0 -315
  145. package/dist/cjs/crypto/sm/lib/jsbn.cjs +0 -1608
  146. package/dist/cjs/crypto/sm/lib/sm3.cjs +0 -158
  147. package/dist/cjs/crypto/sm/lib/utils.cjs +0 -170
  148. package/dist/cjs/crypto/sm/sm2/index.cjs +0 -112
  149. package/dist/cjs/crypto/sm/sm2/sm2.cjs +0 -231
  150. package/dist/cjs/crypto/sm/sm3/index.cjs +0 -15
  151. package/dist/cjs/crypto/sm/sm3/sm3.cjs +0 -93
  152. package/dist/cjs/crypto/sm/sm4/index.cjs +0 -27
  153. package/dist/cjs/crypto/sm/sm4/sm4.cjs +0 -327
  154. package/dist/cjs/crypto/tea/index.cjs +0 -25
  155. package/dist/cjs/crypto/tea/tea.cjs +0 -187
  156. package/dist/cjs/weapp/index.cjs +0 -142
  157. package/dist/es/crypto/aes/aes.d.ts +0 -156
  158. package/dist/es/crypto/aes/aes.mjs +0 -478
  159. package/dist/es/crypto/aes/index.d.ts +0 -16
  160. package/dist/es/crypto/aes/index.mjs +0 -24
  161. package/dist/es/crypto/base32/base32.d.ts +0 -3
  162. package/dist/es/crypto/base32/base32.mjs +0 -353
  163. package/dist/es/crypto/base32/index.d.ts +0 -24
  164. package/dist/es/crypto/base32/index.mjs +0 -36
  165. package/dist/es/crypto/des/des.d.ts +0 -52
  166. package/dist/es/crypto/des/des.mjs +0 -255
  167. package/dist/es/crypto/des/index.d.ts +0 -14
  168. package/dist/es/crypto/des/index.mjs +0 -25
  169. package/dist/es/crypto/sha/index.d.ts +0 -4
  170. package/dist/es/crypto/sha/sha1/index.d.ts +0 -13
  171. package/dist/es/crypto/sha/sha1/index.mjs +0 -21
  172. package/dist/es/crypto/sha/sha1/sha1.d.ts +0 -2
  173. package/dist/es/crypto/sha/sha1/sha1.mjs +0 -526
  174. package/dist/es/crypto/sha/sha256/index.d.ts +0 -26
  175. package/dist/es/crypto/sha/sha256/index.mjs +0 -38
  176. package/dist/es/crypto/sha/sha256/sha256.d.ts +0 -4
  177. package/dist/es/crypto/sha/sha256/sha256.mjs +0 -590
  178. package/dist/es/crypto/sha/sha3/index.d.ts +0 -24
  179. package/dist/es/crypto/sha/sha3/index.mjs +0 -36
  180. package/dist/es/crypto/sha/sha3/sha3.d.ts +0 -4
  181. package/dist/es/crypto/sha/sha3/sha3.mjs +0 -619
  182. package/dist/es/crypto/sha/sha512/index.d.ts +0 -52
  183. package/dist/es/crypto/sha/sha512/index.mjs +0 -72
  184. package/dist/es/crypto/sha/sha512/sha512.d.ts +0 -8
  185. package/dist/es/crypto/sha/sha512/sha512.mjs +0 -941
  186. package/dist/es/crypto/sm/index.d.ts +0 -3
  187. package/dist/es/crypto/sm/lib/asn1.d.ts +0 -12
  188. package/dist/es/crypto/sm/lib/asn1.mjs +0 -146
  189. package/dist/es/crypto/sm/lib/ec.d.ts +0 -126
  190. package/dist/es/crypto/sm/lib/ec.mjs +0 -312
  191. package/dist/es/crypto/sm/lib/jsbn.d.ts +0 -198
  192. package/dist/es/crypto/sm/lib/jsbn.mjs +0 -1605
  193. package/dist/es/crypto/sm/lib/sm3.d.ts +0 -5
  194. package/dist/es/crypto/sm/lib/sm3.mjs +0 -155
  195. package/dist/es/crypto/sm/lib/utils.d.ts +0 -53
  196. package/dist/es/crypto/sm/lib/utils.mjs +0 -158
  197. package/dist/es/crypto/sm/sm2/index.d.ts +0 -71
  198. package/dist/es/crypto/sm/sm2/index.mjs +0 -101
  199. package/dist/es/crypto/sm/sm2/sm2.d.ts +0 -34
  200. package/dist/es/crypto/sm/sm2/sm2.mjs +0 -220
  201. package/dist/es/crypto/sm/sm3/index.d.ts +0 -7
  202. package/dist/es/crypto/sm/sm3/index.mjs +0 -13
  203. package/dist/es/crypto/sm/sm3/sm3.d.ts +0 -1
  204. package/dist/es/crypto/sm/sm3/sm3.mjs +0 -91
  205. package/dist/es/crypto/sm/sm4/index.d.ts +0 -16
  206. package/dist/es/crypto/sm/sm4/index.mjs +0 -24
  207. package/dist/es/crypto/sm/sm4/sm4.d.ts +0 -2
  208. package/dist/es/crypto/sm/sm4/sm4.mjs +0 -324
  209. package/dist/es/crypto/tea/index.d.ts +0 -14
  210. package/dist/es/crypto/tea/index.mjs +0 -22
  211. package/dist/es/crypto/tea/tea.d.ts +0 -69
  212. package/dist/es/crypto/tea/tea.mjs +0 -185
  213. package/dist/es/weapp/index.d.ts +0 -57
  214. package/dist/es/weapp/index.mjs +0 -131
@@ -1,48 +1,52 @@
1
1
  'use strict';
2
2
 
3
+ /**
4
+ * @module 颜色
5
+ */
3
6
  /**
4
7
  * rgb颜色转hex
5
- * @param {String} rgb rgb颜色字符串
6
- * @returns {String} 返回生成的hex颜色
8
+ * @param {string} rgb rgb颜色字符串
9
+ * @returns {string} 返回生成的hex颜色
7
10
  */
8
11
  function rgbToHex(rgb) {
9
- let arr = rgb.split(",");
10
- let r = parseInt(arr[0].split("(")[1]);
11
- let g = parseInt(arr[1]);
12
- let b = parseInt(arr[2].split(")")[0]);
12
+ const arr = rgb.split(",");
13
+ const r = parseInt(arr[0].split("(")[1]);
14
+ const g = parseInt(arr[1]);
15
+ const b = parseInt(arr[2].split(")")[0]);
13
16
  return "#" + _hex(r) + _hex(g) + _hex(b);
14
17
  }
15
18
  /**
16
19
  * rgba颜色转hex
17
- * @param {String} rgba rgba颜色字符串
18
- * @returns {String} 返回生成的hex颜色
20
+ * @param {string} rgba rgba颜色字符串
21
+ * @returns {string} 返回生成的hex颜色
19
22
  */
20
23
  function rgbaToHex(rgba) {
21
- let arr = rgba.split(",");
22
- let r = parseInt(arr[0].split("(")[1]);
23
- let g = parseInt(arr[1]);
24
- let b = parseInt(arr[2]);
25
- let a = parseFloat(arr[3].split(")")[0]);
24
+ const arr = rgba.split(",");
25
+ const r = parseInt(arr[0].split("(")[1]);
26
+ const g = parseInt(arr[1]);
27
+ const b = parseInt(arr[2]);
28
+ const a = parseFloat(arr[3].split(")")[0]);
26
29
  return `#${_hex(Math.round(a * 256 - 1))}${_hex(r)}${_hex(g)}${_hex(b)}`;
27
30
  }
28
31
  /**
29
32
  * rgba颜色转hsl
30
- * @param {String} rgba rgb颜色字符串
31
- * @returns {String} 返回生成的hsl颜色
33
+ * @param {string} rgba rgb颜色字符串
34
+ * @returns {string} 返回生成的hsl颜色
32
35
  */
33
36
  function rgbaToHsl(rgba) {
34
- let arr = rgba.split(",");
35
- let r = parseInt(arr[0].split("(")[1]) / 255;
36
- let g = parseInt(arr[1]) / 255;
37
- let b = parseInt(arr[2]) / 255;
38
- let a = parseFloat(arr[3] && arr[3].split(")")[0]);
39
- let max = Math.max(r, g, b), min = Math.min(r, g, b);
40
- let h, s, l = (max + min) / 2;
37
+ const arr = rgba.split(",");
38
+ const r = parseInt(arr[0].split("(")[1]) / 255;
39
+ const g = parseInt(arr[1]) / 255;
40
+ const b = parseInt(arr[2]) / 255;
41
+ const a = parseFloat(arr[3] && arr[3].split(")")[0]);
42
+ const max = Math.max(r, g, b), min = Math.min(r, g, b);
43
+ let h = 0, s = 0;
44
+ const l = (max + min) / 2;
41
45
  if (max === min) {
42
46
  h = s = 0;
43
47
  }
44
48
  else {
45
- let d = max - min;
49
+ const d = max - min;
46
50
  s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
47
51
  switch (max) {
48
52
  case r:
@@ -64,16 +68,19 @@ function rgbaToHsl(rgba) {
64
68
  }
65
69
  /**
66
70
  * hex颜色转rgb
67
- * @param {String} hex hex颜色字符串
68
- * @returns {String} 返回生成的rgb颜色
71
+ * @param {string} hex hex颜色字符串
72
+ * @returns {string} 返回生成的rgb颜色
69
73
  */
70
74
  function hexToRgb(hex) {
71
- let color = {};
72
- let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
73
- let hexStr = hex.replace(rgx, function (m, r, g, b) {
75
+ const color = { r: 0, g: 0, b: 0};
76
+ const rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
77
+ const hexStr = hex.replace(rgx, function (m, r, g, b) {
74
78
  return r + r + g + g + b + b;
75
79
  });
76
- let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
80
+ const rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
81
+ if (!rgb) {
82
+ throw new Error(`Invalid hex color: ${hex}`);
83
+ }
77
84
  color.r = parseInt(rgb[1], 16);
78
85
  color.g = parseInt(rgb[2], 16);
79
86
  color.b = parseInt(rgb[3], 16);
@@ -81,17 +88,20 @@ function hexToRgb(hex) {
81
88
  }
82
89
  /**
83
90
  * hex颜色转rgba
84
- * @param {String} hex hex颜色字符串
85
- * @param {Number} opacity 透明度
86
- * @returns {String} 返回生成的rgba颜色
91
+ * @param {string} hex hex颜色字符串
92
+ * @param {number} opacity 透明度
93
+ * @returns {string} 返回生成的rgba颜色
87
94
  */
88
95
  function hexToRgba(hex, opacity = 1) {
89
- let color = {};
90
- let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
91
- let hexStr = hex.replace(rgx, function (m, r, g, b) {
96
+ const color = { r: 0, g: 0, b: 0, o: 0 };
97
+ const rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
98
+ const hexStr = hex.replace(rgx, function (m, r, g, b) {
92
99
  return r + r + g + g + b + b;
93
100
  });
94
- let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
101
+ const rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
102
+ if (!rgb) {
103
+ throw new Error(`Invalid hex color: ${hex}`);
104
+ }
95
105
  color.r = parseInt(rgb[1], 16);
96
106
  color.g = parseInt(rgb[2], 16);
97
107
  color.b = parseInt(rgb[3], 16);
@@ -100,27 +110,31 @@ function hexToRgba(hex, opacity = 1) {
100
110
  }
101
111
  /**
102
112
  * hex颜色转hsl
103
- * @param {String} hex hex颜色字符串
104
- * @returns {String} 返回生成的hsl颜色
113
+ * @param {string} hex hex颜色字符串
114
+ * @returns {string} 返回生成的hsl颜色
105
115
  */
106
116
  function hexToHsl(hex) {
107
117
  // 先解析为rgb
108
- let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
109
- let hexStr = hex.replace(rgx, function (m, r, g, b) {
118
+ const rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
119
+ const hexStr = hex.replace(rgx, function (m, r, g, b) {
110
120
  return r + r + g + g + b + b;
111
121
  });
112
- let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
122
+ const rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
123
+ if (!rgb) {
124
+ throw new Error(`Invalid hex color: ${hex}`);
125
+ }
113
126
  // 再组装为hsl格式
114
- let r = parseInt(rgb[1], 16) / 255;
115
- let g = parseInt(rgb[2], 16) / 255;
116
- let b = parseInt(rgb[3], 16) / 255;
117
- let max = Math.max(r, g, b), min = Math.min(r, g, b);
118
- let h, s, l = (max + min) / 2;
127
+ const r = parseInt(rgb[1], 16) / 255;
128
+ const g = parseInt(rgb[2], 16) / 255;
129
+ const b = parseInt(rgb[3], 16) / 255;
130
+ const max = Math.max(r, g, b), min = Math.min(r, g, b);
131
+ let h = 0, s = 0;
132
+ const l = (max + min) / 2;
119
133
  if (max === min) {
120
134
  h = s = 0;
121
135
  }
122
136
  else {
123
- let d = max - min;
137
+ const d = max - min;
124
138
  s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
125
139
  switch (max) {
126
140
  case r:
@@ -139,7 +153,7 @@ function hexToHsl(hex) {
139
153
  }
140
154
  /**
141
155
  * 随机生成hex颜色
142
- * @returns {String} 返回生成的十六进制颜色
156
+ * @returns {string} 返回生成的十六进制颜色
143
157
  */
144
158
  function getDrawHex() {
145
159
  return ("#" +
@@ -149,36 +163,36 @@ function getDrawHex() {
149
163
  }
150
164
  /**
151
165
  * 随机生成rgb颜色
152
- * @returns {String} 返回生成的 rgb 颜色
166
+ * @returns {string} 返回生成的 rgb 颜色
153
167
  */
154
168
  function getDrawRgb() {
155
- let r = Math.floor(Math.random() * 256);
156
- let g = Math.floor(Math.random() * 256);
157
- let b = Math.floor(Math.random() * 256);
169
+ const r = Math.floor(Math.random() * 256);
170
+ const g = Math.floor(Math.random() * 256);
171
+ const b = Math.floor(Math.random() * 256);
158
172
  return `rgb(${r},${g},${b})`;
159
173
  }
160
174
  /**
161
175
  * 随机生成rgba颜色
162
- * @returns {String} 返回生成的 rgba 颜色
176
+ * @returns {string} 返回生成的 rgba 颜色
163
177
  */
164
178
  function getDrawRgba() {
165
- let r = Math.floor(Math.random() * 256);
166
- let g = Math.floor(Math.random() * 256);
167
- let b = Math.floor(Math.random() * 256);
168
- let a = Number(Math.random()).toFixed(2);
179
+ const r = Math.floor(Math.random() * 256);
180
+ const g = Math.floor(Math.random() * 256);
181
+ const b = Math.floor(Math.random() * 256);
182
+ const a = Number(Math.random()).toFixed(2);
169
183
  return `rgba(${r},${g},${b},${a})`;
170
184
  }
171
185
  // 内部函数
172
186
  /**
173
187
  * 颜色值转换
174
- * @param {Number} num 转换的值
188
+ * @param {number} num 转换的值
175
189
  * @returns
176
190
  */
177
191
  function _hex(num) {
178
192
  if (num > 255) {
179
193
  throw "'" + num + "'' is greater than 255(0xff);";
180
194
  }
181
- let str = Number(num).toString(16);
195
+ const str = Number(num).toString(16);
182
196
  return ("0" + str).slice(-2);
183
197
  }
184
198
 
@@ -2,9 +2,12 @@
2
2
 
3
3
  var index = require('../validate/index.cjs');
4
4
 
5
+ /**
6
+ * @module 浏览器Cookie
7
+ */
5
8
  /**
6
9
  * 浏览器是否支持 Cookie
7
- * @returns {Boolean} 返回true和false
10
+ * @returns {boolean} 返回true和false
8
11
  */
9
12
  function isSupportCookie() {
10
13
  return window.navigator.cookieEnabled;
@@ -12,16 +15,16 @@ function isSupportCookie() {
12
15
  /* cookie存储 */
13
16
  /**
14
17
  * 通过name获取cookie
15
- * @param {String} name 参数name
16
- * @returns {String} 返回获取的值
18
+ * @param {string} name 参数name
19
+ * @returns {string} 返回获取的值
17
20
  */
18
21
  function getCookie(name) {
19
22
  if (typeof document == "undefined")
20
23
  return "";
21
24
  // cookie中每个分号后面是有个空格的,需要替换掉
22
- let arr = document.cookie ? document.cookie.replace(/\s/g, "").split(";") : [];
23
- for (let i in arr) {
24
- let tempArr = arr[i].split("=");
25
+ const arr = document.cookie ? document.cookie.replace(/\s/g, "").split(";") : [];
26
+ for (const i in arr) {
27
+ const tempArr = arr[i].split("=");
25
28
  if (tempArr[0] === name) {
26
29
  return decodeURIComponent(tempArr[1]);
27
30
  }
@@ -31,9 +34,9 @@ function getCookie(name) {
31
34
  /**
32
35
  * 通过name设置cookie
33
36
  * 注:timestamp参数不填,则默认为session级别,浏览器关闭即cookie过期
34
- * @param {String} name 参数name
35
- * @param {String} value 设置的value
36
- * @param {Number} timestamp 过期的时间戳值,默认为一天,设置一天过期则为:24*60*60*1000
37
+ * @param {string} name 参数name
38
+ * @param {string} value 设置的value
39
+ * @param {number} timestamp 过期的时间戳值,默认为一天,设置一天过期则为:24*60*60*1000
37
40
  */
38
41
  function setCookie(name, value, timestamp = 24 * 60 * 60 * 1000) {
39
42
  if (typeof document == "undefined")
@@ -42,7 +45,7 @@ function setCookie(name, value, timestamp = 24 * 60 * 60 * 1000) {
42
45
  }
43
46
  /**
44
47
  * 通过name删除cookie
45
- * @param {String} name 参数name
48
+ * @param {string} name 参数name
46
49
  */
47
50
  function removeCookie(name) {
48
51
  if (index.isEmpty(name))
@@ -51,11 +54,11 @@ function removeCookie(name) {
51
54
  }
52
55
  /**
53
56
  * 清空当前站点域名的cookie
54
- * @param {String} domain 域名地址,默认是当前站点域名
57
+ * @param {string} domain 域名地址,默认是当前站点域名
55
58
  */
56
59
  function clearCookie(domain = document.domain) {
57
- let names = document.cookie.match(/[^ =;]+(?==)/g);
58
- if (names) {
60
+ const names = document.cookie.match(/[^ =;]+(?==)/g) || [];
61
+ if (names && names.length > 0) {
59
62
  for (let i = names.length; i--;) {
60
63
  document.cookie =
61
64
  names[i] + "=0;path=/;" + domain ? "domain=" + domain + ";" : "" + "expires=" + new Date(0).toUTCString();