@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.
- package/README.md +40 -42
- package/dist/cjs/ID-card/index.cjs +21 -13
- package/dist/cjs/array/index.cjs +40 -34
- package/dist/cjs/clipboard/index.cjs +14 -10
- package/dist/cjs/color/index.cjs +73 -59
- package/dist/cjs/cookie/index.cjs +16 -13
- package/dist/cjs/crypto/base64/base64.cjs +398 -206
- package/dist/cjs/crypto/base64/index.cjs +58 -35
- package/dist/cjs/crypto/md5/index.cjs +33 -8
- package/dist/cjs/crypto/md5/md5.cjs +298 -844
- package/dist/cjs/crypto/sha256/index.cjs +95 -0
- package/dist/cjs/crypto/sha256/sha256.cjs +557 -0
- package/dist/cjs/crypto/sm3/index.cjs +27 -0
- package/dist/cjs/crypto/sm3/sm3.cjs +200 -0
- package/dist/cjs/crypto/sm4/index.cjs +101 -0
- package/dist/cjs/crypto/sm4/sm4.cjs +498 -0
- package/dist/cjs/date/index.cjs +379 -335
- package/dist/cjs/desensitized/index.cjs +21 -18
- package/dist/cjs/device/index.cjs +33 -30
- package/dist/cjs/dom/index.cjs +26 -23
- package/dist/cjs/file/index.cjs +51 -41
- package/dist/cjs/function/index.cjs +22 -19
- package/dist/cjs/id/index.cjs +6 -2
- package/dist/cjs/index.cjs +108 -127
- package/dist/cjs/keycode/index.cjs +9 -12
- package/dist/cjs/math/index.cjs +113 -81
- package/dist/cjs/number/index.cjs +10 -7
- package/dist/cjs/object/index.cjs +77 -30
- package/dist/cjs/pagination/index.cjs +25 -10
- package/dist/cjs/random/index.cjs +8 -5
- package/dist/cjs/regexp/index.cjs +23 -20
- package/dist/cjs/storage/index.cjs +4 -1
- package/dist/cjs/storage/localStorage.cjs +5 -5
- package/dist/cjs/storage/sessionStorage.cjs +6 -6
- package/dist/cjs/string/index.cjs +66 -63
- package/dist/cjs/url/index.cjs +83 -80
- package/dist/cjs/validate/index.cjs +122 -106
- package/dist/es/ID-card/index.d.ts +19 -14
- package/dist/es/ID-card/index.mjs +22 -14
- package/dist/es/array/index.d.ts +56 -50
- package/dist/es/array/index.mjs +40 -34
- package/dist/es/clipboard/index.d.ts +10 -7
- package/dist/es/clipboard/index.mjs +14 -10
- package/dist/es/color/index.d.ts +28 -25
- package/dist/es/color/index.mjs +73 -59
- package/dist/es/constants/date.d.ts +4 -174
- package/dist/es/constants/id-card.d.ts +4 -43
- package/dist/es/constants/index.d.ts +11 -7
- package/dist/es/constants/keycode.d.ts +1 -103
- package/dist/es/constants/lang.d.ts +4 -4
- package/dist/es/constants/math.d.ts +4 -4
- package/dist/es/constants/regexp.d.ts +4 -24
- package/dist/es/constants/sort.d.ts +4 -5
- package/dist/es/cookie/index.d.ts +13 -13
- package/dist/es/cookie/index.mjs +16 -13
- package/dist/es/crypto/base64/base64.d.ts +8 -5
- package/dist/es/crypto/base64/base64.mjs +393 -204
- package/dist/es/crypto/base64/index.d.ts +41 -24
- package/dist/es/crypto/base64/index.mjs +53 -32
- package/dist/es/crypto/index.d.ts +8 -8
- package/dist/es/crypto/md5/index.d.ts +20 -7
- package/dist/es/crypto/md5/index.mjs +32 -9
- package/dist/es/crypto/md5/md5.d.ts +9 -142
- package/dist/es/crypto/md5/md5.mjs +299 -844
- package/dist/es/crypto/sha256/index.d.ts +52 -0
- package/dist/es/crypto/sha256/index.mjs +86 -0
- package/dist/es/crypto/sha256/sha256.d.ts +82 -0
- package/dist/es/crypto/sha256/sha256.mjs +548 -0
- package/dist/es/crypto/sm3/index.d.ts +13 -0
- package/dist/es/crypto/sm3/index.mjs +24 -0
- package/dist/es/crypto/sm3/sm3.d.ts +3 -0
- package/dist/es/crypto/sm3/sm3.mjs +197 -0
- package/dist/es/crypto/sm4/index.d.ts +56 -0
- package/dist/es/crypto/sm4/index.mjs +95 -0
- package/dist/es/crypto/sm4/sm4.d.ts +48 -0
- package/dist/es/crypto/sm4/sm4.mjs +490 -0
- package/dist/es/date/index.d.ts +236 -175
- package/dist/es/date/index.mjs +378 -335
- package/dist/es/desensitized/index.d.ts +26 -23
- package/dist/es/desensitized/index.mjs +21 -18
- package/dist/es/device/index.d.ts +31 -25
- package/dist/es/device/index.mjs +33 -30
- package/dist/es/dom/index.d.ts +32 -29
- package/dist/es/dom/index.mjs +26 -23
- package/dist/es/file/index.d.ts +30 -30
- package/dist/es/file/index.mjs +51 -41
- package/dist/es/function/index.d.ts +10 -7
- package/dist/es/function/index.mjs +22 -19
- package/dist/es/id/index.d.ts +3 -0
- package/dist/es/id/index.mjs +6 -2
- package/dist/es/index.d.ts +24 -25
- package/dist/es/index.mjs +6 -23
- package/dist/es/keycode/index.d.ts +6 -6
- package/dist/es/keycode/index.mjs +9 -12
- package/dist/es/math/index.d.ts +37 -37
- package/dist/es/math/index.mjs +113 -81
- package/dist/es/number/index.d.ts +7 -7
- package/dist/es/number/index.mjs +10 -7
- package/dist/es/object/index.d.ts +20 -19
- package/dist/es/object/index.mjs +77 -30
- package/dist/es/pagination/index.d.ts +39 -6
- package/dist/es/pagination/index.mjs +25 -10
- package/dist/es/random/index.d.ts +10 -7
- package/dist/es/random/index.mjs +8 -5
- package/dist/es/regexp/index.d.ts +30 -30
- package/dist/es/regexp/index.mjs +23 -20
- package/dist/es/storage/index.d.ts +10 -4
- package/dist/es/storage/index.mjs +4 -1
- package/dist/es/storage/localStorage.d.ts +9 -9
- package/dist/es/storage/localStorage.mjs +5 -5
- package/dist/es/storage/sessionStorage.d.ts +9 -9
- package/dist/es/storage/sessionStorage.mjs +6 -6
- package/dist/es/string/index.d.ts +62 -59
- package/dist/es/string/index.mjs +66 -63
- package/dist/es/url/index.d.ts +65 -65
- package/dist/es/url/index.mjs +83 -80
- package/dist/es/validate/index.d.ts +83 -80
- package/dist/es/validate/index.mjs +122 -106
- package/dist/index.d.ts +2355 -2803
- package/dist/lib/index.full.umd.js +3297 -9474
- package/dist/lib/index.full.umd.min.js +2 -64
- package/dist/lib/index.full.umd.min.js.map +1 -1
- package/dist/resolver/auto-imports.cjs +38 -31
- package/dist/resolver/auto-imports.mjs +38 -31
- package/dist/resolver/index.cjs +1 -2
- package/dist/resolver/index.d.ts +1 -1
- package/dist/resolver/index.mjs +1 -2
- package/package.json +96 -90
- package/dist/cjs/crypto/aes/aes.cjs +0 -480
- package/dist/cjs/crypto/aes/index.cjs +0 -27
- package/dist/cjs/crypto/base32/base32.cjs +0 -357
- package/dist/cjs/crypto/base32/index.cjs +0 -41
- package/dist/cjs/crypto/des/des.cjs +0 -257
- package/dist/cjs/crypto/des/index.cjs +0 -28
- package/dist/cjs/crypto/sha/sha1/index.cjs +0 -24
- package/dist/cjs/crypto/sha/sha1/sha1.cjs +0 -529
- package/dist/cjs/crypto/sha/sha256/index.cjs +0 -43
- package/dist/cjs/crypto/sha/sha256/sha256.cjs +0 -595
- package/dist/cjs/crypto/sha/sha3/index.cjs +0 -41
- package/dist/cjs/crypto/sha/sha3/sha3.cjs +0 -624
- package/dist/cjs/crypto/sha/sha512/index.cjs +0 -81
- package/dist/cjs/crypto/sha/sha512/sha512.cjs +0 -950
- package/dist/cjs/crypto/sm/lib/asn1.cjs +0 -149
- package/dist/cjs/crypto/sm/lib/ec.cjs +0 -315
- package/dist/cjs/crypto/sm/lib/jsbn.cjs +0 -1608
- package/dist/cjs/crypto/sm/lib/sm3.cjs +0 -158
- package/dist/cjs/crypto/sm/lib/utils.cjs +0 -170
- package/dist/cjs/crypto/sm/sm2/index.cjs +0 -112
- package/dist/cjs/crypto/sm/sm2/sm2.cjs +0 -231
- package/dist/cjs/crypto/sm/sm3/index.cjs +0 -15
- package/dist/cjs/crypto/sm/sm3/sm3.cjs +0 -93
- package/dist/cjs/crypto/sm/sm4/index.cjs +0 -27
- package/dist/cjs/crypto/sm/sm4/sm4.cjs +0 -327
- package/dist/cjs/crypto/tea/index.cjs +0 -25
- package/dist/cjs/crypto/tea/tea.cjs +0 -187
- package/dist/cjs/weapp/index.cjs +0 -142
- package/dist/es/crypto/aes/aes.d.ts +0 -156
- package/dist/es/crypto/aes/aes.mjs +0 -478
- package/dist/es/crypto/aes/index.d.ts +0 -16
- package/dist/es/crypto/aes/index.mjs +0 -24
- package/dist/es/crypto/base32/base32.d.ts +0 -3
- package/dist/es/crypto/base32/base32.mjs +0 -353
- package/dist/es/crypto/base32/index.d.ts +0 -24
- package/dist/es/crypto/base32/index.mjs +0 -36
- package/dist/es/crypto/des/des.d.ts +0 -52
- package/dist/es/crypto/des/des.mjs +0 -255
- package/dist/es/crypto/des/index.d.ts +0 -14
- package/dist/es/crypto/des/index.mjs +0 -25
- package/dist/es/crypto/sha/index.d.ts +0 -4
- package/dist/es/crypto/sha/sha1/index.d.ts +0 -13
- package/dist/es/crypto/sha/sha1/index.mjs +0 -21
- package/dist/es/crypto/sha/sha1/sha1.d.ts +0 -2
- package/dist/es/crypto/sha/sha1/sha1.mjs +0 -526
- package/dist/es/crypto/sha/sha256/index.d.ts +0 -26
- package/dist/es/crypto/sha/sha256/index.mjs +0 -38
- package/dist/es/crypto/sha/sha256/sha256.d.ts +0 -4
- package/dist/es/crypto/sha/sha256/sha256.mjs +0 -590
- package/dist/es/crypto/sha/sha3/index.d.ts +0 -24
- package/dist/es/crypto/sha/sha3/index.mjs +0 -36
- package/dist/es/crypto/sha/sha3/sha3.d.ts +0 -4
- package/dist/es/crypto/sha/sha3/sha3.mjs +0 -619
- package/dist/es/crypto/sha/sha512/index.d.ts +0 -52
- package/dist/es/crypto/sha/sha512/index.mjs +0 -72
- package/dist/es/crypto/sha/sha512/sha512.d.ts +0 -8
- package/dist/es/crypto/sha/sha512/sha512.mjs +0 -941
- package/dist/es/crypto/sm/index.d.ts +0 -3
- package/dist/es/crypto/sm/lib/asn1.d.ts +0 -12
- package/dist/es/crypto/sm/lib/asn1.mjs +0 -146
- package/dist/es/crypto/sm/lib/ec.d.ts +0 -126
- package/dist/es/crypto/sm/lib/ec.mjs +0 -312
- package/dist/es/crypto/sm/lib/jsbn.d.ts +0 -198
- package/dist/es/crypto/sm/lib/jsbn.mjs +0 -1605
- package/dist/es/crypto/sm/lib/sm3.d.ts +0 -5
- package/dist/es/crypto/sm/lib/sm3.mjs +0 -155
- package/dist/es/crypto/sm/lib/utils.d.ts +0 -53
- package/dist/es/crypto/sm/lib/utils.mjs +0 -158
- package/dist/es/crypto/sm/sm2/index.d.ts +0 -71
- package/dist/es/crypto/sm/sm2/index.mjs +0 -101
- package/dist/es/crypto/sm/sm2/sm2.d.ts +0 -34
- package/dist/es/crypto/sm/sm2/sm2.mjs +0 -220
- package/dist/es/crypto/sm/sm3/index.d.ts +0 -7
- package/dist/es/crypto/sm/sm3/index.mjs +0 -13
- package/dist/es/crypto/sm/sm3/sm3.d.ts +0 -1
- package/dist/es/crypto/sm/sm3/sm3.mjs +0 -91
- package/dist/es/crypto/sm/sm4/index.d.ts +0 -16
- package/dist/es/crypto/sm/sm4/index.mjs +0 -24
- package/dist/es/crypto/sm/sm4/sm4.d.ts +0 -2
- package/dist/es/crypto/sm/sm4/sm4.mjs +0 -324
- package/dist/es/crypto/tea/index.d.ts +0 -14
- package/dist/es/crypto/tea/index.mjs +0 -22
- package/dist/es/crypto/tea/tea.d.ts +0 -69
- package/dist/es/crypto/tea/tea.mjs +0 -185
- package/dist/es/weapp/index.d.ts +0 -57
- package/dist/es/weapp/index.mjs +0 -131
package/dist/cjs/color/index.cjs
CHANGED
|
@@ -1,48 +1,52 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* @module 颜色
|
|
5
|
+
*/
|
|
3
6
|
/**
|
|
4
7
|
* rgb颜色转hex
|
|
5
|
-
* @param {
|
|
6
|
-
* @returns {
|
|
8
|
+
* @param {string} rgb rgb颜色字符串
|
|
9
|
+
* @returns {string} 返回生成的hex颜色
|
|
7
10
|
*/
|
|
8
11
|
function rgbToHex(rgb) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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 {
|
|
18
|
-
* @returns {
|
|
20
|
+
* @param {string} rgba rgba颜色字符串
|
|
21
|
+
* @returns {string} 返回生成的hex颜色
|
|
19
22
|
*/
|
|
20
23
|
function rgbaToHex(rgba) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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 {
|
|
31
|
-
* @returns {
|
|
33
|
+
* @param {string} rgba rgb颜色字符串
|
|
34
|
+
* @returns {string} 返回生成的hsl颜色
|
|
32
35
|
*/
|
|
33
36
|
function rgbaToHsl(rgba) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
let h, s
|
|
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
|
-
|
|
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 {
|
|
68
|
-
* @returns {
|
|
71
|
+
* @param {string} hex hex颜色字符串
|
|
72
|
+
* @returns {string} 返回生成的rgb颜色
|
|
69
73
|
*/
|
|
70
74
|
function hexToRgb(hex) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
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 {
|
|
85
|
-
* @param {
|
|
86
|
-
* @returns {
|
|
91
|
+
* @param {string} hex hex颜色字符串
|
|
92
|
+
* @param {number} opacity 透明度
|
|
93
|
+
* @returns {string} 返回生成的rgba颜色
|
|
87
94
|
*/
|
|
88
95
|
function hexToRgba(hex, opacity = 1) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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
|
-
|
|
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 {
|
|
104
|
-
* @returns {
|
|
113
|
+
* @param {string} hex hex颜色字符串
|
|
114
|
+
* @returns {string} 返回生成的hsl颜色
|
|
105
115
|
*/
|
|
106
116
|
function hexToHsl(hex) {
|
|
107
117
|
// 先解析为rgb
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
let h, s
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
166
|
+
* @returns {string} 返回生成的 rgb 颜色
|
|
153
167
|
*/
|
|
154
168
|
function getDrawRgb() {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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 {
|
|
176
|
+
* @returns {string} 返回生成的 rgba 颜色
|
|
163
177
|
*/
|
|
164
178
|
function getDrawRgba() {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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 {
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
16
|
-
* @returns {
|
|
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
|
-
|
|
23
|
-
for (
|
|
24
|
-
|
|
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 {
|
|
35
|
-
* @param {
|
|
36
|
-
* @param {
|
|
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 {
|
|
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 {
|
|
57
|
+
* @param {string} domain 域名地址,默认是当前站点域名
|
|
55
58
|
*/
|
|
56
59
|
function clearCookie(domain = document.domain) {
|
|
57
|
-
|
|
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();
|