@fast-china/utils 1.0.38 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/CONTRIBUTING.md +87 -0
  3. package/README.md +111 -50
  4. package/README.zh.md +111 -50
  5. package/SECURITY.md +46 -0
  6. package/dist/array/index.d.mts +87 -0
  7. package/dist/array/index.d.mts.map +1 -0
  8. package/dist/array/index.mjs +161 -0
  9. package/dist/array/index.mjs.map +1 -0
  10. package/dist/async/index.d.mts +146 -0
  11. package/dist/async/index.d.mts.map +1 -0
  12. package/dist/async/index.mjs +336 -0
  13. package/dist/async/index.mjs.map +1 -0
  14. package/dist/base64/index.d.mts +105 -0
  15. package/dist/base64/index.d.mts.map +1 -0
  16. package/dist/base64/index.mjs +427 -0
  17. package/dist/base64/index.mjs.map +1 -0
  18. package/dist/color/index.d.mts +90 -0
  19. package/dist/color/index.d.mts.map +1 -0
  20. package/dist/color/index.mjs +178 -0
  21. package/dist/color/index.mjs.map +1 -0
  22. package/dist/crypto/index.d.mts +157 -0
  23. package/dist/crypto/index.d.mts.map +1 -0
  24. package/dist/crypto/index.mjs +541 -0
  25. package/dist/crypto/index.mjs.map +1 -0
  26. package/dist/date/index.d.mts +191 -0
  27. package/dist/date/index.d.mts.map +1 -0
  28. package/dist/date/index.mjs +383 -0
  29. package/dist/date/index.mjs.map +1 -0
  30. package/dist/dom/style.d.mts +30 -0
  31. package/dist/dom/style.d.mts.map +1 -0
  32. package/dist/dom/style.mjs +74 -0
  33. package/dist/dom/style.mjs.map +1 -0
  34. package/dist/env/index.d.mts +63 -0
  35. package/dist/env/index.d.mts.map +1 -0
  36. package/dist/env/index.mjs +97 -0
  37. package/dist/env/index.mjs.map +1 -0
  38. package/dist/identity/index.d.mts +78 -0
  39. package/dist/identity/index.d.mts.map +1 -0
  40. package/dist/identity/index.mjs +87 -0
  41. package/dist/identity/index.mjs.map +1 -0
  42. package/dist/index.d.mts +24 -0
  43. package/dist/index.mjs +23 -0
  44. package/dist/internal/text.mjs +36 -0
  45. package/dist/internal/text.mjs.map +1 -0
  46. package/dist/logger/index.d.mts +87 -0
  47. package/dist/logger/index.d.mts.map +1 -0
  48. package/dist/logger/index.mjs +124 -0
  49. package/dist/logger/index.mjs.map +1 -0
  50. package/dist/number/index.d.mts +89 -0
  51. package/dist/number/index.d.mts.map +1 -0
  52. package/dist/number/index.mjs +215 -0
  53. package/dist/number/index.mjs.map +1 -0
  54. package/dist/object/index.d.mts +76 -0
  55. package/dist/object/index.d.mts.map +1 -0
  56. package/dist/object/index.mjs +134 -0
  57. package/dist/object/index.mjs.map +1 -0
  58. package/dist/storage/index.d.mts +104 -0
  59. package/dist/storage/index.d.mts.map +1 -0
  60. package/dist/storage/index.mjs +324 -0
  61. package/dist/storage/index.mjs.map +1 -0
  62. package/dist/string/index.d.mts +130 -0
  63. package/dist/string/index.d.mts.map +1 -0
  64. package/dist/string/index.mjs +275 -0
  65. package/dist/string/index.mjs.map +1 -0
  66. package/dist/vue/emits.d.mts +24 -0
  67. package/dist/vue/emits.d.mts.map +1 -0
  68. package/dist/vue/emits.mjs +47 -0
  69. package/dist/vue/emits.mjs.map +1 -0
  70. package/dist/vue/expose.d.mts +12 -0
  71. package/dist/vue/expose.d.mts.map +1 -0
  72. package/dist/vue/expose.mjs +16 -0
  73. package/dist/vue/expose.mjs.map +1 -0
  74. package/dist/vue/func.d.mts +14 -0
  75. package/dist/vue/func.d.mts.map +1 -0
  76. package/dist/vue/func.mjs +16 -0
  77. package/dist/vue/func.mjs.map +1 -0
  78. package/dist/vue/index.d.mts +9 -0
  79. package/dist/vue/install.d.mts +69 -0
  80. package/dist/vue/install.d.mts.map +1 -0
  81. package/dist/vue/install.mjs +123 -0
  82. package/dist/vue/install.mjs.map +1 -0
  83. package/dist/vue/props.d.mts +23 -0
  84. package/dist/vue/props.d.mts.map +1 -0
  85. package/dist/vue/props.mjs +41 -0
  86. package/dist/vue/props.mjs.map +1 -0
  87. package/dist/vue/render.d.mts +13 -0
  88. package/dist/vue/render.d.mts.map +1 -0
  89. package/dist/vue/render.mjs +23 -0
  90. package/dist/vue/render.mjs.map +1 -0
  91. package/dist/vue/slots.d.mts +19 -0
  92. package/dist/vue/slots.d.mts.map +1 -0
  93. package/dist/vue/slots.mjs +13 -0
  94. package/dist/vue/slots.mjs.map +1 -0
  95. package/dist/vue/with.d.mts +12 -0
  96. package/dist/vue/with.d.mts.map +1 -0
  97. package/dist/vue/with.mjs +15 -0
  98. package/dist/vue/with.mjs.map +1 -0
  99. package/docs/API.md +96 -0
  100. package/docs/API.zh-CN.md +96 -0
  101. package/docs/DEVELOPMENT_RELEASE.zh-CN.md +65 -0
  102. package/docs/RUNTIME_CONTRACT.md +37 -0
  103. package/package.json +65 -73
  104. package/src/array/index.ts +173 -0
  105. package/src/async/index.ts +475 -0
  106. package/src/base64/index.ts +374 -0
  107. package/src/color/index.ts +208 -0
  108. package/src/crypto/index.ts +670 -0
  109. package/src/date/index.ts +451 -0
  110. package/src/dom/index.ts +6 -0
  111. package/src/dom/style.ts +92 -0
  112. package/src/env/index.ts +169 -0
  113. package/src/identity/index.ts +144 -0
  114. package/src/index.ts +20 -0
  115. package/src/internal/text.ts +46 -0
  116. package/src/logger/index.ts +219 -0
  117. package/src/number/index.ts +235 -0
  118. package/src/object/index.ts +160 -0
  119. package/src/storage/index.ts +524 -0
  120. package/src/string/index.ts +328 -0
  121. package/src/vue/emits.ts +71 -0
  122. package/src/vue/expose.ts +11 -0
  123. package/src/vue/func.ts +17 -0
  124. package/src/vue/index.ts +13 -0
  125. package/src/vue/install.ts +185 -0
  126. package/src/vue/props.ts +39 -0
  127. package/src/vue/render.ts +41 -0
  128. package/src/vue/slots.ts +23 -0
  129. package/src/vue/with.ts +10 -0
  130. package/Fast.png +0 -0
  131. package/dist/index.global.js +0 -14500
  132. package/dist/index.global.js.map +0 -1
  133. package/dist/index.global.min.js +0 -2
  134. package/dist/index.global.min.js.map +0 -1
  135. package/es/array/index.d.ts +0 -19
  136. package/es/array/index.mjs +0 -2
  137. package/es/array/index.mjs.map +0 -1
  138. package/es/base64/index.d.ts +0 -21
  139. package/es/base64/index.mjs +0 -2
  140. package/es/base64/index.mjs.map +0 -1
  141. package/es/click/index.d.ts +0 -33
  142. package/es/click/index.mjs +0 -2
  143. package/es/click/index.mjs.map +0 -1
  144. package/es/color/index.d.ts +0 -33
  145. package/es/color/index.mjs +0 -2
  146. package/es/color/index.mjs.map +0 -1
  147. package/es/console/index.d.ts +0 -31
  148. package/es/console/index.mjs +0 -2
  149. package/es/console/index.mjs.map +0 -1
  150. package/es/crypto/index.d.ts +0 -46
  151. package/es/crypto/index.mjs +0 -2
  152. package/es/crypto/index.mjs.map +0 -1
  153. package/es/date/index.d.ts +0 -44
  154. package/es/date/index.mjs +0 -2
  155. package/es/date/index.mjs.map +0 -1
  156. package/es/dom/index.d.ts +0 -1
  157. package/es/dom/index.mjs +0 -2
  158. package/es/dom/index.mjs.map +0 -1
  159. package/es/dom/style.d.ts +0 -12
  160. package/es/dom/style.mjs +0 -2
  161. package/es/dom/style.mjs.map +0 -1
  162. package/es/env/index.d.ts +0 -25
  163. package/es/env/index.mjs +0 -2
  164. package/es/env/index.mjs.map +0 -1
  165. package/es/error/index.d.ts +0 -3
  166. package/es/error/index.mjs +0 -2
  167. package/es/error/index.mjs.map +0 -1
  168. package/es/identity/index.d.ts +0 -14
  169. package/es/identity/index.mjs +0 -2
  170. package/es/identity/index.mjs.map +0 -1
  171. package/es/index.d.ts +0 -15
  172. package/es/index.es.d.ts +0 -2
  173. package/es/index.mjs +0 -2
  174. package/es/index.mjs.map +0 -1
  175. package/es/object/index.d.ts +0 -13
  176. package/es/object/index.mjs +0 -2
  177. package/es/object/index.mjs.map +0 -1
  178. package/es/storage/index.d.ts +0 -96
  179. package/es/storage/index.mjs +0 -2
  180. package/es/storage/index.mjs.map +0 -1
  181. package/es/string/index.d.ts +0 -114
  182. package/es/string/index.mjs +0 -2
  183. package/es/string/index.mjs.map +0 -1
  184. package/es/vue/emits.d.ts +0 -8
  185. package/es/vue/emits.mjs +0 -2
  186. package/es/vue/emits.mjs.map +0 -1
  187. package/es/vue/expose.d.ts +0 -4
  188. package/es/vue/expose.mjs +0 -2
  189. package/es/vue/expose.mjs.map +0 -1
  190. package/es/vue/func.d.ts +0 -6
  191. package/es/vue/func.mjs +0 -2
  192. package/es/vue/func.mjs.map +0 -1
  193. package/es/vue/index.d.ts +0 -8
  194. package/es/vue/index.mjs +0 -2
  195. package/es/vue/index.mjs.map +0 -1
  196. package/es/vue/install.d.ts +0 -5
  197. package/es/vue/install.mjs +0 -2
  198. package/es/vue/install.mjs.map +0 -1
  199. package/es/vue/props.d.ts +0 -9
  200. package/es/vue/props.mjs +0 -2
  201. package/es/vue/props.mjs.map +0 -1
  202. package/es/vue/slots.d.ts +0 -11
  203. package/es/vue/slots.mjs +0 -2
  204. package/es/vue/slots.mjs.map +0 -1
  205. package/es/vue/useRender.d.ts +0 -6
  206. package/es/vue/useRender.mjs +0 -2
  207. package/es/vue/useRender.mjs.map +0 -1
  208. package/es/vue/with.d.ts +0 -5
  209. package/es/vue/with.mjs +0 -2
  210. package/es/vue/with.mjs.map +0 -1
  211. package/lib/array/index.d.ts +0 -19
  212. package/lib/array/index.js +0 -2
  213. package/lib/array/index.js.map +0 -1
  214. package/lib/base64/index.d.ts +0 -21
  215. package/lib/base64/index.js +0 -2
  216. package/lib/base64/index.js.map +0 -1
  217. package/lib/click/index.d.ts +0 -33
  218. package/lib/click/index.js +0 -2
  219. package/lib/click/index.js.map +0 -1
  220. package/lib/color/index.d.ts +0 -33
  221. package/lib/color/index.js +0 -2
  222. package/lib/color/index.js.map +0 -1
  223. package/lib/console/index.d.ts +0 -31
  224. package/lib/console/index.js +0 -2
  225. package/lib/console/index.js.map +0 -1
  226. package/lib/crypto/index.d.ts +0 -46
  227. package/lib/crypto/index.js +0 -2
  228. package/lib/crypto/index.js.map +0 -1
  229. package/lib/date/index.d.ts +0 -44
  230. package/lib/date/index.js +0 -2
  231. package/lib/date/index.js.map +0 -1
  232. package/lib/dom/index.d.ts +0 -1
  233. package/lib/dom/index.js +0 -2
  234. package/lib/dom/index.js.map +0 -1
  235. package/lib/dom/style.d.ts +0 -12
  236. package/lib/dom/style.js +0 -2
  237. package/lib/dom/style.js.map +0 -1
  238. package/lib/env/index.d.ts +0 -25
  239. package/lib/env/index.js +0 -2
  240. package/lib/env/index.js.map +0 -1
  241. package/lib/error/index.d.ts +0 -3
  242. package/lib/error/index.js +0 -2
  243. package/lib/error/index.js.map +0 -1
  244. package/lib/identity/index.d.ts +0 -14
  245. package/lib/identity/index.js +0 -2
  246. package/lib/identity/index.js.map +0 -1
  247. package/lib/index.d.ts +0 -15
  248. package/lib/index.es.d.ts +0 -2
  249. package/lib/index.js +0 -2
  250. package/lib/index.js.map +0 -1
  251. package/lib/object/index.d.ts +0 -13
  252. package/lib/object/index.js +0 -2
  253. package/lib/object/index.js.map +0 -1
  254. package/lib/storage/index.d.ts +0 -96
  255. package/lib/storage/index.js +0 -2
  256. package/lib/storage/index.js.map +0 -1
  257. package/lib/string/index.d.ts +0 -114
  258. package/lib/string/index.js +0 -2
  259. package/lib/string/index.js.map +0 -1
  260. package/lib/vue/emits.d.ts +0 -8
  261. package/lib/vue/emits.js +0 -2
  262. package/lib/vue/emits.js.map +0 -1
  263. package/lib/vue/expose.d.ts +0 -4
  264. package/lib/vue/expose.js +0 -2
  265. package/lib/vue/expose.js.map +0 -1
  266. package/lib/vue/func.d.ts +0 -6
  267. package/lib/vue/func.js +0 -2
  268. package/lib/vue/func.js.map +0 -1
  269. package/lib/vue/index.d.ts +0 -8
  270. package/lib/vue/index.js +0 -2
  271. package/lib/vue/index.js.map +0 -1
  272. package/lib/vue/install.d.ts +0 -5
  273. package/lib/vue/install.js +0 -2
  274. package/lib/vue/install.js.map +0 -1
  275. package/lib/vue/props.d.ts +0 -9
  276. package/lib/vue/props.js +0 -2
  277. package/lib/vue/props.js.map +0 -1
  278. package/lib/vue/slots.d.ts +0 -11
  279. package/lib/vue/slots.js +0 -2
  280. package/lib/vue/slots.js.map +0 -1
  281. package/lib/vue/useRender.d.ts +0 -6
  282. package/lib/vue/useRender.js +0 -2
  283. package/lib/vue/useRender.js.map +0 -1
  284. package/lib/vue/with.d.ts +0 -5
  285. package/lib/vue/with.js +0 -2
  286. package/lib/vue/with.js.map +0 -1
@@ -1,96 +0,0 @@
1
- /**
2
- * 本地缓存前缀 Key
3
- */
4
- export declare const CACHE_PREFIX: import('vue').ComputedRef<string>;
5
- /**
6
- * 本地缓存过期值后缀 Key
7
- */
8
- export declare const CACHE_EXPIRE_SUFFIX: import('vue').ComputedRef<string>;
9
- export declare const useStorage: () => {
10
- /**
11
- * 设置缓存前缀 Key
12
- * @param key
13
- */
14
- setPrefix(key: string): void;
15
- /**
16
- * 缓存过期值后缀 Key
17
- * @param key
18
- */
19
- setExpireSuffix(key: string): void;
20
- /**
21
- * 设置缓存是否加密
22
- * @description 请在初始化的时候确认,后续不可再修改,否则所有数据都将失效
23
- * @param crypto
24
- */
25
- setCrypto(crypto: boolean): void;
26
- };
27
- /**
28
- * window.localStorage
29
- * - 如果是 UniApp 环境则使用的是 uni.xxxStorage
30
- */
31
- export declare const Local: {
32
- /**
33
- * 设置
34
- * @param key 缓存的Key
35
- * @param val 缓存值
36
- * @param expire 过期时间,单位分钟
37
- * @param encrypt 是否对缓存的数据加密
38
- */
39
- set(key: string, val: any, expire?: number, encrypt?: boolean): void;
40
- /**
41
- * 获取
42
- * @param key 缓存的Key
43
- * @param decrypt 是否对缓存的数据解密
44
- * @returns {T} 传入的对象类型,默认为 string
45
- */
46
- get<T = string>(key: string, decrypt?: boolean): T;
47
- /**
48
- * 移除
49
- * @param key 缓存的Key
50
- */
51
- remove(key: string): void;
52
- /**
53
- * 根据前缀移除
54
- * @param key 缓存的Key
55
- */
56
- removeByPrefix(key: string): void;
57
- /**
58
- * 移除全部
59
- */
60
- clear(): void;
61
- };
62
- /**
63
- * window.sessionStorage
64
- * - UniApp 环境下不可用
65
- */
66
- export declare const Session: {
67
- /**
68
- * 设置会话缓存
69
- * @param key 缓存的Key
70
- * @param val 缓存值
71
- * @param expire 过期时间,单位分钟
72
- * @param encrypt 是否对缓存的数据加密
73
- */
74
- set(key: string, val: any, expire?: number, encrypt?: boolean): void;
75
- /**
76
- * 获取会话缓存
77
- * @param key 缓存的Key
78
- * @param decrypt 是否对缓存的数据解密
79
- * @returns {T} 传入的对象类型,默认为 string
80
- */
81
- get<T = string>(key: string, decrypt?: boolean): T;
82
- /**
83
- * 移除会话缓存
84
- * @param key 缓存的Key
85
- */
86
- remove(key: string): void;
87
- /**
88
- * 根据前缀移除会话缓存
89
- * @param key 缓存的Key
90
- */
91
- removeByPrefix(key: string): void;
92
- /**
93
- * 移除全部会话缓存
94
- */
95
- clear(): void;
96
- };
@@ -1,2 +0,0 @@
1
- import{reactive as e,computed as i}from"vue";import{base64Util as r}from"../base64/index.mjs";import{consoleError as o}from"../console/index.mjs";import{FastError as t}from"../error/index.mjs";const n=e({prefix:"fast__",expireSuffix:"__Expire",crypto:!1}),s=i(()=>n.prefix),f=i(()=>n.expireSuffix),p=()=>({setPrefix(e){n.prefix=e},setExpireSuffix(e){n.expireSuffix=e},setCrypto(e){n.crypto=e}}),a={set(e,i){"undefined"!=typeof uni?uni.setStorageSync(e,i):window.localStorage.setItem(e,i)},get:e=>"undefined"!=typeof uni?uni.getStorageSync(e):window.localStorage.getItem(e),remove(e){"undefined"!=typeof uni?uni.removeStorageSync(e):window.localStorage.removeItem(e)},clear(){"undefined"!=typeof uni?uni.clearStorageSync():window.localStorage.clear()},keys:()=>"undefined"!=typeof uni?uni.getStorageInfoSync().keys:window.localStorage},S={set(e,i,s,f){try{if(f??=n.crypto,s){if(isNaN(s)||s<1)throw new t("有效期应为一个有效数值");const i={time:Date.now(),expire:s},r=JSON.stringify(i);a.set(`${n.prefix}${e}${n.expireSuffix}`,r)}let o=JSON.stringify(i);f&&(o=r.toBase64(o)),a.set(`${n.prefix}${e}`,o)}catch(p){o("Local",p)}},get(e,i){try{i??=n.crypto;let o=a.get(`${n.prefix}${e}`);if(o){i&&(o=r.base64ToStr(o));const t=a.get(`${n.prefix}${e}${n.expireSuffix}`);if(t){const i=JSON.parse(t);if(Date.now()>i.time+60*i.expire*1e3)return a.remove(`${n.prefix}${e}`),a.remove(`${n.prefix}${e}${n.expireSuffix}`),null}try{return JSON.parse(o)}catch{return o}}return null}catch(t){o("Local",t)}},remove(e){try{a.remove(`${n.prefix}${e}`),a.remove(`${n.prefix}${e}${n.expireSuffix}`)}catch(i){o("Local",i)}},removeByPrefix(e){try{for(const i in a.keys)-1!==i.indexOf(`${n.prefix}${e}`)&&a.remove(i)}catch(i){o("Local",i)}},clear(){try{a.clear()}catch(e){o("Local",e)}}},c={set(e,i,s,f){if("undefined"==typeof uni)try{if(f??=n.crypto,s){if(isNaN(s)||s<1)throw new t("有效期应为一个有效数值");const i={time:Date.now(),expire:s},r=JSON.stringify(i);window.sessionStorage.setItem(`${n.prefix}${e}${n.expireSuffix}`,r)}let o=JSON.stringify(i);f&&(o=r.toBase64(o)),window.sessionStorage.setItem(`${n.prefix}${e}`,o)}catch(p){o("Session",p)}else o("Session","UniApp 环境下 [Session] 不可用。")},get(e,i){if("undefined"==typeof uni)try{i??=n.crypto;let o=window.sessionStorage.getItem(`${n.prefix}${e}`);if(o){i&&(o=r.base64ToStr(o));const t=window.sessionStorage.getItem(`${n.prefix}${e}${n.expireSuffix}`);if(t){const i=JSON.parse(t);if(Date.now()>i.time+60*i.expire*1e3)return window.sessionStorage.removeItem(`${n.prefix}${e}`),window.sessionStorage.removeItem(`${n.prefix}${e}${n.expireSuffix}`),null}try{return JSON.parse(o)}catch{return o}}return null}catch(t){o("Session",t)}else o("Session","UniApp 环境下 [Session] 不可用。")},remove(e){if("undefined"==typeof uni)try{window.sessionStorage.removeItem(`${n.prefix}${e}`),window.sessionStorage.removeItem(`${n.prefix}${e}${n.expireSuffix}`)}catch(i){o("Session",i)}else o("Session","UniApp 环境下 [Session] 不可用。")},removeByPrefix(e){if("undefined"==typeof uni)try{for(const i in window.sessionStorage)-1!==i.indexOf(`${n.prefix}${e}`)&&window.sessionStorage.removeItem(i)}catch(i){o("Session",i)}else o("Session","UniApp 环境下 [Session] 不可用。")},clear(){if("undefined"==typeof uni)try{window.sessionStorage.clear()}catch(e){o("Session",e)}else o("Session","UniApp 环境下 [Session] 不可用。")}};export{f as CACHE_EXPIRE_SUFFIX,s as CACHE_PREFIX,S as Local,c as Session,p as useStorage};
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/storage/index.ts"],"sourcesContent":["import { computed, reactive } from \"vue\";\nimport { base64Util } from \"../base64\";\nimport { consoleError } from \"../console\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\tprefix: \"fast__\",\n\texpireSuffix: \"__Expire\",\n\tcrypto: false,\n});\n\n/**\n * 本地缓存前缀 Key\n */\nexport const CACHE_PREFIX = computed(() => state.prefix);\n\n/**\n * 本地缓存过期值后缀 Key\n */\nexport const CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useStorage = () => {\n\treturn {\n\t\t/**\n\t\t * 设置缓存前缀 Key\n\t\t * @param key\n\t\t */\n\t\tsetPrefix(key: string): void {\n\t\t\tstate.prefix = key;\n\t\t},\n\t\t/**\n\t\t * 缓存过期值后缀 Key\n\t\t * @param key\n\t\t */\n\t\tsetExpireSuffix(key: string): void {\n\t\t\tstate.expireSuffix = key;\n\t\t},\n\t\t/**\n\t\t * 设置缓存是否加密\n\t\t * @description 请在初始化的时候确认,后续不可再修改,否则所有数据都将失效\n\t\t * @param crypto\n\t\t */\n\t\tsetCrypto(crypto: boolean): void {\n\t\t\tstate.crypto = crypto;\n\t\t},\n\t};\n};\n\nconst storage = {\n\tset(key: string, val: any): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.setStorageSync(key, val);\n\t\t} else {\n\t\t\twindow.localStorage.setItem(key, val);\n\t\t}\n\t},\n\tget(key: string): string | any | null {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageSync(key);\n\t\t} else {\n\t\t\treturn window.localStorage.getItem(key);\n\t\t}\n\t},\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.removeStorageSync(key);\n\t\t} else {\n\t\t\twindow.localStorage.removeItem(key);\n\t\t}\n\t},\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.clearStorageSync();\n\t\t} else {\n\t\t\twindow.localStorage.clear();\n\t\t}\n\t},\n\tkeys(): string[] | Storage {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageInfoSync().keys;\n\t\t} else {\n\t\t\treturn window.localStorage;\n\t\t}\n\t},\n};\n\n/**\n * window.localStorage\n * - 如果是 UniApp 环境则使用的是 uni.xxxStorage\n */\nexport const Local = {\n\t/**\n\t * 设置\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\tstorage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\tstorage.set(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = storage.get(`${state.prefix}${key}`);\n\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\ttry {\n\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\ttry {\n\t\t\tfor (const itemKey in storage.keys) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\tstorage.remove(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部\n\t */\n\tclear(): void {\n\t\ttry {\n\t\t\tstorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n};\n\n/**\n * window.sessionStorage\n * - UniApp 环境下不可用\n */\nexport const Session = {\n\t/**\n\t * 设置会话缓存\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取会话缓存\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tfor (const itemKey in window.sessionStorage) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\twindow.sessionStorage.removeItem(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部会话缓存\n\t */\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n};\n"],"names":["state","reactive","prefix","expireSuffix","crypto","CACHE_PREFIX","computed","CACHE_EXPIRE_SUFFIX","useStorage","setPrefix","key","setExpireSuffix","setCrypto","storage","set","val","uni","setStorageSync","window","localStorage","setItem","get","getStorageSync","getItem","remove","removeStorageSync","removeItem","clear","clearStorageSync","keys","getStorageInfoSync","Local","expire","encrypt","isNaN","FastError","expireData","time","Date","now","expireJson","JSON","stringify","valJson","base64Util","toBase64","error","consoleError","decrypt","base64ToStr","parse","removeByPrefix","itemKey","indexOf","Session","sessionStorage"],"mappings":"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"}
@@ -1,114 +0,0 @@
1
- /**
2
- * 字符串工具类
3
- */
4
- export declare const stringUtil: {
5
- /**
6
- * 深度解码
7
- */
8
- deepDecodeURIComponent(str: string, maxDepth?: number): string;
9
- /**
10
- * 获取Url参数
11
- */
12
- getUrlParams(url: string): Record<string, any>;
13
- /**
14
- * 是否为JSON字符串
15
- */
16
- isJson(value: string): boolean;
17
- /**
18
- * 切割骆驼命名式字符串
19
- */
20
- splitCamelCase(value: string): string[];
21
- /**
22
- * 将字符串转为 camelCase 格式,支持 - 或 _ 分隔的字符串
23
- * 例如:'hello-world' 或 'hello_world' => 'helloWorld'
24
- */
25
- toCamelCase(value: string): string;
26
- /**
27
- * 字符串首字母大写
28
- */
29
- firstCharToUpper(value: string): string;
30
- /**
31
- * 字符串首字母小写
32
- */
33
- firstCharToLower(value: string): string;
34
- /**
35
- * 截取指定长度的字符串
36
- */
37
- subStringWithEllipsis(value: string, length: number, suffix?: string): string;
38
- /**
39
- * 生成随机字符串
40
- */
41
- generateRandomString(length: number): string;
42
- /**
43
- * @description 生成唯一 uuid
44
- */
45
- generateUUID(): string;
46
- /**
47
- * 复制
48
- */
49
- copy(value: string): Promise<void>;
50
- /**
51
- * 使用程序运行的语言将Number转为特定格式的字符串
52
- */
53
- toLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string;
54
- /**
55
- * 使用程序运行的语言将Number转为特定格式的字符串
56
- * @description 默认保留2位小数,补齐2位,不显示千分位
57
- */
58
- toLocaleString_i2x2(value: string | number, options?: Intl.NumberFormatOptions): string;
59
- /**
60
- * 使用程序运行的语言将Number转为特定格式的字符串
61
- * @description 默认保留2位小数,补齐2位,显示千分位
62
- */
63
- toLocaleString_i2x2g(value: string | number, options?: Intl.NumberFormatOptions): string;
64
- /**
65
- * 使用程序运行的语言将Number转为特定格式的字符串
66
- * @description 默认保留4位小数,补齐2位,不显示千分位
67
- */
68
- toLocaleString_i2x4(value: string | number, options?: Intl.NumberFormatOptions): string;
69
- /**
70
- * 使用程序运行的语言将Number转为特定格式的字符串
71
- * @description 默认保留4位小数,补齐2位,显示千分位
72
- */
73
- toLocaleString_i2x4g(value: string | number, options?: Intl.NumberFormatOptions): string;
74
- /**
75
- * 使用程序运行的语言将Number转为特定格式的字符串
76
- * @description 默认保留6位小数,补齐2位,不显示千分位
77
- */
78
- toLocaleString_i2x6(value: string | number, options?: Intl.NumberFormatOptions): string;
79
- /**
80
- * 使用程序运行的语言将Number转为特定格式的字符串
81
- * @description 默认保留6位小数,补齐2位,显示千分位
82
- */
83
- toLocaleString_i2x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
84
- /**
85
- * 使用程序运行的语言将Number转为特定格式的字符串
86
- * @description 默认保留4位小数,补齐4位,不显示千分位
87
- */
88
- toLocaleString_i4x4(value: string | number, options?: Intl.NumberFormatOptions): string;
89
- /**
90
- * 使用程序运行的语言将Number转为特定格式的字符串
91
- * @description 默认保留4位小数,补齐4位,显示千分位
92
- */
93
- toLocaleString_i4x4g(value: string | number, options?: Intl.NumberFormatOptions): string;
94
- /**
95
- * 使用程序运行的语言将Number转为特定格式的字符串
96
- * @description 默认保留6位小数,补齐4位,不显示千分位
97
- */
98
- toLocaleString_i4x6(value: string | number, options?: Intl.NumberFormatOptions): string;
99
- /**
100
- * 使用程序运行的语言将Number转为特定格式的字符串
101
- * @description 默认保留6位小数,补齐4位,显示千分位
102
- */
103
- toLocaleString_i4x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
104
- /**
105
- * 使用程序运行的语言将Number转为特定格式的字符串
106
- * @description 默认保留6位小数,补齐6位,不显示千分位
107
- */
108
- toLocaleString_i6x6(value: string | number, options?: Intl.NumberFormatOptions): string;
109
- /**
110
- * 使用程序运行的语言将Number转为特定格式的字符串
111
- * @description 默认保留6位小数,补齐6位,显示千分位
112
- */
113
- toLocaleString_i6x6g(value: string | number, options?: Intl.NumberFormatOptions): string;
114
- };
@@ -1,2 +0,0 @@
1
- import{merge as t,isNumber as i,isString as e}from"lodash-unified";let o;const n={zh:"zh-CN",en:"en-US",zh_CN:"zh-CN",zh_TW:"zh-TW"},r={deepDecodeURIComponent(t,i=10){if(!t)return t;let e=t;for(let o=0;o<i;o++){const t=decodeURIComponent(e);if(t===e)break;e=t}return e},getUrlParams(t){const i=/[?&][^=?&]+=[^?&]+/g,e={};let o;for(;null!==(o=i.exec(t));){const[t,i]=o[0].substring(1).split("=");e[t]=decodeURIComponent(i)}return e},isJson:t=>!!e(t)&&(t=t.replace(/\s/g,"").replace(/\n|\r/,""),/^\{.*?\}$/.test(t)?/".*?":/.test(t):!!/^\[.*?\]$/.test(t)&&t.replace(/^\[/,"").replace(/\]$/,"").replace(/\},\{/g,"}\n{").split(/\n/).map(t=>r.isJson(t)).reduce((t,i)=>!!i)),splitCamelCase:t=>t?1===t.length?[t]:t.split(new RegExp("(?=\\p{Lu}\\p{Ll})|(?<=\\p{Ll})(?=\\p{Lu})","u")).filter(t=>t.length>0):[],toCamelCase:t=>t?t.replace(/[-_](\w)/g,(t,i)=>i?i.toUpperCase():""):"",firstCharToUpper:t=>t?t.charAt(0).toUpperCase()+t.slice(1):"",firstCharToLower:t=>t?t.charAt(0).toLowerCase()+t.slice(1):"",subStringWithEllipsis:(t,i,e="...")=>t?t.length>i?t.substring(0,i)+e:t:"",generateRandomString(t){const i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let e="";for(let o=0;o<t;o++){const t=Math.floor(62*Math.random());e+=i.charAt(t)}return e},generateUUID(){let t="";for(let i=0;i<32;i++){const e=16*Math.random()|0;8!==i&&12!==i&&16!==i&&20!==i||(t+="-"),t+=(12===i?4:16===i?3&e|8:e).toString(16)}return t},async copy(t){if("undefined"!=typeof uni)return new Promise((i,e)=>{uni.setClipboardData({data:t,success:()=>{i()},fail:()=>{e()}})});if(navigator?.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(t);else{const i=document.createElement("textarea");i.value=t,i.style.position="absolute",i.style.opacity="0",i.style.left="-999999px",i.style.top="-999999px",document.body.appendChild(i),i.focus(),i.select(),document.execCommand("copy"),i.remove()}},toLocaleString:(t,e)=>t&&i(t)?"undefined"!=typeof uni?(o||(o=uni.getAppBaseInfo().language),t.toLocaleString(n[o]||"zh-CN",e)):t.toLocaleString(navigator.language||"zh-CN",e):t,toLocaleString_i2x2(i,e){return e=t(e||{},{minimumFractionDigits:2,maximumFractionDigits:2,useGrouping:!1}),this.toLocaleString(i,e)},toLocaleString_i2x2g(i,e){return e=t(e||{},{minimumFractionDigits:2,maximumFractionDigits:2,useGrouping:!0}),this.toLocaleString(i,e)},toLocaleString_i2x4(i,e){return e=t(e||{},{minimumFractionDigits:2,maximumFractionDigits:4,useGrouping:!1}),this.toLocaleString(i,e)},toLocaleString_i2x4g(i,e){return e=t(e||{},{minimumFractionDigits:2,maximumFractionDigits:4,useGrouping:!0}),this.toLocaleString(i,e)},toLocaleString_i2x6(i,e){return e=t(e||{},{minimumFractionDigits:2,maximumFractionDigits:6,useGrouping:!1}),this.toLocaleString(i,e)},toLocaleString_i2x6g(i,e){return e=t(e||{},{minimumFractionDigits:2,maximumFractionDigits:6,useGrouping:!0}),this.toLocaleString(i,e)},toLocaleString_i4x4(i,e){return e=t(e||{},{minimumFractionDigits:4,maximumFractionDigits:4,useGrouping:!1}),this.toLocaleString(i,e)},toLocaleString_i4x4g(i,e){return e=t(e||{},{minimumFractionDigits:4,maximumFractionDigits:4,useGrouping:!0}),this.toLocaleString(i,e)},toLocaleString_i4x6(i,e){return e=t(e||{},{minimumFractionDigits:4,maximumFractionDigits:6,useGrouping:!1}),this.toLocaleString(i,e)},toLocaleString_i4x6g(i,e){return e=t(e||{},{minimumFractionDigits:4,maximumFractionDigits:6,useGrouping:!0}),this.toLocaleString(i,e)},toLocaleString_i6x6(i,e){return e=t(e||{},{minimumFractionDigits:6,maximumFractionDigits:6,useGrouping:!1}),this.toLocaleString(i,e)},toLocaleString_i6x6g(i,e){return e=t(e||{},{minimumFractionDigits:6,maximumFractionDigits:6,useGrouping:!0}),this.toLocaleString(i,e)}};export{r as stringUtil};
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/string/index.ts"],"sourcesContent":["import { isNumber, isString, merge } from \"lodash-unified\";\n\nlet language: string;\nconst languageMap = {\n\tzh: \"zh-CN\",\n\ten: \"en-US\",\n\tzh_CN: \"zh-CN\",\n\tzh_TW: \"zh-TW\",\n};\n\n/**\n * 字符串工具类\n */\nexport const stringUtil = {\n\t/**\n\t * 深度解码\n\t */\n\tdeepDecodeURIComponent(str: string, maxDepth = 10): string {\n\t\tif (!str) return str;\n\t\tlet decoded = str;\n\t\tfor (let i = 0; i < maxDepth; i++) {\n\t\t\tconst next = decodeURIComponent(decoded);\n\t\t\tif (next === decoded) {\n\t\t\t\t// 已经无法继续解码,提前退出\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdecoded = next;\n\t\t}\n\t\treturn decoded;\n\t},\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\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t */\n\ttoLocaleString(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\tif (value) {\n\t\t\tif (isNumber(value)) {\n\t\t\t\tif (typeof uni !== \"undefined\") {\n\t\t\t\t\tif (!language) {\n\t\t\t\t\t\tlanguage = uni.getAppBaseInfo().language;\n\t\t\t\t\t}\n\t\t\t\t\treturn value.toLocaleString(languageMap[language] || \"zh-CN\", options);\n\t\t\t\t} else {\n\t\t\t\t\treturn value.toLocaleString(navigator.language || \"zh-CN\", options);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn value as string;\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留2位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x2(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 2,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留2位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x2g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 2,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x4(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x4g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐2位,不显示千分位\n\t */\n\ttoLocaleString_i2x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐2位,显示千分位\n\t */\n\ttoLocaleString_i2x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 2,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐4位,不显示千分位\n\t */\n\ttoLocaleString_i4x4(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留4位小数,补齐4位,显示千分位\n\t */\n\ttoLocaleString_i4x4g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 4,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐4位,不显示千分位\n\t */\n\ttoLocaleString_i4x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐4位,显示千分位\n\t */\n\ttoLocaleString_i4x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 4,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐6位,不显示千分位\n\t */\n\ttoLocaleString_i6x6(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 6,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: false,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n\t/**\n\t * 使用程序运行的语言将Number转为特定格式的字符串\n\t * @description 默认保留6位小数,补齐6位,显示千分位\n\t */\n\ttoLocaleString_i6x6g(value: string | number, options?: Intl.NumberFormatOptions): string {\n\t\toptions = merge(options || {}, {\n\t\t\tminimumFractionDigits: 6,\n\t\t\tmaximumFractionDigits: 6,\n\t\t\tuseGrouping: true,\n\t\t});\n\t\treturn this.toLocaleString(value, options);\n\t},\n};\n"],"names":["language","languageMap","zh","en","zh_CN","zh_TW","stringUtil","deepDecodeURIComponent","str","maxDepth","decoded","i","next","decodeURIComponent","getUrlParams","url","regex","params","match","exec","key","value","substring","split","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","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","toLocaleString","options","isNumber","getAppBaseInfo","toLocaleString_i2x2","merge","minimumFractionDigits","maximumFractionDigits","useGrouping","this","toLocaleString_i2x2g","toLocaleString_i2x4","toLocaleString_i2x4g","toLocaleString_i2x6","toLocaleString_i2x6g","toLocaleString_i4x4","toLocaleString_i4x4g","toLocaleString_i4x6","toLocaleString_i4x6g","toLocaleString_i6x6","toLocaleString_i6x6g"],"mappings":"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"}
package/es/vue/emits.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import { ComputedRef, EmitFn } from 'vue';
2
- /**
3
- * 构建 emits
4
- * @param emits emits 配置
5
- * @param emit emit 函数
6
- * @param ignoreRawEmits 忽略 原生 emits 的 key
7
- */
8
- export declare const useEmits: <T extends Record<string, (...args: any[]) => void>>(emits: T, emit?: EmitFn<T>, ignoreRawEmits?: (keyof T)[]) => ComputedRef<Record<string, (...args: any[]) => void>>;
package/es/vue/emits.mjs DELETED
@@ -1,2 +0,0 @@
1
- import{computed as e}from"vue";import{omit as o}from"lodash-unified";const r=(r,t,i)=>e(r?()=>{const e=r?o(r,i??[]):{};return Object.keys(e).reduce((e,o)=>(e[`on${o.split("-").map((e,o)=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}`]=(...e)=>t(o,...e),e),{})}:()=>({}));export{r as useEmits};
2
- //# sourceMappingURL=emits.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emits.mjs","sources":["../../../../src/vue/emits.ts"],"sourcesContent":["import { computed } from \"vue\";\nimport { omit } from \"lodash-unified\";\nimport type { ComputedRef, EmitFn } from \"vue\";\n\n/**\n * 构建 emits\n * @param emits emits 配置\n * @param emit emit 函数\n * @param ignoreRawEmits 忽略 原生 emits 的 key\n */\nexport const useEmits = <T extends Record<string, (...args: any[]) => void>>(\n\temits: T,\n\temit?: EmitFn<T>,\n\tignoreRawEmits?: (keyof T)[]\n): ComputedRef<Record<string, (...args: any[]) => void>> => {\n\tif (!emits) return computed(() => ({}));\n\n\treturn computed<Record<string, (...args: any[]) => void>>(() => {\n\t\tconst omittedRawEmits = emits ? omit(emits, ignoreRawEmits ?? []) : {};\n\t\t// 提取对应的事件处理器\n\t\treturn Object.keys(omittedRawEmits).reduce((handlers, eventName) => {\n\t\t\t// 将 emit 名称转换为事件处理器名称: 'update:modelValue' -> 'onUpdate:modelValue'\n\t\t\tconst handlerName = `on${eventName\n\t\t\t\t.split(\"-\")\n\t\t\t\t.map((part, index) => (index === 0 ? part.charAt(0).toUpperCase() + part.slice(1) : part.charAt(0).toUpperCase() + part.slice(1)))\n\t\t\t\t.join(\"\")}`;\n\n\t\t\thandlers[handlerName] = (...args: any[]): void => emit(eventName, ...args);\n\t\t\treturn handlers;\n\t\t}, {});\n\t});\n};\n"],"names":["useEmits","emits","emit","ignoreRawEmits","computed","omittedRawEmits","omit","Object","keys","reduce","handlers","eventName","split","map","part","index","charAt","toUpperCase","slice","join","args"],"mappings":"qEAUO,MAAMA,EAAW,CACvBC,EACAC,EACAC,IAIOC,EAFFH,EAEqD,KACzD,MAAMI,EAAkBJ,EAAQK,EAAKL,EAAOE,GAAkB,IAAM,CAAA,EAEpE,OAAOI,OAAOC,KAAKH,GAAiBI,OAAO,CAACC,EAAUC,KAOrDD,EALoB,KAAKC,EACvBC,MAAM,KACNC,IAAI,CAACC,EAAMC,IAAyBD,EAAKE,OAAO,GAAGC,cAAgBH,EAAKI,MAAM,IAC9EC,KAAK,OAEiB,IAAIC,IAAsBlB,EAAKS,KAAcS,GAC9DV,GACL,CAAA,IAdwB,KAAA,CAAO"}
@@ -1,4 +0,0 @@
1
- /**
2
- * 构建 expose 和 vue.js devtools 状态查看
3
- */
4
- export declare const useExpose: <Exposed extends Record<string, any> = Record<string, any>>(expose: (exposed?: Exposed) => void, exposed?: Exposed) => Exposed;
package/es/vue/expose.mjs DELETED
@@ -1,2 +0,0 @@
1
- const o=(o,t)=>(o(t),t);export{o as useExpose};
2
- //# sourceMappingURL=expose.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expose.mjs","sources":["../../../../src/vue/expose.ts"],"sourcesContent":["/**\n * 构建 expose 和 vue.js devtools 状态查看\n */\nexport const useExpose = <Exposed extends Record<string, any> = Record<string, any>>(\n\texpose: (exposed?: Exposed) => void,\n\texposed?: Exposed\n): Exposed => {\n\texpose(exposed);\n\n\treturn exposed;\n};\n"],"names":["useExpose","expose","exposed"],"mappings":"AAGO,MAAMA,EAAY,CACxBC,EACAC,KAEAD,EAAOC,GAEAA"}
package/es/vue/func.d.ts DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * 执行方法
3
- * @param fn 要执行的方法
4
- * @param args 参数
5
- */
6
- export declare const execFunction: <T = void>(fn: Function, ...args: any[]) => Promise<T>;
package/es/vue/func.mjs DELETED
@@ -1,2 +0,0 @@
1
- import{consoleError as r}from"../console/index.mjs";const e=async(e,...n)=>{if(!e)return Promise.resolve(void 0);if("AsyncFunction"!==e.constructor.name)return new Promise((t,c)=>{try{return t(e(...n))}catch(o){return r("execFunction",o),c(o)}});try{return await e(...n)}catch(t){return r("execFunction",t),Promise.reject(t)}};export{e as execFunction};
2
- //# sourceMappingURL=func.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"func.mjs","sources":["../../../../src/vue/func.ts"],"sourcesContent":["/**\n * 执行方法\n * @param fn 要执行的方法\n * @param args 参数\n */\n\nimport { consoleError } from \"../console\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport const execFunction = async <T = void>(fn: Function, ...args: any[]): Promise<T> => {\n\tif (!fn) return Promise.resolve(undefined);\n\t// 判断是否为异步方法\n\tif (fn.constructor.name === \"AsyncFunction\") {\n\t\t// 异步方法\n\t\ttry {\n\t\t\treturn await fn(...args);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t} else {\n\t\t// 同步方法\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst res = fn(...args);\n\t\t\t\treturn resolve(res);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"execFunction\", error as any);\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t});\n\t}\n};\n"],"names":["execFunction","async","fn","args","Promise","resolve","constructor","name","reject","error","consoleError"],"mappings":"oDASO,MAAMA,EAAeC,MAAiBC,KAAiBC,KAC7D,IAAKD,EAAI,OAAOE,QAAQC,aAAQ,GAEhC,GAA4B,kBAAxBH,EAAGI,YAAYC,KAUlB,OAAO,IAAIH,QAAQ,CAACC,EAASG,KAC5B,IAEC,OAAOH,EADKH,KAAMC,GAEnB,OAASM,GAER,OADAC,EAAa,eAAgBD,GACtBD,EAAOC,EACf,IAfD,IACC,aAAaP,KAAMC,EACpB,OAASM,GAER,OADAC,EAAa,eAAgBD,GACtBL,QAAQI,OAAOC,EACvB"}
package/es/vue/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export * from './emits';
2
- export * from './expose';
3
- export * from './func';
4
- export * from './install';
5
- export * from './props';
6
- export * from './slots';
7
- export * from './useRender';
8
- export * from './with';
package/es/vue/index.mjs DELETED
@@ -1,2 +0,0 @@
1
- import{useEmits as m}from"./emits.mjs";import{useExpose as o}from"./expose.mjs";import{execFunction as r}from"./func.mjs";import{withInstall as s,withInstallDirective as t,withNoopInstall as p}from"./install.mjs";import{definePropType as i,useProps as f}from"./props.mjs";import{makeSlots as j}from"./slots.mjs";import{useRender as e}from"./useRender.mjs";import{withDefineType as l}from"./with.mjs";export{i as definePropType,r as execFunction,j as makeSlots,m as useEmits,o as useExpose,f as useProps,e as useRender,l as withDefineType,s as withInstall,t as withInstallDirective,p as withNoopInstall};
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { Directive, Plugin } from 'vue';
2
- export type TSXWithInstall<T> = T & Plugin;
3
- export declare const withInstall: <T, E extends Record<string, any>>(main: T, extra?: E) => TSXWithInstall<T> & E;
4
- export declare const withNoopInstall: <T>(component: T) => TSXWithInstall<T>;
5
- export declare const withInstallDirective: <T extends Directive>(directive: T, name: string) => TSXWithInstall<T>;
@@ -1,2 +0,0 @@
1
- const t=()=>{},e=(t,e)=>{if(t.install=n=>{for(const o of[t,...Object.values(e??{})])n.component(o.name,o)},e)for(const[n,o]of Object.entries(e))t[n]=o;return t},n=e=>(e.install=t,e),o=(t,e)=>(t.install=n=>{n.directive(e,t)},t);export{e as withInstall,o as withInstallDirective,n as withNoopInstall};
2
- //# sourceMappingURL=install.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.mjs","sources":["../../../../src/vue/install.ts"],"sourcesContent":["import type { App, Directive, Plugin } from \"vue\";\n\nexport type TSXWithInstall<T> = T & Plugin;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst NOOP = (): void => {};\n\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E): TSXWithInstall<T> & E => {\n\t(main as TSXWithInstall<T>).install = (app): void => {\n\t\tfor (const comp of [main, ...Object.values(extra ?? {})]) {\n\t\t\tapp.component(comp.name, comp);\n\t\t}\n\t};\n\n\tif (extra) {\n\t\tfor (const [key, comp] of Object.entries(extra)) {\n\t\t\t(main as any)[key] = comp;\n\t\t}\n\t}\n\treturn main as TSXWithInstall<T> & E;\n};\n\nexport const withNoopInstall = <T>(component: T): TSXWithInstall<T> => {\n\t(component as TSXWithInstall<T>).install = NOOP;\n\n\treturn component as TSXWithInstall<T>;\n};\n\nexport const withInstallDirective = <T extends Directive>(directive: T, name: string): TSXWithInstall<T> => {\n\t(directive as TSXWithInstall<T>).install = (app: App): void => {\n\t\tapp.directive(name, directive);\n\t};\n\n\treturn directive as TSXWithInstall<T>;\n};\n"],"names":["NOOP","withInstall","main","extra","install","app","comp","Object","values","component","name","key","entries","withNoopInstall","withInstallDirective","directive"],"mappings":"AAKA,MAAMA,EAAO,OAEAC,EAAc,CAAmCC,EAASC,KAOtE,GANCD,EAA2BE,QAAWC,IACtC,IAAA,MAAWC,IAAQ,CAACJ,KAASK,OAAOC,OAAOL,GAAS,CAAA,IACnDE,EAAII,UAAUH,EAAKI,KAAMJ,IAIvBH,EACH,IAAA,MAAYQ,EAAKL,KAASC,OAAOK,QAAQT,GACvCD,EAAaS,GAAOL,EAGvB,OAAOJ,GAGKW,EAAsBJ,IACjCA,EAAgCL,QAAUJ,EAEpCS,GAGKK,EAAuB,CAAsBC,EAAcL,KACtEK,EAAgCX,QAAWC,IAC3CA,EAAIU,UAAUL,EAAMK,IAGdA"}
package/es/vue/props.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { ComputedRef, PropType } from 'vue';
2
- export declare const definePropType: <T>(val: any) => PropType<T>;
3
- /**
4
- * 构建 props
5
- * @param props props
6
- * @param rawProps 原生 props
7
- * @param ignoreRawProps 忽略 原生 props 的 key
8
- */
9
- export declare const useProps: <T extends Record<string, unknown>, RT extends Record<string, unknown>>(props: T, rawProps?: RT, ignoreRawProps?: (keyof RT)[]) => ComputedRef<Record<string, unknown>>;
package/es/vue/props.mjs DELETED
@@ -1,2 +0,0 @@
1
- import{computed as o}from"vue";import{omit as r,pick as t}from"lodash-unified";const e=o=>o,i=(e,i,m)=>o(e?()=>{const o=i?r(i,m??[]):{};return t(e,Object.keys(o))}:()=>({}));export{e as definePropType,i as useProps};
2
- //# sourceMappingURL=props.mjs.map
@@ -1 +0,0 @@
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":["definePropType","val","useProps","props","rawProps","ignoreRawProps","computed","omittedRawProps","omit","pick","Object","keys"],"mappings":"+EAIO,MAAMA,EAAqBC,GAA0BA,EAQ/CC,EAAW,CACvBC,EACAC,EACAC,IAIOC,EAFFH,EAEoC,KACxC,MAAMI,EAAkBH,EAAWI,EAAKJ,EAAUC,GAAkB,IAAM,CAAA,EAC1E,OAAOI,EAAKN,EAAOO,OAAOC,KAAKJ,KAJJ,KAAA,CAAO"}
package/es/vue/slots.d.ts DELETED
@@ -1,11 +0,0 @@
1
- import { SlotsType, VNode } from 'vue';
2
- type RawSlots = Record<string, unknown>;
3
- type VueSlots<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];
4
- export type MakeSlots<T extends RawSlots> = {
5
- [K in keyof T]: VueSlots<T[K]>;
6
- };
7
- /**
8
- * 构建 slots
9
- */
10
- export declare const makeSlots: <Slots extends RawSlots>() => SlotsType<Partial<MakeSlots<Slots>>>;
11
- export {};
package/es/vue/slots.mjs DELETED
@@ -1,2 +0,0 @@
1
- const t=()=>Object;export{t as makeSlots};
2
- //# sourceMappingURL=slots.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slots.mjs","sources":["../../../../src/vue/slots.ts"],"sourcesContent":["import type { SlotsType, VNode } from \"vue\";\n\ntype RawSlots = Record<string, unknown>;\n\ntype VueSlots<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];\n\nexport type MakeSlots<T extends RawSlots> = {\n\t[K in keyof T]: VueSlots<T[K]>;\n};\n\n/**\n * 构建 slots\n */\nexport const makeSlots = <Slots extends RawSlots>(): SlotsType<Partial<MakeSlots<Slots>>> => {\n\treturn Object as SlotsType<Partial<MakeSlots<Slots>>>;\n};\n"],"names":["makeSlots","Object"],"mappings":"AAaO,MAAMA,EAAY,IACjBC"}
@@ -1,6 +0,0 @@
1
- import { VNode } from 'vue';
2
- /**
3
- * 使用渲染
4
- * @description 为了解决使用 TSX 语法返回渲染函数,状态不会出现在 vue.js devtools 中
5
- */
6
- export declare const useRender: (render: () => VNode) => void;
@@ -1,2 +0,0 @@
1
- import{getCurrentInstance as e}from"vue";import{FastError as r}from"../error/index.mjs";const o=o=>{const n=e();if(!n)throw new r("useRender must be called from inside a setup function");n.render=o};export{o as useRender};
2
- //# sourceMappingURL=useRender.mjs.map
@@ -1 +0,0 @@
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":["useRender","render","vm","getCurrentInstance","FastError"],"mappings":"wFAQO,MAAMA,EAAaC,IACzB,MAAMC,EAAKC,IACX,IAAKD,EACJ,MAAM,IAAIE,EAAU,yDAErBF,EAAGD,OAASA"}
package/es/vue/with.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * 定义类型数据
3
- * @description 传入什么就返回什么,用来定义reactive或其他对象的响应式数据
4
- */
5
- export declare const withDefineType: <T>(data?: T) => T;
package/es/vue/with.mjs DELETED
@@ -1,2 +0,0 @@
1
- const o=(o=void 0)=>o;export{o as withDefineType};
2
- //# sourceMappingURL=with.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"with.mjs","sources":["../../../../src/vue/with.ts"],"sourcesContent":["/**\n * 定义类型数据\n * @description 传入什么就返回什么,用来定义reactive或其他对象的响应式数据\n */\nexport const withDefineType = <T>(data: T = undefined): T => {\n\treturn data;\n};\n"],"names":["withDefineType","data"],"mappings":"AAIO,MAAMA,EAAiB,CAAIC,OAAU,IACpCA"}
@@ -1,19 +0,0 @@
1
- /**
2
- * 数据工具类
3
- */
4
- export declare const arrayUtil: {
5
- /**
6
- * 是否存在重复值
7
- * @param arr 数组
8
- * @param prop 属性
9
- * @returns
10
- */
11
- hasDuplicateProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean;
12
- /**
13
- * 是否存在非重复值
14
- * @param arr 数组
15
- * @param prop 属性
16
- * @returns
17
- */
18
- hasDifferentProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean;
19
- };
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r={hasDuplicateProperty(r,t){if(Array.isArray(t)){const e=new Set;for(const n of r){const r=JSON.stringify(t.map(r=>n[r]));if(e.has(r))return!0;e.add(r)}return!1}{const e=new Set;for(const n of r){const r=n[t];if(e.has(r))return!0;e.add(r)}return!1}},hasDifferentProperty(r,t){if(r.length<=1)return!1;if(Array.isArray(t)){const e=JSON.stringify(t.map(t=>r[0][t]));for(let n=1;n<r.length;n++){if(JSON.stringify(t.map(t=>r[n][t]))!==e)return!0}}else{const e=r[0][t];for(let n=1;n<r.length;n++)if(r[n][t]!==e)return!0}return!1}};exports.arrayUtil=r;
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/array/index.ts"],"sourcesContent":["/**\n * 数据工具类\n */\nexport const arrayUtil = {\n\t/**\n\t * 是否存在重复值\n\t * @param arr 数组\n\t * @param prop 属性\n\t * @returns\n\t */\n\thasDuplicateProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean {\n\t\tif (Array.isArray(prop)) {\n\t\t\tconst seen = new Set<string>();\n\t\t\tfor (const obj of arr) {\n\t\t\t\tconst key = JSON.stringify(prop.map((p) => obj[p]));\n\t\t\t\tif (seen.has(key)) return true;\n\t\t\t\tseen.add(key);\n\t\t\t}\n\t\t\treturn false;\n\t\t} else {\n\t\t\tconst seen = new Set<any>();\n\t\t\tfor (const obj of arr) {\n\t\t\t\tconst value = obj[prop];\n\t\t\t\tif (seen.has(value)) return true;\n\t\t\t\tseen.add(value);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\t/**\n\t * 是否存在非重复值\n\t * @param arr 数组\n\t * @param prop 属性\n\t * @returns\n\t */\n\thasDifferentProperty<T>(arr: T[], prop: keyof T | (keyof T)[]): boolean {\n\t\tif (arr.length <= 1) return false;\n\n\t\tif (Array.isArray(prop)) {\n\t\t\tconst firstKey = JSON.stringify(prop.map((p) => arr[0][p]));\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tconst currentKey = JSON.stringify(prop.map((p) => arr[i][p]));\n\t\t\t\tif (currentKey !== firstKey) return true;\n\t\t\t}\n\t\t} else {\n\t\t\tconst firstValue = arr[0][prop];\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tif (arr[i][prop] !== firstValue) return true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n};\n"],"names":["arrayUtil","hasDuplicateProperty","arr","prop","Array","isArray","seen","Set","obj","key","JSON","stringify","map","p","has","add","value","hasDifferentProperty","length","firstKey","i","firstValue"],"mappings":"gFAGO,MAAMA,EAAY,CAOxB,oBAAAC,CAAwBC,EAAUC,GACjC,GAAIC,MAAMC,QAAQF,GAAO,CACxB,MAAMG,MAAWC,IACjB,IAAA,MAAWC,KAAON,EAAK,CACtB,MAAMO,EAAMC,KAAKC,UAAUR,EAAKS,IAAKC,GAAML,EAAIK,KAC/C,GAAIP,EAAKQ,IAAIL,GAAM,OAAO,EAC1BH,EAAKS,IAAIN,EACV,CACA,OAAO,CACR,CAAO,CACN,MAAMH,MAAWC,IACjB,IAAA,MAAWC,KAAON,EAAK,CACtB,MAAMc,EAAQR,EAAIL,GAClB,GAAIG,EAAKQ,IAAIE,GAAQ,OAAO,EAC5BV,EAAKS,IAAIC,EACV,CACA,OAAO,CACR,CACD,EAOA,oBAAAC,CAAwBf,EAAUC,GACjC,GAAID,EAAIgB,QAAU,EAAG,OAAO,EAE5B,GAAId,MAAMC,QAAQF,GAAO,CACxB,MAAMgB,EAAWT,KAAKC,UAAUR,EAAKS,IAAKC,GAAMX,EAAI,GAAGW,KACvD,IAAA,IAASO,EAAI,EAAGA,EAAIlB,EAAIgB,OAAQE,IAAK,CAEpC,GADmBV,KAAKC,UAAUR,EAAKS,IAAKC,GAAMX,EAAIkB,GAAGP,OACtCM,EAAU,OAAO,CACrC,CACD,KAAO,CACN,MAAME,EAAanB,EAAI,GAAGC,GAC1B,IAAA,IAASiB,EAAI,EAAGA,EAAIlB,EAAIgB,OAAQE,IAC/B,GAAIlB,EAAIkB,GAAGjB,KAAUkB,EAAY,OAAO,CAE1C,CACA,OAAO,CACR"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Base64工具类
3
- */
4
- export declare const base64Util: {
5
- /**
6
- * 将字符串编码为Base64格式
7
- */
8
- bota(string: string): string;
9
- /**
10
- * 将Base64编码的字符串解码回其原始格式。
11
- */
12
- atob(string: string): string;
13
- /**
14
- * 字符串ToBase64
15
- */
16
- toBase64(str: string, prefixStrLength?: number): string;
17
- /**
18
- * Base64转字符串
19
- */
20
- base64ToStr(str: string, prefixStrLength?: number): string;
21
- };
@@ -1,2 +0,0 @@
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
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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,33 +0,0 @@
1
- /**
2
- * 点击工具类
3
- */
4
- export declare const clickUtil: {
5
- /**
6
- * 防抖
7
- * @param fn - 执行函数
8
- * @param delay - 延时毫秒
9
- * @returns 返回一个新的防抖函数
10
- */
11
- debounce(fn: () => void, delay?: number): void;
12
- /**
13
- * 异步防抖
14
- * @param fn - 执行函数
15
- * @param delay - 延时毫秒
16
- * @returns 返回一个新的防抖函数
17
- */
18
- debounceAsync(fn: () => Promise<void>, delay?: number): Promise<void>;
19
- /**
20
- * 节流
21
- * @param fn - 执行函数
22
- * @param delay - 延时毫秒
23
- * @returns 返回一个新的节流函数
24
- */
25
- throttle(fn: () => void, delay?: number): void;
26
- /**
27
- * 异步节流
28
- * @param fn - 执行函数
29
- * @param delay - 延时毫秒
30
- * @returns 返回一个新的节流函数
31
- */
32
- throttleAsync(fn: () => Promise<void>, delay?: number): Promise<void>;
33
- };
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let e=null,t=!1;const o={debounce(t,o=500){e&&clearTimeout(e),e=setTimeout(()=>{t()},o)},debounceAsync:async(t,o=500)=>new Promise((c,s)=>{e&&clearTimeout(e),e=setTimeout(async()=>{try{await t(),c()}catch(e){s(e)}},o)}),throttle(e,o=500){t||(t=!0,e(),setTimeout(()=>{t=!1},o))},throttleAsync:async(e,o=500)=>new Promise((c,s)=>{t||(t=!0,e().then(()=>{c()}).catch(e=>{s(e)}).finally(()=>{setTimeout(()=>{t=!1},o)}))})};exports.clickUtil=o;
2
- //# sourceMappingURL=index.js.map