nhanh-pure-function 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,208 +1,106 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".no-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
2
- var ct = Object.defineProperty;
2
+ var at = Object.defineProperty;
3
3
  var et = (n) => {
4
4
  throw TypeError(n);
5
5
  };
6
- var at = (n, t, e) => t in n ? ct(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
7
- var F = (n, t, e) => at(n, typeof t != "symbol" ? t + "" : t, e), nt = (n, t, e) => t.has(n) || et("Cannot " + e);
8
- var a = (n, t, e) => (nt(n, t, "read from private field"), e ? e.call(n) : t.get(n)), h = (n, t, e) => t.has(n) ? et("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, e), f = (n, t, e, r) => (nt(n, t, "write to private field"), r ? r.call(n, e) : t.set(n, e), e);
9
- function bt(n, t = 500) {
10
- let e, r = !0;
11
- function o(i) {
12
- if (!r) return;
13
- e || (e = i);
14
- let s = Math.min((i - e) / t, 1);
15
- n(s), i - e < t && requestAnimationFrame(o);
6
+ var lt = (n, e, t) => e in n ? at(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
7
+ var C = (n, e, t) => lt(n, typeof e != "symbol" ? e + "" : e, t), nt = (n, e, t) => e.has(n) || et("Cannot " + t);
8
+ var u = (n, e, t) => (nt(n, e, "read from private field"), t ? t.call(n) : e.get(n)), f = (n, e, t) => e.has(n) ? et("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(n) : e.set(n, t), m = (n, e, t, i) => (nt(n, e, "write to private field"), i ? i.call(n, t) : e.set(n, t), t);
9
+ function _t(n, e = 500) {
10
+ let t, i = !0;
11
+ function o(r) {
12
+ if (!i) return;
13
+ t || (t = r);
14
+ let c = Math.min((r - t) / e, 1);
15
+ n(c), r - t < e && requestAnimationFrame(o);
16
16
  }
17
- return requestAnimationFrame(o), () => r = !1;
17
+ return requestAnimationFrame(o), () => i = !1;
18
18
  }
19
- function _t(n, t, e, r, o = 2) {
20
- let i = n, s = !1, c = 1, u = n, l = t, m = e;
19
+ function Et(n, e, t, i, o = 2) {
20
+ let r = n, c = !1, s = 1, a = n, l = e, h = t;
21
21
  const d = () => {
22
- const w = (l - u) / m;
23
- return Number(w.toFixed(o));
22
+ const v = (l - a) / h;
23
+ return Number(v.toFixed(o));
24
24
  };
25
- let g = d();
26
- const v = (w) => Math.min(Math.max(w, u), l), E = (w) => Number(w.toFixed(o)), T = (w, W, V) => {
27
- const R = [];
28
- return w >= W && R.push("最小值必须小于最大值"), V <= 0 ? R.push("分段数必须为正数") : d() == 0 && R.push("数值精度过低,致使动画步长为 0"), R;
29
- }, k = (w, W, V) => {
30
- const R = T(w, W, V);
31
- return R.length > 0 ? (console.error(`参数更新失败: ${R.join("; ")}`), !1) : (u = w, l = W, m = V, g = d(), i = v(i), !0);
25
+ let p = d();
26
+ const y = (v) => Math.min(Math.max(v, a), l), w = (v) => Number(v.toFixed(o)), P = (v, W, V) => {
27
+ const I = [];
28
+ return v >= W && I.push("最小值必须小于最大值"), V <= 0 ? I.push("分段数必须为正数") : d() == 0 && I.push("数值精度过低,致使动画步长为 0"), I;
29
+ }, k = (v, W, V) => {
30
+ const I = P(v, W, V);
31
+ return I.length > 0 ? (console.error(`参数更新失败: ${I.join("; ")}`), !1) : (a = v, l = W, h = V, p = d(), r = y(r), !0);
32
32
  }, H = () => {
33
- s && (c = i >= l ? -1 : i <= u ? 1 : c, i = v(i + g * c), r(E(i)), requestAnimationFrame(H));
33
+ c && (s = r >= l ? -1 : r <= a ? 1 : s, r = y(r + p * s), i(w(r)), requestAnimationFrame(H));
34
34
  };
35
35
  return {
36
36
  /** 启动/继续动画 */
37
- play(w = i) {
38
- if (i = v(w), T(u, l, m).length)
37
+ play(v = r) {
38
+ if (r = y(v), P(a, l, h).length)
39
39
  return console.error("配置参数错误", this.getParams());
40
- s || (s = !0, H());
40
+ c || (c = !0, H());
41
41
  },
42
42
  /** 暂停动画 */
43
43
  pause() {
44
- s = !1;
44
+ c = !1;
45
45
  },
46
46
  /** 获取当前值 */
47
- getCurrent: () => E(i),
47
+ getCurrent: () => w(r),
48
48
  /** 是否正在运行 */
49
- isPlaying: () => s,
49
+ isPlaying: () => c,
50
50
  /** 更新参数(不中断动画) */
51
51
  updateParams: k,
52
52
  /** 获取当前参数 */
53
- getParams: () => ({ min: u, max: l, steps: m, precision: o, stepSize: g })
53
+ getParams: () => ({ min: a, max: l, steps: h, precision: o, stepSize: p })
54
54
  };
55
55
  }
56
- function Mt(n, t, e, r, o = 2) {
57
- if (e <= 0) return console.error("动画步数 必须为正数");
58
- const i = (d) => Number(d.toFixed(o)), s = t - n, c = i(Math.abs(s) / e);
59
- if (c === 0) return console.error("数值精度过低,致使动画步长为 0");
60
- const u = Math.sign(s);
56
+ function Mt(n, e, t, i, o = 2) {
57
+ if (t <= 0) return console.error("动画步数 必须为正数");
58
+ const r = (d) => Number(d.toFixed(o)), c = e - n, s = r(Math.abs(c) / t);
59
+ if (s === 0) return console.error("数值精度过低,致使动画步长为 0");
60
+ const a = Math.sign(c);
61
61
  let l = n;
62
- const m = () => {
63
- l = i(l + c * u), (u > 0 ? l < t : l > t) ? (r(l), requestAnimationFrame(m)) : r(t);
62
+ const h = () => {
63
+ l = r(l + s * a), (a > 0 ? l < e : l > e) ? (i(l), requestAnimationFrame(h)) : i(e);
64
64
  };
65
- m();
65
+ h();
66
66
  }
67
- function Et(n, t = "image/png") {
67
+ function Ct(n, e = "image/png") {
68
68
  try {
69
- let e, r = t;
69
+ let t, i = e;
70
70
  if (n instanceof File)
71
71
  return URL.createObjectURL(n);
72
72
  if (typeof n == "string") {
73
- let i = n;
74
- const s = i.match(/^data:([^;]*)(;base64)?,(.*)$/i);
75
- if (s) {
76
- if (!s[2])
73
+ let r = n;
74
+ const c = r.match(/^data:([^;]*)(;base64)?,(.*)$/i);
75
+ if (c) {
76
+ if (!c[2])
77
77
  return console.error("无效的数据 URL:缺少 base64 编码声明");
78
- if (r = s[1] || r, i = s[3], !i)
78
+ if (i = c[1] || i, r = c[3], !r)
79
79
  return console.error("数据 URL 包含空有效负载");
80
80
  }
81
- i = i.replace(/[^A-Za-z0-9+/=]/g, "");
82
- const c = atob(i);
83
- e = new Uint8Array(c.length);
84
- for (let u = 0; u < c.length; u++)
85
- e[u] = c.charCodeAt(u);
81
+ r = r.replace(/[^A-Za-z0-9+/=]/g, "");
82
+ const s = atob(r);
83
+ t = new Uint8Array(s.length);
84
+ for (let a = 0; a < s.length; a++)
85
+ t[a] = s.charCodeAt(a);
86
86
  } else if (n instanceof ArrayBuffer)
87
- e = new Uint8Array(n);
87
+ t = new Uint8Array(n);
88
88
  else if (n instanceof Uint8Array)
89
- e = n;
89
+ t = n;
90
90
  else
91
91
  return console.error(
92
92
  "不支持的数据类型。应为 Base64 字符串、ArrayBuffer 或 Uint8Array"
93
93
  );
94
- const o = new Blob([e], { type: r });
94
+ const o = new Blob([t], { type: i });
95
95
  return URL.createObjectURL(o);
96
- } catch (e) {
96
+ } catch (t) {
97
97
  return console.error(
98
98
  "数据到 ImageURL 的转换失败:",
99
- e.message,
100
- e.stack || "没有可用的堆栈跟踪"
99
+ t.message,
100
+ t.stack || "没有可用的堆栈跟踪"
101
101
  ), null;
102
102
  }
103
103
  }
104
- function Ft(n, t = 10) {
105
- let e = 0, r = t;
106
- function o() {
107
- if (r > 0)
108
- r--, requestAnimationFrame(o);
109
- else {
110
- const s = (+/* @__PURE__ */ new Date() - e) / t, c = 1e3 / s;
111
- n(Number(c.toFixed(2)), Number(s.toFixed(2)));
112
- }
113
- }
114
- requestAnimationFrame(() => {
115
- e = +/* @__PURE__ */ new Date(), o();
116
- });
117
- }
118
- function Ct(n) {
119
- const t = () => Promise.resolve(), e = (c) => (console.error(c), Promise.reject(c));
120
- function r() {
121
- return navigator.clipboard.writeText(n).then(t).catch(e);
122
- }
123
- function o() {
124
- const c = document.createElement("div");
125
- c.innerText = n, document.body.appendChild(c);
126
- const u = document.createRange();
127
- u.selectNodeContents(c);
128
- const l = window.getSelection();
129
- let m = !1;
130
- return l && (l.removeAllRanges(), l.addRange(u), m = document.execCommand("copy")), document.body.removeChild(c), m ? Promise.resolve() : Promise.reject();
131
- }
132
- function i() {
133
- const c = document.createElement("textarea");
134
- c.value = n, document.body.appendChild(c), c.select(), c.setSelectionRange(0, n.length);
135
- let u = !1;
136
- return document.activeElement === c && (u = document.execCommand("Copy", !0)), document.body.removeChild(c), u ? Promise.resolve() : Promise.reject();
137
- }
138
- function s() {
139
- return o().then(t).catch(() => {
140
- i().then(t).catch(() => e("复制方式尽皆失效"));
141
- });
142
- }
143
- return navigator.clipboard ? r().catch(s) : s();
144
- }
145
- class lt {
146
- /** 请使用静态方法 */
147
- constructor() {
148
- }
149
- /** 添加已有窗口 */
150
- static add(t, e) {
151
- this.keys.set(t, e);
152
- }
153
- /**
154
- * 根据键打开或聚焦窗口
155
- * @param key 窗口的唯一键
156
- * @param url 要打开的URL
157
- * @param target 窗口的目标
158
- * @param windowFeatures 新窗口的特性
159
- * @returns 返回已打开或新打开的窗口
160
- */
161
- static open(t, e, r, o) {
162
- const i = this.keys.get(t);
163
- if (i && !i.closed)
164
- return i.focus(), i;
165
- {
166
- const s = window.open(e, r, o);
167
- if (s)
168
- return this.keys.set(t, s), s;
169
- console.error("window.open failed: 可能是浏览器阻止了弹出窗口"), this.keys.delete(t);
170
- }
171
- }
172
- /**
173
- * 检查指定键的窗口是否打开
174
- * @param key 窗口的唯一键
175
- * @returns 如果窗口打开则返回true,否则返回false
176
- */
177
- static isOpen(t) {
178
- const e = this.keys.get(t);
179
- return e != null && e.closed && this.keys.delete(t), this.keys.has(t);
180
- }
181
- /**
182
- * 获取与指定键关联的窗口
183
- * @param key 窗口的唯一键
184
- * @returns 返回对应的窗口,如果窗口已关闭则返回undefined
185
- */
186
- static getWindow(t) {
187
- if (this.isOpen(t)) return this.keys.get(t);
188
- }
189
- /**
190
- * 关闭与指定键关联的窗口
191
- * @param key 窗口的唯一键
192
- */
193
- static close(t) {
194
- const e = this.keys.get(t);
195
- e && (e.close(), this.keys.delete(t));
196
- }
197
- /**
198
- * 关闭所有打开的窗口并清空Map
199
- */
200
- static closeAll() {
201
- this.keys.forEach((t, e) => t.close()), this.keys.clear();
202
- }
203
- }
204
- // 存储键与对应窗口的Map
205
- F(lt, "keys", /* @__PURE__ */ new Map());
206
104
  const ut = {
207
105
  ".mp3": "audio/mpeg",
208
106
  ".mp4": "video/mp4",
@@ -265,7 +163,7 @@ const ut = {
265
163
  ".otf": "font/otf",
266
164
  ".eot": "application/vnd.ms-fontobject",
267
165
  ".map": "application/json"
268
- }, J = {
166
+ }, Q = {
269
167
  image: [
270
168
  ".jpg",
271
169
  ".jpeg",
@@ -445,7 +343,7 @@ const ut = {
445
343
  ".awk",
446
344
  ".php"
447
345
  ]
448
- }, rt = [
346
+ }, it = [
449
347
  "",
450
348
  "万",
451
349
  "亿",
@@ -459,130 +357,308 @@ const ut = {
459
357
  "正",
460
358
  "载",
461
359
  "极"
462
- ];
360
+ ], st = {
361
+ // 北美标准尺寸 (毫米)
362
+ Letter: { width: 215.9, height: 279.4 },
363
+ // 8.5 × 11 英寸
364
+ Legal: { width: 215.9, height: 355.6 },
365
+ // 8.5 × 14 英寸
366
+ Tabloid: { width: 279.4, height: 431.8 },
367
+ // 11 × 17 英寸
368
+ Ledger: { width: 431.8, height: 279.4 },
369
+ // 17 × 11 英寸
370
+ Executive: { width: 184.2, height: 266.7 },
371
+ // 7.25 × 10.5 英寸
372
+ // 其他常见尺寸
373
+ Folio: { width: 215.9, height: 330.2 },
374
+ // 8.5 × 13 英寸
375
+ Quarto: { width: 215, height: 275 },
376
+ // 8.46 × 10.83 英寸
377
+ "Government-Letter": { width: 203.2, height: 266.7 },
378
+ // 8 × 10.5 英寸
379
+ // ISO A系列 (毫米)
380
+ A0: { width: 841, height: 1189 },
381
+ A1: { width: 594, height: 841 },
382
+ A2: { width: 420, height: 594 },
383
+ A3: { width: 297, height: 420 },
384
+ A4: { width: 210, height: 297 },
385
+ A5: { width: 148, height: 210 },
386
+ A6: { width: 105, height: 148 },
387
+ A7: { width: 74, height: 105 },
388
+ A8: { width: 52, height: 74 },
389
+ A9: { width: 37, height: 52 },
390
+ A10: { width: 26, height: 37 },
391
+ // ISO B系列 (毫米)
392
+ B0: { width: 1e3, height: 1414 },
393
+ B1: { width: 707, height: 1e3 },
394
+ B2: { width: 500, height: 707 },
395
+ B3: { width: 353, height: 500 },
396
+ B4: { width: 250, height: 353 },
397
+ B5: { width: 176, height: 250 },
398
+ B6: { width: 125, height: 176 },
399
+ B7: { width: 88, height: 125 },
400
+ B8: { width: 62, height: 88 },
401
+ B9: { width: 44, height: 62 },
402
+ B10: { width: 31, height: 44 },
403
+ // ISO C系列 (信封尺寸,毫米)
404
+ C0: { width: 917, height: 1297 },
405
+ C1: { width: 648, height: 917 },
406
+ C2: { width: 458, height: 648 },
407
+ C3: { width: 324, height: 458 },
408
+ C4: { width: 229, height: 324 },
409
+ C5: { width: 162, height: 229 },
410
+ C6: { width: 114, height: 162 },
411
+ C7: { width: 81, height: 114 },
412
+ C8: { width: 57, height: 81 }
413
+ };
414
+ Object.keys(st).map(
415
+ (n) => ({
416
+ value: n,
417
+ label: n
418
+ })
419
+ );
420
+ function Ft(n, e = 10) {
421
+ let t = 0, i = e;
422
+ function o() {
423
+ if (i > 0)
424
+ i--, requestAnimationFrame(o);
425
+ else {
426
+ const c = (+/* @__PURE__ */ new Date() - t) / e, s = 1e3 / c;
427
+ n(Number(s.toFixed(2)), Number(c.toFixed(2)));
428
+ }
429
+ }
430
+ requestAnimationFrame(() => {
431
+ t = +/* @__PURE__ */ new Date(), o();
432
+ });
433
+ }
463
434
  function Lt(n) {
435
+ const e = () => Promise.resolve(), t = (s) => (console.error(s), Promise.reject(s));
436
+ function i() {
437
+ return navigator.clipboard.writeText(n).then(e).catch(t);
438
+ }
439
+ function o() {
440
+ const s = document.createElement("div");
441
+ s.innerText = n, document.body.appendChild(s);
442
+ const a = document.createRange();
443
+ a.selectNodeContents(s);
444
+ const l = window.getSelection();
445
+ let h = !1;
446
+ return l && (l.removeAllRanges(), l.addRange(a), h = document.execCommand("copy")), document.body.removeChild(s), h ? Promise.resolve() : Promise.reject();
447
+ }
448
+ function r() {
449
+ const s = document.createElement("textarea");
450
+ s.value = n, document.body.appendChild(s), s.select(), s.setSelectionRange(0, n.length);
451
+ let a = !1;
452
+ return document.activeElement === s && (a = document.execCommand("Copy", !0)), document.body.removeChild(s), a ? Promise.resolve() : Promise.reject();
453
+ }
454
+ function c() {
455
+ return o().then(e).catch(() => {
456
+ r().then(e).catch(() => t("复制方式尽皆失效"));
457
+ });
458
+ }
459
+ return navigator.clipboard ? i().catch(c) : c();
460
+ }
461
+ class ht {
462
+ /** 请使用静态方法 */
463
+ constructor() {
464
+ }
465
+ /** 添加已有窗口 */
466
+ static add(e, t) {
467
+ this.keys.set(e, t);
468
+ }
469
+ /**
470
+ * 根据键打开或聚焦窗口
471
+ * @param key 窗口的唯一键
472
+ * @param url 要打开的URL
473
+ * @param target 窗口的目标
474
+ * @param windowFeatures 新窗口的特性
475
+ * @returns 返回已打开或新打开的窗口
476
+ */
477
+ static open(e, t, i, o) {
478
+ const r = this.keys.get(e);
479
+ if (r && !r.closed)
480
+ return r.focus(), r;
481
+ {
482
+ const c = window.open(t, i, o);
483
+ if (c)
484
+ return this.keys.set(e, c), c;
485
+ console.error("window.open failed: 可能是浏览器阻止了弹出窗口"), this.keys.delete(e);
486
+ }
487
+ }
488
+ /**
489
+ * 检查指定键的窗口是否打开
490
+ * @param key 窗口的唯一键
491
+ * @returns 如果窗口打开则返回true,否则返回false
492
+ */
493
+ static isOpen(e) {
494
+ const t = this.keys.get(e);
495
+ return t != null && t.closed && this.keys.delete(e), this.keys.has(e);
496
+ }
497
+ /**
498
+ * 获取与指定键关联的窗口
499
+ * @param key 窗口的唯一键
500
+ * @returns 返回对应的窗口,如果窗口已关闭则返回undefined
501
+ */
502
+ static getWindow(e) {
503
+ if (this.isOpen(e)) return this.keys.get(e);
504
+ }
505
+ /**
506
+ * 关闭与指定键关联的窗口
507
+ * @param key 窗口的唯一键
508
+ */
509
+ static close(e) {
510
+ const t = this.keys.get(e);
511
+ t && (t.close(), this.keys.delete(e));
512
+ }
513
+ /**
514
+ * 关闭所有打开的窗口并清空Map
515
+ */
516
+ static closeAll() {
517
+ this.keys.forEach((e, t) => e.close()), this.keys.clear();
518
+ }
519
+ }
520
+ // 存储键与对应窗口的Map
521
+ C(ht, "keys", /* @__PURE__ */ new Map());
522
+ function Pt(n, e) {
523
+ const t = st[n];
524
+ if (!t) throw new Error(`未知纸张类型: ${n}`);
525
+ const { width: i, height: o } = t, r = (w) => w / 25.4, s = typeof window < "u" ? window.devicePixelRatio * 96 : 300, a = (w) => Math.round(r(w) * s), l = a(i), h = a(o), d = a(e), p = Math.max(0, l - 2 * d), y = Math.max(0, h - 2 * d);
526
+ return {
527
+ /** 内容宽度(像素) */
528
+ contentWidth: p,
529
+ /** 内容高度(像素) */
530
+ contentHeight: y,
531
+ /** 边距(像素) */
532
+ paddingPx: d,
533
+ /** 纸张宽度(像素) */
534
+ paperWidthPx: l,
535
+ /** 纸张高度(像素) */
536
+ paperHeightPx: h
537
+ };
538
+ }
539
+ function Tt(n) {
464
540
  return n.charAt(0).toUpperCase() + n.slice(1);
465
541
  }
466
- function Tt(n, t, e = 2) {
467
- return !Number.isFinite(n) || !Number.isFinite(t) || !Number.isFinite(e) ? (console.error("所有参数必须是有限的数字"), "") : t === 0 ? (console.error("分母不能为零"), "") : e < 0 ? (console.error("小数位数不能为负数"), "") : (n / t * 100).toFixed(e) + "%";
542
+ function At(n, e, t = 2) {
543
+ return !Number.isFinite(n) || !Number.isFinite(e) || !Number.isFinite(t) ? (console.error("所有参数必须是有限的数字"), "") : e === 0 ? (console.error("分母不能为零"), "") : t < 0 ? (console.error("小数位数不能为负数"), "") : (n / e * 100).toFixed(t) + "%";
468
544
  }
469
- function Pt(n) {
470
- const e = n.toString().split("."), r = e[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
471
- return e.length > 1 ? r + "." + e[1] : r;
545
+ function It(n) {
546
+ const t = n.toString().split("."), i = t[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
547
+ return t.length > 1 ? i + "." + t[1] : i;
472
548
  }
473
- function Ut(n, t) {
474
- const e = {
549
+ function Rt(n, e) {
550
+ const t = {
475
551
  join: !0,
476
552
  suffix: "",
477
553
  decimalPlaces: 2
478
- }, { join: r, suffix: o, decimalPlaces: i } = {
479
- ...e,
480
- ...t || {}
481
- }, s = Number(n);
482
- if (isNaN(s)) return r ? `0${o}` : [0, o];
483
- const c = Math.abs(s), u = s >= 0, l = Math.max(0, Math.floor(Math.log10(c) / 4)), m = Math.pow(1e4, l), d = c / m, g = (u ? 1 : -1) * parseFloat(d.toFixed(Math.max(0, i)));
484
- return r ? `${g}${rt[l]}${o}` : [g, rt[l] + o];
485
- }
486
- function Rt(n) {
487
- const t = ["B", "KB", "MB", "GB", "TB", "PB"];
488
- let e = 0;
554
+ }, { join: i, suffix: o, decimalPlaces: r } = {
555
+ ...t,
556
+ ...e || {}
557
+ }, c = Number(n);
558
+ if (isNaN(c)) return i ? `0${o}` : [0, o];
559
+ const s = Math.abs(c), a = c >= 0, l = Math.max(0, Math.floor(Math.log10(s) / 4)), h = Math.pow(1e4, l), d = s / h, p = (a ? 1 : -1) * parseFloat(d.toFixed(Math.max(0, r)));
560
+ return i ? `${p}${it[l]}${o}` : [p, it[l] + o];
561
+ }
562
+ function jt(n) {
563
+ const e = ["B", "KB", "MB", "GB", "TB", "PB"];
564
+ let t = 0;
489
565
  for (; n > 1024; )
490
- n /= 1024, e++;
491
- return `${Math.round(n * 100) / 100} ${t[e]}`;
566
+ n /= 1024, t++;
567
+ return `${Math.round(n * 100) / 100} ${e[t]}`;
492
568
  }
493
- function jt(n, t = "YYYY-MM-DD hh:mm:ss", e = !0) {
494
- const r = new Date(n);
495
- if (isNaN(r.getTime()))
569
+ function St(n, e = "YYYY-MM-DD hh:mm:ss", t = !0) {
570
+ const i = new Date(n);
571
+ if (isNaN(i.getTime()))
496
572
  return console.error("Invalid date"), "";
497
573
  const o = {
498
- YYYY: (i) => i.getFullYear(),
499
- MM: (i) => i.getMonth() + 1,
574
+ YYYY: (r) => r.getFullYear(),
575
+ MM: (r) => r.getMonth() + 1,
500
576
  // Adjust for 0-based month
501
- DD: (i) => i.getDate(),
502
- hh: (i) => i.getHours(),
503
- mm: (i) => i.getMinutes(),
504
- ss: (i) => i.getSeconds(),
505
- ms: (i) => i.getMilliseconds()
577
+ DD: (r) => r.getDate(),
578
+ hh: (r) => r.getHours(),
579
+ mm: (r) => r.getMinutes(),
580
+ ss: (r) => r.getSeconds(),
581
+ ms: (r) => r.getMilliseconds()
506
582
  };
507
- return t.replace(/YYYY|MM|DD|hh|mm|ss|ms/g, (i) => {
508
- const s = o[i](r);
509
- return e ? String(s).padStart(2, "0") : String(s);
583
+ return e.replace(/YYYY|MM|DD|hh|mm|ss|ms/g, (r) => {
584
+ const c = o[r](i);
585
+ return t ? String(c).padStart(2, "0") : String(c);
510
586
  });
511
587
  }
512
- function Q(n, t = "file") {
513
- if (!n || (n = String(n).trim(), n === "")) return t;
514
- const e = n.split("/");
515
- return e[e.length - 1].split("?")[0];
588
+ function J(n, e = "file") {
589
+ if (!n || (n = String(n).trim(), n === "")) return e;
590
+ const t = n.split("/");
591
+ return t[t.length - 1].split("?")[0];
516
592
  }
517
- function It(n, t) {
518
- return n = n.replace(/([^a-zA-Z][a-z])/g, (e) => e.toUpperCase()), t ? n.replace(/[^a-zA-Z]+/g, "") : n;
593
+ function Ut(n, e) {
594
+ return n = n.replace(/([^a-zA-Z][a-z])/g, (t) => t.toUpperCase()), e ? n.replace(/[^a-zA-Z]+/g, "") : n;
519
595
  }
520
- function At(n, t, e = ",") {
521
- const r = new RegExp(
522
- `(^|${e})${t}(${e}|$)`,
596
+ function kt(n, e, t = ",") {
597
+ const i = new RegExp(
598
+ `(^|${t})${e}(${t}|$)`,
523
599
  "g"
524
600
  );
525
- return n.replace(r, function(o, i, s) {
526
- return i === s ? e : "";
601
+ return n.replace(i, function(o, r, c) {
602
+ return r === c ? t : "";
527
603
  });
528
604
  }
529
- function St(n) {
605
+ function Dt(n) {
530
606
  return !(n === null || typeof n != "object" || Array.isArray(n));
531
607
  }
532
- function mt(n, t = 2) {
533
- if (Array.isArray(n) && n.length >= t) {
534
- for (let r = 0; r < n.length; r++)
535
- if (typeof n[r] != "number" || !Number.isFinite(n[r])) return !1;
608
+ function mt(n, e = 2) {
609
+ if (Array.isArray(n) && n.length >= e) {
610
+ for (let i = 0; i < n.length; i++)
611
+ if (typeof n[i] != "number" || !Number.isFinite(n[i])) return !1;
536
612
  } else return !1;
537
613
  return !0;
538
614
  }
539
- function kt(n, t = 1, e = 2) {
540
- if (Array.isArray(n) && n.length >= t) {
615
+ function Ot(n, e = 1, t = 2) {
616
+ if (Array.isArray(n) && n.length >= e) {
541
617
  for (let o = 0; o < n.length; o++)
542
- if (!mt(n[o], e)) return !1;
618
+ if (!mt(n[o], t)) return !1;
543
619
  } else return !1;
544
620
  return !0;
545
621
  }
546
- function Dt(n, t, e) {
547
- return Math.abs(n - t) <= e;
622
+ function zt(n, e, t) {
623
+ return Math.abs(n - e) <= t;
548
624
  }
549
- function zt(n, t) {
550
- let e = !1;
551
- const { x: r, y: o } = n, i = t.length;
552
- for (let s = 0, c = i - 1; s < i; c = s++) {
553
- const u = t[s].x, l = t[s].y, m = t[c].x, d = t[c].y;
554
- l > o != d > o && r < (m - u) * (o - l) / (d - l) + u && (e = !e);
625
+ function Nt(n, e) {
626
+ let t = !1;
627
+ const { x: i, y: o } = n, r = e.length;
628
+ for (let c = 0, s = r - 1; c < r; s = c++) {
629
+ const a = e[c].x, l = e[c].y, h = e[s].x, d = e[s].y;
630
+ l > o != d > o && i < (h - a) * (o - l) / (d - l) + a && (t = !t);
555
631
  }
556
- return e;
632
+ return t;
557
633
  }
558
- function Ot(n, t, e, r) {
559
- const o = Math.min(n[0], t[0]), i = Math.max(n[0], t[0]), s = Math.min(n[1], t[1]), c = Math.max(n[1], t[1]), u = [
560
- [o, s],
634
+ function Bt(n, e, t, i) {
635
+ const o = Math.min(n[0], e[0]), r = Math.max(n[0], e[0]), c = Math.min(n[1], e[1]), s = Math.max(n[1], e[1]), a = [
636
+ [o, c],
561
637
  // 左上
562
- [i, s],
638
+ [r, c],
563
639
  // 右上
564
- [i, c],
640
+ [r, s],
565
641
  // 右下
566
- [o, c]
642
+ [o, s]
567
643
  // 左下
568
- ], l = r[1] - e[1], m = e[0] - r[0], d = r[0] * e[1] - e[0] * r[1];
569
- if (l === 0 && m === 0) {
570
- const [T, k] = e;
571
- return T >= o && T <= i && k >= s && k <= c;
644
+ ], l = i[1] - t[1], h = t[0] - i[0], d = i[0] * t[1] - t[0] * i[1];
645
+ if (l === 0 && h === 0) {
646
+ const [P, k] = t;
647
+ return P >= o && P <= r && k >= c && k <= s;
572
648
  }
573
- const g = 1e-10;
574
- let v = !1, E = !1;
575
- for (const [T, k] of u) {
576
- const H = l * T + m * k + d;
577
- if (Math.abs(H) < g || (H > g ? v = !0 : E = !0, v && E))
649
+ const p = 1e-10;
650
+ let y = !1, w = !1;
651
+ for (const [P, k] of a) {
652
+ const H = l * P + h * k + d;
653
+ if (Math.abs(H) < p || (H > p ? y = !0 : w = !0, y && w))
578
654
  return !0;
579
655
  }
580
- return v && E;
656
+ return y && w;
581
657
  }
582
- function ot(n) {
583
- return Array.isArray(n) ? "array" : n === null ? "null" : typeof n;
658
+ function tt(n) {
659
+ return Object.prototype.toString.call(n).slice(8, -1).toLowerCase();
584
660
  }
585
- function Nt(n) {
661
+ function qt(n) {
586
662
  return [
587
663
  "https:",
588
664
  // HTTPS协议,用于安全地浏览网页
@@ -604,51 +680,51 @@ function Nt(n) {
604
680
  // Remote Desktop Protocol,用于安全的远程桌面连接
605
681
  "vpn:"
606
682
  // VPN协议,用于创建安全的网络连接
607
- ].some((e) => n.startsWith(e));
683
+ ].some((t) => n.startsWith(t));
608
684
  }
609
- function qt(n) {
610
- return new Promise((t, e) => {
685
+ function $t(n) {
686
+ return new Promise((e, t) => {
611
687
  if (typeof n != "string" || n.trim() === "" || !n.includes("://")) {
612
- e(new Error("Invalid URL: Must be a non-empty string"));
688
+ t(new Error("Invalid URL: Must be a non-empty string"));
613
689
  return;
614
690
  }
615
691
  try {
616
692
  new XMLHttpRequest().open("HEAD", n, !0);
617
- } catch (i) {
618
- e(new Error(`Invalid URL format: ${i.message}`));
693
+ } catch (r) {
694
+ t(new Error(`Invalid URL format: ${r.message}`));
619
695
  return;
620
696
  }
621
- const r = new XMLHttpRequest();
622
- r.open("HEAD", n, !0);
623
- const o = (i) => {
624
- e(new Error(`Request failed: ${i.type}`));
697
+ const i = new XMLHttpRequest();
698
+ i.open("HEAD", n, !0);
699
+ const o = (r) => {
700
+ t(new Error(`Request failed: ${r.type}`));
625
701
  };
626
- r.onreadystatechange = function() {
627
- r.readyState === XMLHttpRequest.DONE && (r.status === 0 ? e(new Error("Network error or CORS blocked")) : r.status >= 200 && r.status < 300 ? t(!0) : e(new Error(`HTTP Error: ${r.status}`)));
628
- }, r.onerror = o, r.onabort = o, r.ontimeout = o;
702
+ i.onreadystatechange = function() {
703
+ i.readyState === XMLHttpRequest.DONE && (i.status === 0 ? t(new Error("Network error or CORS blocked")) : i.status >= 200 && i.status < 300 ? e(!0) : t(new Error(`HTTP Error: ${i.status}`)));
704
+ }, i.onerror = o, i.onabort = o, i.ontimeout = o;
629
705
  try {
630
- r.send();
631
- } catch (i) {
632
- e(new Error(`Request send failed: ${i.message}`));
706
+ i.send();
707
+ } catch (r) {
708
+ t(new Error(`Request send failed: ${r.message}`));
633
709
  }
634
710
  });
635
711
  }
636
- const P = class P {
712
+ const T = class T {
637
713
  constructor() {
638
- if (new.target === P)
714
+ if (new.target === T)
639
715
  throw new Error("请直接使用静态方法,而不是实例化此类");
640
716
  }
641
- static check(t, e) {
642
- if (!t || typeof t != "string")
643
- return console.error("Invalid URL provided"), e ? !1 : "unknown";
644
- const r = Q(t).toLowerCase();
645
- if (e) {
646
- if (!J.hasOwnProperty(e))
647
- return console.error(`Unknown file type: ${e}`), "unknown";
648
- const o = J[e];
649
- return P._checkExtension(r, o);
717
+ static check(e, t) {
718
+ if (!e || typeof e != "string")
719
+ return console.error("Invalid URL provided"), t ? !1 : "unknown";
720
+ const i = J(e).toLowerCase();
721
+ if (t) {
722
+ if (!Q.hasOwnProperty(t))
723
+ return console.error(`Unknown file type: ${t}`), "unknown";
724
+ const o = Q[t];
725
+ return T._checkExtension(i, o);
650
726
  }
651
- return P._detectFileType(r);
727
+ return T._detectFileType(i);
652
728
  }
653
729
  /**
654
730
  * 静态方法,用于解析地址信息
@@ -658,10 +734,10 @@ const P = class P {
658
734
  * @param {string} url - 以逗号分隔的URL字符串,每个URL代表一个资源的位置
659
735
  * @returns {Array} - 包含每个URL及其相关信息(名称和类型)的对象数组
660
736
  */
661
- static parseAddresses(t) {
662
- return !t || typeof t != "string" ? (console.error("Invalid URL provided"), []) : t.split(",").map((e) => {
663
- const r = Q(e), o = this.check(e);
664
- return { url: e, name: r, type: o };
737
+ static parseAddresses(e) {
738
+ return !e || typeof e != "string" ? (console.error("Invalid URL provided"), []) : e.split(",").map((t) => {
739
+ const i = J(t), o = this.check(t);
740
+ return { url: t, name: i, type: o };
665
741
  });
666
742
  }
667
743
  /**
@@ -670,13 +746,13 @@ const P = class P {
670
746
  * @param {string} [accept] - 可接受的 MIME 类型模式(如 "image/*, text/plain")
671
747
  * @returns {boolean} - 如果类型匹配,则返回 true,否则返回 false
672
748
  */
673
- static matchesMimeType(t, e) {
674
- if (!e) return !0;
675
- if (typeof t != "string" || typeof e != "string") return !1;
676
- const r = P._normalizeType(t), o = e.split(",").map((c) => P._normalizeType(c.trim())), [i, s = "*"] = r.split("/");
677
- return o.some((c) => {
678
- const [u, l = "*"] = c.split("/");
679
- return (u === "*" || i === "*" || u === i) && (l === "*" || s === "*" || l === s);
749
+ static matchesMimeType(e, t) {
750
+ if (!t) return !0;
751
+ if (typeof e != "string" || typeof t != "string") return !1;
752
+ const i = T._normalizeType(e), o = t.split(",").map((s) => T._normalizeType(s.trim())), [r, c = "*"] = i.split("/");
753
+ return o.some((s) => {
754
+ const [a, l = "*"] = s.split("/");
755
+ return (a === "*" || r === "*" || a === r) && (l === "*" || c === "*" || l === c);
680
756
  });
681
757
  }
682
758
  /**
@@ -687,8 +763,8 @@ const P = class P {
687
763
  * @param {string} type - 文件类型或MIME类型字符串
688
764
  * @returns {string} 标准化的MIME类型字符串,如果无法识别则返回原始输入
689
765
  */
690
- static _normalizeType(t) {
691
- return t.startsWith(".") && !t.includes("/") ? ut[t.toLowerCase()] || t : t.includes("/") ? t : `${t}/*`;
766
+ static _normalizeType(e) {
767
+ return e.startsWith(".") && !e.includes("/") ? ut[e.toLowerCase()] || e : e.includes("/") ? e : `${e}/*`;
692
768
  }
693
769
  /**
694
770
  * 检查URL是否具有任何指定的文件扩展名
@@ -696,201 +772,283 @@ const P = class P {
696
772
  * @param {string[]} validExtensions - 有效文件扩展名的数组
697
773
  * @returns {boolean} - 如果URL具有任何指定的文件扩展名,则返回true,否则返回false
698
774
  */
699
- static _checkExtension(t, e) {
700
- return e.some((r) => t.endsWith(r));
775
+ static _checkExtension(e, t) {
776
+ return t.some((i) => e.endsWith(i));
701
777
  }
702
778
  /**
703
779
  * 检测文件URL的类型
704
780
  * @param {string} url - 文件的URL
705
781
  * @returns {string} - 如果URL与任何已知类型匹配,则返回文件类型,否则返回"unknown"
706
782
  */
707
- static _detectFileType(t) {
708
- for (const [e, r] of P.cachedEntries)
709
- if (r.some((o) => t.endsWith(o)))
710
- return e;
783
+ static _detectFileType(e) {
784
+ for (const [t, i] of T.cachedEntries)
785
+ if (i.some((o) => e.endsWith(o)))
786
+ return t;
711
787
  return "unknown";
712
788
  }
713
789
  };
714
790
  // 缓存文件扩展名的条目,以提高性能
715
- F(P, "cachedEntries", Object.entries(J));
716
- let it = P;
717
- function $t(n) {
791
+ C(T, "cachedEntries", Object.entries(Q));
792
+ let rt = T;
793
+ function Yt(n) {
718
794
  if (typeof n != "function")
719
795
  return console.error("非函数:", n);
720
- const t = function(e) {
721
- e.didTimeout || e.timeRemaining() <= 0 ? requestIdleCallback(t) : n();
796
+ const e = function(t) {
797
+ t.didTimeout || t.timeRemaining() <= 0 ? requestIdleCallback(e) : n();
722
798
  };
723
- requestIdleCallback(t);
724
- }
725
- function Yt(n, t) {
726
- const e = +/* @__PURE__ */ new Date();
727
- return new Promise((r, o) => {
728
- const i = () => {
729
- if (+/* @__PURE__ */ new Date() - e >= t) return o("超时");
730
- if (n()) return r("完成");
731
- requestIdleCallback(i);
799
+ requestIdleCallback(e);
800
+ }
801
+ function Xt(n, e) {
802
+ const t = +/* @__PURE__ */ new Date();
803
+ return new Promise((i, o) => {
804
+ const r = () => {
805
+ if (+/* @__PURE__ */ new Date() - t >= e) return o("超时");
806
+ if (n()) return i("完成");
807
+ requestIdleCallback(r);
732
808
  };
733
- i();
809
+ r();
734
810
  });
735
811
  }
736
- function tt(n, t, e = [], r = +/* @__PURE__ */ new Date()) {
737
- if (r < +/* @__PURE__ */ new Date() - 50) {
812
+ function ot(n, e, t = [], i = +/* @__PURE__ */ new Date()) {
813
+ if (i < +/* @__PURE__ */ new Date() - 50) {
738
814
  console.error("_MergeObjects 合并异常:疑似死循环");
739
815
  return;
740
816
  }
741
- const o = ot(n), i = ot(t);
742
- if (o != i) return t;
817
+ const o = tt(n), r = tt(e);
818
+ if (o != r) return e;
743
819
  if (o == "object" || o == "array") {
744
- if (e.some(([s, c]) => s == n && c == t)) return n;
745
- if (e.push([n, t]), o == "object") {
746
- for (const s in t)
747
- if (Object.prototype.hasOwnProperty.call(t, s)) {
748
- const c = t[s], u = n[s], l = tt(
749
- u,
750
- c,
751
- e,
752
- r
820
+ if (t.some(([c, s]) => c == n && s == e)) return n;
821
+ if (t.push([n, e]), o == "object") {
822
+ for (const c in e)
823
+ if (Object.prototype.hasOwnProperty.call(e, c)) {
824
+ const s = e[c], a = n[c], l = ot(
825
+ a,
826
+ s,
827
+ t,
828
+ i
753
829
  );
754
- n[s] = l;
830
+ n[c] = l;
755
831
  }
756
832
  return n;
757
833
  } else if (o == "array")
758
- return t.forEach((s, c) => {
759
- const u = s, l = n[c], m = tt(
834
+ return e.forEach((c, s) => {
835
+ const a = c, l = n[s], h = ot(
760
836
  l,
761
- u,
762
- e,
763
- r
837
+ a,
838
+ t,
839
+ i
764
840
  );
765
- n[c] = m;
841
+ n[s] = h;
766
842
  }), n;
767
- } else return t;
843
+ } else return e;
768
844
  }
769
- function Xt(n = "") {
770
- return n + "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(t) {
771
- const e = Math.random() * 16 | 0;
772
- return (t === "x" ? e : e & 3 | 8).toString(16);
845
+ function Ht(n = "") {
846
+ return n + "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
847
+ const t = Math.random() * 16 | 0;
848
+ return (e === "x" ? t : t & 3 | 8).toString(16);
773
849
  });
774
850
  }
775
- function ft(n, t) {
776
- let e;
777
- return function(...r) {
778
- clearTimeout(e), e = setTimeout(() => {
779
- n(...r), e = void 0;
780
- }, t);
851
+ function dt(n, e) {
852
+ let t;
853
+ return function(...i) {
854
+ clearTimeout(t), t = setTimeout(() => {
855
+ n(...i), t = void 0;
856
+ }, e);
781
857
  };
782
858
  }
783
- function Bt(n, t) {
784
- let e = -1 / 0;
785
- return function(...r) {
859
+ function Wt(n, e) {
860
+ let t = -1 / 0;
861
+ return function(...i) {
786
862
  const o = performance.now();
787
- if (o - e > t) {
788
- e = o;
863
+ if (o - t > e) {
864
+ t = o;
789
865
  try {
790
- n(...r);
791
- } catch (i) {
792
- console.error("Throttled function execution failed:", i);
866
+ n(...i);
867
+ } catch (r) {
868
+ console.error("Throttled function execution failed:", r);
793
869
  }
794
870
  }
795
871
  };
796
872
  }
797
- function Ht(n, t, e) {
798
- if (!n || !t) return n;
799
- const r = t.split(".");
800
- return r.reduce((o, i, s) => o.hasOwnProperty(i) ? o[i] : s === r.length - 1 ? o[i] = e : o[i] = {}, n);
873
+ function Vt(n, e, t) {
874
+ if (!n || !e) return n;
875
+ const i = e.split(".");
876
+ return i.reduce((o, r, c) => o.hasOwnProperty(r) ? o[r] : c === i.length - 1 ? o[r] = t : o[r] = {}, n);
801
877
  }
802
- function Wt(n, t) {
803
- if (!n || !t) return n;
804
- const e = t.split(".");
805
- return e.reduce((r, o, i) => r.hasOwnProperty(o) ? r[o] : i == e.length - 1 ? void 0 : {}, n);
878
+ function Gt(n, e) {
879
+ if (!n || !e) return n;
880
+ const t = e.split(".");
881
+ return t.reduce((i, o, r) => i.hasOwnProperty(o) ? i[o] : r == t.length - 1 ? void 0 : {}, n);
806
882
  }
807
- function Vt(n, t, e) {
808
- if (!n || !t) return n;
809
- const r = t.split(".");
810
- return r.reduce((o, i, s) => (s === r.length - 1 && (o[i] = e), o.hasOwnProperty(i) ? o[i] : o[i] = {}), n);
883
+ function Zt(n, e, t) {
884
+ if (!n || !e) return n;
885
+ const i = e.split(".");
886
+ return i.reduce((o, r, c) => (c === i.length - 1 && (o[r] = t), o.hasOwnProperty(r) ? o[r] : o[r] = {}), n);
811
887
  }
812
- function Gt(n) {
813
- return n.map((t, e) => n.slice(e).concat(n.slice(0, e)));
888
+ function Kt(n) {
889
+ return n.map((e, t) => n.slice(t).concat(n.slice(0, t)));
814
890
  }
815
- function Zt(n) {
816
- const t = window.structuredClone, e = (r) => r === null || typeof r != "object" ? r : tt(Array.isArray(r) ? [] : {}, r);
891
+ function Qt(n) {
892
+ const e = window.structuredClone, t = (i, o = /* @__PURE__ */ new WeakMap()) => {
893
+ const r = i;
894
+ if (r === null || typeof r != "object")
895
+ return r;
896
+ if (o.has(r))
897
+ return o.get(r);
898
+ switch (tt(r)) {
899
+ case "array": {
900
+ const s = [];
901
+ o.set(r, s);
902
+ for (const a of r)
903
+ s.push(t(a, o));
904
+ return s;
905
+ }
906
+ case "object": {
907
+ if (r === null) return r;
908
+ const s = {};
909
+ o.set(r, s);
910
+ for (const a in r)
911
+ Object.prototype.hasOwnProperty.call(r, a) && (s[a] = t(r[a], o));
912
+ return s;
913
+ }
914
+ case "date": {
915
+ const s = new Date(r.getTime());
916
+ return o.set(r, s), s;
917
+ }
918
+ case "regexp": {
919
+ const s = r, a = new RegExp(s.source, s.flags);
920
+ return a.lastIndex = s.lastIndex, o.set(r, a), a;
921
+ }
922
+ case "map": {
923
+ const s = /* @__PURE__ */ new Map();
924
+ return o.set(r, s), r.forEach((a, l) => {
925
+ s.set(
926
+ t(l, o),
927
+ t(a, o)
928
+ );
929
+ }), s;
930
+ }
931
+ case "set": {
932
+ const s = /* @__PURE__ */ new Set();
933
+ return o.set(r, s), r.forEach((a) => {
934
+ s.add(t(a, o));
935
+ }), s;
936
+ }
937
+ // 处理其他可克隆对象类型
938
+ case "arraybuffer":
939
+ case "dataview":
940
+ case "int8array":
941
+ case "uint8array":
942
+ case "uint8clampedarray":
943
+ case "int16array":
944
+ case "uint16array":
945
+ case "int32array":
946
+ case "uint32array":
947
+ case "float32array":
948
+ case "float64array":
949
+ case "bigint64array":
950
+ case "biguint64array": {
951
+ const s = r, a = s.constructor, l = s.buffer.slice(
952
+ s.byteOffset,
953
+ s.byteOffset + s.byteLength
954
+ ), h = new a(
955
+ l,
956
+ s.byteOffset,
957
+ s.byteLength / s.BYTES_PER_ELEMENT
958
+ );
959
+ return o.set(r, h), h;
960
+ }
961
+ // 处理特殊对象类型
962
+ case "error": {
963
+ const s = r, a = new s.constructor(s.message);
964
+ return a.stack = s.stack, a.name = s.name, o.set(r, a), a;
965
+ }
966
+ // 处理不可克隆对象(直接返回原值)
967
+ case "function":
968
+ case "promise":
969
+ case "weakmap":
970
+ case "weakset":
971
+ default:
972
+ return r;
973
+ }
974
+ };
817
975
  try {
818
- return t ? t(n) : e(n);
819
- } catch (r) {
820
- return console.error("structuredClone error:", r), t && e(n);
976
+ return e ? e(n) : t(n);
977
+ } catch (i) {
978
+ return console.error("structuredClone error:", i), e && t(n);
821
979
  }
822
980
  }
823
- function Kt(n, t, e = 30) {
981
+ function Jt(n, e, t = 30) {
824
982
  if (typeof n != "function")
825
983
  return console.error("第一个参数必须是一个函数。");
826
- if (!Array.isArray(t))
984
+ if (!Array.isArray(e))
827
985
  return console.error("第二个参数必须是一个数组。");
828
- let r = [], o = 0;
829
- const i = (s, c) => {
830
- for (const [u, l] of c)
831
- if (s >= u)
986
+ let i = [], o = 0;
987
+ const r = (c, s) => {
988
+ for (const [a, l] of s)
989
+ if (c >= a)
832
990
  return l;
833
991
  return "black";
834
992
  };
835
- return function(...s) {
836
- const c = performance.now(), u = n(...s), l = performance.now() - c;
837
- r.push(l), r.length > e && r.shift(), o = r.reduce((g, v) => g + v, 0) / r.length || 0;
838
- const m = i(l, t), d = i(o, t);
993
+ return function(...c) {
994
+ const s = performance.now(), a = n(...c), l = performance.now() - s;
995
+ i.push(l), i.length > t && i.shift(), o = i.reduce((p, y) => p + y, 0) / i.length || 0;
996
+ const h = r(l, e), d = r(o, e);
839
997
  return console.log(
840
998
  `%c单次耗时:${l.toFixed(2)}ms
841
- %c平均耗时(${r.length}次):${o.toFixed(2)}ms`,
842
- `color: ${m}; padding: 2px 0;`,
999
+ %c平均耗时(${i.length}次):${o.toFixed(2)}ms`,
1000
+ `color: ${h}; padding: 2px 0;`,
843
1001
  `color: ${d}; padding: 2px 0;`
844
- ), u;
1002
+ ), a;
845
1003
  };
846
1004
  }
847
- function Jt(n) {
848
- const t = Date.now();
849
- let e = performance.now();
850
- for (; Date.now() - t < n; ) {
851
- e = Math.sin(e) * 1e6, (e > 1e6 || e < -1e6) && (e = 0);
1005
+ function te(n) {
1006
+ const e = Date.now();
1007
+ let t = performance.now();
1008
+ for (; Date.now() - e < n; ) {
1009
+ t = Math.sin(t) * 1e6, (t > 1e6 || t < -1e6) && (t = 0);
852
1010
  try {
853
- const r = e.toString().substring(0, 8);
854
- history.replaceState(null, "", `#${r}`);
1011
+ const i = t.toString().substring(0, 8);
1012
+ history.replaceState(null, "", `#${i}`);
855
1013
  } catch {
856
1014
  }
857
1015
  }
858
- return Date.now() - t;
1016
+ return Date.now() - e;
859
1017
  }
860
- function Qt(n) {
861
- const t = ft(n, 100);
862
- let e = 0, r = 0;
1018
+ function ee(n) {
1019
+ const e = dt(n, 100);
1020
+ let t = 0, i = 0;
863
1021
  return function(o) {
864
- const i = o.target;
865
- if (!i || !(i instanceof Element)) return;
1022
+ const r = o.target;
1023
+ if (!r || !(r instanceof Element)) return;
866
1024
  const {
867
- scrollTop: s,
868
- scrollHeight: c,
869
- clientHeight: u,
1025
+ scrollTop: c,
1026
+ scrollHeight: s,
1027
+ clientHeight: a,
870
1028
  scrollLeft: l,
871
- scrollWidth: m,
1029
+ scrollWidth: h,
872
1030
  clientWidth: d
873
- } = i;
874
- function g() {
875
- if (e == s) return;
876
- const E = e > s;
877
- if (e = s, E) return;
878
- c - s - u <= 1 && t("vertical");
1031
+ } = r;
1032
+ function p() {
1033
+ if (t == c) return;
1034
+ const w = t > c;
1035
+ if (t = c, w) return;
1036
+ s - c - a <= 1 && e("vertical");
879
1037
  }
880
- function v() {
881
- if (r == l) return;
882
- const E = r > l;
883
- if (r = l, E) return;
884
- m - l - d <= 1 && t("horizontal");
1038
+ function y() {
1039
+ if (i == l) return;
1040
+ const w = i > l;
1041
+ if (i = l, w) return;
1042
+ h - l - d <= 1 && e("horizontal");
885
1043
  }
886
- g(), v();
1044
+ p(), y();
887
1045
  };
888
1046
  }
889
- function te(n, t, e) {
890
- const { isClickAllowed: r, uiLibrary: o = ["naiveUI", "ElementPlus", "Element"] } = e || {}, i = function(u) {
1047
+ function ne(n, e, t) {
1048
+ const { isClickAllowed: i, uiLibrary: o = ["naiveUI", "ElementPlus", "Element"] } = t || {}, r = function(a) {
891
1049
  const l = [];
892
- for (const m in u)
893
- Object.hasOwnProperty.call(u, m) && o.includes(m) && l.push(...u[m]);
1050
+ for (const h in a)
1051
+ Object.hasOwnProperty.call(a, h) && o.includes(h) && l.push(...a[h]);
894
1052
  return l;
895
1053
  }({
896
1054
  naiveUI: [
@@ -901,38 +1059,38 @@ function te(n, t, e) {
901
1059
  ElementPlus: [".el-popper"],
902
1060
  Element: [".el-popper"]
903
1061
  });
904
- function s() {
905
- t(), document.removeEventListener("mousedown", c);
1062
+ function c() {
1063
+ e(), document.removeEventListener("mousedown", s);
906
1064
  }
907
- function c(u) {
908
- if (r) {
909
- const d = r(u);
1065
+ function s(a) {
1066
+ if (i) {
1067
+ const d = i(a);
910
1068
  if (d) return;
911
- if (d === !1) return s();
1069
+ if (d === !1) return c();
912
1070
  }
913
- const l = u.target;
1071
+ const l = a.target;
914
1072
  if (!(l instanceof Element) || !l.isConnected) return;
915
- n.concat(i).some((d) => !!(l != null && l.closest(d))) || s();
1073
+ n.concat(r).some((d) => !!(l != null && l.closest(d))) || c();
916
1074
  }
917
1075
  requestAnimationFrame(
918
- () => document.addEventListener("mousedown", c)
1076
+ () => document.addEventListener("mousedown", s)
919
1077
  );
920
1078
  }
921
- var y, j, I, z, O, C, L, U, N;
922
- class ee {
1079
+ var b, R, j, O, z, F, L, A, N;
1080
+ class ie {
923
1081
  constructor() {
924
- h(this, y);
925
- h(this, j, !1);
926
- h(this, I, {});
927
- h(this, z, 0);
928
- h(this, O, 0);
929
- h(this, C, 0);
930
- h(this, L, 0);
931
- h(this, U);
932
- h(this, N);
1082
+ f(this, b);
1083
+ f(this, R, !1);
1084
+ f(this, j, {});
1085
+ f(this, O, 0);
1086
+ f(this, z, 0);
1087
+ f(this, F, 0);
1088
+ f(this, L, 0);
1089
+ f(this, A);
1090
+ f(this, N);
933
1091
  }
934
- init(t, e) {
935
- f(this, y, t), f(this, U, e == null ? void 0 : e.limit), f(this, N, e == null ? void 0 : e.dragDom), f(this, I, {
1092
+ init(e, t) {
1093
+ m(this, b, e), m(this, A, t == null ? void 0 : t.limit), m(this, N, t == null ? void 0 : t.dragDom), m(this, j, {
936
1094
  mousedown: this.mousedown.bind(this),
937
1095
  mousemove: this.mousemove.bind(this),
938
1096
  mouseup: this.mouseup.bind(this)
@@ -941,47 +1099,47 @@ class ee {
941
1099
  finish() {
942
1100
  this.bindOrUnbindEvent("unbind");
943
1101
  }
944
- bindOrUnbindEvent(t) {
945
- const e = t === "bind" ? "addEventListener" : "removeEventListener";
946
- if (!a(this, y)) return console.error("No DOM");
947
- a(this, y)[e]("mousedown", a(this, I).mousedown), document[e]("mousemove", a(this, I).mousemove), document[e]("mouseup", a(this, I).mouseup);
1102
+ bindOrUnbindEvent(e) {
1103
+ const t = e === "bind" ? "addEventListener" : "removeEventListener";
1104
+ if (!u(this, b)) return console.error("No DOM");
1105
+ u(this, b)[t]("mousedown", u(this, j).mousedown), document[t]("mousemove", u(this, j).mousemove), document[t]("mouseup", u(this, j).mouseup);
948
1106
  }
949
1107
  alterLocation() {
950
- if (!a(this, y)) return console.error("No DOM");
951
- a(this, U) && (f(this, C, Math.min(a(this, C), a(this, U).max.top)), f(this, C, Math.max(a(this, C), a(this, U).min.top)), f(this, L, Math.min(a(this, L), a(this, U).max.left)), f(this, L, Math.max(a(this, L), a(this, U).min.left))), a(this, y).style.setProperty("--top", a(this, C) + "px"), a(this, y).style.setProperty("--left", a(this, L) + "px");
1108
+ if (!u(this, b)) return console.error("No DOM");
1109
+ u(this, A) && (m(this, F, Math.min(u(this, F), u(this, A).max.top)), m(this, F, Math.max(u(this, F), u(this, A).min.top)), m(this, L, Math.min(u(this, L), u(this, A).max.left)), m(this, L, Math.max(u(this, L), u(this, A).min.left))), u(this, b).style.setProperty("--top", u(this, F) + "px"), u(this, b).style.setProperty("--left", u(this, L) + "px");
952
1110
  }
953
- mousedown(t) {
954
- if (!a(this, y)) return console.error("No DOM");
955
- if (a(this, N) && t.target != a(this, N)) return;
956
- document.body.classList.add("no-select"), f(this, j, !0);
957
- const e = a(this, y).getBoundingClientRect(), { pageX: r, pageY: o } = t;
958
- f(this, z, r), f(this, O, o), f(this, C, e.y), f(this, L, e.x);
1111
+ mousedown(e) {
1112
+ if (!u(this, b)) return console.error("No DOM");
1113
+ if (u(this, N) && e.target != u(this, N)) return;
1114
+ document.body.classList.add("no-select"), m(this, R, !0);
1115
+ const t = u(this, b).getBoundingClientRect(), { pageX: i, pageY: o } = e;
1116
+ m(this, O, i), m(this, z, o), m(this, F, t.y), m(this, L, t.x);
959
1117
  }
960
- mousemove(t) {
961
- const { pageX: e, pageY: r } = t;
962
- a(this, j) && (f(this, C, a(this, C) + (r - a(this, O))), f(this, L, a(this, L) + (e - a(this, z))), f(this, z, e), f(this, O, r), this.alterLocation());
1118
+ mousemove(e) {
1119
+ const { pageX: t, pageY: i } = e;
1120
+ u(this, R) && (m(this, F, u(this, F) + (i - u(this, z))), m(this, L, u(this, L) + (t - u(this, O))), m(this, O, t), m(this, z, i), this.alterLocation());
963
1121
  }
964
1122
  mouseup() {
965
- a(this, j) && (f(this, j, !1), document.body.classList.remove("no-select"));
1123
+ u(this, R) && (m(this, R, !1), document.body.classList.remove("no-select"));
966
1124
  }
967
1125
  }
968
- y = new WeakMap(), j = new WeakMap(), I = new WeakMap(), z = new WeakMap(), O = new WeakMap(), C = new WeakMap(), L = new WeakMap(), U = new WeakMap(), N = new WeakMap();
969
- var b, A, S, q, $, _, M, x, Y, X;
970
- class ne {
1126
+ b = new WeakMap(), R = new WeakMap(), j = new WeakMap(), O = new WeakMap(), z = new WeakMap(), F = new WeakMap(), L = new WeakMap(), A = new WeakMap(), N = new WeakMap();
1127
+ var _, S, U, B, q, E, M, x, $, Y;
1128
+ class re {
971
1129
  constructor() {
972
- h(this, b);
973
- h(this, A, !1);
974
- h(this, S, {});
975
- h(this, q, 0);
976
- h(this, $, 0);
977
- h(this, _, 0);
978
- h(this, M, 0);
979
- h(this, x);
980
- h(this, Y);
981
- h(this, X);
1130
+ f(this, _);
1131
+ f(this, S, !1);
1132
+ f(this, U, {});
1133
+ f(this, B, 0);
1134
+ f(this, q, 0);
1135
+ f(this, E, 0);
1136
+ f(this, M, 0);
1137
+ f(this, x);
1138
+ f(this, $);
1139
+ f(this, Y);
982
1140
  }
983
- init(t, e = {}) {
984
- f(this, b, t), f(this, x, e.limit), f(this, Y, e.update_move), f(this, X, e.update_up), f(this, S, {
1141
+ init(e, t = {}) {
1142
+ m(this, _, e), m(this, x, t.limit), m(this, $, t.update_move), m(this, Y, t.update_up), m(this, U, {
985
1143
  mousedown: this.mousedown.bind(this),
986
1144
  mousemove: this.mousemove.bind(this),
987
1145
  mouseup: this.mouseup.bind(this)
@@ -990,348 +1148,349 @@ class ne {
990
1148
  finish() {
991
1149
  this.bindOrUnbindEvent("unbind");
992
1150
  }
993
- bindOrUnbindEvent(t) {
994
- const e = t === "bind" ? "addEventListener" : "removeEventListener";
995
- if (!a(this, b)) return console.error("No DOM");
996
- a(this, b)[e]("mousedown", a(this, S).mousedown), document[e]("mousemove", a(this, S).mousemove), document[e]("mouseup", a(this, S).mouseup);
1151
+ bindOrUnbindEvent(e) {
1152
+ const t = e === "bind" ? "addEventListener" : "removeEventListener";
1153
+ if (!u(this, _)) return console.error("No DOM");
1154
+ u(this, _)[t]("mousedown", u(this, U).mousedown), document[t]("mousemove", u(this, U).mousemove), document[t]("mouseup", u(this, U).mouseup);
997
1155
  }
998
1156
  updateValue() {
999
- const t = {
1000
- top: a(this, _),
1001
- left: a(this, M),
1157
+ const e = {
1158
+ top: u(this, E),
1159
+ left: u(this, M),
1002
1160
  percentage: { top: 0, left: 0 }
1003
1161
  };
1004
- if (a(this, x)) {
1005
- const e = (r) => a(this, x) ? (t[r] - a(this, x).min[r]) / (a(this, x).max[r] - a(this, x).min[r]) : 0;
1006
- t.percentage = {
1007
- top: e("top") || 0,
1008
- left: e("left") || 0
1162
+ if (u(this, x)) {
1163
+ const t = (i) => u(this, x) ? (e[i] - u(this, x).min[i]) / (u(this, x).max[i] - u(this, x).min[i]) : 0;
1164
+ e.percentage = {
1165
+ top: t("top") || 0,
1166
+ left: t("left") || 0
1009
1167
  };
1010
1168
  }
1011
- return t;
1169
+ return e;
1012
1170
  }
1013
1171
  alterLocation() {
1014
- if (!a(this, b)) return console.error("No DOM");
1015
- a(this, x) && (f(this, _, Math.min(a(this, _), a(this, x).max.top)), f(this, _, Math.max(a(this, _), a(this, x).min.top)), f(this, M, Math.min(a(this, M), a(this, x).max.left)), f(this, M, Math.max(a(this, M), a(this, x).min.left))), a(this, Y) && a(this, Y).call(this, this.updateValue()), a(this, b).style.setProperty("--top", a(this, _) + "px"), a(this, b).style.setProperty("--left", a(this, M) + "px");
1172
+ if (!u(this, _)) return console.error("No DOM");
1173
+ u(this, x) && (m(this, E, Math.min(u(this, E), u(this, x).max.top)), m(this, E, Math.max(u(this, E), u(this, x).min.top)), m(this, M, Math.min(u(this, M), u(this, x).max.left)), m(this, M, Math.max(u(this, M), u(this, x).min.left))), u(this, $) && u(this, $).call(this, this.updateValue()), u(this, _).style.setProperty("--top", u(this, E) + "px"), u(this, _).style.setProperty("--left", u(this, M) + "px");
1016
1174
  }
1017
- mousedown(t) {
1018
- if (!a(this, b)) return console.error("No DOM");
1019
- document.body.classList.add("no-select"), f(this, A, !0);
1020
- const e = a(this, b).getBoundingClientRect();
1021
- f(this, $, e.y), f(this, q, e.x);
1022
- const { pageX: r, pageY: o } = t;
1023
- f(this, _, o - a(this, $)), f(this, M, r - a(this, q)), this.alterLocation();
1175
+ mousedown(e) {
1176
+ if (!u(this, _)) return console.error("No DOM");
1177
+ document.body.classList.add("no-select"), m(this, S, !0);
1178
+ const t = u(this, _).getBoundingClientRect();
1179
+ m(this, q, t.y), m(this, B, t.x);
1180
+ const { pageX: i, pageY: o } = e;
1181
+ m(this, E, o - u(this, q)), m(this, M, i - u(this, B)), this.alterLocation();
1024
1182
  }
1025
- mousemove(t) {
1026
- const { pageX: e, pageY: r } = t;
1027
- a(this, A) && (f(this, _, r - a(this, $)), f(this, M, e - a(this, q)), this.alterLocation());
1183
+ mousemove(e) {
1184
+ const { pageX: t, pageY: i } = e;
1185
+ u(this, S) && (m(this, E, i - u(this, q)), m(this, M, t - u(this, B)), this.alterLocation());
1028
1186
  }
1029
1187
  mouseup() {
1030
- a(this, A) && (f(this, A, !1), document.body.classList.remove("no-select"), a(this, X) && a(this, X).call(this, this.updateValue()));
1188
+ u(this, S) && (m(this, S, !1), document.body.classList.remove("no-select"), u(this, Y) && u(this, Y).call(this, this.updateValue()));
1031
1189
  }
1032
1190
  }
1033
- b = new WeakMap(), A = new WeakMap(), S = new WeakMap(), q = new WeakMap(), $ = new WeakMap(), _ = new WeakMap(), M = new WeakMap(), x = new WeakMap(), Y = new WeakMap(), X = new WeakMap();
1191
+ _ = new WeakMap(), S = new WeakMap(), U = new WeakMap(), B = new WeakMap(), q = new WeakMap(), E = new WeakMap(), M = new WeakMap(), x = new WeakMap(), $ = new WeakMap(), Y = new WeakMap();
1034
1192
  function K(n) {
1035
1193
  if (typeof n == "string") {
1036
- const t = document.querySelector(n);
1037
- if (!t) throw new Error(`Element "${n}" not found`);
1038
- return t;
1194
+ const e = document.querySelector(n);
1195
+ if (!e) throw new Error(`Element "${n}" not found`);
1196
+ return e;
1039
1197
  } else
1040
1198
  return n || document.documentElement;
1041
1199
  }
1042
- function dt(n) {
1043
- const t = K(n);
1044
- return t.requestFullscreen ? t.requestFullscreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.webkitRequestFullscreen ? t.webkitRequestFullscreen() : t.msRequestFullscreen ? t.msRequestFullscreen() : Promise.reject("No Fullscreen API");
1200
+ function ft(n) {
1201
+ const e = K(n);
1202
+ return e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.msRequestFullscreen ? e.msRequestFullscreen() : Promise.reject("No Fullscreen API");
1045
1203
  }
1046
- function ht() {
1204
+ function pt() {
1047
1205
  const n = document;
1048
1206
  return document.exitFullscreen ? document.exitFullscreen() : n.mozCancelFullScreen ? n.mozCancelFullScreen() : n.webkitExitFullscreen ? n.webkitExitFullscreen() : n.msExitFullscreen ? n.msExitFullscreen() : Promise.reject("No ExitFullscreen API");
1049
1207
  }
1050
- function st(n) {
1051
- const t = K(n), e = document, r = document.fullscreenElement || e.webkitFullscreenElement || e.mozFullScreenElement || e.msFullscreenElement;
1052
- return t == r;
1208
+ function ct(n) {
1209
+ const e = K(n), t = document, i = document.fullscreenElement || t.webkitFullscreenElement || t.mozFullScreenElement || t.msFullscreenElement;
1210
+ return e == i || !n && window.innerWidth == screen.width && window.innerHeight == screen.height;
1053
1211
  }
1054
- function re(n) {
1212
+ function oe(n) {
1055
1213
  return n = K(n), function() {
1056
- st(n) ? ht() : dt(n);
1214
+ ct(n) ? pt() : ft(n);
1057
1215
  };
1058
1216
  }
1059
- function oe(n, t) {
1060
- const e = K(t), r = () => {
1061
- n(st(e));
1217
+ function se(n, e) {
1218
+ const t = K(e), i = () => {
1219
+ n(ct(t));
1062
1220
  };
1063
- return document.addEventListener("fullscreenchange", r), document.addEventListener("webkitfullscreenchange", r), document.addEventListener("mozfullscreenchange", r), document.addEventListener("MSFullscreenChange", r), r(), () => {
1064
- document.removeEventListener("fullscreenchange", r), document.removeEventListener("webkitfullscreenchange", r), document.removeEventListener("mozfullscreenchange", r), document.removeEventListener("MSFullscreenChange", r);
1221
+ return document.addEventListener("fullscreenchange", i), document.addEventListener("webkitfullscreenchange", i), document.addEventListener("mozfullscreenchange", i), document.addEventListener("MSFullscreenChange", i), i(), () => {
1222
+ document.removeEventListener("fullscreenchange", i), document.removeEventListener("webkitfullscreenchange", i), document.removeEventListener("mozfullscreenchange", i), document.removeEventListener("MSFullscreenChange", i);
1065
1223
  };
1066
1224
  }
1067
- function ie(n, t) {
1225
+ function ce(n, e) {
1068
1226
  if (typeof n == "number") return n;
1069
1227
  if (/px/.test(n)) return Number(n.replace(/px/, "")) || 0;
1070
- const e = document.createElement("div");
1071
- e.style.width = n, t = t || document.body, t.appendChild(e);
1072
- const r = e.getBoundingClientRect().width;
1073
- return t.removeChild(e), r;
1228
+ const t = document.createElement("div");
1229
+ t.style.width = n, e = e || document.body, e.appendChild(t);
1230
+ const i = t.getBoundingClientRect().width;
1231
+ return e.removeChild(t), i;
1074
1232
  }
1075
- function se(n, t) {
1233
+ function ae(n, e) {
1076
1234
  if (!n) return;
1077
- let e, r;
1078
- if (typeof t == "string") {
1079
- const i = document.querySelector(t);
1080
- if (!i) return;
1081
- const s = i.getBoundingClientRect();
1082
- e = s.width, r = s.height;
1083
- } else if (Array.isArray(t))
1084
- e = t[0], r = t[1];
1235
+ let t, i;
1236
+ if (typeof e == "string") {
1237
+ const r = document.querySelector(e);
1238
+ if (!r) return;
1239
+ const c = r.getBoundingClientRect();
1240
+ t = c.width, i = c.height;
1241
+ } else if (Array.isArray(e))
1242
+ t = e[0], i = e[1];
1085
1243
  else {
1086
- const i = t.getBoundingClientRect();
1087
- e = i.width, r = i.height;
1244
+ const r = e.getBoundingClientRect();
1245
+ t = r.width, i = r.height;
1088
1246
  }
1089
- const o = e / r;
1090
- return o > n ? [n * r, r] : o < n ? [e, e / n] : [e, r];
1247
+ const o = t / i;
1248
+ return o > n ? [n * i, i] : o < n ? [t, t / n] : [t, i];
1091
1249
  }
1092
- function ce(n, t = 5e3) {
1093
- return new Promise((e, r) => {
1250
+ function le(n, e = 5e3) {
1251
+ return new Promise((t, i) => {
1094
1252
  const o = new Image();
1095
1253
  o.src = n;
1096
- const i = setTimeout(() => {
1097
- r(new Error("图片加载超时")), o.onload = null, o.onerror = null;
1098
- }, t);
1254
+ const r = setTimeout(() => {
1255
+ i(new Error("图片加载超时")), o.onload = null, o.onerror = null;
1256
+ }, e);
1099
1257
  o.onload = () => {
1100
- clearTimeout(i);
1101
- const s = o.naturalWidth, c = o.naturalHeight, u = s / c;
1102
- e([o, u]);
1258
+ clearTimeout(r);
1259
+ const c = o.naturalWidth, s = o.naturalHeight, a = c / s;
1260
+ t([o, a]);
1103
1261
  }, o.onerror = () => {
1104
- clearTimeout(i), r(new Error("图片加载失败"));
1262
+ clearTimeout(r), i(new Error("图片加载失败"));
1105
1263
  }, o.crossOrigin = "Anonymous";
1106
1264
  });
1107
1265
  }
1108
- function ae(n) {
1109
- return new Promise((t, e) => {
1110
- fetch(n).then((r) => t(r.text())).catch((r) => {
1111
- console.error("Error fetching :", r), e(r);
1266
+ function ue(n) {
1267
+ return new Promise((e, t) => {
1268
+ fetch(n).then((i) => e(i.text())).catch((i) => {
1269
+ console.error("Error fetching :", i), t(i);
1112
1270
  });
1113
1271
  });
1114
1272
  }
1115
- function pt(n, t) {
1116
- return new Promise((e, r) => {
1273
+ function gt(n, e) {
1274
+ return new Promise((t, i) => {
1117
1275
  try {
1118
- t = t || Q(n, "downloaded_file"), fetch(n).then((o) => (o.ok || r(`文件下载失败,状态码: ${o.status}`), o.blob())).then((o) => {
1119
- const i = URL.createObjectURL(o), s = document.createElement("a");
1120
- s.href = i, s.download = decodeURIComponent(t), document.body.appendChild(s), s.click(), document.body.removeChild(s), URL.revokeObjectURL(i), e(o);
1121
- }).catch(r);
1276
+ e = e || J(n, "downloaded_file"), fetch(n).then((o) => (o.ok || i(`文件下载失败,状态码: ${o.status}`), o.blob())).then((o) => {
1277
+ const r = URL.createObjectURL(o), c = document.createElement("a");
1278
+ c.href = r, c.download = decodeURIComponent(e), document.body.appendChild(c), c.click(), document.body.removeChild(c), URL.revokeObjectURL(r), t(o);
1279
+ }).catch(i);
1122
1280
  } catch (o) {
1123
- r(o);
1281
+ i(o);
1124
1282
  }
1125
1283
  });
1126
1284
  }
1127
- function le(n, t, e) {
1128
- if (!e) {
1129
- let i = t.replace(/^[^.]+./, "");
1130
- i = i == t ? "text/plain" : "application/" + i, e = { type: i };
1285
+ function he(n, e, t) {
1286
+ if (!t) {
1287
+ let r = e.replace(/^[^.]+./, "");
1288
+ r = r == e ? "text/plain" : "application/" + r, t = { type: r };
1131
1289
  }
1132
- const r = new Blob(n, e), o = URL.createObjectURL(r);
1133
- pt(o, t);
1134
- }
1135
- const gt = Math.PI / 2, G = Math.PI / 180, Z = 6378137, xt = 85.05112878;
1136
- function ue(n, t) {
1137
- const e = Math.max(Math.min(n, 180), -180), r = Math.max(Math.min(t, xt), -85.05112878), o = e * G * Z, i = r * G, s = Math.log(Math.tan(Math.PI / 4 + i / 2)) * Z;
1138
- return [o, s];
1139
- }
1140
- function me(n, t) {
1141
- const e = n / Z / G, r = (2 * Math.atan(Math.exp(t / Z)) - gt) / G;
1142
- return [e, r];
1143
- }
1144
- function fe(n, t, e) {
1145
- const [r, o] = n, [i, s] = t, [c, u] = e, l = (c - i) ** 2 + (u - s) ** 2;
1146
- if (l === 0) return Math.sqrt((r - i) ** 2 + (o - s) ** 2);
1147
- let m = ((r - i) * (c - i) + (o - s) * (u - s)) / l;
1148
- return m = Math.max(0, Math.min(1, m)), Math.sqrt(
1149
- (r - (i + m * (c - i))) ** 2 + (o - (s + m * (u - s))) ** 2
1290
+ const i = new Blob(n, t), o = URL.createObjectURL(i);
1291
+ gt(o, e);
1292
+ }
1293
+ const wt = Math.PI / 2, G = Math.PI / 180, Z = 6378137, xt = 85.05112878;
1294
+ function me(n, e) {
1295
+ const t = Math.max(Math.min(n, 180), -180), i = Math.max(Math.min(e, xt), -85.05112878), o = t * G * Z, r = i * G, c = Math.log(Math.tan(Math.PI / 4 + r / 2)) * Z;
1296
+ return [o, c];
1297
+ }
1298
+ function de(n, e) {
1299
+ const t = n / Z / G, i = (2 * Math.atan(Math.exp(e / Z)) - wt) / G;
1300
+ return [t, i];
1301
+ }
1302
+ function fe(n, e, t) {
1303
+ const [i, o] = n, [r, c] = e, [s, a] = t, l = (s - r) ** 2 + (a - c) ** 2;
1304
+ if (l === 0) return Math.sqrt((i - r) ** 2 + (o - c) ** 2);
1305
+ let h = ((i - r) * (s - r) + (o - c) * (a - c)) / l;
1306
+ return h = Math.max(0, Math.min(1, h)), Math.sqrt(
1307
+ (i - (r + h * (s - r))) ** 2 + (o - (c + h * (a - c))) ** 2
1150
1308
  );
1151
1309
  }
1152
- function de(n, t, e, r, o, i = 1, s = 1) {
1153
- const c = n + e * Math.cos(r) * i, u = t + e * Math.sin(r) * s, l = n + e * Math.cos(o) * i, m = t + e * Math.sin(o) * s;
1310
+ function pe(n, e, t, i, o, r = 1, c = 1) {
1311
+ const s = n + t * Math.cos(i) * r, a = e + t * Math.sin(i) * c, l = n + t * Math.cos(o) * r, h = e + t * Math.sin(o) * c;
1154
1312
  return [
1155
- [c, u],
1156
- [l, m]
1313
+ [s, a],
1314
+ [l, h]
1157
1315
  ];
1158
1316
  }
1159
- function he(n, t, e, r) {
1160
- return Math.hypot(Math.abs(e - n), Math.abs(r - t));
1317
+ function ge(n, e, t, i) {
1318
+ return Math.hypot(Math.abs(t - n), Math.abs(i - e));
1161
1319
  }
1162
- function pe(n, t, e, r) {
1163
- const o = (n + e) / 2, i = (t + r) / 2;
1164
- return { x: o, y: i };
1320
+ function we(n, e, t, i) {
1321
+ const o = (n + t) / 2, r = (e + i) / 2;
1322
+ return { x: o, y: r };
1165
1323
  }
1166
- function ge(n, t, e, r) {
1167
- const [o, i] = n, [s, c] = t;
1168
- let u = 1 / 0;
1169
- if (s !== 0) {
1170
- const l = s > 0 ? (e - o) / s : -o / s;
1171
- l > 0 && (u = Math.min(u, l));
1172
- }
1324
+ function xe(n, e, t, i) {
1325
+ const [o, r] = n, [c, s] = e;
1326
+ let a = 1 / 0;
1173
1327
  if (c !== 0) {
1174
- const l = c > 0 ? (r - i) / c : -i / c;
1175
- l > 0 && (u = Math.min(u, l));
1328
+ const l = c > 0 ? (t - o) / c : -o / c;
1329
+ l > 0 && (a = Math.min(a, l));
1330
+ }
1331
+ if (s !== 0) {
1332
+ const l = s > 0 ? (i - r) / s : -r / s;
1333
+ l > 0 && (a = Math.min(a, l));
1176
1334
  }
1177
- return u === 1 / 0 ? n : [o + s * u, i + c * u];
1335
+ return a === 1 / 0 ? n : [o + c * a, r + s * a];
1178
1336
  }
1179
1337
  class D {
1180
- constructor(t, e) {
1181
- F(this, "resolve");
1182
- F(this, "reject");
1183
- this.resolve = t, this.reject = e;
1338
+ constructor(e, t) {
1339
+ C(this, "resolve");
1340
+ C(this, "reject");
1341
+ this.resolve = e, this.reject = t;
1184
1342
  }
1185
- run(t) {
1186
- var e, r;
1187
- return t instanceof Promise ? t.then((o) => {
1188
- var i;
1189
- return (i = this.resolve) == null || i.call(this), o;
1343
+ run(e) {
1344
+ var t, i;
1345
+ return e instanceof Promise ? e.then((o) => {
1346
+ var r;
1347
+ return (r = this.resolve) == null || r.call(this), o;
1190
1348
  }).catch((o) => {
1191
- var i;
1192
- return (i = this.reject) == null || i.call(this), Promise.reject(o);
1193
- }) : t ? (e = this.resolve) == null || e.call(this) : (r = this.reject) == null || r.call(this), t;
1349
+ var r;
1350
+ return (r = this.reject) == null || r.call(this), Promise.reject(o);
1351
+ }) : e ? (t = this.resolve) == null || t.call(this) : (i = this.reject) == null || i.call(this), e;
1194
1352
  }
1195
1353
  }
1196
- class wt extends D {
1197
- constructor(t) {
1198
- super(), this.resolve = t;
1354
+ class yt extends D {
1355
+ constructor(e) {
1356
+ super(), this.resolve = e;
1199
1357
  }
1200
- warning(...t) {
1201
- const e = () => {
1202
- var r, o;
1203
- return (o = (r = B.tips).warning) == null ? void 0 : o.call(r, ...t);
1358
+ warning(...e) {
1359
+ const t = () => {
1360
+ var i, o;
1361
+ return (o = (i = X.tips).warning) == null ? void 0 : o.call(i, ...e);
1204
1362
  };
1205
- return new D(this.resolve, e);
1363
+ return new D(this.resolve, t);
1206
1364
  }
1207
- error(...t) {
1208
- const e = () => {
1209
- var r, o;
1210
- return (o = (r = B.tips).error) == null ? void 0 : o.call(r, ...t);
1365
+ error(...e) {
1366
+ const t = () => {
1367
+ var i, o;
1368
+ return (o = (i = X.tips).error) == null ? void 0 : o.call(i, ...e);
1211
1369
  };
1212
- return new D(this.resolve, e);
1370
+ return new D(this.resolve, t);
1213
1371
  }
1214
1372
  }
1215
1373
  class vt extends D {
1216
- constructor(t) {
1217
- super(), this.reject = t;
1374
+ constructor(e) {
1375
+ super(), this.reject = e;
1218
1376
  }
1219
- info(...t) {
1220
- const e = () => {
1221
- var r, o;
1222
- return (o = (r = B.tips).info) == null ? void 0 : o.call(r, ...t);
1377
+ info(...e) {
1378
+ const t = () => {
1379
+ var i, o;
1380
+ return (o = (i = X.tips).info) == null ? void 0 : o.call(i, ...e);
1223
1381
  };
1224
- return new D(e, this.reject);
1382
+ return new D(t, this.reject);
1225
1383
  }
1226
- success(...t) {
1227
- const e = () => {
1228
- var r, o;
1229
- return (o = (r = B.tips).success) == null ? void 0 : o.call(r, ...t);
1384
+ success(...e) {
1385
+ const t = () => {
1386
+ var i, o;
1387
+ return (o = (i = X.tips).success) == null ? void 0 : o.call(i, ...e);
1230
1388
  };
1231
- return new D(e, this.reject);
1389
+ return new D(t, this.reject);
1232
1390
  }
1233
1391
  }
1234
- const p = class p {
1392
+ const g = class g {
1235
1393
  /**
1236
1394
  * 构造函数
1237
1395
  * @throws 如果尝试实例化该类,则抛出错误,因为应该使用静态方法
1238
1396
  */
1239
1397
  constructor() {
1240
- if (new.target === p)
1398
+ if (new.target === g)
1241
1399
  throw new Error("请直接使用静态方法,而不是实例化此类");
1242
1400
  }
1243
- static register(t, e) {
1244
- if (typeof e != "function")
1401
+ static register(e, t) {
1402
+ if (typeof t != "function")
1245
1403
  return console.error("TipHandler must be a function");
1246
- p.tips[t] = e;
1404
+ g.tips[e] = t;
1247
1405
  }
1248
- static resolveTip(t) {
1249
- return function(...e) {
1250
- const r = () => {
1251
- var o, i;
1252
- return (i = (o = p.tips)[t]) == null ? void 0 : i.call(o, ...e);
1406
+ static resolveTip(e) {
1407
+ return function(...t) {
1408
+ const i = () => {
1409
+ var o, r;
1410
+ return (r = (o = g.tips)[e]) == null ? void 0 : r.call(o, ...t);
1253
1411
  };
1254
- return new wt(r);
1412
+ return new yt(i);
1255
1413
  };
1256
1414
  }
1257
- static rejectTip(t) {
1258
- return function(...e) {
1259
- const r = () => {
1260
- var o, i;
1261
- return (i = (o = p.tips)[t]) == null ? void 0 : i.call(o, ...e);
1415
+ static rejectTip(e) {
1416
+ return function(...t) {
1417
+ const i = () => {
1418
+ var o, r;
1419
+ return (r = (o = g.tips)[e]) == null ? void 0 : r.call(o, ...t);
1262
1420
  };
1263
- return new vt(r);
1421
+ return new vt(i);
1264
1422
  };
1265
1423
  }
1266
1424
  };
1267
- F(p, "tips", {
1425
+ C(g, "tips", {
1268
1426
  info: void 0,
1269
1427
  success: void 0,
1270
1428
  warning: void 0,
1271
1429
  error: void 0
1272
- }), F(p, "info", p.resolveTip("info")), F(p, "success", p.resolveTip("success")), F(p, "warning", p.rejectTip("warning")), F(p, "error", p.rejectTip("error"));
1273
- let B = p;
1430
+ }), C(g, "info", g.resolveTip("info")), C(g, "success", g.resolveTip("success")), C(g, "warning", g.rejectTip("warning")), C(g, "error", g.rejectTip("error"));
1431
+ let X = g;
1274
1432
  export {
1275
- _t as _Animate_CreateOscillator,
1433
+ Et as _Animate_CreateOscillator,
1276
1434
  Mt as _Animate_NumericTransition,
1277
- bt as _Animate_Schedule,
1278
- Et as _Blob_ConvertDataToImageUrl,
1279
- Ct as _Browser_CopyToClipboard,
1435
+ _t as _Animate_Schedule,
1436
+ Ct as _Blob_ConvertDataToImageUrl,
1437
+ Pt as _Browser_CalculatePrintableArea,
1438
+ Lt as _Browser_CopyToClipboard,
1280
1439
  Ft as _Browser_GetFrameRate,
1281
- lt as _Browser_KeyedWindowManager,
1282
- se as _Element_CalculateCanvasSize,
1283
- te as _Element_CloseOnOutsideClick,
1284
- ee as _Element_Drag,
1285
- dt as _Element_EnterFullscreen,
1286
- ht as _Element_ExitFullscreen,
1287
- re as _Element_Fullscreen,
1288
- oe as _Element_FullscreenObserver,
1289
- ie as _Element_GetOtherSizeInPixels,
1290
- st as _Element_IsFullscreen,
1291
- ce as _Element_LoadImage,
1292
- ne as _Element_LocalDrag,
1293
- Qt as _Element_ScrollEndListener,
1294
- le as _File_CreateAndDownload,
1295
- pt as _File_Download,
1296
- ae as _File_Read,
1297
- It as _Format_CamelCase,
1298
- Lt as _Format_CapitalizeFirstLetter,
1299
- At as _Format_ExcludeSubstring,
1300
- Rt as _Format_FileSize,
1301
- Q as _Format_HrefName,
1302
- Pt as _Format_NumberWithCommas,
1303
- Ut as _Format_NumberWithUnit,
1304
- Tt as _Format_Percentage,
1305
- jt as _Format_Timestamp,
1306
- he as _Math_CalculateDistance2D,
1307
- de as _Math_GetArcPoints,
1308
- ge as _Math_GetBoundaryIntersection,
1309
- pe as _Math_GetMidpoint,
1310
- ue as _Math_LngLatToPlane,
1311
- me as _Math_PlaneToLngLat,
1440
+ ht as _Browser_KeyedWindowManager,
1441
+ ae as _Element_CalculateCanvasSize,
1442
+ ne as _Element_CloseOnOutsideClick,
1443
+ ie as _Element_Drag,
1444
+ ft as _Element_EnterFullscreen,
1445
+ pt as _Element_ExitFullscreen,
1446
+ oe as _Element_Fullscreen,
1447
+ se as _Element_FullscreenObserver,
1448
+ ce as _Element_GetOtherSizeInPixels,
1449
+ ct as _Element_IsFullscreen,
1450
+ le as _Element_LoadImage,
1451
+ re as _Element_LocalDrag,
1452
+ ee as _Element_ScrollEndListener,
1453
+ he as _File_CreateAndDownload,
1454
+ gt as _File_Download,
1455
+ ue as _File_Read,
1456
+ Ut as _Format_CamelCase,
1457
+ Tt as _Format_CapitalizeFirstLetter,
1458
+ kt as _Format_ExcludeSubstring,
1459
+ jt as _Format_FileSize,
1460
+ J as _Format_HrefName,
1461
+ It as _Format_NumberWithCommas,
1462
+ Rt as _Format_NumberWithUnit,
1463
+ At as _Format_Percentage,
1464
+ St as _Format_Timestamp,
1465
+ ge as _Math_CalculateDistance2D,
1466
+ pe as _Math_GetArcPoints,
1467
+ xe as _Math_GetBoundaryIntersection,
1468
+ we as _Math_GetMidpoint,
1469
+ me as _Math_LngLatToPlane,
1470
+ de as _Math_PlaneToLngLat,
1312
1471
  fe as _Math_PointToLineDistance,
1313
- B as _Tip,
1314
- Zt as _Utility_Clone,
1315
- ft as _Utility_Debounce,
1316
- $t as _Utility_ExecuteWhenIdle,
1317
- Xt as _Utility_GenerateUUID,
1318
- Wt as _Utility_GetTargetByPath,
1319
- Ht as _Utility_InitTargetByPath,
1320
- tt as _Utility_MergeObjects,
1321
- Gt as _Utility_RotateList,
1322
- Vt as _Utility_SetTargetByPath,
1323
- Jt as _Utility_Sleep,
1324
- Bt as _Utility_Throttle,
1325
- Kt as _Utility_TimeConsumption,
1326
- Yt as _Utility_WaitForCondition,
1327
- qt as _Valid_CheckConnectionWithXHR,
1328
- ot as _Valid_DataType,
1329
- Ot as _Valid_DoesInfiniteLineIntersectRectangle,
1330
- it as _Valid_FileTypeChecker,
1331
- kt as _Valid_Is2DNumberArray,
1332
- Dt as _Valid_IsInMargin,
1472
+ X as _Tip,
1473
+ Qt as _Utility_Clone,
1474
+ dt as _Utility_Debounce,
1475
+ Yt as _Utility_ExecuteWhenIdle,
1476
+ Ht as _Utility_GenerateUUID,
1477
+ Gt as _Utility_GetTargetByPath,
1478
+ Vt as _Utility_InitTargetByPath,
1479
+ ot as _Utility_MergeObjects,
1480
+ Kt as _Utility_RotateList,
1481
+ Zt as _Utility_SetTargetByPath,
1482
+ te as _Utility_Sleep,
1483
+ Wt as _Utility_Throttle,
1484
+ Jt as _Utility_TimeConsumption,
1485
+ Xt as _Utility_WaitForCondition,
1486
+ $t as _Valid_CheckConnectionWithXHR,
1487
+ tt as _Valid_DataType,
1488
+ Bt as _Valid_DoesInfiniteLineIntersectRectangle,
1489
+ rt as _Valid_FileTypeChecker,
1490
+ Ot as _Valid_Is2DNumberArray,
1491
+ zt as _Valid_IsInMargin,
1333
1492
  mt as _Valid_IsNumberArray,
1334
- St as _Valid_IsObject,
1335
- zt as _Valid_IsPointInPolygon,
1336
- Nt as _Valid_IsSecureContext
1493
+ Dt as _Valid_IsObject,
1494
+ Nt as _Valid_IsPointInPolygon,
1495
+ qt as _Valid_IsSecureContext
1337
1496
  };