halo-fe 1.0.21 → 1.0.22
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/main.js +665 -564
- package/dist/style.css +1 -1
- package/esm/coms/index.d.ts +1 -1
- package/esm/drivers/@types/IOpen.d.ts +1 -1
- package/esm/drivers/cdns/Cdn.d.ts +1 -1
- package/esm/drivers/https/implements/HaloHttp.d.ts +1 -4
- package/esm/drivers/https/implements/MkHttp.d.ts +1 -1
- package/esm/drivers/i18ns/I18n.d.ts +9 -5
- package/esm/drivers/i18ns/II18n.d.ts +5 -1
- package/esm/drivers/i18ns/implements/DefaultI18n.d.ts +1 -1
- package/esm/helpers/StringHelper.d.ts +26 -18
- package/esm/main.d.ts +1 -1
- package/esm/svcs/implement/ConfigSvc.d.ts +6 -2
- package/esm/svcs/index.d.ts +25 -30
- package/esm/utilities/MathUtility.d.ts +35 -0
- package/esm/utilities/RandomUtility.d.ts +40 -0
- package/esm/utilities/index.d.ts +2 -1
- package/package.json +1 -1
package/dist/main.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
var vt = Object.defineProperty;
|
2
2
|
var wt = (u, t, e) => t in u ? vt(u, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : u[t] = e;
|
3
3
|
var n = (u, t, e) => wt(u, typeof t != "symbol" ? t + "" : t, e);
|
4
|
-
import { _ as
|
5
|
-
import { defineAsyncComponent as bt, reactive as
|
4
|
+
import { _ as Ie } from "./assets/underscore-B0BCaBxV.js";
|
5
|
+
import { defineAsyncComponent as bt, reactive as Ye, defineComponent as Q, toRefs as se, openBlock as I, createElementBlock as B, createElementVNode as D, toDisplayString as de, unref as y, renderSlot as he, createCommentVNode as Ge, watch as J, ref as R, onMounted as ve, onUnmounted as we, normalizeStyle as pe, normalizeClass as $e, createTextVNode as xt, createBlock as Ze, withCtx as Fe, mergeModels as Ve, useModel as He, nextTick as ze, withDirectives as kt, vShow as St, createVNode as Se, createStaticVNode as Ct, isRef as Oe, Fragment as Et, renderList as Tt, computed as Ce } from "vue";
|
6
6
|
import { _ as $t } from "./assets/underscore.string-oDfap0sE.js";
|
7
7
|
import { a as Lt } from "./assets/clone-DtpAsLoe.js";
|
8
8
|
import { F as At } from "./assets/file-saver-Cnua3zoa.js";
|
@@ -29,7 +29,7 @@ n(F, "isNumber", (t) => {
|
|
29
29
|
* 判断输入类型是否是isBoolean类型
|
30
30
|
*/
|
31
31
|
n(F, "isBoolean", (t) => Object.prototype.toString.call(t) == "[object Boolean]");
|
32
|
-
const
|
32
|
+
const q = class q {
|
33
33
|
/**
|
34
34
|
* 获取最大值
|
35
35
|
*/
|
@@ -69,64 +69,64 @@ const M = class M {
|
|
69
69
|
/**
|
70
70
|
* 过滤某一页数据
|
71
71
|
*/
|
72
|
-
n(
|
72
|
+
n(q, "filterPage", (t, e, s) => {
|
73
73
|
let l = (e - 1) * s, r = e * s;
|
74
74
|
return t.filter((a, o) => o >= l && o < r);
|
75
75
|
}), /**
|
76
76
|
* 总页数
|
77
77
|
*/
|
78
|
-
n(
|
78
|
+
n(q, "pageCount", (t, e) => Math.ceil(t / e)), //#endregion
|
79
79
|
//#region 求值
|
80
80
|
/**
|
81
81
|
* 四舍五入
|
82
82
|
*/
|
83
|
-
n(
|
83
|
+
n(q, "round", (t, e) => t.toFixed(e)), /**
|
84
84
|
* 天花板函数
|
85
85
|
*/
|
86
|
-
n(
|
86
|
+
n(q, "ceil", (t) => Math.ceil(t)), //#endregion
|
87
87
|
//#region 进度
|
88
88
|
/**
|
89
89
|
* 获取百分比
|
90
90
|
*/
|
91
|
-
n(
|
91
|
+
n(q, "getPercentage", (t, e) => {
|
92
92
|
if (!t || !e)
|
93
93
|
return 0;
|
94
|
-
let s = t / e * 100, l =
|
94
|
+
let s = t / e * 100, l = q.round(s, 2);
|
95
95
|
return parseFloat(l);
|
96
96
|
}), /**
|
97
97
|
* 获取进度文本
|
98
98
|
*/
|
99
|
-
n(
|
99
|
+
n(q, "getProgressText", (t, e) => `${t ?? "-"}/${e ?? "-"}`), /**
|
100
100
|
* 获取百分比,保留2位小数
|
101
101
|
*/
|
102
|
-
n(
|
102
|
+
n(q, "getPercentageText", (t, e) => q.getPercentage(t, e).toFixed(2)), //#endregion
|
103
103
|
/**
|
104
104
|
* 获取大小
|
105
105
|
*/
|
106
|
-
n(
|
106
|
+
n(q, "size", (t) => {
|
107
107
|
if (!t)
|
108
108
|
return "OKB";
|
109
109
|
let e = 1024, s = e * 1024;
|
110
110
|
if (t < s)
|
111
|
-
return
|
111
|
+
return q.round(t / e, 2) + "KB";
|
112
112
|
let l = s * 1024;
|
113
113
|
if (t < l)
|
114
|
-
return
|
114
|
+
return q.round(t / s, 2) + "MB";
|
115
115
|
let r = l * 1024;
|
116
116
|
if (t < r)
|
117
|
-
return
|
117
|
+
return q.round(t / l, 2) + "GB";
|
118
118
|
let i = r * 1024;
|
119
119
|
if (t < i)
|
120
|
-
return
|
120
|
+
return q.round(t / r, 2) + "TB";
|
121
121
|
throw new Error("暂未支持比TB更大的大小");
|
122
122
|
});
|
123
|
-
let
|
123
|
+
let Z = q;
|
124
124
|
const S = class S {
|
125
125
|
/**
|
126
126
|
* 获取分成指定片数量后的集合
|
127
127
|
*/
|
128
128
|
static getChunksByCount(t, e) {
|
129
|
-
let s = [], l =
|
129
|
+
let s = [], l = Z.ceil(t.length / e);
|
130
130
|
for (let r = 0; r < t.length; r += l) {
|
131
131
|
let i = this.getRange(t, r, l);
|
132
132
|
s.push(i);
|
@@ -214,10 +214,10 @@ n(S, "except", (t, e, s = null) => {
|
|
214
214
|
/**
|
215
215
|
* 求最大值,数据类型的比较函数要自己转换为数值类型
|
216
216
|
*/
|
217
|
-
n(S, "max", (t, e) =>
|
217
|
+
n(S, "max", (t, e) => Ie.max(t, e)), /**
|
218
218
|
* 求最小值,数据类型的比较函数要自己转换为数值类型
|
219
219
|
*/
|
220
|
-
n(S, "min", (t, e) =>
|
220
|
+
n(S, "min", (t, e) => Ie.min(t, e)), /**
|
221
221
|
* 求平均值
|
222
222
|
*/
|
223
223
|
n(S, "avg", (t, e, s = null) => {
|
@@ -301,7 +301,7 @@ n(S, "split", (t, e, s = null) => {
|
|
301
301
|
* 合并多个数组中的每一项到新的二维数组中,没值的元素被有值的元素代替
|
302
302
|
*/
|
303
303
|
n(S, "combine", (...t) => {
|
304
|
-
let e = [], s =
|
304
|
+
let e = [], s = Ie.max(t, (l) => l.length);
|
305
305
|
for (let l = 0; l < s.length; l++) {
|
306
306
|
let r = [], i;
|
307
307
|
for (let a = 0; a < t.length; a++) {
|
@@ -399,13 +399,7 @@ n(S, "groupByArray", (t, e) => {
|
|
399
399
|
}), s;
|
400
400
|
});
|
401
401
|
let oe = S;
|
402
|
-
const
|
403
|
-
/**
|
404
|
-
* 根据字符串或数组,自动返回数组
|
405
|
-
*/
|
406
|
-
static getArray(t) {
|
407
|
-
return t == null ? [] : typeof t == "string" ? [t.toString()] : t instanceof Array ? t : [];
|
408
|
-
}
|
402
|
+
const b = class b {
|
409
403
|
/**
|
410
404
|
* 忽略大小写比较
|
411
405
|
*/
|
@@ -413,11 +407,19 @@ const x = class x {
|
|
413
407
|
let s = t.toUpperCase(), l = e.toUpperCase();
|
414
408
|
return s == l;
|
415
409
|
}
|
410
|
+
/**
|
411
|
+
* 根据字符串或数组,自动返回数组
|
412
|
+
*/
|
413
|
+
static getArray(t) {
|
414
|
+
return t == null ? [] : typeof t == "string" ? [t.toString()] : t instanceof Array ? t : [];
|
415
|
+
}
|
416
|
+
//#endregion
|
416
417
|
};
|
418
|
+
//#region 生成
|
417
419
|
/**
|
418
420
|
* 生成唯一字符串
|
419
421
|
*/
|
420
|
-
n(
|
422
|
+
n(b, "getUniqueId", (t = 32) => {
|
421
423
|
let e = "";
|
422
424
|
for (let s = 0; s < t; s++)
|
423
425
|
e += Math.random().toString(36).charAt(2);
|
@@ -425,10 +427,14 @@ n(x, "getUniqueId", (t = 32) => {
|
|
425
427
|
}), /**
|
426
428
|
* 填充字符串到指定长度,使用pad填充
|
427
429
|
*/
|
428
|
-
n(
|
430
|
+
n(b, "padLeft", (t, e, s) => $t.pad(t, e, s)), /**
|
431
|
+
* 填充字符串到指定长度,使用pad填充
|
432
|
+
*/
|
433
|
+
n(b, "padStart", (t, e, s) => t.padStart(e, s)), //#endregion
|
434
|
+
/**
|
429
435
|
* 去掉头部字符串
|
430
436
|
*/
|
431
|
-
n(
|
437
|
+
n(b, "trimStart", (t, e) => {
|
432
438
|
if (e == null)
|
433
439
|
return t;
|
434
440
|
let s = t.indexOf(e);
|
@@ -436,7 +442,7 @@ n(x, "trimStart", (t, e) => {
|
|
436
442
|
}), /**
|
437
443
|
* 去掉尾部字符串
|
438
444
|
*/
|
439
|
-
n(
|
445
|
+
n(b, "trimEnd", (t, e) => {
|
440
446
|
if (e == null)
|
441
447
|
return t;
|
442
448
|
let s = t.lastIndexOf(e);
|
@@ -444,13 +450,13 @@ n(x, "trimEnd", (t, e) => {
|
|
444
450
|
}), /**
|
445
451
|
* 去掉头尾字符串
|
446
452
|
*/
|
447
|
-
n(
|
448
|
-
let l =
|
449
|
-
return
|
453
|
+
n(b, "trim", (t, e, s) => {
|
454
|
+
let l = b.trimStart(t, e);
|
455
|
+
return b.trimEnd(l, s);
|
450
456
|
}), /**
|
451
457
|
* 获取中划线命名法
|
452
458
|
*/
|
453
|
-
n(
|
459
|
+
n(b, "getDashName", (t) => {
|
454
460
|
if (!t)
|
455
461
|
return null;
|
456
462
|
let e = "";
|
@@ -459,31 +465,26 @@ n(x, "getDashName", (t) => {
|
|
459
465
|
l == "/" ? e += "-" : l >= "A" && l <= "Z" ? (s > 0 && t[s - 1] != "/" && (e += "-"), e += l.toLowerCase()) : e += l;
|
460
466
|
}
|
461
467
|
return e;
|
462
|
-
}),
|
463
|
-
|
468
|
+
}), //#region 判断
|
469
|
+
/**
|
470
|
+
* 判断字符串是否为空或空串
|
464
471
|
*/
|
465
|
-
n(
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
return !1;
|
473
|
-
if (r.toString().toUpperCase().includes(t.toUpperCase()))
|
474
|
-
return !0;
|
475
|
-
}
|
476
|
-
return !1;
|
477
|
-
}), /**
|
472
|
+
n(b, "isNullOrEmpty", (t) => t == null || b.isEmpty(t)), /**
|
473
|
+
* 判断字符串是否为空或空串
|
474
|
+
*/
|
475
|
+
n(b, "isEmpty", (t) => t == ""), /**
|
476
|
+
* 判断是否符合密码要求
|
477
|
+
*/
|
478
|
+
n(b, "isPassword", (t) => !0), /**
|
478
479
|
* 判断是否是数字类型,这样支持0
|
479
480
|
*/
|
480
|
-
n(
|
481
|
+
n(b, "isNumber", (t) => t != null && !isNaN(t)), /**
|
481
482
|
* 验证是否是邮箱格式
|
482
483
|
*/
|
483
|
-
n(
|
484
|
+
n(b, "isEmail", (t) => /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(t)), /**
|
484
485
|
* 判断是否是json
|
485
486
|
*/
|
486
|
-
n(
|
487
|
+
n(b, "isJson", (t) => {
|
487
488
|
try {
|
488
489
|
if (!t)
|
489
490
|
return !1;
|
@@ -495,15 +496,15 @@ n(x, "isJson", (t) => {
|
|
495
496
|
}), /**
|
496
497
|
* 判断是否是isJsonp
|
497
498
|
*/
|
498
|
-
n(
|
499
|
+
n(b, "isJsonp", (t) => {
|
499
500
|
if (!t)
|
500
501
|
return !1;
|
501
502
|
let e = t.indexOf("("), s = t.lastIndexOf(")"), l = t.substring(e + 1, s);
|
502
|
-
return !!
|
503
|
+
return !!b.isJson(l);
|
503
504
|
}), /**
|
504
505
|
* 判断是否是html
|
505
506
|
*/
|
506
|
-
n(
|
507
|
+
n(b, "isHtml", (t) => {
|
507
508
|
if (!t)
|
508
509
|
return !1;
|
509
510
|
let e = document.createElement("div");
|
@@ -513,41 +514,67 @@ n(x, "isHtml", (t) => {
|
|
513
514
|
return !0;
|
514
515
|
return !1;
|
515
516
|
}), /**
|
516
|
-
*
|
517
|
-
*/
|
518
|
-
n(x, "getContentType", (t) => x.isJson(t) || x.isJsonp(t) ? "json" : x.isHtml(t) ? "html" : "text"), /**
|
519
|
-
* 判断字符串是否为空或空串
|
517
|
+
* 是否以字符串开头
|
520
518
|
*/
|
521
|
-
n(
|
522
|
-
|
519
|
+
n(b, "startWith", (t, e) => t == null ? !1 : t.startsWith(e)), //#endregion
|
520
|
+
//#region 包含
|
521
|
+
/**
|
522
|
+
* 忽略大小写包含判断,支持从数组中搜索关键词
|
523
523
|
*/
|
524
|
-
n(
|
525
|
-
|
524
|
+
n(b, "containsIgnoreCase", (t, e) => {
|
525
|
+
if (!t)
|
526
|
+
return !0;
|
527
|
+
let s = e instanceof Array ? e : [e];
|
528
|
+
for (let l = 0; l < s.length; l++) {
|
529
|
+
let r = s[l];
|
530
|
+
if (!r)
|
531
|
+
return !1;
|
532
|
+
if (r.toString().toUpperCase().includes(t.toUpperCase()))
|
533
|
+
return !0;
|
534
|
+
}
|
535
|
+
return !1;
|
536
|
+
}), //#endregion
|
537
|
+
/**
|
538
|
+
* 获取内容类型
|
526
539
|
*/
|
527
|
-
n(
|
540
|
+
n(b, "getContentType", (t) => b.isJson(t) || b.isJsonp(t) ? "json" : b.isHtml(t) ? "html" : "text"), //#region 获取值
|
541
|
+
/**
|
528
542
|
* 获取数据值或者空
|
529
543
|
*/
|
530
|
-
n(
|
531
|
-
* 格式化成留指定位数的小数
|
532
|
-
*/
|
533
|
-
n(x, "format", (t, e) => {
|
534
|
-
let s = parseFloat(t), l;
|
535
|
-
return e ? l = s.toFixed(e).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") : l = s.toLocaleString(), l;
|
536
|
-
}), /**
|
544
|
+
n(b, "getNumberOrNull", (t) => t == null || isNaN(t) ? 0 : parseFloat(t)), /**
|
537
545
|
* 获取两个字符串之间的字符串
|
538
546
|
*/
|
539
|
-
n(
|
547
|
+
n(b, "getBetween", (t, e, s) => {
|
540
548
|
let l = t.indexOf(e);
|
541
549
|
if (l == -1)
|
542
550
|
return null;
|
543
551
|
let r = l + e.length, i = t.substring(r), a = i.indexOf(s);
|
544
552
|
return a == -1 ? null : i.substring(0, a);
|
553
|
+
}), //#endregion
|
554
|
+
//#region 格式化
|
555
|
+
/**
|
556
|
+
* 按占位符格式化成字符串
|
557
|
+
*/
|
558
|
+
n(b, "format", (t, e) => {
|
559
|
+
if (t == null)
|
560
|
+
return t;
|
561
|
+
let s = [];
|
562
|
+
typeof e == "string" ? s.push(e) : s.push(...e);
|
563
|
+
let l = t;
|
564
|
+
for (let r = 0; r < s.length; r++) {
|
565
|
+
let i = s[r];
|
566
|
+
l = l.replace(`{${r}}`, i);
|
567
|
+
}
|
568
|
+
return l;
|
545
569
|
}), /**
|
546
|
-
*
|
570
|
+
* 格式化成留指定位数的小数
|
547
571
|
*/
|
548
|
-
n(
|
549
|
-
let
|
550
|
-
|
572
|
+
n(b, "formatDigits", (t, e) => {
|
573
|
+
let s = parseFloat(t), l;
|
574
|
+
return e ? l = s.toFixed(e).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") : l = s.toLocaleString(), l;
|
575
|
+
});
|
576
|
+
let M = b;
|
577
|
+
const Ee = class Ee {
|
551
578
|
//#region 净化
|
552
579
|
/**
|
553
580
|
* 净化对象,返回不带默认属性的对象
|
@@ -619,7 +646,7 @@ const Te = class Te {
|
|
619
646
|
static mergeTo(t, e) {
|
620
647
|
return t == null ? e : e == null ? t : F.isArray(e) ? e.slice() : (Object.keys(e).forEach((l) => {
|
621
648
|
let r = e[l];
|
622
|
-
typeof r == "object" ? t[l] =
|
649
|
+
typeof r == "object" ? t[l] = Ee.mergeTo(t[l], r) : t[l] = r;
|
623
650
|
}), t);
|
624
651
|
}
|
625
652
|
//#endregion
|
@@ -645,7 +672,7 @@ const Te = class Te {
|
|
645
672
|
/**
|
646
673
|
* 手动复制,并对字段执行指定自定义处理
|
647
674
|
*/
|
648
|
-
n(
|
675
|
+
n(Ee, "copy", (t, e = null) => {
|
649
676
|
let s = [];
|
650
677
|
F.isObject(t) && s.push(t);
|
651
678
|
let l = [];
|
@@ -662,15 +689,15 @@ n(Te, "copy", (t, e = null) => {
|
|
662
689
|
/**
|
663
690
|
* 给对象添加多层属性,并赋值
|
664
691
|
*/
|
665
|
-
n(
|
692
|
+
n(Ee, "addProperties", (t, e, s) => {
|
666
693
|
let l = t;
|
667
694
|
for (let r = 0; r < e.length; r++) {
|
668
695
|
let i = e[r];
|
669
696
|
r == e.length - 1 ? l[i] = s : (l[i] || (l[i] = {}), l = l[i]);
|
670
697
|
}
|
671
698
|
});
|
672
|
-
let X =
|
673
|
-
class
|
699
|
+
let X = Ee;
|
700
|
+
class _e {
|
674
701
|
//#region 取值
|
675
702
|
/**
|
676
703
|
* 从指定字典中提取忽略大小写的key的值
|
@@ -731,7 +758,7 @@ class Be {
|
|
731
758
|
}
|
732
759
|
//#endregion
|
733
760
|
}
|
734
|
-
const
|
761
|
+
const K = class K {
|
735
762
|
/**
|
736
763
|
* 获取指定地址路由对象
|
737
764
|
*/
|
@@ -860,7 +887,7 @@ const z = class z {
|
|
860
887
|
*/
|
861
888
|
static serialize(t, e = !0) {
|
862
889
|
let s = (r) => e ? encodeURIComponent(r) : r;
|
863
|
-
return
|
890
|
+
return _e.join(t, s, "=", "&");
|
864
891
|
}
|
865
892
|
//endregion
|
866
893
|
//region 编码和解码
|
@@ -881,7 +908,7 @@ const z = class z {
|
|
881
908
|
/**
|
882
909
|
* 处理键值对的值
|
883
910
|
*/
|
884
|
-
n(
|
911
|
+
n(K, "handleQueryValue", (t, e) => {
|
885
912
|
let s = "";
|
886
913
|
if (t == null)
|
887
914
|
return s;
|
@@ -889,13 +916,13 @@ n(z, "handleQueryValue", (t, e) => {
|
|
889
916
|
if (t.length > 0)
|
890
917
|
for (let l = 0; l < t.length; l++) {
|
891
918
|
let r = X.clone(e);
|
892
|
-
r.push(""), s +=
|
919
|
+
r.push(""), s += K.handleQueryValue(t[l], r);
|
893
920
|
}
|
894
921
|
} else if (t instanceof Object) {
|
895
922
|
let l = Object.keys(t);
|
896
923
|
for (let r of l) {
|
897
924
|
let i = X.clone(e);
|
898
|
-
i.push(r), s +=
|
925
|
+
i.push(r), s += K.handleQueryValue(t[r], i);
|
899
926
|
}
|
900
927
|
} else {
|
901
928
|
let l = "";
|
@@ -908,27 +935,27 @@ n(z, "handleQueryValue", (t, e) => {
|
|
908
935
|
}), /**
|
909
936
|
* 自动根据后面路径,决定是否要合并Url
|
910
937
|
*/
|
911
|
-
n(
|
938
|
+
n(K, "concatUrl", (t, e) => K.httpOrHttps(e) ? e : t + e), /**
|
912
939
|
* 合并路径和查询对象(自动编码,并支持覆盖现有参数),得到完整URL地址,并会省略默认值
|
913
940
|
* ? 对url参数不编码,只对 queryObj 参数编码,防止用户的参数被改成编码形式
|
914
941
|
* ? 目前,对Url参数对象和目标对象都编码,因为源对象属性是经过解码的
|
915
942
|
*/
|
916
|
-
n(
|
943
|
+
n(K, "getUrl", (t, e = null) => {
|
917
944
|
if (t == null)
|
918
945
|
return null;
|
919
946
|
if (e == null)
|
920
947
|
return t;
|
921
|
-
let s =
|
922
|
-
return
|
948
|
+
let s = K.deserialize(t), l = X.mergeTo(s, e);
|
949
|
+
return K.getPath(t) + "?" + K.getQuery(l);
|
923
950
|
}), /**
|
924
951
|
* 获取超链接配置对象
|
925
952
|
*/
|
926
|
-
n(
|
953
|
+
n(K, "getAnchor", (t, e = null) => {
|
927
954
|
let s = { href: null, target: null };
|
928
|
-
return
|
955
|
+
return K.httpOrHttps(t) ? (s.href = t, s.target = "_blank", s) : (s.href = K.getUrl(t, e), s);
|
929
956
|
});
|
930
|
-
let
|
931
|
-
class
|
957
|
+
let W = K;
|
958
|
+
class Rt {
|
932
959
|
/**
|
933
960
|
* 根据动态加载的组件对象,得到组件集合
|
934
961
|
*/
|
@@ -938,7 +965,7 @@ class It {
|
|
938
965
|
return l;
|
939
966
|
for (let i = 0; i < r.length; i++) {
|
940
967
|
const a = r[i];
|
941
|
-
let o =
|
968
|
+
let o = M.trim(a, e, ".vue"), h = (s ? s + "-" : "") + M.getDashName(o), d = t[a];
|
942
969
|
if (d.default)
|
943
970
|
l[h] = d.default;
|
944
971
|
else {
|
@@ -960,10 +987,10 @@ class It {
|
|
960
987
|
/**
|
961
988
|
* 获取部分自定义组件名称
|
962
989
|
*/
|
963
|
-
n(
|
990
|
+
n(Rt, "getName", (t, e) => {
|
964
991
|
if (!t)
|
965
992
|
return null;
|
966
|
-
let s =
|
993
|
+
let s = W.getPath(t);
|
967
994
|
return s ? s == "/" ? e : e + s.replace(/\//g, "-").toLowerCase() : null;
|
968
995
|
});
|
969
996
|
const ae = class ae {
|
@@ -996,7 +1023,7 @@ n(ae, "isImage", (t) => {
|
|
996
1023
|
let e = ae.getExtension(t);
|
997
1024
|
return [".png", ".jpg", ".jpeg", ".bmp", ".gif"].indexOf(e) > -1;
|
998
1025
|
});
|
999
|
-
let
|
1026
|
+
let Ae = ae;
|
1000
1027
|
const Y = class Y {
|
1001
1028
|
//#region 颜色
|
1002
1029
|
/**
|
@@ -1030,7 +1057,7 @@ const Y = class Y {
|
|
1030
1057
|
let e = "";
|
1031
1058
|
for (let s = 0; s < t.length; s++) {
|
1032
1059
|
let l = t[s];
|
1033
|
-
|
1060
|
+
M.isNullOrEmpty(l) || (e += l, s != t.length - 1 && (e += " "));
|
1034
1061
|
}
|
1035
1062
|
return e;
|
1036
1063
|
}
|
@@ -1153,8 +1180,8 @@ const Y = class Y {
|
|
1153
1180
|
let a = {}, o = t.getBoundingClientRect(), c = l.getBoundingClientRect(), d = t.querySelector(e).getBoundingClientRect(), p = i.getBoundingClientRect(), g = c.height - d.top;
|
1154
1181
|
if (r == "right") {
|
1155
1182
|
a.left = `${o.left + o.width}px`;
|
1156
|
-
let
|
1157
|
-
p.height > c.height ?
|
1183
|
+
let x;
|
1184
|
+
p.height > c.height ? x = c.height : x = p.height, a.height = `${x}px`, x + d.top > c.height ? (a.top = "initial", a.bottom = "0px") : a.top = `${o.top}px`;
|
1158
1185
|
} else if (r == "bottom")
|
1159
1186
|
g -= d.height, a.left = `${o.left}px`, a.top = `${o.top + o.height}px`, g < p.height ? a.height = `${g}px` : a.height = `${p.height}px`;
|
1160
1187
|
else
|
@@ -1214,13 +1241,13 @@ const Y = class Y {
|
|
1214
1241
|
* 获取行内标签,如: style(非link)
|
1215
1242
|
*/
|
1216
1243
|
static getInlineTagByUrl(t) {
|
1217
|
-
return
|
1244
|
+
return Ae.getExtension(t) == ".css" ? "style" : "script";
|
1218
1245
|
}
|
1219
1246
|
/**
|
1220
1247
|
* 获取资源标签,如: link
|
1221
1248
|
*/
|
1222
1249
|
static getTagByUrl(t) {
|
1223
|
-
return
|
1250
|
+
return Ae.getExtension(t) == ".css" ? "link" : "script";
|
1224
1251
|
}
|
1225
1252
|
//#endregion
|
1226
1253
|
//#region 文本
|
@@ -1351,15 +1378,15 @@ n(ie, "scroll", (t, e) => {
|
|
1351
1378
|
n(ie, "unscroll", (t, e) => {
|
1352
1379
|
t && t.removeEventListener("scroll", e, !0);
|
1353
1380
|
});
|
1354
|
-
class
|
1381
|
+
class Ke {
|
1355
1382
|
}
|
1356
1383
|
/**
|
1357
1384
|
* 获取Html内容
|
1358
1385
|
*/
|
1359
|
-
n(
|
1386
|
+
n(Ke, "getHtml", (t) => F.isNumber(t) ? t : t && t.replace(/\n/g, "<br/>")), /**
|
1360
1387
|
* 获取Html中的文字
|
1361
1388
|
*/
|
1362
|
-
n(
|
1389
|
+
n(Ke, "getText", (t) => {
|
1363
1390
|
if (!t)
|
1364
1391
|
return null;
|
1365
1392
|
if (!F.isString(t))
|
@@ -1367,46 +1394,46 @@ n(Qe, "getText", (t) => {
|
|
1367
1394
|
let e = new RegExp("<[^<>]+>", "g");
|
1368
1395
|
return t.replace(e, "");
|
1369
1396
|
});
|
1370
|
-
class
|
1397
|
+
class It {
|
1371
1398
|
}
|
1372
1399
|
/**
|
1373
1400
|
* 获取base64图片地址
|
1374
1401
|
*/
|
1375
|
-
n(
|
1376
|
-
class
|
1402
|
+
n(It, "base64", (t) => "data:image/png;base64," + t);
|
1403
|
+
class Ot {
|
1377
1404
|
}
|
1378
1405
|
/**
|
1379
1406
|
* 加载乾坤子应用
|
1380
1407
|
*/
|
1381
|
-
n(
|
1408
|
+
n(Ot, "load", function(t, e, s, l) {
|
1382
1409
|
});
|
1383
|
-
const
|
1410
|
+
const Te = class Te {
|
1384
1411
|
};
|
1385
1412
|
/**
|
1386
1413
|
* 激发主框架事件
|
1387
1414
|
*/
|
1388
|
-
n(
|
1389
|
-
|
1415
|
+
n(Te, "emit", (t, e) => {
|
1416
|
+
Te.emits({ [t]: e });
|
1390
1417
|
}), /**
|
1391
1418
|
* 批量激发主框架事件
|
1392
1419
|
*/
|
1393
|
-
n(
|
1420
|
+
n(Te, "emits", (t) => {
|
1394
1421
|
var s, l;
|
1395
1422
|
let e = (l = (s = window.parent) == null ? void 0 : s.window) == null ? void 0 : l.emit;
|
1396
1423
|
e && Object.keys(t).forEach((r) => {
|
1397
1424
|
e(r, t[r]);
|
1398
1425
|
});
|
1399
1426
|
});
|
1400
|
-
let
|
1401
|
-
class
|
1427
|
+
let ye = Te;
|
1428
|
+
class ke {
|
1402
1429
|
}
|
1403
1430
|
/**
|
1404
1431
|
* 延时指定ms后执行指定任务
|
1405
1432
|
*/
|
1406
|
-
n(
|
1433
|
+
n(ke, "delay", (t, e) => setTimeout(t, e)), /**
|
1407
1434
|
* 在执行指定延时后,每隔指定ms执行指定任务
|
1408
1435
|
*/
|
1409
|
-
n(
|
1436
|
+
n(ke, "execute", (t, e, s) => {
|
1410
1437
|
if (!s) {
|
1411
1438
|
let l = setInterval(t, e);
|
1412
1439
|
return Promise.resolve(l);
|
@@ -1420,12 +1447,12 @@ n(Se, "execute", (t, e, s) => {
|
|
1420
1447
|
}), /**
|
1421
1448
|
* 清空定时器
|
1422
1449
|
*/
|
1423
|
-
n(
|
1450
|
+
n(ke, "clearInterval", (t) => {
|
1424
1451
|
clearInterval(t);
|
1425
1452
|
}), /**
|
1426
1453
|
* 防抖(指定时间内只触发一次)
|
1427
1454
|
*/
|
1428
|
-
n(
|
1455
|
+
n(ke, "debounce", (t, e) => {
|
1429
1456
|
let s = null;
|
1430
1457
|
return (l) => {
|
1431
1458
|
s && clearTimeout(s), s = setTimeout(t, e, l);
|
@@ -1433,7 +1460,7 @@ n(Se, "debounce", (t, e) => {
|
|
1433
1460
|
}), /**
|
1434
1461
|
* 节流:https://segmentfault.com/a/1190000018428170
|
1435
1462
|
*/
|
1436
|
-
n(
|
1463
|
+
n(ke, "throttle", (t, e) => {
|
1437
1464
|
let s = !0;
|
1438
1465
|
return (l) => {
|
1439
1466
|
if (!s)
|
@@ -1506,7 +1533,7 @@ n(A, "localeTime", (t) => {
|
|
1506
1533
|
let s = (/* @__PURE__ */ new Date()).getTimezoneOffset() + 480;
|
1507
1534
|
return H(t).add(s, "minutes").toDate();
|
1508
1535
|
});
|
1509
|
-
let
|
1536
|
+
let te = A;
|
1510
1537
|
const k = class k {
|
1511
1538
|
};
|
1512
1539
|
/**
|
@@ -1568,19 +1595,19 @@ n(k, "getParentById", (t, e, s, l) => {
|
|
1568
1595
|
*/
|
1569
1596
|
n(k, "getParentsById", (t, e, s, l, r = !1) => {
|
1570
1597
|
let i = [];
|
1571
|
-
return s == null ||
|
1598
|
+
return s == null || et(t, e, s, l, i, r), i;
|
1572
1599
|
}), /**
|
1573
1600
|
* 获取当前节点的所有孩子节点的集合
|
1574
1601
|
*/
|
1575
1602
|
n(k, "getChildrenById", (t, e, s, l, r = !1) => {
|
1576
1603
|
let i = k.getById(t, e, s, l), a = [];
|
1577
|
-
return r && a.push(i),
|
1604
|
+
return r && a.push(i), Be(i, l, a), a;
|
1578
1605
|
}), /**
|
1579
1606
|
* 获取当前节点的所有孩子节点的集合
|
1580
1607
|
*/
|
1581
1608
|
n(k, "getChildren", (t, e, s = !1) => {
|
1582
1609
|
let l = [];
|
1583
|
-
return s && l.push(t),
|
1610
|
+
return s && l.push(t), Be(t, e, l), l;
|
1584
1611
|
}), /**
|
1585
1612
|
* 搜索指定文本的树结构
|
1586
1613
|
*/
|
@@ -1648,40 +1675,40 @@ n(k, "map", (t, e, s, l) => {
|
|
1648
1675
|
}
|
1649
1676
|
return r;
|
1650
1677
|
});
|
1651
|
-
let
|
1652
|
-
function
|
1678
|
+
let De = k;
|
1679
|
+
function et(u, t, e, s, l, r) {
|
1653
1680
|
for (let i = 0; i < e.length; i++) {
|
1654
1681
|
let a = e[i];
|
1655
1682
|
if (a[t] == u) {
|
1656
1683
|
r && l.push(a);
|
1657
1684
|
break;
|
1658
1685
|
} else
|
1659
|
-
|
1686
|
+
De.getById(u, t, a[s], s) != null && (l.push(a), et(u, t, a[s], s, l, r));
|
1660
1687
|
}
|
1661
1688
|
return l;
|
1662
1689
|
}
|
1663
|
-
function
|
1690
|
+
function Be(u, t, e) {
|
1664
1691
|
let s = u[t];
|
1665
1692
|
if (!s || s.length == 0)
|
1666
1693
|
return e;
|
1667
1694
|
for (let l = 0; l < s.length; l++) {
|
1668
1695
|
let r = s[l];
|
1669
|
-
e.push(r),
|
1696
|
+
e.push(r), Be(r, t, e);
|
1670
1697
|
}
|
1671
1698
|
return e;
|
1672
1699
|
}
|
1673
|
-
class
|
1700
|
+
class We {
|
1674
1701
|
}
|
1675
1702
|
/**
|
1676
1703
|
* 判断指定元素滚动条位置,是否到了页面底部
|
1677
1704
|
*/
|
1678
|
-
n(
|
1705
|
+
n(We, "isBottom", (t) => {
|
1679
1706
|
let e = document.querySelector(t);
|
1680
1707
|
return e ? e.scrollTop + e.clientHeight == e.scrollHeight : !1;
|
1681
1708
|
}), /**
|
1682
1709
|
* 滚动指定元素的滚动条到页面底部
|
1683
1710
|
*/
|
1684
|
-
n(
|
1711
|
+
n(We, "scrollToBottom", (t) => {
|
1685
1712
|
let e = document.querySelector(t);
|
1686
1713
|
if (!e)
|
1687
1714
|
return;
|
@@ -1774,7 +1801,7 @@ class _ {
|
|
1774
1801
|
* 把json字符串合并到目标对象上
|
1775
1802
|
*/
|
1776
1803
|
static mergeTo(t, e) {
|
1777
|
-
if (
|
1804
|
+
if (M.isNullOrEmpty(e) || t == null)
|
1778
1805
|
return;
|
1779
1806
|
let s = JSON.parse(e), l = Object.keys(s);
|
1780
1807
|
for (let r of l)
|
@@ -1800,7 +1827,7 @@ class _ {
|
|
1800
1827
|
let a = t[i], o = l(a);
|
1801
1828
|
o.type == "array" ? (o.remark && (r += this.fillSpace(2 * s) + "//" + o.remark + `
|
1802
1829
|
`), r += this.fillKey(2 * s, o.key) + "[", r += this.buildObjectLevel(a[e], e, s + 1, l), r += "]", i != t.length - 1 && (r += ",")) : o.type == "object" ? (o.remark && (r += this.fillSpace(2 * s) + "//" + o.remark + `
|
1803
|
-
`), r += this.fillKey(2 * s, o.key), r += this.buildObjectLevel(a[e], e, s + 1, l), i != t.length - 1 && (r += ",")) : (r += this.fillKey(2 * s, o.key), o.type == "string" ? r += '""' : o.type == "date" ? r += `"${
|
1830
|
+
`), r += this.fillKey(2 * s, o.key), r += this.buildObjectLevel(a[e], e, s + 1, l), i != t.length - 1 && (r += ",")) : (r += this.fillKey(2 * s, o.key), o.type == "string" ? r += '""' : o.type == "date" ? r += `"${te.getDateTimeString()}"` : o.type == "int" || o.type == "number" ? r += "0" : o.type == "boolean" ? r += "false" : r += null, i != t.length - 1 && (r += ","), o.remark && (r += " //" + o.remark)), r += `
|
1804
1831
|
`;
|
1805
1832
|
}
|
1806
1833
|
return r += this.fillSpace(2 * (s - 1)), r += "}", r;
|
@@ -1823,7 +1850,7 @@ class _ {
|
|
1823
1850
|
}
|
1824
1851
|
//#endregion
|
1825
1852
|
}
|
1826
|
-
class
|
1853
|
+
class tt {
|
1827
1854
|
/**
|
1828
1855
|
* 获取浏览器默认语言
|
1829
1856
|
*/
|
@@ -1844,7 +1871,7 @@ class Bt {
|
|
1844
1871
|
* 签名字典
|
1845
1872
|
*/
|
1846
1873
|
static signDictionary(t, e = !0) {
|
1847
|
-
return this.clean(t),
|
1874
|
+
return this.clean(t), W.serialize(t, e);
|
1848
1875
|
}
|
1849
1876
|
}
|
1850
1877
|
class P {
|
@@ -1924,12 +1951,12 @@ class P {
|
|
1924
1951
|
}
|
1925
1952
|
//#endregion
|
1926
1953
|
}
|
1927
|
-
class
|
1954
|
+
class Re {
|
1928
1955
|
constructor() {
|
1929
1956
|
n(this, "type");
|
1930
1957
|
}
|
1931
1958
|
}
|
1932
|
-
class Pt extends
|
1959
|
+
class Pt extends Re {
|
1933
1960
|
constructor() {
|
1934
1961
|
super(...arguments);
|
1935
1962
|
n(this, "type", "Json");
|
@@ -1941,7 +1968,7 @@ class Pt extends Oe {
|
|
1941
1968
|
return _.serialize(e.rows, !0);
|
1942
1969
|
}
|
1943
1970
|
}
|
1944
|
-
class Ut extends
|
1971
|
+
class Ut extends Re {
|
1945
1972
|
constructor() {
|
1946
1973
|
super(...arguments);
|
1947
1974
|
n(this, "type", "Mongo");
|
@@ -1965,12 +1992,12 @@ class Ut extends Oe {
|
|
1965
1992
|
return i;
|
1966
1993
|
}
|
1967
1994
|
}
|
1968
|
-
class
|
1995
|
+
class Me {
|
1969
1996
|
constructor() {
|
1970
1997
|
n(this, "type");
|
1971
1998
|
}
|
1972
1999
|
}
|
1973
|
-
const
|
2000
|
+
const ce = class ce extends Me {
|
1974
2001
|
constructor() {
|
1975
2002
|
super(...arguments);
|
1976
2003
|
//#region 属性
|
@@ -1989,7 +2016,7 @@ const de = class de extends Ne {
|
|
1989
2016
|
let r = indexedDB.open(e);
|
1990
2017
|
r.onsuccess = (i) => {
|
1991
2018
|
let a = i.target.result;
|
1992
|
-
|
2019
|
+
ce.version = a.version, this.objectStoreNames = a.objectStoreNames, s(ce.version);
|
1993
2020
|
}, r.onerror = (i) => {
|
1994
2021
|
l(i.target);
|
1995
2022
|
};
|
@@ -2000,7 +2027,7 @@ const de = class de extends Ne {
|
|
2000
2027
|
*/
|
2001
2028
|
async createAsync(e) {
|
2002
2029
|
return this.store = e, this.objectStoreNames.contains(e) ? Promise.resolve(!0) : new Promise((s, l) => {
|
2003
|
-
let r = indexedDB.open(this.database, ++
|
2030
|
+
let r = indexedDB.open(this.database, ++ce.version);
|
2004
2031
|
r.onupgradeneeded = (i) => {
|
2005
2032
|
let a = i.target.result;
|
2006
2033
|
a.objectStoreNames.contains(this.store) || a.createObjectStore(this.store);
|
@@ -2016,7 +2043,7 @@ const de = class de extends Ne {
|
|
2016
2043
|
*/
|
2017
2044
|
async openDbAsync() {
|
2018
2045
|
return new Promise((e, s) => {
|
2019
|
-
let l = indexedDB.open(this.database,
|
2046
|
+
let l = indexedDB.open(this.database, ce.version);
|
2020
2047
|
l.onsuccess = (r) => {
|
2021
2048
|
let i = r.target.result;
|
2022
2049
|
e(i);
|
@@ -2158,9 +2185,9 @@ const de = class de extends Ne {
|
|
2158
2185
|
/**
|
2159
2186
|
* 静态版本,保证所有数据库实例拿到最新版本信息
|
2160
2187
|
*/
|
2161
|
-
n(
|
2162
|
-
let
|
2163
|
-
class Ft extends
|
2188
|
+
n(ce, "version", null);
|
2189
|
+
let Pe = ce;
|
2190
|
+
class Ft extends Me {
|
2164
2191
|
constructor() {
|
2165
2192
|
super(...arguments);
|
2166
2193
|
//#region 属性
|
@@ -2231,7 +2258,7 @@ class Ft extends Ne {
|
|
2231
2258
|
}
|
2232
2259
|
//#endregion
|
2233
2260
|
}
|
2234
|
-
class Mt extends
|
2261
|
+
class Mt extends Me {
|
2235
2262
|
constructor() {
|
2236
2263
|
super(...arguments);
|
2237
2264
|
n(this, "type", "Cookie");
|
@@ -2274,7 +2301,7 @@ class qt extends P {
|
|
2274
2301
|
n(this, "_default");
|
2275
2302
|
}
|
2276
2303
|
get instances() {
|
2277
|
-
return [new
|
2304
|
+
return [new Pe(), new Ft(), new Mt()];
|
2278
2305
|
}
|
2279
2306
|
/**
|
2280
2307
|
* 获取指定类型的提供程序
|
@@ -2296,7 +2323,7 @@ class qt extends P {
|
|
2296
2323
|
return this.create("Storage");
|
2297
2324
|
}
|
2298
2325
|
}
|
2299
|
-
class
|
2326
|
+
class Qe {
|
2300
2327
|
/**
|
2301
2328
|
* 获取实际SQL字段名称
|
2302
2329
|
*/
|
@@ -2313,13 +2340,13 @@ class Xe {
|
|
2313
2340
|
return e == "number" || e == "boolean" ? t : e == "object" || e == "string" ? `'${(e == "object" ? _.serialize(t) : t).replace(/'/g, "''")}'` : t;
|
2314
2341
|
}
|
2315
2342
|
}
|
2316
|
-
class
|
2343
|
+
class Ue extends Re {
|
2317
2344
|
constructor() {
|
2318
2345
|
super(...arguments);
|
2319
2346
|
n(this, "type", "Sql");
|
2320
2347
|
}
|
2321
2348
|
insert(e) {
|
2322
|
-
let { name: s, columns: l, rows: r } = e, i = e.getIdentity(), a = "", h = l.filter((d) => !d.identity).map((d) =>
|
2349
|
+
let { name: s, columns: l, rows: r } = e, i = e.getIdentity(), a = "", h = l.filter((d) => !d.identity).map((d) => Qe.getSqlName(d.name)).join(", ");
|
2323
2350
|
for (let d = 0; d < r.length; d++) {
|
2324
2351
|
let p = r[d];
|
2325
2352
|
a += `INSERT INTO ${s}\r
|
@@ -2327,12 +2354,12 @@ class Fe extends Oe {
|
|
2327
2354
|
`, a += `VALUES\r
|
2328
2355
|
`, a += "(";
|
2329
2356
|
let g = Object.keys(p);
|
2330
|
-
for (let
|
2331
|
-
let
|
2332
|
-
if (i != null && i.name ==
|
2357
|
+
for (let x = 0; x < g.length; x++) {
|
2358
|
+
let N = g[x];
|
2359
|
+
if (i != null && i.name == N)
|
2333
2360
|
continue;
|
2334
|
-
let
|
2335
|
-
a += `${
|
2361
|
+
let V = p[N];
|
2362
|
+
a += `${Qe.getValue(V)}`, x != g.length - 1 && (a += ", ");
|
2336
2363
|
}
|
2337
2364
|
a += ")", d != r.length - 1 && (a += `\r
|
2338
2365
|
\r
|
@@ -2344,24 +2371,24 @@ class Fe extends Oe {
|
|
2344
2371
|
return "";
|
2345
2372
|
}
|
2346
2373
|
}
|
2347
|
-
class Nt extends
|
2374
|
+
class Nt extends Re {
|
2348
2375
|
constructor() {
|
2349
2376
|
super(...arguments);
|
2350
2377
|
n(this, "type", "MySql");
|
2351
2378
|
}
|
2352
2379
|
insert(e) {
|
2353
|
-
return new
|
2380
|
+
return new Ue().insert(e);
|
2354
2381
|
}
|
2355
2382
|
update(e) {
|
2356
|
-
return new
|
2383
|
+
return new Ue().update(e);
|
2357
2384
|
}
|
2358
2385
|
}
|
2359
2386
|
class Vt extends P {
|
2360
2387
|
open() {
|
2361
|
-
super.open(), super.instances = [new Pt(), new Ut(), new Nt(), new
|
2388
|
+
super.open(), super.instances = [new Pt(), new Ut(), new Nt(), new Ue()];
|
2362
2389
|
}
|
2363
2390
|
}
|
2364
|
-
class
|
2391
|
+
class Hl {
|
2365
2392
|
constructor() {
|
2366
2393
|
/**
|
2367
2394
|
* 表名
|
@@ -2383,7 +2410,7 @@ class er {
|
|
2383
2410
|
return this.columns == null || this.columns.length == 0 ? null : this.columns.find((e) => e.identity);
|
2384
2411
|
}
|
2385
2412
|
}
|
2386
|
-
class
|
2413
|
+
class st {
|
2387
2414
|
constructor() {
|
2388
2415
|
/**
|
2389
2416
|
* 任务实例,用于控制并发
|
@@ -2415,7 +2442,7 @@ class lt {
|
|
2415
2442
|
* 通过注入DOM标签异步加载脚本或样式表,已防重
|
2416
2443
|
*/
|
2417
2444
|
n(this, "loadResourceAsync", async (t) => {
|
2418
|
-
let e =
|
2445
|
+
let e = M.getArray(t), s = [];
|
2419
2446
|
for (let r of e) {
|
2420
2447
|
let i = new Promise((a, o) => {
|
2421
2448
|
let c = j.getByUrl(r);
|
@@ -2437,6 +2464,13 @@ class lt {
|
|
2437
2464
|
async open(t) {
|
2438
2465
|
this.task = await C.task.create("Memory"), this.task.taskLimit = 1;
|
2439
2466
|
}
|
2467
|
+
async getECharts(t) {
|
2468
|
+
let e = window.echarts;
|
2469
|
+
if (e)
|
2470
|
+
return e;
|
2471
|
+
let s = ["/dist/echarts.min.js"];
|
2472
|
+
return await this.loadFilesAsync(t, s), e = window.echarts, e;
|
2473
|
+
}
|
2440
2474
|
async getMonaco(t = null) {
|
2441
2475
|
let e = window.monaco;
|
2442
2476
|
if (e)
|
@@ -2475,12 +2509,12 @@ class lt {
|
|
2475
2509
|
await this.loadResourceAsync(s);
|
2476
2510
|
}
|
2477
2511
|
async loadAsync(t) {
|
2478
|
-
let e =
|
2512
|
+
let e = M.getArray(t);
|
2479
2513
|
return await this.loadResourceAsync(e);
|
2480
2514
|
}
|
2481
2515
|
//#endregion
|
2482
2516
|
}
|
2483
|
-
class zt extends
|
2517
|
+
class zt extends st {
|
2484
2518
|
constructor() {
|
2485
2519
|
super(...arguments);
|
2486
2520
|
//#region 属性
|
@@ -2492,8 +2526,7 @@ class zt extends lt {
|
|
2492
2526
|
return await super.loadFilesAsync("/assets/crypto-js@4.2.0", e), window.CryptoJS;
|
2493
2527
|
}
|
2494
2528
|
async getECharts() {
|
2495
|
-
|
2496
|
-
return await super.loadFilesAsync("/assets/echarts@5.5.1", e), window.echarts;
|
2529
|
+
return await super.getECharts("/assets/echarts@5.5.1");
|
2497
2530
|
}
|
2498
2531
|
async getElementPlus() {
|
2499
2532
|
let e = ["/dist/index.css", "/theme-chalk/dark/css-vars.css"];
|
@@ -2517,7 +2550,7 @@ class zt extends lt {
|
|
2517
2550
|
return await super.loadFilesAsync("/assets/xlsx-js-style@1.2.0", e), window.XLSX;
|
2518
2551
|
}
|
2519
2552
|
}
|
2520
|
-
class Kt extends
|
2553
|
+
class Kt extends st {
|
2521
2554
|
constructor() {
|
2522
2555
|
super(...arguments);
|
2523
2556
|
//#region 属性
|
@@ -2531,8 +2564,7 @@ class Kt extends lt {
|
|
2531
2564
|
return await super.loadFilesAsync(`${this.jdCdn}/crypto-js@4.2.0`, e), window.CryptoJS;
|
2532
2565
|
}
|
2533
2566
|
async getECharts() {
|
2534
|
-
|
2535
|
-
return await super.loadFilesAsync(`${this.jdCdn}/echarts@5.5.1`, e), window.echarts;
|
2567
|
+
return await super.getECharts(`${this.jdCdn}/echarts@5.5.1`);
|
2536
2568
|
}
|
2537
2569
|
async getElementPlus() {
|
2538
2570
|
let e = [
|
@@ -2600,7 +2632,7 @@ class Jt extends Qt {
|
|
2600
2632
|
//#endregion
|
2601
2633
|
//#region 开启
|
2602
2634
|
async open(e) {
|
2603
|
-
this.crypto = await
|
2635
|
+
this.crypto = await fe.getCrypto();
|
2604
2636
|
}
|
2605
2637
|
//#endregion
|
2606
2638
|
encodeString(e) {
|
@@ -2645,7 +2677,7 @@ class Gt extends Yt {
|
|
2645
2677
|
//#endregion
|
2646
2678
|
//#region 开启
|
2647
2679
|
async open(e) {
|
2648
|
-
this.xlsx = await
|
2680
|
+
this.xlsx = await fe.getXlsx();
|
2649
2681
|
}
|
2650
2682
|
//#endregion
|
2651
2683
|
export(e, s) {
|
@@ -2660,8 +2692,8 @@ class Gt extends Yt {
|
|
2660
2692
|
}), r.push(i), e.length > 0)
|
2661
2693
|
for (let d = 0; d < e.length; d++) {
|
2662
2694
|
let p = e[d], g = [];
|
2663
|
-
Object.keys(p).forEach((
|
2664
|
-
g.push(p[
|
2695
|
+
Object.keys(p).forEach((x) => {
|
2696
|
+
g.push(p[x]);
|
2665
2697
|
}), r.push(g);
|
2666
2698
|
}
|
2667
2699
|
let a = this.xlsx.utils.book_new(), o = this.xlsx.utils.json_to_sheet(r, { skipHeader: !0 });
|
@@ -2769,12 +2801,12 @@ class ns extends P {
|
|
2769
2801
|
return s.open(null), s;
|
2770
2802
|
}
|
2771
2803
|
}
|
2772
|
-
class
|
2804
|
+
class lt {
|
2773
2805
|
constructor() {
|
2774
2806
|
n(this, "type");
|
2775
2807
|
}
|
2776
2808
|
}
|
2777
|
-
class is extends
|
2809
|
+
class is extends lt {
|
2778
2810
|
constructor() {
|
2779
2811
|
super(...arguments);
|
2780
2812
|
//#region 属性
|
@@ -2790,7 +2822,7 @@ class is extends rt {
|
|
2790
2822
|
return Array.from(new Uint8Array(r)).map((o) => o.toString(16).padStart(2, "0")).join("");
|
2791
2823
|
}
|
2792
2824
|
}
|
2793
|
-
class as extends
|
2825
|
+
class as extends lt {
|
2794
2826
|
constructor() {
|
2795
2827
|
super(...arguments);
|
2796
2828
|
//#region 属性
|
@@ -2800,7 +2832,7 @@ class as extends rt {
|
|
2800
2832
|
//#endregion
|
2801
2833
|
//#region 开启
|
2802
2834
|
async open(e) {
|
2803
|
-
this.crypto = await
|
2835
|
+
this.crypto = await fe.getCrypto();
|
2804
2836
|
}
|
2805
2837
|
//#endregion
|
2806
2838
|
compute(e) {
|
@@ -2823,7 +2855,7 @@ class os extends P {
|
|
2823
2855
|
return await this.createIfAbsent("Md5");
|
2824
2856
|
}
|
2825
2857
|
}
|
2826
|
-
class
|
2858
|
+
class rt {
|
2827
2859
|
constructor() {
|
2828
2860
|
/**
|
2829
2861
|
* 请求唯一标识
|
@@ -2881,11 +2913,11 @@ class nt {
|
|
2881
2913
|
* 不能放在getRequest中处理,因为外部会直接调用当前send方法,而不走getRequest
|
2882
2914
|
*/
|
2883
2915
|
prepare() {
|
2884
|
-
this.time = /* @__PURE__ */ new Date(), this.body == null && this.data != null && this.contentType
|
2916
|
+
this.time = /* @__PURE__ */ new Date(), this.body == null && this.data != null && M.startWith(this.contentType, "application/json") && (this.body = _.serializeWithoutString(this.data)), this.data == null && this.body != null && M.startWith(this.contentType, "application/json") && (this.data = _.deserialize(this.body)), this.contentType != null && this.addHeader("content-type", this.contentType);
|
2885
2917
|
}
|
2886
2918
|
//#endregion
|
2887
2919
|
}
|
2888
|
-
class
|
2920
|
+
class nt extends rt {
|
2889
2921
|
constructor() {
|
2890
2922
|
super();
|
2891
2923
|
/**
|
@@ -2900,10 +2932,10 @@ class it extends nt {
|
|
2900
2932
|
* 实际请求地址
|
2901
2933
|
*/
|
2902
2934
|
n(this, "url");
|
2903
|
-
this.id =
|
2935
|
+
this.id = M.getUniqueId(8);
|
2904
2936
|
}
|
2905
2937
|
}
|
2906
|
-
class
|
2938
|
+
class qe {
|
2907
2939
|
constructor() {
|
2908
2940
|
//#region 属性
|
2909
2941
|
n(this, "type");
|
@@ -2914,7 +2946,7 @@ class Ve {
|
|
2914
2946
|
//#endregion
|
2915
2947
|
n(this, "get", async (t, e) => (await this.sendGet(t, e)).data);
|
2916
2948
|
n(this, "sendGet", async (t, e) => {
|
2917
|
-
let s =
|
2949
|
+
let s = W.getUrl(t, e), l = this.getRequest("GET", "application/json", s);
|
2918
2950
|
return await this.send(l);
|
2919
2951
|
});
|
2920
2952
|
n(this, "post", async (t, e) => (await this.sendPost(t, e)).data);
|
@@ -2931,7 +2963,7 @@ class Ve {
|
|
2931
2963
|
* 获取请求消息
|
2932
2964
|
*/
|
2933
2965
|
n(this, "getRequest", (t, e, s, l = null) => {
|
2934
|
-
let r = new
|
2966
|
+
let r = new nt();
|
2935
2967
|
return r.method = t, r.contentType = e, r.path = s, r.body = _.serializeWithoutString(l), r;
|
2936
2968
|
});
|
2937
2969
|
}
|
@@ -2953,7 +2985,7 @@ class Ve {
|
|
2953
2985
|
this.http != null && (this.http.onResponse = t);
|
2954
2986
|
}
|
2955
2987
|
}
|
2956
|
-
class
|
2988
|
+
class Je extends rt {
|
2957
2989
|
constructor() {
|
2958
2990
|
super(...arguments);
|
2959
2991
|
/**
|
@@ -2978,7 +3010,7 @@ class Ye extends nt {
|
|
2978
3010
|
n(this, "request");
|
2979
3011
|
}
|
2980
3012
|
}
|
2981
|
-
class us extends
|
3013
|
+
class us extends qe {
|
2982
3014
|
constructor() {
|
2983
3015
|
super(...arguments);
|
2984
3016
|
//#region 属性
|
@@ -3003,7 +3035,7 @@ class us extends Ve {
|
|
3003
3035
|
}
|
3004
3036
|
//#endregion
|
3005
3037
|
async send(e) {
|
3006
|
-
|
3038
|
+
M.isNullOrEmpty(e.url) && (e.url = this.baseUrl + e.path), e.prepare();
|
3007
3039
|
let s;
|
3008
3040
|
return typeof XMLHttpRequest > "u" ? (s = await this.sendWithFetch(e), s) : (s = await this.sendWithXmlHttpRequest(e), s);
|
3009
3041
|
}
|
@@ -3011,7 +3043,7 @@ class us extends Ve {
|
|
3011
3043
|
* 使用Fetch发送请求,谷歌插件场景专用
|
3012
3044
|
*/
|
3013
3045
|
async sendWithFetch(e) {
|
3014
|
-
let s = (/* @__PURE__ */ new Date()).getTime(), l = new
|
3046
|
+
let s = (/* @__PURE__ */ new Date()).getTime(), l = new Je();
|
3015
3047
|
l.request = e, l.id = e.id;
|
3016
3048
|
let r = {
|
3017
3049
|
method: e.method,
|
@@ -3030,7 +3062,7 @@ class us extends Ve {
|
|
3030
3062
|
* 使用XmlHttpRequest发送请求
|
3031
3063
|
*/
|
3032
3064
|
sendWithXmlHttpRequest(e) {
|
3033
|
-
let s = new
|
3065
|
+
let s = new Je();
|
3034
3066
|
return s.request = e, s.id = e.id, new Promise(async (l, r) => {
|
3035
3067
|
var a;
|
3036
3068
|
await ((a = this.onRequest) == null ? void 0 : a.call(this, e));
|
@@ -3059,7 +3091,7 @@ class us extends Ve {
|
|
3059
3091
|
});
|
3060
3092
|
}
|
3061
3093
|
}
|
3062
|
-
class cs extends
|
3094
|
+
class cs extends qe {
|
3063
3095
|
constructor() {
|
3064
3096
|
super(...arguments);
|
3065
3097
|
//#region 属性
|
@@ -3081,37 +3113,37 @@ class cs extends Ve {
|
|
3081
3113
|
*/
|
3082
3114
|
n(this, "hasher");
|
3083
3115
|
//#endregion
|
3116
|
+
//#region 开启
|
3117
|
+
/**
|
3118
|
+
* 危险操作,会暴露敏感信息
|
3119
|
+
*/
|
3120
|
+
n(this, "open", async (e) => {
|
3121
|
+
await super.open(e), this.http = await C.http.getDefault(), this.hasher = await C.hasher.create("Sha256");
|
3122
|
+
});
|
3123
|
+
//#endregion
|
3084
3124
|
/**
|
3085
3125
|
* 危险操作,会暴露敏感信息
|
3086
3126
|
*/
|
3087
3127
|
n(this, "send", async (e) => {
|
3088
|
-
let s =
|
3128
|
+
let s = te.getTimestamp(), l = {
|
3089
3129
|
app_id: this.appId,
|
3090
3130
|
hash_type: "sha256",
|
3091
3131
|
timestamp: parseInt((s / 1e3).toString())
|
3092
3132
|
};
|
3093
|
-
|
3094
|
-
let r =
|
3133
|
+
M.isNullOrEmpty(e.body) || (l.jsonBody = e.body);
|
3134
|
+
let r = W.deserialize(e.path);
|
3095
3135
|
for (let p in r)
|
3096
3136
|
l[p] = r[p];
|
3097
|
-
let i =
|
3098
|
-
l =
|
3137
|
+
let i = W.getPath(e.path);
|
3138
|
+
l = _e.sort(l);
|
3099
3139
|
let a = Bt.signDictionary(l, !1), o = `POST${i}?${a}${this.appSecret}`, c = await this.hasher.compute(o);
|
3100
|
-
l.sign = c.toLowerCase(), delete l.jsonBody, l =
|
3101
|
-
let h =
|
3102
|
-
return e.url =
|
3140
|
+
l.sign = c.toLowerCase(), delete l.jsonBody, l = _e.sort(l);
|
3141
|
+
let h = W.serialize(l);
|
3142
|
+
return e.url = W.concatUrl(this.baseUrl, i + "?" + h), await this.http.send(e);
|
3103
3143
|
});
|
3104
3144
|
}
|
3105
|
-
//#endregion
|
3106
|
-
//#region 开启
|
3107
|
-
/**
|
3108
|
-
* 危险操作,会暴露敏感信息
|
3109
|
-
*/
|
3110
|
-
async open(e) {
|
3111
|
-
await super.open(e), this.http = await C.http.getDefault(), this.hasher = await C.hasher.create("Sha256");
|
3112
|
-
}
|
3113
3145
|
}
|
3114
|
-
class ds extends
|
3146
|
+
class ds extends qe {
|
3115
3147
|
constructor() {
|
3116
3148
|
super(...arguments);
|
3117
3149
|
//#region 属性
|
@@ -3145,11 +3177,16 @@ class ds extends Ve {
|
|
3145
3177
|
*/
|
3146
3178
|
n(this, "signer");
|
3147
3179
|
//#endregion
|
3180
|
+
//#region 开启
|
3181
|
+
n(this, "open", async (e) => {
|
3182
|
+
await super.open(e), this.http = await C.http.getDefault(), this.user != null && (this.sso = await C.sso.create(this.user.type)), this.signer = await C.signer.createIfAbsent("default"), this.onRequest == null && (this.onRequest = this.beforeRequest);
|
3183
|
+
});
|
3184
|
+
//#endregion
|
3148
3185
|
/**
|
3149
3186
|
* 发送请求
|
3150
3187
|
*/
|
3151
3188
|
n(this, "send", async (e) => {
|
3152
|
-
e.url =
|
3189
|
+
e.url = W.concatUrl(this.baseUrl, e.path), await this.onRequest(e);
|
3153
3190
|
let s = await this.http.send(e);
|
3154
3191
|
if (s.status != 200) {
|
3155
3192
|
let r;
|
@@ -3159,22 +3196,22 @@ class ds extends Ve {
|
|
3159
3196
|
let i = s.status ? `(${s.status})` : "";
|
3160
3197
|
r = `接口加载异常: ${e.method}${i} ${e.url}`;
|
3161
3198
|
}
|
3162
|
-
return
|
3199
|
+
return me.warning(r), Promise.reject(r);
|
3163
3200
|
}
|
3164
3201
|
let l = s.data;
|
3165
|
-
return l.code
|
3202
|
+
return l.code == null || l.code == "Ok" ? s : (me.error(l.message), Promise.reject(l));
|
3166
3203
|
});
|
3167
3204
|
/**
|
3168
3205
|
* 请求预处理
|
3169
3206
|
*/
|
3170
3207
|
n(this, "beforeRequest", async (e) => {
|
3171
|
-
if (
|
3208
|
+
if (W.httpOrHttps(e.path))
|
3172
3209
|
return Promise.resolve();
|
3173
3210
|
let s;
|
3174
3211
|
if (this.user == null)
|
3175
3212
|
s = this.platform;
|
3176
3213
|
else {
|
3177
|
-
let r =
|
3214
|
+
let r = te.getTimestamp(), i = await this.signer.getSign(this.user.userId, e.url, e.body, r, this.user.secret);
|
3178
3215
|
s = this.sso.getAuth(this.user.identity.token, r, i, this.platform, this.env);
|
3179
3216
|
}
|
3180
3217
|
let l = {};
|
@@ -3186,20 +3223,12 @@ class ds extends Ve {
|
|
3186
3223
|
n(this, "handleError", (e) => {
|
3187
3224
|
if (e instanceof Object) {
|
3188
3225
|
let s = e.message;
|
3189
|
-
e.message == "Network Error" && (
|
3226
|
+
e.message == "Network Error" && (W.httpOrHttps(e.config.url) ? s = "接口网络错误: " + e.config.url : s = "接口网络错误: " + e.config.baseURL + e.config.url), me.error(s);
|
3190
3227
|
} else
|
3191
|
-
|
3228
|
+
me.error(e.message);
|
3192
3229
|
return Promise.reject(e);
|
3193
3230
|
});
|
3194
3231
|
}
|
3195
|
-
//#endregion
|
3196
|
-
//#region 开启
|
3197
|
-
/**
|
3198
|
-
* 开启
|
3199
|
-
*/
|
3200
|
-
async open(e) {
|
3201
|
-
await super.open(e), this.http = await C.http.getDefault(), this.user != null && (this.sso = await C.sso.create(this.user.type)), this.signer = await C.signer.createIfAbsent("default"), this.onRequest == null && (this.onRequest = this.beforeRequest);
|
3202
|
-
}
|
3203
3232
|
}
|
3204
3233
|
class hs extends P {
|
3205
3234
|
get instances() {
|
@@ -3233,7 +3262,12 @@ class ps {
|
|
3233
3262
|
n(this, "type");
|
3234
3263
|
n(this, "lang");
|
3235
3264
|
n(this, "messages", {});
|
3265
|
+
/**
|
3266
|
+
* 已加载的语言集合
|
3267
|
+
*/
|
3268
|
+
n(this, "loaded", []);
|
3236
3269
|
//#endregion
|
3270
|
+
//#region 翻译
|
3237
3271
|
n(this, "t", (t, e) => {
|
3238
3272
|
if (!t)
|
3239
3273
|
return null;
|
@@ -3263,6 +3297,7 @@ class ps {
|
|
3263
3297
|
n(this, "t_field_choose_placeholder", (t, e) => this.t("common.please_choose") + this.t(`_business.Ctl_Table_Field.Label.${t}.${e}`));
|
3264
3298
|
n(this, "t_sys", (t) => this.t(`sys.${t}`));
|
3265
3299
|
n(this, "t_title", () => this.t("sys.title"));
|
3300
|
+
//#endregion
|
3266
3301
|
//#region 设置标题
|
3267
3302
|
/**
|
3268
3303
|
* 根据key设置多语言标题
|
@@ -3278,6 +3313,7 @@ class ps {
|
|
3278
3313
|
let s = this.t_title(), l;
|
3279
3314
|
s ? t ? e ? l = `${t}(${e}) - ${s}` : l = `${t} - ${s}` : l = s : e ? l = `${t}(${e})` : l = t, document.title = l;
|
3280
3315
|
});
|
3316
|
+
//#endregion
|
3281
3317
|
//#region 加载
|
3282
3318
|
n(this, "addMessages", (t) => {
|
3283
3319
|
let e = Object.keys(t);
|
@@ -3285,11 +3321,12 @@ class ps {
|
|
3285
3321
|
this.messages[s] = t[s];
|
3286
3322
|
this.setTitle(this.t("common.loading") + "...");
|
3287
3323
|
});
|
3288
|
-
|
3289
|
-
|
3290
|
-
|
3291
|
-
|
3292
|
-
|
3324
|
+
n(this, "switch", async (t) => {
|
3325
|
+
if (this.loaded.includes(t)) {
|
3326
|
+
this.lang = t;
|
3327
|
+
return;
|
3328
|
+
}
|
3329
|
+
await this.load(t), this.lang = t, this.loaded.push(t);
|
3293
3330
|
});
|
3294
3331
|
}
|
3295
3332
|
//#endregion
|
@@ -3305,8 +3342,8 @@ class fs extends ps {
|
|
3305
3342
|
n(this, "type", "Default");
|
3306
3343
|
//#endregion
|
3307
3344
|
n(this, "translate", (e, s) => {
|
3308
|
-
let l = this.messages[this.lang], r = e.split(".");
|
3309
|
-
return
|
3345
|
+
let l = this.messages[this.lang], r = e.split("."), i = _.getValue(l, r);
|
3346
|
+
return s == null ? i : M.format(i, s);
|
3310
3347
|
});
|
3311
3348
|
n(this, "t_exists", (e) => {
|
3312
3349
|
if (!e)
|
@@ -3314,23 +3351,25 @@ class fs extends ps {
|
|
3314
3351
|
let s = this.messages[this.lang], l = e.split(".");
|
3315
3352
|
return _.hasKey(s, l);
|
3316
3353
|
});
|
3317
|
-
n(this, "
|
3354
|
+
n(this, "load", async (e) => {
|
3318
3355
|
e == null && (e = this.lang);
|
3319
3356
|
let s = new Promise(async (r) => {
|
3320
3357
|
let i = { conditions: [{ name: "lang", value: e }] };
|
3321
3358
|
return T.post("/i18n", i).then(({ data: a }) => {
|
3322
|
-
|
3323
|
-
let c = `${e}.${o.
|
3359
|
+
for (let o of a) {
|
3360
|
+
let c = `${e}.${o.Kind}.${o.Key}`.split(".");
|
3324
3361
|
X.addProperties(this.messages, c, o.Value);
|
3325
|
-
}
|
3362
|
+
}
|
3363
|
+
r(a);
|
3326
3364
|
});
|
3327
3365
|
}), l = new Promise((r) => {
|
3328
3366
|
let i = { conditions: [{ name: "lang", value: e }] };
|
3329
3367
|
T.post("/i18n_business", i).then(({ data: a }) => {
|
3330
|
-
|
3368
|
+
for (let o of a) {
|
3331
3369
|
let c = `${e}._business.${o.Table}.${o.Field}.${o.Key}`.split(".");
|
3332
3370
|
X.addProperties(this.messages, c, o.Value);
|
3333
|
-
}
|
3371
|
+
}
|
3372
|
+
r(a);
|
3334
3373
|
});
|
3335
3374
|
});
|
3336
3375
|
await Promise.all([s, l]);
|
@@ -3493,7 +3532,7 @@ class Ss {
|
|
3493
3532
|
await this.provider.deleteAsync("user"), await this.provider.deleteAsync("sso");
|
3494
3533
|
}
|
3495
3534
|
}
|
3496
|
-
class
|
3535
|
+
class it {
|
3497
3536
|
constructor() {
|
3498
3537
|
/**
|
3499
3538
|
* 用户标识
|
@@ -3525,7 +3564,7 @@ class Cs {
|
|
3525
3564
|
return "";
|
3526
3565
|
}
|
3527
3566
|
async getUser() {
|
3528
|
-
let t = new
|
3567
|
+
let t = new it();
|
3529
3568
|
return t.userId = "", t;
|
3530
3569
|
}
|
3531
3570
|
getAuth(t, e, s, l) {
|
@@ -3562,10 +3601,10 @@ class Ts extends Es {
|
|
3562
3601
|
async getUser() {
|
3563
3602
|
let e = await this.provider.getAsync("anonymous");
|
3564
3603
|
if (!e) {
|
3565
|
-
let l =
|
3604
|
+
let l = M.getUniqueId();
|
3566
3605
|
await this.provider.saveAsync("anonymous", l), e = l;
|
3567
3606
|
}
|
3568
|
-
let s = new
|
3607
|
+
let s = new it();
|
3569
3608
|
return s.identity = { token: e }, s;
|
3570
3609
|
}
|
3571
3610
|
getAuth(e, s, l, r) {
|
@@ -3643,9 +3682,9 @@ class As {
|
|
3643
3682
|
n(this, "app", new Ls());
|
3644
3683
|
}
|
3645
3684
|
}
|
3646
|
-
class
|
3685
|
+
class at {
|
3647
3686
|
}
|
3648
|
-
class
|
3687
|
+
class ot extends at {
|
3649
3688
|
constructor() {
|
3650
3689
|
super(...arguments);
|
3651
3690
|
//#region 属性
|
@@ -3671,23 +3710,26 @@ class ut extends ot {
|
|
3671
3710
|
*/
|
3672
3711
|
completions: {}
|
3673
3712
|
});
|
3674
|
-
|
3675
|
-
|
3676
|
-
|
3677
|
-
|
3678
|
-
|
3679
|
-
|
3680
|
-
|
3681
|
-
|
3682
|
-
|
3683
|
-
|
3684
|
-
|
3685
|
-
|
3686
|
-
|
3687
|
-
|
3688
|
-
|
3689
|
-
|
3690
|
-
|
3713
|
+
//#endregion
|
3714
|
+
//#region 开启
|
3715
|
+
/**
|
3716
|
+
* 初始化绑定基础配置信息
|
3717
|
+
*/
|
3718
|
+
n(this, "open", (e) => {
|
3719
|
+
let s = this.sys.app;
|
3720
|
+
s.background = e.background, s.theme = e.theme, s.layout = e.layout, s.language = e.language, s.font = e.font;
|
3721
|
+
});
|
3722
|
+
/**
|
3723
|
+
* 初始化配置值(不一定跟登录用户相关,这也是单独分离的好处)
|
3724
|
+
*/
|
3725
|
+
n(this, "bind", async (e) => {
|
3726
|
+
for (let r of e) {
|
3727
|
+
let a = await this.get(r.kind, r.type) ?? r.content;
|
3728
|
+
X.addProperties(this, [r.kind, r.type], a);
|
3729
|
+
}
|
3730
|
+
let s = this.sys.app, l = document.documentElement;
|
3731
|
+
j.removeClass(l, ct.theme), j.addClass(l, s.theme), ye.emit("theme", s.theme), j.addClass(l, s.layout), this.setBackground(s.background), j.addStyle(l, "font-family", s.font);
|
3732
|
+
});
|
3691
3733
|
}
|
3692
3734
|
/**
|
3693
3735
|
* 尝试添加架构
|
@@ -3728,9 +3770,9 @@ class ut extends ot {
|
|
3728
3770
|
let s = this.sys.app, l = document.documentElement, r = e.layout;
|
3729
3771
|
l.classList.remove(s.layout), l.classList.add(r), s.layout = r;
|
3730
3772
|
let i = e.theme;
|
3731
|
-
j.removeClass(l, s.theme), j.addClass(l, i), s.theme = i,
|
3773
|
+
j.removeClass(l, s.theme), j.addClass(l, i), s.theme = i, ye.emit("theme", i);
|
3732
3774
|
let a = e.background;
|
3733
|
-
this.setBackground(a),
|
3775
|
+
this.setBackground(a), ye.emit("background", a);
|
3734
3776
|
let o = e.font;
|
3735
3777
|
s.font = o, j.addStyle(l, "font-family", o);
|
3736
3778
|
}
|
@@ -3766,7 +3808,7 @@ class ut extends ot {
|
|
3766
3808
|
* 获取当前语言
|
3767
3809
|
*/
|
3768
3810
|
getLanguage() {
|
3769
|
-
let e =
|
3811
|
+
let e = tt.getLanguage();
|
3770
3812
|
return this.sys.app.language || e || "zh-cn";
|
3771
3813
|
}
|
3772
3814
|
}
|
@@ -3781,10 +3823,10 @@ class Ds {
|
|
3781
3823
|
* 使用环境变量
|
3782
3824
|
*/
|
3783
3825
|
useEnv(t) {
|
3784
|
-
this.env = t, this.env.base =
|
3826
|
+
this.env = t, this.env.base = M.trimEnd(t.VITE_ROOT, "/");
|
3785
3827
|
}
|
3786
3828
|
}
|
3787
|
-
class
|
3829
|
+
class Rs {
|
3788
3830
|
constructor() {
|
3789
3831
|
/**
|
3790
3832
|
* 日志集合
|
@@ -3795,7 +3837,7 @@ class Is {
|
|
3795
3837
|
* 手动添加日志
|
3796
3838
|
*/
|
3797
3839
|
add(t, e, s, l = null) {
|
3798
|
-
let r =
|
3840
|
+
let r = te.getTimeString();
|
3799
3841
|
this.logs.unshift({ time: r, code: t, message: e, stack: s, elapsed: l });
|
3800
3842
|
}
|
3801
3843
|
/**
|
@@ -3811,7 +3853,7 @@ class Is {
|
|
3811
3853
|
this.logs = [];
|
3812
3854
|
}
|
3813
3855
|
}
|
3814
|
-
class
|
3856
|
+
class Is {
|
3815
3857
|
constructor() {
|
3816
3858
|
/**
|
3817
3859
|
* 获取侧边栏宽度
|
@@ -3824,8 +3866,8 @@ class Os {
|
|
3824
3866
|
this[e] = t[e];
|
3825
3867
|
}
|
3826
3868
|
}
|
3827
|
-
let
|
3828
|
-
class
|
3869
|
+
let Le = new Is();
|
3870
|
+
class Os {
|
3829
3871
|
constructor() {
|
3830
3872
|
//#region 属性
|
3831
3873
|
n(this, "loaded", !1);
|
@@ -3896,10 +3938,14 @@ class Rs {
|
|
3896
3938
|
* 加载设置
|
3897
3939
|
*/
|
3898
3940
|
async load() {
|
3899
|
-
return T.get("/app/setting").then(({ data: t }) =>
|
3900
|
-
let
|
3901
|
-
s
|
3902
|
-
|
3941
|
+
return T.get("/app/setting").then(({ data: t }) => {
|
3942
|
+
let e = Object.keys(t);
|
3943
|
+
for (let s of e) {
|
3944
|
+
let l = t[s];
|
3945
|
+
l && (this[s] = l);
|
3946
|
+
}
|
3947
|
+
return j.addClass(document.documentElement, this.theme, Le.web.theme), ye.emits({ theme: this.theme }), Promise.resolve(t);
|
3948
|
+
}).catch((t) => Promise.reject(t));
|
3903
3949
|
}
|
3904
3950
|
}
|
3905
3951
|
class js {
|
@@ -3927,12 +3973,12 @@ class js {
|
|
3927
3973
|
* 登录后,连接Socket
|
3928
3974
|
*/
|
3929
3975
|
async connect() {
|
3930
|
-
if (!
|
3976
|
+
if (!Le.api.ws)
|
3931
3977
|
return;
|
3932
3978
|
if (this.socket == null || this.reconnect) {
|
3933
|
-
let e =
|
3979
|
+
let e = Le.api.ws, s = new nt();
|
3934
3980
|
s.path = e, s.method = "GET", await T.onRequest(s);
|
3935
|
-
let l = s.getHeader("Authorization"), r =
|
3981
|
+
let l = s.getHeader("Authorization"), r = W.encode(l), i = `${e}?authorization=${r}`;
|
3936
3982
|
this.socket = new WebSocket(i);
|
3937
3983
|
}
|
3938
3984
|
let t;
|
@@ -3941,7 +3987,7 @@ class js {
|
|
3941
3987
|
}, this.socket.onmessage = (e) => {
|
3942
3988
|
this.handler && this.handler(e);
|
3943
3989
|
}, this.socket.onerror = (e) => {
|
3944
|
-
this.reconnect = !0, console.warn(`Socket连接失败:${
|
3990
|
+
this.reconnect = !0, console.warn(`Socket连接失败:${Le.api.ws}`);
|
3945
3991
|
}, this.socket.onclose = (e) => {
|
3946
3992
|
this.connected = !1, this.reconnect && (t = setTimeout(async () => await this.connect(), 1e3));
|
3947
3993
|
};
|
@@ -4000,26 +4046,26 @@ class _s {
|
|
4000
4046
|
* 登录后,获取用户信息
|
4001
4047
|
*/
|
4002
4048
|
async loadInfo() {
|
4003
|
-
return T.get("/user/info").then(async ({ data: t }) => (await
|
4049
|
+
return T.get("/user/info").then(async ({ data: t }) => (await ee.bind(t.configs), this.user = t, this.debugger = t.debugger, Promise.resolve(t)));
|
4004
4050
|
}
|
4005
4051
|
/**
|
4006
4052
|
* 未登录,获取匿名登录信息
|
4007
4053
|
*/
|
4008
4054
|
async getAnonymous() {
|
4009
|
-
await
|
4055
|
+
await ee.bind([]);
|
4010
4056
|
}
|
4011
4057
|
/**
|
4012
4058
|
* 根据路径获取路由
|
4013
4059
|
*/
|
4014
4060
|
getMenuByUrl(t) {
|
4015
|
-
let e =
|
4061
|
+
let e = W.getPath(t);
|
4016
4062
|
return this.menusFlat.find((l) => l.url.split("?")[0] == e);
|
4017
4063
|
}
|
4018
4064
|
/**
|
4019
4065
|
* 加载服务端路由
|
4020
4066
|
*/
|
4021
4067
|
async loadMenus() {
|
4022
|
-
return T.get("/user/menu").then(({ data: t }) => (this.menus = t, this.menusFlat =
|
4068
|
+
return T.get("/user/menu").then(({ data: t }) => (this.menus = t, this.menusFlat = De.getFlat(t, "children"), Promise.resolve(t)));
|
4023
4069
|
}
|
4024
4070
|
/**
|
4025
4071
|
* 退出登录
|
@@ -4032,7 +4078,7 @@ class _s {
|
|
4032
4078
|
});
|
4033
4079
|
}
|
4034
4080
|
}
|
4035
|
-
class
|
4081
|
+
class ut extends at {
|
4036
4082
|
constructor() {
|
4037
4083
|
super(...arguments);
|
4038
4084
|
//#region 属性
|
@@ -4087,8 +4133,8 @@ class ct extends ot {
|
|
4087
4133
|
class Bs extends P {
|
4088
4134
|
open() {
|
4089
4135
|
super.open(), super.instances = [
|
4090
|
-
new
|
4091
|
-
new
|
4136
|
+
new ot(),
|
4137
|
+
new ut()
|
4092
4138
|
];
|
4093
4139
|
}
|
4094
4140
|
static() {
|
@@ -4101,10 +4147,8 @@ class Bs extends P {
|
|
4101
4147
|
return await super.createIfAbsent("Config");
|
4102
4148
|
}
|
4103
4149
|
}
|
4104
|
-
let
|
4105
|
-
|
4106
|
-
};
|
4107
|
-
class qs extends P {
|
4150
|
+
let ct = Ye(new Os()), ee = new ot(), er = Ye(new ut()), tr = new Ds(), Ps = new Rs(), Us = new js(), Fs = new _s();
|
4151
|
+
class Ms extends P {
|
4108
4152
|
/**
|
4109
4153
|
* 获取实例
|
4110
4154
|
*/
|
@@ -4115,17 +4159,17 @@ class qs extends P {
|
|
4115
4159
|
* 获取指定SSO实例
|
4116
4160
|
*/
|
4117
4161
|
async create(t, e) {
|
4118
|
-
let s =
|
4162
|
+
let s = ct.ssos.find((i) => i.type.toUpperCase() == t.toUpperCase()), l = { url: s == null ? void 0 : s.url, app_id: s == null ? void 0 : s.appId }, r = await super.create(t);
|
4119
4163
|
return await r.open(l), r;
|
4120
4164
|
}
|
4121
4165
|
}
|
4122
|
-
class
|
4166
|
+
class qs {
|
4123
4167
|
constructor() {
|
4124
4168
|
n(this, "type");
|
4125
4169
|
n(this, "taskLimit");
|
4126
4170
|
}
|
4127
4171
|
}
|
4128
|
-
class
|
4172
|
+
class Ns extends qs {
|
4129
4173
|
constructor() {
|
4130
4174
|
super(...arguments);
|
4131
4175
|
//#region 属性
|
@@ -4179,17 +4223,17 @@ class Vs extends Ns {
|
|
4179
4223
|
clearInterval(this.intervalTimeout);
|
4180
4224
|
}
|
4181
4225
|
}
|
4182
|
-
class
|
4226
|
+
class Vs extends P {
|
4183
4227
|
get instances() {
|
4184
|
-
return [new
|
4228
|
+
return [new Ns()];
|
4185
4229
|
}
|
4186
4230
|
}
|
4187
|
-
class
|
4231
|
+
class zs {
|
4188
4232
|
constructor() {
|
4189
4233
|
n(this, "type");
|
4190
4234
|
}
|
4191
4235
|
}
|
4192
|
-
class
|
4236
|
+
class Ks extends zs {
|
4193
4237
|
constructor() {
|
4194
4238
|
super(...arguments);
|
4195
4239
|
n(this, "type", "Liquid");
|
@@ -4199,12 +4243,12 @@ class Ws extends Ks {
|
|
4199
4243
|
return await l.render(r, s);
|
4200
4244
|
}
|
4201
4245
|
}
|
4202
|
-
class
|
4246
|
+
class Ws extends P {
|
4203
4247
|
get instances() {
|
4204
|
-
return [new
|
4248
|
+
return [new Ks()];
|
4205
4249
|
}
|
4206
4250
|
}
|
4207
|
-
class
|
4251
|
+
class sr extends P {
|
4208
4252
|
get instances() {
|
4209
4253
|
return [];
|
4210
4254
|
}
|
@@ -4214,7 +4258,7 @@ class dt {
|
|
4214
4258
|
n(this, "type");
|
4215
4259
|
}
|
4216
4260
|
}
|
4217
|
-
class
|
4261
|
+
class Qs extends dt {
|
4218
4262
|
constructor() {
|
4219
4263
|
super(...arguments);
|
4220
4264
|
n(this, "type", "Tencent");
|
@@ -4235,7 +4279,7 @@ class Js extends dt {
|
|
4235
4279
|
startRecord() {
|
4236
4280
|
}
|
4237
4281
|
}
|
4238
|
-
class
|
4282
|
+
class Js extends dt {
|
4239
4283
|
constructor() {
|
4240
4284
|
super(...arguments);
|
4241
4285
|
n(this, "type", "Default");
|
@@ -4249,9 +4293,9 @@ class Xs extends dt {
|
|
4249
4293
|
return "";
|
4250
4294
|
}
|
4251
4295
|
}
|
4252
|
-
class
|
4296
|
+
class lr extends P {
|
4253
4297
|
get instances() {
|
4254
|
-
return [new
|
4298
|
+
return [new Js(), new Qs()];
|
4255
4299
|
}
|
4256
4300
|
}
|
4257
4301
|
class ht {
|
@@ -4332,19 +4376,19 @@ class ht {
|
|
4332
4376
|
* SSO工厂
|
4333
4377
|
*/
|
4334
4378
|
static get sso() {
|
4335
|
-
return this.create(
|
4379
|
+
return this.create(Ms);
|
4336
4380
|
}
|
4337
4381
|
/**
|
4338
4382
|
* Task工厂
|
4339
4383
|
*/
|
4340
4384
|
static get task() {
|
4341
|
-
return this.create(
|
4385
|
+
return this.create(Vs);
|
4342
4386
|
}
|
4343
4387
|
/**
|
4344
4388
|
* 模板工厂
|
4345
4389
|
*/
|
4346
4390
|
static get template() {
|
4347
|
-
return this.create(
|
4391
|
+
return this.create(Ws);
|
4348
4392
|
}
|
4349
4393
|
//#endregion
|
4350
4394
|
//#region 服务工厂
|
@@ -4370,14 +4414,14 @@ class ht {
|
|
4370
4414
|
*/
|
4371
4415
|
n(ht, "mappings", {});
|
4372
4416
|
const C = ht;
|
4373
|
-
let
|
4417
|
+
let Xs = {}, fe = {}, T = {}, Xe = {}, pt = {}, Ys = {}, me = {}, Gs = async (u) => {
|
4374
4418
|
let e = await (await C.provider.getDefault("sys")).getAsync("app");
|
4375
|
-
(e == null ? void 0 : e.cdn) != null && (u.cdn = e.cdn),
|
4376
|
-
let l = (e == null ? void 0 : e.language) ??
|
4377
|
-
await s.open(r),
|
4378
|
-
}),
|
4379
|
-
}, Hs = {}, el = {}, tl = {}, sl = {}, ll = {}, rl = {}, nl = {}, il = {}, al = {}
|
4380
|
-
class
|
4419
|
+
(e == null ? void 0 : e.cdn) != null && (u.cdn = e.cdn), fe = await C.cdn.createIfAbsent("Default", u.cdn), Xs = await C.encoder.getBase64(), T = await C.http.getHalo(), Xe = await C.i18n.createIfAbsent("Default", "Default", async (s) => {
|
4420
|
+
let l = (e == null ? void 0 : e.language) ?? tt.getLanguage(), r = _.serialize({ lang: l });
|
4421
|
+
await s.open(r), Zs = s.t, Hs = s.t_exists, el = s.t_sys, tl = s.t_enum, sl = s.t_field, ll = s.t_field_choose_placeholder, rl = s.t_field_placeholder, nl = s.t_table, il = s.t_module, al = s.t_menu;
|
4422
|
+
}), Xe.addMessages(u.lang), pt = await C.hasher.getMd5(), Ys = await C.template.create("Liquid"), u.messenger == null ? me = await C.messenger.getConsole() : me = u.messenger;
|
4423
|
+
}, Zs = {}, Hs = {}, el = {}, tl = {}, sl = {}, ll = {}, rl = {}, nl = {}, il = {}, al = {};
|
4424
|
+
class ol {
|
4381
4425
|
constructor() {
|
4382
4426
|
/**
|
4383
4427
|
* 消息发送对象
|
@@ -4397,22 +4441,22 @@ class ul {
|
|
4397
4441
|
n(this, "cdn", "Local");
|
4398
4442
|
}
|
4399
4443
|
}
|
4400
|
-
const
|
4444
|
+
const ul = { class: "ha-empty" }, cl = { class: "empty-message" }, dl = {
|
4401
4445
|
key: 0,
|
4402
4446
|
class: "empty-content"
|
4403
|
-
},
|
4447
|
+
}, rr = /* @__PURE__ */ Q({
|
4404
4448
|
__name: "Empty",
|
4405
4449
|
props: {
|
4406
4450
|
message: { type: String, default: "暂无数据" },
|
4407
4451
|
hasData: Boolean
|
4408
4452
|
},
|
4409
4453
|
setup(u) {
|
4410
|
-
let t = u, { message: e, hasData: s } =
|
4411
|
-
return (l, r) => (
|
4412
|
-
D("div",
|
4413
|
-
y(s) ? (
|
4414
|
-
|
4415
|
-
])) :
|
4454
|
+
let t = u, { message: e, hasData: s } = se(t);
|
4455
|
+
return (l, r) => (I(), B("div", ul, [
|
4456
|
+
D("div", cl, de(y(e)), 1),
|
4457
|
+
y(s) ? (I(), B("div", dl, [
|
4458
|
+
he(l.$slots, "default")
|
4459
|
+
])) : Ge("", !0)
|
4416
4460
|
]));
|
4417
4461
|
}
|
4418
4462
|
});
|
@@ -4429,7 +4473,7 @@ class ft {
|
|
4429
4473
|
this.x = t, this.y = e;
|
4430
4474
|
}
|
4431
4475
|
}
|
4432
|
-
class
|
4476
|
+
class hl extends ft {
|
4433
4477
|
constructor() {
|
4434
4478
|
super(...arguments);
|
4435
4479
|
/**
|
@@ -4438,7 +4482,7 @@ class pl extends ft {
|
|
4438
4482
|
n(this, "affix");
|
4439
4483
|
}
|
4440
4484
|
}
|
4441
|
-
class
|
4485
|
+
class nr extends ft {
|
4442
4486
|
constructor(e, s, l, r) {
|
4443
4487
|
super(e, s);
|
4444
4488
|
n(this, "width");
|
@@ -4493,8 +4537,8 @@ class gt {
|
|
4493
4537
|
* 事件防抖: time ms没重复触发才执行指定操作
|
4494
4538
|
*/
|
4495
4539
|
n(this, "debounce", (t, e, s = null) => {
|
4496
|
-
this.lastDebounceTime == null && (this.lastDebounceTime =
|
4497
|
-
let l =
|
4540
|
+
this.lastDebounceTime == null && (this.lastDebounceTime = te.getTimestamp());
|
4541
|
+
let l = te.getTimestamp();
|
4498
4542
|
this.lastDebounceTimeout != null && clearTimeout(this.lastDebounceTimeout), this.lastDebounceTimeout = setTimeout(t, e, s), this.lastDebounceTime = l;
|
4499
4543
|
});
|
4500
4544
|
//#endregion
|
@@ -4535,7 +4579,7 @@ class gt {
|
|
4535
4579
|
return;
|
4536
4580
|
this.dragElement = t;
|
4537
4581
|
let s = !1, l = (a) => (s = !0, a.preventDefault(), e.init(a)), r = (a) => {
|
4538
|
-
let o = new
|
4582
|
+
let o = new hl(), c = e.range;
|
4539
4583
|
if (c == null)
|
4540
4584
|
o.x = a.clientX, o.y = a.clientY;
|
4541
4585
|
else {
|
@@ -4598,7 +4642,7 @@ class gt {
|
|
4598
4642
|
}
|
4599
4643
|
//#endregion
|
4600
4644
|
}
|
4601
|
-
class
|
4645
|
+
class ir {
|
4602
4646
|
constructor() {
|
4603
4647
|
n(this, "events", {});
|
4604
4648
|
/**
|
@@ -4720,14 +4764,14 @@ class ar {
|
|
4720
4764
|
clearTimeout(this.timer);
|
4721
4765
|
}
|
4722
4766
|
}
|
4723
|
-
class
|
4767
|
+
class ar {
|
4724
4768
|
/**
|
4725
4769
|
* 对比数据变动
|
4726
4770
|
*/
|
4727
4771
|
delta(t, e, s, l) {
|
4728
4772
|
}
|
4729
4773
|
}
|
4730
|
-
class
|
4774
|
+
class or {
|
4731
4775
|
/**
|
4732
4776
|
* 初始化,并绑定自动关闭上下文菜单事件
|
4733
4777
|
*/
|
@@ -4766,6 +4810,63 @@ class ur {
|
|
4766
4810
|
}
|
4767
4811
|
}
|
4768
4812
|
}
|
4813
|
+
class ur {
|
4814
|
+
constructor() {
|
4815
|
+
//#region 属性
|
4816
|
+
/**
|
4817
|
+
* 随机数总长度
|
4818
|
+
*/
|
4819
|
+
n(this, "length");
|
4820
|
+
/**
|
4821
|
+
* 当前显示元素之前的数组
|
4822
|
+
*/
|
4823
|
+
n(this, "history", []);
|
4824
|
+
/**
|
4825
|
+
* 即将要显示的数组(未空表示用户还没看过,可随机生成)
|
4826
|
+
*/
|
4827
|
+
n(this, "future", []);
|
4828
|
+
/**
|
4829
|
+
* 当前元素指针,索引值,用于指示当前显示的数在所有数组中的位置
|
4830
|
+
*/
|
4831
|
+
n(this, "current", null);
|
4832
|
+
}
|
4833
|
+
//#endregion
|
4834
|
+
/**
|
4835
|
+
* 是否有上一个数
|
4836
|
+
*/
|
4837
|
+
get hasPrev() {
|
4838
|
+
return this.history.length > 0;
|
4839
|
+
}
|
4840
|
+
/**
|
4841
|
+
* 是否有下一个数
|
4842
|
+
*/
|
4843
|
+
get hasNext() {
|
4844
|
+
return this.history.length + 1 < this.length;
|
4845
|
+
}
|
4846
|
+
/**
|
4847
|
+
* 获取轨迹中的上一个数的索引,箭头函数可能会导致数据更新,但是UI不更新
|
4848
|
+
*/
|
4849
|
+
prev() {
|
4850
|
+
this.current--;
|
4851
|
+
let t = this.history.pop();
|
4852
|
+
return this.future.splice(0, 0, t), t;
|
4853
|
+
}
|
4854
|
+
/**
|
4855
|
+
* 获取下一个数
|
4856
|
+
* 优先从轨迹获取,轨迹没有则取随机数
|
4857
|
+
*/
|
4858
|
+
next() {
|
4859
|
+
if (this.future.length > 0) {
|
4860
|
+
this.current++;
|
4861
|
+
let e = this.future.shift();
|
4862
|
+
return this.history.push(e), e;
|
4863
|
+
}
|
4864
|
+
let t = Z.random(0, this.length);
|
4865
|
+
for (; this.history.includes(t); )
|
4866
|
+
t = Z.random(0, this.length);
|
4867
|
+
return this.current != null && this.history.push(t), this.current = this.history.length, t;
|
4868
|
+
}
|
4869
|
+
}
|
4769
4870
|
class cr {
|
4770
4871
|
/**
|
4771
4872
|
* 开启表单监控
|
@@ -4782,11 +4883,11 @@ class cr {
|
|
4782
4883
|
dispose() {
|
4783
4884
|
}
|
4784
4885
|
}
|
4785
|
-
const
|
4886
|
+
const pl = /* @__PURE__ */ Q({
|
4786
4887
|
__name: "Fill",
|
4787
4888
|
emits: ["resize"],
|
4788
4889
|
setup(u, { emit: t }) {
|
4789
|
-
let e = t, s =
|
4890
|
+
let e = t, s = R(), l = R(), r = R(), i = new gt(), a = () => {
|
4790
4891
|
let h = j.siblings(s.value);
|
4791
4892
|
r.value = j.getHeight(h);
|
4792
4893
|
}, o = () => {
|
@@ -4794,110 +4895,110 @@ const fl = /* @__PURE__ */ Q({
|
|
4794
4895
|
}, c = () => {
|
4795
4896
|
o();
|
4796
4897
|
};
|
4797
|
-
return
|
4898
|
+
return ve(() => {
|
4798
4899
|
a(), o(), i.resize(s.value, c);
|
4799
|
-
}),
|
4900
|
+
}), we(() => {
|
4800
4901
|
i.dispose();
|
4801
|
-
}), (h, d) => (
|
4902
|
+
}), (h, d) => (I(), B("div", {
|
4802
4903
|
class: "ha-fill",
|
4803
4904
|
ref_key: "fillRef",
|
4804
4905
|
ref: s,
|
4805
|
-
style:
|
4906
|
+
style: pe({ height: `calc(100% - ${y(r)}px)` })
|
4806
4907
|
}, [
|
4807
|
-
|
4908
|
+
he(h.$slots, "default")
|
4808
4909
|
], 4));
|
4809
4910
|
}
|
4810
|
-
}),
|
4911
|
+
}), fl = /* @__PURE__ */ Q({
|
4811
4912
|
__name: "Scroller",
|
4812
4913
|
props: {
|
4813
4914
|
options: {}
|
4814
4915
|
},
|
4815
4916
|
emits: ["scroll"],
|
4816
4917
|
setup(u, { expose: t, emit: e }) {
|
4817
|
-
let s = e, l = u, { options: r } =
|
4918
|
+
let s = e, l = u, { options: r } = se(l), i = R(), a = R(), o = R(), c = R(), h = R(!1), d = null, p = null, g = new gt(), x = R({ top: null, height: null }), N = (v) => {
|
4818
4919
|
if (p == 0)
|
4819
4920
|
return 0;
|
4820
4921
|
let w = p - d;
|
4821
4922
|
return v / w;
|
4822
|
-
},
|
4823
|
-
let w = d -
|
4923
|
+
}, V = (v) => {
|
4924
|
+
let w = d - x.value.height;
|
4824
4925
|
return v / w;
|
4825
4926
|
}, ue = (v) => {
|
4826
|
-
let w = v.target,
|
4827
|
-
L(
|
4828
|
-
},
|
4927
|
+
let w = v.target, O = N(w.scrollTop);
|
4928
|
+
L(O), s("scroll", w);
|
4929
|
+
}, le = () => {
|
4829
4930
|
if (p == 0)
|
4830
4931
|
return 80;
|
4831
4932
|
let v = d / p;
|
4832
4933
|
if (v == 1)
|
4833
4934
|
return 0;
|
4834
4935
|
let w = d * v;
|
4835
|
-
return
|
4936
|
+
return Z.between(w, 80, 500);
|
4836
4937
|
}, f = (v, w) => {
|
4837
|
-
let
|
4838
|
-
return
|
4938
|
+
let O = N(v), z = (d - w) * O;
|
4939
|
+
return Z.between(z, 0, d - w);
|
4839
4940
|
}, E = (v) => {
|
4840
|
-
let w =
|
4941
|
+
let w = le();
|
4841
4942
|
return { top: f(v, w), height: w };
|
4842
4943
|
}, m = (v) => {
|
4843
4944
|
}, $ = (v) => {
|
4844
|
-
let w =
|
4945
|
+
let w = N(v);
|
4845
4946
|
L(w);
|
4846
4947
|
}, L = (v) => {
|
4847
|
-
let w =
|
4848
|
-
|
4849
|
-
let
|
4850
|
-
r.value.scrollTop =
|
4948
|
+
let w = Z.between(v, 0, 1), O = d - x.value.height;
|
4949
|
+
x.value.top = O * w;
|
4950
|
+
let ge = (p - d) * w;
|
4951
|
+
r.value.scrollTop = ge, a.value.scrollTop != ge && (a.value.scrollTop = ge);
|
4851
4952
|
}, U = () => {
|
4852
4953
|
let v = r.value.scrollTop;
|
4853
|
-
|
4954
|
+
x.value = E(v), $(v);
|
4854
4955
|
}, G = (v) => {
|
4855
4956
|
d = j.getHeight(a.value), p = a.value.scrollHeight;
|
4856
|
-
let w =
|
4857
|
-
|
4957
|
+
let w = le();
|
4958
|
+
x.value.height = w, x.value.top = f(r.value.scrollTop, w);
|
4858
4959
|
}, ne = (v) => {
|
4859
4960
|
let w = v.target;
|
4860
4961
|
return parseInt(w.style.top);
|
4861
|
-
},
|
4862
|
-
let
|
4962
|
+
}, re = (v, w, O, z) => {
|
4963
|
+
let ge = v.y - w.y, mt = O + ge, yt = V(mt);
|
4863
4964
|
L(yt);
|
4864
|
-
},
|
4965
|
+
}, be = (v) => {
|
4865
4966
|
h.value = !0;
|
4866
|
-
},
|
4967
|
+
}, xe = (v) => {
|
4867
4968
|
h.value = !1;
|
4868
4969
|
};
|
4869
|
-
return
|
4870
|
-
U(), g.scroll(a.value, ue), g.drag(c.value, { init: ne, handler:
|
4871
|
-
}),
|
4970
|
+
return ve(() => {
|
4971
|
+
U(), g.scroll(a.value, ue), g.drag(c.value, { init: ne, handler: re }), g.observe(a.value, G), g.mouseDown(c.value, be, xe);
|
4972
|
+
}), we(() => {
|
4872
4973
|
g.dispose();
|
4873
4974
|
}), J(() => r.value.scrollTop, (v, w) => {
|
4874
|
-
let
|
4875
|
-
L(
|
4876
|
-
}), t({ scrollTo: $, update: U }), (v, w) => (
|
4975
|
+
let O = N(v);
|
4976
|
+
L(O);
|
4977
|
+
}), t({ scrollTo: $, update: U }), (v, w) => (I(), B("div", {
|
4877
4978
|
ref_key: "scrollerRef",
|
4878
4979
|
ref: i,
|
4879
|
-
class:
|
4980
|
+
class: $e(["ha-scroller", { hover: y(h) }])
|
4880
4981
|
}, [
|
4881
4982
|
D("div", {
|
4882
4983
|
ref_key: "containerRef",
|
4883
4984
|
ref: a,
|
4884
4985
|
class: "scroller-container"
|
4885
4986
|
}, [
|
4886
|
-
|
4987
|
+
he(v.$slots, "default")
|
4887
4988
|
], 512),
|
4888
4989
|
D("div", {
|
4889
4990
|
ref_key: "trackRef",
|
4890
4991
|
ref: o,
|
4891
4992
|
class: "scroller-track",
|
4892
4993
|
onClick: w[0] || (w[0] = //@ts-ignore
|
4893
|
-
(...
|
4994
|
+
(...O) => y(m) && y(m)(...O))
|
4894
4995
|
}, [
|
4895
4996
|
D("div", {
|
4896
4997
|
ref_key: "thumbRef",
|
4897
4998
|
ref: c,
|
4898
4999
|
class: "scroller-thumb",
|
4899
|
-
style:
|
4900
|
-
},
|
5000
|
+
style: pe({ top: `${y(x).top}px`, height: `${y(x).height}px` })
|
5001
|
+
}, de(y(r).scrollTop), 5)
|
4901
5002
|
], 512)
|
4902
5003
|
], 2));
|
4903
5004
|
}
|
@@ -4905,7 +5006,7 @@ const fl = /* @__PURE__ */ Q({
|
|
4905
5006
|
__name: "Timer",
|
4906
5007
|
emits: ["change"],
|
4907
5008
|
setup(u, { expose: t, emit: e }) {
|
4908
|
-
let s = e, l = -8 * 60 * 60 * 1e3, r =
|
5009
|
+
let s = e, l = -8 * 60 * 60 * 1e3, r = R(l), i = null, a = 5, o = () => {
|
4909
5010
|
i == null && (i = setInterval(() => {
|
4910
5011
|
r.value += a, s("change", r.value);
|
4911
5012
|
}, a));
|
@@ -4916,11 +5017,11 @@ const fl = /* @__PURE__ */ Q({
|
|
4916
5017
|
}, d = () => {
|
4917
5018
|
clearInterval(i), r.value = l;
|
4918
5019
|
};
|
4919
|
-
return
|
5020
|
+
return we(() => {
|
4920
5021
|
clearInterval(i);
|
4921
|
-
}), t({ restart: c, start: o, stop: h, reset: d }), (p, g) => (
|
4922
|
-
|
4923
|
-
xt(
|
5022
|
+
}), t({ restart: c, start: o, stop: h, reset: d }), (p, g) => (I(), B("span", null, [
|
5023
|
+
he(p.$slots, "default"),
|
5024
|
+
xt(de(y(te).format(y(r), "HH:mm:ss SSS")), 1)
|
4924
5025
|
]));
|
4925
5026
|
}
|
4926
5027
|
}), hr = /* @__PURE__ */ Q({
|
@@ -4932,17 +5033,17 @@ const fl = /* @__PURE__ */ Q({
|
|
4932
5033
|
},
|
4933
5034
|
emits: ["mounted", "change", "scroll", "update:modelValue"],
|
4934
5035
|
setup(u, { expose: t, emit: e }) {
|
4935
|
-
let s = e, l = u, { config: r, border: i, modelValue: a } =
|
4936
|
-
if (
|
5036
|
+
let s = e, l = u, { config: r, border: i, modelValue: a } = se(l), o = null, c = null, h = null, d = R(), { app: p } = ee.sys, g = (f) => f == "default" ? null : "vs-dark", x = (f) => {
|
5037
|
+
if (ee.editor.completions[f])
|
4937
5038
|
return;
|
4938
5039
|
let E = o.languages.getLanguages().find(($) => $.id == f);
|
4939
5040
|
if (!E)
|
4940
5041
|
return;
|
4941
5042
|
let m = E.loader;
|
4942
5043
|
m && m().then(($) => {
|
4943
|
-
|
5044
|
+
ee.editor.completions[f] || (N($, f), ee.editor.completions[f] = !0);
|
4944
5045
|
});
|
4945
|
-
},
|
5046
|
+
}, N = (f, E) => o.languages.registerCompletionItemProvider(E, {
|
4946
5047
|
provideCompletionItems: ($, L) => {
|
4947
5048
|
let U = $.getWordUntilPosition(L), G = {
|
4948
5049
|
startLineNumber: L.lineNumber,
|
@@ -4950,36 +5051,36 @@ const fl = /* @__PURE__ */ Q({
|
|
4950
5051
|
startColumn: U.startColumn,
|
4951
5052
|
endColumn: U.endColumn
|
4952
5053
|
}, ne = [];
|
4953
|
-
const
|
4954
|
-
for (let
|
4955
|
-
const
|
4956
|
-
let v = f.language[
|
5054
|
+
const re = ["builtinFunctions", "keywords", "operators"];
|
5055
|
+
for (let be = 0; be < re.length; be++) {
|
5056
|
+
const xe = re[be];
|
5057
|
+
let v = f.language[xe];
|
4957
5058
|
v && v.forEach((w) => {
|
4958
|
-
let
|
4959
|
-
label:
|
5059
|
+
let O = w.toLowerCase(), z = {
|
5060
|
+
label: O,
|
4960
5061
|
kind: null,
|
4961
|
-
insertText:
|
5062
|
+
insertText: O,
|
4962
5063
|
range: G,
|
4963
5064
|
documentation: w
|
4964
5065
|
};
|
4965
|
-
|
5066
|
+
xe == "keywords" ? (z.kind = o.languages.CompletionItemKind.Keyword, z.detail = "关键词") : xe == "operators" ? (z.kind = o.languages.CompletionItemKind.Operator, z.insertText += " ", z.detail = "操作符") : (z.kind = o.languages.CompletionItemKind.Function, z.insertText += "()", z.detail = "函数"), ne.push(z);
|
4966
5067
|
});
|
4967
5068
|
}
|
4968
5069
|
return { suggestions: ne };
|
4969
5070
|
}
|
4970
|
-
}),
|
5071
|
+
}), V = () => {
|
4971
5072
|
let f = null;
|
4972
|
-
r.value.schema && (f = r.value.category + "/" +
|
5073
|
+
r.value.schema && (f = r.value.category + "/" + M.getUniqueId(), ee.tryAddSchema(f, r.value.category, r.value.schema));
|
4973
5074
|
let E = {
|
4974
5075
|
validate: !0,
|
4975
5076
|
allowComments: !0,
|
4976
5077
|
//允许配置注释
|
4977
5078
|
//保证架构配置在当前控件生效,所以需要绑定匹配哪个文件时使用架构
|
4978
|
-
schemas: X.clone(
|
5079
|
+
schemas: X.clone(ee.editor.schemas),
|
4979
5080
|
trailingCommas: "ignore"
|
4980
5081
|
//允许末尾逗号
|
4981
5082
|
};
|
4982
|
-
o.languages.json.jsonDefaults.setDiagnosticsOptions(E),
|
5083
|
+
o.languages.json.jsonDefaults.setDiagnosticsOptions(E), x(r.value.language);
|
4983
5084
|
let m = f ? o.Uri.parse(f) : null;
|
4984
5085
|
h = o.editor.createModel(a.value, r.value.language, m);
|
4985
5086
|
let $ = {
|
@@ -5016,13 +5117,13 @@ const fl = /* @__PURE__ */ Q({
|
|
5016
5117
|
s("update:modelValue", G), s("change", G);
|
5017
5118
|
});
|
5018
5119
|
};
|
5019
|
-
|
5020
|
-
o = await
|
5120
|
+
ve(async () => {
|
5121
|
+
o = await fe.getMonaco(), d.value && (V(), s("mounted", o, c));
|
5021
5122
|
});
|
5022
5123
|
let ue = () => {
|
5023
5124
|
c == null || c.layout();
|
5024
|
-
},
|
5025
|
-
return
|
5125
|
+
}, le = () => c;
|
5126
|
+
return we(() => {
|
5026
5127
|
h == null || h.dispose(), c == null || c.dispose();
|
5027
5128
|
}), J(() => p.theme, (f, E) => {
|
5028
5129
|
let m = g(f);
|
@@ -5037,13 +5138,13 @@ const fl = /* @__PURE__ */ Q({
|
|
5037
5138
|
if (!c)
|
5038
5139
|
return;
|
5039
5140
|
let m = c.getModel();
|
5040
|
-
o.editor.setModelLanguage(m, f),
|
5041
|
-
}), t({ layout: ue, getEditor:
|
5042
|
-
default:
|
5141
|
+
o.editor.setModelLanguage(m, f), x(f);
|
5142
|
+
}), t({ layout: ue, getEditor: le }), (f, E) => (I(), Ze(pl, null, {
|
5143
|
+
default: Fe(() => [
|
5043
5144
|
D("div", {
|
5044
5145
|
ref_key: "monacoEditorRef",
|
5045
5146
|
ref: d,
|
5046
|
-
class:
|
5147
|
+
class: $e(["ha-code", { border: y(i) }])
|
5047
5148
|
}, null, 2)
|
5048
5149
|
]),
|
5049
5150
|
_: 1
|
@@ -5059,13 +5160,13 @@ const fl = /* @__PURE__ */ Q({
|
|
5059
5160
|
},
|
5060
5161
|
emits: ["update:modelValue", "update:original", "change"],
|
5061
5162
|
setup(u, { emit: t }) {
|
5062
|
-
let e = t, s = u, { inline: l, language: r, original: i, modelValue: a } =
|
5063
|
-
c = f.editor.createModel(i.value, r.value), h = f.editor.createModel(a.value, r.value), o = f.editor.createDiffEditor(
|
5163
|
+
let e = t, s = u, { inline: l, language: r, original: i, modelValue: a } = se(s), o = null, c = null, h = null, d = null, p = null, g = null, x = R(), N = R(), { app: V } = ee.sys, ue = (f) => {
|
5164
|
+
c = f.editor.createModel(i.value, r.value), h = f.editor.createModel(a.value, r.value), o = f.editor.createDiffEditor(x.value, {
|
5064
5165
|
originalEditable: !0,
|
5065
5166
|
automaticLayout: !0,
|
5066
5167
|
renderSideBySide: !l.value,
|
5067
5168
|
//是否启用行内模式
|
5068
|
-
theme:
|
5169
|
+
theme: le(V.theme)
|
5069
5170
|
}), o.setModel({ original: c, modified: h }), d = o.getOriginalEditor(), d.onDidChangeModelContent((E) => {
|
5070
5171
|
let m = d.getValue();
|
5071
5172
|
e("update:original", m), e("change", m);
|
@@ -5073,11 +5174,11 @@ const fl = /* @__PURE__ */ Q({
|
|
5073
5174
|
let m = p.getValue();
|
5074
5175
|
e("update:modelValue", m);
|
5075
5176
|
});
|
5076
|
-
},
|
5077
|
-
return
|
5078
|
-
g = await
|
5079
|
-
}), J(() =>
|
5080
|
-
let m =
|
5177
|
+
}, le = (f) => f == "default" ? null : "vs-dark";
|
5178
|
+
return ve(async () => {
|
5179
|
+
g = await fe.getMonaco(), ue(g);
|
5180
|
+
}), J(() => V.theme, (f, E) => {
|
5181
|
+
let m = le(f);
|
5081
5182
|
g.editor.setTheme(m);
|
5082
5183
|
}), J(() => r.value, (f, E) => {
|
5083
5184
|
c && g.editor.setModelLanguage(c, f), h && g.editor.setModelLanguage(h, f);
|
@@ -5091,52 +5192,52 @@ const fl = /* @__PURE__ */ Q({
|
|
5091
5192
|
return;
|
5092
5193
|
let m = h.getValue();
|
5093
5194
|
f != m && h.setValue(f ?? "");
|
5094
|
-
}), (f, E) => (
|
5195
|
+
}), (f, E) => (I(), B("div", {
|
5095
5196
|
ref_key: "compareRef",
|
5096
|
-
ref:
|
5197
|
+
ref: x,
|
5097
5198
|
class: "ha-compare",
|
5098
|
-
style:
|
5199
|
+
style: pe(y(N))
|
5099
5200
|
}, null, 4));
|
5100
5201
|
}
|
5101
|
-
}),
|
5202
|
+
}), Ne = (u, t) => {
|
5102
5203
|
const e = u.__vccOpts || u;
|
5103
5204
|
for (const [s, l] of t)
|
5104
5205
|
e[s] = l;
|
5105
5206
|
return e;
|
5106
|
-
},
|
5107
|
-
function
|
5108
|
-
return
|
5207
|
+
}, gl = {}, ml = { class: "ha-option" };
|
5208
|
+
function yl(u, t) {
|
5209
|
+
return I(), B("div", ml, "选项");
|
5109
5210
|
}
|
5110
|
-
const
|
5111
|
-
|
5211
|
+
const vl = /* @__PURE__ */ Ne(gl, [["render", yl]]), wl = { class: "ha-rich-text" }, bl = /* @__PURE__ */ Ct('<div class="ql-formats"><button class="ql-bold" data-toggle="tooltip" data-placement="bottom" title="Bold"></button><button class="ql-italic" data-toggle="tooltip" data-placement="bottom" title="Italic <ctrl+i>"></button><button class="ql-date" data-toggle="tooltip" data-placement="bottom" title="Date"></button><button class="ql-underline" data-toggle="tooltip" data-placement="bottom" title="Underline"></button><button class="ql-strike" data-toggle="tooltip" data-placement="bottom" title="Strike"></button></div><div class="ql-formats"><button class="ql-list" data-toggle="tooltip" data-placement="bottom" value="ordered"></button><button class="ql-list" data-toggle="tooltip" data-placement="bottom" value="bullet"></button><select class="ql-color"><option selected></option><option value="#e60000"></option><option value="#ff9900"></option><option value="#ffff00"></option><option value="#008a00"></option><option value="#0066cc"></option><option value="#9933ff"></option><option value="#ffffff"></option><option value="#facccc"></option><option value="#ffebcc"></option><option value="#ffffcc"></option><option value="#cce8cc"></option><option value="#cce0f5"></option><option value="#ebd6ff"></option><option value="#bbbbbb"></option><option value="#f06666"></option><option value="#ffc266"></option><option value="#ffff66"></option><option value="#66b966"></option><option value="#66a3e0"></option><option value="#c285ff"></option><option value="#888888"></option><option value="#a10000"></option><option value="#b26b00"></option><option value="#b2b200"></option><option value="#006100"></option><option value="#0047b2"></option><option value="#6b24b2"></option><option value="#444444"></option><option value="#5c0000"></option><option value="#663d00"></option><option value="#666600"></option><option value="#003700"></option><option value="#002966"></option><option value="#3d1466"></option></select><select class="ql-background"><option selected></option><option value="#e60000"></option><option value="#ff9900"></option><option value="#ffff00"></option><option value="#008a00"></option><option value="#0066cc"></option><option value="#9933ff"></option><option value="#ffffff"></option><option value="#facccc"></option><option value="#ffebcc"></option><option value="#ffffcc"></option><option value="#cce8cc"></option><option value="#cce0f5"></option><option value="#ebd6ff"></option><option value="#bbbbbb"></option><option value="#f06666"></option><option value="#ffc266"></option><option value="#ffff66"></option><option value="#66b966"></option><option value="#66a3e0"></option><option value="#c285ff"></option><option value="#888888"></option><option value="#a10000"></option><option value="#b26b00"></option><option value="#b2b200"></option><option value="#006100"></option><option value="#0047b2"></option><option value="#6b24b2"></option><option value="#444444"></option><option value="#5c0000"></option><option value="#663d00"></option><option value="#666600"></option><option value="#003700"></option><option value="#002966"></option><option value="#3d1466"></option></select></div><div class="ql-formats"><button class="ql-code-block" data-toggle="tooltip" data-placement="bottom" title="Code"></button><button class="ql-blockquote" data-toggle="tooltip" data-placement="bottom" title="Block quote"></button><button class="ql-link" data-toggle="tooltip" data-placement="bottom" title="Link"></button></div><div class="ql-formats"><button class="ql-header" data-toggle="tooltip" data-placement="bottom" value="1"></button><button class="ql-header" data-toggle="tooltip" data-placement="bottom" value="2"></button><select class="ql-align"><option selected></option><option value="center"></option><option value="right"></option><option value="justify"></option></select></div><div class="ql-formats"><select class="ql-size"><option value="small"></option><option selected></option><option value="large"></option><option value="huge"></option></select><select class="ql-header"><option value=""></option><option value="1"></option><option value="2"></option><option value="3"></option><option value="4"></option><option value="5"></option><option value="6"></option></select></div><div class="ql-formats"><select class="ql-font"><option selected></option><option value="serif"></option><option value="monospace"></option></select></div><div class="ql-formats"><button class="ql-image" data-toggle="tooltip" data-placement="bottom" title="Image"></button><button class="ql-video" data-toggle="tooltip" data-placement="bottom" title="Video"></button><button class="ql-clean" data-toggle="tooltip" data-placement="bottom" title="Clean"></button></div>', 7), xl = [
|
5212
|
+
bl
|
5112
5213
|
], fr = /* @__PURE__ */ Q({
|
5113
5214
|
__name: "RichText",
|
5114
|
-
props: /* @__PURE__ */
|
5215
|
+
props: /* @__PURE__ */ Ve({
|
5115
5216
|
options: {}
|
5116
5217
|
}, {
|
5117
5218
|
modelValue: {},
|
5118
5219
|
modelModifiers: {}
|
5119
5220
|
}),
|
5120
|
-
emits: /* @__PURE__ */
|
5221
|
+
emits: /* @__PURE__ */ Ve(["change", "scroll"], ["update:modelValue"]),
|
5121
5222
|
setup(u, { expose: t, emit: e }) {
|
5122
|
-
let s = e, l = u, { options: r } =
|
5123
|
-
let $ =
|
5223
|
+
let s = e, l = u, { options: r } = se(l), i = He(u, "modelValue"), a, o = null, c = null, h = !1, d = !1, p = R(), g = R(), x = R(), N = R(!1), V = R({ style: null, options: { scrollTop: 0 } }), ue = (m) => {
|
5224
|
+
let $ = te.getDateString(), L = getSelection(), U = L.getRangeAt(0), G = U.startContainer;
|
5124
5225
|
if (G.nodeName == "#text")
|
5125
5226
|
G.insertData(U.startOffset, $), U.setStart(G, U.startOffset + $.length), L.removeAllRanges(), L.addRange(U);
|
5126
5227
|
else {
|
5127
5228
|
let ne = document.createTextNode($);
|
5128
5229
|
G.appendChild(ne);
|
5129
|
-
let
|
5130
|
-
|
5230
|
+
let re = document.createRange();
|
5231
|
+
re.selectNodeContents(ne), re.setStart(ne, re.startOffset + $.length), L.removeAllRanges(), L.addRange(re);
|
5131
5232
|
}
|
5132
|
-
},
|
5233
|
+
}, le = (m) => {
|
5133
5234
|
if (o.scrollTop = m.scrollTop, h || d) {
|
5134
5235
|
h = !1, d = !1;
|
5135
5236
|
return;
|
5136
5237
|
}
|
5137
5238
|
c = m, s("scroll", m);
|
5138
5239
|
}, f = () => `height: calc(100% - ${j.getHeight(g.value)}px)`, E = async () => {
|
5139
|
-
let m = await
|
5240
|
+
let m = await fe.getQuill();
|
5140
5241
|
a = new m(p.value, {
|
5141
5242
|
modules: {
|
5142
5243
|
toolbar: {
|
@@ -5145,40 +5246,40 @@ const wl = /* @__PURE__ */ ze(ml, [["render", vl]]), bl = { class: "ha-rich-text
|
|
5145
5246
|
}
|
5146
5247
|
},
|
5147
5248
|
theme: "snow"
|
5148
|
-
}),
|
5149
|
-
|
5150
|
-
}), r.value.readonly && a.disable(), o = p.value.querySelector(".ql-editor"), o.innerHTML = i.value,
|
5249
|
+
}), N.value = !0, ze(() => {
|
5250
|
+
V.value.style = f();
|
5251
|
+
}), r.value.readonly && a.disable(), o = p.value.querySelector(".ql-editor"), o.innerHTML = i.value, V.value.options.scrollTop = r.value.scrollTop, a.on("text-change", ($, L, U) => {
|
5151
5252
|
o.innerHTML != i.value && (h = !0, i.value = o.innerHTML);
|
5152
5253
|
}), o.addEventListener("paste", ($) => {
|
5153
5254
|
d = !0;
|
5154
5255
|
});
|
5155
5256
|
};
|
5156
|
-
return
|
5257
|
+
return ve(() => {
|
5157
5258
|
E();
|
5158
|
-
}),
|
5259
|
+
}), we(() => {
|
5159
5260
|
a = null;
|
5160
5261
|
}), J(() => i.value, (m, $) => {
|
5161
5262
|
o && o.innerHTML != m && (o.innerHTML = m);
|
5162
5263
|
}), J(() => r.value.scrollTop, (m, $) => {
|
5163
|
-
m != null && (c == null ? void 0 : c.scrollTop) != m &&
|
5164
|
-
|
5264
|
+
m != null && (c == null ? void 0 : c.scrollTop) != m && ze(() => {
|
5265
|
+
V.value.options.scrollTop = m;
|
5165
5266
|
});
|
5166
|
-
}), t({}), (m, $) => (
|
5267
|
+
}), t({}), (m, $) => (I(), B("div", wl, [
|
5167
5268
|
kt(D("div", {
|
5168
5269
|
ref_key: "toolbarRef",
|
5169
5270
|
ref: g
|
5170
|
-
},
|
5171
|
-
[St, y(
|
5271
|
+
}, xl, 512), [
|
5272
|
+
[St, y(N)]
|
5172
5273
|
]),
|
5173
|
-
|
5274
|
+
Se(y(fl), {
|
5174
5275
|
ref_key: "scrollerRef",
|
5175
|
-
ref:
|
5276
|
+
ref: x,
|
5176
5277
|
class: "ql-body",
|
5177
|
-
options: y(
|
5178
|
-
onScroll: y(
|
5179
|
-
style:
|
5278
|
+
options: y(V).options,
|
5279
|
+
onScroll: y(le),
|
5280
|
+
style: pe(y(V).style)
|
5180
5281
|
}, {
|
5181
|
-
default:
|
5282
|
+
default: Fe(() => [
|
5182
5283
|
D("div", {
|
5183
5284
|
ref_key: "editorRef",
|
5184
5285
|
ref: p
|
@@ -5188,16 +5289,16 @@ const wl = /* @__PURE__ */ ze(ml, [["render", vl]]), bl = { class: "ha-rich-text
|
|
5188
5289
|
}, 8, ["options", "onScroll", "style"])
|
5189
5290
|
]));
|
5190
5291
|
}
|
5191
|
-
}),
|
5292
|
+
}), kl = {}, Sl = { class: "ha-select" }, Cl = /* @__PURE__ */ D("div", { class: "select-title" }, "头", -1), El = /* @__PURE__ */ D("div", { class: "select-body" }, [
|
5192
5293
|
/* @__PURE__ */ D("input", { type: "text" })
|
5193
|
-
], -1),
|
5194
|
-
|
5195
|
-
|
5294
|
+
], -1), Tl = [
|
5295
|
+
Cl,
|
5296
|
+
El
|
5196
5297
|
];
|
5197
|
-
function
|
5198
|
-
return
|
5298
|
+
function $l(u, t) {
|
5299
|
+
return I(), B("div", Sl, Tl);
|
5199
5300
|
}
|
5200
|
-
const
|
5301
|
+
const je = /* @__PURE__ */ Ne(kl, [["render", $l]]);
|
5201
5302
|
class gr {
|
5202
5303
|
/**
|
5203
5304
|
* 初始化
|
@@ -5222,7 +5323,7 @@ class gr {
|
|
5222
5323
|
this.startLine = t, this.endLine = e, this.startColumn = s, this.endColumn = l;
|
5223
5324
|
}
|
5224
5325
|
}
|
5225
|
-
const
|
5326
|
+
const Ll = { class: "ha-condition" }, Al = /* @__PURE__ */ Q({
|
5226
5327
|
__name: "Condition",
|
5227
5328
|
props: {
|
5228
5329
|
name: {},
|
@@ -5230,59 +5331,59 @@ const Al = { class: "ha-condition" }, Dl = /* @__PURE__ */ Q({
|
|
5230
5331
|
value: {}
|
5231
5332
|
},
|
5232
5333
|
setup(u) {
|
5233
|
-
let t = u, { name: e, operator: s, value: l } =
|
5234
|
-
return (r, i) => (
|
5235
|
-
|
5334
|
+
let t = u, { name: e, operator: s, value: l } = se(t);
|
5335
|
+
return (r, i) => (I(), B("div", Ll, [
|
5336
|
+
Se(y(je), {
|
5236
5337
|
modelValue: y(e),
|
5237
|
-
"onUpdate:modelValue": i[0] || (i[0] = (a) =>
|
5338
|
+
"onUpdate:modelValue": i[0] || (i[0] = (a) => Oe(e) ? e.value = a : e = a)
|
5238
5339
|
}, null, 8, ["modelValue"]),
|
5239
|
-
|
5340
|
+
Se(y(je), {
|
5240
5341
|
modelValue: y(s),
|
5241
|
-
"onUpdate:modelValue": i[1] || (i[1] = (a) =>
|
5342
|
+
"onUpdate:modelValue": i[1] || (i[1] = (a) => Oe(s) ? s.value = a : s = a)
|
5242
5343
|
}, {
|
5243
|
-
default:
|
5244
|
-
|
5344
|
+
default: Fe(() => [
|
5345
|
+
Se(y(vl))
|
5245
5346
|
]),
|
5246
5347
|
_: 1
|
5247
5348
|
}, 8, ["modelValue"]),
|
5248
|
-
|
5349
|
+
Se(y(je), {
|
5249
5350
|
modelValue: y(l),
|
5250
|
-
"onUpdate:modelValue": i[2] || (i[2] = (a) =>
|
5351
|
+
"onUpdate:modelValue": i[2] || (i[2] = (a) => Oe(l) ? l.value = a : l = a)
|
5251
5352
|
}, null, 8, ["modelValue"])
|
5252
5353
|
]));
|
5253
5354
|
}
|
5254
|
-
}),
|
5355
|
+
}), Dl = { class: "ha-condition-group" }, mr = /* @__PURE__ */ Q({
|
5255
5356
|
__name: "Index",
|
5256
5357
|
props: {
|
5257
5358
|
conditions: {}
|
5258
5359
|
},
|
5259
5360
|
setup(u) {
|
5260
|
-
let t = u, { conditions: e } =
|
5261
|
-
return (s, l) => (
|
5262
|
-
(
|
5361
|
+
let t = u, { conditions: e } = se(t);
|
5362
|
+
return (s, l) => (I(), B("div", Dl, [
|
5363
|
+
(I(!0), B(Et, null, Tt(y(e), (r) => (I(), Ze(y(Al), {
|
5263
5364
|
name: r.name,
|
5264
5365
|
operator: r.operator,
|
5265
5366
|
value: r.value
|
5266
5367
|
}, null, 8, ["name", "operator", "value"]))), 256))
|
5267
5368
|
]));
|
5268
5369
|
}
|
5269
|
-
}),
|
5270
|
-
function
|
5271
|
-
return
|
5272
|
-
|
5370
|
+
}), Rl = {}, Il = { class: "ha-col" };
|
5371
|
+
function Ol(u, t) {
|
5372
|
+
return I(), B("div", Il, [
|
5373
|
+
he(u.$slots, "default")
|
5273
5374
|
]);
|
5274
5375
|
}
|
5275
|
-
const yr = /* @__PURE__ */
|
5376
|
+
const yr = /* @__PURE__ */ Ne(Rl, [["render", Ol]]), vr = /* @__PURE__ */ Q({
|
5276
5377
|
__name: "Container",
|
5277
5378
|
props: {
|
5278
5379
|
container: { type: Boolean, default: !0 }
|
5279
5380
|
},
|
5280
5381
|
setup(u) {
|
5281
|
-
let t = u, { container: e } =
|
5282
|
-
return (s, l) => (
|
5283
|
-
class:
|
5382
|
+
let t = u, { container: e } = se(t);
|
5383
|
+
return (s, l) => (I(), B("div", {
|
5384
|
+
class: $e({ "ha-container": y(e) })
|
5284
5385
|
}, [
|
5285
|
-
|
5386
|
+
he(s.$slots, "default")
|
5286
5387
|
], 2));
|
5287
5388
|
}
|
5288
5389
|
}), wr = /* @__PURE__ */ Q({
|
@@ -5292,15 +5393,15 @@ const yr = /* @__PURE__ */ ze(Ol, [["render", jl]]), vr = /* @__PURE__ */ Q({
|
|
5292
5393
|
direction: {}
|
5293
5394
|
},
|
5294
5395
|
setup(u) {
|
5295
|
-
let t = u, { gap: e, direction: s } =
|
5396
|
+
let t = u, { gap: e, direction: s } = se(t), l = Ce(() => {
|
5296
5397
|
let r = { gap: null };
|
5297
5398
|
return e.value && (r.gap = e.value + "px"), r;
|
5298
5399
|
});
|
5299
|
-
return (r, i) => (
|
5300
|
-
class:
|
5301
|
-
style:
|
5400
|
+
return (r, i) => (I(), B("div", {
|
5401
|
+
class: $e(["ha-row", y(s)]),
|
5402
|
+
style: pe(y(l))
|
5302
5403
|
}, [
|
5303
|
-
|
5404
|
+
he(r.$slots, "default")
|
5304
5405
|
], 6));
|
5305
5406
|
}
|
5306
5407
|
}), br = /* @__PURE__ */ Q({
|
@@ -5311,7 +5412,7 @@ const yr = /* @__PURE__ */ ze(Ol, [["render", jl]]), vr = /* @__PURE__ */ Q({
|
|
5311
5412
|
},
|
5312
5413
|
emits: ["update:modelValue"],
|
5313
5414
|
setup(u) {
|
5314
|
-
let t =
|
5415
|
+
let t = He(u, "modelValue"), e = R(!0), s = R(0), l = null, r = () => {
|
5315
5416
|
s.value = 0, e.value = !0, l = setInterval(() => {
|
5316
5417
|
if (s.value < 100) {
|
5317
5418
|
s.value++;
|
@@ -5327,78 +5428,78 @@ const yr = /* @__PURE__ */ ze(Ol, [["render", jl]]), vr = /* @__PURE__ */ Q({
|
|
5327
5428
|
}, 200));
|
5328
5429
|
}, c);
|
5329
5430
|
};
|
5330
|
-
return
|
5431
|
+
return ve(() => {
|
5331
5432
|
t.value && r();
|
5332
|
-
}),
|
5433
|
+
}), we(() => {
|
5333
5434
|
clearInterval(l);
|
5334
5435
|
}), J(() => t.value, (a, o) => {
|
5335
5436
|
a ? r() : i();
|
5336
|
-
}), (a, o) => y(e) ? (
|
5437
|
+
}), (a, o) => y(e) ? (I(), B("div", {
|
5337
5438
|
key: 0,
|
5338
5439
|
class: "ha-progress",
|
5339
|
-
style:
|
5340
|
-
}, null, 4)) :
|
5440
|
+
style: pe({ width: y(s) + "%" })
|
5441
|
+
}, null, 4)) : Ge("", !0);
|
5341
5442
|
}
|
5342
|
-
}),
|
5443
|
+
}), jl = { class: "progress-tips" }, _l = { class: "progress-tip info" }, Bl = { class: "progress-tip success" }, Pl = { class: "progress-tip error" }, Ul = { class: "progress-chart" }, Fl = { class: "progress-bar" }, Ml = { class: "progress-text" }, xr = /* @__PURE__ */ Q({
|
5343
5444
|
__name: "SocketProgress",
|
5344
5445
|
props: {
|
5345
5446
|
progress: {}
|
5346
5447
|
},
|
5347
5448
|
setup(u) {
|
5348
|
-
let t = u, { progress: e } =
|
5449
|
+
let t = u, { progress: e } = se(t), s = Ce(() => {
|
5349
5450
|
let a = e.value;
|
5350
5451
|
return (a.succeed ?? 0) + (a.errored ?? 0);
|
5351
|
-
}), l =
|
5352
|
-
return (a, o) => (
|
5353
|
-
class:
|
5452
|
+
}), l = Ce(() => Z.getPercentage(s.value, e.value.total)), r = Ce(() => Z.getProgressText(s.value, e.value.total)), i = Ce(() => Z.getPercentageText(s.value, e.value.total));
|
5453
|
+
return (a, o) => (I(), B("div", {
|
5454
|
+
class: $e(["ha-socket-progress", { error: y(e).errored > 0 }])
|
5354
5455
|
}, [
|
5355
|
-
D("div",
|
5356
|
-
D("div",
|
5357
|
-
D("div",
|
5358
|
-
D("div",
|
5456
|
+
D("div", jl, [
|
5457
|
+
D("div", _l, "进度:" + de(y(r)), 1),
|
5458
|
+
D("div", Bl, "成功:" + de(y(e).succeed ?? "-"), 1),
|
5459
|
+
D("div", Pl, "异常:" + de(y(e).errored ?? "-"), 1)
|
5359
5460
|
]),
|
5360
|
-
D("div",
|
5361
|
-
D("div",
|
5461
|
+
D("div", Ul, [
|
5462
|
+
D("div", Fl, [
|
5362
5463
|
D("div", {
|
5363
5464
|
class: "progress-percentage",
|
5364
|
-
style:
|
5465
|
+
style: pe({ width: y(l) + "%" })
|
5365
5466
|
}, null, 4)
|
5366
5467
|
]),
|
5367
|
-
D("div",
|
5468
|
+
D("div", Ml, de(y(i)) + "%", 1)
|
5368
5469
|
])
|
5369
5470
|
], 2));
|
5370
5471
|
}
|
5371
|
-
}),
|
5372
|
-
|
5373
|
-
|
5472
|
+
}), ql = { class: "ha-tab" }, Nl = /* @__PURE__ */ D("div", { class: "tab-header" }, null, -1), Vl = /* @__PURE__ */ D("div", { class: "tab-body" }, null, -1), zl = [
|
5473
|
+
Nl,
|
5474
|
+
Vl
|
5374
5475
|
], kr = /* @__PURE__ */ Q({
|
5375
5476
|
__name: "Tab",
|
5376
5477
|
props: {
|
5377
5478
|
destroy: { type: Boolean }
|
5378
5479
|
},
|
5379
5480
|
setup(u) {
|
5380
|
-
return (t, e) => (
|
5481
|
+
return (t, e) => (I(), B("div", ql, zl));
|
5381
5482
|
}
|
5382
5483
|
});
|
5383
5484
|
let Sr = async (u) => {
|
5384
|
-
u == null && (u = new
|
5385
|
-
let t = await Fs.getSso(), e =
|
5485
|
+
u == null && (u = new ol()), await Gs(u);
|
5486
|
+
let t = await Fs.getSso(), e = ee.sys.app, s = { baseUrl: u.baseUrl, language: e.language, user: t, platform: "pc" }, l = _.serialize(s);
|
5386
5487
|
await T.open(l), T.onResponse = async (r) => {
|
5387
5488
|
let i = r.data;
|
5388
5489
|
return Ps.add(i.code, i.message, i.stack, i.elapsed), Promise.resolve();
|
5389
|
-
}
|
5490
|
+
};
|
5390
5491
|
};
|
5391
5492
|
export {
|
5392
5493
|
oe as ArrayHelper,
|
5393
|
-
|
5494
|
+
tt as BrowserHelper,
|
5394
5495
|
Vt as BuilderFactory,
|
5395
|
-
|
5496
|
+
st as Cdn,
|
5396
5497
|
Wt as CdnFactory,
|
5397
|
-
|
5398
|
-
|
5399
|
-
|
5498
|
+
Rt as ComponentHelper,
|
5499
|
+
ol as CreateFeOptions,
|
5500
|
+
_e as DictionaryHelper,
|
5400
5501
|
j as DomHelper,
|
5401
|
-
|
5502
|
+
hl as DragEvent,
|
5402
5503
|
Xt as EncoderFactory,
|
5403
5504
|
ie as EventHelper,
|
5404
5505
|
gt as EventUtility,
|
@@ -5406,93 +5507,93 @@ export {
|
|
5406
5507
|
ts as ExplainerFactory,
|
5407
5508
|
C as Factories,
|
5408
5509
|
ns as FeatureFactory,
|
5409
|
-
|
5510
|
+
Ae as FileHelper,
|
5410
5511
|
hr as HaCode,
|
5411
5512
|
yr as HaCol,
|
5412
5513
|
pr as HaCompare,
|
5413
|
-
|
5514
|
+
Al as HaCondition,
|
5414
5515
|
mr as HaConditionGroup,
|
5415
5516
|
vr as HaContainer,
|
5416
|
-
|
5417
|
-
|
5418
|
-
|
5517
|
+
rr as HaEmpty,
|
5518
|
+
pl as HaFill,
|
5519
|
+
vl as HaOption,
|
5419
5520
|
br as HaProgress,
|
5420
5521
|
fr as HaRichText,
|
5421
5522
|
wr as HaRow,
|
5422
|
-
|
5423
|
-
|
5523
|
+
fl as HaScroller,
|
5524
|
+
je as HaSelect,
|
5424
5525
|
xr as HaSocketProgress,
|
5425
5526
|
kr as HaTab,
|
5426
5527
|
dr as HaTimer,
|
5427
5528
|
ds as HaloHttp,
|
5428
5529
|
os as HasherFactory,
|
5429
|
-
|
5530
|
+
Ke as HtmlHelper,
|
5430
5531
|
hs as HttpFactory,
|
5431
|
-
|
5432
|
-
|
5532
|
+
nt as HttpRequest,
|
5533
|
+
Je as HttpResponse,
|
5433
5534
|
gs as I18nFactory,
|
5434
|
-
|
5535
|
+
It as ImageHelper,
|
5435
5536
|
_ as JsonHelper,
|
5436
|
-
|
5437
|
-
|
5438
|
-
|
5537
|
+
ir as KeyboardUtility,
|
5538
|
+
ar as ListDelta,
|
5539
|
+
Z as MathHelper,
|
5439
5540
|
ms as Messenger,
|
5440
5541
|
vs as MessengerFactory,
|
5441
|
-
|
5442
|
-
|
5443
|
-
|
5542
|
+
Ot as MicroHelper,
|
5543
|
+
ye as MountHelper,
|
5544
|
+
or as MouseUtility,
|
5444
5545
|
X as ObjectHelper,
|
5445
5546
|
ft as Position,
|
5446
5547
|
qt as ProviderFactory,
|
5447
|
-
|
5548
|
+
Hl as ProviderTable,
|
5549
|
+
ur as RandomUtility,
|
5448
5550
|
gr as Range,
|
5449
|
-
|
5551
|
+
nr as Rect,
|
5450
5552
|
jt as Ref,
|
5451
5553
|
cr as SaveUtility,
|
5452
|
-
|
5554
|
+
We as ScrollHelper,
|
5453
5555
|
Bt as SignHelper,
|
5454
5556
|
xs as SignerFactory,
|
5455
|
-
|
5456
|
-
|
5457
|
-
|
5458
|
-
|
5557
|
+
Qe as SqlHelper,
|
5558
|
+
Ms as SsoFactory,
|
5559
|
+
it as SsoUser,
|
5560
|
+
M as StringHelper,
|
5459
5561
|
Bs as SvcFactory,
|
5460
|
-
|
5461
|
-
|
5462
|
-
|
5463
|
-
|
5464
|
-
|
5562
|
+
Vs as TaskFactory,
|
5563
|
+
ke as TaskHelper,
|
5564
|
+
Ws as TemplateFactory,
|
5565
|
+
te as TimeHelper,
|
5566
|
+
De as TreeHelper,
|
5465
5567
|
F as TypeHelper,
|
5466
|
-
|
5467
|
-
|
5468
|
-
|
5469
|
-
|
5470
|
-
|
5471
|
-
|
5568
|
+
W as UrlHelper,
|
5569
|
+
sr as VideoFactory,
|
5570
|
+
lr as VoiceFactory,
|
5571
|
+
Xs as base64,
|
5572
|
+
fe as cdn,
|
5573
|
+
ee as configSvc,
|
5472
5574
|
Sr as createFe,
|
5473
|
-
|
5474
|
-
|
5575
|
+
er as driverSvc,
|
5576
|
+
tr as envSvc,
|
5475
5577
|
T as http,
|
5476
|
-
|
5477
|
-
|
5478
|
-
Ms as initSvc,
|
5578
|
+
Xe as i18n,
|
5579
|
+
Gs as initDriver,
|
5479
5580
|
Ps as logSvc,
|
5480
5581
|
pt as md5,
|
5481
|
-
|
5582
|
+
me as messenger,
|
5482
5583
|
H as moment,
|
5483
|
-
|
5484
|
-
|
5584
|
+
Le as settingRepo,
|
5585
|
+
ct as settingSvc,
|
5485
5586
|
Us as socketSvc,
|
5486
|
-
|
5487
|
-
|
5488
|
-
|
5489
|
-
|
5490
|
-
|
5491
|
-
|
5492
|
-
|
5493
|
-
|
5494
|
-
|
5495
|
-
|
5496
|
-
|
5587
|
+
Zs as t,
|
5588
|
+
tl as t_enum,
|
5589
|
+
Hs as t_exists,
|
5590
|
+
sl as t_field,
|
5591
|
+
ll as t_field_choose_placeholder,
|
5592
|
+
rl as t_field_placeholder,
|
5593
|
+
al as t_menu,
|
5594
|
+
il as t_module,
|
5595
|
+
el as t_sys,
|
5596
|
+
nl as t_table,
|
5597
|
+
Ys as template,
|
5497
5598
|
Fs as userSvc
|
5498
5599
|
};
|