@fast-china/utils 1.0.32 → 1.0.34

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 (94) hide show
  1. package/README.md +4 -4
  2. package/README.zh.md +3 -3
  3. package/dist/index.global.js +135 -151
  4. package/dist/index.global.js.map +1 -1
  5. package/dist/index.global.min.js +1 -37
  6. package/dist/index.global.min.js.map +1 -1
  7. package/es/array/index.mjs +1 -52
  8. package/es/array/index.mjs.map +1 -1
  9. package/es/base64/index.mjs +1 -137
  10. package/es/base64/index.mjs.map +1 -1
  11. package/es/click/index.mjs +1 -81
  12. package/es/click/index.mjs.map +1 -1
  13. package/es/color/index.mjs +1 -60
  14. package/es/color/index.mjs.map +1 -1
  15. package/es/console/index.mjs +1 -65
  16. package/es/console/index.mjs.map +1 -1
  17. package/es/crypto/index.mjs +1 -105
  18. package/es/crypto/index.mjs.map +1 -1
  19. package/es/date/index.mjs +1 -267
  20. package/es/date/index.mjs.map +1 -1
  21. package/es/dom/index.mjs +1 -5
  22. package/es/dom/index.mjs.map +1 -1
  23. package/es/dom/style.mjs +1 -34
  24. package/es/dom/style.mjs.map +1 -1
  25. package/es/env/index.mjs +1 -37
  26. package/es/env/index.mjs.map +1 -1
  27. package/es/error/index.mjs +1 -9
  28. package/es/error/index.mjs.map +1 -1
  29. package/es/identity/index.mjs +1 -34
  30. package/es/identity/index.mjs.map +1 -1
  31. package/es/index.mjs +1 -59
  32. package/es/index.mjs.map +1 -1
  33. package/es/object/index.mjs +1 -45
  34. package/es/object/index.mjs.map +1 -1
  35. package/es/storage/index.mjs +1 -307
  36. package/es/storage/index.mjs.map +1 -1
  37. package/es/string/index.mjs +1 -314
  38. package/es/string/index.mjs.map +1 -1
  39. package/es/vue/emits.d.ts +8 -0
  40. package/es/vue/emits.mjs +2 -0
  41. package/es/vue/emits.mjs.map +1 -0
  42. package/es/vue/expose.mjs +1 -7
  43. package/es/vue/expose.mjs.map +1 -1
  44. package/es/vue/func.mjs +1 -25
  45. package/es/vue/func.mjs.map +1 -1
  46. package/es/vue/index.d.ts +1 -0
  47. package/es/vue/index.mjs +1 -19
  48. package/es/vue/index.mjs.map +1 -1
  49. package/es/vue/install.mjs +1 -30
  50. package/es/vue/install.mjs.map +1 -1
  51. package/es/vue/props.mjs +1 -14
  52. package/es/vue/props.mjs.map +1 -1
  53. package/es/vue/slots.mjs +1 -6
  54. package/es/vue/slots.mjs.map +1 -1
  55. package/es/vue/useRender.mjs +1 -12
  56. package/es/vue/useRender.mjs.map +1 -1
  57. package/es/vue/with.mjs +1 -6
  58. package/es/vue/with.mjs.map +1 -1
  59. package/lib/array/index.js +1 -1
  60. package/lib/array/index.js.map +1 -1
  61. package/lib/base64/index.js +1 -1
  62. package/lib/base64/index.js.map +1 -1
  63. package/lib/click/index.js +1 -1
  64. package/lib/click/index.js.map +1 -1
  65. package/lib/color/index.js.map +1 -1
  66. package/lib/console/index.js +1 -1
  67. package/lib/console/index.js.map +1 -1
  68. package/lib/crypto/index.js.map +1 -1
  69. package/lib/date/index.js.map +1 -1
  70. package/lib/dom/style.js +1 -1
  71. package/lib/dom/style.js.map +1 -1
  72. package/lib/env/index.js.map +1 -1
  73. package/lib/error/index.js.map +1 -1
  74. package/lib/identity/index.js +1 -1
  75. package/lib/identity/index.js.map +1 -1
  76. package/lib/index.js +1 -1
  77. package/lib/object/index.js +1 -1
  78. package/lib/object/index.js.map +1 -1
  79. package/lib/storage/index.js +1 -1
  80. package/lib/storage/index.js.map +1 -1
  81. package/lib/string/index.js +1 -1
  82. package/lib/string/index.js.map +1 -1
  83. package/lib/vue/emits.d.ts +8 -0
  84. package/lib/vue/emits.js +2 -0
  85. package/lib/vue/emits.js.map +1 -0
  86. package/lib/vue/func.js +1 -1
  87. package/lib/vue/func.js.map +1 -1
  88. package/lib/vue/index.d.ts +1 -0
  89. package/lib/vue/index.js +1 -1
  90. package/lib/vue/install.js.map +1 -1
  91. package/lib/vue/props.js +1 -1
  92. package/lib/vue/props.js.map +1 -1
  93. package/lib/vue/useRender.js.map +1 -1
  94. package/package.json +6 -6
@@ -1,53 +1,2 @@
1
- const arrayUtil = {
2
- /**
3
- * 是否存在重复值
4
- * @param arr 数组
5
- * @param prop 属性
6
- * @returns
7
- */
8
- hasDuplicateProperty(arr, prop) {
9
- if (Array.isArray(prop)) {
10
- const seen = /* @__PURE__ */ new Set();
11
- for (const obj of arr) {
12
- const key = JSON.stringify(prop.map((p) => obj[p]));
13
- if (seen.has(key)) return true;
14
- seen.add(key);
15
- }
16
- return false;
17
- } else {
18
- const seen = /* @__PURE__ */ new Set();
19
- for (const obj of arr) {
20
- const value = obj[prop];
21
- if (seen.has(value)) return true;
22
- seen.add(value);
23
- }
24
- return false;
25
- }
26
- },
27
- /**
28
- * 是否存在非重复值
29
- * @param arr 数组
30
- * @param prop 属性
31
- * @returns
32
- */
33
- hasDifferentProperty(arr, prop) {
34
- if (arr.length <= 1) return false;
35
- if (Array.isArray(prop)) {
36
- const firstKey = JSON.stringify(prop.map((p) => arr[0][p]));
37
- for (let i = 1; i < arr.length; i++) {
38
- const currentKey = JSON.stringify(prop.map((p) => arr[i][p]));
39
- if (currentKey !== firstKey) return true;
40
- }
41
- } else {
42
- const firstValue = arr[0][prop];
43
- for (let i = 1; i < arr.length; i++) {
44
- if (arr[i][prop] !== firstValue) return true;
45
- }
46
- }
47
- return false;
48
- }
49
- };
50
- export {
51
- arrayUtil
52
- };
1
+ const r={hasDuplicateProperty(r,t){if(Array.isArray(t)){const n=/* @__PURE__ */new Set;for(const e of r){const r=JSON.stringify(t.map(r=>e[r]));if(n.has(r))return!0;n.add(r)}return!1}{const n=/* @__PURE__ */new Set;for(const e of r){const r=e[t];if(n.has(r))return!0;n.add(r)}return!1}},hasDifferentProperty(r,t){if(r.length<=1)return!1;if(Array.isArray(t)){const n=JSON.stringify(t.map(t=>r[0][t]));for(let e=1;e<r.length;e++){if(JSON.stringify(t.map(t=>r[e][t]))!==n)return!0}}else{const n=r[0][t];for(let e=1;e<r.length;e++)if(r[e][t]!==n)return!0}return!1}};export{r as arrayUtil};
53
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/array/index.ts"],"sourcesContent":["/**\n * 数据工具类\n */\nexport const arrayUtil = {\n\t/**\n\t * 是否存在重复值\n\t * @param arr 数组\n\t * @param prop 属性\n\t * @returns\n\t */\n\thasDuplicateProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean {\n\t\tif (Array.isArray(prop)) {\n\t\t\tconst seen = new Set<string>();\n\t\t\tfor (const obj of arr) {\n\t\t\t\tconst key = JSON.stringify(prop.map((p) => obj[p]));\n\t\t\t\tif (seen.has(key)) return true;\n\t\t\t\tseen.add(key);\n\t\t\t}\n\t\t\treturn false;\n\t\t} else {\n\t\t\tconst seen = new Set<any>();\n\t\t\tfor (const obj of arr) {\n\t\t\t\tconst value = obj[prop];\n\t\t\t\tif (seen.has(value)) return true;\n\t\t\t\tseen.add(value);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\t/**\n\t * 是否存在非重复值\n\t * @param arr 数组\n\t * @param prop 属性\n\t * @returns\n\t */\n\thasDifferentProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean {\n\t\tif (arr.length <= 1) return false;\n\n\t\tif (Array.isArray(prop)) {\n\t\t\tconst firstKey = JSON.stringify(prop.map((p) => arr[0][p]));\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tconst currentKey = JSON.stringify(prop.map((p) => arr[i][p]));\n\t\t\t\tif (currentKey !== firstKey) return true;\n\t\t\t}\n\t\t} else {\n\t\t\tconst firstValue = arr[0][prop];\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tif (arr[i][prop] !== firstValue) return true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n};\n"],"names":[],"mappings":"AAGO,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxB,qBAAwB,KAAU,MAAsC;AACnE,QAAA,MAAM,QAAQ,IAAI,GAAG;AAClB,YAAA,2BAAW,IAAY;AAC7B,iBAAW,OAAO,KAAK;AAChB,cAAA,MAAM,KAAK,UAAU,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AAClD,YAAI,KAAK,IAAI,GAAG,EAAU,QAAA;AAC1B,aAAK,IAAI,GAAG;AAAA,MAAA;AAEN,aAAA;AAAA,IAAA,OACD;AACA,YAAA,2BAAW,IAAS;AAC1B,iBAAW,OAAO,KAAK;AAChB,cAAA,QAAQ,IAAI,IAAI;AACtB,YAAI,KAAK,IAAI,KAAK,EAAU,QAAA;AAC5B,aAAK,IAAI,KAAK;AAAA,MAAA;AAER,aAAA;AAAA,IAAA;AAAA,EAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAwB,KAAU,MAAsC;AACnE,QAAA,IAAI,UAAU,EAAU,QAAA;AAExB,QAAA,MAAM,QAAQ,IAAI,GAAG;AACxB,YAAM,WAAW,KAAK,UAAU,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACpC,cAAM,aAAa,KAAK,UAAU,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,YAAA,eAAe,SAAiB,QAAA;AAAA,MAAA;AAAA,IACrC,OACM;AACN,YAAM,aAAa,IAAI,CAAC,EAAE,IAAI;AAC9B,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACpC,YAAI,IAAI,CAAC,EAAE,IAAI,MAAM,WAAmB,QAAA;AAAA,MAAA;AAAA,IACzC;AAEM,WAAA;AAAA,EAAA;AAET;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/array/index.ts"],"sourcesContent":["/**\n * 数据工具类\n */\nexport const arrayUtil = {\n\t/**\n\t * 是否存在重复值\n\t * @param arr 数组\n\t * @param prop 属性\n\t * @returns\n\t */\n\thasDuplicateProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean {\n\t\tif (Array.isArray(prop)) {\n\t\t\tconst seen = new Set<string>();\n\t\t\tfor (const obj of arr) {\n\t\t\t\tconst key = JSON.stringify(prop.map((p) => obj[p]));\n\t\t\t\tif (seen.has(key)) return true;\n\t\t\t\tseen.add(key);\n\t\t\t}\n\t\t\treturn false;\n\t\t} else {\n\t\t\tconst seen = new Set<any>();\n\t\t\tfor (const obj of arr) {\n\t\t\t\tconst value = obj[prop];\n\t\t\t\tif (seen.has(value)) return true;\n\t\t\t\tseen.add(value);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\t/**\n\t * 是否存在非重复值\n\t * @param arr 数组\n\t * @param prop 属性\n\t * @returns\n\t */\n\thasDifferentProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean {\n\t\tif (arr.length <= 1) return false;\n\n\t\tif (Array.isArray(prop)) {\n\t\t\tconst firstKey = JSON.stringify(prop.map((p) => arr[0][p]));\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tconst currentKey = JSON.stringify(prop.map((p) => arr[i][p]));\n\t\t\t\tif (currentKey !== firstKey) return true;\n\t\t\t}\n\t\t} else {\n\t\t\tconst firstValue = arr[0][prop];\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tif (arr[i][prop] !== firstValue) return true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n};\n"],"names":["arrayUtil","hasDuplicateProperty","arr","prop","Array","isArray","seen","Set","obj","key","JSON","stringify","map","p","has","add","value","hasDifferentProperty","length","firstKey","i","firstValue"],"mappings":"AAGO,MAAMA,EAAY,CAOxB,oBAAAC,CAAwBC,EAAUC,GACjC,GAAIC,MAAMC,QAAQF,GAAO,CACxB,MAAMG,qBAAWC,IACjB,IAAA,MAAWC,KAAON,EAAK,CACtB,MAAMO,EAAMC,KAAKC,UAAUR,EAAKS,IAAKC,GAAML,EAAIK,KAC/C,GAAIP,EAAKQ,IAAIL,GAAM,OAAO,EAC1BH,EAAKS,IAAIN,EACV,CACA,OAAO,CACR,CAAO,CACN,MAAMH,qBAAWC,IACjB,IAAA,MAAWC,KAAON,EAAK,CACtB,MAAMc,EAAQR,EAAIL,GAClB,GAAIG,EAAKQ,IAAIE,GAAQ,OAAO,EAC5BV,EAAKS,IAAIC,EACV,CACA,OAAO,CACR,CACD,EAOA,oBAAAC,CAAwBf,EAAUC,GACjC,GAAID,EAAIgB,QAAU,EAAG,OAAO,EAE5B,GAAId,MAAMC,QAAQF,GAAO,CACxB,MAAMgB,EAAWT,KAAKC,UAAUR,EAAKS,IAAKC,GAAMX,EAAI,GAAGW,KACvD,IAAA,IAASO,EAAI,EAAGA,EAAIlB,EAAIgB,OAAQE,IAAK,CAEpC,GADmBV,KAAKC,UAAUR,EAAKS,IAAKC,GAAMX,EAAIkB,GAAGP,OACtCM,EAAU,OAAO,CACrC,CACD,KAAO,CACN,MAAME,EAAanB,EAAI,GAAGC,GAC1B,IAAA,IAASiB,EAAI,EAAGA,EAAIlB,EAAIgB,OAAQE,IAC/B,GAAIlB,EAAIkB,GAAGjB,KAAUkB,EAAY,OAAO,CAE1C,CACA,OAAO,CACR"}
@@ -1,138 +1,2 @@
1
- const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
2
- const b64re = /^(?:[A-Z\d+/]{4})*?(?:[A-Z\d+/]{2}(?:==)?|[A-Z\d+/]{3}=?)?$/i;
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
- /**
76
- * 将字符串编码为Base64格式
77
- */
78
- bota(string) {
79
- string = String(string);
80
- let bitmap, a, b, c, result = "", i = 0, rest = string.length % 3;
81
- for (; i < string.length; ) {
82
- if ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)
83
- throw new TypeError(
84
- "Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range."
85
- );
86
- bitmap = a << 16 | b << 8 | c;
87
- result += b64.charAt(bitmap >> 18 & 63) + b64.charAt(bitmap >> 12 & 63) + b64.charAt(bitmap >> 6 & 63) + b64.charAt(bitmap & 63);
88
- }
89
- return rest ? result.slice(0, rest - 3) + "===".substring(rest) : result;
90
- },
91
- /**
92
- * 将Base64编码的字符串解码回其原始格式。
93
- */
94
- atob(string) {
95
- string = String(string).replace(/[\t\n\f\r ]+/g, "");
96
- if (!b64re.test(string)) throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
97
- string += "==".slice(2 - (string.length & 3));
98
- let bitmap, result = "", r1, r2, i = 0;
99
- for (; i < string.length; ) {
100
- 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++)));
101
- 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);
102
- }
103
- return result;
104
- },
105
- /**
106
- * 字符串ToBase64
107
- */
108
- toBase64(str, prefixStrLength = randomPrefixStrLength) {
109
- if (str.length === 0) {
110
- return "";
111
- }
112
- const randomPrefixStr = getRandomStr();
113
- let base64 = base64Util.bota(encodeURIComponent(str));
114
- if (prefixStrLength !== 0) {
115
- base64 = insertRandomStrToBase64Str(base64);
116
- }
117
- return randomPrefixStr + base64;
118
- },
119
- /**
120
- * Base64转字符串
121
- */
122
- base64ToStr(str, prefixStrLength = randomPrefixStrLength) {
123
- let result = str;
124
- if (str.length === 0) {
125
- return "";
126
- }
127
- let input = str.slice(prefixStrLength);
128
- if (prefixStrLength !== 0) {
129
- input = removeBase64StrRandomStr(input);
130
- }
131
- result = base64Util.atob(input);
132
- return decodeURIComponent(result);
133
- }
134
- };
135
- export {
136
- base64Util
137
- };
1
+ const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e=/^(?:[A-Z\d+/]{4})*?(?:[A-Z\d+/]{2}(?:==)?|[A-Z\d+/]{3}=?)?$/i,d=[{index:977,randomIndex:188},{index:926,randomIndex:201},{index:851,randomIndex:225},{index:700,randomIndex:255},{index:600,randomIndex:268},{index:500,randomIndex:277},{index:400,randomIndex:288},{index:330,randomIndex:327},{index:300,randomIndex:180},{index:200,randomIndex:178},{index:100,randomIndex:124},{index:98,randomIndex:95},{index:92,randomIndex:90},{index:91,randomIndex:87},{index:88,randomIndex:84},{index:82,randomIndex:79},{index:78,randomIndex:71},{index:72,randomIndex:69},{index:68,randomIndex:66},{index:59,randomIndex:55},{index:48,randomIndex:43},{index:42,randomIndex:37},{index:36,randomIndex:30},{index:33,randomIndex:27},{index:24,randomIndex:20},{index:23,randomIndex:18},{index:21,randomIndex:16},{index:17,randomIndex:14},{index:13,randomIndex:9},{index:7,randomIndex:4},{index:5,randomIndex:3},{index:2,randomIndex:1}];const r={bota(e){let d,r,o,t,x="",i=0,a=(e=String(e)).length%3;for(;i<e.length;){if((r=e.charCodeAt(i++))>255||(o=e.charCodeAt(i++))>255||(t=e.charCodeAt(i++))>255)throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");d=r<<16|o<<8|t,x+=n.charAt(d>>18&63)+n.charAt(d>>12&63)+n.charAt(d>>6&63)+n.charAt(63&d)}return a?x.slice(0,a-3)+"===".substring(a):x},atob(d){if(d=String(d).replace(/[\t\n\f\r ]+/g,""),!e.test(d))throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");d+="==".slice(2-(3&d.length));let r,o,t,x="",i=0;for(;i<d.length;)r=n.indexOf(d.charAt(i++))<<18|n.indexOf(d.charAt(i++))<<12|(o=n.indexOf(d.charAt(i++)))<<6|(t=n.indexOf(d.charAt(i++))),x+=64===o?String.fromCharCode(r>>16&255):64===t?String.fromCharCode(r>>16&255,r>>8&255):String.fromCharCode(r>>16&255,r>>8&255,255&r);return x},toBase64(n,e=6){if(0===n.length)return"";const o=function(n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",e=6){let d="";for(let r=0;r<e;r++)d+=n[Math.ceil(Math.random()*(n.length-1))];return d}();let t=r.bota(encodeURIComponent(n));return 0!==e&&(t=function(n){let e=n;return d.sort((n,e)=>e.index-n.index).forEach(d=>{if(d.index<n.length){const r=n[d.randomIndex];e=e.slice(0,d.index)+r+e.slice(d.index)}}),e}(t)),o+t},base64ToStr(n,e=6){let o=n;if(0===n.length)return"";let t=n.slice(e);return 0!==e&&(t=function(n){const e=d.sort((n,e)=>n.index-e.index);let r=n;return e.forEach(e=>{e.index<n.length&&(r=r.slice(0,e.index)+r.slice(e.index+1))}),r}(t)),o=r.atob(t),decodeURIComponent(o)}};export{r as base64Util};
138
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/base64/index.ts"],"sourcesContent":["const b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nconst b64re = /^(?:[A-Z\\d+/]{4})*?(?:[A-Z\\d+/]{2}(?:==)?|[A-Z\\d+/]{3}=?)?$/i;\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\n/**\n * Base64工具类\n */\nexport const base64Util = {\n\t/**\n\t * 将字符串编码为Base64格式\n\t */\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\t/**\n\t * 将Base64编码的字符串解码回其原始格式。\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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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/base64/index.ts"],"sourcesContent":["const b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nconst b64re = /^(?:[A-Z\\d+/]{4})*?(?:[A-Z\\d+/]{2}(?:==)?|[A-Z\\d+/]{3}=?)?$/i;\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\n/**\n * Base64工具类\n */\nexport const base64Util = {\n\t/**\n\t * 将字符串编码为Base64格式\n\t */\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\t/**\n\t * 将Base64编码的字符串解码回其原始格式。\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":["b64","b64re","base64PwdDic","index","randomIndex","base64Util","bota","string","bitmap","a","b","c","result","i","rest","String","length","charCodeAt","TypeError","charAt","slice","substring","atob","replace","test","r1","r2","indexOf","fromCharCode","toBase64","str","prefixStrLength","randomPrefixStr","Math","ceil","random","getRandomStr","base64","encodeURIComponent","base64Str","strResult","sort","forEach","item","randomChar","insertRandomStrToBase64Str","base64ToStr","input","items","removeBase64StrRandomStr","decodeURIComponent"],"mappings":"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"}
@@ -1,82 +1,2 @@
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
- };
1
+ let e=null,t=!1;const c={debounce(t,c=500){e&&clearTimeout(e),e=setTimeout(()=>{t()},c)},debounceAsync:async(t,c=500)=>new Promise((o,n)=>{e&&clearTimeout(e),e=setTimeout(async()=>{try{await t(),o()}catch(e){n(e)}},c)}),throttle(e,c=500){t||(t=!0,e(),setTimeout(()=>{t=!1},c))},throttleAsync:async(e,c=500)=>new Promise((o,n)=>{t||(t=!0,e().then(()=>{o()}).catch(e=>{n(e)}).finally(()=>{setTimeout(()=>{t=!1},c)}))})};export{c as clickUtil};
82
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/click/index.ts"],"sourcesContent":["let _debounceTimeout: ReturnType<typeof setTimeout> | null = null;\nlet _throttleRunning = false;\n\n/**\n * 点击工具类\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;AAKhB,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;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/click/index.ts"],"sourcesContent":["let _debounceTimeout: ReturnType<typeof setTimeout> | null = null;\nlet _throttleRunning = false;\n\n/**\n * 点击工具类\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":["_debounceTimeout","_throttleRunning","clickUtil","debounce","fn","delay","clearTimeout","setTimeout","async","Promise","resolve","reject","error","throttle","then","catch","finally"],"mappings":"AAAA,IAAIA,EAAyD,KACzDC,GAAmB,EAKhB,MAAMC,EAAY,CAOxB,QAAAC,CAASC,EAAgBC,EAAQ,KAE5BL,GACHM,aAAaN,GAGdA,EAAmBO,WAAW,KAE7BH,KACEC,EACJ,EAOAG,cAAM,MAAcJ,EAAyBC,EAAQ,MAC7C,IAAII,QAAQ,CAACC,EAASC,KAExBX,GACHM,aAAaN,GAGdA,EAAmBO,WAAWC,UAC7B,UAEOJ,IACNM,GACD,OAASE,GACRD,EAAOC,EACR,GACEP,KASL,QAAAQ,CAAST,EAAgBC,EAAQ,KAE5BJ,IAIJA,GAAmB,EAEnBG,IAEAG,WAAW,KACVN,GAAmB,GACjBI,GACJ,EAOAG,cAAM,MAAcJ,EAAyBC,EAAQ,MAC7C,IAAII,QAAQ,CAACC,EAASC,KAExBV,IAIJA,GAAmB,EAEnBG,IACEU,KAAK,KACLJ,MAEAK,MAAOH,IACPD,EAAOC,KAEPI,QAAQ,KAERT,WAAW,KACVN,GAAmB,GACjBI"}
@@ -1,61 +1,2 @@
1
- import { FastError } from "../error/index.mjs";
2
- const colorUtil = {
3
- /**
4
- * hex颜色转rgb颜色
5
- * @param str 颜色值字符串
6
- * @returns 返回处理后的颜色值
7
- */
8
- hexToRgb(str) {
9
- let hex = "";
10
- const reg = /^#?[0-9A-F]{6}$/i;
11
- if (!reg.test(str)) throw new FastError("输入错误的hex");
12
- str = str.replace("#", "");
13
- hex = str.match(/../g);
14
- for (let i = 0; i < 3; i++) hex[i] = parseInt(hex[i], 16);
15
- return hex;
16
- },
17
- /**
18
- * rgb颜色转Hex颜色
19
- * @param r 代表红色
20
- * @param g 代表绿色
21
- * @param b 代表蓝色
22
- * @returns 返回处理后的颜色值
23
- */
24
- rgbToHex(r, g, b) {
25
- const reg = /^\d{1,3}$/;
26
- if (!reg.test(r) || !reg.test(g) || !reg.test(b)) throw new FastError("输入错误的rgb颜色值");
27
- const hex = [r.toString(16), g.toString(16), b.toString(16)];
28
- for (let i = 0; i < 3; i++) if (hex[i].length === 1) hex[i] = `0${hex[i]}`;
29
- return `#${hex.join("")}`;
30
- },
31
- /**
32
- * 加深颜色值
33
- * @param color 颜色值字符串
34
- * @param level 加深的程度,限0-1之间
35
- * @returns 返回处理后的颜色值
36
- */
37
- getDarkColor(color, level) {
38
- const reg = /^#?[0-9A-F]{6}$/i;
39
- if (!reg.test(color)) throw new FastError("输入错误的hex颜色值");
40
- const rgb = this.hexToRgb(color);
41
- for (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));
42
- return this.rgbToHex(rgb[0], rgb[1], rgb[2]);
43
- },
44
- /**
45
- * 变浅颜色值
46
- * @param color 颜色值字符串
47
- * @param level 加深的程度,限0-1之间
48
- * @returns 返回处理后的颜色值
49
- */
50
- getLightColor(color, level) {
51
- const reg = /^#?[0-9A-F]{6}$/i;
52
- if (!reg.test(color)) throw new FastError("输入错误的hex颜色值");
53
- const rgb = this.hexToRgb(color);
54
- for (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));
55
- return this.rgbToHex(rgb[0], rgb[1], rgb[2]);
56
- }
57
- };
58
- export {
59
- colorUtil
60
- };
1
+ import{FastError as t}from"../error/index.mjs";const e={hexToRgb(e){let r="";if(!/^#?[0-9A-F]{6}$/i.test(e))throw new t("输入错误的hex");r=(e=e.replace("#","")).match(/../g);for(let t=0;t<3;t++)r[t]=parseInt(r[t],16);return r},rgbToHex(e,r,o){const n=/^\d{1,3}$/;if(!n.test(e)||!n.test(r)||!n.test(o))throw new t("输入错误的rgb颜色值");const h=[e.toString(16),r.toString(16),o.toString(16)];for(let t=0;t<3;t++)1===h[t].length&&(h[t]=`0${h[t]}`);return`#${h.join("")}`},getDarkColor(e,r){if(!/^#?[0-9A-F]{6}$/i.test(e))throw new t("输入错误的hex颜色值");const o=this.hexToRgb(e);for(let t=0;t<3;t++)o[t]=Math.round(20.5*r+o[t]*(1-r));return this.rgbToHex(o[0],o[1],o[2])},getLightColor(e,r){if(!/^#?[0-9A-F]{6}$/i.test(e))throw new t("输入错误的hex颜色值");const o=this.hexToRgb(e);for(let t=0;t<3;t++)o[t]=Math.round(255*r+o[t]*(1-r));return this.rgbToHex(o[0],o[1],o[2])}};export{e as colorUtil};
61
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/color/index.ts"],"sourcesContent":["import { FastError } from \"../error\";\n\n/**\n * 颜色工具类\n */\nexport 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-F]{6}$/i;\n\t\tif (!reg.test(str)) throw new FastError(\"输入错误的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 FastError(\"输入错误的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-F]{6}$/i;\n\t\tif (!reg.test(color)) throw new FastError(\"输入错误的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-F]{6}$/i;\n\t\tif (!reg.test(color)) throw new FastError(\"输入错误的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":";AAKO,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,UAAU,UAAU;AAC5C,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,UAAU,aAAa;AACnF,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,UAAU,aAAa;AACjD,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,UAAU,aAAa;AACjD,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;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/color/index.ts"],"sourcesContent":["import { FastError } from \"../error\";\n\n/**\n * 颜色工具类\n */\nexport 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-F]{6}$/i;\n\t\tif (!reg.test(str)) throw new FastError(\"输入错误的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 FastError(\"输入错误的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-F]{6}$/i;\n\t\tif (!reg.test(color)) throw new FastError(\"输入错误的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-F]{6}$/i;\n\t\tif (!reg.test(color)) throw new FastError(\"输入错误的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":["colorUtil","hexToRgb","str","hex","test","FastError","replace","match","i","parseInt","rgbToHex","r","g","b","reg","toString","length","join","getDarkColor","color","level","rgb","this","Math","round","getLightColor"],"mappings":"+CAKO,MAAMA,EAAY,CAMxB,QAAAC,CAASC,GACR,IAAIC,EAAW,GAEf,IADY,mBACHC,KAAKF,GAAM,MAAM,IAAIG,EAAU,YAExCF,GADAD,EAAMA,EAAII,QAAQ,IAAK,KACbC,MAAM,OAChB,IAAA,IAASC,EAAI,EAAGA,EAAI,EAAGA,IAAKL,EAAIK,GAAKC,SAASN,EAAIK,GAAI,IACtD,OAAOL,CACR,EAQA,QAAAO,CAASC,EAAQC,EAAQC,GACxB,MAAMC,EAAM,YACZ,IAAKA,EAAIV,KAAKO,KAAOG,EAAIV,KAAKQ,KAAOE,EAAIV,KAAKS,GAAI,MAAM,IAAIR,EAAU,eACtE,MAAMF,EAAM,CAACQ,EAAEI,SAAS,IAAKH,EAAEG,SAAS,IAAKF,EAAEE,SAAS,KACxD,IAAA,IAASP,EAAI,EAAGA,EAAI,EAAGA,IAA2B,IAAlBL,EAAIK,GAAGQ,SAAcb,EAAIK,GAAK,IAAIL,EAAIK,MACtE,MAAO,IAAIL,EAAIc,KAAK,KACrB,EAOA,YAAAC,CAAaC,EAAeC,GAE3B,IADY,mBACHhB,KAAKe,GAAQ,MAAM,IAAId,EAAU,eAC1C,MAAMgB,EAAMC,KAAKrB,SAASkB,GAC1B,IAAA,IAASX,EAAI,EAAGA,EAAI,EAAGA,MAASA,GAAKe,KAAKC,MAAM,KAAOJ,EAAQC,EAAIb,IAAM,EAAIY,IAC7E,OAAOE,KAAKZ,SAASW,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAC1C,EAOA,aAAAI,CAAcN,EAAeC,GAE5B,IADY,mBACHhB,KAAKe,GAAQ,MAAM,IAAId,EAAU,eAC1C,MAAMgB,EAAMC,KAAKrB,SAASkB,GAC1B,IAAA,IAASX,EAAI,EAAGA,EAAI,EAAGA,MAASA,GAAKe,KAAKC,MAAM,IAAMJ,EAAQC,EAAIb,IAAM,EAAIY,IAC5E,OAAOE,KAAKZ,SAASW,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAC1C"}
@@ -1,66 +1,2 @@
1
- import { reactive } from "vue";
2
- import { isNil, isString } from "lodash-unified";
3
- import { FastError } from "../error/index.mjs";
4
- const state = reactive({
5
- /** @description Uni-App 在 APP-PLUS 下是否拆分输出 @default false */
6
- uniAppPlusSplit: false
7
- });
8
- const useConsole = () => {
9
- return {
10
- /**
11
- * 设置 Uni-App 在 APP-PLUS 下是否拆分输出
12
- */
13
- setUniAppPlusSplit(value) {
14
- state.uniAppPlusSplit = value;
15
- }
16
- };
17
- };
18
- const vConsole = (level, ...args) => {
19
- if (state.uniAppPlusSplit) {
20
- if (typeof uni !== "undefined") {
21
- if (typeof plus !== "undefined") {
22
- args.forEach((item) => {
23
- if (isNil(item)) return;
24
- console[level.toLowerCase()](isString(item) ? item : JSON.stringify(item, null, 2));
25
- });
26
- return;
27
- }
28
- }
29
- }
30
- console[level.toLowerCase()](...args);
31
- };
32
- const makeConsole = (level) => {
33
- return (name, message, error) => {
34
- const prefix = `[Fast-${level}-${name}]`;
35
- if (error) {
36
- vConsole(level, `${prefix}${message ? ` ${message}` : ""}`, error);
37
- } else {
38
- vConsole(level, `${prefix}${message ? ` ${message}` : ""}`);
39
- }
40
- };
41
- };
42
- const consoleLog = makeConsole("Log");
43
- const consoleWarn = makeConsole("Warn");
44
- const consoleDebug = makeConsole("Debug");
45
- const consoleError = (name, message) => {
46
- if (isNil(message)) {
47
- return;
48
- }
49
- if (isString(message)) {
50
- console.error(new FastError(`[Fast-${name}] ${message}`));
51
- } else {
52
- vConsole("Error", `[Fast-Error-${name}]`, message);
53
- }
54
- };
55
- const throwError = (name, message) => {
56
- throw new FastError(`[Fast-${name}] ${message}`);
57
- };
58
- export {
59
- consoleDebug,
60
- consoleError,
61
- consoleLog,
62
- consoleWarn,
63
- throwError,
64
- useConsole
65
- };
1
+ import{reactive as o}from"vue";import{isNil as r,isString as e}from"lodash-unified";import{FastError as n}from"../error/index.mjs";const t=o({uniAppPlusSplit:!1}),s=()=>({setUniAppPlusSplit(o){t.uniAppPlusSplit=o}}),i=(o,...n)=>{t.uniAppPlusSplit&&"undefined"!=typeof uni&&"undefined"!=typeof plus?n.forEach(n=>{r(n)||console[o.toLowerCase()](e(n)?n:JSON.stringify(n,null,2))}):console[o.toLowerCase()](...n)},p=o=>(r,e,n)=>{const t=`[Fast-${o}-${r}]`;n?i(o,`${t}${e?` ${e}`:""}`,n):i(o,`${t}${e?` ${e}`:""}`)},l=p("Log"),u=p("Warn"),$=p("Debug"),f=(o,t)=>{r(t)||(e(t)?console.error(new n(`[Fast-${o}] ${t}`)):i("Error",`[Fast-Error-${o}]`,t))},a=(o,r)=>{throw new n(`[Fast-${o}] ${r}`)};export{$ as consoleDebug,f as consoleError,l as consoleLog,u as consoleWarn,a as throwError,s as useConsole};
66
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/console/index.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { isNil, isString } from \"lodash-unified\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\t/** @description Uni-App 在 APP-PLUS 下是否拆分输出 @default false */\n\tuniAppPlusSplit: false,\n});\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useConsole = () => {\n\treturn {\n\t\t/**\n\t\t * 设置 Uni-App 在 APP-PLUS 下是否拆分输出\n\t\t */\n\t\tsetUniAppPlusSplit(value: boolean): void {\n\t\t\tstate.uniAppPlusSplit = value;\n\t\t},\n\t};\n};\n\ntype LogLevel = \"Log\" | \"Warn\" | \"Debug\" | \"Error\";\n\nconst vConsole = (level: LogLevel, ...args: any[]): void => {\n\tif (state.uniAppPlusSplit) {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tif (typeof plus !== \"undefined\") {\n\t\t\t\t// 循环 arg 参数,每个参数单独输出\n\t\t\t\targs.forEach((item) => {\n\t\t\t\t\tif (isNil(item)) return;\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole[level.toLowerCase()](isString(item) ? item : JSON.stringify(item, null, 2));\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\t// eslint-disable-next-line no-console\n\tconsole[level.toLowerCase()](...args);\n};\n\nconst makeConsole = (level: LogLevel) => {\n\treturn (name: string, message?: string | false, error?: any): void => {\n\t\tconst prefix = `[Fast-${level}-${name}]`;\n\t\tif (error) {\n\t\t\tvConsole(level, `${prefix}${message ? ` ${message}` : \"\"}`, error);\n\t\t} else {\n\t\t\tvConsole(level, `${prefix}${message ? ` ${message}` : \"\"}`);\n\t\t}\n\t};\n};\n\n/**\n * 打印 Log 日志\n * @param name 来源名称\n */\nexport const consoleLog = makeConsole(\"Log\");\n\n/**\n * 打印 Warn 日志\n * @param name 来源名称\n */\nexport const consoleWarn = makeConsole(\"Warn\");\n\n/**\n * 打印 Debug 日志\n * @param name 来源名称\n */\nexport const consoleDebug = makeConsole(\"Debug\");\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\tvConsole(\"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":";;;AAIA,MAAM,QAAQ,SAAS;AAAA;AAAA,EAEtB,iBAAiB;AAClB,CAAC;AAGM,MAAM,aAAa,MAAM;AACxB,SAAA;AAAA;AAAA;AAAA;AAAA,IAIN,mBAAmB,OAAsB;AACxC,YAAM,kBAAkB;AAAA,IAAA;AAAA,EAE1B;AACD;AAIA,MAAM,WAAW,CAAC,UAAoB,SAAsB;AAC3D,MAAI,MAAM,iBAAiB;AACtB,QAAA,OAAO,QAAQ,aAAa;AAC3B,UAAA,OAAO,SAAS,aAAa;AAE3B,aAAA,QAAQ,CAAC,SAAS;AAClB,cAAA,MAAM,IAAI,EAAG;AAEjB,kBAAQ,MAAM,aAAa,EAAE,SAAS,IAAI,IAAI,OAAO,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;AAAA,QAAA,CAClF;AACD;AAAA,MAAA;AAAA,IACD;AAAA,EACD;AAGD,UAAQ,MAAM,aAAa,EAAE,GAAG,IAAI;AACrC;AAEA,MAAM,cAAc,CAAC,UAAoB;AACjC,SAAA,CAAC,MAAc,SAA0B,UAAsB;AACrE,UAAM,SAAS,SAAS,KAAK,IAAI,IAAI;AACrC,QAAI,OAAO;AACD,eAAA,OAAO,GAAG,MAAM,GAAG,UAAU,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK;AAAA,IAAA,OAC3D;AACG,eAAA,OAAO,GAAG,MAAM,GAAG,UAAU,IAAI,OAAO,KAAK,EAAE,EAAE;AAAA,IAAA;AAAA,EAE5D;AACD;AAMa,MAAA,aAAa,YAAY,KAAK;AAM9B,MAAA,cAAc,YAAY,MAAM;AAMhC,MAAA,eAAe,YAAY,OAAO;AAMlC,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;AACN,aAAS,SAAS,eAAe,IAAI,KAAK,OAAO;AAAA,EAAA;AAEnD;AAMa,MAAA,aAAa,CAAC,MAAc,YAAyB;AACjE,QAAM,IAAI,UAAU,SAAS,IAAI,KAAK,OAAO,EAAE;AAChD;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/console/index.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { isNil, isString } from \"lodash-unified\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\t/** @description Uni-App 在 APP-PLUS 下是否拆分输出 @default false */\n\tuniAppPlusSplit: false,\n});\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useConsole = () => {\n\treturn {\n\t\t/**\n\t\t * 设置 Uni-App 在 APP-PLUS 下是否拆分输出\n\t\t */\n\t\tsetUniAppPlusSplit(value: boolean): void {\n\t\t\tstate.uniAppPlusSplit = value;\n\t\t},\n\t};\n};\n\ntype LogLevel = \"Log\" | \"Warn\" | \"Debug\" | \"Error\";\n\nconst vConsole = (level: LogLevel, ...args: any[]): void => {\n\tif (state.uniAppPlusSplit) {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tif (typeof plus !== \"undefined\") {\n\t\t\t\t// 循环 arg 参数,每个参数单独输出\n\t\t\t\targs.forEach((item) => {\n\t\t\t\t\tif (isNil(item)) return;\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole[level.toLowerCase()](isString(item) ? item : JSON.stringify(item, null, 2));\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\t// eslint-disable-next-line no-console\n\tconsole[level.toLowerCase()](...args);\n};\n\nconst makeConsole = (level: LogLevel) => {\n\treturn (name: string, message?: string | false, error?: any): void => {\n\t\tconst prefix = `[Fast-${level}-${name}]`;\n\t\tif (error) {\n\t\t\tvConsole(level, `${prefix}${message ? ` ${message}` : \"\"}`, error);\n\t\t} else {\n\t\t\tvConsole(level, `${prefix}${message ? ` ${message}` : \"\"}`);\n\t\t}\n\t};\n};\n\n/**\n * 打印 Log 日志\n * @param name 来源名称\n */\nexport const consoleLog = makeConsole(\"Log\");\n\n/**\n * 打印 Warn 日志\n * @param name 来源名称\n */\nexport const consoleWarn = makeConsole(\"Warn\");\n\n/**\n * 打印 Debug 日志\n * @param name 来源名称\n */\nexport const consoleDebug = makeConsole(\"Debug\");\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\tvConsole(\"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":["state","reactive","uniAppPlusSplit","useConsole","setUniAppPlusSplit","value","vConsole","level","args","uni","plus","forEach","item","isNil","console","toLowerCase","isString","JSON","stringify","makeConsole","name","message","error","prefix","consoleLog","consoleWarn","consoleDebug","consoleError","FastError","throwError"],"mappings":"mIAIA,MAAMA,EAAQC,EAAS,CAEtBC,iBAAiB,IAILC,EAAa,KAClB,CAIN,kBAAAC,CAAmBC,GAClBL,EAAME,gBAAkBG,CACzB,IAMIC,EAAW,CAACC,KAAoBC,KACjCR,EAAME,iBACU,oBAARO,KACU,oBAATC,KAEVF,EAAKG,QAASC,IACTC,EAAMD,IAEVE,QAAQP,EAAMQ,eAAeC,EAASJ,GAAQA,EAAOK,KAAKC,UAAUN,EAAM,KAAM,MAOpFE,QAAQP,EAAMQ,kBAAkBP,IAG3BW,EAAeZ,GACb,CAACa,EAAcC,EAA0BC,KAC/C,MAAMC,EAAS,SAAShB,KAASa,KAC7BE,EACHhB,EAASC,EAAO,GAAGgB,IAASF,EAAU,IAAIA,IAAY,KAAMC,GAE5DhB,EAASC,EAAO,GAAGgB,IAASF,EAAU,IAAIA,IAAY,OAS5CG,EAAaL,EAAY,OAMzBM,EAAcN,EAAY,QAM1BO,EAAeP,EAAY,SAM3BQ,EAAe,CAACP,EAAcC,KACtCR,EAAMQ,KAGNL,EAASK,GACZP,QAAQQ,MAAM,IAAIM,EAAU,SAASR,MAASC,MAE9Cf,EAAS,QAAS,eAAec,KAASC,KAQ/BQ,EAAa,CAACT,EAAcC,KACxC,MAAM,IAAIO,EAAU,SAASR,MAASC"}