@fast-china/utils 1.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.
package/dist/index.js ADDED
@@ -0,0 +1,1264 @@
1
+ import { isNil, isString, isNumber, omit, pick } from 'lodash-unified';
2
+ import { mode, MD5, enc, SHA1, AES } from 'crypto-js';
3
+ import { reactive, computed, getCurrentInstance } from 'vue';
4
+
5
+ // src/base64/index.ts
6
+ var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
7
+ var b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
8
+ var base64PwdDic = [
9
+ { index: 977, randomIndex: 188 },
10
+ { index: 926, randomIndex: 201 },
11
+ { index: 851, randomIndex: 225 },
12
+ { index: 700, randomIndex: 255 },
13
+ { index: 600, randomIndex: 268 },
14
+ { index: 500, randomIndex: 277 },
15
+ { index: 400, randomIndex: 288 },
16
+ { index: 330, randomIndex: 327 },
17
+ { index: 300, randomIndex: 180 },
18
+ { index: 200, randomIndex: 178 },
19
+ { index: 100, randomIndex: 124 },
20
+ // 100 以内字典
21
+ { index: 98, randomIndex: 95 },
22
+ { index: 92, randomIndex: 90 },
23
+ { index: 91, randomIndex: 87 },
24
+ { index: 88, randomIndex: 84 },
25
+ { index: 82, randomIndex: 79 },
26
+ { index: 78, randomIndex: 71 },
27
+ { index: 72, randomIndex: 69 },
28
+ { index: 68, randomIndex: 66 },
29
+ { index: 59, randomIndex: 55 },
30
+ { index: 48, randomIndex: 43 },
31
+ { index: 42, randomIndex: 37 },
32
+ { index: 36, randomIndex: 30 },
33
+ { index: 33, randomIndex: 27 },
34
+ { index: 24, randomIndex: 20 },
35
+ { index: 23, randomIndex: 18 },
36
+ { index: 21, randomIndex: 16 },
37
+ { index: 17, randomIndex: 14 },
38
+ { index: 13, randomIndex: 9 },
39
+ { index: 7, randomIndex: 4 },
40
+ { index: 5, randomIndex: 3 },
41
+ { index: 2, randomIndex: 1 }
42
+ ];
43
+ var randomPrefixStrLength = 6;
44
+ var randomStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
45
+ function insertRandomStrToBase64Str(base64Str) {
46
+ let strResult = base64Str;
47
+ const items = base64PwdDic.sort((a, b) => {
48
+ return b.index - a.index;
49
+ });
50
+ items.forEach((item) => {
51
+ if (item.index < base64Str.length) {
52
+ const randomChar = base64Str[item.randomIndex];
53
+ strResult = strResult.slice(0, item.index) + randomChar + strResult.slice(item.index);
54
+ }
55
+ });
56
+ return strResult;
57
+ }
58
+ function removeBase64StrRandomStr(base64Str) {
59
+ const items = base64PwdDic.sort((a, b) => {
60
+ return a.index - b.index;
61
+ });
62
+ let strResult = base64Str;
63
+ items.forEach((item) => {
64
+ if (item.index < base64Str.length) {
65
+ strResult = strResult.slice(0, item.index) + strResult.slice(item.index + 1);
66
+ }
67
+ });
68
+ return strResult;
69
+ }
70
+ function getRandomStr(str = randomStr, prefixStrLength = randomPrefixStrLength) {
71
+ let result = "";
72
+ for (let i = 0; i < prefixStrLength; i++) {
73
+ const randomInt = Math.ceil(Math.random() * (str.length - 1));
74
+ const randomChar = str[randomInt];
75
+ result += randomChar;
76
+ }
77
+ return result;
78
+ }
79
+ var base64Util = {
80
+ bota(string) {
81
+ string = String(string);
82
+ let bitmap, a, b, c, result = "", i = 0, rest = string.length % 3;
83
+ for (; i < string.length; ) {
84
+ if ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)
85
+ throw new TypeError(
86
+ "Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range."
87
+ );
88
+ bitmap = a << 16 | b << 8 | c;
89
+ result += b64.charAt(bitmap >> 18 & 63) + b64.charAt(bitmap >> 12 & 63) + b64.charAt(bitmap >> 6 & 63) + b64.charAt(bitmap & 63);
90
+ }
91
+ return rest ? result.slice(0, rest - 3) + "===".substring(rest) : result;
92
+ },
93
+ atob(string) {
94
+ string = String(string).replace(/[\t\n\f\r ]+/g, "");
95
+ if (!b64re.test(string)) throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
96
+ string += "==".slice(2 - (string.length & 3));
97
+ let bitmap, result = "", r1, r2, i = 0;
98
+ for (; i < string.length; ) {
99
+ bitmap = b64.indexOf(string.charAt(i++)) << 18 | b64.indexOf(string.charAt(i++)) << 12 | (r1 = b64.indexOf(string.charAt(i++))) << 6 | (r2 = b64.indexOf(string.charAt(i++)));
100
+ result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);
101
+ }
102
+ return result;
103
+ },
104
+ /**
105
+ * 字符串ToBase64
106
+ */
107
+ toBase64(str, prefixStrLength = randomPrefixStrLength) {
108
+ if (str.length === 0) {
109
+ return "";
110
+ }
111
+ const randomPrefixStr = getRandomStr();
112
+ let base64 = base64Util.bota(encodeURIComponent(str));
113
+ if (prefixStrLength !== 0) {
114
+ base64 = insertRandomStrToBase64Str(base64);
115
+ }
116
+ return randomPrefixStr + base64;
117
+ },
118
+ /**
119
+ * Base64转字符串
120
+ */
121
+ base64ToStr(str, prefixStrLength = randomPrefixStrLength) {
122
+ let result = str;
123
+ if (str.length === 0) {
124
+ return "";
125
+ }
126
+ let input = str.slice(prefixStrLength);
127
+ if (prefixStrLength !== 0) {
128
+ input = removeBase64StrRandomStr(input);
129
+ }
130
+ result = base64Util.atob(input);
131
+ return decodeURIComponent(result);
132
+ }
133
+ };
134
+
135
+ // src/click/index.ts
136
+ var _debounceTimeout = null;
137
+ var _throttleRunning = false;
138
+ var clickUtil = {
139
+ /**
140
+ * 防抖
141
+ * @param fn - 执行函数
142
+ * @param delay - 延时毫秒
143
+ * @returns 返回一个新的防抖函数
144
+ */
145
+ debounce(fn, delay = 500) {
146
+ if (_debounceTimeout) {
147
+ clearTimeout(_debounceTimeout);
148
+ }
149
+ _debounceTimeout = setTimeout(() => {
150
+ fn();
151
+ }, delay);
152
+ },
153
+ /**
154
+ * 异步防抖
155
+ * @param fn - 执行函数
156
+ * @param delay - 延时毫秒
157
+ * @returns 返回一个新的防抖函数
158
+ */
159
+ async debounceAsync(fn, delay = 500) {
160
+ return new Promise((resolve, reject) => {
161
+ if (_debounceTimeout) {
162
+ clearTimeout(_debounceTimeout);
163
+ }
164
+ _debounceTimeout = setTimeout(async () => {
165
+ try {
166
+ await fn();
167
+ resolve();
168
+ } catch (error) {
169
+ reject(error);
170
+ }
171
+ }, delay);
172
+ });
173
+ },
174
+ /**
175
+ * 节流
176
+ * @param fn - 执行函数
177
+ * @param delay - 延时毫秒
178
+ * @returns 返回一个新的节流函数
179
+ */
180
+ throttle(fn, delay = 500) {
181
+ if (_throttleRunning) {
182
+ return;
183
+ }
184
+ _throttleRunning = true;
185
+ fn();
186
+ setTimeout(() => {
187
+ _throttleRunning = false;
188
+ }, delay);
189
+ },
190
+ /**
191
+ * 异步节流
192
+ * @param fn - 执行函数
193
+ * @param delay - 延时毫秒
194
+ * @returns 返回一个新的节流函数
195
+ */
196
+ async throttleAsync(fn, delay = 500) {
197
+ return new Promise((resolve, reject) => {
198
+ if (_throttleRunning) {
199
+ return;
200
+ }
201
+ _throttleRunning = true;
202
+ fn().then(() => {
203
+ resolve();
204
+ }).catch((error) => {
205
+ reject(error);
206
+ }).finally(() => {
207
+ setTimeout(() => {
208
+ _throttleRunning = false;
209
+ }, delay);
210
+ });
211
+ });
212
+ }
213
+ };
214
+
215
+ // src/color/index.ts
216
+ var colorUtil = {
217
+ /**
218
+ * hex颜色转rgb颜色
219
+ * @param str 颜色值字符串
220
+ * @returns 返回处理后的颜色值
221
+ */
222
+ hexToRgb(str) {
223
+ let hex = "";
224
+ const reg = /^#?[0-9A-Fa-f]{6}$/;
225
+ if (!reg.test(str)) throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex");
226
+ str = str.replace("#", "");
227
+ hex = str.match(/../g);
228
+ for (let i = 0; i < 3; i++) hex[i] = parseInt(hex[i], 16);
229
+ return hex;
230
+ },
231
+ /**
232
+ * rgb颜色转Hex颜色
233
+ * @param r 代表红色
234
+ * @param g 代表绿色
235
+ * @param b 代表蓝色
236
+ * @returns 返回处理后的颜色值
237
+ */
238
+ rgbToHex(r, g, b) {
239
+ const reg = /^\d{1,3}$/;
240
+ if (!reg.test(r) || !reg.test(g) || !reg.test(b)) throw new Error("\u8F93\u5165\u9519\u8BEF\u7684rgb\u989C\u8272\u503C");
241
+ const hex = [r.toString(16), g.toString(16), b.toString(16)];
242
+ for (let i = 0; i < 3; i++) if (hex[i].length === 1) hex[i] = `0${hex[i]}`;
243
+ return `#${hex.join("")}`;
244
+ },
245
+ /**
246
+ * 加深颜色值
247
+ * @param color 颜色值字符串
248
+ * @param level 加深的程度,限0-1之间
249
+ * @returns 返回处理后的颜色值
250
+ */
251
+ getDarkColor(color, level) {
252
+ const reg = /^#?[0-9A-Fa-f]{6}$/;
253
+ if (!reg.test(color)) throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex\u989C\u8272\u503C");
254
+ const rgb = this.hexToRgb(color);
255
+ for (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));
256
+ return this.rgbToHex(rgb[0], rgb[1], rgb[2]);
257
+ },
258
+ /**
259
+ * 变浅颜色值
260
+ * @param color 颜色值字符串
261
+ * @param level 加深的程度,限0-1之间
262
+ * @returns 返回处理后的颜色值
263
+ */
264
+ getLightColor(color, level) {
265
+ const reg = /^#?[0-9A-Fa-f]{6}$/;
266
+ if (!reg.test(color)) throw new Error("\u8F93\u5165\u9519\u8BEF\u7684hex\u989C\u8272\u503C");
267
+ const rgb = this.hexToRgb(color);
268
+ for (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));
269
+ return this.rgbToHex(rgb[0], rgb[1], rgb[2]);
270
+ }
271
+ };
272
+
273
+ // src/error/index.ts
274
+ var FastError = class extends Error {
275
+ constructor(m) {
276
+ super(m);
277
+ this.name = "FastError";
278
+ }
279
+ };
280
+
281
+ // src/console/index.ts
282
+ var consoleLog = (name, message, error) => {
283
+ if (error) {
284
+ console.log(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`, error);
285
+ } else {
286
+ console.log(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`);
287
+ }
288
+ };
289
+ var consoleWarn = (name, message, error) => {
290
+ if (error) {
291
+ console.warn(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`, error);
292
+ } else {
293
+ console.warn(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`);
294
+ }
295
+ };
296
+ var consoleDebug = (name, message, error) => {
297
+ if (error) {
298
+ console.debug(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`, error);
299
+ } else {
300
+ console.debug(`[Fast-Log-${name}]${message ? ` ${message}` : ""}`);
301
+ }
302
+ };
303
+ var consoleError = (name, message) => {
304
+ if (isNil(message)) {
305
+ return;
306
+ }
307
+ if (isString(message)) {
308
+ console.error(new FastError(`[Fast-${name}] ${message}`));
309
+ } else {
310
+ console.error(`[Fast-Error-${name}]`, message);
311
+ }
312
+ };
313
+ var throwError = (name, message) => {
314
+ throw new FastError(`[Fast-${name}] ${message}`);
315
+ };
316
+ var cryptoUtil = {
317
+ /**
318
+ * AES
319
+ */
320
+ aes: {
321
+ /**
322
+ * AES加密
323
+ * @param dataStr 要加密的字符串
324
+ * @param key 用于加密的密钥
325
+ * @param vector 用于加密的向量(IV)
326
+ * @param cipherMode 加密模式,默认为CBC模式
327
+ */
328
+ encrypt(dataStr, key, vector, cipherMode = mode.CBC) {
329
+ if (!dataStr) {
330
+ return dataStr;
331
+ }
332
+ if (key.length < 32) {
333
+ key = key.padEnd(32, "f");
334
+ }
335
+ if (key.length > 32) {
336
+ key = key.substring(0, 32);
337
+ }
338
+ if (vector.length < 16) {
339
+ vector = vector.padEnd(16, "f");
340
+ }
341
+ if (vector.length > 16) {
342
+ vector = vector.substring(0, 16);
343
+ }
344
+ return AES.encrypt(dataStr, enc.Utf8.parse(key), {
345
+ iv: enc.Utf8.parse(vector),
346
+ mode: cipherMode
347
+ }).toString();
348
+ },
349
+ /**
350
+ * AES解密
351
+ * @param dataStr 要解密的Base64编码字符串
352
+ * @param key 用于解密的密钥
353
+ * @param vector 用于解密的向量(IV)
354
+ * @param cipherMode 解密模式,默认为CBC模式
355
+ */
356
+ decrypt(dataStr, key, vector, cipherMode = mode.CBC) {
357
+ if (!dataStr) {
358
+ return null;
359
+ }
360
+ if (key.length < 32) {
361
+ key = key.padEnd(32, "f");
362
+ }
363
+ if (key.length > 32) {
364
+ key = key.substring(0, 32);
365
+ }
366
+ if (vector.length < 16) {
367
+ vector = vector.padEnd(16, "f");
368
+ }
369
+ if (vector.length > 16) {
370
+ vector = vector.substring(0, 16);
371
+ }
372
+ const resAESData = AES.decrypt(dataStr, enc.Utf8.parse(key), {
373
+ iv: enc.Utf8.parse(vector),
374
+ mode: cipherMode
375
+ });
376
+ try {
377
+ const result = resAESData.toString(enc.Utf8);
378
+ return JSON.parse(result);
379
+ } catch (error) {
380
+ consoleError("AESCrypto", error);
381
+ return null;
382
+ }
383
+ }
384
+ },
385
+ /**
386
+ * SHA1
387
+ */
388
+ sha1: {
389
+ /**
390
+ * SHA1加密
391
+ * @param dataStr 要加密的字符串
392
+ */
393
+ encrypt(dataStr) {
394
+ if (!dataStr) {
395
+ return dataStr;
396
+ }
397
+ return SHA1(dataStr).toString(enc.Hex).toUpperCase();
398
+ }
399
+ },
400
+ /**
401
+ * MD5
402
+ */
403
+ MD5: {
404
+ /**
405
+ * MD5加密
406
+ * @param dataStr 要加密的字符串
407
+ */
408
+ encrypt(dataStr) {
409
+ if (!dataStr) {
410
+ return dataStr;
411
+ }
412
+ return MD5(dataStr).toString(enc.Hex).toUpperCase();
413
+ }
414
+ }
415
+ };
416
+
417
+ // src/date/index.ts
418
+ var dateUtil = {
419
+ /**
420
+ * 根据当前时间生成问候语
421
+ */
422
+ getGreet() {
423
+ const now = /* @__PURE__ */ new Date();
424
+ const hour = now.getHours();
425
+ let greet = "";
426
+ if (hour < 5) {
427
+ greet = "\u591C\u6DF1\u4E86\uFF0C\u6CE8\u610F\u8EAB\u4F53\u54E6\uFF01";
428
+ } else if (hour < 9) {
429
+ greet = "\u65E9\u4E0A\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01";
430
+ } else if (hour < 12) {
431
+ greet = "\u4E0A\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01";
432
+ } else if (hour < 14) {
433
+ greet = "\u4E2D\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01";
434
+ } else if (hour < 18) {
435
+ greet = "\u4E0B\u5348\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01";
436
+ } else if (hour < 24) {
437
+ greet = "\u665A\u4E0A\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01";
438
+ } else {
439
+ greet = "\u60A8\u597D\uFF01\u6B22\u8FCE\u56DE\u6765\uFF01";
440
+ }
441
+ return greet;
442
+ },
443
+ /**
444
+ * 时间处理翻译
445
+ */
446
+ dateTimeFix(date) {
447
+ if (date !== null && date !== void 0 && date) {
448
+ if (typeof date === "string") {
449
+ date = new Date(date);
450
+ }
451
+ let timestamp = date.getTime();
452
+ if (timestamp.toString().length < 13) {
453
+ const arrTimestamp = timestamp.toString().split("");
454
+ for (let start = 0; start < 13; start++) {
455
+ if (!arrTimestamp[start]) {
456
+ arrTimestamp[start] = "0";
457
+ }
458
+ }
459
+ timestamp = parseInt(arrTimestamp.join(""));
460
+ }
461
+ const minute = 1e3 * 60;
462
+ const hour = minute * 60;
463
+ const day = hour * 24;
464
+ const month = day * 30;
465
+ const curTime = (/* @__PURE__ */ new Date()).getTime();
466
+ const diffValue = curTime - timestamp;
467
+ const monthC = diffValue / month;
468
+ const weekC = diffValue / (7 * day);
469
+ const dayC = diffValue / day;
470
+ const hourC = diffValue / hour;
471
+ const minC = diffValue / minute;
472
+ if (diffValue < 0) {
473
+ const monthC1 = Math.abs(monthC);
474
+ const weekC1 = Math.abs(weekC);
475
+ const dayC1 = Math.abs(dayC);
476
+ const hourC1 = Math.abs(hourC);
477
+ const minC1 = Math.abs(minC);
478
+ if (monthC1 > 12) {
479
+ return `${parseInt(`${monthC1 / 12}`)}\u5E74\u540E`;
480
+ } else if (monthC1 >= 6) {
481
+ return "\u534A\u5E74\u540E";
482
+ } else if (monthC1 >= 1) {
483
+ return `${parseInt(`${monthC1}`)}\u6708\u540E`;
484
+ } else if (weekC1 > 2) {
485
+ return "\u534A\u6708\u540E";
486
+ } else if (weekC1 >= 1) {
487
+ return `${parseInt(`${weekC1}`)}\u5468\u540E`;
488
+ } else if (dayC1 >= 1) {
489
+ return `${parseInt(`${dayC1}`)}\u5929\u540E`;
490
+ } else if (hourC1 >= 1) {
491
+ return `${parseInt(`${hourC1}`)}\u5C0F\u65F6\u540E`;
492
+ } else if (minC1 >= 1) {
493
+ return `${parseInt(`${minC1}`)}\u5206\u949F\u540E`;
494
+ }
495
+ return "\u521A\u521A";
496
+ }
497
+ if (monthC > 12) {
498
+ return `${parseInt(`${monthC / 12}`)}\u5E74\u524D`;
499
+ } else if (monthC >= 6) {
500
+ return "\u534A\u5E74\u524D";
501
+ } else if (monthC >= 1) {
502
+ return `${parseInt(`${monthC}`)}\u6708\u524D`;
503
+ } else if (weekC > 2) {
504
+ return "\u534A\u6708\u524D";
505
+ } else if (weekC >= 1) {
506
+ return `${parseInt(`${weekC}`)}\u5468\u524D`;
507
+ } else if (dayC >= 1) {
508
+ return `${parseInt(`${dayC}`)}\u5929\u524D`;
509
+ } else if (hourC >= 1) {
510
+ return `${parseInt(`${hourC}`)}\u5C0F\u65F6\u524D`;
511
+ } else if (minC >= 1) {
512
+ return `${parseInt(`${minC}`)}\u5206\u949F\u524D`;
513
+ }
514
+ return "\u521A\u521A";
515
+ } else {
516
+ return "";
517
+ }
518
+ },
519
+ getDefaultTime() {
520
+ const end = /* @__PURE__ */ new Date();
521
+ const start = /* @__PURE__ */ new Date();
522
+ start.setMonth(start.getMonth() - 1);
523
+ start.setHours(0, 0, 0);
524
+ end.setHours(23, 59, 59);
525
+ return [start, end];
526
+ },
527
+ getSimpleTime() {
528
+ const start = /* @__PURE__ */ new Date();
529
+ start.setHours(0, 0, 0);
530
+ return start;
531
+ },
532
+ getSimpleShortcuts() {
533
+ return [
534
+ {
535
+ text: "\u4ECA\u5929",
536
+ value: () => {
537
+ const date = /* @__PURE__ */ new Date();
538
+ date.setHours(0, 0, 0);
539
+ return date;
540
+ }
541
+ },
542
+ {
543
+ text: "\u6628\u5929",
544
+ value: () => {
545
+ const date = /* @__PURE__ */ new Date();
546
+ date.setDate(date.getDate() - 1);
547
+ date.setHours(0, 0, 0);
548
+ return date;
549
+ }
550
+ },
551
+ {
552
+ text: "\u4E00\u5468\u524D",
553
+ value: () => {
554
+ const date = /* @__PURE__ */ new Date();
555
+ date.setDate(date.getDate() - 7);
556
+ date.setHours(0, 0, 0);
557
+ return date;
558
+ }
559
+ },
560
+ {
561
+ text: "\u4E00\u6708\u524D",
562
+ value: () => {
563
+ const date = /* @__PURE__ */ new Date();
564
+ date.setMonth(date.getMonth() - 1);
565
+ date.setHours(0, 0, 0);
566
+ return date;
567
+ }
568
+ },
569
+ {
570
+ text: "\u4E00\u5E74\u524D",
571
+ value: () => {
572
+ const date = /* @__PURE__ */ new Date();
573
+ date.setFullYear(date.getFullYear() - 1);
574
+ date.setHours(0, 0, 0);
575
+ return date;
576
+ }
577
+ }
578
+ ];
579
+ },
580
+ getShortcuts() {
581
+ return [
582
+ {
583
+ text: "\u8FD11\u5929",
584
+ value: () => {
585
+ const end = /* @__PURE__ */ new Date();
586
+ const start = /* @__PURE__ */ new Date();
587
+ start.setDate(start.getDate() - 1);
588
+ start.setHours(0, 0, 0);
589
+ end.setHours(23, 59, 59);
590
+ return [start, end];
591
+ }
592
+ },
593
+ {
594
+ text: "\u8FD13\u5929",
595
+ value: () => {
596
+ const end = /* @__PURE__ */ new Date();
597
+ const start = /* @__PURE__ */ new Date();
598
+ start.setDate(start.getDate() - 3);
599
+ start.setHours(0, 0, 0);
600
+ end.setHours(23, 59, 59);
601
+ return [start, end];
602
+ }
603
+ },
604
+ {
605
+ text: "\u8FD11\u5468",
606
+ value: () => {
607
+ const end = /* @__PURE__ */ new Date();
608
+ const start = /* @__PURE__ */ new Date();
609
+ start.setDate(start.getDate() - 7);
610
+ start.setHours(0, 0, 0);
611
+ end.setHours(23, 59, 59);
612
+ return [start, end];
613
+ }
614
+ },
615
+ {
616
+ text: "\u8FD11\u6708",
617
+ value: () => {
618
+ const end = /* @__PURE__ */ new Date();
619
+ const start = /* @__PURE__ */ new Date();
620
+ start.setMonth(start.getMonth() - 1);
621
+ start.setHours(0, 0, 0);
622
+ end.setHours(23, 59, 59);
623
+ return [start, end];
624
+ }
625
+ },
626
+ {
627
+ text: "\u8FD13\u6708",
628
+ value: () => {
629
+ const end = /* @__PURE__ */ new Date();
630
+ const start = /* @__PURE__ */ new Date();
631
+ start.setMonth(start.getMonth() - 3);
632
+ start.setHours(0, 0, 0);
633
+ end.setHours(23, 59, 59);
634
+ return [start, end];
635
+ }
636
+ },
637
+ {
638
+ text: "\u8FD16\u6708",
639
+ value: () => {
640
+ const end = /* @__PURE__ */ new Date();
641
+ const start = /* @__PURE__ */ new Date();
642
+ start.setMonth(start.getMonth() - 6);
643
+ start.setHours(0, 0, 0);
644
+ end.setHours(23, 59, 59);
645
+ return [start, end];
646
+ }
647
+ },
648
+ {
649
+ text: "\u8FD11\u5E74",
650
+ value: () => {
651
+ const end = /* @__PURE__ */ new Date();
652
+ const start = /* @__PURE__ */ new Date();
653
+ start.setFullYear(start.getFullYear() - 1);
654
+ start.setHours(0, 0, 0);
655
+ end.setHours(23, 59, 59);
656
+ return [start, end];
657
+ }
658
+ }
659
+ ];
660
+ },
661
+ getDisabledDate(time) {
662
+ return time.getTime() > Date.now();
663
+ }
664
+ };
665
+ var isStringNumber = (val) => {
666
+ if (!isString(val)) {
667
+ return false;
668
+ }
669
+ return !Number.isNaN(Number(val));
670
+ };
671
+ var addUnit = (value, defaultUnit = "px") => {
672
+ if (!value) return "";
673
+ if (isNumber(value) || isStringNumber(value)) {
674
+ return `${value}${defaultUnit}`;
675
+ } else if (isString(value)) {
676
+ return value;
677
+ }
678
+ consoleWarn("document", "binding value must be a string or number");
679
+ };
680
+
681
+ // src/object/index.ts
682
+ var objectUtil = {
683
+ /**
684
+ * 对象URL参数化
685
+ */
686
+ objectToQueryString(obj) {
687
+ let params = "";
688
+ for (const key in obj) {
689
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
690
+ if (params !== "") {
691
+ params += "&";
692
+ }
693
+ params += `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`;
694
+ }
695
+ }
696
+ return params;
697
+ },
698
+ /**
699
+ * 是否存在重复值
700
+ */
701
+ hasDuplicateProperty(arr, prop) {
702
+ const values = arr.map((obj) => obj[prop]);
703
+ const uniqueValues = new Set(values);
704
+ return values.length !== uniqueValues.size;
705
+ },
706
+ /**
707
+ * 是否存在非重复值
708
+ */
709
+ hasDifferentProperty(arr, prop) {
710
+ const valueSet = /* @__PURE__ */ new Set();
711
+ for (const obj of arr) {
712
+ valueSet.add(obj[prop]);
713
+ if (valueSet.size > 1) {
714
+ return true;
715
+ }
716
+ }
717
+ return false;
718
+ },
719
+ /**
720
+ * 时间处理翻译
721
+ */
722
+ dateTimeFix(date) {
723
+ if (date !== null && date !== void 0 && date) {
724
+ if (typeof date === "string") {
725
+ date = new Date(date);
726
+ }
727
+ let timestamp = date.getTime();
728
+ if (timestamp.toString().length < 13) {
729
+ const arrTimestamp = timestamp.toString().split("");
730
+ for (let start = 0; start < 13; start++) {
731
+ if (!arrTimestamp[start]) {
732
+ arrTimestamp[start] = "0";
733
+ }
734
+ }
735
+ timestamp = parseInt(arrTimestamp.join(""));
736
+ }
737
+ const minute = 1e3 * 60;
738
+ const hour = minute * 60;
739
+ const day = hour * 24;
740
+ const month = day * 30;
741
+ const curTime = (/* @__PURE__ */ new Date()).getTime();
742
+ const diffValue = curTime - timestamp;
743
+ const monthC = diffValue / month;
744
+ const weekC = diffValue / (7 * day);
745
+ const dayC = diffValue / day;
746
+ const hourC = diffValue / hour;
747
+ const minC = diffValue / minute;
748
+ if (diffValue < 0) {
749
+ const monthC1 = Math.abs(monthC);
750
+ const weekC1 = Math.abs(weekC);
751
+ const dayC1 = Math.abs(dayC);
752
+ const hourC1 = Math.abs(hourC);
753
+ const minC1 = Math.abs(minC);
754
+ if (monthC1 > 12) {
755
+ return `${parseInt(`${monthC1 / 12}`)}\u5E74\u540E`;
756
+ } else if (monthC1 >= 6) {
757
+ return "\u534A\u5E74\u540E";
758
+ } else if (monthC1 >= 1) {
759
+ return `${parseInt(`${monthC1}`)}\u6708\u540E`;
760
+ } else if (weekC1 > 2) {
761
+ return "\u534A\u6708\u540E";
762
+ } else if (weekC1 >= 1) {
763
+ return `${parseInt(`${weekC1}`)}\u5468\u540E`;
764
+ } else if (dayC1 >= 1) {
765
+ return `${parseInt(`${dayC1}`)}\u5929\u540E`;
766
+ } else if (hourC1 >= 1) {
767
+ return `${parseInt(`${hourC1}`)}\u5C0F\u65F6\u540E`;
768
+ } else if (minC1 >= 1) {
769
+ return `${parseInt(`${minC1}`)}\u5206\u949F\u540E`;
770
+ }
771
+ return "\u521A\u521A";
772
+ }
773
+ if (monthC > 12) {
774
+ return `${parseInt(`${monthC / 12}`)}\u5E74\u524D`;
775
+ } else if (monthC >= 6) {
776
+ return "\u534A\u5E74\u524D";
777
+ } else if (monthC >= 1) {
778
+ return `${parseInt(`${monthC}`)}\u6708\u524D`;
779
+ } else if (weekC > 2) {
780
+ return "\u534A\u6708\u524D";
781
+ } else if (weekC >= 1) {
782
+ return `${parseInt(`${weekC}`)}\u5468\u524D`;
783
+ } else if (dayC >= 1) {
784
+ return `${parseInt(`${dayC}`)}\u5929\u524D`;
785
+ } else if (hourC >= 1) {
786
+ return `${parseInt(`${hourC}`)}\u5C0F\u65F6\u524D`;
787
+ } else if (minC >= 1) {
788
+ return `${parseInt(`${minC}`)}\u5206\u949F\u524D`;
789
+ }
790
+ return "\u521A\u521A";
791
+ } else {
792
+ return "";
793
+ }
794
+ }
795
+ };
796
+ var state = reactive({
797
+ prefix: "fast__",
798
+ expireSuffix: "__Expire",
799
+ crypto: false
800
+ });
801
+ var CACHE_PREFIX = computed(() => state.prefix);
802
+ var CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);
803
+ var useStorage = () => {
804
+ return {
805
+ /**
806
+ * 设置缓存前缀 Key
807
+ * @param key
808
+ */
809
+ prefix(key) {
810
+ state.prefix = key;
811
+ },
812
+ /**
813
+ * 缓存过期值后缀 Key
814
+ * @param key
815
+ */
816
+ expireSuffix(key) {
817
+ state.expireSuffix = key;
818
+ },
819
+ /**
820
+ * 设置缓存是否加密
821
+ * @param crypto
822
+ */
823
+ crypto(crypto) {
824
+ state.crypto = crypto;
825
+ }
826
+ };
827
+ };
828
+ var storage = {
829
+ set(key, val) {
830
+ if (typeof uni !== "undefined") {
831
+ uni.setStorageSync(key, val);
832
+ } else {
833
+ window.localStorage.setItem(key, val);
834
+ }
835
+ },
836
+ get(key) {
837
+ if (typeof uni !== "undefined") {
838
+ return uni.getStorageSync(key);
839
+ } else {
840
+ return window.localStorage.getItem(key);
841
+ }
842
+ },
843
+ remove(key) {
844
+ if (typeof uni !== "undefined") {
845
+ uni.removeStorageSync(key);
846
+ } else {
847
+ window.localStorage.removeItem(key);
848
+ }
849
+ },
850
+ clear() {
851
+ if (typeof uni !== "undefined") {
852
+ uni.clearStorageSync();
853
+ } else {
854
+ window.localStorage.clear();
855
+ }
856
+ },
857
+ keys() {
858
+ if (typeof uni !== "undefined") {
859
+ return uni.getStorageInfoSync().keys;
860
+ } else {
861
+ return window.localStorage;
862
+ }
863
+ }
864
+ };
865
+ var Local = {
866
+ /**
867
+ * 设置
868
+ * @param key 缓存的Key
869
+ * @param val 缓存值
870
+ * @param expire 过期时间,单位分钟
871
+ * @param encrypt 是否对缓存的数据加密
872
+ */
873
+ set(key, val, expire, encrypt) {
874
+ try {
875
+ encrypt ??= state.crypto;
876
+ if (expire) {
877
+ if (isNaN(expire) || expire < 1) {
878
+ throw new Error("\u6709\u6548\u671F\u5E94\u4E3A\u4E00\u4E2A\u6709\u6548\u6570\u503C");
879
+ }
880
+ const expireData = {
881
+ time: Date.now(),
882
+ expire
883
+ };
884
+ const expireJson = JSON.stringify(expireData);
885
+ storage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);
886
+ }
887
+ let valJson = JSON.stringify(val);
888
+ if (encrypt) {
889
+ valJson = base64Util.toBase64(valJson);
890
+ }
891
+ storage.set(`${state.prefix}${key}`, valJson);
892
+ } catch (error) {
893
+ consoleError("Local", error);
894
+ }
895
+ },
896
+ /**
897
+ * 获取
898
+ * @param key 缓存的Key
899
+ * @param decrypt 是否对缓存的数据解密
900
+ * @returns {T} 传入的对象类型,默认为 string
901
+ */
902
+ get(key, decrypt) {
903
+ try {
904
+ decrypt ??= state.crypto;
905
+ let valJson = storage.get(`${state.prefix}${key}`);
906
+ if (valJson) {
907
+ if (decrypt) {
908
+ valJson = base64Util.base64ToStr(valJson);
909
+ }
910
+ const expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);
911
+ if (expireJson) {
912
+ const expireData = JSON.parse(expireJson);
913
+ if (Date.now() > expireData.time + expireData.expire * 60 * 1e3) {
914
+ storage.remove(`${state.prefix}${key}`);
915
+ storage.remove(`${state.prefix}${key}${state.expireSuffix}`);
916
+ return null;
917
+ }
918
+ }
919
+ try {
920
+ return JSON.parse(valJson);
921
+ } catch {
922
+ return valJson;
923
+ }
924
+ }
925
+ return null;
926
+ } catch (error) {
927
+ consoleError("Local", error);
928
+ }
929
+ },
930
+ /**
931
+ * 移除
932
+ * @param key 缓存的Key
933
+ */
934
+ remove(key) {
935
+ try {
936
+ storage.remove(`${state.prefix}${key}`);
937
+ storage.remove(`${state.prefix}${key}${state.expireSuffix}`);
938
+ } catch (error) {
939
+ consoleError("Local", error);
940
+ }
941
+ },
942
+ /**
943
+ * 根据前缀移除
944
+ * @param key 缓存的Key
945
+ */
946
+ removeByPrefix(key) {
947
+ try {
948
+ for (const itemKey in storage.keys) {
949
+ if (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {
950
+ storage.remove(itemKey);
951
+ }
952
+ }
953
+ } catch (error) {
954
+ consoleError("Local", error);
955
+ }
956
+ },
957
+ /**
958
+ * 移除全部
959
+ */
960
+ clear() {
961
+ try {
962
+ storage.clear();
963
+ } catch (error) {
964
+ consoleError("Local", error);
965
+ }
966
+ }
967
+ };
968
+ var Session = {
969
+ /**
970
+ * 设置会话缓存
971
+ * @param key 缓存的Key
972
+ * @param val 缓存值
973
+ * @param expire 过期时间,单位分钟
974
+ * @param encrypt 是否对缓存的数据加密
975
+ */
976
+ set(key, val, expire, encrypt) {
977
+ if (typeof uni !== "undefined") {
978
+ consoleError("Session", "UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");
979
+ return;
980
+ }
981
+ try {
982
+ encrypt ??= state.crypto;
983
+ if (expire) {
984
+ if (isNaN(expire) || expire < 1) {
985
+ throw new Error("\u6709\u6548\u671F\u5E94\u4E3A\u4E00\u4E2A\u6709\u6548\u6570\u503C");
986
+ }
987
+ const expireData = {
988
+ time: Date.now(),
989
+ expire
990
+ };
991
+ const expireJson = JSON.stringify(expireData);
992
+ window.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);
993
+ }
994
+ let valJson = JSON.stringify(val);
995
+ if (encrypt) {
996
+ valJson = base64Util.toBase64(valJson);
997
+ }
998
+ window.sessionStorage.setItem(`${state.prefix}${key}`, valJson);
999
+ } catch (error) {
1000
+ consoleError("Session", error);
1001
+ }
1002
+ },
1003
+ /**
1004
+ * 获取会话缓存
1005
+ * @param key 缓存的Key
1006
+ * @param decrypt 是否对缓存的数据解密
1007
+ * @returns {T} 传入的对象类型,默认为 string
1008
+ */
1009
+ get(key, decrypt) {
1010
+ if (typeof uni !== "undefined") {
1011
+ consoleError("Session", "UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");
1012
+ return;
1013
+ }
1014
+ try {
1015
+ decrypt ??= state.crypto;
1016
+ let valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);
1017
+ if (valJson) {
1018
+ if (decrypt) {
1019
+ valJson = base64Util.base64ToStr(valJson);
1020
+ }
1021
+ const expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);
1022
+ if (expireJson) {
1023
+ const expireData = JSON.parse(expireJson);
1024
+ if (Date.now() > expireData.time + expireData.expire * 60 * 1e3) {
1025
+ window.sessionStorage.removeItem(`${state.prefix}${key}`);
1026
+ window.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);
1027
+ return null;
1028
+ }
1029
+ }
1030
+ try {
1031
+ return JSON.parse(valJson);
1032
+ } catch {
1033
+ return valJson;
1034
+ }
1035
+ }
1036
+ return null;
1037
+ } catch (error) {
1038
+ consoleError("Session", error);
1039
+ }
1040
+ },
1041
+ /**
1042
+ * 移除会话缓存
1043
+ * @param key 缓存的Key
1044
+ */
1045
+ remove(key) {
1046
+ if (typeof uni !== "undefined") {
1047
+ consoleError("Session", "UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");
1048
+ return;
1049
+ }
1050
+ try {
1051
+ window.sessionStorage.removeItem(`${state.prefix}${key}`);
1052
+ window.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);
1053
+ } catch (error) {
1054
+ consoleError("Session", error);
1055
+ }
1056
+ },
1057
+ /**
1058
+ * 根据前缀移除会话缓存
1059
+ * @param key 缓存的Key
1060
+ */
1061
+ removeByPrefix(key) {
1062
+ if (typeof uni !== "undefined") {
1063
+ consoleError("Session", "UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");
1064
+ return;
1065
+ }
1066
+ try {
1067
+ for (const itemKey in window.sessionStorage) {
1068
+ if (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {
1069
+ window.sessionStorage.removeItem(itemKey);
1070
+ }
1071
+ }
1072
+ } catch (error) {
1073
+ consoleError("Session", error);
1074
+ }
1075
+ },
1076
+ /**
1077
+ * 移除全部会话缓存
1078
+ */
1079
+ clear() {
1080
+ if (typeof uni !== "undefined") {
1081
+ consoleError("Session", "UniApp \u73AF\u5883\u4E0B [Session] \u4E0D\u53EF\u7528\u3002");
1082
+ return;
1083
+ }
1084
+ try {
1085
+ window.sessionStorage.clear();
1086
+ } catch (error) {
1087
+ consoleError("Session", error);
1088
+ }
1089
+ }
1090
+ };
1091
+ var stringUtil = {
1092
+ /**
1093
+ * 获取Url参数
1094
+ */
1095
+ getUrlParams(url) {
1096
+ const regex = /[?&][^=?&]+=[^?&]+/g;
1097
+ const params = {};
1098
+ let match;
1099
+ while ((match = regex.exec(url)) !== null) {
1100
+ const [key, value] = match[0].substring(1).split("=");
1101
+ params[key] = decodeURIComponent(value);
1102
+ }
1103
+ return params;
1104
+ },
1105
+ /**
1106
+ * 是否为JSON字符串
1107
+ */
1108
+ isJson(value) {
1109
+ if (!isString(value)) return false;
1110
+ value = value.replace(/\s/g, "").replace(/\n|\r/, "");
1111
+ if (/^\{(.*?)\}$/.test(value)) return /"(.*?)":(.*?)/g.test(value);
1112
+ if (/^\[(.*?)\]$/.test(value)) {
1113
+ return value.replace(/^\[/, "").replace(/\]$/, "").replace(/},{/g, "}\n{").split(/\n/).map((s) => {
1114
+ return stringUtil.isJson(s);
1115
+ }).reduce((prev, curr) => {
1116
+ return !!curr;
1117
+ });
1118
+ }
1119
+ return false;
1120
+ },
1121
+ /**
1122
+ * 生成随机字符串
1123
+ */
1124
+ generateRandomString(length) {
1125
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
1126
+ let randomString = "";
1127
+ for (let i = 0; i < length; i++) {
1128
+ const randomIndex = Math.floor(Math.random() * characters.length);
1129
+ randomString += characters.charAt(randomIndex);
1130
+ }
1131
+ return randomString;
1132
+ },
1133
+ /**
1134
+ * @description 生成唯一 uuid
1135
+ */
1136
+ generateUUID() {
1137
+ let uuid = "";
1138
+ for (let i = 0; i < 32; i++) {
1139
+ const random = Math.random() * 16 | 0;
1140
+ if (i === 8 || i === 12 || i === 16 || i === 20) uuid += "-";
1141
+ uuid += (i === 12 ? 4 : i === 16 ? random & 3 | 8 : random).toString(16);
1142
+ }
1143
+ return uuid;
1144
+ },
1145
+ /**
1146
+ * 复制
1147
+ */
1148
+ async copy(value) {
1149
+ if (typeof uni !== "undefined") {
1150
+ return new Promise((resolve, reject) => {
1151
+ uni.setClipboardData({
1152
+ data: value,
1153
+ success: () => {
1154
+ resolve();
1155
+ },
1156
+ fail: () => {
1157
+ reject();
1158
+ }
1159
+ });
1160
+ });
1161
+ } else {
1162
+ if (navigator?.clipboard && window.isSecureContext) {
1163
+ await navigator.clipboard.writeText(value);
1164
+ } else {
1165
+ const textareaEl = document.createElement("textarea");
1166
+ textareaEl.value = value;
1167
+ textareaEl.style.position = "absolute";
1168
+ textareaEl.style.opacity = "0";
1169
+ textareaEl.style.left = "-999999px";
1170
+ textareaEl.style.top = "-999999px";
1171
+ document.body.appendChild(textareaEl);
1172
+ textareaEl.focus();
1173
+ textareaEl.select();
1174
+ document.execCommand("copy");
1175
+ textareaEl.remove();
1176
+ }
1177
+ }
1178
+ }
1179
+ };
1180
+
1181
+ // src/vue/expose.ts
1182
+ var useExpose = (expose, exposed) => {
1183
+ expose(exposed);
1184
+ return exposed;
1185
+ };
1186
+
1187
+ // src/vue/func.ts
1188
+ var execFunction = async (fn, ...args) => {
1189
+ if (!fn) return Promise.resolve(void 0);
1190
+ if (fn.constructor.name === "AsyncFunction") {
1191
+ try {
1192
+ return await fn(...args);
1193
+ } catch (error) {
1194
+ consoleError("execFunction", error);
1195
+ return Promise.reject(error);
1196
+ }
1197
+ } else {
1198
+ return new Promise((resolve, reject) => {
1199
+ try {
1200
+ const res = fn(...args);
1201
+ return resolve(res);
1202
+ } catch (error) {
1203
+ consoleError("execFunction", error);
1204
+ return reject(error);
1205
+ }
1206
+ });
1207
+ }
1208
+ };
1209
+
1210
+ // src/vue/install.ts
1211
+ var NOOP = () => {
1212
+ };
1213
+ var withInstall = (main, extra) => {
1214
+ main.install = (app) => {
1215
+ for (const comp of [main, ...Object.values(extra ?? {})]) {
1216
+ app.component(comp.name, comp);
1217
+ }
1218
+ };
1219
+ if (extra) {
1220
+ for (const [key, comp] of Object.entries(extra)) {
1221
+ main[key] = comp;
1222
+ }
1223
+ }
1224
+ return main;
1225
+ };
1226
+ var withNoopInstall = (component) => {
1227
+ component.install = NOOP;
1228
+ return component;
1229
+ };
1230
+ var withInstallDirective = (directive, name) => {
1231
+ directive.install = (app) => {
1232
+ app.directive(name, directive);
1233
+ };
1234
+ return directive;
1235
+ };
1236
+ var definePropType = (val) => val;
1237
+ var useProps = (props, rawProps, ignoreRawProps) => {
1238
+ if (!props) return computed(() => ({}));
1239
+ return computed(() => {
1240
+ const omittedRawProps = rawProps ? omit(rawProps, ignoreRawProps ?? []) : {};
1241
+ return pick(props, Object.keys(omittedRawProps));
1242
+ });
1243
+ };
1244
+
1245
+ // src/vue/slots.ts
1246
+ var makeSlots = () => {
1247
+ return Object;
1248
+ };
1249
+ var useRender = (render) => {
1250
+ const vm = getCurrentInstance();
1251
+ if (!vm) {
1252
+ throw new Error("useRender must be called from inside a setup function");
1253
+ }
1254
+ vm.render = render;
1255
+ };
1256
+
1257
+ // src/vue/with.ts
1258
+ var withDefineType = (data = void 0) => {
1259
+ return data;
1260
+ };
1261
+
1262
+ export { CACHE_EXPIRE_SUFFIX, CACHE_PREFIX, FastError, Local, Session, addUnit, base64Util, clickUtil, colorUtil, consoleDebug, consoleError, consoleLog, consoleWarn, cryptoUtil, dateUtil, definePropType, execFunction, makeSlots, objectUtil, stringUtil, throwError, useExpose, useProps, useRender, useStorage, withDefineType, withInstall, withInstallDirective, withNoopInstall };
1263
+ //# sourceMappingURL=index.js.map
1264
+ //# sourceMappingURL=index.js.map