@fast-china/utils 1.0.2 → 1.0.4

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 (149) hide show
  1. package/dist/index.global.js +13172 -63953
  2. package/dist/index.global.js.map +1 -1
  3. package/dist/index.global.min.js +38 -73
  4. package/dist/index.global.min.js.map +1 -1
  5. package/es/base64/index.d.ts +12 -0
  6. package/es/base64/index.mjs +132 -0
  7. package/es/base64/index.mjs.map +1 -0
  8. package/es/click/index.d.ts +30 -0
  9. package/es/click/index.mjs +82 -0
  10. package/es/click/index.mjs.map +1 -0
  11. package/es/color/index.d.ts +30 -0
  12. package/es/color/index.mjs +60 -0
  13. package/es/color/index.mjs.map +1 -0
  14. package/es/console/index.d.ts +25 -0
  15. package/es/console/index.mjs +44 -0
  16. package/es/console/index.mjs.map +1 -0
  17. package/es/crypto/index.d.ts +46 -0
  18. package/es/crypto/index.mjs +106 -0
  19. package/es/crypto/index.mjs.map +1 -0
  20. package/es/date/index.d.ts +24 -0
  21. package/es/date/index.mjs +251 -0
  22. package/es/date/index.mjs.map +1 -0
  23. package/es/dom/index.d.ts +1 -0
  24. package/es/dom/index.mjs +5 -0
  25. package/es/dom/index.mjs.map +1 -0
  26. package/es/dom/style.d.ts +6 -0
  27. package/es/dom/style.mjs +21 -0
  28. package/es/dom/style.mjs.map +1 -0
  29. package/es/error/index.d.ts +3 -0
  30. package/es/error/index.mjs +10 -0
  31. package/es/error/index.mjs.map +1 -0
  32. package/es/identity/index.d.ts +8 -0
  33. package/es/identity/index.mjs +33 -0
  34. package/es/identity/index.mjs.map +1 -0
  35. package/es/index.d.ts +13 -0
  36. package/es/index.es.d.ts +2 -0
  37. package/es/index.mjs +54 -0
  38. package/es/index.mjs.map +1 -0
  39. package/es/object/index.d.ts +21 -0
  40. package/es/object/index.mjs +118 -0
  41. package/es/object/index.mjs.map +1 -0
  42. package/es/storage/index.d.ts +95 -0
  43. package/es/storage/index.mjs +306 -0
  44. package/es/storage/index.mjs.map +1 -0
  45. package/es/string/index.d.ts +25 -0
  46. package/es/string/index.mjs +94 -0
  47. package/es/string/index.mjs.map +1 -0
  48. package/es/vue/expose.d.ts +4 -0
  49. package/es/vue/expose.mjs +8 -0
  50. package/es/vue/expose.mjs.map +1 -0
  51. package/es/vue/func.d.ts +6 -0
  52. package/es/vue/func.mjs +26 -0
  53. package/es/vue/func.mjs.map +1 -0
  54. package/es/vue/index.d.ts +7 -0
  55. package/es/vue/index.mjs +20 -0
  56. package/es/vue/index.mjs.map +1 -0
  57. package/es/vue/install.d.ts +5 -0
  58. package/es/vue/install.mjs +31 -0
  59. package/es/vue/install.mjs.map +1 -0
  60. package/es/vue/props.d.ts +9 -0
  61. package/es/vue/props.mjs +15 -0
  62. package/es/vue/props.mjs.map +1 -0
  63. package/es/vue/slots.d.ts +11 -0
  64. package/es/vue/slots.mjs +7 -0
  65. package/es/vue/slots.mjs.map +1 -0
  66. package/es/vue/useRender.d.ts +6 -0
  67. package/es/vue/useRender.mjs +12 -0
  68. package/es/vue/useRender.mjs.map +1 -0
  69. package/es/vue/with.d.ts +5 -0
  70. package/es/vue/with.mjs +7 -0
  71. package/es/vue/with.mjs.map +1 -0
  72. package/lib/base64/index.d.ts +12 -0
  73. package/lib/base64/index.js +2 -0
  74. package/lib/base64/index.js.map +1 -0
  75. package/lib/click/index.d.ts +30 -0
  76. package/lib/click/index.js +2 -0
  77. package/lib/click/index.js.map +1 -0
  78. package/lib/color/index.d.ts +30 -0
  79. package/lib/color/index.js +2 -0
  80. package/lib/color/index.js.map +1 -0
  81. package/lib/console/index.d.ts +25 -0
  82. package/lib/console/index.js +2 -0
  83. package/lib/console/index.js.map +1 -0
  84. package/lib/crypto/index.d.ts +46 -0
  85. package/lib/crypto/index.js +2 -0
  86. package/lib/crypto/index.js.map +1 -0
  87. package/lib/date/index.d.ts +24 -0
  88. package/lib/date/index.js +2 -0
  89. package/lib/date/index.js.map +1 -0
  90. package/lib/dom/index.d.ts +1 -0
  91. package/lib/dom/index.js +2 -0
  92. package/lib/dom/index.js.map +1 -0
  93. package/lib/dom/style.d.ts +6 -0
  94. package/lib/dom/style.js +2 -0
  95. package/lib/dom/style.js.map +1 -0
  96. package/lib/error/index.d.ts +3 -0
  97. package/lib/error/index.js +2 -0
  98. package/lib/error/index.js.map +1 -0
  99. package/lib/identity/index.d.ts +8 -0
  100. package/lib/identity/index.js +2 -0
  101. package/lib/identity/index.js.map +1 -0
  102. package/lib/index.d.ts +13 -0
  103. package/lib/index.es.d.ts +2 -0
  104. package/lib/index.js +2 -0
  105. package/lib/index.js.map +1 -0
  106. package/lib/object/index.d.ts +21 -0
  107. package/lib/object/index.js +2 -0
  108. package/lib/object/index.js.map +1 -0
  109. package/lib/storage/index.d.ts +95 -0
  110. package/lib/storage/index.js +2 -0
  111. package/lib/storage/index.js.map +1 -0
  112. package/lib/string/index.d.ts +25 -0
  113. package/lib/string/index.js +2 -0
  114. package/lib/string/index.js.map +1 -0
  115. package/lib/vue/expose.d.ts +4 -0
  116. package/lib/vue/expose.js +2 -0
  117. package/lib/vue/expose.js.map +1 -0
  118. package/lib/vue/func.d.ts +6 -0
  119. package/lib/vue/func.js +2 -0
  120. package/lib/vue/func.js.map +1 -0
  121. package/lib/vue/index.d.ts +7 -0
  122. package/lib/vue/index.js +2 -0
  123. package/lib/vue/index.js.map +1 -0
  124. package/lib/vue/install.d.ts +5 -0
  125. package/lib/vue/install.js +2 -0
  126. package/lib/vue/install.js.map +1 -0
  127. package/lib/vue/props.d.ts +9 -0
  128. package/lib/vue/props.js +2 -0
  129. package/lib/vue/props.js.map +1 -0
  130. package/lib/vue/slots.d.ts +11 -0
  131. package/lib/vue/slots.js +2 -0
  132. package/lib/vue/slots.js.map +1 -0
  133. package/lib/vue/useRender.d.ts +6 -0
  134. package/lib/vue/useRender.js +2 -0
  135. package/lib/vue/useRender.js.map +1 -0
  136. package/lib/vue/with.d.ts +5 -0
  137. package/lib/vue/with.js +2 -0
  138. package/lib/vue/with.js.map +1 -0
  139. package/package.json +92 -81
  140. package/dist/index.cjs +0 -1294
  141. package/dist/index.cjs.map +0 -1
  142. package/dist/index.d.cts +0 -380
  143. package/dist/index.d.ts +0 -380
  144. package/dist/index.js +0 -1264
  145. package/dist/index.js.map +0 -1
  146. package/dist/index.min.cjs +0 -3
  147. package/dist/index.min.cjs.map +0 -1
  148. package/dist/index.min.js +0 -3
  149. package/dist/index.min.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ export declare const base64Util: {
2
+ bota(string: string): string;
3
+ atob(string: string): string;
4
+ /**
5
+ * 字符串ToBase64
6
+ */
7
+ toBase64(str: string, prefixStrLength?: number): string;
8
+ /**
9
+ * Base64转字符串
10
+ */
11
+ base64ToStr(str: string, prefixStrLength?: number): string;
12
+ };
@@ -0,0 +1,132 @@
1
+ const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
2
+ const b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
3
+ const base64PwdDic = [
4
+ { index: 977, randomIndex: 188 },
5
+ { index: 926, randomIndex: 201 },
6
+ { index: 851, randomIndex: 225 },
7
+ { index: 700, randomIndex: 255 },
8
+ { index: 600, randomIndex: 268 },
9
+ { index: 500, randomIndex: 277 },
10
+ { index: 400, randomIndex: 288 },
11
+ { index: 330, randomIndex: 327 },
12
+ { index: 300, randomIndex: 180 },
13
+ { index: 200, randomIndex: 178 },
14
+ { index: 100, randomIndex: 124 },
15
+ // 100 以内字典
16
+ { index: 98, randomIndex: 95 },
17
+ { index: 92, randomIndex: 90 },
18
+ { index: 91, randomIndex: 87 },
19
+ { index: 88, randomIndex: 84 },
20
+ { index: 82, randomIndex: 79 },
21
+ { index: 78, randomIndex: 71 },
22
+ { index: 72, randomIndex: 69 },
23
+ { index: 68, randomIndex: 66 },
24
+ { index: 59, randomIndex: 55 },
25
+ { index: 48, randomIndex: 43 },
26
+ { index: 42, randomIndex: 37 },
27
+ { index: 36, randomIndex: 30 },
28
+ { index: 33, randomIndex: 27 },
29
+ { index: 24, randomIndex: 20 },
30
+ { index: 23, randomIndex: 18 },
31
+ { index: 21, randomIndex: 16 },
32
+ { index: 17, randomIndex: 14 },
33
+ { index: 13, randomIndex: 9 },
34
+ { index: 7, randomIndex: 4 },
35
+ { index: 5, randomIndex: 3 },
36
+ { index: 2, randomIndex: 1 }
37
+ ];
38
+ const randomPrefixStrLength = 6;
39
+ const randomStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
40
+ function insertRandomStrToBase64Str(base64Str) {
41
+ let strResult = base64Str;
42
+ const items = base64PwdDic.sort((a, b) => {
43
+ return b.index - a.index;
44
+ });
45
+ items.forEach((item) => {
46
+ if (item.index < base64Str.length) {
47
+ const randomChar = base64Str[item.randomIndex];
48
+ strResult = strResult.slice(0, item.index) + randomChar + strResult.slice(item.index);
49
+ }
50
+ });
51
+ return strResult;
52
+ }
53
+ function removeBase64StrRandomStr(base64Str) {
54
+ const items = base64PwdDic.sort((a, b) => {
55
+ return a.index - b.index;
56
+ });
57
+ let strResult = base64Str;
58
+ items.forEach((item) => {
59
+ if (item.index < base64Str.length) {
60
+ strResult = strResult.slice(0, item.index) + strResult.slice(item.index + 1);
61
+ }
62
+ });
63
+ return strResult;
64
+ }
65
+ function getRandomStr(str = randomStr, prefixStrLength = randomPrefixStrLength) {
66
+ let result = "";
67
+ for (let i = 0; i < prefixStrLength; i++) {
68
+ const randomInt = Math.ceil(Math.random() * (str.length - 1));
69
+ const randomChar = str[randomInt];
70
+ result += randomChar;
71
+ }
72
+ return result;
73
+ }
74
+ const base64Util = {
75
+ bota(string) {
76
+ string = String(string);
77
+ let bitmap, a, b, c, result = "", i = 0, rest = string.length % 3;
78
+ for (; i < string.length; ) {
79
+ if ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)
80
+ throw new TypeError(
81
+ "Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range."
82
+ );
83
+ bitmap = a << 16 | b << 8 | c;
84
+ result += b64.charAt(bitmap >> 18 & 63) + b64.charAt(bitmap >> 12 & 63) + b64.charAt(bitmap >> 6 & 63) + b64.charAt(bitmap & 63);
85
+ }
86
+ return rest ? result.slice(0, rest - 3) + "===".substring(rest) : result;
87
+ },
88
+ atob(string) {
89
+ string = String(string).replace(/[\t\n\f\r ]+/g, "");
90
+ if (!b64re.test(string)) throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
91
+ string += "==".slice(2 - (string.length & 3));
92
+ let bitmap, result = "", r1, r2, i = 0;
93
+ for (; i < string.length; ) {
94
+ bitmap = b64.indexOf(string.charAt(i++)) << 18 | b64.indexOf(string.charAt(i++)) << 12 | (r1 = b64.indexOf(string.charAt(i++))) << 6 | (r2 = b64.indexOf(string.charAt(i++)));
95
+ result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);
96
+ }
97
+ return result;
98
+ },
99
+ /**
100
+ * 字符串ToBase64
101
+ */
102
+ toBase64(str, prefixStrLength = randomPrefixStrLength) {
103
+ if (str.length === 0) {
104
+ return "";
105
+ }
106
+ const randomPrefixStr = getRandomStr();
107
+ let base64 = base64Util.bota(encodeURIComponent(str));
108
+ if (prefixStrLength !== 0) {
109
+ base64 = insertRandomStrToBase64Str(base64);
110
+ }
111
+ return randomPrefixStr + base64;
112
+ },
113
+ /**
114
+ * Base64转字符串
115
+ */
116
+ base64ToStr(str, prefixStrLength = randomPrefixStrLength) {
117
+ let result = str;
118
+ if (str.length === 0) {
119
+ return "";
120
+ }
121
+ let input = str.slice(prefixStrLength);
122
+ if (prefixStrLength !== 0) {
123
+ input = removeBase64StrRandomStr(input);
124
+ }
125
+ result = base64Util.atob(input);
126
+ return decodeURIComponent(result);
127
+ }
128
+ };
129
+ export {
130
+ base64Util
131
+ };
132
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/base64/index.ts"],"sourcesContent":["const b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\n\n/**加密字典 */\nconst base64PwdDic = [\n\t{ index: 977, randomIndex: 188 },\n\t{ index: 926, randomIndex: 201 },\n\t{ index: 851, randomIndex: 225 },\n\t{ index: 700, randomIndex: 255 },\n\t{ index: 600, randomIndex: 268 },\n\t{ index: 500, randomIndex: 277 },\n\t{ index: 400, randomIndex: 288 },\n\t{ index: 330, randomIndex: 327 },\n\t{ index: 300, randomIndex: 180 },\n\t{ index: 200, randomIndex: 178 },\n\t{ index: 100, randomIndex: 124 },\n\t// 100 以内字典\n\t{ index: 98, randomIndex: 95 },\n\t{ index: 92, randomIndex: 90 },\n\t{ index: 91, randomIndex: 87 },\n\t{ index: 88, randomIndex: 84 },\n\t{ index: 82, randomIndex: 79 },\n\t{ index: 78, randomIndex: 71 },\n\t{ index: 72, randomIndex: 69 },\n\t{ index: 68, randomIndex: 66 },\n\t{ index: 59, randomIndex: 55 },\n\t{ index: 48, randomIndex: 43 },\n\t{ index: 42, randomIndex: 37 },\n\t{ index: 36, randomIndex: 30 },\n\t{ index: 33, randomIndex: 27 },\n\t{ index: 24, randomIndex: 20 },\n\t{ index: 23, randomIndex: 18 },\n\t{ index: 21, randomIndex: 16 },\n\t{ index: 17, randomIndex: 14 },\n\t{ index: 13, randomIndex: 9 },\n\t{ index: 7, randomIndex: 4 },\n\t{ index: 5, randomIndex: 3 },\n\t{ index: 2, randomIndex: 1 },\n];\n\n/**随机字符串长度 */\nconst randomPrefixStrLength = 6;\n\n/**随机字符串 */\nconst randomStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n/**\n * 在Base64字符串中添加加密字典\n */\nfunction insertRandomStrToBase64Str(base64Str: string): string {\n\tlet strResult = base64Str;\n\tconst items = base64PwdDic.sort((a, b) => {\n\t\treturn b.index - a.index;\n\t});\n\titems.forEach((item) => {\n\t\tif (item.index < base64Str.length) {\n\t\t\tconst randomChar = base64Str[item.randomIndex];\n\t\t\tstrResult = strResult.slice(0, item.index) + randomChar + strResult.slice(item.index);\n\t\t}\n\t});\n\treturn strResult;\n}\n\n/**\n * 删除Base64字符串中的加密字典\n */\nfunction removeBase64StrRandomStr(base64Str: string): string {\n\tconst items = base64PwdDic.sort((a, b) => {\n\t\treturn a.index - b.index;\n\t});\n\tlet strResult = base64Str;\n\titems.forEach((item) => {\n\t\tif (item.index < base64Str.length) {\n\t\t\tstrResult = strResult.slice(0, item.index) + strResult.slice(item.index + 1);\n\t\t}\n\t});\n\treturn strResult;\n}\n\n/**\n * 得到随机字符串\n */\nfunction getRandomStr(str = randomStr, prefixStrLength = randomPrefixStrLength): string {\n\tlet result = \"\";\n\tfor (let i = 0; i < prefixStrLength; i++) {\n\t\tconst randomInt = Math.ceil(Math.random() * (str.length - 1));\n\t\tconst randomChar = str[randomInt];\n\t\tresult += randomChar;\n\t}\n\treturn result;\n}\n\nexport const base64Util = {\n\tbota(string: string): string {\n\t\tstring = String(string);\n\t\tlet bitmap,\n\t\t\ta,\n\t\t\tb,\n\t\t\tc,\n\t\t\tresult = \"\",\n\t\t\ti = 0,\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\trest = string.length % 3;\n\n\t\tfor (; i < string.length; ) {\n\t\t\tif ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\"Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.\"\n\t\t\t\t);\n\n\t\t\tbitmap = (a << 16) | (b << 8) | c;\n\t\t\tresult += b64.charAt((bitmap >> 18) & 63) + b64.charAt((bitmap >> 12) & 63) + b64.charAt((bitmap >> 6) & 63) + b64.charAt(bitmap & 63);\n\t\t}\n\n\t\treturn rest ? result.slice(0, rest - 3) + \"===\".substring(rest) : result;\n\t},\n\tatob(string: string): string {\n\t\tstring = String(string).replace(/[\\t\\n\\f\\r ]+/g, \"\");\n\t\tif (!b64re.test(string)) throw new TypeError(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");\n\t\tstring += \"==\".slice(2 - (string.length & 3));\n\t\tlet bitmap,\n\t\t\tresult = \"\",\n\t\t\tr1,\n\t\t\tr2,\n\t\t\ti = 0;\n\t\tfor (; i < string.length; ) {\n\t\t\tbitmap =\n\t\t\t\t(b64.indexOf(string.charAt(i++)) << 18) |\n\t\t\t\t(b64.indexOf(string.charAt(i++)) << 12) |\n\t\t\t\t((r1 = b64.indexOf(string.charAt(i++))) << 6) |\n\t\t\t\t(r2 = b64.indexOf(string.charAt(i++)));\n\n\t\t\tresult +=\n\t\t\t\tr1 === 64\n\t\t\t\t\t? String.fromCharCode((bitmap >> 16) & 255)\n\t\t\t\t\t: r2 === 64\n\t\t\t\t\t\t? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255)\n\t\t\t\t\t\t: String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255, bitmap & 255);\n\t\t}\n\t\treturn result;\n\t},\n\t/**\n\t * 字符串ToBase64\n\t */\n\ttoBase64(str: string, prefixStrLength = randomPrefixStrLength): string {\n\t\tif (str.length === 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tconst randomPrefixStr = getRandomStr();\n\t\tlet base64 = base64Util.bota(encodeURIComponent(str));\n\t\tif (prefixStrLength !== 0) {\n\t\t\tbase64 = insertRandomStrToBase64Str(base64);\n\t\t}\n\t\treturn randomPrefixStr + base64;\n\t},\n\n\t/**\n\t * Base64转字符串\n\t */\n\tbase64ToStr(str: string, prefixStrLength = randomPrefixStrLength): string {\n\t\tlet result = str;\n\t\tif (str.length === 0) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet input = str.slice(prefixStrLength);\n\t\tif (prefixStrLength !== 0) {\n\t\t\tinput = removeBase64StrRandomStr(input);\n\t\t}\n\t\tresult = base64Util.atob(input);\n\t\treturn decodeURIComponent(result);\n\t},\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export declare const clickUtil: {
2
+ /**
3
+ * 防抖
4
+ * @param fn - 执行函数
5
+ * @param delay - 延时毫秒
6
+ * @returns 返回一个新的防抖函数
7
+ */
8
+ debounce(fn: () => void, delay?: number): void;
9
+ /**
10
+ * 异步防抖
11
+ * @param fn - 执行函数
12
+ * @param delay - 延时毫秒
13
+ * @returns 返回一个新的防抖函数
14
+ */
15
+ debounceAsync(fn: () => Promise<void>, delay?: number): Promise<void>;
16
+ /**
17
+ * 节流
18
+ * @param fn - 执行函数
19
+ * @param delay - 延时毫秒
20
+ * @returns 返回一个新的节流函数
21
+ */
22
+ throttle(fn: () => void, delay?: number): void;
23
+ /**
24
+ * 异步节流
25
+ * @param fn - 执行函数
26
+ * @param delay - 延时毫秒
27
+ * @returns 返回一个新的节流函数
28
+ */
29
+ throttleAsync(fn: () => Promise<void>, delay?: number): Promise<void>;
30
+ };
@@ -0,0 +1,82 @@
1
+ let _debounceTimeout = null;
2
+ let _throttleRunning = false;
3
+ const clickUtil = {
4
+ /**
5
+ * 防抖
6
+ * @param fn - 执行函数
7
+ * @param delay - 延时毫秒
8
+ * @returns 返回一个新的防抖函数
9
+ */
10
+ debounce(fn, delay = 500) {
11
+ if (_debounceTimeout) {
12
+ clearTimeout(_debounceTimeout);
13
+ }
14
+ _debounceTimeout = setTimeout(() => {
15
+ fn();
16
+ }, delay);
17
+ },
18
+ /**
19
+ * 异步防抖
20
+ * @param fn - 执行函数
21
+ * @param delay - 延时毫秒
22
+ * @returns 返回一个新的防抖函数
23
+ */
24
+ async debounceAsync(fn, delay = 500) {
25
+ return new Promise((resolve, reject) => {
26
+ if (_debounceTimeout) {
27
+ clearTimeout(_debounceTimeout);
28
+ }
29
+ _debounceTimeout = setTimeout(async () => {
30
+ try {
31
+ await fn();
32
+ resolve();
33
+ } catch (error) {
34
+ reject(error);
35
+ }
36
+ }, delay);
37
+ });
38
+ },
39
+ /**
40
+ * 节流
41
+ * @param fn - 执行函数
42
+ * @param delay - 延时毫秒
43
+ * @returns 返回一个新的节流函数
44
+ */
45
+ throttle(fn, delay = 500) {
46
+ if (_throttleRunning) {
47
+ return;
48
+ }
49
+ _throttleRunning = true;
50
+ fn();
51
+ setTimeout(() => {
52
+ _throttleRunning = false;
53
+ }, delay);
54
+ },
55
+ /**
56
+ * 异步节流
57
+ * @param fn - 执行函数
58
+ * @param delay - 延时毫秒
59
+ * @returns 返回一个新的节流函数
60
+ */
61
+ async throttleAsync(fn, delay = 500) {
62
+ return new Promise((resolve, reject) => {
63
+ if (_throttleRunning) {
64
+ return;
65
+ }
66
+ _throttleRunning = true;
67
+ fn().then(() => {
68
+ resolve();
69
+ }).catch((error) => {
70
+ reject(error);
71
+ }).finally(() => {
72
+ setTimeout(() => {
73
+ _throttleRunning = false;
74
+ }, delay);
75
+ });
76
+ });
77
+ }
78
+ };
79
+ export {
80
+ clickUtil
81
+ };
82
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/click/index.ts"],"sourcesContent":["let _debounceTimeout: ReturnType<typeof setTimeout> | null = null;\nlet _throttleRunning = false;\n\nexport const clickUtil = {\n\t/**\n\t * 防抖\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的防抖函数\n\t */\n\tdebounce(fn: () => void, delay = 500): void {\n\t\t// 如果已有定时器,清除它\n\t\tif (_debounceTimeout) {\n\t\t\tclearTimeout(_debounceTimeout);\n\t\t}\n\t\t// 设置新的定时器\n\t\t_debounceTimeout = setTimeout(() => {\n\t\t\t// 调用原函数\n\t\t\tfn();\n\t\t}, delay);\n\t},\n\t/**\n\t * 异步防抖\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的防抖函数\n\t */\n\tasync debounceAsync(fn: () => Promise<void>, delay = 500): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// 清除已有定时器\n\t\t\tif (_debounceTimeout) {\n\t\t\t\tclearTimeout(_debounceTimeout);\n\t\t\t}\n\t\t\t// 设置新的定时器\n\t\t\t_debounceTimeout = setTimeout(async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// 调用异步函数 fn\n\t\t\t\t\tawait fn();\n\t\t\t\t\tresolve();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t}, delay);\n\t\t});\n\t},\n\t/**\n\t * 节流\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的节流函数\n\t */\n\tthrottle(fn: () => void, delay = 500): void {\n\t\t// 如果节流操作正在运行,直接返回\n\t\tif (_throttleRunning) {\n\t\t\treturn;\n\t\t}\n\t\t// 设置节流状态为运行\n\t\t_throttleRunning = true;\n\t\t// 调用原函数\n\t\tfn();\n\t\t// 设置定时器以重置节流状态\n\t\tsetTimeout(() => {\n\t\t\t_throttleRunning = false;\n\t\t}, delay);\n\t},\n\t/**\n\t * 异步节流\n\t * @param fn - 执行函数\n\t * @param delay - 延时毫秒\n\t * @returns 返回一个新的节流函数\n\t */\n\tasync throttleAsync(fn: () => Promise<void>, delay = 500): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// 如果节流操作正在进行,直接返回\n\t\t\tif (_throttleRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// 设置节流状态为运行\n\t\t\t_throttleRunning = true;\n\t\t\t// 调用原函数\n\t\t\tfn()\n\t\t\t\t.then(() => {\n\t\t\t\t\tresolve();\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\t// 设置定时器以重置节流状态\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t_throttleRunning = false;\n\t\t\t\t\t}, delay);\n\t\t\t\t});\n\t\t});\n\t},\n};\n"],"names":[],"mappings":"AAAA,IAAI,mBAAyD;AAC7D,IAAI,mBAAmB;AAEhB,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxB,SAAS,IAAgB,QAAQ,KAAW;AAE3C,QAAI,kBAAkB;AACrB,mBAAa,gBAAgB;AAAA,IAAA;AAG9B,uBAAmB,WAAW,MAAM;AAEhC,SAAA;AAAA,OACD,KAAK;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,IAAyB,QAAQ,KAAoB;AACxE,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAEvC,UAAI,kBAAkB;AACrB,qBAAa,gBAAgB;AAAA,MAAA;AAG9B,yBAAmB,WAAW,YAAY;AACrC,YAAA;AAEH,gBAAM,GAAG;AACD,kBAAA;AAAA,iBACA,OAAO;AACf,iBAAO,KAAK;AAAA,QAAA;AAAA,SAEX,KAAK;AAAA,IAAA,CACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,IAAgB,QAAQ,KAAW;AAE3C,QAAI,kBAAkB;AACrB;AAAA,IAAA;AAGkB,uBAAA;AAEhB,OAAA;AAEH,eAAW,MAAM;AACG,yBAAA;AAAA,OACjB,KAAK;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,IAAyB,QAAQ,KAAoB;AACxE,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAEvC,UAAI,kBAAkB;AACrB;AAAA,MAAA;AAGkB,yBAAA;AAEhB,SAAA,EACD,KAAK,MAAM;AACH,gBAAA;AAAA,MAAA,CACR,EACA,MAAM,CAAC,UAAU;AACjB,eAAO,KAAK;AAAA,MAAA,CACZ,EACA,QAAQ,MAAM;AAEd,mBAAW,MAAM;AACG,6BAAA;AAAA,WACjB,KAAK;AAAA,MAAA,CACR;AAAA,IAAA,CACF;AAAA,EAAA;AAEH;"}
@@ -0,0 +1,30 @@
1
+ export declare const colorUtil: {
2
+ /**
3
+ * hex颜色转rgb颜色
4
+ * @param str 颜色值字符串
5
+ * @returns 返回处理后的颜色值
6
+ */
7
+ hexToRgb(str: any): any;
8
+ /**
9
+ * rgb颜色转Hex颜色
10
+ * @param r 代表红色
11
+ * @param g 代表绿色
12
+ * @param b 代表蓝色
13
+ * @returns 返回处理后的颜色值
14
+ */
15
+ rgbToHex(r: any, g: any, b: any): string;
16
+ /**
17
+ * 加深颜色值
18
+ * @param color 颜色值字符串
19
+ * @param level 加深的程度,限0-1之间
20
+ * @returns 返回处理后的颜色值
21
+ */
22
+ getDarkColor(color: string, level: number): string;
23
+ /**
24
+ * 变浅颜色值
25
+ * @param color 颜色值字符串
26
+ * @param level 加深的程度,限0-1之间
27
+ * @returns 返回处理后的颜色值
28
+ */
29
+ getLightColor(color: string, level: number): string;
30
+ };
@@ -0,0 +1,60 @@
1
+ const colorUtil = {
2
+ /**
3
+ * hex颜色转rgb颜色
4
+ * @param str 颜色值字符串
5
+ * @returns 返回处理后的颜色值
6
+ */
7
+ hexToRgb(str) {
8
+ let hex = "";
9
+ const reg = /^#?[0-9A-Fa-f]{6}$/;
10
+ if (!reg.test(str)) throw new Error("输入错误的hex");
11
+ str = str.replace("#", "");
12
+ hex = str.match(/../g);
13
+ for (let i = 0; i < 3; i++) hex[i] = parseInt(hex[i], 16);
14
+ return hex;
15
+ },
16
+ /**
17
+ * rgb颜色转Hex颜色
18
+ * @param r 代表红色
19
+ * @param g 代表绿色
20
+ * @param b 代表蓝色
21
+ * @returns 返回处理后的颜色值
22
+ */
23
+ rgbToHex(r, g, b) {
24
+ const reg = /^\d{1,3}$/;
25
+ if (!reg.test(r) || !reg.test(g) || !reg.test(b)) throw new Error("输入错误的rgb颜色值");
26
+ const hex = [r.toString(16), g.toString(16), b.toString(16)];
27
+ for (let i = 0; i < 3; i++) if (hex[i].length === 1) hex[i] = `0${hex[i]}`;
28
+ return `#${hex.join("")}`;
29
+ },
30
+ /**
31
+ * 加深颜色值
32
+ * @param color 颜色值字符串
33
+ * @param level 加深的程度,限0-1之间
34
+ * @returns 返回处理后的颜色值
35
+ */
36
+ getDarkColor(color, level) {
37
+ const reg = /^#?[0-9A-Fa-f]{6}$/;
38
+ if (!reg.test(color)) throw new Error("输入错误的hex颜色值");
39
+ const rgb = this.hexToRgb(color);
40
+ for (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));
41
+ return this.rgbToHex(rgb[0], rgb[1], rgb[2]);
42
+ },
43
+ /**
44
+ * 变浅颜色值
45
+ * @param color 颜色值字符串
46
+ * @param level 加深的程度,限0-1之间
47
+ * @returns 返回处理后的颜色值
48
+ */
49
+ getLightColor(color, level) {
50
+ const reg = /^#?[0-9A-Fa-f]{6}$/;
51
+ if (!reg.test(color)) throw new Error("输入错误的hex颜色值");
52
+ const rgb = this.hexToRgb(color);
53
+ for (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));
54
+ return this.rgbToHex(rgb[0], rgb[1], rgb[2]);
55
+ }
56
+ };
57
+ export {
58
+ colorUtil
59
+ };
60
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/color/index.ts"],"sourcesContent":["export const colorUtil = {\n\t/**\n\t * hex颜色转rgb颜色\n\t * @param str 颜色值字符串\n\t * @returns 返回处理后的颜色值\n\t */\n\thexToRgb(str: any): any {\n\t\tlet hex: any = \"\";\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(str)) throw new Error(\"输入错误的hex\");\n\t\tstr = str.replace(\"#\", \"\");\n\t\thex = str.match(/../g);\n\t\tfor (let i = 0; i < 3; i++) hex[i] = parseInt(hex[i], 16);\n\t\treturn hex;\n\t},\n\t/**\n\t * rgb颜色转Hex颜色\n\t * @param r 代表红色\n\t * @param g 代表绿色\n\t * @param b 代表蓝色\n\t * @returns 返回处理后的颜色值\n\t */\n\trgbToHex(r: any, g: any, b: any): string {\n\t\tconst reg = /^\\d{1,3}$/;\n\t\tif (!reg.test(r) || !reg.test(g) || !reg.test(b)) throw new Error(\"输入错误的rgb颜色值\");\n\t\tconst hex = [r.toString(16), g.toString(16), b.toString(16)];\n\t\tfor (let i = 0; i < 3; i++) if (hex[i].length === 1) hex[i] = `0${hex[i]}`;\n\t\treturn `#${hex.join(\"\")}`;\n\t},\n\t/**\n\t * 加深颜色值\n\t * @param color 颜色值字符串\n\t * @param level 加深的程度,限0-1之间\n\t * @returns 返回处理后的颜色值\n\t */\n\tgetDarkColor(color: string, level: number): string {\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(color)) throw new Error(\"输入错误的hex颜色值\");\n\t\tconst rgb = this.hexToRgb(color);\n\t\tfor (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));\n\t\treturn this.rgbToHex(rgb[0], rgb[1], rgb[2]);\n\t},\n\t/**\n\t * 变浅颜色值\n\t * @param color 颜色值字符串\n\t * @param level 加深的程度,限0-1之间\n\t * @returns 返回处理后的颜色值\n\t */\n\tgetLightColor(color: string, level: number): string {\n\t\tconst reg = /^#?[0-9A-Fa-f]{6}$/;\n\t\tif (!reg.test(color)) throw new Error(\"输入错误的hex颜色值\");\n\t\tconst rgb = this.hexToRgb(color);\n\t\tfor (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));\n\t\treturn this.rgbToHex(rgb[0], rgb[1], rgb[2]);\n\t},\n};\n"],"names":[],"mappings":"AAAO,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMxB,SAAS,KAAe;AACvB,QAAI,MAAW;AACf,UAAM,MAAM;AACR,QAAA,CAAC,IAAI,KAAK,GAAG,EAAS,OAAA,IAAI,MAAM,UAAU;AACxC,UAAA,IAAI,QAAQ,KAAK,EAAE;AACnB,UAAA,IAAI,MAAM,KAAK;AACrB,aAAS,IAAI,GAAG,IAAI,GAAG,IAAK,KAAI,CAAC,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE;AACjD,WAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,SAAS,GAAQ,GAAQ,GAAgB;AACxC,UAAM,MAAM;AACZ,QAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAS,OAAA,IAAI,MAAM,aAAa;AAC/E,UAAM,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC3D,aAAS,IAAI,GAAG,IAAI,GAAG,SAAS,IAAI,CAAC,EAAE,WAAW,EAAO,KAAA,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AACxE,WAAO,IAAI,IAAI,KAAK,EAAE,CAAC;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,OAAe,OAAuB;AAClD,UAAM,MAAM;AACR,QAAA,CAAC,IAAI,KAAK,KAAK,EAAS,OAAA,IAAI,MAAM,aAAa;AAC7C,UAAA,MAAM,KAAK,SAAS,KAAK;AAC/B,aAAS,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,IAAI,KAAK,MAAM,OAAO,QAAQ,IAAI,CAAC,KAAK,IAAI,MAAM;AAC5E,WAAA,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,OAAe,OAAuB;AACnD,UAAM,MAAM;AACR,QAAA,CAAC,IAAI,KAAK,KAAK,EAAS,OAAA,IAAI,MAAM,aAAa;AAC7C,UAAA,MAAM,KAAK,SAAS,KAAK;AAC/B,aAAS,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,IAAI,KAAK,MAAM,MAAM,QAAQ,IAAI,CAAC,KAAK,IAAI,MAAM;AAC3E,WAAA,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAAA,EAAA;AAE7C;"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 打印 Log 日志
3
+ * @param name 来源名称
4
+ */
5
+ export declare const consoleLog: (name: string, message?: string | false, error?: any) => void;
6
+ /**
7
+ * 打印 Warn 日志
8
+ * @param name 来源名称
9
+ */
10
+ export declare const consoleWarn: (name: string, message?: string | false, error?: any) => void;
11
+ /**
12
+ * 打印 Debug 日志
13
+ * @param name 来源名称
14
+ */
15
+ export declare const consoleDebug: (name: string, message?: string | false, error?: any) => void;
16
+ /**
17
+ * 打印 Error 日志
18
+ * @param name 来源名称
19
+ */
20
+ export declare const consoleError: (name: string, message?: any) => void;
21
+ /**
22
+ * 抛出错误
23
+ * @param name 来源名称
24
+ */
25
+ export declare const throwError: (name: string, message?: any) => never;
@@ -0,0 +1,44 @@
1
+ import { isNil, isString } from "lodash-unified";
2
+ import { FastError } from "../error/index.mjs";
3
+ const consoleLog = (name, message, error) => {
4
+ if (error) {
5
+ console.log(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`, error);
6
+ } else {
7
+ console.log(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`);
8
+ }
9
+ };
10
+ const consoleWarn = (name, message, error) => {
11
+ if (error) {
12
+ console.warn(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`, error);
13
+ } else {
14
+ console.warn(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`);
15
+ }
16
+ };
17
+ const consoleDebug = (name, message, error) => {
18
+ if (error) {
19
+ console.debug(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`, error);
20
+ } else {
21
+ console.debug(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`);
22
+ }
23
+ };
24
+ const consoleError = (name, message) => {
25
+ if (isNil(message)) {
26
+ return;
27
+ }
28
+ if (isString(message)) {
29
+ console.error(new FastError(`[Fast-${name}] ${message}`));
30
+ } else {
31
+ console.error(`[Fast-Error-${name}]`, message);
32
+ }
33
+ };
34
+ const throwError = (name, message) => {
35
+ throw new FastError(`[Fast-${name}] ${message}`);
36
+ };
37
+ export {
38
+ consoleDebug,
39
+ consoleError,
40
+ consoleLog,
41
+ consoleWarn,
42
+ throwError
43
+ };
44
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/console/index.ts"],"sourcesContent":["import { isNil, isString } from \"lodash-unified\";\nimport { FastError } from \"../error\";\n\n/**\n * 打印 Log 日志\n * @param name 来源名称\n */\nexport const consoleLog = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Warn 日志\n * @param name 来源名称\n */\nexport const consoleWarn = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Debug 日志\n * @param name 来源名称\n */\nexport const consoleDebug = (name: string, message?: string | false, error?: any): void => {\n\tif (error) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.debug(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.debug(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`);\n\t}\n};\n\n/**\n * 打印 Error 日志\n * @param name 来源名称\n */\nexport const consoleError = (name: string, message?: any): void => {\n\tif (isNil(message)) {\n\t\treturn;\n\t}\n\tif (isString(message)) {\n\t\tconsole.error(new FastError(`[Fast-${name}] ${message}`));\n\t} else {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error(`[Fast-Error-${name}]`, message);\n\t}\n};\n\n/**\n * 抛出错误\n * @param name 来源名称\n */\nexport const throwError = (name: string, message?: any): never => {\n\tthrow new FastError(`[Fast-${name}] ${message}`);\n};\n"],"names":[],"mappings":";;AAOO,MAAM,aAAa,CAAC,MAAc,SAA0B,UAAsB;AACxF,MAAI,OAAO;AAEF,YAAA,IAAI,aAAa,IAAI,IAAI,UAAU,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK;AAAA,EAAA,OAChE;AAEE,YAAA,IAAI,aAAa,IAAI,IAAI,UAAU,IAAI,OAAO,KAAK,EAAE,EAAE;AAAA,EAAA;AAEjE;AAMO,MAAM,cAAc,CAAC,MAAc,SAA0B,UAAsB;AACzF,MAAI,OAAO;AAEF,YAAA,KAAK,aAAa,IAAI,IAAI,UAAU,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK;AAAA,EAAA,OACjE;AAEE,YAAA,KAAK,aAAa,IAAI,IAAI,UAAU,IAAI,OAAO,KAAK,EAAE,EAAE;AAAA,EAAA;AAElE;AAMO,MAAM,eAAe,CAAC,MAAc,SAA0B,UAAsB;AAC1F,MAAI,OAAO;AAEF,YAAA,MAAM,aAAa,IAAI,IAAI,UAAU,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK;AAAA,EAAA,OAClE;AAEE,YAAA,MAAM,aAAa,IAAI,IAAI,UAAU,IAAI,OAAO,KAAK,EAAE,EAAE;AAAA,EAAA;AAEnE;AAMa,MAAA,eAAe,CAAC,MAAc,YAAwB;AAC9D,MAAA,MAAM,OAAO,GAAG;AACnB;AAAA,EAAA;AAEG,MAAA,SAAS,OAAO,GAAG;AACd,YAAA,MAAM,IAAI,UAAU,SAAS,IAAI,KAAK,OAAO,EAAE,CAAC;AAAA,EAAA,OAClD;AAEN,YAAQ,MAAM,eAAe,IAAI,KAAK,OAAO;AAAA,EAAA;AAE/C;AAMa,MAAA,aAAa,CAAC,MAAc,YAAyB;AACjE,QAAM,IAAI,UAAU,SAAS,IAAI,KAAK,OAAO,EAAE;AAChD;"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * 加密解密
3
+ */
4
+ export declare const cryptoUtil: {
5
+ /**
6
+ * AES
7
+ */
8
+ aes: {
9
+ /**
10
+ * AES加密
11
+ * @param dataStr 要加密的字符串
12
+ * @param key 用于加密的密钥
13
+ * @param vector 用于加密的向量(IV)
14
+ * @param cipherMode 加密模式,默认为CBC模式
15
+ */
16
+ encrypt(dataStr: string, key: string, vector: string, cipherMode?: any): string;
17
+ /**
18
+ * AES解密
19
+ * @param dataStr 要解密的Base64编码字符串
20
+ * @param key 用于解密的密钥
21
+ * @param vector 用于解密的向量(IV)
22
+ * @param cipherMode 解密模式,默认为CBC模式
23
+ */
24
+ decrypt<T = string>(dataStr: string, key: string, vector: string, cipherMode?: any): T | null;
25
+ };
26
+ /**
27
+ * SHA1
28
+ */
29
+ sha1: {
30
+ /**
31
+ * SHA1加密
32
+ * @param dataStr 要加密的字符串
33
+ */
34
+ encrypt(dataStr: string): string;
35
+ };
36
+ /**
37
+ * MD5
38
+ */
39
+ MD5: {
40
+ /**
41
+ * MD5加密
42
+ * @param dataStr 要加密的字符串
43
+ */
44
+ encrypt(dataStr: string): string;
45
+ };
46
+ };
@@ -0,0 +1,106 @@
1
+ import { MD5, enc, SHA1, mode, AES } from "crypto-js";
2
+ import { consoleError } from "../console/index.mjs";
3
+ const cryptoUtil = {
4
+ /**
5
+ * AES
6
+ */
7
+ aes: {
8
+ /**
9
+ * AES加密
10
+ * @param dataStr 要加密的字符串
11
+ * @param key 用于加密的密钥
12
+ * @param vector 用于加密的向量(IV)
13
+ * @param cipherMode 加密模式,默认为CBC模式
14
+ */
15
+ encrypt(dataStr, key, vector, cipherMode = mode.CBC) {
16
+ if (!dataStr) {
17
+ return dataStr;
18
+ }
19
+ if (key.length < 32) {
20
+ key = key.padEnd(32, "f");
21
+ }
22
+ if (key.length > 32) {
23
+ key = key.substring(0, 32);
24
+ }
25
+ if (vector.length < 16) {
26
+ vector = vector.padEnd(16, "f");
27
+ }
28
+ if (vector.length > 16) {
29
+ vector = vector.substring(0, 16);
30
+ }
31
+ return AES.encrypt(dataStr, enc.Utf8.parse(key), {
32
+ iv: enc.Utf8.parse(vector),
33
+ mode: cipherMode
34
+ }).toString();
35
+ },
36
+ /**
37
+ * AES解密
38
+ * @param dataStr 要解密的Base64编码字符串
39
+ * @param key 用于解密的密钥
40
+ * @param vector 用于解密的向量(IV)
41
+ * @param cipherMode 解密模式,默认为CBC模式
42
+ */
43
+ decrypt(dataStr, key, vector, cipherMode = mode.CBC) {
44
+ if (!dataStr) {
45
+ return null;
46
+ }
47
+ if (key.length < 32) {
48
+ key = key.padEnd(32, "f");
49
+ }
50
+ if (key.length > 32) {
51
+ key = key.substring(0, 32);
52
+ }
53
+ if (vector.length < 16) {
54
+ vector = vector.padEnd(16, "f");
55
+ }
56
+ if (vector.length > 16) {
57
+ vector = vector.substring(0, 16);
58
+ }
59
+ const resAESData = AES.decrypt(dataStr, enc.Utf8.parse(key), {
60
+ iv: enc.Utf8.parse(vector),
61
+ mode: cipherMode
62
+ });
63
+ try {
64
+ const result = resAESData.toString(enc.Utf8);
65
+ return JSON.parse(result);
66
+ } catch (error) {
67
+ consoleError("AESCrypto", error);
68
+ return null;
69
+ }
70
+ }
71
+ },
72
+ /**
73
+ * SHA1
74
+ */
75
+ sha1: {
76
+ /**
77
+ * SHA1加密
78
+ * @param dataStr 要加密的字符串
79
+ */
80
+ encrypt(dataStr) {
81
+ if (!dataStr) {
82
+ return dataStr;
83
+ }
84
+ return SHA1(dataStr).toString(enc.Hex).toUpperCase();
85
+ }
86
+ },
87
+ /**
88
+ * MD5
89
+ */
90
+ MD5: {
91
+ /**
92
+ * MD5加密
93
+ * @param dataStr 要加密的字符串
94
+ */
95
+ encrypt(dataStr) {
96
+ if (!dataStr) {
97
+ return dataStr;
98
+ }
99
+ return MD5(dataStr).toString(enc.Hex).toUpperCase();
100
+ }
101
+ }
102
+ };
103
+ export {
104
+ cryptoUtil
105
+ };
106
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/crypto/index.ts"],"sourcesContent":["import { AES, MD5, SHA1, enc, mode } from \"crypto-js\";\nimport { consoleError } from \"../console\";\n\n/**\n * 加密解密\n */\nexport const cryptoUtil = {\n\t/**\n\t * AES\n\t */\n\taes: {\n\t\t/**\n\t\t * AES加密\n\t\t * @param dataStr 要加密的字符串\n\t\t * @param key 用于加密的密钥\n\t\t * @param vector 用于加密的向量(IV)\n\t\t * @param cipherMode 加密模式,默认为CBC模式\n\t\t */\n\t\tencrypt(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\treturn AES.encrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t}).toString();\n\t\t},\n\t\t/**\n\t\t * AES解密\n\t\t * @param dataStr 要解密的Base64编码字符串\n\t\t * @param key 用于解密的密钥\n\t\t * @param vector 用于解密的向量(IV)\n\t\t * @param cipherMode 解密模式,默认为CBC模式\n\t\t */\n\t\tdecrypt<T = string>(dataStr: string, key: string, vector: string, cipherMode: any = mode.CBC): T | null {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// 处理Key不足32位的问题\n\t\t\tif (key.length < 32) {\n\t\t\t\t// 不足\n\t\t\t\tkey = key.padEnd(32, \"f\");\n\t\t\t}\n\n\t\t\t// 处理Key超过32位的问题\n\t\t\tif (key.length > 32) {\n\t\t\t\t// 超过\n\t\t\t\tkey = key.substring(0, 32);\n\t\t\t}\n\n\t\t\t// 处理IV不足16位的问题\n\t\t\tif (vector.length < 16) {\n\t\t\t\t// 不足\n\t\t\t\tvector = vector.padEnd(16, \"f\");\n\t\t\t}\n\n\t\t\t// 处理IV超过16位的问题\n\t\t\tif (vector.length > 16) {\n\t\t\t\t// 超过\n\t\t\t\tvector = vector.substring(0, 16);\n\t\t\t}\n\n\t\t\tconst resAESData = AES.decrypt(dataStr, enc.Utf8.parse(key), {\n\t\t\t\tiv: enc.Utf8.parse(vector),\n\t\t\t\tmode: cipherMode,\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tconst result = resAESData.toString(enc.Utf8);\n\t\t\t\treturn JSON.parse(result) as T;\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"AESCrypto\", error);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t},\n\t/**\n\t * SHA1\n\t */\n\tsha1: {\n\t\t/**\n\t\t * SHA1加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn SHA1(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n\t/**\n\t * MD5\n\t */\n\tMD5: {\n\t\t/**\n\t\t * MD5加密\n\t\t * @param dataStr 要加密的字符串\n\t\t */\n\t\tencrypt(dataStr: string): string {\n\t\t\tif (!dataStr) {\n\t\t\t\treturn dataStr;\n\t\t\t}\n\n\t\t\treturn MD5(dataStr).toString(enc.Hex).toUpperCase();\n\t\t},\n\t},\n};\n"],"names":[],"mappings":";;AAMO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,EAIzB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQJ,QAAQ,SAAiB,KAAa,QAAgB,aAAkB,KAAK,KAAa;AACzF,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAIJ,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,OAAO,IAAI,GAAG;AAAA,MAAA;AAIrB,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,UAAU,GAAG,EAAE;AAAA,MAAA;AAItB,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,OAAO,IAAI,GAAG;AAAA,MAAA;AAI3B,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,UAAU,GAAG,EAAE;AAAA,MAAA;AAGhC,aAAO,IAAI,QAAQ,SAAS,IAAI,KAAK,MAAM,GAAG,GAAG;AAAA,QAChD,IAAI,IAAI,KAAK,MAAM,MAAM;AAAA,QACzB,MAAM;AAAA,MACN,CAAA,EAAE,SAAS;AAAA,IACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,QAAoB,SAAiB,KAAa,QAAgB,aAAkB,KAAK,KAAe;AACvG,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAIJ,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,OAAO,IAAI,GAAG;AAAA,MAAA;AAIrB,UAAA,IAAI,SAAS,IAAI;AAEd,cAAA,IAAI,UAAU,GAAG,EAAE;AAAA,MAAA;AAItB,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,OAAO,IAAI,GAAG;AAAA,MAAA;AAI3B,UAAA,OAAO,SAAS,IAAI;AAEd,iBAAA,OAAO,UAAU,GAAG,EAAE;AAAA,MAAA;AAG1B,YAAA,aAAa,IAAI,QAAQ,SAAS,IAAI,KAAK,MAAM,GAAG,GAAG;AAAA,QAC5D,IAAI,IAAI,KAAK,MAAM,MAAM;AAAA,QACzB,MAAM;AAAA,MAAA,CACN;AACG,UAAA;AACH,cAAM,SAAS,WAAW,SAAS,IAAI,IAAI;AACpC,eAAA,KAAK,MAAM,MAAM;AAAA,eAChB,OAAO;AACf,qBAAa,aAAa,KAAK;AACxB,eAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAEF;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,QAAQ,SAAyB;AAChC,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAGR,aAAO,KAAK,OAAO,EAAE,SAAS,IAAI,GAAG,EAAE,YAAY;AAAA,IAAA;AAAA,EAErD;AAAA;AAAA;AAAA;AAAA,EAIA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKJ,QAAQ,SAAyB;AAChC,UAAI,CAAC,SAAS;AACN,eAAA;AAAA,MAAA;AAGR,aAAO,IAAI,OAAO,EAAE,SAAS,IAAI,GAAG,EAAE,YAAY;AAAA,IAAA;AAAA,EACnD;AAEF;"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Date工具类
3
+ */
4
+ export declare const dateUtil: {
5
+ /**
6
+ * 根据当前时间生成问候语
7
+ */
8
+ getGreet(): string;
9
+ /**
10
+ * 时间处理翻译
11
+ */
12
+ dateTimeFix(date: string | Date | null | undefined): string;
13
+ getDefaultTime(): Date[];
14
+ getSimpleTime(): Date;
15
+ getSimpleShortcuts(): {
16
+ text: string;
17
+ value: () => Date;
18
+ }[];
19
+ getShortcuts(): {
20
+ text: string;
21
+ value: () => Date[];
22
+ }[];
23
+ getDisabledDate(time: Date): boolean;
24
+ };