@fast-china/utils 1.0.5 → 1.0.7

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.
@@ -1,5 +1,5 @@
1
1
  const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
2
- const b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
2
+ const b64re = /^(?:[A-Z\d+/]{4})*?(?:[A-Z\d+/]{2}(?:==)?|[A-Z\d+/]{3}=?)?$/i;
3
3
  const base64PwdDic = [
4
4
  { index: 977, randomIndex: 188 },
5
5
  { index: 926, randomIndex: 201 },
@@ -1 +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\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":[],"mappings":"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"}
@@ -7,7 +7,7 @@ const colorUtil = {
7
7
  */
8
8
  hexToRgb(str) {
9
9
  let hex = "";
10
- const reg = /^#?[0-9A-Fa-f]{6}$/;
10
+ const reg = /^#?[0-9A-F]{6}$/i;
11
11
  if (!reg.test(str)) throw new FastError("输入错误的hex");
12
12
  str = str.replace("#", "");
13
13
  hex = str.match(/../g);
@@ -35,7 +35,7 @@ const colorUtil = {
35
35
  * @returns 返回处理后的颜色值
36
36
  */
37
37
  getDarkColor(color, level) {
38
- const reg = /^#?[0-9A-Fa-f]{6}$/;
38
+ const reg = /^#?[0-9A-F]{6}$/i;
39
39
  if (!reg.test(color)) throw new FastError("输入错误的hex颜色值");
40
40
  const rgb = this.hexToRgb(color);
41
41
  for (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));
@@ -48,7 +48,7 @@ const colorUtil = {
48
48
  * @returns 返回处理后的颜色值
49
49
  */
50
50
  getLightColor(color, level) {
51
- const reg = /^#?[0-9A-Fa-f]{6}$/;
51
+ const reg = /^#?[0-9A-F]{6}$/i;
52
52
  if (!reg.test(color)) throw new FastError("输入错误的hex颜色值");
53
53
  const rgb = this.hexToRgb(color);
54
54
  for (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));
@@ -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-Fa-f]{6}$/;\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-Fa-f]{6}$/;\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-Fa-f]{6}$/;\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":[],"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 +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;"}
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\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\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\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;AACF,YAAA,KAAK,aAAa,IAAI,IAAI,UAAU,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK;AAAA,EAAA,OACjE;AACE,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;AACN,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;"}
@@ -5,7 +5,7 @@ const state = reactive({
5
5
  cacheKey: "__DEVICE_ID",
6
6
  deviceId: ""
7
7
  });
8
- const uuidRegExp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
8
+ const uuidRegExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
9
9
  const makeIdentity = () => {
10
10
  if (state.deviceId && uuidRegExp.test(state.deviceId)) {
11
11
  Local.set(state.cacheKey, state.deviceId);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/identity/index.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { Local } from \"../storage\";\nimport { stringUtil } from \"../string\";\n\nconst state = reactive({\n\tcacheKey: \"__DEVICE_ID\",\n\tdeviceId: \"\",\n});\n\nconst uuidRegExp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n\n/**\n * 生成设备Id\n */\nconst makeIdentity = (): string => {\n\t// 判断是否存在\n\tif (state.deviceId && uuidRegExp.test(state.deviceId)) {\n\t\tLocal.set(state.cacheKey, state.deviceId);\n\t\treturn state.deviceId;\n\t}\n\t// 生成浏览器唯一 UUID\n\tlet deviceID = Local.get(state.cacheKey);\n\tif (deviceID && uuidRegExp.test(deviceID)) {\n\t\tstate.deviceId = deviceID;\n\t\treturn deviceID;\n\t}\n\tdeviceID = stringUtil.generateUUID();\n\tLocal.set(state.cacheKey, deviceID);\n\tstate.deviceId = deviceID;\n\treturn deviceID;\n};\n\nexport const useIdentity = (): typeof state & { makeIdentity: () => string } => {\n\treturn {\n\t\t...state,\n\t\tmakeIdentity,\n\t};\n};\n"],"names":[],"mappings":";;;AAIA,MAAM,QAAQ,SAAS;AAAA,EACtB,UAAU;AAAA,EACV,UAAU;AACX,CAAC;AAED,MAAM,aAAa;AAKnB,MAAM,eAAe,MAAc;AAElC,MAAI,MAAM,YAAY,WAAW,KAAK,MAAM,QAAQ,GAAG;AACtD,UAAM,IAAI,MAAM,UAAU,MAAM,QAAQ;AACxC,WAAO,MAAM;AAAA,EAAA;AAGd,MAAI,WAAW,MAAM,IAAI,MAAM,QAAQ;AACvC,MAAI,YAAY,WAAW,KAAK,QAAQ,GAAG;AAC1C,UAAM,WAAW;AACV,WAAA;AAAA,EAAA;AAER,aAAW,WAAW,aAAa;AAC7B,QAAA,IAAI,MAAM,UAAU,QAAQ;AAClC,QAAM,WAAW;AACV,SAAA;AACR;AAEO,MAAM,cAAc,MAAqD;AACxE,SAAA;AAAA,IACN,GAAG;AAAA,IACH;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/identity/index.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { Local } from \"../storage\";\nimport { stringUtil } from \"../string\";\n\nconst state = reactive({\n\tcacheKey: \"__DEVICE_ID\",\n\tdeviceId: \"\",\n});\n\nconst uuidRegExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\n/**\n * 生成设备Id\n */\nconst makeIdentity = (): string => {\n\t// 判断是否存在\n\tif (state.deviceId && uuidRegExp.test(state.deviceId)) {\n\t\tLocal.set(state.cacheKey, state.deviceId);\n\t\treturn state.deviceId;\n\t}\n\t// 生成浏览器唯一 UUID\n\tlet deviceID = Local.get(state.cacheKey);\n\tif (deviceID && uuidRegExp.test(deviceID)) {\n\t\tstate.deviceId = deviceID;\n\t\treturn deviceID;\n\t}\n\tdeviceID = stringUtil.generateUUID();\n\tLocal.set(state.cacheKey, deviceID);\n\tstate.deviceId = deviceID;\n\treturn deviceID;\n};\n\nexport const useIdentity = (): typeof state & { makeIdentity: () => string } => {\n\treturn {\n\t\t...state,\n\t\tmakeIdentity,\n\t};\n};\n"],"names":[],"mappings":";;;AAIA,MAAM,QAAQ,SAAS;AAAA,EACtB,UAAU;AAAA,EACV,UAAU;AACX,CAAC;AAED,MAAM,aAAa;AAKnB,MAAM,eAAe,MAAc;AAElC,MAAI,MAAM,YAAY,WAAW,KAAK,MAAM,QAAQ,GAAG;AACtD,UAAM,IAAI,MAAM,UAAU,MAAM,QAAQ;AACxC,WAAO,MAAM;AAAA,EAAA;AAGd,MAAI,WAAW,MAAM,IAAI,MAAM,QAAQ;AACvC,MAAI,YAAY,WAAW,KAAK,QAAQ,GAAG;AAC1C,UAAM,WAAW;AACV,WAAA;AAAA,EAAA;AAER,aAAW,WAAW,aAAa;AAC7B,QAAA,IAAI,MAAM,UAAU,QAAQ;AAClC,QAAM,WAAW;AACV,SAAA;AACR;AAEO,MAAM,cAAc,MAAqD;AACxE,SAAA;AAAA,IACN,GAAG;AAAA,IACH;AAAA,EACD;AACD;"}
@@ -19,9 +19,9 @@ const stringUtil = {
19
19
  isJson(value) {
20
20
  if (!isString(value)) return false;
21
21
  value = value.replace(/\s/g, "").replace(/\n|\r/, "");
22
- if (/^\{(.*?)\}$/.test(value)) return /"(.*?)":(.*?)/g.test(value);
23
- if (/^\[(.*?)\]$/.test(value)) {
24
- return value.replace(/^\[/, "").replace(/\]$/, "").replace(/},{/g, "}\n{").split(/\n/).map((s) => {
22
+ if (/^\{.*?\}$/.test(value)) return /".*?":/.test(value);
23
+ if (/^\[.*?\]$/.test(value)) {
24
+ return value.replace(/^\[/, "").replace(/\]$/, "").replace(/\},\{/g, "}\n{").split(/\n/).map((s) => {
25
25
  return stringUtil.isJson(s);
26
26
  }).reduce((prev, curr) => {
27
27
  return !!curr;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{(.*?)\\}$/.test(value)) return /\"(.*?)\":(.*?)/g.test(value);\n\n\t\tif (/^\\[(.*?)\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/},{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n"],"names":[],"mappings":";AAKO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,EAIzB,aAAa,KAAkC;AAC9C,UAAM,QAAQ;AACd,UAAM,SAA8B,CAAC;AAEjC,QAAA;AACJ,YAAQ,QAAQ,MAAM,KAAK,GAAG,OAAO,MAAM;AACpC,YAAA,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG;AAC7C,aAAA,GAAG,IAAI,mBAAmB,KAAK;AAAA,IAAA;AAGhC,WAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAwB;AAC9B,QAAI,CAAC,SAAS,KAAK,EAAU,QAAA;AAE7B,YAAQ,MAAM,QAAQ,OAAO,EAAE,EAAE,QAAQ,SAAS,EAAE;AAEpD,QAAI,cAAc,KAAK,KAAK,EAAU,QAAA,iBAAiB,KAAK,KAAK;AAE7D,QAAA,cAAc,KAAK,KAAK,GAAG;AAC9B,aAAO,MACL,QAAQ,OAAO,EAAE,EACjB,QAAQ,OAAO,EAAE,EACjB,QAAQ,QAAQ,MAAM,EACtB,MAAM,IAAI,EACV,IAAI,CAAC,MAAM;AACJ,eAAA,WAAW,OAAO,CAAC;AAAA,MAC1B,CAAA,EACA,OAAO,CAAC,MAAM,SAAS;AACvB,eAAO,CAAC,CAAC;AAAA,MAAA,CACT;AAAA,IAAA;AAGI,WAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAIA,eAAe,OAAyB;AACnC,QAAA,CAAC,MAAO,QAAO,CAAC;AAEpB,QAAI,MAAM,WAAW,EAAG,QAAO,CAAC,KAAK;AAE9B,WAAA,MAAM,MAAM,WAAA,8CAAA,GAAyC,GAAE,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC;AAAA,EACjG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,OAAuB;AAC9B,QAAA,CAAC,MAAc,QAAA;AACZ,WAAA,MAAM,QAAQ,aAAa,CAAC,GAAG,MAAO,IAAI,EAAE,YAAY,IAAI,EAAG;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA,EAIA,iBAAiB,OAAuB;AACnC,QAAA,CAAC,MAAc,QAAA;AACZ,WAAA,MAAM,OAAO,CAAC,EAAE,gBAAgB,MAAM,MAAM,CAAC;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAIA,iBAAiB,OAAuB;AACnC,QAAA,CAAC,MAAc,QAAA;AACZ,WAAA,MAAM,OAAO,CAAC,EAAE,gBAAgB,MAAM,MAAM,CAAC;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAIA,sBAAsB,OAAe,QAAgB,SAAS,OAAe;AACxE,QAAA,CAAC,MAAc,QAAA;AACZ,WAAA,MAAM,SAAS,SAAS,MAAM,UAAU,GAAG,MAAM,IAAI,SAAS;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAIA,qBAAqB,QAAwB;AAC5C,UAAM,aAAa;AACnB,QAAI,eAAe;AACnB,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAChC,YAAM,cAAc,KAAK,MAAM,KAAK,OAAO,IAAI,WAAW,MAAM;AAChD,sBAAA,WAAW,OAAO,WAAW;AAAA,IAAA;AAEvC,WAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAIA,eAAuB;AACtB,QAAI,OAAO;AACX,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC5B,YAAM,SAAU,KAAK,OAAO,IAAI,KAAM;AAClC,UAAA,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,GAAY,SAAA;AAChD,eAAA,MAAM,KAAK,IAAI,MAAM,KAAM,SAAS,IAAK,IAAI,QAAQ,SAAS,EAAE;AAAA,IAAA;AAEnE,WAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,KAAK,OAA8B;AACpC,QAAA,OAAO,QAAQ,aAAa;AAC/B,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,YAAI,iBAAiB;AAAA,UACpB,MAAM;AAAA,UACN,SAAS,MAAM;AACN,oBAAA;AAAA,UACT;AAAA,UACA,MAAM,MAAM;AACJ,mBAAA;AAAA,UAAA;AAAA,QACR,CACA;AAAA,MAAA,CACD;AAAA,IAAA,OACK;AAEF,WAAA,uCAAW,cAAa,OAAO,iBAAiB;AAC7C,cAAA,UAAU,UAAU,UAAU,KAAK;AAAA,MAAA,OACnC;AACA,cAAA,aAAa,SAAS,cAAc,UAAU;AACpD,mBAAW,QAAQ;AAEnB,mBAAW,MAAM,WAAW;AAC5B,mBAAW,MAAM,UAAU;AAC3B,mBAAW,MAAM,OAAO;AACxB,mBAAW,MAAM,MAAM;AACd,iBAAA,KAAK,YAAY,UAAU;AACpC,mBAAW,MAAM;AACjB,mBAAW,OAAO;AAClB,iBAAS,YAAY,MAAM;AAC3B,mBAAW,OAAO;AAAA,MAAA;AAAA,IACnB;AAAA,EACD;AAEF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{.*?\\}$/.test(value)) return /\".*?\":/.test(value);\n\n\t\tif (/^\\[.*?\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/\\},\\{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"props.mjs","sources":["../../../../src/vue/props.ts"],"sourcesContent":["import type { ComputedRef, PropType } from \"vue\";\nimport { computed } from \"vue\";\nimport { omit, pick } from \"lodash-unified\";\n\nexport const definePropType = <T>(val: any): PropType<T> => val;\n\n/**\n * 构建 props\n * @param props props\n * @param rawProps 原生 props\n * @param ignoreRawProps 忽略 原生 props 的 key\n */\nexport const useProps = <T extends Record<string, unknown>, RT extends Record<string, unknown>>(\n\tprops: T,\n\trawProps?: RT,\n\tignoreRawProps?: (keyof RT)[]\n): ComputedRef<Record<string, unknown>> => {\n\tif (!props) return computed(() => ({}));\n\n\treturn computed<Record<string, unknown>>(() => {\n\t\tconst omittedRawProps = rawProps ? omit(rawProps, ignoreRawProps ?? []) : {};\n\t\treturn pick(props, Object.keys(omittedRawProps)) as Record<string, unknown>;\n\t});\n};\n"],"names":[],"mappings":";;AAIa,MAAA,iBAAiB,CAAI,QAA0B;AAQrD,MAAM,WAAW,CACvB,OACA,UACA,mBAC0C;AAC1C,MAAI,CAAC,MAAO,QAAO,SAAS,OAAO,CAAG,EAAA;AAEtC,SAAO,SAAkC,MAAM;AACxC,UAAA,kBAAkB,WAAW,KAAK,UAAU,kBAAkB,CAAE,CAAA,IAAI,CAAC;AAC3E,WAAO,KAAK,OAAO,OAAO,KAAK,eAAe,CAAC;AAAA,EAAA,CAC/C;AACF;"}
1
+ {"version":3,"file":"props.mjs","sources":["../../../../src/vue/props.ts"],"sourcesContent":["import { computed } from \"vue\";\nimport { omit, pick } from \"lodash-unified\";\nimport type { ComputedRef, PropType } from \"vue\";\n\nexport const definePropType = <T>(val: any): PropType<T> => val;\n\n/**\n * 构建 props\n * @param props props\n * @param rawProps 原生 props\n * @param ignoreRawProps 忽略 原生 props 的 key\n */\nexport const useProps = <T extends Record<string, unknown>, RT extends Record<string, unknown>>(\n\tprops: T,\n\trawProps?: RT,\n\tignoreRawProps?: (keyof RT)[]\n): ComputedRef<Record<string, unknown>> => {\n\tif (!props) return computed(() => ({}));\n\n\treturn computed<Record<string, unknown>>(() => {\n\t\tconst omittedRawProps = rawProps ? omit(rawProps, ignoreRawProps ?? []) : {};\n\t\treturn pick(props, Object.keys(omittedRawProps)) as Record<string, unknown>;\n\t});\n};\n"],"names":[],"mappings":";;AAIa,MAAA,iBAAiB,CAAI,QAA0B;AAQrD,MAAM,WAAW,CACvB,OACA,UACA,mBAC0C;AAC1C,MAAI,CAAC,MAAO,QAAO,SAAS,OAAO,CAAG,EAAA;AAEtC,SAAO,SAAkC,MAAM;AACxC,UAAA,kBAAkB,WAAW,KAAK,UAAU,kBAAkB,CAAE,CAAA,IAAI,CAAC;AAC3E,WAAO,KAAK,OAAO,OAAO,KAAK,eAAe,CAAC;AAAA,EAAA,CAC/C;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRender.mjs","sources":["../../../../src/vue/useRender.ts"],"sourcesContent":["import type { VNode } from \"vue\";\nimport { getCurrentInstance } from \"vue\";\nimport { FastError } from \"../error\";\n\n/**\n * 使用渲染\n * @description 为了解决使用 TSX 语法返回渲染函数,状态不会出现在 vue.js devtools 中\n */\nexport const useRender = (render: () => VNode): void => {\n\tconst vm = getCurrentInstance() as any;\n\tif (!vm) {\n\t\tthrow new FastError(\"useRender must be called from inside a setup function\");\n\t}\n\tvm.render = render;\n};\n"],"names":[],"mappings":";;AAQa,MAAA,YAAY,CAAC,WAA8B;AACvD,QAAM,KAAK,mBAAmB;AAC9B,MAAI,CAAC,IAAI;AACF,UAAA,IAAI,UAAU,uDAAuD;AAAA,EAAA;AAE5E,KAAG,SAAS;AACb;"}
1
+ {"version":3,"file":"useRender.mjs","sources":["../../../../src/vue/useRender.ts"],"sourcesContent":["import { getCurrentInstance } from \"vue\";\nimport { FastError } from \"../error\";\nimport type { VNode } from \"vue\";\n\n/**\n * 使用渲染\n * @description 为了解决使用 TSX 语法返回渲染函数,状态不会出现在 vue.js devtools 中\n */\nexport const useRender = (render: () => VNode): void => {\n\tconst vm = getCurrentInstance() as any;\n\tif (!vm) {\n\t\tthrow new FastError(\"useRender must be called from inside a setup function\");\n\t}\n\tvm.render = render;\n};\n"],"names":[],"mappings":";;AAQa,MAAA,YAAY,CAAC,WAA8B;AACvD,QAAM,KAAK,mBAAmB;AAC9B,MAAI,CAAC,IAAI;AACF,UAAA,IAAI,UAAU,uDAAuD;AAAA,EAAA;AAE5E,KAAG,SAAS;AACb;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e=/^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/,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)}};exports.base64Util=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});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,i="",x=0,a=(e=String(e)).length%3;for(;x<e.length;){if((r=e.charCodeAt(x++))>255||(o=e.charCodeAt(x++))>255||(t=e.charCodeAt(x++))>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,i+=n.charAt(d>>18&63)+n.charAt(d>>12&63)+n.charAt(d>>6&63)+n.charAt(63&d)}return a?i.slice(0,a-3)+"===".substring(a):i},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,i="",x=0;for(;x<d.length;)r=n.indexOf(d.charAt(x++))<<18|n.indexOf(d.charAt(x++))<<12|(o=n.indexOf(d.charAt(x++)))<<6|(t=n.indexOf(d.charAt(x++))),i+=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 i},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)}};exports.base64Util=r;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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\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
+ {"version":3,"file":"index.js","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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../error/index.js"),r={hexToRgb(r){let e="";if(!/^#?[0-9A-Fa-f]{6}$/.test(r))throw new t.FastError("输入错误的hex");e=(r=r.replace("#","")).match(/../g);for(let t=0;t<3;t++)e[t]=parseInt(e[t],16);return e},rgbToHex(r,e,o){const s=/^\d{1,3}$/;if(!s.test(r)||!s.test(e)||!s.test(o))throw new t.FastError("输入错误的rgb颜色值");const n=[r.toString(16),e.toString(16),o.toString(16)];for(let t=0;t<3;t++)1===n[t].length&&(n[t]=`0${n[t]}`);return`#${n.join("")}`},getDarkColor(r,e){if(!/^#?[0-9A-Fa-f]{6}$/.test(r))throw new t.FastError("输入错误的hex颜色值");const o=this.hexToRgb(r);for(let t=0;t<3;t++)o[t]=Math.round(20.5*e+o[t]*(1-e));return this.rgbToHex(o[0],o[1],o[2])},getLightColor(r,e){if(!/^#?[0-9A-Fa-f]{6}$/.test(r))throw new t.FastError("输入错误的hex颜色值");const o=this.hexToRgb(r);for(let t=0;t<3;t++)o[t]=Math.round(255*e+o[t]*(1-e));return this.rgbToHex(o[0],o[1],o[2])}};exports.colorUtil=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../error/index.js"),r={hexToRgb(r){let e="";if(!/^#?[0-9A-F]{6}$/i.test(r))throw new t.FastError("输入错误的hex");e=(r=r.replace("#","")).match(/../g);for(let t=0;t<3;t++)e[t]=parseInt(e[t],16);return e},rgbToHex(r,e,o){const s=/^\d{1,3}$/;if(!s.test(r)||!s.test(e)||!s.test(o))throw new t.FastError("输入错误的rgb颜色值");const n=[r.toString(16),e.toString(16),o.toString(16)];for(let t=0;t<3;t++)1===n[t].length&&(n[t]=`0${n[t]}`);return`#${n.join("")}`},getDarkColor(r,e){if(!/^#?[0-9A-F]{6}$/i.test(r))throw new t.FastError("输入错误的hex颜色值");const o=this.hexToRgb(r);for(let t=0;t<3;t++)o[t]=Math.round(20.5*e+o[t]*(1-e));return this.rgbToHex(o[0],o[1],o[2])},getLightColor(r,e){if(!/^#?[0-9A-F]{6}$/i.test(r))throw new t.FastError("输入错误的hex颜色值");const o=this.hexToRgb(r);for(let t=0;t<3;t++)o[t]=Math.round(255*e+o[t]*(1-e));return this.rgbToHex(o[0],o[1],o[2])}};exports.colorUtil=r;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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-Fa-f]{6}$/;\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-Fa-f]{6}$/;\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-Fa-f]{6}$/;\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":"qHAKaA,EAAY,CAMxB,QAAAC,CAASC,GACR,IAAIC,EAAW,GAEX,IADQ,qBACHC,KAAKF,GAAY,MAAA,IAAIG,YAAU,YAElCF,GADAD,EAAAA,EAAII,QAAQ,IAAK,KACbC,MAAM,OAChB,IAAA,IAASC,EAAI,EAAGA,EAAI,EAAGA,IAAKL,EAAIK,GAAKC,SAASN,EAAIK,GAAI,IAC/C,OAAAL,CACR,EAQA,QAAAO,CAASC,EAAQC,EAAQC,GACxB,MAAMC,EAAM,YACZ,IAAKA,EAAIV,KAAKO,KAAOG,EAAIV,KAAKQ,KAAOE,EAAIV,KAAKS,SAAU,IAAIR,YAAU,eACtE,MAAMF,EAAM,CAACQ,EAAEI,SAAS,IAAKH,EAAEG,SAAS,IAAKF,EAAEE,SAAS,KACxD,IAAA,IAASP,EAAI,EAAGA,EAAI,EAAGA,IAA2B,IAAlBL,EAAIK,GAAGQ,SAAkBb,EAAAK,GAAK,IAAIL,EAAIK,MACtE,MAAO,IAAIL,EAAIc,KAAK,KACrB,EAOA,YAAAC,CAAaC,EAAeC,GAEvB,IADQ,qBACHhB,KAAKe,GAAc,MAAA,IAAId,YAAU,eACpC,MAAAgB,EAAMC,KAAKrB,SAASkB,GAC1B,IAAA,IAASX,EAAI,EAAGA,EAAI,EAAGA,MAASA,GAAKe,KAAKC,MAAM,KAAOJ,EAAQC,EAAIb,IAAM,EAAIY,IACtE,OAAAE,KAAKZ,SAASW,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAC1C,EAOA,aAAAI,CAAcN,EAAeC,GAExB,IADQ,qBACHhB,KAAKe,GAAc,MAAA,IAAId,YAAU,eACpC,MAAAgB,EAAMC,KAAKrB,SAASkB,GAC1B,IAAA,IAASX,EAAI,EAAGA,EAAI,EAAGA,MAASA,GAAKe,KAAKC,MAAM,IAAMJ,EAAQC,EAAIb,IAAM,EAAIY,IACrE,OAAAE,KAAKZ,SAASW,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAE"}
1
+ {"version":3,"file":"index.js","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":"qHAKaA,EAAY,CAMxB,QAAAC,CAASC,GACR,IAAIC,EAAW,GAEX,IADQ,mBACHC,KAAKF,GAAY,MAAA,IAAIG,YAAU,YAElCF,GADAD,EAAAA,EAAII,QAAQ,IAAK,KACbC,MAAM,OAChB,IAAA,IAASC,EAAI,EAAGA,EAAI,EAAGA,IAAKL,EAAIK,GAAKC,SAASN,EAAIK,GAAI,IAC/C,OAAAL,CACR,EAQA,QAAAO,CAASC,EAAQC,EAAQC,GACxB,MAAMC,EAAM,YACZ,IAAKA,EAAIV,KAAKO,KAAOG,EAAIV,KAAKQ,KAAOE,EAAIV,KAAKS,SAAU,IAAIR,YAAU,eACtE,MAAMF,EAAM,CAACQ,EAAEI,SAAS,IAAKH,EAAEG,SAAS,IAAKF,EAAEE,SAAS,KACxD,IAAA,IAASP,EAAI,EAAGA,EAAI,EAAGA,IAA2B,IAAlBL,EAAIK,GAAGQ,SAAkBb,EAAAK,GAAK,IAAIL,EAAIK,MACtE,MAAO,IAAIL,EAAIc,KAAK,KACrB,EAOA,YAAAC,CAAaC,EAAeC,GAEvB,IADQ,mBACHhB,KAAKe,GAAc,MAAA,IAAId,YAAU,eACpC,MAAAgB,EAAMC,KAAKrB,SAASkB,GAC1B,IAAA,IAASX,EAAI,EAAGA,EAAI,EAAGA,MAASA,GAAKe,KAAKC,MAAM,KAAOJ,EAAQC,EAAIb,IAAM,EAAIY,IACtE,OAAAE,KAAKZ,SAASW,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAC1C,EAOA,aAAAI,CAAcN,EAAeC,GAExB,IADQ,mBACHhB,KAAKe,GAAc,MAAA,IAAId,YAAU,eACpC,MAAAgB,EAAMC,KAAKrB,SAASkB,GAC1B,IAAA,IAASX,EAAI,EAAGA,EAAI,EAAGA,MAASA,GAAKe,KAAKC,MAAM,IAAMJ,EAAQC,EAAIb,IAAM,EAAIY,IACrE,OAAAE,KAAKZ,SAASW,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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":["name","message","error","console","debug","isNil","isString","FastError","log","warn"],"mappings":"sKAmC4B,CAACA,EAAcC,EAA0BC,KAChEA,EAEKC,QAAAC,MAAM,aAAaJ,KAAQC,EAAU,IAAIA,IAAY,KAAMC,GAG3DC,QAAAC,MAAM,aAAaJ,KAAQC,EAAU,IAAIA,IAAY,KAAI,uBAQvC,CAACD,EAAcC,KACtCI,EAAAA,MAAMJ,KAGNK,EAAAA,SAASL,GACJE,QAAAD,MAAM,IAAIK,EAAAA,UAAU,SAASP,MAASC,MAG9CE,QAAQD,MAAM,eAAeF,KAASC,GAAO,qBAlDrB,CAACD,EAAcC,EAA0BC,KAC9DA,EAEKC,QAAAK,IAAI,aAAaR,KAAQC,EAAU,IAAIA,IAAY,KAAMC,GAGzDC,QAAAK,IAAI,aAAaR,KAAQC,EAAU,IAAIA,IAAY,KAAI,sBAQtC,CAACD,EAAcC,EAA0BC,KAC/DA,EAEKC,QAAAM,KAAK,aAAaT,KAAQC,EAAU,IAAIA,IAAY,KAAMC,GAG1DC,QAAAM,KAAK,aAAaT,KAAQC,EAAU,IAAIA,IAAY,KAAI,qBAsCxC,CAACD,EAAcC,KACxC,MAAM,IAAIM,EAAUA,UAAA,SAASP,MAASC,IAAS"}
1
+ {"version":3,"file":"index.js","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\tconsole.warn(`[Fast-Log-${name}]${message ? ` ${message}` : \"\"}`, error);\n\t} else {\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\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":["name","message","error","console","debug","isNil","isString","FastError","log","warn"],"mappings":"sKAiC4B,CAACA,EAAcC,EAA0BC,KAChEA,EAEKC,QAAAC,MAAM,aAAaJ,KAAQC,EAAU,IAAIA,IAAY,KAAMC,GAG3DC,QAAAC,MAAM,aAAaJ,KAAQC,EAAU,IAAIA,IAAY,KAAI,uBAQvC,CAACD,EAAcC,KACtCI,EAAAA,MAAMJ,KAGNK,EAAAA,SAASL,GACJE,QAAAD,MAAM,IAAIK,EAAAA,UAAU,SAASP,MAASC,MAE9CE,QAAQD,MAAM,eAAeF,KAASC,GAAO,qBA/CrB,CAACD,EAAcC,EAA0BC,KAC9DA,EAEKC,QAAAK,IAAI,aAAaR,KAAQC,EAAU,IAAIA,IAAY,KAAMC,GAGzDC,QAAAK,IAAI,aAAaR,KAAQC,EAAU,IAAIA,IAAY,KAAI,sBAQtC,CAACD,EAAcC,EAA0BC,KAC/DA,EACKC,QAAAM,KAAK,aAAaT,KAAQC,EAAU,IAAIA,IAAY,KAAMC,GAE1DC,QAAAM,KAAK,aAAaT,KAAQC,EAAU,IAAIA,IAAY,KAAI,qBAqCxC,CAACD,EAAcC,KACxC,MAAM,IAAIM,EAAUA,UAAA,SAASP,MAASC,IAAS"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),t=require("../storage/index.js"),c=require("../string/index.js"),i=e.reactive({cacheKey:"__DEVICE_ID",deviceId:""}),r=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,d=()=>{if(i.deviceId&&r.test(i.deviceId))return t.Local.set(i.cacheKey,i.deviceId),i.deviceId;let e=t.Local.get(i.cacheKey);return e&&r.test(e)?(i.deviceId=e,e):(e=c.stringUtil.generateUUID(),t.Local.set(i.cacheKey,e),i.deviceId=e,e)};exports.useIdentity=()=>({...i,makeIdentity:d});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),t=require("../storage/index.js"),i=require("../string/index.js"),c=e.reactive({cacheKey:"__DEVICE_ID",deviceId:""}),r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,d=()=>{if(c.deviceId&&r.test(c.deviceId))return t.Local.set(c.cacheKey,c.deviceId),c.deviceId;let e=t.Local.get(c.cacheKey);return e&&r.test(e)?(c.deviceId=e,e):(e=i.stringUtil.generateUUID(),t.Local.set(c.cacheKey,e),c.deviceId=e,e)};exports.useIdentity=()=>({...c,makeIdentity:d});
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/identity/index.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { Local } from \"../storage\";\nimport { stringUtil } from \"../string\";\n\nconst state = reactive({\n\tcacheKey: \"__DEVICE_ID\",\n\tdeviceId: \"\",\n});\n\nconst uuidRegExp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n\n/**\n * 生成设备Id\n */\nconst makeIdentity = (): string => {\n\t// 判断是否存在\n\tif (state.deviceId && uuidRegExp.test(state.deviceId)) {\n\t\tLocal.set(state.cacheKey, state.deviceId);\n\t\treturn state.deviceId;\n\t}\n\t// 生成浏览器唯一 UUID\n\tlet deviceID = Local.get(state.cacheKey);\n\tif (deviceID && uuidRegExp.test(deviceID)) {\n\t\tstate.deviceId = deviceID;\n\t\treturn deviceID;\n\t}\n\tdeviceID = stringUtil.generateUUID();\n\tLocal.set(state.cacheKey, deviceID);\n\tstate.deviceId = deviceID;\n\treturn deviceID;\n};\n\nexport const useIdentity = (): typeof state & { makeIdentity: () => string } => {\n\treturn {\n\t\t...state,\n\t\tmakeIdentity,\n\t};\n};\n"],"names":["state","reactive","cacheKey","deviceId","uuidRegExp","makeIdentity","test","Local","set","deviceID","get","stringUtil","generateUUID"],"mappings":"wKAIMA,EAAQC,EAAAA,SAAS,CACtBC,SAAU,cACVC,SAAU,KAGLC,EAAa,gFAKbC,EAAe,KAEpB,GAAIL,EAAMG,UAAYC,EAAWE,KAAKN,EAAMG,UAE3C,OADAI,EAAAA,MAAMC,IAAIR,EAAME,SAAUF,EAAMG,UACzBH,EAAMG,SAGd,IAAIM,EAAWF,EAAAA,MAAMG,IAAIV,EAAME,UAC/B,OAAIO,GAAYL,EAAWE,KAAKG,IAC/BT,EAAMG,SAAWM,EACVA,IAEGE,EAAAA,aAAWC,eAChBL,EAAAA,MAAAC,IAAIR,EAAME,SAAUO,GAC1BT,EAAMG,SAAWM,EACVA,EAAA,sBAGmB,KACnB,IACHT,EACHK"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/identity/index.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { Local } from \"../storage\";\nimport { stringUtil } from \"../string\";\n\nconst state = reactive({\n\tcacheKey: \"__DEVICE_ID\",\n\tdeviceId: \"\",\n});\n\nconst uuidRegExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\n/**\n * 生成设备Id\n */\nconst makeIdentity = (): string => {\n\t// 判断是否存在\n\tif (state.deviceId && uuidRegExp.test(state.deviceId)) {\n\t\tLocal.set(state.cacheKey, state.deviceId);\n\t\treturn state.deviceId;\n\t}\n\t// 生成浏览器唯一 UUID\n\tlet deviceID = Local.get(state.cacheKey);\n\tif (deviceID && uuidRegExp.test(deviceID)) {\n\t\tstate.deviceId = deviceID;\n\t\treturn deviceID;\n\t}\n\tdeviceID = stringUtil.generateUUID();\n\tLocal.set(state.cacheKey, deviceID);\n\tstate.deviceId = deviceID;\n\treturn deviceID;\n};\n\nexport const useIdentity = (): typeof state & { makeIdentity: () => string } => {\n\treturn {\n\t\t...state,\n\t\tmakeIdentity,\n\t};\n};\n"],"names":["state","reactive","cacheKey","deviceId","uuidRegExp","makeIdentity","test","Local","set","deviceID","get","stringUtil","generateUUID"],"mappings":"wKAIMA,EAAQC,EAAAA,SAAS,CACtBC,SAAU,cACVC,SAAU,KAGLC,EAAa,kEAKbC,EAAe,KAEpB,GAAIL,EAAMG,UAAYC,EAAWE,KAAKN,EAAMG,UAE3C,OADAI,EAAAA,MAAMC,IAAIR,EAAME,SAAUF,EAAMG,UACzBH,EAAMG,SAGd,IAAIM,EAAWF,EAAAA,MAAMG,IAAIV,EAAME,UAC/B,OAAIO,GAAYL,EAAWE,KAAKG,IAC/BT,EAAMG,SAAWM,EACVA,IAEGE,EAAAA,aAAWC,eAChBL,EAAAA,MAAAC,IAAIR,EAAME,SAAUO,GAC1BT,EAAMG,SAAWM,EACVA,EAAA,sBAGmB,KACnB,IACHT,EACHK"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified"),t={getUrlParams(e){const t=/[?&][^=?&]+=[^?&]+/g,r={};let o;for(;null!==(o=t.exec(e));){const[e,t]=o[0].substring(1).split("=");r[e]=decodeURIComponent(t)}return r},isJson:r=>!!e.isString(r)&&(r=r.replace(/\s/g,"").replace(/\n|\r/,""),/^\{(.*?)\}$/.test(r)?/"(.*?)":(.*?)/g.test(r):!!/^\[(.*?)\]$/.test(r)&&r.replace(/^\[/,"").replace(/\]$/,"").replace(/},{/g,"}\n{").split(/\n/).map((e=>t.isJson(e))).reduce(((e,t)=>!!t))),splitCamelCase:e=>e?1===e.length?[e]:e.split(new RegExp("(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})","u")).filter((e=>e.length>0)):[],toCamelCase:e=>e?e.replace(/[-_](\w)/g,((e,t)=>t?t.toUpperCase():"")):"",firstCharToUpper:e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",firstCharToLower:e=>e?e.charAt(0).toLowerCase()+e.slice(1):"",subStringWithEllipsis:(e,t,r="...")=>e?e.length>t?e.substring(0,t)+r:e:"",generateRandomString(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let r="";for(let o=0;o<e;o++){const e=Math.floor(62*Math.random());r+=t.charAt(e)}return r},generateUUID(){let e="";for(let t=0;t<32;t++){const r=16*Math.random()|0;8!==t&&12!==t&&16!==t&&20!==t||(e+="-"),e+=(12===t?4:16===t?3&r|8:r).toString(16)}return e},async copy(e){if("undefined"!=typeof uni)return new Promise(((t,r)=>{uni.setClipboardData({data:e,success:()=>{t()},fail:()=>{r()}})}));if((null==navigator?void 0:navigator.clipboard)&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.opacity="0",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),t.remove()}}};exports.stringUtil=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified"),t={getUrlParams(e){const t=/[?&][^=?&]+=[^?&]+/g,r={};let o;for(;null!==(o=t.exec(e));){const[e,t]=o[0].substring(1).split("=");r[e]=decodeURIComponent(t)}return r},isJson:r=>!!e.isString(r)&&(r=r.replace(/\s/g,"").replace(/\n|\r/,""),/^\{.*?\}$/.test(r)?/".*?":/.test(r):!!/^\[.*?\]$/.test(r)&&r.replace(/^\[/,"").replace(/\]$/,"").replace(/\},\{/g,"}\n{").split(/\n/).map((e=>t.isJson(e))).reduce(((e,t)=>!!t))),splitCamelCase:e=>e?1===e.length?[e]:e.split(new RegExp("(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})","u")).filter((e=>e.length>0)):[],toCamelCase:e=>e?e.replace(/[-_](\w)/g,((e,t)=>t?t.toUpperCase():"")):"",firstCharToUpper:e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",firstCharToLower:e=>e?e.charAt(0).toLowerCase()+e.slice(1):"",subStringWithEllipsis:(e,t,r="...")=>e?e.length>t?e.substring(0,t)+r:e:"",generateRandomString(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let r="";for(let o=0;o<e;o++){const e=Math.floor(62*Math.random());r+=t.charAt(e)}return r},generateUUID(){let e="";for(let t=0;t<32;t++){const r=16*Math.random()|0;8!==t&&12!==t&&16!==t&&20!==t||(e+="-"),e+=(12===t?4:16===t?3&r|8:r).toString(16)}return e},async copy(e){if("undefined"!=typeof uni)return new Promise(((t,r)=>{uni.setClipboardData({data:e,success:()=>{t()},fail:()=>{r()}})}));if((null==navigator?void 0:navigator.clipboard)&&window.isSecureContext)await navigator.clipboard.writeText(e);else{const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.opacity="0",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),t.remove()}}};exports.stringUtil=t;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{(.*?)\\}$/.test(value)) return /\"(.*?)\":(.*?)/g.test(value);\n\n\t\tif (/^\\[(.*?)\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/},{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n"],"names":["stringUtil","getUrlParams","url","regex","params","match","exec","key","value","substring","split","decodeURIComponent","isJson","isString","replace","test","map","s","reduce","prev","curr","splitCamelCase","length","RegExp","filter","token","toCamelCase","_","c","toUpperCase","firstCharToUpper","charAt","slice","firstCharToLower","toLowerCase","subStringWithEllipsis","suffix","generateRandomString","characters","randomString","i","randomIndex","Math","floor","random","generateUUID","uuid","toString","copy","uni","Promise","resolve","reject","setClipboardData","data","success","fail","navigator","clipboard","window","isSecureContext","writeText","textareaEl","document","createElement","style","position","opacity","left","top","body","appendChild","focus","select","execCommand","remove"],"mappings":"kHAKaA,EAAa,CAIzB,YAAAC,CAAaC,GACZ,MAAMC,EAAQ,sBACRC,EAA8B,CAAC,EAEjC,IAAAC,EACJ,KAAqC,QAA7BA,EAAQF,EAAMG,KAAKJ,KAAgB,CACpC,MAACK,EAAKC,GAASH,EAAM,GAAGI,UAAU,GAAGC,MAAM,KAC1CN,EAAAG,GAAOI,mBAAmBH,EAAK,CAGhC,OAAAJ,CACR,EAIAQ,OAAOJ,KACDK,EAAAA,SAASL,KAEdA,EAAQA,EAAMM,QAAQ,MAAO,IAAIA,QAAQ,QAAS,IAE9C,cAAcC,KAAKP,GAAe,iBAAiBO,KAAKP,KAExD,cAAcO,KAAKP,IACfA,EACLM,QAAQ,MAAO,IACfA,QAAQ,MAAO,IACfA,QAAQ,OAAQ,QAChBJ,MAAM,MACNM,KAAKC,GACEjB,EAAWY,OAAOK,KAEzBC,QAAO,CAACC,EAAMC,MACLA,KASbC,eAAeb,GACTA,EAEgB,IAAjBA,EAAMc,OAAqB,CAACd,GAEzBA,EAAME,MAAM,IAAAa,OAAA,6CAAA,MAA2CC,QAAQC,GAAUA,EAAMH,OAAS,IAJ5E,GAUpBI,YAAYlB,GACNA,EACEA,EAAMM,QAAQ,aAAa,CAACa,EAAGC,IAAOA,EAAIA,EAAEC,cAAgB,KADhD,GAMpBC,iBAAiBtB,GACXA,EACEA,EAAMuB,OAAO,GAAGF,cAAgBrB,EAAMwB,MAAM,GADhC,GAMpBC,iBAAiBzB,GACXA,EACEA,EAAMuB,OAAO,GAAGG,cAAgB1B,EAAMwB,MAAM,GADhC,GAMpBG,sBAAsB,CAAA3B,EAAec,EAAgBc,EAAS,QACxD5B,EACEA,EAAMc,OAASA,EAASd,EAAMC,UAAU,EAAGa,GAAUc,EAAS5B,EADlD,GAMpB,oBAAA6B,CAAqBf,GACpB,MAAMgB,EAAa,iEACnB,IAAIC,EAAe,GACnB,IAAA,IAASC,EAAI,EAAGA,EAAIlB,EAAQkB,IAAK,CAChC,MAAMC,EAAcC,KAAKC,MAAsBL,GAAhBI,KAAKE,UACpBL,GAAAD,EAAWP,OAAOU,EAAW,CAEvC,OAAAF,CACR,EAIA,YAAAM,GACC,IAAIC,EAAO,GACX,IAAA,IAASN,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC5B,MAAMI,EAA0B,GAAhBF,KAAKE,SAAiB,EAC5B,IAANJ,GAAiB,KAANA,GAAkB,KAANA,GAAkB,KAANA,IAAkBM,GAAA,KAChDA,IAAM,KAANN,EAAW,EAAU,KAANA,EAAqB,EAATI,EAAc,EAAIA,GAAQG,SAAS,GAAE,CAEnE,OAAAD,CACR,EAIA,UAAME,CAAKxC,GACN,GAAe,oBAARyC,IACV,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC5BH,IAAII,iBAAiB,CACpBC,KAAM9C,EACN+C,QAAS,KACAJ,GAAA,EAETK,KAAM,KACEJ,GAAA,GAER,IAIE,IAAA,MAAAK,eAAA,EAAAA,UAAWC,YAAaC,OAAOC,sBAC5BH,UAAUC,UAAUG,UAAUrD,OAC9B,CACA,MAAAsD,EAAaC,SAASC,cAAc,YAC1CF,EAAWtD,MAAQA,EAEnBsD,EAAWG,MAAMC,SAAW,WAC5BJ,EAAWG,MAAME,QAAU,IAC3BL,EAAWG,MAAMG,KAAO,YACxBN,EAAWG,MAAMI,IAAM,YACdN,SAAAO,KAAKC,YAAYT,GAC1BA,EAAWU,QACXV,EAAWW,SACXV,SAASW,YAAY,QACrBZ,EAAWa,QAAO,CAEpB"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isString } from \"lodash-unified\";\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 获取Url参数\n\t */\n\tgetUrlParams(url: string): Record<string, any> {\n\t\tconst regex = /[?&][^=?&]+=[^?&]+/g;\n\t\tconst params: Record<string, any> = {};\n\n\t\tlet match;\n\t\twhile ((match = regex.exec(url)) !== null) {\n\t\t\tconst [key, value] = match[0].substring(1).split(\"=\");\n\t\t\tparams[key] = decodeURIComponent(value);\n\t\t}\n\n\t\treturn params;\n\t},\n\t/**\n\t * 是否为JSON字符串\n\t */\n\tisJson(value: string): boolean {\n\t\tif (!isString(value)) return false;\n\n\t\tvalue = value.replace(/\\s/g, \"\").replace(/\\n|\\r/, \"\");\n\n\t\tif (/^\\{.*?\\}$/.test(value)) return /\".*?\":/.test(value);\n\n\t\tif (/^\\[.*?\\]$/.test(value)) {\n\t\t\treturn value\n\t\t\t\t.replace(/^\\[/, \"\")\n\t\t\t\t.replace(/\\]$/, \"\")\n\t\t\t\t.replace(/\\},\\{/g, \"}\\n{\")\n\t\t\t\t.split(/\\n/)\n\t\t\t\t.map((s) => {\n\t\t\t\t\treturn stringUtil.isJson(s);\n\t\t\t\t})\n\t\t\t\t.reduce((prev, curr) => {\n\t\t\t\t\treturn !!curr;\n\t\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t},\n\t/**\n\t * 切割骆驼命名式字符串\n\t */\n\tsplitCamelCase(value: string): string[] {\n\t\tif (!value) return [];\n\n\t\tif (value.length === 1) return [value];\n\n\t\treturn value.split(/(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})/u).filter((token) => token.length > 0);\n\t},\n\t/**\n\t * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串\n\t * 例如:'hello-world' 或 'hello_world' => 'helloWorld'\n\t */\n\ttoCamelCase(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n\t},\n\t/**\n\t * 字符串首字母大写\n\t */\n\tfirstCharToUpper(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t},\n\t/**\n\t * 字符串首字母小写\n\t */\n\tfirstCharToLower(value: string): string {\n\t\tif (!value) return \"\";\n\t\treturn value.charAt(0).toLowerCase() + value.slice(1);\n\t},\n\t/**\n\t * 截取指定长度的字符串\n\t */\n\tsubStringWithEllipsis(value: string, length: number, suffix = \"...\"): string {\n\t\tif (!value) return \"\";\n\t\treturn value.length > length ? value.substring(0, length) + suffix : value;\n\t},\n\t/**\n\t * 生成随机字符串\n\t */\n\tgenerateRandomString(length: number): string {\n\t\tconst characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\t\tlet randomString = \"\";\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\t\trandomString += characters.charAt(randomIndex);\n\t\t}\n\t\treturn randomString;\n\t},\n\t/**\n\t * @description 生成唯一 uuid\n\t */\n\tgenerateUUID(): string {\n\t\tlet uuid = \"\";\n\t\tfor (let i = 0; i < 32; i++) {\n\t\t\tconst random = (Math.random() * 16) | 0;\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t\t}\n\t\treturn uuid;\n\t},\n\t/**\n\t * 复制\n\t */\n\tasync copy(value: string): Promise<void> {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tuni.setClipboardData({\n\t\t\t\t\tdata: value,\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\tfail: () => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t// navigator.clipboard 需要https等安全上下文\n\t\t\tif (navigator?.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(value);\n\t\t\t} else {\n\t\t\t\tconst textareaEl = document.createElement(\"textarea\");\n\t\t\t\ttextareaEl.value = value;\n\t\t\t\t// 使文本域不显示\n\t\t\t\ttextareaEl.style.position = \"absolute\";\n\t\t\t\ttextareaEl.style.opacity = \"0\";\n\t\t\t\ttextareaEl.style.left = \"-999999px\";\n\t\t\t\ttextareaEl.style.top = \"-999999px\";\n\t\t\t\tdocument.body.appendChild(textareaEl);\n\t\t\t\ttextareaEl.focus();\n\t\t\t\ttextareaEl.select();\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\ttextareaEl.remove();\n\t\t\t}\n\t\t}\n\t},\n};\n"],"names":["stringUtil","getUrlParams","url","regex","params","match","exec","key","value","substring","split","decodeURIComponent","isJson","isString","replace","test","map","s","reduce","prev","curr","splitCamelCase","length","RegExp","filter","token","toCamelCase","_","c","toUpperCase","firstCharToUpper","charAt","slice","firstCharToLower","toLowerCase","subStringWithEllipsis","suffix","generateRandomString","characters","randomString","i","randomIndex","Math","floor","random","generateUUID","uuid","toString","copy","uni","Promise","resolve","reject","setClipboardData","data","success","fail","navigator","clipboard","window","isSecureContext","writeText","textareaEl","document","createElement","style","position","opacity","left","top","body","appendChild","focus","select","execCommand","remove"],"mappings":"kHAKaA,EAAa,CAIzB,YAAAC,CAAaC,GACZ,MAAMC,EAAQ,sBACRC,EAA8B,CAAC,EAEjC,IAAAC,EACJ,KAAqC,QAA7BA,EAAQF,EAAMG,KAAKJ,KAAgB,CACpC,MAACK,EAAKC,GAASH,EAAM,GAAGI,UAAU,GAAGC,MAAM,KAC1CN,EAAAG,GAAOI,mBAAmBH,EAAK,CAGhC,OAAAJ,CACR,EAIAQ,OAAOJ,KACDK,EAAAA,SAASL,KAEdA,EAAQA,EAAMM,QAAQ,MAAO,IAAIA,QAAQ,QAAS,IAE9C,YAAYC,KAAKP,GAAe,SAASO,KAAKP,KAE9C,YAAYO,KAAKP,IACbA,EACLM,QAAQ,MAAO,IACfA,QAAQ,MAAO,IACfA,QAAQ,SAAU,QAClBJ,MAAM,MACNM,KAAKC,GACEjB,EAAWY,OAAOK,KAEzBC,QAAO,CAACC,EAAMC,MACLA,KASbC,eAAeb,GACTA,EAEgB,IAAjBA,EAAMc,OAAqB,CAACd,GAEzBA,EAAME,MAAM,IAAAa,OAAA,6CAAA,MAA2CC,QAAQC,GAAUA,EAAMH,OAAS,IAJ5E,GAUpBI,YAAYlB,GACNA,EACEA,EAAMM,QAAQ,aAAa,CAACa,EAAGC,IAAOA,EAAIA,EAAEC,cAAgB,KADhD,GAMpBC,iBAAiBtB,GACXA,EACEA,EAAMuB,OAAO,GAAGF,cAAgBrB,EAAMwB,MAAM,GADhC,GAMpBC,iBAAiBzB,GACXA,EACEA,EAAMuB,OAAO,GAAGG,cAAgB1B,EAAMwB,MAAM,GADhC,GAMpBG,sBAAsB,CAAA3B,EAAec,EAAgBc,EAAS,QACxD5B,EACEA,EAAMc,OAASA,EAASd,EAAMC,UAAU,EAAGa,GAAUc,EAAS5B,EADlD,GAMpB,oBAAA6B,CAAqBf,GACpB,MAAMgB,EAAa,iEACnB,IAAIC,EAAe,GACnB,IAAA,IAASC,EAAI,EAAGA,EAAIlB,EAAQkB,IAAK,CAChC,MAAMC,EAAcC,KAAKC,MAAsBL,GAAhBI,KAAKE,UACpBL,GAAAD,EAAWP,OAAOU,EAAW,CAEvC,OAAAF,CACR,EAIA,YAAAM,GACC,IAAIC,EAAO,GACX,IAAA,IAASN,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC5B,MAAMI,EAA0B,GAAhBF,KAAKE,SAAiB,EAC5B,IAANJ,GAAiB,KAANA,GAAkB,KAANA,GAAkB,KAANA,IAAkBM,GAAA,KAChDA,IAAM,KAANN,EAAW,EAAU,KAANA,EAAqB,EAATI,EAAc,EAAIA,GAAQG,SAAS,GAAE,CAEnE,OAAAD,CACR,EAIA,UAAME,CAAKxC,GACN,GAAe,oBAARyC,IACV,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC5BH,IAAII,iBAAiB,CACpBC,KAAM9C,EACN+C,QAAS,KACAJ,GAAA,EAETK,KAAM,KACEJ,GAAA,GAER,IAIE,IAAA,MAAAK,eAAA,EAAAA,UAAWC,YAAaC,OAAOC,sBAC5BH,UAAUC,UAAUG,UAAUrD,OAC9B,CACA,MAAAsD,EAAaC,SAASC,cAAc,YAC1CF,EAAWtD,MAAQA,EAEnBsD,EAAWG,MAAMC,SAAW,WAC5BJ,EAAWG,MAAME,QAAU,IAC3BL,EAAWG,MAAMG,KAAO,YACxBN,EAAWG,MAAMI,IAAM,YACdN,SAAAO,KAAKC,YAAYT,GAC1BA,EAAWU,QACXV,EAAWW,SACXV,SAASW,YAAY,QACrBZ,EAAWa,QAAO,CAEpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sources":["../../../../src/vue/props.ts"],"sourcesContent":["import type { ComputedRef, PropType } from \"vue\";\nimport { computed } from \"vue\";\nimport { omit, pick } from \"lodash-unified\";\n\nexport const definePropType = <T>(val: any): PropType<T> => val;\n\n/**\n * 构建 props\n * @param props props\n * @param rawProps 原生 props\n * @param ignoreRawProps 忽略 原生 props 的 key\n */\nexport const useProps = <T extends Record<string, unknown>, RT extends Record<string, unknown>>(\n\tprops: T,\n\trawProps?: RT,\n\tignoreRawProps?: (keyof RT)[]\n): ComputedRef<Record<string, unknown>> => {\n\tif (!props) return computed(() => ({}));\n\n\treturn computed<Record<string, unknown>>(() => {\n\t\tconst omittedRawProps = rawProps ? omit(rawProps, ignoreRawProps ?? []) : {};\n\t\treturn pick(props, Object.keys(omittedRawProps)) as Record<string, unknown>;\n\t});\n};\n"],"names":["val","props","rawProps","ignoreRawProps","computed","omittedRawProps","omit","pick","Object","keys"],"mappings":"0JAIkCA,GAA0BA,mBAQpC,CACvBC,EACAC,EACAC,IAEKF,EAEEG,YAAkC,KAClC,MAAAC,EAAkBH,EAAWI,EAAKA,KAAAJ,EAAUC,GAAkB,IAAM,CAAC,EAC3E,OAAOI,EAAKA,KAAAN,EAAOO,OAAOC,KAAKJ,GAAgB,IAJ7BD,YAAS,KAAA,CAAU"}
1
+ {"version":3,"file":"props.js","sources":["../../../../src/vue/props.ts"],"sourcesContent":["import { computed } from \"vue\";\nimport { omit, pick } from \"lodash-unified\";\nimport type { ComputedRef, PropType } from \"vue\";\n\nexport const definePropType = <T>(val: any): PropType<T> => val;\n\n/**\n * 构建 props\n * @param props props\n * @param rawProps 原生 props\n * @param ignoreRawProps 忽略 原生 props 的 key\n */\nexport const useProps = <T extends Record<string, unknown>, RT extends Record<string, unknown>>(\n\tprops: T,\n\trawProps?: RT,\n\tignoreRawProps?: (keyof RT)[]\n): ComputedRef<Record<string, unknown>> => {\n\tif (!props) return computed(() => ({}));\n\n\treturn computed<Record<string, unknown>>(() => {\n\t\tconst omittedRawProps = rawProps ? omit(rawProps, ignoreRawProps ?? []) : {};\n\t\treturn pick(props, Object.keys(omittedRawProps)) as Record<string, unknown>;\n\t});\n};\n"],"names":["val","props","rawProps","ignoreRawProps","computed","omittedRawProps","omit","pick","Object","keys"],"mappings":"0JAIkCA,GAA0BA,mBAQpC,CACvBC,EACAC,EACAC,IAEKF,EAEEG,YAAkC,KAClC,MAAAC,EAAkBH,EAAWI,EAAKA,KAAAJ,EAAUC,GAAkB,IAAM,CAAC,EAC3E,OAAOI,EAAKA,KAAAN,EAAOO,OAAOC,KAAKJ,GAAgB,IAJ7BD,YAAS,KAAA,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRender.js","sources":["../../../../src/vue/useRender.ts"],"sourcesContent":["import type { VNode } from \"vue\";\nimport { getCurrentInstance } from \"vue\";\nimport { FastError } from \"../error\";\n\n/**\n * 使用渲染\n * @description 为了解决使用 TSX 语法返回渲染函数,状态不会出现在 vue.js devtools 中\n */\nexport const useRender = (render: () => VNode): void => {\n\tconst vm = getCurrentInstance() as any;\n\tif (!vm) {\n\t\tthrow new FastError(\"useRender must be called from inside a setup function\");\n\t}\n\tvm.render = render;\n};\n"],"names":["render","vm","getCurrentInstance","FastError"],"mappings":"wJAQ0BA,IACnB,MAAAC,EAAKC,EAAAA,qBACX,IAAKD,EACE,MAAA,IAAIE,YAAU,yDAErBF,EAAGD,OAASA,CAAA"}
1
+ {"version":3,"file":"useRender.js","sources":["../../../../src/vue/useRender.ts"],"sourcesContent":["import { getCurrentInstance } from \"vue\";\nimport { FastError } from \"../error\";\nimport type { VNode } from \"vue\";\n\n/**\n * 使用渲染\n * @description 为了解决使用 TSX 语法返回渲染函数,状态不会出现在 vue.js devtools 中\n */\nexport const useRender = (render: () => VNode): void => {\n\tconst vm = getCurrentInstance() as any;\n\tif (!vm) {\n\t\tthrow new FastError(\"useRender must be called from inside a setup function\");\n\t}\n\tvm.render = render;\n};\n"],"names":["render","vm","getCurrentInstance","FastError"],"mappings":"wJAQ0BA,IACnB,MAAAC,EAAKC,EAAAA,qBACX,IAAKD,EACE,MAAA,IAAIE,YAAU,yDAErBF,EAAGD,OAASA,CAAA"}