halo-fe 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/main.js +1282 -804
- package/dist/style.css +1 -0
- package/esm/coms/Code.vue.d.ts +41 -0
- package/esm/coms/Col.vue.d.ts +11 -0
- package/esm/coms/Compare.vue.d.ts +40 -0
- package/esm/coms/Container.vue.d.ts +23 -0
- package/esm/coms/Empty.vue.d.ts +26 -0
- package/esm/coms/Progress.vue.d.ts +8 -0
- package/esm/coms/Row.vue.d.ts +21 -0
- package/esm/coms/index.d.ts +8 -0
- package/esm/coms/types/CodeEmit.d.ts +23 -0
- package/esm/coms/types/CodeProps.d.ts +18 -0
- package/esm/coms/types/RowProps.d.ts +14 -0
- package/esm/coms/types/index.d.ts +4 -0
- package/esm/drivers/cdns/CdnFactory.d.ts +1 -1
- package/esm/drivers/cdns/index.d.ts +2 -0
- package/esm/drivers/encoders/EncoderFactory.d.ts +2 -2
- package/esm/drivers/encoders/index.d.ts +2 -0
- package/esm/drivers/excels/ExcelFactory.d.ts +1 -1
- package/esm/drivers/excels/index.d.ts +2 -1
- package/esm/drivers/explainers/index.d.ts +2 -0
- package/esm/drivers/factories/DriverFactory.d.ts +12 -12
- package/esm/drivers/factories/Factory.d.ts +1 -1
- package/esm/drivers/factories/IFactory.d.ts +1 -1
- package/esm/drivers/factories/index.d.ts +13 -1
- package/esm/drivers/features/FeatureFactory.d.ts +1 -1
- package/esm/drivers/features/index.d.ts +2 -1
- package/esm/drivers/hashers/HasherFactory.d.ts +2 -2
- package/esm/drivers/hashers/index.d.ts +2 -1
- package/esm/drivers/https/Http.d.ts +24 -0
- package/esm/drivers/https/HttpFactory.d.ts +20 -0
- package/esm/drivers/https/IHttp.d.ts +49 -0
- package/esm/drivers/https/entities/HttpMessage.d.ts +32 -0
- package/esm/drivers/https/entities/HttpRequest.d.ts +19 -0
- package/esm/drivers/{requesters → https}/entities/HttpResponse.d.ts +2 -5
- package/esm/drivers/{requesters/implements/DefaultRequester.d.ts → https/implements/DefaultHttp.d.ts} +4 -4
- package/esm/drivers/https/implements/HaloHttp.d.ts +37 -0
- package/esm/drivers/{requesters/implements/MkRequester.d.ts → https/implements/MkHttp.d.ts} +7 -7
- package/esm/drivers/https/index.d.ts +6 -0
- package/esm/drivers/index.d.ts +8 -8
- package/esm/drivers/providers/ProviderFactory.d.ts +3 -3
- package/esm/drivers/providers/index.d.ts +2 -1
- package/esm/drivers/signers/ISigner.d.ts +2 -2
- package/esm/drivers/signers/Signer.d.ts +13 -0
- package/esm/drivers/signers/SignerFactory.d.ts +1 -1
- package/esm/drivers/signers/implements/DefaultSigner.d.ts +4 -4
- package/esm/drivers/signers/index.d.ts +2 -1
- package/esm/drivers/ssos/ISso.d.ts +1 -1
- package/esm/drivers/ssos/SsoFactory.d.ts +1 -1
- package/esm/drivers/ssos/implements/AnonymousSso.d.ts +1 -1
- package/esm/drivers/ssos/implements/BearerSso.d.ts +1 -3
- package/esm/drivers/ssos/implements/NioSso.d.ts +1 -1
- package/esm/drivers/ssos/implements/SecretSso.d.ts +3 -3
- package/esm/drivers/ssos/implements/WeiXinSso.d.ts +1 -1
- package/esm/drivers/ssos/index.d.ts +2 -1
- package/esm/helpers/json-helper.d.ts +12 -4
- package/esm/helpers/object-helper.d.ts +4 -0
- package/esm/helpers/types/index.d.ts +0 -0
- package/esm/helpers/url-helper.d.ts +2 -2
- package/esm/main.d.ts +14 -3
- package/esm/services/index.d.ts +6 -12
- package/esm/services/types/IMessage.d.ts +14 -0
- package/esm/services/types/IMessager.d.ts +14 -0
- package/esm/services/types/index.d.ts +2 -0
- package/esm/stores/config.d.ts +10 -6
- package/esm/stores/driver.d.ts +2 -6
- package/esm/stores/index.d.ts +3 -2
- package/esm/stores/setting.d.ts +0 -4
- package/esm/stores/user.d.ts +3 -7
- package/esm/utilities/AffixUtility.d.ts +10 -0
- package/esm/utilities/EventUtility.d.ts +30 -0
- package/esm/utilities/KeyboardUtility.d.ts +73 -0
- package/esm/utilities/MouseUtility.d.ts +24 -0
- package/esm/utilities/index.d.ts +4 -0
- package/package.json +7 -7
- package/dist/vendor-axios-ud9O0vdJ.js +0 -1670
- package/esm/drivers/driver-helper.d.ts +0 -46
- package/esm/drivers/requesters/IRequester.d.ts +0 -25
- package/esm/drivers/requesters/Requester.d.ts +0 -13
- package/esm/drivers/requesters/RequesterFactory.d.ts +0 -21
- package/esm/drivers/requesters/entities/HttpRequest.d.ts +0 -34
- package/esm/drivers/requesters/implements/LocalRequester.d.ts +0 -43
- package/esm/drivers/requesters/index.d.ts +0 -5
- /package/esm/{thirds → plugins}/index.d.ts +0 -0
package/dist/main.js
CHANGED
@@ -1,75 +1,64 @@
|
|
1
|
-
import {
|
2
|
-
import { defineAsyncComponent as
|
3
|
-
import { _ as
|
4
|
-
import { _ as
|
5
|
-
import { F as
|
6
|
-
import { b as
|
7
|
-
import { l as
|
8
|
-
import { h as
|
9
|
-
import { d as
|
10
|
-
import {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
}
|
19
|
-
}
|
20
|
-
class Ft extends ht {
|
21
|
-
constructor() {
|
22
|
-
super(...arguments), this.type = "Default";
|
23
|
-
}
|
24
|
-
open(t) {
|
25
|
-
}
|
26
|
-
send(t) {
|
27
|
-
return new Promise((e, s) => {
|
28
|
-
let r = (/* @__PURE__ */ new Date()).getTime(), n = new XMLHttpRequest();
|
29
|
-
if (n.open(t.method, t.url), t.headers != null)
|
30
|
-
for (let l of t.headers)
|
31
|
-
n.setRequestHeader(l, t.headers[l]);
|
32
|
-
t.contentType != null && n.setRequestHeader("content-type", t.contentType), n.onreadystatechange = () => {
|
33
|
-
if (n.readyState == 4) {
|
34
|
-
let i = { elapsed: (/* @__PURE__ */ new Date()).getTime() - r, body: n.responseText, request: t };
|
35
|
-
e(i);
|
36
|
-
}
|
37
|
-
}, n.onerror = (l) => {
|
38
|
-
let a = { elapsed: (/* @__PURE__ */ new Date()).getTime() - r, body: n.responseText, request: t };
|
39
|
-
e(a);
|
40
|
-
}, n.send(t.body);
|
41
|
-
});
|
42
|
-
}
|
43
|
-
}
|
44
|
-
class Ct {
|
45
|
-
}
|
46
|
-
class Rt extends Ct {
|
47
|
-
constructor() {
|
48
|
-
super(...arguments), this.type = "Sha256";
|
49
|
-
}
|
50
|
-
open(t) {
|
51
|
-
}
|
52
|
-
async compute(t) {
|
53
|
-
let s = new TextEncoder().encode(t), r = await crypto.subtle.digest("SHA-256", s);
|
54
|
-
return Array.from(new Uint8Array(r)).map((i) => i.toString(16).padStart(2, "0")).join("");
|
55
|
-
}
|
56
|
-
}
|
57
|
-
class Dt extends Ct {
|
1
|
+
import { utils as Ut, writeFile as ge } from "xlsx-js-style";
|
2
|
+
import { defineAsyncComponent as fe, defineComponent as _, toRefs as tt, ref as at, onMounted as le, onUnmounted as ie, watch as P, openBlock as z, createElementBlock as M, normalizeClass as Rt, unref as T, renderSlot as It, normalizeStyle as Vt, createElementVNode as me, toDisplayString as pe, createCommentVNode as ae, computed as ye } from "vue";
|
3
|
+
import { _ as be } from "./vendor-underscore.string-vrHhfBaT.js";
|
4
|
+
import { _ as Dt } from "./vendor-underscore-DVTek3G4.js";
|
5
|
+
import { F as we } from "./vendor-file-saver-DKXzEV2Q.js";
|
6
|
+
import { b as ve } from "./vendor-clone-NGbTzSwJ.js";
|
7
|
+
import { l as bt } from "./vendor-@monaco-editor-DKC4UNw_.js";
|
8
|
+
import { h as N } from "./vendor-moment-h96o7c8I.js";
|
9
|
+
import { d as G } from "./vendor-pinia-DVLspbiC.js";
|
10
|
+
import { C as st } from "./vendor-crypto-js-B6Qe-gIg.js";
|
11
|
+
let $t;
|
12
|
+
window._setting ? $t = window._setting : $t = window.setting;
|
13
|
+
const mt = $t;
|
14
|
+
let pt = {}, Se = (a) => {
|
15
|
+
pt = a;
|
16
|
+
};
|
17
|
+
class xe {
|
58
18
|
constructor() {
|
59
|
-
|
19
|
+
this.type = "xlsx";
|
60
20
|
}
|
61
21
|
open(t) {
|
62
22
|
}
|
63
|
-
|
64
|
-
|
65
|
-
|
23
|
+
export(t, e) {
|
24
|
+
if (!e)
|
25
|
+
throw new Error("Excel名称不能为空");
|
26
|
+
t || (t = []);
|
27
|
+
let s;
|
28
|
+
t.length > 0 ? s = Object.keys(t[0]) : s = [];
|
29
|
+
let r = [], n = [];
|
30
|
+
if (s.forEach((c) => {
|
31
|
+
n.push(c);
|
32
|
+
}), r.push(n), t.length > 0)
|
33
|
+
for (let c = 0; c < t.length; c++) {
|
34
|
+
let h = t[c], g = [];
|
35
|
+
Object.keys(h).forEach((v) => {
|
36
|
+
g.push(h[v]);
|
37
|
+
}), r.push(g);
|
38
|
+
}
|
39
|
+
let l = Ut.book_new(), i = Ut.json_to_sheet(r, { skipHeader: !0 });
|
40
|
+
Ut.book_append_sheet(l, i, "abc");
|
41
|
+
let o = 65;
|
42
|
+
for (let c = 0; c < s.length; c++) {
|
43
|
+
let g = `${String.fromCharCode(o + c)}1`;
|
44
|
+
i[g].s = {
|
45
|
+
alignment: { horizontal: "center" },
|
46
|
+
font: { bold: !0, color: { rgb: "000000" } },
|
47
|
+
fill: { fgColor: { rgb: "409eff" } }
|
48
|
+
};
|
49
|
+
}
|
50
|
+
let u = [];
|
51
|
+
s.forEach((c) => {
|
52
|
+
let h = t[0][c], g = { wpx: 50 };
|
53
|
+
typeof h == "string" && (g.wpx = 100), u.push(g);
|
54
|
+
}), i["!cols"] = u, ge(l, e);
|
66
55
|
}
|
67
56
|
}
|
68
|
-
class
|
57
|
+
class L {
|
69
58
|
/**
|
70
59
|
* 创建指定类型驱动
|
71
60
|
*/
|
72
|
-
create(t, e) {
|
61
|
+
async create(t, e) {
|
73
62
|
if (!t)
|
74
63
|
throw new Error("驱动类型不能为空");
|
75
64
|
let r = this.getInstances().find((n) => n.type.toLowerCase() == t.toLowerCase());
|
@@ -78,34 +67,31 @@ class E {
|
|
78
67
|
return r;
|
79
68
|
}
|
80
69
|
}
|
81
|
-
class
|
70
|
+
class ke extends L {
|
82
71
|
getInstances() {
|
83
|
-
return [new
|
84
|
-
}
|
85
|
-
create(t, e) {
|
86
|
-
let s = super.create(t);
|
87
|
-
return s.open(null), s;
|
72
|
+
return [new xe()];
|
88
73
|
}
|
89
74
|
/**
|
90
|
-
* 获取
|
75
|
+
* 获取Excel实例
|
91
76
|
*/
|
92
|
-
|
93
|
-
|
77
|
+
async create(t, e) {
|
78
|
+
let s = await super.create(t);
|
79
|
+
return s.open(e), s;
|
94
80
|
}
|
95
81
|
}
|
96
|
-
const
|
82
|
+
const J = class J {
|
97
83
|
};
|
98
|
-
|
84
|
+
J.isString = (t) => Object.prototype.toString.call(t) == "[object String]", J.isObject = (t) => Object.prototype.toString.call(t) == "[object Object]", J.isArray = (t) => Object.prototype.toString.call(t) == "[object Array]", J.isNumber = (t) => {
|
99
85
|
let e = Object.prototype.toString.call(t);
|
100
86
|
return e == "[object Number]" || e == "[object BigInt]";
|
101
|
-
},
|
102
|
-
let
|
103
|
-
const
|
87
|
+
}, J.isBoolean = (t) => Object.prototype.toString.call(t) == "[object Boolean]";
|
88
|
+
let x = J;
|
89
|
+
const f = class f {
|
104
90
|
/**
|
105
91
|
* 根据字符串或数组,自动返回数组
|
106
92
|
*/
|
107
93
|
static getArray(t) {
|
108
|
-
return
|
94
|
+
return x.isString(t) ? [t.toString()] : t instanceof Array ? t : [];
|
109
95
|
}
|
110
96
|
/**
|
111
97
|
* 忽略大小写比较
|
@@ -115,23 +101,23 @@ const h = class h {
|
|
115
101
|
return s == r;
|
116
102
|
}
|
117
103
|
};
|
118
|
-
|
104
|
+
f.getUniqueId = () => {
|
119
105
|
let t = Date.now().toString(36);
|
120
106
|
return t += Math.random().toString(36).substring(2), t;
|
121
|
-
},
|
107
|
+
}, f.padLeft = (t, e, s) => be.pad(t, e, s), f.trimStart = (t, e) => {
|
122
108
|
if (e == null)
|
123
109
|
return t;
|
124
110
|
let s = t.indexOf(e);
|
125
111
|
return t.substring(s + e.length);
|
126
|
-
},
|
112
|
+
}, f.trimEnd = (t, e) => {
|
127
113
|
if (e == null)
|
128
114
|
return t;
|
129
115
|
let s = t.lastIndexOf(e);
|
130
116
|
return t.substring(0, s);
|
131
|
-
},
|
132
|
-
let r =
|
133
|
-
return
|
134
|
-
},
|
117
|
+
}, f.trim = (t, e, s) => {
|
118
|
+
let r = f.trimStart(t, e);
|
119
|
+
return f.trimEnd(r, s);
|
120
|
+
}, f.getDashName = (t) => {
|
135
121
|
if (!t)
|
136
122
|
return null;
|
137
123
|
let e = "";
|
@@ -140,7 +126,7 @@ h.getUniqueId = () => {
|
|
140
126
|
r == "/" ? e += "-" : r >= "A" && r <= "Z" ? (s > 0 && t[s - 1] != "/" && (e += "-"), e += r.toLowerCase()) : e += r;
|
141
127
|
}
|
142
128
|
return e;
|
143
|
-
},
|
129
|
+
}, f.containsIgnoreCase = (t, e) => {
|
144
130
|
if (!t)
|
145
131
|
return !0;
|
146
132
|
let s = e instanceof Array ? e : [e];
|
@@ -152,26 +138,26 @@ h.getUniqueId = () => {
|
|
152
138
|
return !0;
|
153
139
|
}
|
154
140
|
return !1;
|
155
|
-
},
|
141
|
+
}, f.getTextFromHtml = (t) => {
|
156
142
|
if (!t)
|
157
143
|
return null;
|
158
144
|
let e = new RegExp("<.+?>", "g");
|
159
145
|
return t.replace(e, "");
|
160
|
-
},
|
146
|
+
}, f.isNumber = (t) => t != null && !isNaN(t), f.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), f.isJson = (t) => {
|
161
147
|
try {
|
162
148
|
if (!t)
|
163
149
|
return !1;
|
164
150
|
let e = JSON.parse(t);
|
165
|
-
return
|
151
|
+
return x.isObject(e);
|
166
152
|
} catch {
|
167
153
|
return !1;
|
168
154
|
}
|
169
|
-
},
|
155
|
+
}, f.isJsonp = (t) => {
|
170
156
|
if (!t)
|
171
157
|
return !1;
|
172
158
|
let e = t.indexOf("("), s = t.lastIndexOf(")"), r = t.substring(e + 1, s);
|
173
|
-
return !!
|
174
|
-
},
|
159
|
+
return !!f.isJson(r);
|
160
|
+
}, f.isHtml = (t) => {
|
175
161
|
if (!t)
|
176
162
|
return !1;
|
177
163
|
let e = document.createElement("div");
|
@@ -180,18 +166,18 @@ h.getUniqueId = () => {
|
|
180
166
|
if (s[r].nodeType == 1)
|
181
167
|
return !0;
|
182
168
|
return !1;
|
183
|
-
},
|
169
|
+
}, f.getContentType = (t) => f.isJson(t) || f.isJsonp(t) ? "json" : f.isHtml(t) ? "html" : "text", f.isNullOrEmpty = (t) => t == null || f.isEmpty(t), f.isEmpty = (t) => t == "", f.isPassword = (t) => !0, f.getNumberOrNull = (t) => t == null || isNaN(t) ? 0 : parseFloat(t), f.format = (t, e) => {
|
184
170
|
let s = parseFloat(t), r;
|
185
171
|
return e ? r = s.toFixed(e).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") : r = s.toLocaleString(), r;
|
186
|
-
},
|
172
|
+
}, f.getBetween = (t, e, s) => {
|
187
173
|
let r = t.indexOf(e);
|
188
174
|
if (r == -1)
|
189
175
|
return null;
|
190
176
|
let n = r + e.length, l = t.substring(n), i = l.indexOf(s);
|
191
177
|
return i == -1 ? null : l.substring(0, i);
|
192
178
|
};
|
193
|
-
let
|
194
|
-
class
|
179
|
+
let B = f;
|
180
|
+
class Os {
|
195
181
|
/**
|
196
182
|
* 根据动态加载的组件对象,得到组件集合
|
197
183
|
*/
|
@@ -201,37 +187,37 @@ class qe {
|
|
201
187
|
return r;
|
202
188
|
for (let l = 0; l < n.length; l++) {
|
203
189
|
const i = n[l];
|
204
|
-
let
|
205
|
-
if (
|
206
|
-
r[c] =
|
190
|
+
let o = B.trim(i, e, ".vue"), c = (s ? s + "-" : "") + B.getDashName(o), h = t[i];
|
191
|
+
if (h.default)
|
192
|
+
r[c] = h.default;
|
207
193
|
else {
|
208
|
-
let
|
209
|
-
r[c] =
|
194
|
+
let g = fe(h);
|
195
|
+
r[c] = g;
|
210
196
|
}
|
211
197
|
}
|
212
198
|
return r;
|
213
199
|
}
|
214
200
|
}
|
215
|
-
const
|
201
|
+
const p = class p {
|
216
202
|
};
|
217
|
-
|
203
|
+
p.getChunks = (t, e) => {
|
218
204
|
let s = [];
|
219
205
|
for (let r = 0; r < t.length; r += e) {
|
220
206
|
let n = t.slice(r, r + e);
|
221
207
|
s.push(n);
|
222
208
|
}
|
223
209
|
return s;
|
224
|
-
},
|
210
|
+
}, p.intersect = (t, e) => t.filter((r) => e.indexOf(r) > -1), p.except = (t, e, s = null) => {
|
225
211
|
let r = e instanceof Array ? e : [e], n = [];
|
226
212
|
if (s == null)
|
227
213
|
n = t.filter((l) => r.indexOf(l) == -1);
|
228
214
|
else
|
229
215
|
for (let l = 0; l < t.length; l++) {
|
230
216
|
let i = t[l];
|
231
|
-
r.find((
|
217
|
+
r.find((u) => s(i, u)) || n.push(i);
|
232
218
|
}
|
233
219
|
return n;
|
234
|
-
},
|
220
|
+
}, p.contains = (t, e) => t.indexOf(e) > -1, p.filterContains = (t, e, s) => {
|
235
221
|
let r = [];
|
236
222
|
if (!s)
|
237
223
|
return t;
|
@@ -239,12 +225,12 @@ f.getChunks = (t, e) => {
|
|
239
225
|
let l = t[n];
|
240
226
|
if (l)
|
241
227
|
for (let i = 0; i < e.length; i++) {
|
242
|
-
let
|
243
|
-
l[
|
228
|
+
let o = e[i];
|
229
|
+
l[o].toString().toUpperCase().includes(s.toUpperCase()) && r.push(l);
|
244
230
|
}
|
245
231
|
}
|
246
232
|
return r;
|
247
|
-
},
|
233
|
+
}, p.same = (t, e) => {
|
248
234
|
if (t.length != e.length)
|
249
235
|
return !1;
|
250
236
|
let s = t.length >= e.length ? t : e, r = t.length < e.length ? t : e;
|
@@ -252,77 +238,77 @@ f.getChunks = (t, e) => {
|
|
252
238
|
if (s[n] != r[n])
|
253
239
|
return !1;
|
254
240
|
return !0;
|
255
|
-
},
|
241
|
+
}, p.max = (t, e) => Dt.max(t, e), p.min = (t, e) => Dt.min(t, e), p.sum = (t, e, s = null) => {
|
256
242
|
let r = 0;
|
257
243
|
for (let l = 0; l < t.length; l++)
|
258
244
|
r += e(t[l]);
|
259
245
|
return s == null ? r : parseFloat(r.toFixed(s));
|
260
|
-
},
|
261
|
-
let n =
|
246
|
+
}, p.avg = (t, e, s = null) => {
|
247
|
+
let n = p.sum(t, e) / t.length;
|
262
248
|
return s == null ? n : parseFloat(n.toFixed(s));
|
263
|
-
},
|
249
|
+
}, p.distinct = (t, e) => {
|
264
250
|
let s = new Set(t.map((n) => e(n)));
|
265
251
|
return Array.from(s);
|
266
|
-
},
|
252
|
+
}, p.pushIfNotExist = (t, e) => {
|
267
253
|
t.indexOf(e) == -1 && t.push(e);
|
268
|
-
},
|
254
|
+
}, p.fromValues = (t, e, s, r) => {
|
269
255
|
if (!t || t.length == 0 || !e || e.length == 0)
|
270
256
|
return [];
|
271
257
|
let n = [];
|
272
258
|
return t.forEach((l) => {
|
273
|
-
let i = e.find((
|
259
|
+
let i = e.find((o) => o[s] == l);
|
274
260
|
i || (i = { [s]: l, [r]: l }), n.push(i);
|
275
261
|
}), n;
|
276
|
-
},
|
262
|
+
}, p.removeIndex = (t, e, s) => {
|
277
263
|
let r = t.split(s);
|
278
264
|
return r.splice(e, 1), r.join(s);
|
279
|
-
},
|
265
|
+
}, p.split = (t, e, s = null) => {
|
280
266
|
let r = [];
|
281
267
|
return t && (r = t.split(e)), s != null && r.push(s), r;
|
282
|
-
},
|
283
|
-
let e = [], s =
|
268
|
+
}, p.combine = (...t) => {
|
269
|
+
let e = [], s = Dt.max(t, (r) => r.length);
|
284
270
|
for (let r = 0; r < s.length; r++) {
|
285
271
|
let n = [], l;
|
286
272
|
for (let i = 0; i < t.length; i++) {
|
287
|
-
let
|
288
|
-
|
273
|
+
let o = t[i][r];
|
274
|
+
o != null && (l = o);
|
289
275
|
break;
|
290
276
|
}
|
291
277
|
for (let i = 0; i < t.length; i++) {
|
292
|
-
let
|
293
|
-
|
278
|
+
let o = t[i][r];
|
279
|
+
o != null ? n.push(o) : n.push(l);
|
294
280
|
}
|
295
281
|
e.push(n);
|
296
282
|
}
|
297
283
|
return e;
|
298
|
-
},
|
284
|
+
}, p.insert = (t, e, s) => {
|
299
285
|
let r = t.indexOf(e);
|
300
286
|
return t.splice(r, 0, s), r;
|
301
|
-
},
|
287
|
+
}, p.append = (t, e, s) => {
|
302
288
|
let r = t.indexOf(e) + 1;
|
303
289
|
return t.splice(r, 0, s), r;
|
304
|
-
},
|
305
|
-
if (
|
290
|
+
}, p.remove = (t, e) => {
|
291
|
+
if (x.isNumber(e))
|
306
292
|
t.splice(e, 1);
|
307
|
-
else if (
|
293
|
+
else if (x.isArray(e))
|
308
294
|
for (let s = 0; s < e.length; s++)
|
309
|
-
|
295
|
+
p.remove(t, e[s]);
|
310
296
|
else
|
311
297
|
t.splice(t.indexOf(e), 1);
|
312
|
-
},
|
313
|
-
|
298
|
+
}, p.orderBy = (t, e, s = !0) => {
|
299
|
+
x.isArray(e) || (e = [e]);
|
314
300
|
let r = t.sort((n, l) => {
|
315
301
|
let i = e[0](n) - e[0](l);
|
316
302
|
return i == 0 && e[1] ? e[1](n) - e[1](l) : i;
|
317
303
|
});
|
318
304
|
return s ? r.reverse() : r;
|
319
|
-
},
|
305
|
+
}, p.groupByArray = (t, e) => {
|
320
306
|
let s = [];
|
321
307
|
return t.forEach((r) => {
|
322
308
|
let n = e(r), l = s.find((i) => i.key == n);
|
323
309
|
l == null && (l = { key: n, value: [] }, s.push(l)), l.value.push(r);
|
324
310
|
}), s;
|
325
|
-
},
|
311
|
+
}, p.groupBy = (t, e, s = null) => {
|
326
312
|
let r = {};
|
327
313
|
return t.forEach((n) => {
|
328
314
|
let l = e(n);
|
@@ -331,10 +317,10 @@ f.getChunks = (t, e) => {
|
|
331
317
|
r[n] = s(r[n]);
|
332
318
|
}), r;
|
333
319
|
};
|
334
|
-
let
|
335
|
-
class
|
320
|
+
let rt = p;
|
321
|
+
class Is {
|
336
322
|
}
|
337
|
-
const
|
323
|
+
const nt = class nt {
|
338
324
|
/**
|
339
325
|
* 根据字符串Ascii码得到固定颜色字典
|
340
326
|
*/
|
@@ -348,10 +334,10 @@ const J = class J {
|
|
348
334
|
}
|
349
335
|
for (let r = 0; r < t.length; r++) {
|
350
336
|
let n = t[r], l = 0;
|
351
|
-
for (let
|
352
|
-
l += n.charCodeAt(
|
353
|
-
let i = l / s,
|
354
|
-
e[n] = `rgb(${
|
337
|
+
for (let h = 0; h < n.length; h++)
|
338
|
+
l += n.charCodeAt(h);
|
339
|
+
let i = l / s, o = 255 * i, u = 255 * (1 - i), c = 255 * (1 - i);
|
340
|
+
e[n] = `rgb(${o}, ${u}, ${c})`;
|
355
341
|
}
|
356
342
|
return e;
|
357
343
|
}
|
@@ -365,7 +351,7 @@ const J = class J {
|
|
365
351
|
let e = "";
|
366
352
|
for (let s = 0; s < t.length; s++) {
|
367
353
|
let r = t[s];
|
368
|
-
|
354
|
+
B.isNullOrEmpty(r) || (e += r, s != t.length - 1 && (e += " "));
|
369
355
|
}
|
370
356
|
return e;
|
371
357
|
}
|
@@ -474,13 +460,13 @@ const J = class J {
|
|
474
460
|
let l = t.querySelector(s);
|
475
461
|
if (!l)
|
476
462
|
return null;
|
477
|
-
let i = {},
|
463
|
+
let i = {}, o = t.getBoundingClientRect(), u = r.getBoundingClientRect(), h = t.querySelector(e).getBoundingClientRect(), g = l.getBoundingClientRect(), v = u.height - h.top;
|
478
464
|
if (n == "right") {
|
479
|
-
i.left = `${
|
480
|
-
let
|
481
|
-
|
465
|
+
i.left = `${o.left + o.width}px`;
|
466
|
+
let k;
|
467
|
+
g.height > u.height ? k = u.height : k = g.height, i.height = `${k}px`, k + h.top > u.height ? (i.top = "initial", i.bottom = "0px") : i.top = `${o.top}px`;
|
482
468
|
} else if (n == "bottom")
|
483
|
-
|
469
|
+
v -= h.height, i.left = `${o.left}px`, i.top = `${o.top + o.height}px`, v < g.height ? i.height = `${v}px` : i.height = `${g.height}px`;
|
484
470
|
else
|
485
471
|
throw new Error(`暂未支持的position:${n}`);
|
486
472
|
return i;
|
@@ -494,8 +480,8 @@ const J = class J {
|
|
494
480
|
return 0;
|
495
481
|
let s = [];
|
496
482
|
for (let n = 0; n < e.length; n++) {
|
497
|
-
let l = e[n], i = getComputedStyle(l),
|
498
|
-
s.push(
|
483
|
+
let l = e[n], i = getComputedStyle(l), o = i.zIndex == "auto" ? 0 : i.zIndex;
|
484
|
+
s.push(o);
|
499
485
|
}
|
500
486
|
return Math.max(...s);
|
501
487
|
}
|
@@ -541,7 +527,7 @@ const J = class J {
|
|
541
527
|
}
|
542
528
|
//#endregion
|
543
529
|
};
|
544
|
-
|
530
|
+
nt.addClass = (t, e, s = null) => {
|
545
531
|
let r;
|
546
532
|
if (e == null || e == "") {
|
547
533
|
if (s == null || s == "")
|
@@ -550,7 +536,7 @@ J.addClass = (t, e, s = null) => {
|
|
550
536
|
} else
|
551
537
|
r = e;
|
552
538
|
t.classList.add(r);
|
553
|
-
},
|
539
|
+
}, nt.removeClass = (t, e, s = null) => {
|
554
540
|
if (e == null || e == "")
|
555
541
|
return;
|
556
542
|
let r = [];
|
@@ -563,20 +549,20 @@ J.addClass = (t, e, s = null) => {
|
|
563
549
|
let l = r[n];
|
564
550
|
s != l && l.classList.remove(e);
|
565
551
|
}
|
566
|
-
},
|
552
|
+
}, nt.getWidthOrHeight = (t, e, s = null) => {
|
567
553
|
let r = 0, n = [];
|
568
|
-
|
554
|
+
x.isArray(t) ? n.push(...t) : n.push(t);
|
569
555
|
for (let l = 0; l < n.length; l++) {
|
570
556
|
let i = n[l];
|
571
557
|
if (!i || !i.getBoundingClientRect)
|
572
558
|
continue;
|
573
|
-
let
|
574
|
-
r +=
|
559
|
+
let o = i.getBoundingClientRect();
|
560
|
+
r += o[e], s && (r += s(i));
|
575
561
|
}
|
576
562
|
return r;
|
577
563
|
};
|
578
|
-
let
|
579
|
-
class
|
564
|
+
let V = nt;
|
565
|
+
class wt {
|
580
566
|
/**
|
581
567
|
* 从指定字典中提取忽略大小写的key的值
|
582
568
|
*/
|
@@ -608,61 +594,61 @@ class X {
|
|
608
594
|
return n;
|
609
595
|
let l = Object.keys(t);
|
610
596
|
for (let i = 0; i < l.length; i++) {
|
611
|
-
let
|
612
|
-
n = n.concat(
|
597
|
+
let o = l[i], u = e == null ? t[o] : e(t[o]);
|
598
|
+
n = n.concat(o).concat(s).concat(u), i != l.length - 1 && (n += r);
|
613
599
|
}
|
614
600
|
return n;
|
615
601
|
}
|
616
602
|
// #endregion
|
617
603
|
}
|
618
|
-
const
|
604
|
+
const F = class F {
|
619
605
|
};
|
620
|
-
|
606
|
+
F.bind = (t, e, s) => {
|
621
607
|
e && t.forEach((r) => {
|
622
608
|
e.addEventListener(r, s, !0);
|
623
609
|
});
|
624
|
-
},
|
610
|
+
}, F.unbind = (t, e, s) => {
|
625
611
|
e && t.forEach((r) => {
|
626
612
|
e.removeEventListener(r, s, !0);
|
627
613
|
});
|
628
|
-
},
|
614
|
+
}, F.click = (t, e) => {
|
629
615
|
t && t.addEventListener("click", e, !0);
|
630
|
-
},
|
616
|
+
}, F.unclick = (t, e) => {
|
631
617
|
t && t.removeEventListener("click", e, !0);
|
632
|
-
},
|
618
|
+
}, F.scroll = (t, e) => {
|
633
619
|
t && t.addEventListener("scroll", e, !0);
|
634
|
-
},
|
620
|
+
}, F.unscroll = (t, e) => {
|
635
621
|
t && t.removeEventListener("scroll", e, !0);
|
636
622
|
};
|
637
|
-
let
|
638
|
-
const
|
623
|
+
let vt = F;
|
624
|
+
const R = class R {
|
639
625
|
};
|
640
|
-
|
626
|
+
R.save = (t, e) => {
|
641
627
|
let s = window.atob(t), r = s.length, n = new Uint8Array(r);
|
642
628
|
for (; r--; )
|
643
629
|
n[r] = s.charCodeAt(r);
|
644
630
|
let l = new Blob([n]);
|
645
|
-
|
646
|
-
},
|
631
|
+
we.saveAs(l, e);
|
632
|
+
}, R.getExtension = (t) => {
|
647
633
|
let e = t.lastIndexOf(".");
|
648
634
|
return e == -1 ? "" : t.substring(e).split("?")[0];
|
649
|
-
},
|
650
|
-
let e =
|
635
|
+
}, R.isExcel = (t) => {
|
636
|
+
let e = R.getExtension(t);
|
651
637
|
return [".xls", ".xlsx"].indexOf(e) > -1;
|
652
|
-
},
|
653
|
-
let e =
|
638
|
+
}, R.isImage = (t) => {
|
639
|
+
let e = R.getExtension(t);
|
654
640
|
return [".png", ".jpg", ".jpeg", ".bmp", ".gif"].indexOf(e) > -1;
|
655
641
|
};
|
656
|
-
let
|
657
|
-
const
|
642
|
+
let St = R;
|
643
|
+
const zt = class zt {
|
658
644
|
};
|
659
|
-
|
660
|
-
let
|
661
|
-
const
|
645
|
+
zt.getHtml = (t) => x.isNumber(t) ? t : t && t.replace(/\n/g, "<br/>");
|
646
|
+
let Gt = zt;
|
647
|
+
const Mt = class Mt {
|
662
648
|
};
|
663
|
-
|
664
|
-
let
|
665
|
-
const
|
649
|
+
Mt.base64 = (t) => "data:image/png;base64," + t;
|
650
|
+
let Zt = Mt;
|
651
|
+
const S = class S {
|
666
652
|
/**
|
667
653
|
* 生成指定范围内的随机数
|
668
654
|
*/
|
@@ -678,50 +664,50 @@ const b = class b {
|
|
678
664
|
return Math.max(...t);
|
679
665
|
}
|
680
666
|
};
|
681
|
-
|
667
|
+
S.filterPage = (t, e, s) => {
|
682
668
|
let r = (e - 1) * s, n = e * s;
|
683
|
-
return t.filter((i,
|
684
|
-
},
|
669
|
+
return t.filter((i, o) => o >= r && o < n);
|
670
|
+
}, S.pageCount = (t, e) => Math.ceil(t / e), S.round = (t, e) => t.toFixed(e), S.ceil = (t) => Math.ceil(t), S.getPercentage = (t, e) => {
|
685
671
|
if (!t || !e)
|
686
672
|
return 0;
|
687
|
-
let s = t / e * 100, r =
|
673
|
+
let s = t / e * 100, r = S.round(s, 2);
|
688
674
|
return parseFloat(r);
|
689
|
-
},
|
675
|
+
}, S.getPercentageText = (t, e) => S.getPercentage(t, e).toFixed(2), S.getProgressText = (t, e) => `${t ?? "-"}/${e ?? "-"}`, S.size = (t) => {
|
690
676
|
if (!t)
|
691
677
|
return "OKB";
|
692
678
|
let e = 1024, s = e * 1024;
|
693
679
|
if (t < s)
|
694
|
-
return
|
680
|
+
return S.round(t / e, 2) + "KB";
|
695
681
|
let r = s * 1024;
|
696
682
|
if (t < r)
|
697
|
-
return
|
683
|
+
return S.round(t / s, 2) + "MB";
|
698
684
|
let n = r * 1024;
|
699
685
|
if (t < n)
|
700
|
-
return
|
686
|
+
return S.round(t / r, 2) + "GB";
|
701
687
|
let l = n * 1024;
|
702
688
|
if (t < l)
|
703
|
-
return
|
689
|
+
return S.round(t / n, 2) + "TB";
|
704
690
|
throw new Error("暂未支持比TB更大的大小");
|
705
691
|
};
|
706
|
-
let
|
707
|
-
const
|
692
|
+
let Ht = S;
|
693
|
+
const qt = class qt {
|
708
694
|
};
|
709
|
-
|
695
|
+
qt.load = function(t, e, s, r) {
|
710
696
|
};
|
711
|
-
let
|
712
|
-
const
|
697
|
+
let _t = qt;
|
698
|
+
const lt = class lt {
|
713
699
|
};
|
714
|
-
|
715
|
-
|
716
|
-
},
|
700
|
+
lt.emit = (t, e) => {
|
701
|
+
lt.emits({ [t]: e });
|
702
|
+
}, lt.emits = (t) => {
|
717
703
|
var s, r;
|
718
704
|
let e = (r = (s = window.parent) == null ? void 0 : s.window) == null ? void 0 : r.emit;
|
719
705
|
e && Object.keys(t).forEach((n) => {
|
720
706
|
e(n, t[n]);
|
721
707
|
});
|
722
708
|
};
|
723
|
-
let
|
724
|
-
const
|
709
|
+
let xt = lt;
|
710
|
+
const Y = class Y {
|
725
711
|
/**
|
726
712
|
* 净化对象,返回不带默认属性的对象
|
727
713
|
*/
|
@@ -729,7 +715,7 @@ const U = class U {
|
|
729
715
|
let e = {}, s = Object.keys(t);
|
730
716
|
for (let r = 0; r < s.length; r++) {
|
731
717
|
let n = s[r], l = t[n];
|
732
|
-
l != null && (
|
718
|
+
l != null && (x.isObject(l) ? e[n] = this.pure(l) : e[n] = t[n]);
|
733
719
|
}
|
734
720
|
return e;
|
735
721
|
}
|
@@ -754,71 +740,85 @@ const U = class U {
|
|
754
740
|
}
|
755
741
|
return r;
|
756
742
|
}
|
743
|
+
/**
|
744
|
+
* 获取对象不区分大小写的key
|
745
|
+
*/
|
746
|
+
static getKey(t, e) {
|
747
|
+
if (t == null)
|
748
|
+
return null;
|
749
|
+
let s = Object.keys(t);
|
750
|
+
for (let r = 0; r < s.length; r++) {
|
751
|
+
let n = s[r];
|
752
|
+
if (n.toLowerCase() == e.toLowerCase())
|
753
|
+
return n;
|
754
|
+
}
|
755
|
+
return null;
|
756
|
+
}
|
757
757
|
};
|
758
|
-
|
758
|
+
Y.copy = (t, e = null) => {
|
759
759
|
let s = [];
|
760
|
-
|
760
|
+
x.isObject(t) && s.push(t);
|
761
761
|
let r = [];
|
762
762
|
for (let n = 0; n < s.length; n++) {
|
763
763
|
let l = s[n], i = {};
|
764
|
-
Object.keys(l).forEach((
|
765
|
-
let
|
766
|
-
e && e[
|
764
|
+
Object.keys(l).forEach((o) => {
|
765
|
+
let u = l[o];
|
766
|
+
e && e[o] ? i[o] = e[o]() : i[o] = u;
|
767
767
|
}), r.push(i);
|
768
768
|
}
|
769
|
-
return
|
770
|
-
},
|
771
|
-
let s =
|
769
|
+
return x.isObject(t) ? r[0] : r;
|
770
|
+
}, Y.clone = (t, e = null) => {
|
771
|
+
let s = ve(t, !0);
|
772
772
|
if (e == null)
|
773
773
|
return s;
|
774
|
-
if (
|
774
|
+
if (x.isArray(t))
|
775
775
|
for (let r = 0; r < s.length; r++)
|
776
776
|
e(s[r]);
|
777
|
-
else
|
777
|
+
else x.isObject(t) && e(s);
|
778
778
|
return s;
|
779
|
-
},
|
779
|
+
}, Y.mergeTo = (t, e) => t == null ? e : e == null ? t : x.isArray(e) ? e.slice() : (Object.keys(e).forEach((r) => {
|
780
780
|
let n = e[r];
|
781
|
-
typeof n == "object" ? t[r] =
|
782
|
-
}), t),
|
781
|
+
typeof n == "object" ? t[r] = Y.mergeTo(t[r], n) : t[r] = n;
|
782
|
+
}), t), Y.addProperties = (t, e, s) => {
|
783
783
|
let r = t;
|
784
784
|
for (let n = 0; n < e.length; n++) {
|
785
785
|
let l = e[n];
|
786
786
|
n == e.length - 1 ? r[l] = s : (r[l] || (r[l] = {}), r = r[l]);
|
787
787
|
}
|
788
788
|
};
|
789
|
-
let
|
790
|
-
const
|
789
|
+
let K = Y;
|
790
|
+
const U = class U {
|
791
791
|
};
|
792
|
-
|
792
|
+
U.loadContentAsync = async (t) => {
|
793
793
|
let e = t instanceof Array ? t : [t], s = [];
|
794
794
|
for (let r = 0; r < e.length; r++) {
|
795
|
-
let n = e[r], l = new Promise((i,
|
796
|
-
let
|
797
|
-
|
798
|
-
if (
|
799
|
-
let c =
|
800
|
-
c.appendChild(document.createTextNode(
|
795
|
+
let n = e[r], l = new Promise((i, o) => {
|
796
|
+
let u = new XMLHttpRequest();
|
797
|
+
u.open("GET", n, !1), u.onreadystatechange = () => {
|
798
|
+
if (u.readyState == 4) {
|
799
|
+
let c = U.getInnerTagByUrl(n);
|
800
|
+
c.appendChild(document.createTextNode(u.responseText)), document.head.appendChild(c), i();
|
801
801
|
}
|
802
|
-
},
|
803
|
-
|
804
|
-
},
|
802
|
+
}, u.onerror = () => {
|
803
|
+
o();
|
804
|
+
}, u.send(null);
|
805
805
|
});
|
806
806
|
s.push(l);
|
807
807
|
}
|
808
808
|
return Promise.all(s);
|
809
|
-
},
|
809
|
+
}, U.loadPathAsync = async (t, e) => {
|
810
810
|
let s = [];
|
811
811
|
for (let r = 0; r < e.length; r++)
|
812
812
|
s.push(t + e[r]);
|
813
|
-
await
|
814
|
-
},
|
815
|
-
let e =
|
813
|
+
await U.loadAsync(s);
|
814
|
+
}, U.loadAsync = async (t) => {
|
815
|
+
let e = B.getArray(t), s = [];
|
816
816
|
for (let r = 0; r < e.length; r++) {
|
817
817
|
let n = new Promise((l, i) => {
|
818
|
-
let
|
819
|
-
document.head.appendChild(
|
818
|
+
let o = e[r], u = U.getOuterTagByUrl(o);
|
819
|
+
document.head.appendChild(u), u.onload = (c) => {
|
820
820
|
l(c);
|
821
|
-
},
|
821
|
+
}, u.onerror = (c) => {
|
822
822
|
i(c);
|
823
823
|
};
|
824
824
|
});
|
@@ -831,18 +831,18 @@ O.loadContentAsync = async (t) => {
|
|
831
831
|
n();
|
832
832
|
});
|
833
833
|
});
|
834
|
-
},
|
835
|
-
if (
|
834
|
+
}, U.loadAll = (...t) => Promise.all(t), U.getInnerTagByUrl = (t) => St.getExtension(t).substring(1) == "css" ? document.createElement("style") : document.createElement("script"), U.getOuterTagByUrl = (t) => {
|
835
|
+
if (St.getExtension(t).substring(1) == "css") {
|
836
836
|
let r = document.createElement("link");
|
837
837
|
return r.rel = "stylesheet", r.href = t, r;
|
838
838
|
}
|
839
839
|
let s = document.createElement("script");
|
840
840
|
return s.src = t, s;
|
841
841
|
};
|
842
|
-
let
|
843
|
-
const
|
842
|
+
let kt = U;
|
843
|
+
const Q = class Q {
|
844
844
|
};
|
845
|
-
|
845
|
+
Q.delay = (t, e) => setTimeout(t, e), Q.execute = (t, e, s) => {
|
846
846
|
if (!s) {
|
847
847
|
let r = setInterval(t, e);
|
848
848
|
return Promise.resolve(r);
|
@@ -853,14 +853,14 @@ L.delay = (t, e) => setTimeout(t, e), L.execute = (t, e, s) => {
|
|
853
853
|
r(n);
|
854
854
|
}, s);
|
855
855
|
});
|
856
|
-
},
|
856
|
+
}, Q.clearInterval = (t) => {
|
857
857
|
clearInterval(t);
|
858
|
-
},
|
858
|
+
}, Q.debounce = (t, e) => {
|
859
859
|
let s = null;
|
860
860
|
return (r) => {
|
861
861
|
s && clearTimeout(s), s = setTimeout(t, e, r);
|
862
862
|
};
|
863
|
-
},
|
863
|
+
}, Q.throttle = (t, e) => {
|
864
864
|
let s = !0;
|
865
865
|
return (r) => {
|
866
866
|
if (!s)
|
@@ -870,185 +870,192 @@ L.delay = (t, e) => setTimeout(t, e), L.execute = (t, e, s) => {
|
|
870
870
|
}, e, r);
|
871
871
|
};
|
872
872
|
};
|
873
|
-
let
|
874
|
-
|
873
|
+
let te = Q;
|
874
|
+
function js() {
|
875
|
+
return new Promise((a, t) => {
|
876
|
+
import("echarts").then((e) => {
|
877
|
+
a(e);
|
878
|
+
});
|
879
|
+
});
|
880
|
+
}
|
881
|
+
const w = class w {
|
875
882
|
};
|
876
|
-
|
883
|
+
w.getTimestamp = (t = null) => (t ? new Date(t) : /* @__PURE__ */ new Date()).getTime(), w.getTime = (t = null) => t ? new Date(t) : /* @__PURE__ */ new Date(), w.format = (t, e) => N(t).format(e), w.getDateTimeString = () => w.formatSecondTime(/* @__PURE__ */ new Date()), w.getDateString = () => w.formatDate(/* @__PURE__ */ new Date()), w.getTimeString = () => w.formatTime(/* @__PURE__ */ new Date()), w.formatSecondTime = (t) => N(t).format("YYYY-MM-DD HH:mm:ss"), w.formatMillisecondTime = (t) => t ? N(t).format("YYYY-MM-DD HH:mm:ss SSS") : null, w.formatTime = (t) => t ? N(t).format("HH:mm:ss SSS") : null, w.formatDate = (t) => t ? N(t).format("YYYY-MM-DD") : null, w.addDays = (t, e) => t ? N(t).add(e, "days").format() : null, w.addMonths = (t, e) => t ? N(t).add(e, "months").format() : null, w.isWeekend = (t) => {
|
877
884
|
if (!t)
|
878
885
|
return !1;
|
879
|
-
let e =
|
886
|
+
let e = N(t).format("d");
|
880
887
|
return e == "6" || e == "0";
|
881
|
-
},
|
888
|
+
}, w.localeTime = (t) => {
|
882
889
|
if (!t)
|
883
890
|
return null;
|
884
891
|
let s = (/* @__PURE__ */ new Date()).getTimezoneOffset() + 480;
|
885
|
-
return
|
892
|
+
return N(t).add(s, "minutes").format();
|
886
893
|
};
|
887
|
-
let
|
888
|
-
const
|
894
|
+
let q = w;
|
895
|
+
const m = class m {
|
889
896
|
};
|
890
|
-
|
897
|
+
m.getById = (t, e, s, r) => {
|
891
898
|
if (!s)
|
892
899
|
return null;
|
893
900
|
let n = s.find((l) => l[e] == t) || null;
|
894
901
|
if (n != null)
|
895
902
|
return n;
|
896
903
|
for (let l = 0; l < s.length; l++) {
|
897
|
-
let i =
|
904
|
+
let i = m.getById(t, e, s[l][r], r);
|
898
905
|
if (i != null) {
|
899
906
|
n = i;
|
900
907
|
break;
|
901
908
|
}
|
902
909
|
}
|
903
910
|
return n;
|
904
|
-
},
|
905
|
-
let n =
|
911
|
+
}, m.getByIds = (t, e, s, r) => {
|
912
|
+
let n = rt.distinct(t, (i) => i), l = [];
|
906
913
|
return n.forEach((i) => {
|
907
|
-
let
|
908
|
-
l.push(
|
914
|
+
let o = m.getById(i, e, s, r);
|
915
|
+
l.push(o);
|
909
916
|
}), l;
|
910
|
-
},
|
911
|
-
let n =
|
917
|
+
}, m.getNextById = (t, e, s, r) => {
|
918
|
+
let n = m.getById(t, e, s, r), l = m.getParentsById(t, e, s, r);
|
912
919
|
if (l.length == 0) {
|
913
920
|
if (s.length == 1)
|
914
921
|
return null;
|
915
922
|
let c = s.indexOf(n);
|
916
923
|
return c == s.length - 1 ? s[c - 1] : s[c + 1];
|
917
924
|
}
|
918
|
-
let i = l[l.length - 1],
|
919
|
-
if (
|
925
|
+
let i = l[l.length - 1], o = i[r];
|
926
|
+
if (o.length == 1)
|
920
927
|
return i;
|
921
|
-
let
|
922
|
-
return
|
923
|
-
},
|
924
|
-
let n =
|
928
|
+
let u = o.indexOf(n);
|
929
|
+
return u == o.length - 1 ? o[u - 1] : o[u + 1];
|
930
|
+
}, m.getSiblingsById = (t, e, s, r) => {
|
931
|
+
let n = m.getParentById(t, e, s, r);
|
925
932
|
return n == null ? s : n[r];
|
926
|
-
},
|
927
|
-
let n =
|
933
|
+
}, m.getParentById = (t, e, s, r) => {
|
934
|
+
let n = m.getParentsById(t, e, s, r, !1);
|
928
935
|
return n[n.length - 1];
|
929
|
-
},
|
936
|
+
}, m.getParentsById = (t, e, s, r, n = !1) => {
|
930
937
|
let l = [];
|
931
|
-
return
|
932
|
-
},
|
933
|
-
let l =
|
934
|
-
return n && i.push(l),
|
935
|
-
},
|
938
|
+
return oe(t, e, s, r, l, n), l;
|
939
|
+
}, m.getChildrenById = (t, e, s, r, n = !1) => {
|
940
|
+
let l = m.getById(t, e, s, r), i = [];
|
941
|
+
return n && i.push(l), Nt(l, r, i), i;
|
942
|
+
}, m.getChildren = (t, e, s = !1) => {
|
936
943
|
let r = [];
|
937
|
-
return s && r.push(t),
|
938
|
-
},
|
944
|
+
return s && r.push(t), Nt(t, e, r), r;
|
945
|
+
}, m.searchTree = (t, e, s, r) => {
|
939
946
|
let n = [];
|
940
947
|
if (!e)
|
941
948
|
return n;
|
942
|
-
let l = t ? t.toUpperCase() : "", i =
|
943
|
-
for (let
|
944
|
-
let
|
945
|
-
for (let
|
946
|
-
for (let
|
947
|
-
let
|
948
|
-
if ((
|
949
|
-
|
949
|
+
let l = t ? t.toUpperCase() : "", i = x.isString(r) ? [r] : r;
|
950
|
+
for (let o of e) {
|
951
|
+
let u = !1, c = m.getChildren(o, s, !0);
|
952
|
+
for (let h of c) {
|
953
|
+
for (let g of i) {
|
954
|
+
let v = h[g];
|
955
|
+
if ((v ? v.toUpperCase() : "").indexOf(l) > -1) {
|
956
|
+
u = !0;
|
950
957
|
break;
|
951
958
|
}
|
952
959
|
}
|
953
|
-
if (
|
960
|
+
if (u)
|
954
961
|
break;
|
955
962
|
}
|
956
|
-
if (
|
957
|
-
let
|
958
|
-
n.push(
|
963
|
+
if (u) {
|
964
|
+
let h = m.searchTree(t, o[s], s, r), g = { ...o, [s]: h };
|
965
|
+
n.push(g);
|
959
966
|
}
|
960
967
|
}
|
961
968
|
return n;
|
962
|
-
},
|
963
|
-
let n =
|
969
|
+
}, m.removeById = (t, e, s, r) => {
|
970
|
+
let n = m.getById(t, e, s, r), l = m.getParentsById(t, e, s, r);
|
964
971
|
if (l.length == 0) {
|
965
|
-
|
972
|
+
rt.remove(s, n);
|
966
973
|
return;
|
967
974
|
}
|
968
975
|
let i = l[l.length - 1];
|
969
|
-
|
970
|
-
},
|
976
|
+
rt.remove(i[r], n);
|
977
|
+
}, m.getFlat = (t, e) => {
|
971
978
|
let s = [...t];
|
972
979
|
for (let r = 0; r < t.length; r++) {
|
973
980
|
let l = t[r][e];
|
974
981
|
if (l.length > 0) {
|
975
|
-
let i =
|
982
|
+
let i = m.getFlat(l, e);
|
976
983
|
s.push(...i);
|
977
984
|
}
|
978
985
|
}
|
979
986
|
return s;
|
980
|
-
},
|
987
|
+
}, m.map = (t, e, s, r) => {
|
981
988
|
let n = [];
|
982
989
|
for (let l = 0; l < t.length; l++) {
|
983
|
-
let i = t[l],
|
984
|
-
n.push(
|
985
|
-
let
|
986
|
-
if (
|
987
|
-
let c =
|
988
|
-
|
990
|
+
let i = t[l], o = r(i);
|
991
|
+
n.push(o);
|
992
|
+
let u = i[e];
|
993
|
+
if (u && u.length > 0) {
|
994
|
+
let c = m.map(u, e, s, r);
|
995
|
+
o[s] = c;
|
989
996
|
}
|
990
997
|
}
|
991
998
|
return n;
|
992
999
|
};
|
993
|
-
let
|
994
|
-
function
|
1000
|
+
let Ct = m;
|
1001
|
+
function oe(a, t, e, s, r, n) {
|
995
1002
|
for (let l = 0; l < e.length; l++) {
|
996
1003
|
let i = e[l];
|
997
|
-
if (i[t] ==
|
1004
|
+
if (i[t] == a) {
|
998
1005
|
n && r.push(i);
|
999
1006
|
break;
|
1000
1007
|
} else
|
1001
|
-
|
1008
|
+
Ct.getById(a, t, i[s], s) != null && (r.push(i), oe(a, t, i[s], s, r, n));
|
1002
1009
|
}
|
1003
1010
|
return r;
|
1004
1011
|
}
|
1005
|
-
function
|
1006
|
-
let s =
|
1012
|
+
function Nt(a, t, e) {
|
1013
|
+
let s = a[t];
|
1007
1014
|
if (!s || s.length == 0)
|
1008
1015
|
return e;
|
1009
1016
|
for (let r = 0; r < s.length; r++) {
|
1010
1017
|
let n = s[r];
|
1011
|
-
e.push(n),
|
1018
|
+
e.push(n), Nt(n, t, e);
|
1012
1019
|
}
|
1013
1020
|
return e;
|
1014
1021
|
}
|
1015
|
-
const
|
1022
|
+
const D = class D {
|
1016
1023
|
};
|
1017
|
-
|
1024
|
+
D.get = (t, e = null) => localStorage.getItem(t) ?? e, D.set = (t, e) => localStorage.setItem(t, e), D.getObject = (t) => JSON.parse(localStorage.getItem(t)), D.setObject = (t, e) => localStorage.setItem(t, JSON.stringify(e)), D.remove = (t) => localStorage.removeItem(t), D.getLeftStorage = () => {
|
1018
1025
|
let t = 0;
|
1019
1026
|
return Object.keys(localStorage).forEach((s) => {
|
1020
1027
|
t += localStorage.getItem(s).length;
|
1021
1028
|
}), 1e-4 * 1024 - t / 1024;
|
1022
|
-
},
|
1029
|
+
}, D.canStorage = (t) => {
|
1023
1030
|
let e = JSON.stringify(t).length / 1024;
|
1024
|
-
return
|
1031
|
+
return D.getLeftStorage() > e;
|
1025
1032
|
};
|
1026
|
-
let
|
1027
|
-
const
|
1033
|
+
let E = D;
|
1034
|
+
const Et = class Et {
|
1028
1035
|
};
|
1029
|
-
|
1036
|
+
Et.isBottom = (t) => {
|
1030
1037
|
let e = document.querySelector(t);
|
1031
1038
|
return e ? e.scrollTop + e.clientHeight == e.scrollHeight : !1;
|
1032
|
-
},
|
1039
|
+
}, Et.scrollToBottom = (t) => {
|
1033
1040
|
let e = document.querySelector(t);
|
1034
1041
|
if (!e)
|
1035
1042
|
return;
|
1036
1043
|
let s = e.scrollHeight - e.clientHeight;
|
1037
1044
|
e.scrollTop = s;
|
1038
1045
|
};
|
1039
|
-
let
|
1040
|
-
class
|
1046
|
+
let ee = Et;
|
1047
|
+
class ut {
|
1041
1048
|
/**
|
1042
|
-
*
|
1049
|
+
* 把字符串格式化为Json字符串
|
1043
1050
|
*/
|
1044
|
-
static
|
1045
|
-
return
|
1051
|
+
static stringify(t) {
|
1052
|
+
return t == null ? null : JSON.stringify(t, null, 2);
|
1046
1053
|
}
|
1047
1054
|
/**
|
1048
|
-
*
|
1055
|
+
* 对非字符串进行序列化
|
1049
1056
|
*/
|
1050
|
-
static
|
1051
|
-
return
|
1057
|
+
static stringifyWithString(t) {
|
1058
|
+
return typeof t == "string" ? t : ut.stringify(t);
|
1052
1059
|
}
|
1053
1060
|
/**
|
1054
1061
|
* 把字符串格式化为Json字符串
|
@@ -1064,6 +1071,12 @@ class zt {
|
|
1064
1071
|
}
|
1065
1072
|
return JSON.stringify(e, null, 2);
|
1066
1073
|
}
|
1074
|
+
/**
|
1075
|
+
* 反序列化成json对象
|
1076
|
+
*/
|
1077
|
+
static parse(t) {
|
1078
|
+
return JSON.parse(t);
|
1079
|
+
}
|
1067
1080
|
/**
|
1068
1081
|
* 根据props中的.自动分割得到属性值
|
1069
1082
|
*/
|
@@ -1083,7 +1096,7 @@ class zt {
|
|
1083
1096
|
* 把json字符串合并到目标对象上
|
1084
1097
|
*/
|
1085
1098
|
static mergeTo(t, e) {
|
1086
|
-
if (
|
1099
|
+
if (B.isNullOrEmpty(e))
|
1087
1100
|
return;
|
1088
1101
|
let s = JSON.parse(e);
|
1089
1102
|
Object.keys(s).forEach((n) => {
|
@@ -1091,32 +1104,38 @@ class zt {
|
|
1091
1104
|
t[n] = l;
|
1092
1105
|
});
|
1093
1106
|
}
|
1107
|
+
/**
|
1108
|
+
* 从树集合构建出Json对象
|
1109
|
+
*/
|
1110
|
+
static buildObject(t, e, s) {
|
1111
|
+
return Pt(t, e, 1, s);
|
1112
|
+
}
|
1094
1113
|
}
|
1095
|
-
function
|
1096
|
-
if (!
|
1114
|
+
function Pt(a, t, e, s) {
|
1115
|
+
if (!a || a.length == 0)
|
1097
1116
|
return "{}";
|
1098
1117
|
let r = `{
|
1099
1118
|
`;
|
1100
|
-
for (let n = 0; n <
|
1101
|
-
let l =
|
1102
|
-
i.type == "array" ? (i.remark && (r +=
|
1103
|
-
`), r +=
|
1104
|
-
`), r +=
|
1119
|
+
for (let n = 0; n < a.length; n++) {
|
1120
|
+
let l = a[n], i = s(l);
|
1121
|
+
i.type == "array" ? (i.remark && (r += yt(2 * e) + "//" + i.remark + `
|
1122
|
+
`), r += Lt(2 * e, i.key) + "[", r += Pt(l[t], t, e + 1, s), r += "]", n != a.length - 1 && (r += ",")) : i.type == "object" ? (i.remark && (r += yt(2 * e) + "//" + i.remark + `
|
1123
|
+
`), r += Lt(2 * e, i.key), r += Pt(l[t], t, e + 1, s), n != a.length - 1 && (r += ",")) : (r += Lt(2 * e, i.key), i.type == "string" ? r += '""' : i.type == "date" ? r += `"${q.getDateTimeString()}"` : i.type == "int" || i.type == "number" ? r += "0" : i.type == "boolean" ? r += "false" : r += null, n != a.length - 1 && (r += ","), i.remark && (r += " //" + i.remark)), r += `
|
1105
1124
|
`;
|
1106
1125
|
}
|
1107
|
-
return r +=
|
1126
|
+
return r += yt(2 * (e - 1)), r += "}", r;
|
1108
1127
|
}
|
1109
|
-
function
|
1128
|
+
function yt(a) {
|
1110
1129
|
let t = "";
|
1111
|
-
for (let e = 0; e <
|
1130
|
+
for (let e = 0; e < a; e++)
|
1112
1131
|
t += " ";
|
1113
1132
|
return t;
|
1114
1133
|
}
|
1115
|
-
function
|
1116
|
-
let e =
|
1134
|
+
function Lt(a, t) {
|
1135
|
+
let e = yt(a);
|
1117
1136
|
return e += '"' + t + '": ', e;
|
1118
1137
|
}
|
1119
|
-
let
|
1138
|
+
let ue = G("setting", {
|
1120
1139
|
state() {
|
1121
1140
|
return {
|
1122
1141
|
loaded: !1,
|
@@ -1154,11 +1173,7 @@ let Et = P("setting", {
|
|
1154
1173
|
*/
|
1155
1174
|
business: null,
|
1156
1175
|
upload: null,
|
1157
|
-
version: null
|
1158
|
-
/**
|
1159
|
-
* 请求器
|
1160
|
-
*/
|
1161
|
-
requester: k.getRequester().getLocal()
|
1176
|
+
version: null
|
1162
1177
|
};
|
1163
1178
|
},
|
1164
1179
|
actions: {
|
@@ -1172,13 +1187,13 @@ let Et = P("setting", {
|
|
1172
1187
|
* 加载设置
|
1173
1188
|
*/
|
1174
1189
|
async loadSetting() {
|
1175
|
-
return
|
1176
|
-
let e =
|
1190
|
+
return j.get("/app/setting").then(({ data: a }) => (Object.keys(a).forEach((t) => {
|
1191
|
+
let e = a[t];
|
1177
1192
|
e && (this[t] = e);
|
1178
|
-
}),
|
1193
|
+
}), V.addClass(document.documentElement, this.theme, window.setting.web.theme), xt.emits({ theme: this.theme }), Promise.resolve(a))).catch((a) => Promise.reject(a));
|
1179
1194
|
}
|
1180
1195
|
}
|
1181
|
-
}),
|
1196
|
+
}), H = G("config", {
|
1182
1197
|
state() {
|
1183
1198
|
return {
|
1184
1199
|
/**
|
@@ -1205,46 +1220,66 @@ let Et = P("setting", {
|
|
1205
1220
|
* 文件布局方式
|
1206
1221
|
*/
|
1207
1222
|
fileLayout: null,
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1223
|
+
//编辑器架构配置
|
1224
|
+
editor: {
|
1225
|
+
schemas: [],
|
1226
|
+
//编辑器架构集合
|
1227
|
+
completions: {}
|
1228
|
+
//智能提示是否注册信息,防止重复注册
|
1229
|
+
}
|
1212
1230
|
};
|
1213
1231
|
},
|
1214
1232
|
actions: {
|
1215
1233
|
/**
|
1216
1234
|
* 初始化配置值(不一定跟登录用户相关,这也是单独分离的好处)
|
1217
1235
|
*/
|
1218
|
-
init(
|
1219
|
-
let t =
|
1220
|
-
this.background = t.background, this.theme = t.theme, this.layout = t.layout, this.language = t.language, this.font = t.font,
|
1236
|
+
init(a) {
|
1237
|
+
let t = ue();
|
1238
|
+
this.background = t.background, this.theme = t.theme, this.layout = t.layout, this.language = t.language, this.font = t.font, a.forEach((e) => {
|
1221
1239
|
let s = this.getLocalConfig(e.type);
|
1222
1240
|
this[e.type] = s ?? e.content;
|
1223
|
-
}),
|
1241
|
+
}), V.removeClass(document.documentElement, t.theme), V.addClass(document.documentElement, this.theme), xt.emit("theme", this.theme), V.addClass(document.documentElement, this.layout), this.setBackground(this.background), V.addStyle(document.documentElement, "font-family", this.font);
|
1242
|
+
},
|
1243
|
+
/**
|
1244
|
+
* 尝试添加架构
|
1245
|
+
*/
|
1246
|
+
tryAddSchema(a, t, e) {
|
1247
|
+
let s = this.editor.schemas.find((r) => r.fileMatch == t);
|
1248
|
+
if (s != null) {
|
1249
|
+
s.schema = e;
|
1250
|
+
return;
|
1251
|
+
}
|
1252
|
+
s = {
|
1253
|
+
uri: a,
|
1254
|
+
//必须。也用于防止 重复创建或者覆盖 架构对象
|
1255
|
+
fileMatch: [t],
|
1256
|
+
//VIP:匹配到的路径,将会自动使用该schema
|
1257
|
+
schema: e
|
1258
|
+
}, this.editor.schemas.push(s);
|
1224
1259
|
},
|
1225
1260
|
/**
|
1226
1261
|
* 获取本地配置
|
1227
1262
|
*/
|
1228
|
-
getLocalConfig(
|
1229
|
-
return
|
1263
|
+
getLocalConfig(a) {
|
1264
|
+
return E.getObject(a);
|
1230
1265
|
},
|
1231
1266
|
/**
|
1232
1267
|
* 设置背景
|
1233
1268
|
*/
|
1234
|
-
setBackground(
|
1235
|
-
let t = `url("/default/backgrounds/${
|
1236
|
-
s.innerText = `html::before{content:'';width:100%;height:100%;position:absolute;background:${t};opacity:${e};`, document.head.appendChild(s), this.background =
|
1269
|
+
setBackground(a) {
|
1270
|
+
let t = `url("/default/backgrounds/${a}") center / cover no-repeat`, e = this.layout == "desktop" ? "unset" : 0.05, s = document.createElement("style");
|
1271
|
+
s.innerText = `html::before{content:'';width:100%;height:100%;position:absolute;background:${t};opacity:${e};`, document.head.appendChild(s), this.background = a;
|
1237
1272
|
},
|
1238
1273
|
/**
|
1239
1274
|
* 加载用户配置
|
1240
1275
|
*/
|
1241
|
-
async loadConfig(
|
1276
|
+
async loadConfig(a, t = !0) {
|
1242
1277
|
if (t) {
|
1243
|
-
let e = this.getLocalConfig(
|
1278
|
+
let e = this.getLocalConfig(a);
|
1244
1279
|
if (e)
|
1245
1280
|
return Promise.resolve(e);
|
1246
1281
|
}
|
1247
|
-
return
|
1282
|
+
return j.get(`/user/config?type=${a}`).then((e) => {
|
1248
1283
|
let s = e.data ? JSON.parse(e.data) : null;
|
1249
1284
|
return Promise.resolve(s);
|
1250
1285
|
});
|
@@ -1252,44 +1287,68 @@ let Et = P("setting", {
|
|
1252
1287
|
/**
|
1253
1288
|
* 全量保存用户配置
|
1254
1289
|
*/
|
1255
|
-
async saveConfig(
|
1256
|
-
return e &&
|
1290
|
+
async saveConfig(a, t, e = !0) {
|
1291
|
+
return e && E.setObject(a, t), j.post(`/user/config?type=${a}`, t).then((s) => Promise.resolve(!0));
|
1257
1292
|
},
|
1258
1293
|
/**
|
1259
1294
|
* 部分保存用户配置
|
1260
1295
|
*/
|
1261
|
-
async patchConfig(
|
1262
|
-
return
|
1296
|
+
async patchConfig(a, t) {
|
1297
|
+
return j.patch(`/user/config?type=${a}`, t).then((e) => Promise.resolve(!0));
|
1263
1298
|
}
|
1264
1299
|
}
|
1265
|
-
}),
|
1300
|
+
}), Bs = G("driver", {
|
1266
1301
|
state() {
|
1267
1302
|
return {
|
1268
|
-
|
1303
|
+
/**
|
1304
|
+
* 加载完毕状态记录
|
1305
|
+
*/
|
1306
|
+
loaded: {
|
1307
|
+
apps: !1,
|
1308
|
+
envs: !1
|
1309
|
+
},
|
1310
|
+
/**
|
1311
|
+
* 是否加载中状态,用于并发场景 防止重复拉取接口
|
1312
|
+
*/
|
1313
|
+
loading: {
|
1314
|
+
apps: !1,
|
1315
|
+
envs: !1
|
1316
|
+
},
|
1317
|
+
/**
|
1318
|
+
* 应用集合,存储到Store中,防止每一个Driver实例重复加载
|
1319
|
+
*/
|
1320
|
+
apps: [],
|
1321
|
+
/**
|
1322
|
+
* 环境集合,存储到Store中,防止每一个Driver实例重复加载
|
1323
|
+
*/
|
1324
|
+
envs: []
|
1269
1325
|
};
|
1270
1326
|
},
|
1271
1327
|
actions: {
|
1272
1328
|
/**
|
1273
|
-
*
|
1274
|
-
*/
|
1275
|
-
add(u, t, e, s = null) {
|
1276
|
-
let r = R.getTimeString();
|
1277
|
-
this.logs.unshift({ time: r, code: u, message: t, stack: e, elapsed: s });
|
1278
|
-
},
|
1279
|
-
/**
|
1280
|
-
* 删除日志
|
1329
|
+
* 加载应用选项
|
1281
1330
|
*/
|
1282
|
-
|
1283
|
-
this.
|
1331
|
+
async loadApps(a = !1) {
|
1332
|
+
if (!this.loading.apps && !(!a && this.loaded.apps))
|
1333
|
+
return this.loading.apps = !0, j.post("/app/options").then((t) => {
|
1334
|
+
this.apps = t.data, this.loaded.apps = !0;
|
1335
|
+
}).finally(() => {
|
1336
|
+
this.loading.apps = !1;
|
1337
|
+
});
|
1284
1338
|
},
|
1285
1339
|
/**
|
1286
|
-
*
|
1340
|
+
* 加载环境选项
|
1287
1341
|
*/
|
1288
|
-
|
1289
|
-
this.
|
1342
|
+
async loadEnvs(a = !1) {
|
1343
|
+
if (!this.loading.envs && (this.loading.envs = !0, !(!a && this.loaded.envs)))
|
1344
|
+
return j.post("/env/options").then((t) => {
|
1345
|
+
this.envs = t.data, this.loaded.envs = !0;
|
1346
|
+
}).finally(() => {
|
1347
|
+
this.loading.envs = !1;
|
1348
|
+
});
|
1290
1349
|
}
|
1291
1350
|
}
|
1292
|
-
}),
|
1351
|
+
}), Ce = G("env", {
|
1293
1352
|
state() {
|
1294
1353
|
return {
|
1295
1354
|
//环境变量
|
@@ -1300,14 +1359,38 @@ let Et = P("setting", {
|
|
1300
1359
|
/**
|
1301
1360
|
* 使用环境变量
|
1302
1361
|
*/
|
1303
|
-
useEnv(
|
1304
|
-
this.env =
|
1362
|
+
useEnv(a) {
|
1363
|
+
this.env = a, this.env.base = B.trimEnd(a.VITE_ROOT, "/");
|
1364
|
+
}
|
1365
|
+
}
|
1366
|
+
}), se = G("log", {
|
1367
|
+
state() {
|
1368
|
+
return {
|
1369
|
+
logs: []
|
1370
|
+
};
|
1371
|
+
},
|
1372
|
+
actions: {
|
1373
|
+
/**
|
1374
|
+
* 手动添加日志
|
1375
|
+
*/
|
1376
|
+
add(a, t, e, s = null) {
|
1377
|
+
let r = q.getTimeString();
|
1378
|
+
this.logs.unshift({ time: r, code: a, message: t, stack: e, elapsed: s });
|
1379
|
+
},
|
1380
|
+
/**
|
1381
|
+
* 删除日志
|
1382
|
+
*/
|
1383
|
+
remove(a) {
|
1384
|
+
this.logs.splice(a, 1);
|
1385
|
+
},
|
1386
|
+
/**
|
1387
|
+
* 清空日志
|
1388
|
+
*/
|
1389
|
+
clear() {
|
1390
|
+
this.logs = [];
|
1305
1391
|
}
|
1306
1392
|
}
|
1307
|
-
}),
|
1308
|
-
window._setting ? at = window._setting : at = window.setting;
|
1309
|
-
const K = at;
|
1310
|
-
let Jt = P("socket", {
|
1393
|
+
}), Ee = G("socket", {
|
1311
1394
|
state() {
|
1312
1395
|
return {
|
1313
1396
|
socket: null,
|
@@ -1325,28 +1408,28 @@ let Jt = P("socket", {
|
|
1325
1408
|
* 登录后,连接Socket
|
1326
1409
|
*/
|
1327
1410
|
async connect() {
|
1328
|
-
if (!
|
1411
|
+
if (!mt.api.ws)
|
1329
1412
|
return;
|
1330
1413
|
if (this.socket == null || this.reconnect) {
|
1331
|
-
let t =
|
1414
|
+
let t = mt.api.ws, s = await ce().getAuth(t), r = O.encode(s), n = `${t}?authorization=${r}`;
|
1332
1415
|
this.socket = new WebSocket(n);
|
1333
1416
|
}
|
1334
|
-
let
|
1417
|
+
let a;
|
1335
1418
|
this.socket.onopen = (t) => {
|
1336
|
-
clearTimeout(
|
1419
|
+
clearTimeout(a), this.connected = !0;
|
1337
1420
|
}, this.socket.onmessage = (t) => {
|
1338
1421
|
this.handler && this.handler(t);
|
1339
1422
|
}, this.socket.onerror = (t) => {
|
1340
|
-
this.reconnect = !0, console.warn(`Socket连接失败:${
|
1423
|
+
this.reconnect = !0, console.warn(`Socket连接失败:${mt.api.ws}`);
|
1341
1424
|
}, this.socket.onclose = (t) => {
|
1342
|
-
this.connected = !1, this.reconnect && (
|
1425
|
+
this.connected = !1, this.reconnect && (a = setTimeout(async () => await this.connect(), 1e3));
|
1343
1426
|
};
|
1344
1427
|
},
|
1345
1428
|
/**
|
1346
1429
|
* 订阅并替换Socket事件处理程序
|
1347
1430
|
*/
|
1348
|
-
subscribe(
|
1349
|
-
this.handler =
|
1431
|
+
subscribe(a = null) {
|
1432
|
+
this.handler = a;
|
1350
1433
|
},
|
1351
1434
|
/**
|
1352
1435
|
* 取消订阅Socket事件处理程序,防止内存泄漏
|
@@ -1362,7 +1445,7 @@ let Jt = P("socket", {
|
|
1362
1445
|
}
|
1363
1446
|
}
|
1364
1447
|
});
|
1365
|
-
const
|
1448
|
+
const ce = G("user", {
|
1366
1449
|
state: () => ({
|
1367
1450
|
user: null,
|
1368
1451
|
//用户信息
|
@@ -1371,132 +1454,72 @@ const It = P("user", {
|
|
1371
1454
|
menusFlat: null,
|
1372
1455
|
debugger: null,
|
1373
1456
|
//是否调试人
|
1374
|
-
env: null
|
1457
|
+
env: null
|
1375
1458
|
//当前访问环境
|
1376
|
-
/**
|
1377
|
-
* 请求器
|
1378
|
-
*/
|
1379
|
-
requester: k.getRequester().getLocal()
|
1380
1459
|
}),
|
1381
1460
|
actions: {
|
1382
1461
|
/**
|
1383
1462
|
* 获取本地缓存中的用户信息;好处:即使手动更改storage数据,也可以里面获取到
|
1384
1463
|
*/
|
1385
|
-
getSso() {
|
1386
|
-
return
|
1464
|
+
async getSso() {
|
1465
|
+
return await (await I.getProvider().getDefault("user")).getAsync("sso");
|
1387
1466
|
},
|
1388
1467
|
/**
|
1389
1468
|
* 登录后,获取用户信息
|
1390
1469
|
*/
|
1391
1470
|
async loadInfo() {
|
1392
|
-
return
|
1393
|
-
let t =
|
1394
|
-
e.init(
|
1395
|
-
let s = t.env.VITE_CDN == "true" ? "StaticFile" : "Local", r = t.env.VITE_BASE, n =
|
1396
|
-
this.user =
|
1471
|
+
return j.get("/user/info").then(async ({ data: a }) => {
|
1472
|
+
let t = Ce(), e = H();
|
1473
|
+
e.init(a.configs);
|
1474
|
+
let s = t.env.VITE_CDN == "true" ? "StaticFile" : "Local", r = t.env.VITE_BASE, n = await I.getCdn().create(s, r);
|
1475
|
+
this.user = a, this.debugger = a.debugger;
|
1397
1476
|
let l = e.language == "en" ? null : e.language, i = {
|
1398
1477
|
paths: { vs: n.getPath("monaco-editor") },
|
1399
1478
|
//加载monaco cdn压缩资源包,可以大幅减少本地请求数量
|
1400
1479
|
"vs/nls": { availableLanguages: { "*": l } }
|
1401
1480
|
//设置编辑器默认语言
|
1402
1481
|
};
|
1403
|
-
return
|
1482
|
+
return bt.config(i), Promise.resolve(a);
|
1404
1483
|
});
|
1405
1484
|
},
|
1406
1485
|
/**
|
1407
1486
|
* 通过完整url和请求体,获取授权头
|
1408
1487
|
*/
|
1409
|
-
async
|
1410
|
-
let e = this.getSso();
|
1488
|
+
async getAuth(a, t = null) {
|
1489
|
+
let e = await this.getSso();
|
1411
1490
|
if (e == null)
|
1412
1491
|
return "pc";
|
1413
|
-
let s =
|
1414
|
-
return
|
1492
|
+
let s = q.getTimestamp(), n = await (await I.getSigner().create("default")).getSign(e.userId, a, t, s, e.secret);
|
1493
|
+
return (await I.getSso().create(e.type)).getAuth(e.identity.token, s, n, this.env);
|
1415
1494
|
},
|
1416
1495
|
/**
|
1417
1496
|
* 未登录,获取匿名登录信息
|
1418
1497
|
*/
|
1419
1498
|
getAnonymous() {
|
1420
|
-
|
1499
|
+
H().init([]);
|
1421
1500
|
},
|
1422
1501
|
/**
|
1423
1502
|
* 根据路径获取路由
|
1424
1503
|
*/
|
1425
|
-
getMenuByUrl(
|
1426
|
-
let t =
|
1504
|
+
getMenuByUrl(a) {
|
1505
|
+
let t = O.getPath(a);
|
1427
1506
|
return this.menusFlat.find((s) => s.url.split("?")[0] == t);
|
1428
1507
|
},
|
1429
1508
|
/**
|
1430
1509
|
* 加载服务端路由
|
1431
1510
|
*/
|
1432
1511
|
async loadMenus() {
|
1433
|
-
return
|
1512
|
+
return j.get("/user/menu").then(({ data: a }) => (this.menus = a, this.menusFlat = Ct.getFlat(a, "children"), Promise.resolve(a)));
|
1434
1513
|
},
|
1435
1514
|
/**
|
1436
1515
|
* 退出登录
|
1437
1516
|
*/
|
1438
1517
|
async logout() {
|
1439
|
-
return
|
1440
|
-
}
|
1441
|
-
}
|
1442
|
-
});
|
1443
|
-
P("driver", {
|
1444
|
-
state() {
|
1445
|
-
return {
|
1446
|
-
/**
|
1447
|
-
* 加载完毕状态记录
|
1448
|
-
*/
|
1449
|
-
loaded: {
|
1450
|
-
apps: !1,
|
1451
|
-
envs: !1
|
1452
|
-
},
|
1453
|
-
/**
|
1454
|
-
* 是否加载中状态,用于并发场景 防止重复拉取接口
|
1455
|
-
*/
|
1456
|
-
loading: {
|
1457
|
-
apps: !1,
|
1458
|
-
envs: !1
|
1459
|
-
},
|
1460
|
-
/**
|
1461
|
-
* 应用集合,存储到Store中,防止每一个Driver实例重复加载
|
1462
|
-
*/
|
1463
|
-
apps: [],
|
1464
|
-
/**
|
1465
|
-
* 环境集合,存储到Store中,防止每一个Driver实例重复加载
|
1466
|
-
*/
|
1467
|
-
envs: [],
|
1468
|
-
/**
|
1469
|
-
* 请求器
|
1470
|
-
*/
|
1471
|
-
requester: k.getRequester().getLocal()
|
1472
|
-
};
|
1473
|
-
},
|
1474
|
-
actions: {
|
1475
|
-
/**
|
1476
|
-
* 加载应用选项
|
1477
|
-
*/
|
1478
|
-
async loadApps(u = !1) {
|
1479
|
-
if (!this.loading.apps && !(!u && this.loaded.apps))
|
1480
|
-
return this.loading.apps = !0, this.requester.post("/app/options").then((t) => {
|
1481
|
-
this.apps = t.data, this.loaded.apps = !0;
|
1482
|
-
}).finally(() => {
|
1483
|
-
this.loading.apps = !1;
|
1484
|
-
});
|
1485
|
-
},
|
1486
|
-
/**
|
1487
|
-
* 加载环境选项
|
1488
|
-
*/
|
1489
|
-
async loadEnvs(u = !1) {
|
1490
|
-
if (!this.loading.envs && (this.loading.envs = !0, !(!u && this.loaded.envs)))
|
1491
|
-
return this.requester.post("/env/options").then((t) => {
|
1492
|
-
this.envs = t.data, this.loaded.envs = !0;
|
1493
|
-
}).finally(() => {
|
1494
|
-
this.loading.envs = !1;
|
1495
|
-
});
|
1518
|
+
return j.post("/user/logout").then(async () => (this.user = null, this.menus = null, (await I.getSso().create(this.getSso().type)).logout(), Ee().disconnect(), Promise.resolve()));
|
1496
1519
|
}
|
1497
1520
|
}
|
1498
1521
|
});
|
1499
|
-
class
|
1522
|
+
class As {
|
1500
1523
|
/**
|
1501
1524
|
* 获取浏览器默认语言
|
1502
1525
|
*/
|
@@ -1507,11 +1530,11 @@ class Le {
|
|
1507
1530
|
* 获取当前语言
|
1508
1531
|
*/
|
1509
1532
|
static getCurrentLanguage() {
|
1510
|
-
let t =
|
1533
|
+
let t = H(), e = this.getBrowserLanguage();
|
1511
1534
|
return t.language || e || "zh-cn";
|
1512
1535
|
}
|
1513
1536
|
}
|
1514
|
-
const
|
1537
|
+
const C = class C {
|
1515
1538
|
/**
|
1516
1539
|
* 获取指定地址路由对象
|
1517
1540
|
*/
|
@@ -1628,8 +1651,8 @@ const w = class w {
|
|
1628
1651
|
static deserializeQs(t, e = !0) {
|
1629
1652
|
let s = {}, r = t.split("&");
|
1630
1653
|
for (let n = 0; n < r.length; n++) {
|
1631
|
-
let l = r[n], i = l.indexOf("="),
|
1632
|
-
s[
|
1654
|
+
let l = r[n], i = l.indexOf("="), o = l.substring(0, i), u = l.substring(i + 1);
|
1655
|
+
s[o] = e ? decodeURIComponent(u) : u;
|
1633
1656
|
}
|
1634
1657
|
return s;
|
1635
1658
|
}
|
@@ -1638,7 +1661,7 @@ const w = class w {
|
|
1638
1661
|
*/
|
1639
1662
|
static serialize(t, e = !0) {
|
1640
1663
|
let s = (n) => e ? encodeURIComponent(n) : n;
|
1641
|
-
return
|
1664
|
+
return wt.join(t, s, "=", "&");
|
1642
1665
|
}
|
1643
1666
|
//endregion
|
1644
1667
|
//region 编码和解码
|
@@ -1651,16 +1674,16 @@ const w = class w {
|
|
1651
1674
|
/**
|
1652
1675
|
* 把指定对象转换成base64字符串
|
1653
1676
|
*/
|
1654
|
-
static base64(t) {
|
1677
|
+
static async base64(t) {
|
1655
1678
|
let e = JSON.stringify(t);
|
1656
|
-
return
|
1679
|
+
return (await ne.getBase64()).encode(e);
|
1657
1680
|
}
|
1658
1681
|
/**
|
1659
1682
|
* 把指定base64字符串解析为原对象
|
1660
1683
|
*/
|
1661
|
-
static base64Decode(t) {
|
1662
|
-
let
|
1663
|
-
return JSON.parse(
|
1684
|
+
static async base64Decode(t) {
|
1685
|
+
let s = (await ne.getBase64()).decode(t);
|
1686
|
+
return JSON.parse(s);
|
1664
1687
|
}
|
1665
1688
|
//endregion
|
1666
1689
|
/**
|
@@ -1670,21 +1693,21 @@ const w = class w {
|
|
1670
1693
|
return t ? t.indexOf("http://") > -1 || t.indexOf("https://") > -1 : !1;
|
1671
1694
|
}
|
1672
1695
|
};
|
1673
|
-
|
1696
|
+
C.handleQueryValue = (t, e) => {
|
1674
1697
|
let s = "";
|
1675
1698
|
if (t == null)
|
1676
1699
|
return s;
|
1677
1700
|
if (t instanceof Array) {
|
1678
1701
|
if (t.length > 0)
|
1679
1702
|
for (let r = 0; r < t.length; r++) {
|
1680
|
-
let n =
|
1681
|
-
n.push(""), s +=
|
1703
|
+
let n = K.clone(e);
|
1704
|
+
n.push(""), s += C.handleQueryValue(t[r], n);
|
1682
1705
|
}
|
1683
1706
|
} else if (t instanceof Object) {
|
1684
1707
|
let r = Object.keys(t);
|
1685
1708
|
for (let n of r) {
|
1686
|
-
let l =
|
1687
|
-
l.push(n), s +=
|
1709
|
+
let l = K.clone(e);
|
1710
|
+
l.push(n), s += C.handleQueryValue(t[n], l);
|
1688
1711
|
}
|
1689
1712
|
} else {
|
1690
1713
|
let r = "";
|
@@ -1694,19 +1717,19 @@ w.handleQueryValue = (t, e) => {
|
|
1694
1717
|
n = n.replace(/'/g, "%27"), n = n.replace(/%20/g, "+"), n = n.replace(/%5B/g, "["), n = n.replace(/%5D/g, "]"), n = n.replace(/%2C/g, ","), n = n.replace(/%3A/g, ":"), n = n.replace(/%24/g, "$"), s += `&${r}=${n}`;
|
1695
1718
|
}
|
1696
1719
|
return s;
|
1697
|
-
},
|
1720
|
+
}, C.concatUrl = (t, e) => C.httpOrHttps(e) ? e : t + e, C.getUrl = (t, e = null) => {
|
1698
1721
|
if (t == null)
|
1699
1722
|
return null;
|
1700
1723
|
if (e == null)
|
1701
1724
|
return t;
|
1702
|
-
let s =
|
1703
|
-
return
|
1704
|
-
},
|
1725
|
+
let s = C.deserialize(t), r = K.mergeTo(s, e);
|
1726
|
+
return C.getPath(t) + "?" + C.getQuery(r);
|
1727
|
+
}, C.getAnchor = (t, e = null) => {
|
1705
1728
|
let s = { href: null, target: null };
|
1706
|
-
return
|
1729
|
+
return C.httpOrHttps(t) ? (s.href = t, s.target = "_blank", s) : (s.href = C.getUrl(t, e), s);
|
1707
1730
|
};
|
1708
|
-
let
|
1709
|
-
class
|
1731
|
+
let O = C;
|
1732
|
+
class Oe {
|
1710
1733
|
/**
|
1711
1734
|
* 清空对象中的空值
|
1712
1735
|
*/
|
@@ -1719,182 +1742,256 @@ class Mt {
|
|
1719
1742
|
* 签名字典
|
1720
1743
|
*/
|
1721
1744
|
static signDictionary(t, e = !0) {
|
1722
|
-
return this.clean(t),
|
1745
|
+
return this.clean(t), O.serialize(t, e);
|
1723
1746
|
}
|
1724
1747
|
}
|
1725
|
-
class
|
1748
|
+
class he {
|
1726
1749
|
constructor() {
|
1727
|
-
|
1750
|
+
this.headers = {};
|
1728
1751
|
}
|
1729
1752
|
/**
|
1730
|
-
*
|
1753
|
+
* 获取指定Key的值
|
1731
1754
|
*/
|
1732
|
-
|
1733
|
-
|
1755
|
+
getHeader(t) {
|
1756
|
+
if (this.headers == null)
|
1757
|
+
return null;
|
1758
|
+
let e = K.getKey(this.headers, t);
|
1759
|
+
return e ? this.headers[e] : null;
|
1734
1760
|
}
|
1735
1761
|
/**
|
1736
|
-
*
|
1762
|
+
* 添加请求头
|
1737
1763
|
*/
|
1738
|
-
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
timestamp: parseInt((e / 1e3).toString())
|
1743
|
-
};
|
1744
|
-
C.isNullOrEmpty(t.body) || (s.jsonBody = t.body);
|
1745
|
-
let r = S.deserialize(t.path);
|
1746
|
-
for (let g in r)
|
1747
|
-
s[g] = r[g];
|
1748
|
-
let n = S.getPath(t.path);
|
1749
|
-
s = X.sort(s);
|
1750
|
-
let l = Mt.signDictionary(s, !1), i = `POST${n}?${l}${this.appSecret}`, a = await this.hasher.compute(i);
|
1751
|
-
s.sign = a.toLowerCase(), delete s.jsonBody, s = X.sort(s);
|
1752
|
-
let o = S.serialize(s);
|
1753
|
-
return t.url = S.concatUrl(this.baseUrl, n + "?" + o), await this.requester.send(t);
|
1764
|
+
addHeaders(t) {
|
1765
|
+
if (t != null)
|
1766
|
+
for (let e in t)
|
1767
|
+
this.headers[e] = t[e];
|
1754
1768
|
}
|
1755
1769
|
}
|
1756
|
-
class
|
1757
|
-
|
1758
|
-
|
1770
|
+
class Ie extends he {
|
1771
|
+
}
|
1772
|
+
class Kt {
|
1773
|
+
//#endregion
|
1774
|
+
async get(t) {
|
1775
|
+
return (await this.sendGet(t)).data;
|
1759
1776
|
}
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
// withCredentials: true, // send cookies when cross-domain requests
|
1764
|
-
// timeout: 15000
|
1765
|
-
}), this.request.interceptors.request.use(
|
1766
|
-
async (e) => {
|
1767
|
-
if (S.httpOrHttps(e.url))
|
1768
|
-
return e;
|
1769
|
-
let s = It(), r = S.getUrl(e.baseURL + e.url, e.params);
|
1770
|
-
if (e.headers.Authorization = await s.getAuthorization(r, e.data), !e.headers["Accept-Language"]) {
|
1771
|
-
let n = tt();
|
1772
|
-
e.headers["Accept-Language"] = n.language;
|
1773
|
-
}
|
1774
|
-
return e;
|
1775
|
-
},
|
1776
|
-
(e) => (console.log(e), Promise.reject(e))
|
1777
|
-
);
|
1777
|
+
async sendGet(t) {
|
1778
|
+
let e = this.getRequest("GET", t);
|
1779
|
+
return await this.send(e);
|
1778
1780
|
}
|
1779
|
-
|
1780
|
-
return
|
1781
|
+
async post(t, e) {
|
1782
|
+
return (await this.sendPost(t, e)).data;
|
1783
|
+
}
|
1784
|
+
async sendPost(t, e) {
|
1785
|
+
let s = this.getRequest("POST", t, e);
|
1786
|
+
return await this.send(s);
|
1787
|
+
}
|
1788
|
+
async patch(t) {
|
1789
|
+
return (await this.sendPatch(t, null)).data;
|
1790
|
+
}
|
1791
|
+
async sendPatch(t, e) {
|
1792
|
+
let s = this.getRequest("PATCH", t);
|
1793
|
+
return await this.send(s);
|
1781
1794
|
}
|
1782
1795
|
/**
|
1783
|
-
*
|
1796
|
+
* 获取请求消息
|
1784
1797
|
*/
|
1785
|
-
|
1786
|
-
let r =
|
1787
|
-
return
|
1798
|
+
getRequest(t, e, s = null) {
|
1799
|
+
let r = new Ie();
|
1800
|
+
return r.path = e, r.method = t, r.body = ut.stringifyWithString(s), r;
|
1801
|
+
}
|
1802
|
+
}
|
1803
|
+
class re extends he {
|
1804
|
+
}
|
1805
|
+
class je extends Kt {
|
1806
|
+
constructor() {
|
1807
|
+
super(...arguments), this.type = "Default";
|
1808
|
+
}
|
1809
|
+
async open(t) {
|
1810
|
+
}
|
1811
|
+
send(t) {
|
1812
|
+
return new Promise((e, s) => {
|
1813
|
+
var l;
|
1814
|
+
(l = this.onRequest) == null || l.call(this, t);
|
1815
|
+
let r = (/* @__PURE__ */ new Date()).getTime(), n = new XMLHttpRequest();
|
1816
|
+
if (n.open(t.method, t.url), t.headers != null)
|
1817
|
+
for (let i in t.headers)
|
1818
|
+
n.setRequestHeader(i, t.headers[i]);
|
1819
|
+
t.contentType != null && n.setRequestHeader("content-type", t.contentType), n.onreadystatechange = () => {
|
1820
|
+
var i;
|
1821
|
+
if (n.readyState == 4) {
|
1822
|
+
let o = new re();
|
1823
|
+
o.elapsed = (/* @__PURE__ */ new Date()).getTime() - r, o.body = n.responseText, o.request = t;
|
1824
|
+
let u = n.getAllResponseHeaders().split(`\r
|
1825
|
+
`), c = {};
|
1826
|
+
for (let g = 0; g < u.length; g++) {
|
1827
|
+
let v = u[g].split(": "), k = v.shift();
|
1828
|
+
k == null || k == "" || (c[k] = v.join(": "));
|
1829
|
+
}
|
1830
|
+
o.headers = c;
|
1831
|
+
let h = o.getHeader("content-type");
|
1832
|
+
h != null && (o.contentType = h, h.indexOf("application/json") > -1 && (o.data = ut.parse(o.body))), (i = this.onResponse) == null || i.call(this, o), e(o);
|
1833
|
+
}
|
1834
|
+
}, n.onerror = (i) => {
|
1835
|
+
var u;
|
1836
|
+
let o = new re();
|
1837
|
+
o.elapsed = (/* @__PURE__ */ new Date()).getTime() - r, o.body = n.responseText, o.request = t, (u = this.onResponse) == null || u.call(this, o), e(o);
|
1838
|
+
}, n.send(t.body);
|
1839
|
+
});
|
1840
|
+
}
|
1841
|
+
}
|
1842
|
+
class Be extends Kt {
|
1843
|
+
constructor() {
|
1844
|
+
super(...arguments), this.type = "Mk";
|
1788
1845
|
}
|
1789
1846
|
/**
|
1790
|
-
*
|
1847
|
+
* 危险操作,会暴露敏感信息
|
1791
1848
|
*/
|
1792
|
-
async
|
1793
|
-
|
1849
|
+
async open(t) {
|
1850
|
+
ut.mergeTo(this, t), this.requester = await I.getHttp().getDefault(), this.hasher = await I.getHasher().create("Sha256");
|
1794
1851
|
}
|
1852
|
+
//#endregion
|
1795
1853
|
/**
|
1796
|
-
*
|
1854
|
+
* 危险操作,会暴露敏感信息
|
1797
1855
|
*/
|
1798
|
-
async
|
1799
|
-
|
1856
|
+
async send(t) {
|
1857
|
+
let e = q.getTimestamp(), s = {
|
1858
|
+
app_id: this.appId,
|
1859
|
+
hash_type: "sha256",
|
1860
|
+
timestamp: parseInt((e / 1e3).toString())
|
1861
|
+
};
|
1862
|
+
B.isNullOrEmpty(t.body) || (s.jsonBody = t.body);
|
1863
|
+
let r = O.deserialize(t.path);
|
1864
|
+
for (let h in r)
|
1865
|
+
s[h] = r[h];
|
1866
|
+
let n = O.getPath(t.path);
|
1867
|
+
s = wt.sort(s);
|
1868
|
+
let l = Oe.signDictionary(s, !1), i = `POST${n}?${l}${this.appSecret}`, o = await this.hasher.compute(i);
|
1869
|
+
s.sign = o.toLowerCase(), delete s.jsonBody, s = wt.sort(s);
|
1870
|
+
let u = O.serialize(s);
|
1871
|
+
return t.url = O.concatUrl(this.baseUrl, n + "?" + u), await this.requester.send(t);
|
1872
|
+
}
|
1873
|
+
}
|
1874
|
+
class Ae extends Kt {
|
1875
|
+
constructor() {
|
1876
|
+
super(...arguments), this.type = "Halo", this.baseUrl = null;
|
1800
1877
|
}
|
1801
1878
|
/**
|
1802
|
-
*
|
1879
|
+
* 开启
|
1803
1880
|
*/
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1807
|
-
|
1808
|
-
|
1881
|
+
async open(t) {
|
1882
|
+
this.baseUrl = t, this.http = await I.getHttp().getDefault(), this.http.onResponse = (e) => {
|
1883
|
+
let s = e.data;
|
1884
|
+
se().add(s.code, s.message, s.stack, s.elapsed);
|
1885
|
+
};
|
1809
1886
|
}
|
1887
|
+
//#endregion
|
1810
1888
|
/**
|
1811
|
-
*
|
1889
|
+
* 发送请求
|
1812
1890
|
*/
|
1813
|
-
|
1814
|
-
|
1891
|
+
async send(t) {
|
1892
|
+
t.url = O.concatUrl(this.baseUrl, t.path);
|
1893
|
+
let e = await this.getHeaders(t);
|
1894
|
+
t.addHeaders(e);
|
1895
|
+
let s = await this.http.send(t), r = s.data;
|
1896
|
+
return r.code == "Ok" ? s : (pt.error(r.message), Promise.reject(r));
|
1897
|
+
}
|
1898
|
+
/**
|
1899
|
+
* 获取请求头
|
1900
|
+
*/
|
1901
|
+
async getHeaders(t) {
|
1902
|
+
let e = {};
|
1903
|
+
if (O.httpOrHttps(t.path))
|
1904
|
+
return e;
|
1905
|
+
let s = ce();
|
1906
|
+
if (e.Authorization = await s.getAuth(t.url, t.body), !t.getHeader("Accept-Language")) {
|
1907
|
+
let r = H();
|
1908
|
+
e["Accept-Language"] = r.language;
|
1909
|
+
}
|
1910
|
+
return e;
|
1815
1911
|
}
|
1816
1912
|
/**
|
1817
1913
|
* 处理网络错误和响应错误场景
|
1818
1914
|
*/
|
1819
1915
|
handleError(t) {
|
1820
|
-
if (t instanceof
|
1821
|
-
|
1916
|
+
if (t instanceof Object) {
|
1917
|
+
se().add("error", t.message, t.stack);
|
1822
1918
|
let s = t.message;
|
1823
|
-
t.message == "Network Error" && (
|
1919
|
+
t.message == "Network Error" && (O.httpOrHttps(t.config.url) ? s = "接口网络错误: " + t.config.url : s = "接口网络错误: " + t.config.baseURL + t.config.url), pt.error(s);
|
1824
1920
|
} else
|
1825
|
-
|
1921
|
+
pt.error(t.message);
|
1826
1922
|
return Promise.reject(t);
|
1827
1923
|
}
|
1828
1924
|
}
|
1829
|
-
class
|
1925
|
+
class Ue extends L {
|
1830
1926
|
getInstances() {
|
1831
|
-
return [new
|
1832
|
-
}
|
1833
|
-
create(t, e) {
|
1834
|
-
return super.create(t);
|
1927
|
+
return [new je(), new Be(), new Ae()];
|
1835
1928
|
}
|
1836
1929
|
/**
|
1837
1930
|
* 获取默认请求器
|
1838
1931
|
*/
|
1839
|
-
getDefault() {
|
1840
|
-
return this._default != null ? this._default : (this._default = this.create("Default"), this._default);
|
1932
|
+
async getDefault() {
|
1933
|
+
return this._default != null ? this._default : (this._default = await this.create("Default"), this._default);
|
1841
1934
|
}
|
1842
1935
|
/**
|
1843
1936
|
* 获取本地请求实例
|
1844
1937
|
* 获取完毕后,下游第一行代码就要配置消息服务
|
1845
1938
|
*/
|
1846
|
-
|
1847
|
-
|
1939
|
+
async getHalo() {
|
1940
|
+
if (this.halo == null) {
|
1941
|
+
let t = await this.create("Halo");
|
1942
|
+
await t.open(mt.api.url), this.halo = t;
|
1943
|
+
}
|
1944
|
+
return this.halo;
|
1848
1945
|
}
|
1849
1946
|
}
|
1850
|
-
class
|
1947
|
+
class De {
|
1851
1948
|
}
|
1852
|
-
class
|
1949
|
+
class Le extends De {
|
1853
1950
|
constructor() {
|
1854
1951
|
super(...arguments), this.type = "Base64";
|
1855
1952
|
}
|
1856
1953
|
open(t) {
|
1857
1954
|
}
|
1858
1955
|
encode(t) {
|
1859
|
-
let e =
|
1860
|
-
return
|
1956
|
+
let e = st.enc.Utf8.parse(t);
|
1957
|
+
return st.enc.Base64.stringify(e);
|
1861
1958
|
}
|
1862
1959
|
decode(t) {
|
1863
|
-
let e =
|
1864
|
-
return
|
1960
|
+
let e = st.enc.Base64.parse(t);
|
1961
|
+
return st.enc.Utf8.stringify(e);
|
1865
1962
|
}
|
1866
1963
|
}
|
1867
|
-
class
|
1964
|
+
class $e extends L {
|
1868
1965
|
getInstances() {
|
1869
|
-
return [new
|
1966
|
+
return [new Le()];
|
1870
1967
|
}
|
1871
1968
|
/**
|
1872
1969
|
* 创建执行类型的Hash实例
|
1873
1970
|
*/
|
1874
|
-
create(t, e) {
|
1875
|
-
let s = super.create(t);
|
1971
|
+
async create(t, e) {
|
1972
|
+
let s = await super.create(t);
|
1876
1973
|
return s.open(null), s;
|
1877
1974
|
}
|
1878
1975
|
/**
|
1879
1976
|
* 获取Base64 编码器对象
|
1880
1977
|
*/
|
1881
|
-
getBase64() {
|
1882
|
-
return this.base64 != null ? this.base64 : (this.base64 = this.create("Base64"), this.base64);
|
1978
|
+
async getBase64() {
|
1979
|
+
return this.base64 != null ? this.base64 : (this.base64 = await this.create("Base64"), this.base64);
|
1883
1980
|
}
|
1884
1981
|
}
|
1885
|
-
class
|
1982
|
+
class Ne {
|
1983
|
+
}
|
1984
|
+
class Pe extends Ne {
|
1886
1985
|
constructor() {
|
1887
|
-
this.type = "Default";
|
1986
|
+
super(...arguments), this.type = "Default";
|
1888
1987
|
}
|
1889
|
-
open(t) {
|
1890
|
-
this.hasher =
|
1988
|
+
async open(t) {
|
1989
|
+
this.hasher = await I.getHasher().getMd5();
|
1891
1990
|
}
|
1892
1991
|
callback(t) {
|
1893
1992
|
}
|
1894
1993
|
async getSign(t, e, s, r, n) {
|
1895
|
-
let
|
1896
|
-
s && (y.isString(s) ? l = s.toString() : l = JSON.stringify(s));
|
1897
|
-
let i = `${t}.${e}.${l}.${r}.${n}`;
|
1994
|
+
let i = `${t}.${e}.${s ?? ""}.${r}.${n}`;
|
1898
1995
|
return (await this.hasher.compute(i)).toUpperCase();
|
1899
1996
|
}
|
1900
1997
|
loginUrl(t) {
|
@@ -1903,49 +2000,46 @@ class Zt {
|
|
1903
2000
|
dispose() {
|
1904
2001
|
}
|
1905
2002
|
}
|
1906
|
-
class
|
2003
|
+
class Te extends L {
|
1907
2004
|
getInstances() {
|
1908
|
-
return [new
|
2005
|
+
return [new Pe()];
|
1909
2006
|
}
|
1910
2007
|
/**
|
1911
2008
|
* 获取指定签名实例
|
1912
2009
|
*/
|
1913
|
-
create(t, e) {
|
1914
|
-
let s = super.create(t);
|
1915
|
-
return s.open(null), s;
|
2010
|
+
async create(t, e) {
|
2011
|
+
let s = await super.create(t);
|
2012
|
+
return await s.open(null), s;
|
1916
2013
|
}
|
1917
2014
|
}
|
1918
|
-
const
|
2015
|
+
const Ot = class Ot {
|
1919
2016
|
constructor() {
|
1920
2017
|
this.type = "Bearer";
|
1921
2018
|
}
|
1922
2019
|
open(t) {
|
1923
|
-
this.requester = k.getRequester().getLocal();
|
1924
2020
|
}
|
2021
|
+
//#endregion
|
1925
2022
|
async login(t) {
|
1926
|
-
return
|
1927
|
-
let s = e.data;
|
1928
|
-
return x.setObject("sso", s), Promise.resolve(e);
|
1929
|
-
});
|
2023
|
+
return j.post(`/user/login?type=${this.type}`, t).then(async (e) => (await (await I.getProvider().getDefault("user")).saveAsync("sso", e.data), Promise.resolve(e)));
|
1930
2024
|
}
|
1931
2025
|
loginUrl(t) {
|
1932
2026
|
return "";
|
1933
2027
|
}
|
1934
2028
|
getUser() {
|
1935
|
-
let t =
|
2029
|
+
let t = E.getObject("sso");
|
1936
2030
|
return { userId: t.userId, token: t.token, secret: t.userSecret };
|
1937
2031
|
}
|
1938
|
-
|
2032
|
+
getAuth(t, e, s, r = "") {
|
1939
2033
|
let n = `${this.type} ${t} ${e} ${s} pc`;
|
1940
2034
|
return r && (n += " " + r), n;
|
1941
2035
|
}
|
1942
2036
|
logout() {
|
1943
|
-
|
2037
|
+
E.remove(Ot.loginKey), E.remove("sso");
|
1944
2038
|
}
|
1945
2039
|
};
|
1946
|
-
|
1947
|
-
let
|
1948
|
-
class
|
2040
|
+
Ot.loginKey = "user";
|
2041
|
+
let ot = Ot;
|
2042
|
+
class Fe {
|
1949
2043
|
constructor() {
|
1950
2044
|
this.type = "Nio";
|
1951
2045
|
}
|
@@ -1953,23 +2047,23 @@ class Ht {
|
|
1953
2047
|
this.url = t.url, this.app_id = t.app_id;
|
1954
2048
|
}
|
1955
2049
|
async login(t) {
|
1956
|
-
|
2050
|
+
E.setObject("sso", t);
|
1957
2051
|
}
|
1958
2052
|
loginUrl(t) {
|
1959
2053
|
let e = encodeURIComponent(t);
|
1960
2054
|
return `${this.url}/oauth2/authorize?client_id=${this.app_id}&redirect_uri=${e}&response_type=code`;
|
1961
2055
|
}
|
1962
2056
|
getUser() {
|
1963
|
-
return
|
2057
|
+
return E.getObject(ot.loginKey);
|
1964
2058
|
}
|
1965
|
-
|
2059
|
+
getAuth(t, e, s, r) {
|
1966
2060
|
return `${this.type} ${t} ${e} ${s} pc`;
|
1967
2061
|
}
|
1968
2062
|
logout() {
|
1969
|
-
|
2063
|
+
E.remove("sso");
|
1970
2064
|
}
|
1971
2065
|
}
|
1972
|
-
class
|
2066
|
+
class Re {
|
1973
2067
|
constructor() {
|
1974
2068
|
this.type = "WeiXin";
|
1975
2069
|
}
|
@@ -1983,13 +2077,13 @@ class _t {
|
|
1983
2077
|
getUser() {
|
1984
2078
|
return { userId: "", token: "", secret: "" };
|
1985
2079
|
}
|
1986
|
-
|
2080
|
+
getAuth(t, e, s, r) {
|
1987
2081
|
return "";
|
1988
2082
|
}
|
1989
2083
|
logout() {
|
1990
2084
|
}
|
1991
2085
|
}
|
1992
|
-
class
|
2086
|
+
class Ve {
|
1993
2087
|
constructor() {
|
1994
2088
|
this.type = "Anonymous";
|
1995
2089
|
}
|
@@ -2001,79 +2095,78 @@ class te {
|
|
2001
2095
|
return "";
|
2002
2096
|
}
|
2003
2097
|
getUser() {
|
2004
|
-
let t =
|
2098
|
+
let t = E.get("anonymous");
|
2005
2099
|
if (!t) {
|
2006
|
-
let e =
|
2007
|
-
|
2100
|
+
let e = B.getUniqueId();
|
2101
|
+
E.set("anonymous", e), t = e;
|
2008
2102
|
}
|
2009
2103
|
return { userId: "", token: t, secret: "" };
|
2010
2104
|
}
|
2011
|
-
|
2105
|
+
getAuth(t, e, s, r) {
|
2012
2106
|
return `Anonymous ${t} pc`;
|
2013
2107
|
}
|
2014
2108
|
logout() {
|
2015
2109
|
}
|
2016
2110
|
}
|
2017
|
-
class
|
2111
|
+
class Ke {
|
2018
2112
|
constructor() {
|
2019
2113
|
this.type = "Secret";
|
2020
2114
|
}
|
2021
2115
|
open(t) {
|
2022
|
-
this.requester = k.getRequester().getLocal();
|
2023
2116
|
}
|
2024
2117
|
async login(t) {
|
2025
|
-
return
|
2118
|
+
return j.post(`/user/login?type=${this.type}`, t).then((e) => {
|
2026
2119
|
let s = e.data;
|
2027
|
-
return
|
2120
|
+
return E.setObject("sso", s), Promise.resolve(e);
|
2028
2121
|
});
|
2029
2122
|
}
|
2030
2123
|
loginUrl(t) {
|
2031
2124
|
return "";
|
2032
2125
|
}
|
2033
2126
|
getUser() {
|
2034
|
-
let t =
|
2127
|
+
let t = E.getObject(ot.loginKey);
|
2035
2128
|
return { userId: t.userId, token: t.token, secret: t.userSecret };
|
2036
2129
|
}
|
2037
|
-
|
2130
|
+
getAuth(t, e, s, r) {
|
2038
2131
|
return `${this.type} ${t} ${e} ${s} pc`;
|
2039
2132
|
}
|
2040
2133
|
logout() {
|
2041
2134
|
}
|
2042
2135
|
}
|
2043
|
-
class
|
2136
|
+
class ze extends L {
|
2044
2137
|
/**
|
2045
2138
|
* @extends {getInstances}
|
2046
2139
|
*/
|
2047
2140
|
getInstances() {
|
2048
|
-
return [new
|
2141
|
+
return [new Ke(), new Fe(), new Re(), new ot(), new Ve()];
|
2049
2142
|
}
|
2050
2143
|
/**
|
2051
2144
|
* 获取指定SSO实例
|
2052
2145
|
*/
|
2053
|
-
create(t, e) {
|
2054
|
-
let r =
|
2146
|
+
async create(t, e) {
|
2147
|
+
let r = ue().ssos.find((i) => i.type.toUpperCase() == t.toUpperCase()), n = { url: r == null ? void 0 : r.url, app_id: r == null ? void 0 : r.appId }, l = await super.create(t);
|
2055
2148
|
return l.open(n), l;
|
2056
2149
|
}
|
2057
2150
|
}
|
2058
|
-
class
|
2151
|
+
class ct {
|
2059
2152
|
getPath(t) {
|
2060
|
-
let e =
|
2061
|
-
return
|
2153
|
+
let e = wt.getValueIgnoreCase(t, this.mappings);
|
2154
|
+
return O.httpOrHttps(e) ? e : this.baseUrl + e;
|
2062
2155
|
}
|
2063
2156
|
async loadPathAsync(t, e) {
|
2064
2157
|
let s = this.baseUrl + t;
|
2065
|
-
await
|
2158
|
+
await kt.loadPathAsync(s, e);
|
2066
2159
|
}
|
2067
2160
|
async loadAsync(t) {
|
2068
|
-
let e =
|
2161
|
+
let e = B.getArray(t), s = [];
|
2069
2162
|
for (let r = 0; r < e.length; r++) {
|
2070
2163
|
let n = this.getPath(e[r]);
|
2071
2164
|
s.push(n);
|
2072
2165
|
}
|
2073
|
-
return await
|
2166
|
+
return await kt.loadAsync(s);
|
2074
2167
|
}
|
2075
2168
|
}
|
2076
|
-
class
|
2169
|
+
class Me extends ct {
|
2077
2170
|
constructor() {
|
2078
2171
|
super(...arguments), this.type = "Jsdelivr", this.mappings = {
|
2079
2172
|
"monaco-editor": "/npm/monaco-editor@0.49.0/min/vs"
|
@@ -2083,7 +2176,7 @@ class re extends Y {
|
|
2083
2176
|
this.baseUrl = "https://cdn.jsdelivr.net";
|
2084
2177
|
}
|
2085
2178
|
}
|
2086
|
-
class
|
2179
|
+
class qe extends ct {
|
2087
2180
|
constructor() {
|
2088
2181
|
super(...arguments), this.type = "StaticFile", this.mappings = {
|
2089
2182
|
//通过cdn引入样式文件,并且打包文件中不会包括样式文件
|
@@ -2091,7 +2184,7 @@ class ne extends Y {
|
|
2091
2184
|
// 加载monaco cdn压缩资源包,可以大幅减少本地请求数量
|
2092
2185
|
//首次加载4.11s
|
2093
2186
|
//不能使用,偶发404:https://cdn.staticfile.net/monaco-editor/0.45.0/min/vs
|
2094
|
-
"monaco-editor": "https://cdn.jsdelivr.net/npm/monaco-editor@0.
|
2187
|
+
"monaco-editor": "https://cdn.jsdelivr.net/npm/monaco-editor@0.50.0/min/vs",
|
2095
2188
|
quill: "/quill/2.0.2/quill.snow.min.css",
|
2096
2189
|
"fort-awesome": "https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css"
|
2097
2190
|
};
|
@@ -2100,7 +2193,7 @@ class ne extends Y {
|
|
2100
2193
|
this.baseUrl = "https://cdn.staticfile.net";
|
2101
2194
|
}
|
2102
2195
|
}
|
2103
|
-
class
|
2196
|
+
class We extends ct {
|
2104
2197
|
constructor() {
|
2105
2198
|
super(...arguments), this.type = "BootCdn", this.mappings = {
|
2106
2199
|
"element-plus": "/ajax/libs/element-plus/2.4.4/index.css",
|
@@ -2112,7 +2205,7 @@ class le extends Y {
|
|
2112
2205
|
this.baseUrl = "https://cdn.bootcdn.net";
|
2113
2206
|
}
|
2114
2207
|
}
|
2115
|
-
class
|
2208
|
+
class Je extends ct {
|
2116
2209
|
constructor() {
|
2117
2210
|
super(...arguments), this.type = "Local", this.mappings = {
|
2118
2211
|
//引入本地样式文件,会导致始终打包进打包文件
|
@@ -2131,7 +2224,7 @@ class ie extends Y {
|
|
2131
2224
|
this.baseUrl = t;
|
2132
2225
|
}
|
2133
2226
|
}
|
2134
|
-
class
|
2227
|
+
class Ye extends ct {
|
2135
2228
|
constructor() {
|
2136
2229
|
super(...arguments), this.type = "Unpkg", this.mappings = {
|
2137
2230
|
//首次加载很不稳定: 30s+, 稳定后: 首次加载2.5s(使用https加载,可以防止本地http访问外部http资源时的请求警告)
|
@@ -2142,83 +2235,31 @@ class ue extends Y {
|
|
2142
2235
|
this.baseUrl = "https://unpkg.com";
|
2143
2236
|
}
|
2144
2237
|
}
|
2145
|
-
class
|
2238
|
+
class Qe extends L {
|
2146
2239
|
getInstances() {
|
2147
|
-
return [new
|
2240
|
+
return [new Me(), new qe(), new We(), new Je(), new Ye()];
|
2148
2241
|
}
|
2149
2242
|
/**
|
2150
2243
|
* 获取指定CDN实例
|
2151
2244
|
*/
|
2152
|
-
create(t, e) {
|
2153
|
-
let s = super.create(t);
|
2245
|
+
async create(t, e) {
|
2246
|
+
let s = await super.create(t);
|
2154
2247
|
return s.open(e), s;
|
2155
2248
|
}
|
2156
2249
|
}
|
2157
|
-
class
|
2250
|
+
class Xe {
|
2158
2251
|
constructor() {
|
2159
2252
|
this.type = "Json";
|
2160
2253
|
}
|
2161
2254
|
}
|
2162
|
-
class
|
2163
|
-
}
|
2164
|
-
class he extends E {
|
2165
|
-
getInstances() {
|
2166
|
-
return [new ce()];
|
2167
|
-
}
|
2168
|
-
}
|
2169
|
-
class ge {
|
2170
|
-
constructor() {
|
2171
|
-
this.type = "xlsx";
|
2172
|
-
}
|
2173
|
-
open(t) {
|
2174
|
-
}
|
2175
|
-
export(t, e) {
|
2176
|
-
if (!e)
|
2177
|
-
throw new Error("Excel名称不能为空");
|
2178
|
-
t || (t = []);
|
2179
|
-
let s;
|
2180
|
-
t.length > 0 ? s = Object.keys(t[0]) : s = [];
|
2181
|
-
let r = [], n = [];
|
2182
|
-
if (s.forEach((c) => {
|
2183
|
-
n.push(c);
|
2184
|
-
}), r.push(n), t.length > 0)
|
2185
|
-
for (let c = 0; c < t.length; c++) {
|
2186
|
-
let g = t[c], p = [];
|
2187
|
-
Object.keys(g).forEach((j) => {
|
2188
|
-
p.push(g[j]);
|
2189
|
-
}), r.push(p);
|
2190
|
-
}
|
2191
|
-
let l = nt.book_new(), i = nt.json_to_sheet(r, { skipHeader: !0 });
|
2192
|
-
nt.book_append_sheet(l, i, "abc");
|
2193
|
-
let a = 65;
|
2194
|
-
for (let c = 0; c < s.length; c++) {
|
2195
|
-
let p = `${String.fromCharCode(a + c)}1`;
|
2196
|
-
i[p].s = {
|
2197
|
-
alignment: { horizontal: "center" },
|
2198
|
-
font: { bold: !0, color: { rgb: "000000" } },
|
2199
|
-
fill: { fgColor: { rgb: "409eff" } }
|
2200
|
-
};
|
2201
|
-
}
|
2202
|
-
let o = [];
|
2203
|
-
s.forEach((c) => {
|
2204
|
-
let g = t[0][c], p = { wpx: 50 };
|
2205
|
-
typeof g == "string" && (p.wpx = 100), o.push(p);
|
2206
|
-
}), i["!cols"] = o, $t(l, e);
|
2207
|
-
}
|
2255
|
+
class Ge extends Xe {
|
2208
2256
|
}
|
2209
|
-
class
|
2257
|
+
class Ze extends L {
|
2210
2258
|
getInstances() {
|
2211
|
-
return [new
|
2212
|
-
}
|
2213
|
-
/**
|
2214
|
-
* 获取Excel实例
|
2215
|
-
*/
|
2216
|
-
create(t, e) {
|
2217
|
-
let s = super.create(t);
|
2218
|
-
return s.open(e), s;
|
2259
|
+
return [new Ge()];
|
2219
2260
|
}
|
2220
2261
|
}
|
2221
|
-
class
|
2262
|
+
class He {
|
2222
2263
|
constructor() {
|
2223
2264
|
this.type = "Sort";
|
2224
2265
|
}
|
@@ -2243,7 +2284,7 @@ class fe {
|
|
2243
2284
|
}
|
2244
2285
|
}
|
2245
2286
|
}
|
2246
|
-
class
|
2287
|
+
class _e {
|
2247
2288
|
constructor() {
|
2248
2289
|
this.type = "I18N";
|
2249
2290
|
}
|
@@ -2256,7 +2297,7 @@ class me {
|
|
2256
2297
|
copy(t, e, s) {
|
2257
2298
|
}
|
2258
2299
|
}
|
2259
|
-
class
|
2300
|
+
class ts {
|
2260
2301
|
constructor() {
|
2261
2302
|
this.type = "Expression";
|
2262
2303
|
}
|
@@ -2269,19 +2310,58 @@ class pe {
|
|
2269
2310
|
copy(t, e, s) {
|
2270
2311
|
}
|
2271
2312
|
}
|
2272
|
-
class
|
2313
|
+
class es extends L {
|
2273
2314
|
getInstances() {
|
2274
|
-
return [new
|
2315
|
+
return [new He(), new _e(), new ts()];
|
2275
2316
|
}
|
2276
2317
|
/**
|
2277
2318
|
* 获取指定特征实例
|
2278
2319
|
*/
|
2279
|
-
create(t, e) {
|
2280
|
-
let s = super.create(t);
|
2320
|
+
async create(t, e) {
|
2321
|
+
let s = await super.create(t);
|
2281
2322
|
return s.open(null), s;
|
2282
2323
|
}
|
2283
2324
|
}
|
2284
|
-
class
|
2325
|
+
class de {
|
2326
|
+
}
|
2327
|
+
class ss extends de {
|
2328
|
+
constructor() {
|
2329
|
+
super(...arguments), this.type = "Sha256";
|
2330
|
+
}
|
2331
|
+
open(t) {
|
2332
|
+
}
|
2333
|
+
async compute(t) {
|
2334
|
+
let s = new TextEncoder().encode(t), r = await crypto.subtle.digest("SHA-256", s);
|
2335
|
+
return Array.from(new Uint8Array(r)).map((i) => i.toString(16).padStart(2, "0")).join("");
|
2336
|
+
}
|
2337
|
+
}
|
2338
|
+
class rs extends de {
|
2339
|
+
constructor() {
|
2340
|
+
super(...arguments), this.type = "Md5";
|
2341
|
+
}
|
2342
|
+
open(t) {
|
2343
|
+
}
|
2344
|
+
compute(t) {
|
2345
|
+
let e = st.MD5(t).toString();
|
2346
|
+
return Promise.resolve(e);
|
2347
|
+
}
|
2348
|
+
}
|
2349
|
+
class ns extends L {
|
2350
|
+
getInstances() {
|
2351
|
+
return [new ss(), new rs()];
|
2352
|
+
}
|
2353
|
+
async create(t, e) {
|
2354
|
+
let s = await super.create(t);
|
2355
|
+
return s.open(null), s;
|
2356
|
+
}
|
2357
|
+
/**
|
2358
|
+
* 获取MD5 Hash对象
|
2359
|
+
*/
|
2360
|
+
async getMd5() {
|
2361
|
+
return this.md5 != null ? this.md5 : (this.md5 = await this.create("Md5"), this.md5);
|
2362
|
+
}
|
2363
|
+
}
|
2364
|
+
class ls {
|
2285
2365
|
createAsync(t) {
|
2286
2366
|
return Promise.resolve(void 0);
|
2287
2367
|
}
|
@@ -2308,7 +2388,7 @@ class be {
|
|
2308
2388
|
dispose() {
|
2309
2389
|
}
|
2310
2390
|
}
|
2311
|
-
const
|
2391
|
+
const X = class X extends ls {
|
2312
2392
|
constructor() {
|
2313
2393
|
super(...arguments), this.type = "IndexedDb", this.database = null, this.store = null, this.objectStoreNames = null;
|
2314
2394
|
}
|
@@ -2320,7 +2400,7 @@ const N = class N extends be {
|
|
2320
2400
|
let r = indexedDB.open(t);
|
2321
2401
|
r.onsuccess = (n) => {
|
2322
2402
|
let l = n.target.result;
|
2323
|
-
|
2403
|
+
X.version = l.version, this.objectStoreNames = l.objectStoreNames, e(X.version);
|
2324
2404
|
}, r.onerror = (n) => {
|
2325
2405
|
s(n.target);
|
2326
2406
|
};
|
@@ -2331,7 +2411,7 @@ const N = class N extends be {
|
|
2331
2411
|
*/
|
2332
2412
|
async createAsync(t) {
|
2333
2413
|
return this.store = t, this.objectStoreNames.contains(t) ? Promise.resolve(!0) : new Promise((e, s) => {
|
2334
|
-
let r = indexedDB.open(this.database, ++
|
2414
|
+
let r = indexedDB.open(this.database, ++X.version);
|
2335
2415
|
r.onupgradeneeded = (n) => {
|
2336
2416
|
let l = n.target.result;
|
2337
2417
|
l.objectStoreNames.contains(this.store) || l.createObjectStore(this.store);
|
@@ -2347,7 +2427,7 @@ const N = class N extends be {
|
|
2347
2427
|
*/
|
2348
2428
|
async openDbAsync() {
|
2349
2429
|
return new Promise((t, e) => {
|
2350
|
-
let s = indexedDB.open(this.database,
|
2430
|
+
let s = indexedDB.open(this.database, X.version);
|
2351
2431
|
s.onsuccess = (r) => {
|
2352
2432
|
let n = r.target.result;
|
2353
2433
|
t(n);
|
@@ -2367,17 +2447,17 @@ const N = class N extends be {
|
|
2367
2447
|
return;
|
2368
2448
|
}
|
2369
2449
|
let n = e.transaction(this.store, "readonly");
|
2370
|
-
n.oncomplete = (
|
2450
|
+
n.oncomplete = (o) => {
|
2371
2451
|
e.close();
|
2372
|
-
}, n.onerror = (
|
2373
|
-
r(
|
2452
|
+
}, n.onerror = (o) => {
|
2453
|
+
r(o);
|
2374
2454
|
};
|
2375
2455
|
let i = n.objectStore(this.store).get(t);
|
2376
|
-
i.onsuccess = (
|
2377
|
-
let
|
2378
|
-
s(
|
2379
|
-
}, i.onerror = (
|
2380
|
-
r(
|
2456
|
+
i.onsuccess = (o) => {
|
2457
|
+
let u = o.target.result;
|
2458
|
+
s(u);
|
2459
|
+
}, i.onerror = (o) => {
|
2460
|
+
r(o.target);
|
2381
2461
|
};
|
2382
2462
|
});
|
2383
2463
|
}
|
@@ -2390,17 +2470,17 @@ const N = class N extends be {
|
|
2390
2470
|
let s = await this.openDbAsync();
|
2391
2471
|
return new Promise((r, n) => {
|
2392
2472
|
let l = s.transaction(this.store, "readwrite");
|
2393
|
-
l.oncomplete = (
|
2473
|
+
l.oncomplete = (u) => {
|
2394
2474
|
s.close();
|
2395
|
-
}, l.onerror = (
|
2396
|
-
n(
|
2475
|
+
}, l.onerror = (u) => {
|
2476
|
+
n(u);
|
2397
2477
|
};
|
2398
|
-
let
|
2399
|
-
|
2400
|
-
let c =
|
2478
|
+
let o = l.objectStore(this.store).add(e, t);
|
2479
|
+
o.onsuccess = (u) => {
|
2480
|
+
let c = u.target.result;
|
2401
2481
|
r(c);
|
2402
|
-
},
|
2403
|
-
let c =
|
2482
|
+
}, o.onerror = (u) => {
|
2483
|
+
let c = u.target.error;
|
2404
2484
|
n(c.message);
|
2405
2485
|
};
|
2406
2486
|
});
|
@@ -2424,13 +2504,13 @@ const N = class N extends be {
|
|
2424
2504
|
}, l.onerror = (c) => {
|
2425
2505
|
n(c);
|
2426
2506
|
};
|
2427
|
-
let i =
|
2428
|
-
|
2429
|
-
let
|
2430
|
-
r(
|
2431
|
-
},
|
2432
|
-
let
|
2433
|
-
n(
|
2507
|
+
let i = K.clone(e), u = l.objectStore(this.store).put(i, t);
|
2508
|
+
u.onsuccess = (c) => {
|
2509
|
+
let h = c.target.result;
|
2510
|
+
r(h);
|
2511
|
+
}, u.onerror = (c) => {
|
2512
|
+
let h = c.target.error;
|
2513
|
+
n(h.message);
|
2434
2514
|
};
|
2435
2515
|
});
|
2436
2516
|
}
|
@@ -2443,18 +2523,18 @@ const N = class N extends be {
|
|
2443
2523
|
let e = await this.openDbAsync();
|
2444
2524
|
return new Promise((s, r) => {
|
2445
2525
|
let n = e.transaction(this.store, "readwrite");
|
2446
|
-
n.oncomplete = (
|
2526
|
+
n.oncomplete = (o) => {
|
2447
2527
|
e.close();
|
2448
|
-
}, n.onerror = (
|
2449
|
-
r(
|
2528
|
+
}, n.onerror = (o) => {
|
2529
|
+
r(o);
|
2450
2530
|
};
|
2451
2531
|
let i = n.objectStore(this.store).delete(t);
|
2452
|
-
i.onsuccess = (
|
2453
|
-
let
|
2454
|
-
s(
|
2455
|
-
}, i.onerror = (
|
2456
|
-
let
|
2457
|
-
r(
|
2532
|
+
i.onsuccess = (o) => {
|
2533
|
+
let u = o.target.result;
|
2534
|
+
s(u);
|
2535
|
+
}, i.onerror = (o) => {
|
2536
|
+
let u = o.target.error.message;
|
2537
|
+
r(u);
|
2458
2538
|
};
|
2459
2539
|
});
|
2460
2540
|
}
|
@@ -2469,32 +2549,33 @@ const N = class N extends be {
|
|
2469
2549
|
dispose() {
|
2470
2550
|
}
|
2471
2551
|
};
|
2472
|
-
|
2473
|
-
let
|
2474
|
-
class
|
2552
|
+
X.version = null;
|
2553
|
+
let Tt = X;
|
2554
|
+
class is extends L {
|
2475
2555
|
getInstances() {
|
2476
|
-
return [new
|
2556
|
+
return [new Tt()];
|
2477
2557
|
}
|
2478
2558
|
/**
|
2479
2559
|
* 获取指定类型的提供程序
|
2480
2560
|
*/
|
2481
|
-
create(t, e) {
|
2482
|
-
|
2561
|
+
async create(t, e) {
|
2562
|
+
let s = await super.create(t);
|
2563
|
+
return await s.openAsync(e), s;
|
2483
2564
|
}
|
2484
2565
|
/**
|
2485
|
-
*
|
2566
|
+
* 获取并开启默认驱动程序
|
2486
2567
|
*/
|
2487
|
-
async getDefault(t
|
2488
|
-
return this._default != null ? this._default : (this._default = this.create(
|
2568
|
+
async getDefault(t) {
|
2569
|
+
return this._default != null ? this._default : (this._default = await this.create("IndexedDb", "halo"), t != null && await this._default.createAsync(t), this._default);
|
2489
2570
|
}
|
2490
2571
|
}
|
2491
|
-
const
|
2572
|
+
const it = class it {
|
2492
2573
|
/**
|
2493
2574
|
* 获取并缓存工厂实例
|
2494
2575
|
*/
|
2495
2576
|
static create(t, e) {
|
2496
|
-
let s =
|
2497
|
-
return s || (s = new e(),
|
2577
|
+
let s = it.mappings[t];
|
2578
|
+
return s || (s = new e(), it.mappings[t] = s), s;
|
2498
2579
|
}
|
2499
2580
|
//#endregion
|
2500
2581
|
//#region 工厂实例
|
@@ -2502,94 +2583,491 @@ const W = class W {
|
|
2502
2583
|
*获取CDN工厂
|
2503
2584
|
*/
|
2504
2585
|
static getCdn() {
|
2505
|
-
return this.create("CdnFactory",
|
2586
|
+
return this.create("CdnFactory", Qe);
|
2506
2587
|
}
|
2507
2588
|
/**
|
2508
2589
|
*获取编码器工厂
|
2509
2590
|
*/
|
2510
2591
|
static getEncoder() {
|
2511
|
-
return this.create("EncoderFactory",
|
2592
|
+
return this.create("EncoderFactory", $e);
|
2512
2593
|
}
|
2513
2594
|
/**
|
2514
2595
|
*获取Excel工厂
|
2515
2596
|
*/
|
2516
2597
|
static getExcel() {
|
2517
|
-
return this.create("ExcelFactory",
|
2598
|
+
return this.create("ExcelFactory", ke);
|
2518
2599
|
}
|
2519
2600
|
/**
|
2520
2601
|
*获取Explainer工厂
|
2521
2602
|
*/
|
2522
2603
|
static getExplainer() {
|
2523
|
-
return this.create("ExplainerFactory",
|
2604
|
+
return this.create("ExplainerFactory", Ze);
|
2524
2605
|
}
|
2525
2606
|
/**
|
2526
2607
|
*获取特征工厂
|
2527
2608
|
*/
|
2528
2609
|
static getFeature() {
|
2529
|
-
return this.create("FeatureFactory",
|
2610
|
+
return this.create("FeatureFactory", es);
|
2530
2611
|
}
|
2531
2612
|
/**
|
2532
2613
|
*获取哈希工厂
|
2533
2614
|
*/
|
2534
2615
|
static getHasher() {
|
2535
|
-
return this.create("HasherFactory",
|
2616
|
+
return this.create("HasherFactory", ns);
|
2536
2617
|
}
|
2537
2618
|
/**
|
2538
2619
|
*获取提供程序工厂
|
2539
2620
|
*/
|
2540
2621
|
static getProvider() {
|
2541
|
-
return this.create("ProviderFactory",
|
2622
|
+
return this.create("ProviderFactory", is);
|
2542
2623
|
}
|
2543
2624
|
/**
|
2544
|
-
|
2625
|
+
*获取Http请求工厂
|
2545
2626
|
*/
|
2546
|
-
static
|
2547
|
-
return this.create("
|
2627
|
+
static getHttp() {
|
2628
|
+
return this.create("HttpFactory", Ue);
|
2548
2629
|
}
|
2549
2630
|
/**
|
2550
2631
|
*获取签名工厂
|
2551
2632
|
*/
|
2552
2633
|
static getSigner() {
|
2553
|
-
return this.create("SignerFactory",
|
2634
|
+
return this.create("SignerFactory", Te);
|
2554
2635
|
}
|
2555
2636
|
/**
|
2556
2637
|
*获取SSO工厂
|
2557
2638
|
*/
|
2558
2639
|
static getSso() {
|
2559
|
-
return this.create("SsoFactory",
|
2640
|
+
return this.create("SsoFactory", ze);
|
2560
2641
|
}
|
2561
2642
|
//#endregion
|
2562
2643
|
};
|
2563
|
-
|
2564
|
-
let
|
2565
|
-
const
|
2644
|
+
it.mappings = {};
|
2645
|
+
let Ft = it;
|
2646
|
+
const I = Ft;
|
2647
|
+
let as = I.getHttp(), ne = I.getEncoder(), j = {}, os = async () => {
|
2648
|
+
j = await as.getHalo();
|
2649
|
+
};
|
2650
|
+
const Us = /* @__PURE__ */ _({
|
2651
|
+
__name: "Code",
|
2652
|
+
props: {
|
2653
|
+
config: { default: {} },
|
2654
|
+
border: { type: Boolean },
|
2655
|
+
modelValue: {}
|
2656
|
+
},
|
2657
|
+
emits: ["mounted", "change", "scroll", "update:modelValue"],
|
2658
|
+
setup(a, { expose: t, emit: e }) {
|
2659
|
+
let s = e, r = a, { config: n, border: l, modelValue: i } = tt(r), o = null, u = null, c = null, h = H(), g = at(), v = (d) => d == "en" ? null : d, k = (d) => d == "default" ? null : "vs-dark", ht = (d) => {
|
2660
|
+
if (h.editor.completions[d])
|
2661
|
+
return;
|
2662
|
+
let y = o.languages.getLanguages().find((W) => W.id == d);
|
2663
|
+
if (!y)
|
2664
|
+
return;
|
2665
|
+
let A = y.loader;
|
2666
|
+
A && A().then((W) => {
|
2667
|
+
h.editor.completions[d] || (dt(W, d), h.editor.completions[d] = !0);
|
2668
|
+
});
|
2669
|
+
}, dt = (d, y) => o.languages.registerCompletionItemProvider(y, {
|
2670
|
+
provideCompletionItems: (W, Z) => {
|
2671
|
+
let et = W.getWordUntilPosition(Z), ft = {
|
2672
|
+
startLineNumber: Z.lineNumber,
|
2673
|
+
endLineNumber: Z.lineNumber,
|
2674
|
+
startColumn: et.startColumn,
|
2675
|
+
endColumn: et.endColumn
|
2676
|
+
}, Wt = [];
|
2677
|
+
const Jt = ["builtinFunctions", "keywords", "operators"];
|
2678
|
+
for (let Bt = 0; Bt < Jt.length; Bt++) {
|
2679
|
+
const At = Jt[Bt];
|
2680
|
+
let Yt = d.language[At];
|
2681
|
+
Yt && Yt.forEach((Qt) => {
|
2682
|
+
let Xt = Qt.toLowerCase(), $ = {
|
2683
|
+
label: Xt,
|
2684
|
+
kind: null,
|
2685
|
+
insertText: Xt,
|
2686
|
+
range: ft,
|
2687
|
+
documentation: Qt
|
2688
|
+
};
|
2689
|
+
At == "keywords" ? ($.kind = o.languages.CompletionItemKind.Keyword, $.detail = "关键词") : At == "operators" ? ($.kind = o.languages.CompletionItemKind.Operator, $.insertText += " ", $.detail = "操作符") : ($.kind = o.languages.CompletionItemKind.Function, $.insertText += "()", $.detail = "函数"), Wt.push($);
|
2690
|
+
});
|
2691
|
+
}
|
2692
|
+
return { suggestions: Wt };
|
2693
|
+
}
|
2694
|
+
}), jt = () => {
|
2695
|
+
var Z;
|
2696
|
+
let d = null;
|
2697
|
+
n.value.schema && (d = n.value.category + "/" + B.getUniqueId(), h.tryAddSchema(d, n.value.category, n.value.schema));
|
2698
|
+
let y = {
|
2699
|
+
validate: !0,
|
2700
|
+
allowComments: !0,
|
2701
|
+
//允许配置注释
|
2702
|
+
//保证架构配置在当前控件生效,所以需要绑定匹配哪个文件时使用架构
|
2703
|
+
schemas: K.clone(h.editor.schemas),
|
2704
|
+
trailingCommas: "ignore"
|
2705
|
+
//允许末尾逗号
|
2706
|
+
};
|
2707
|
+
o.languages.json.jsonDefaults.setDiagnosticsOptions(y), ht(n.value.language);
|
2708
|
+
let A = d ? o.Uri.parse(d) : null;
|
2709
|
+
c = o.editor.createModel(i.value, n.value.language, A);
|
2710
|
+
let W = {
|
2711
|
+
tabSize: 2,
|
2712
|
+
//Tab缩进大小
|
2713
|
+
detectIndentation: !1,
|
2714
|
+
//根据初始化的内容,自动检测缩进大小
|
2715
|
+
readOnly: n.value.readonly,
|
2716
|
+
lineNumbers: n.value.lineNumbers,
|
2717
|
+
minimap: { enabled: n.value.minimap, showSlider: "always" },
|
2718
|
+
//默认已启用代码图
|
2719
|
+
scrollbar: { verticalScrollbarSize: 0 },
|
2720
|
+
//关闭最右侧垂直滚动条
|
2721
|
+
theme: k(h.theme),
|
2722
|
+
automaticLayout: !0,
|
2723
|
+
//根据父元素自动布局
|
2724
|
+
model: c
|
2725
|
+
};
|
2726
|
+
u = o.editor.create(g.value, W), (Z = n.value.scrollTop) != null && Z.value && u.setScrollTop(n.value.scrollTop.value), u.onDidScrollChange((et) => {
|
2727
|
+
s("scroll", et.scrollTop);
|
2728
|
+
}), u.onDidChangeModelContent((et) => {
|
2729
|
+
let ft = u.getValue();
|
2730
|
+
s("update:modelValue", ft), s("change", ft);
|
2731
|
+
});
|
2732
|
+
};
|
2733
|
+
le(async () => {
|
2734
|
+
o = await bt.init(), g.value && (jt(), s("mounted", o, u));
|
2735
|
+
});
|
2736
|
+
let gt = () => {
|
2737
|
+
u == null || u.layout();
|
2738
|
+
}, b = () => u;
|
2739
|
+
return ie(() => {
|
2740
|
+
c == null || c.dispose(), u == null || u.dispose();
|
2741
|
+
}), P(() => h.theme, (d, y) => {
|
2742
|
+
let A = k(d);
|
2743
|
+
o.editor.setTheme(A);
|
2744
|
+
}), P(() => h.language, (d, y) => {
|
2745
|
+
bt.config({ "vs/nls": { availableLanguages: { "*": v(d) } } });
|
2746
|
+
}), P(() => i.value, (d, y) => {
|
2747
|
+
if (!u)
|
2748
|
+
return;
|
2749
|
+
let A = u.getValue();
|
2750
|
+
d != A && u.setValue(d ?? "");
|
2751
|
+
}), P(() => n.value.language, (d, y) => {
|
2752
|
+
if (!u)
|
2753
|
+
return;
|
2754
|
+
let A = u.getModel();
|
2755
|
+
o.editor.setModelLanguage(A, d), ht(d);
|
2756
|
+
}), t({ layout: gt, getEditor: b }), (d, y) => (z(), M("div", {
|
2757
|
+
ref_key: "monacoEditorRef",
|
2758
|
+
ref: g,
|
2759
|
+
class: Rt(["ha-code", { border: T(l) }])
|
2760
|
+
}, null, 2));
|
2761
|
+
}
|
2762
|
+
}), us = (a, t) => {
|
2763
|
+
const e = a.__vccOpts || a;
|
2764
|
+
for (const [s, r] of t)
|
2765
|
+
e[s] = r;
|
2766
|
+
return e;
|
2767
|
+
}, cs = {}, hs = { class: "ha-col" };
|
2768
|
+
function ds(a, t) {
|
2769
|
+
return z(), M("div", hs, [
|
2770
|
+
It(a.$slots, "default")
|
2771
|
+
]);
|
2772
|
+
}
|
2773
|
+
const Ds = /* @__PURE__ */ us(cs, [["render", ds]]), Ls = /* @__PURE__ */ _({
|
2774
|
+
__name: "Compare",
|
2775
|
+
props: {
|
2776
|
+
inline: { type: Boolean, default: !1 },
|
2777
|
+
language: { type: String },
|
2778
|
+
original: { type: String },
|
2779
|
+
modelValue: { type: String }
|
2780
|
+
},
|
2781
|
+
emits: ["update:modelValue", "update:original", "change"],
|
2782
|
+
setup(a, { emit: t }) {
|
2783
|
+
let e = t, s = a, { inline: r, language: n, original: l, modelValue: i } = tt(s), o = null, u = null, c = null, h = null, g = null, v = null, k = at(), ht = at(), dt = H(), jt = (b) => {
|
2784
|
+
u = b.editor.createModel(l.value, n.value), c = b.editor.createModel(i.value, n.value), o = b.editor.createDiffEditor(k.value, {
|
2785
|
+
originalEditable: !0,
|
2786
|
+
automaticLayout: !0,
|
2787
|
+
renderSideBySide: !r.value,
|
2788
|
+
//是否启用行内模式
|
2789
|
+
theme: gt(dt.theme)
|
2790
|
+
}), o.setModel({ original: u, modified: c }), h = o.getOriginalEditor(), h.onDidChangeModelContent((d) => {
|
2791
|
+
let y = h.getValue();
|
2792
|
+
e("update:original", y), e("change", y);
|
2793
|
+
}), g = o.getModifiedEditor(), g.onDidChangeModelContent((d) => {
|
2794
|
+
let y = g.getValue();
|
2795
|
+
e("update:modelValue", y);
|
2796
|
+
});
|
2797
|
+
}, gt = (b) => b == "default" ? null : "vs-dark";
|
2798
|
+
return bt.init().then((b) => {
|
2799
|
+
v = b, jt(b);
|
2800
|
+
}), P(() => dt.theme, (b, d) => {
|
2801
|
+
let y = gt(b);
|
2802
|
+
v.editor.setTheme(y);
|
2803
|
+
}), P(() => n.value, (b, d) => {
|
2804
|
+
u && v.editor.setModelLanguage(u, b), c && v.editor.setModelLanguage(c, b);
|
2805
|
+
}), P(() => l.value, (b, d) => {
|
2806
|
+
if (!u)
|
2807
|
+
return;
|
2808
|
+
let y = u.getValue();
|
2809
|
+
b != y && u.setValue(b ?? "");
|
2810
|
+
}), P(() => i.value, (b, d) => {
|
2811
|
+
if (!c)
|
2812
|
+
return;
|
2813
|
+
let y = c.getValue();
|
2814
|
+
b != y && c.setValue(b ?? "");
|
2815
|
+
}), (b, d) => (z(), M("div", {
|
2816
|
+
ref_key: "compareRef",
|
2817
|
+
ref: k,
|
2818
|
+
class: "ha-compare",
|
2819
|
+
style: Vt(T(ht))
|
2820
|
+
}, null, 4));
|
2821
|
+
}
|
2822
|
+
}), $s = /* @__PURE__ */ _({
|
2823
|
+
__name: "Container",
|
2824
|
+
props: {
|
2825
|
+
container: { type: Boolean, default: !0 }
|
2826
|
+
},
|
2827
|
+
setup(a) {
|
2828
|
+
let t = a, { container: e } = tt(t);
|
2829
|
+
return (s, r) => (z(), M("div", {
|
2830
|
+
class: Rt({ "ha-container": T(e) })
|
2831
|
+
}, [
|
2832
|
+
It(s.$slots, "default")
|
2833
|
+
], 2));
|
2834
|
+
}
|
2835
|
+
}), gs = { class: "ha-empty" }, fs = { class: "empty-message" }, ms = {
|
2836
|
+
key: 0,
|
2837
|
+
class: "empty-content"
|
2838
|
+
}, Ns = /* @__PURE__ */ _({
|
2839
|
+
__name: "Empty",
|
2840
|
+
props: {
|
2841
|
+
message: { type: String, default: "暂无数据" },
|
2842
|
+
hasData: Boolean
|
2843
|
+
},
|
2844
|
+
setup(a) {
|
2845
|
+
let t = a, { message: e, hasData: s } = tt(t);
|
2846
|
+
return (r, n) => (z(), M("div", gs, [
|
2847
|
+
me("div", fs, pe(T(e)), 1),
|
2848
|
+
T(s) ? (z(), M("div", ms, [
|
2849
|
+
It(r.$slots, "default")
|
2850
|
+
])) : ae("", !0)
|
2851
|
+
]));
|
2852
|
+
}
|
2853
|
+
}), Ps = /* @__PURE__ */ _({
|
2854
|
+
__name: "Progress",
|
2855
|
+
props: {
|
2856
|
+
modelValue: Boolean
|
2857
|
+
},
|
2858
|
+
setup(a) {
|
2859
|
+
let t = a, { modelValue: e } = tt(t), s = at(!0), r = at(0), n = null, l = () => {
|
2860
|
+
r.value = 0, s.value = !0, n = setInterval(() => {
|
2861
|
+
if (r.value < 100) {
|
2862
|
+
r.value++;
|
2863
|
+
return;
|
2864
|
+
}
|
2865
|
+
clearInterval(n);
|
2866
|
+
}, 50);
|
2867
|
+
}, i = () => {
|
2868
|
+
clearInterval(n);
|
2869
|
+
let o = 100 - r.value, u = 200, c = 20, h = o / (u / c), g = setInterval(() => {
|
2870
|
+
r.value += h, !(r.value < 100) && (r.value = 100, clearInterval(g), setTimeout(() => {
|
2871
|
+
s.value = !1;
|
2872
|
+
}, 200));
|
2873
|
+
}, c);
|
2874
|
+
};
|
2875
|
+
return le(() => {
|
2876
|
+
e.value && l();
|
2877
|
+
}), ie(() => {
|
2878
|
+
clearInterval(n);
|
2879
|
+
}), P(() => e.value, (o, u) => {
|
2880
|
+
o ? l() : i();
|
2881
|
+
}), (o, u) => T(s) ? (z(), M("div", {
|
2882
|
+
key: 0,
|
2883
|
+
class: "ha-progress",
|
2884
|
+
style: Vt({ width: T(r) + "%" })
|
2885
|
+
}, null, 4)) : ae("", !0);
|
2886
|
+
}
|
2887
|
+
}), Ts = /* @__PURE__ */ _({
|
2888
|
+
__name: "Row",
|
2889
|
+
props: {
|
2890
|
+
gap: {},
|
2891
|
+
direction: {}
|
2892
|
+
},
|
2893
|
+
setup(a) {
|
2894
|
+
let t = a, { gap: e, direction: s } = tt(t), r = ye(() => {
|
2895
|
+
let n = { gap: null };
|
2896
|
+
return e.value && (n.gap = e.value + "px"), n;
|
2897
|
+
});
|
2898
|
+
return (n, l) => (z(), M("div", {
|
2899
|
+
class: Rt(["ha-row", T(s)]),
|
2900
|
+
style: Vt(T(r))
|
2901
|
+
}, [
|
2902
|
+
It(n.$slots, "default")
|
2903
|
+
], 6));
|
2904
|
+
}
|
2905
|
+
});
|
2906
|
+
class Fs {
|
2907
|
+
/**
|
2908
|
+
* 初始化,并绑定自动关闭上下文菜单事件
|
2909
|
+
*/
|
2910
|
+
constructor(t, e = null) {
|
2911
|
+
if (this.closeTriggers = [], this.close = () => {
|
2912
|
+
this.container && (this.container.style.display = "none");
|
2913
|
+
}, this.show = (s) => {
|
2914
|
+
let n = V.parentAbsolute(this.container).getBoundingClientRect(), l = s.clientX - n.left, i = s.clientY - n.top - 2;
|
2915
|
+
this.container.style.display = "block", this.container.style.left = l + "px", this.container.style.top = i + "px";
|
2916
|
+
}, this.dispose = () => {
|
2917
|
+
for (let s = 0; s < this.closeTriggers.length; s++) {
|
2918
|
+
let r = this.closeTriggers[s];
|
2919
|
+
vt.unbind(["click", "scroll"], r, this.close);
|
2920
|
+
}
|
2921
|
+
this.container != null && this.container.removeEventListener("click", this.close), this.container = null, this.closeTriggers = [];
|
2922
|
+
}, t != null && (this.container = t, this.container.addEventListener("click", this.close), e)) {
|
2923
|
+
this.closeTriggers.push(...e);
|
2924
|
+
for (let s = 0; s < this.closeTriggers.length; s++) {
|
2925
|
+
let r = this.closeTriggers[s];
|
2926
|
+
vt.bind(["click", "scroll"], r, this.close);
|
2927
|
+
}
|
2928
|
+
}
|
2929
|
+
}
|
2930
|
+
}
|
2931
|
+
class Rs {
|
2932
|
+
constructor() {
|
2933
|
+
this.events = {}, this.add = (t, e, s, r, n, l) => {
|
2934
|
+
let i = this.events[r];
|
2935
|
+
i || (i = function(o) {
|
2936
|
+
s(o) && (e && e(o), n && o.preventDefault());
|
2937
|
+
}, this.events[r] = i), t.addEventListener(l, i);
|
2938
|
+
}, this.remove = (t, e, s) => {
|
2939
|
+
t.removeEventListener(s, this.events[e]), this.events[e] = null;
|
2940
|
+
}, this.keydown = (t, e, s, r, n = !1) => {
|
2941
|
+
this.add(t, e, s, r, n, "keydown");
|
2942
|
+
}, this.removeKeydown = (t, e) => {
|
2943
|
+
this.remove(t, e, "keydown");
|
2944
|
+
}, this.ctrlS = (t, e) => {
|
2945
|
+
this.keydown(t, e, (s) => s.ctrlKey && s.key == "s", "ctrlS", !0);
|
2946
|
+
}, this.removeCtrlS = (t) => {
|
2947
|
+
this.removeKeydown(t, "ctrlS");
|
2948
|
+
}, this.ctrlEnter = (t, e) => {
|
2949
|
+
this.keydown(t, e, (s) => s.ctrlKey && s.key == "Enter", "ctrlEnter");
|
2950
|
+
}, this.removeCtrlEnter = (t) => {
|
2951
|
+
this.removeKeydown(t, "ctrlEnter");
|
2952
|
+
}, this.lastKeyTime = null, this.isKeyLastUp = !1, this.doubleKey = (t, e, s, r = !1) => {
|
2953
|
+
this.keydown(t, e, (n) => {
|
2954
|
+
if (n.key != s)
|
2955
|
+
return !1;
|
2956
|
+
let l = (/* @__PURE__ */ new Date()).getTime(), i = l - this.lastKeyTime;
|
2957
|
+
return this.lastKeyTime = l, i < 200 && this.isKeyLastUp;
|
2958
|
+
}, "double" + s, r), this.keyup(t, () => {
|
2959
|
+
this.isKeyLastUp = !0;
|
2960
|
+
}, (n) => n.key == s ? !0 : (this.isKeyLastUp = !1, !1), "double" + s + ".keyup");
|
2961
|
+
}, this.removeDoubleKey = (t, e) => {
|
2962
|
+
this.removeKeydown(t, "double" + e), this.removeKeyup(t, "double" + e + ".keyup");
|
2963
|
+
}, this.keyup = (t, e, s, r, n = !1) => {
|
2964
|
+
this.add(t, e, s, r, n, "keyup");
|
2965
|
+
}, this.removeKeyup = (t, e) => {
|
2966
|
+
this.remove(t, e, "keyup");
|
2967
|
+
}, this.isCtrl = !1, this.ctrl = (t) => {
|
2968
|
+
this.keydown(t, () => this.isCtrl = !0, (e) => e.ctrlKey, "ctrlDown"), this.keyup(t, () => this.isCtrl = !1, (e) => e.key == "Control", "ctrlUp");
|
2969
|
+
}, this.removeCtrl = (t) => {
|
2970
|
+
this.removeKeydown(t, "ctrlDown"), this.removeKeyup(t, "ctrlUp");
|
2971
|
+
}, this.timer = null, this.touchStart = null, this.touch = (t, e) => {
|
2972
|
+
this.touchStart = function(s) {
|
2973
|
+
debugger;
|
2974
|
+
return this.timer = setTimeout(() => {
|
2975
|
+
s.preventDefault(), e();
|
2976
|
+
}, 800), !0;
|
2977
|
+
}, t.addEventListener("touchstart", this.touchStart), t.addEventListener("touchmove", this.touchEnd), t.addEventListener("touchend", this.touchEnd);
|
2978
|
+
}, this.removeTouch = (t) => {
|
2979
|
+
debugger;
|
2980
|
+
t.removeEventListener("touchstart", this.touchStart), t.removeEventListener("touchmove", this.touchEnd), t.removeEventListener("touchend", this.touchEnd);
|
2981
|
+
};
|
2982
|
+
}
|
2983
|
+
touchEnd() {
|
2984
|
+
clearTimeout(this.timer);
|
2985
|
+
}
|
2986
|
+
}
|
2987
|
+
class Vs {
|
2988
|
+
constructor() {
|
2989
|
+
this.resizeObserver = null, this.resizeHandler = null, this.resize = (t, e, s = 100) => {
|
2990
|
+
this.resizeHandler = (r) => {
|
2991
|
+
this.debounce(e, s, r);
|
2992
|
+
}, this.resizeObserver = new ResizeObserver(this.resizeHandler), this.resizeObserver.observe(t);
|
2993
|
+
}, this.unresize = (t) => {
|
2994
|
+
this.resizeObserver && this.resizeObserver.unobserve(t);
|
2995
|
+
}, this.debounce = (t, e, s = null) => {
|
2996
|
+
this.lastDebounceTime == null && (this.lastDebounceTime = q.getTimestamp());
|
2997
|
+
let r = q.getTimestamp();
|
2998
|
+
this.lastDebounceTimeout != null && clearTimeout(this.lastDebounceTimeout), this.lastDebounceTimeout = setTimeout(t, e, s), this.lastDebounceTime = r;
|
2999
|
+
}, this.clearDebounce = () => {
|
3000
|
+
clearTimeout(this.lastDebounceTimeout);
|
3001
|
+
}, this.throttle = () => {
|
3002
|
+
};
|
3003
|
+
}
|
3004
|
+
}
|
3005
|
+
let Ks = async (a) => {
|
3006
|
+
Se(a), await os();
|
3007
|
+
};
|
2566
3008
|
export {
|
2567
|
-
|
2568
|
-
|
2569
|
-
|
2570
|
-
|
2571
|
-
|
2572
|
-
|
2573
|
-
|
2574
|
-
|
2575
|
-
|
2576
|
-
|
2577
|
-
|
2578
|
-
|
2579
|
-
|
2580
|
-
|
2581
|
-
|
2582
|
-
|
2583
|
-
|
2584
|
-
|
2585
|
-
|
2586
|
-
|
2587
|
-
|
2588
|
-
|
2589
|
-
|
2590
|
-
|
2591
|
-
|
2592
|
-
|
2593
|
-
|
2594
|
-
|
3009
|
+
rt as ArrayHelper,
|
3010
|
+
Os as ComponentHelper,
|
3011
|
+
Is as CookieHelper,
|
3012
|
+
wt as DictionaryHelper,
|
3013
|
+
V as DomHelper,
|
3014
|
+
I as DriverFactory,
|
3015
|
+
vt as EventHelper,
|
3016
|
+
Vs as EventUtility,
|
3017
|
+
ke as ExcelFactory,
|
3018
|
+
es as FeatureFactory,
|
3019
|
+
St as FileHelper,
|
3020
|
+
Us as HaCode,
|
3021
|
+
Ds as HaCol,
|
3022
|
+
Ls as HaCompare,
|
3023
|
+
$s as HaContainer,
|
3024
|
+
Ns as HaEmpty,
|
3025
|
+
Ps as HaProgress,
|
3026
|
+
Ts as HaRow,
|
3027
|
+
Ae as HaloHttp,
|
3028
|
+
ns as HasherFactory,
|
3029
|
+
Gt as HtmlHelper,
|
3030
|
+
Ue as HttpFactory,
|
3031
|
+
Ie as HttpRequest,
|
3032
|
+
re as HttpResponse,
|
3033
|
+
As as I18nHelper,
|
3034
|
+
Zt as ImageHelper,
|
3035
|
+
ut as JsonHelper,
|
3036
|
+
Rs as KeyboardUtility,
|
3037
|
+
Ht as MathHelper,
|
3038
|
+
_t as MicroHelper,
|
3039
|
+
xt as MountHelper,
|
3040
|
+
Fs as MouseUtility,
|
3041
|
+
K as ObjectHelper,
|
3042
|
+
is as ProviderFactory,
|
3043
|
+
kt as ScriptHelper,
|
3044
|
+
ee as ScrollHelper,
|
3045
|
+
mt as SettingService,
|
3046
|
+
Oe as SignHelper,
|
3047
|
+
Te as SignerFactory,
|
3048
|
+
ze as SsoFactory,
|
3049
|
+
E as StorageHelper,
|
3050
|
+
B as StringHelper,
|
3051
|
+
te as TaskHelper,
|
3052
|
+
q as TimeHelper,
|
3053
|
+
Ct as TreeHelper,
|
3054
|
+
x as TypeHelper,
|
3055
|
+
O as UrlHelper,
|
3056
|
+
Ks as createHalo,
|
3057
|
+
ne as encoderFactory,
|
3058
|
+
j as http,
|
3059
|
+
as as httpFactory,
|
3060
|
+
js as loadEcharts,
|
3061
|
+
bt as loader,
|
3062
|
+
pt as messager,
|
3063
|
+
N as moment,
|
3064
|
+
os as setHttp,
|
3065
|
+
Se as setMessager,
|
3066
|
+
H as useConfigStore,
|
3067
|
+
Bs as useDriverStore,
|
3068
|
+
Ce as useEnvStore,
|
3069
|
+
se as useLogStore,
|
3070
|
+
ue as useSettingStore,
|
3071
|
+
Ee as useSocketStore,
|
3072
|
+
ce as useUserStore
|
2595
3073
|
};
|