nhanh-pure-function 3.0.2 → 3.0.3

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, G) => {
27
+ const I = [];
28
+ return v >= W && I.push("最小值必须小于最大值"), G <= 0 ? I.push("分段数必须为正数") : d() == 0 && I.push("数值精度过低,致使动画步长为 0"), I;
29
+ }, k = (v, W, G) => {
30
+ const I = P(v, W, G);
31
+ return I.length > 0 ? (console.error(`参数更新失败: ${I.join("; ")}`), !1) : (a = v, l = W, h = G, 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,306 @@ 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((n) => ({
415
+ value: n,
416
+ label: n
417
+ }));
418
+ function Ft(n, e = 10) {
419
+ let t = 0, i = e;
420
+ function o() {
421
+ if (i > 0)
422
+ i--, requestAnimationFrame(o);
423
+ else {
424
+ const c = (+/* @__PURE__ */ new Date() - t) / e, s = 1e3 / c;
425
+ n(Number(s.toFixed(2)), Number(c.toFixed(2)));
426
+ }
427
+ }
428
+ requestAnimationFrame(() => {
429
+ t = +/* @__PURE__ */ new Date(), o();
430
+ });
431
+ }
463
432
  function Lt(n) {
433
+ const e = () => Promise.resolve(), t = (s) => (console.error(s), Promise.reject(s));
434
+ function i() {
435
+ return navigator.clipboard.writeText(n).then(e).catch(t);
436
+ }
437
+ function o() {
438
+ const s = document.createElement("div");
439
+ s.innerText = n, document.body.appendChild(s);
440
+ const a = document.createRange();
441
+ a.selectNodeContents(s);
442
+ const l = window.getSelection();
443
+ let h = !1;
444
+ return l && (l.removeAllRanges(), l.addRange(a), h = document.execCommand("copy")), document.body.removeChild(s), h ? Promise.resolve() : Promise.reject();
445
+ }
446
+ function r() {
447
+ const s = document.createElement("textarea");
448
+ s.value = n, document.body.appendChild(s), s.select(), s.setSelectionRange(0, n.length);
449
+ let a = !1;
450
+ return document.activeElement === s && (a = document.execCommand("Copy", !0)), document.body.removeChild(s), a ? Promise.resolve() : Promise.reject();
451
+ }
452
+ function c() {
453
+ return o().then(e).catch(() => {
454
+ r().then(e).catch(() => t("复制方式尽皆失效"));
455
+ });
456
+ }
457
+ return navigator.clipboard ? i().catch(c) : c();
458
+ }
459
+ class ht {
460
+ /** 请使用静态方法 */
461
+ constructor() {
462
+ }
463
+ /** 添加已有窗口 */
464
+ static add(e, t) {
465
+ this.keys.set(e, t);
466
+ }
467
+ /**
468
+ * 根据键打开或聚焦窗口
469
+ * @param key 窗口的唯一键
470
+ * @param url 要打开的URL
471
+ * @param target 窗口的目标
472
+ * @param windowFeatures 新窗口的特性
473
+ * @returns 返回已打开或新打开的窗口
474
+ */
475
+ static open(e, t, i, o) {
476
+ const r = this.keys.get(e);
477
+ if (r && !r.closed)
478
+ return r.focus(), r;
479
+ {
480
+ const c = window.open(t, i, o);
481
+ if (c)
482
+ return this.keys.set(e, c), c;
483
+ console.error("window.open failed: 可能是浏览器阻止了弹出窗口"), this.keys.delete(e);
484
+ }
485
+ }
486
+ /**
487
+ * 检查指定键的窗口是否打开
488
+ * @param key 窗口的唯一键
489
+ * @returns 如果窗口打开则返回true,否则返回false
490
+ */
491
+ static isOpen(e) {
492
+ const t = this.keys.get(e);
493
+ return t != null && t.closed && this.keys.delete(e), this.keys.has(e);
494
+ }
495
+ /**
496
+ * 获取与指定键关联的窗口
497
+ * @param key 窗口的唯一键
498
+ * @returns 返回对应的窗口,如果窗口已关闭则返回undefined
499
+ */
500
+ static getWindow(e) {
501
+ if (this.isOpen(e)) return this.keys.get(e);
502
+ }
503
+ /**
504
+ * 关闭与指定键关联的窗口
505
+ * @param key 窗口的唯一键
506
+ */
507
+ static close(e) {
508
+ const t = this.keys.get(e);
509
+ t && (t.close(), this.keys.delete(e));
510
+ }
511
+ /**
512
+ * 关闭所有打开的窗口并清空Map
513
+ */
514
+ static closeAll() {
515
+ this.keys.forEach((e, t) => e.close()), this.keys.clear();
516
+ }
517
+ }
518
+ // 存储键与对应窗口的Map
519
+ C(ht, "keys", /* @__PURE__ */ new Map());
520
+ function Pt(n, e) {
521
+ const t = st[n];
522
+ if (!t) throw new Error(`未知纸张类型: ${n}`);
523
+ 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);
524
+ return {
525
+ /** 内容宽度(像素) */
526
+ contentWidth: p,
527
+ /** 内容高度(像素) */
528
+ contentHeight: y,
529
+ /** 边距(像素) */
530
+ paddingPx: d,
531
+ /** 纸张宽度(像素) */
532
+ paperWidthPx: l,
533
+ /** 纸张高度(像素) */
534
+ paperHeightPx: h
535
+ };
536
+ }
537
+ function Tt(n) {
464
538
  return n.charAt(0).toUpperCase() + n.slice(1);
465
539
  }
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) + "%";
540
+ function At(n, e, t = 2) {
541
+ 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
542
  }
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;
543
+ function It(n) {
544
+ const t = n.toString().split("."), i = t[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
545
+ return t.length > 1 ? i + "." + t[1] : i;
472
546
  }
473
- function Ut(n, t) {
474
- const e = {
547
+ function Rt(n, e) {
548
+ const t = {
475
549
  join: !0,
476
550
  suffix: "",
477
551
  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;
552
+ }, { join: i, suffix: o, decimalPlaces: r } = {
553
+ ...t,
554
+ ...e || {}
555
+ }, c = Number(n);
556
+ if (isNaN(c)) return i ? `0${o}` : [0, o];
557
+ 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)));
558
+ return i ? `${p}${it[l]}${o}` : [p, it[l] + o];
559
+ }
560
+ function jt(n) {
561
+ const e = ["B", "KB", "MB", "GB", "TB", "PB"];
562
+ let t = 0;
489
563
  for (; n > 1024; )
490
- n /= 1024, e++;
491
- return `${Math.round(n * 100) / 100} ${t[e]}`;
564
+ n /= 1024, t++;
565
+ return `${Math.round(n * 100) / 100} ${e[t]}`;
492
566
  }
493
- function jt(n, t = "YYYY-MM-DD hh:mm:ss", e = !0) {
494
- const r = new Date(n);
495
- if (isNaN(r.getTime()))
567
+ function St(n, e = "YYYY-MM-DD hh:mm:ss", t = !0) {
568
+ const i = new Date(n);
569
+ if (isNaN(i.getTime()))
496
570
  return console.error("Invalid date"), "";
497
571
  const o = {
498
- YYYY: (i) => i.getFullYear(),
499
- MM: (i) => i.getMonth() + 1,
572
+ YYYY: (r) => r.getFullYear(),
573
+ MM: (r) => r.getMonth() + 1,
500
574
  // 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()
575
+ DD: (r) => r.getDate(),
576
+ hh: (r) => r.getHours(),
577
+ mm: (r) => r.getMinutes(),
578
+ ss: (r) => r.getSeconds(),
579
+ ms: (r) => r.getMilliseconds()
506
580
  };
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);
581
+ return e.replace(/YYYY|MM|DD|hh|mm|ss|ms/g, (r) => {
582
+ const c = o[r](i);
583
+ return t ? String(c).padStart(2, "0") : String(c);
510
584
  });
511
585
  }
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];
586
+ function J(n, e = "file") {
587
+ if (!n || (n = String(n).trim(), n === "")) return e;
588
+ const t = n.split("/");
589
+ return t[t.length - 1].split("?")[0];
516
590
  }
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;
591
+ function Ut(n, e) {
592
+ return n = n.replace(/([^a-zA-Z][a-z])/g, (t) => t.toUpperCase()), e ? n.replace(/[^a-zA-Z]+/g, "") : n;
519
593
  }
520
- function At(n, t, e = ",") {
521
- const r = new RegExp(
522
- `(^|${e})${t}(${e}|$)`,
594
+ function kt(n, e, t = ",") {
595
+ const i = new RegExp(
596
+ `(^|${t})${e}(${t}|$)`,
523
597
  "g"
524
598
  );
525
- return n.replace(r, function(o, i, s) {
526
- return i === s ? e : "";
599
+ return n.replace(i, function(o, r, c) {
600
+ return r === c ? t : "";
527
601
  });
528
602
  }
529
- function St(n) {
603
+ function Dt(n) {
530
604
  return !(n === null || typeof n != "object" || Array.isArray(n));
531
605
  }
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;
606
+ function mt(n, e = 2) {
607
+ if (Array.isArray(n) && n.length >= e) {
608
+ for (let i = 0; i < n.length; i++)
609
+ if (typeof n[i] != "number" || !Number.isFinite(n[i])) return !1;
536
610
  } else return !1;
537
611
  return !0;
538
612
  }
539
- function kt(n, t = 1, e = 2) {
540
- if (Array.isArray(n) && n.length >= t) {
613
+ function Ot(n, e = 1, t = 2) {
614
+ if (Array.isArray(n) && n.length >= e) {
541
615
  for (let o = 0; o < n.length; o++)
542
- if (!mt(n[o], e)) return !1;
616
+ if (!mt(n[o], t)) return !1;
543
617
  } else return !1;
544
618
  return !0;
545
619
  }
546
- function Dt(n, t, e) {
547
- return Math.abs(n - t) <= e;
620
+ function zt(n, e, t) {
621
+ return Math.abs(n - e) <= t;
548
622
  }
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);
623
+ function Nt(n, e) {
624
+ let t = !1;
625
+ const { x: i, y: o } = n, r = e.length;
626
+ for (let c = 0, s = r - 1; c < r; s = c++) {
627
+ const a = e[c].x, l = e[c].y, h = e[s].x, d = e[s].y;
628
+ l > o != d > o && i < (h - a) * (o - l) / (d - l) + a && (t = !t);
555
629
  }
556
- return e;
630
+ return t;
557
631
  }
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],
632
+ function Bt(n, e, t, i) {
633
+ 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 = [
634
+ [o, c],
561
635
  // 左上
562
- [i, s],
636
+ [r, c],
563
637
  // 右上
564
- [i, c],
638
+ [r, s],
565
639
  // 右下
566
- [o, c]
640
+ [o, s]
567
641
  // 左下
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;
642
+ ], l = i[1] - t[1], h = t[0] - i[0], d = i[0] * t[1] - t[0] * i[1];
643
+ if (l === 0 && h === 0) {
644
+ const [P, k] = t;
645
+ return P >= o && P <= r && k >= c && k <= s;
572
646
  }
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))
647
+ const p = 1e-10;
648
+ let y = !1, w = !1;
649
+ for (const [P, k] of a) {
650
+ const H = l * P + h * k + d;
651
+ if (Math.abs(H) < p || (H > p ? y = !0 : w = !0, y && w))
578
652
  return !0;
579
653
  }
580
- return v && E;
654
+ return y && w;
581
655
  }
582
- function ot(n) {
583
- return Array.isArray(n) ? "array" : n === null ? "null" : typeof n;
656
+ function tt(n) {
657
+ return Object.prototype.toString.call(n).slice(8, -1).toLowerCase();
584
658
  }
585
- function Nt(n) {
659
+ function qt(n) {
586
660
  return [
587
661
  "https:",
588
662
  // HTTPS协议,用于安全地浏览网页
@@ -604,51 +678,51 @@ function Nt(n) {
604
678
  // Remote Desktop Protocol,用于安全的远程桌面连接
605
679
  "vpn:"
606
680
  // VPN协议,用于创建安全的网络连接
607
- ].some((e) => n.startsWith(e));
681
+ ].some((t) => n.startsWith(t));
608
682
  }
609
- function qt(n) {
610
- return new Promise((t, e) => {
683
+ function $t(n) {
684
+ return new Promise((e, t) => {
611
685
  if (typeof n != "string" || n.trim() === "" || !n.includes("://")) {
612
- e(new Error("Invalid URL: Must be a non-empty string"));
686
+ t(new Error("Invalid URL: Must be a non-empty string"));
613
687
  return;
614
688
  }
615
689
  try {
616
690
  new XMLHttpRequest().open("HEAD", n, !0);
617
- } catch (i) {
618
- e(new Error(`Invalid URL format: ${i.message}`));
691
+ } catch (r) {
692
+ t(new Error(`Invalid URL format: ${r.message}`));
619
693
  return;
620
694
  }
621
- const r = new XMLHttpRequest();
622
- r.open("HEAD", n, !0);
623
- const o = (i) => {
624
- e(new Error(`Request failed: ${i.type}`));
695
+ const i = new XMLHttpRequest();
696
+ i.open("HEAD", n, !0);
697
+ const o = (r) => {
698
+ t(new Error(`Request failed: ${r.type}`));
625
699
  };
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;
700
+ i.onreadystatechange = function() {
701
+ 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}`)));
702
+ }, i.onerror = o, i.onabort = o, i.ontimeout = o;
629
703
  try {
630
- r.send();
631
- } catch (i) {
632
- e(new Error(`Request send failed: ${i.message}`));
704
+ i.send();
705
+ } catch (r) {
706
+ t(new Error(`Request send failed: ${r.message}`));
633
707
  }
634
708
  });
635
709
  }
636
- const P = class P {
710
+ const T = class T {
637
711
  constructor() {
638
- if (new.target === P)
712
+ if (new.target === T)
639
713
  throw new Error("请直接使用静态方法,而不是实例化此类");
640
714
  }
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);
715
+ static check(e, t) {
716
+ if (!e || typeof e != "string")
717
+ return console.error("Invalid URL provided"), t ? !1 : "unknown";
718
+ const i = J(e).toLowerCase();
719
+ if (t) {
720
+ if (!Q.hasOwnProperty(t))
721
+ return console.error(`Unknown file type: ${t}`), "unknown";
722
+ const o = Q[t];
723
+ return T._checkExtension(i, o);
650
724
  }
651
- return P._detectFileType(r);
725
+ return T._detectFileType(i);
652
726
  }
653
727
  /**
654
728
  * 静态方法,用于解析地址信息
@@ -658,10 +732,10 @@ const P = class P {
658
732
  * @param {string} url - 以逗号分隔的URL字符串,每个URL代表一个资源的位置
659
733
  * @returns {Array} - 包含每个URL及其相关信息(名称和类型)的对象数组
660
734
  */
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 };
735
+ static parseAddresses(e) {
736
+ return !e || typeof e != "string" ? (console.error("Invalid URL provided"), []) : e.split(",").map((t) => {
737
+ const i = J(t), o = this.check(t);
738
+ return { url: t, name: i, type: o };
665
739
  });
666
740
  }
667
741
  /**
@@ -670,13 +744,13 @@ const P = class P {
670
744
  * @param {string} [accept] - 可接受的 MIME 类型模式(如 "image/*, text/plain")
671
745
  * @returns {boolean} - 如果类型匹配,则返回 true,否则返回 false
672
746
  */
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);
747
+ static matchesMimeType(e, t) {
748
+ if (!t) return !0;
749
+ if (typeof e != "string" || typeof t != "string") return !1;
750
+ const i = T._normalizeType(e), o = t.split(",").map((s) => T._normalizeType(s.trim())), [r, c = "*"] = i.split("/");
751
+ return o.some((s) => {
752
+ const [a, l = "*"] = s.split("/");
753
+ return (a === "*" || r === "*" || a === r) && (l === "*" || c === "*" || l === c);
680
754
  });
681
755
  }
682
756
  /**
@@ -687,8 +761,8 @@ const P = class P {
687
761
  * @param {string} type - 文件类型或MIME类型字符串
688
762
  * @returns {string} 标准化的MIME类型字符串,如果无法识别则返回原始输入
689
763
  */
690
- static _normalizeType(t) {
691
- return t.startsWith(".") && !t.includes("/") ? ut[t.toLowerCase()] || t : t.includes("/") ? t : `${t}/*`;
764
+ static _normalizeType(e) {
765
+ return e.startsWith(".") && !e.includes("/") ? ut[e.toLowerCase()] || e : e.includes("/") ? e : `${e}/*`;
692
766
  }
693
767
  /**
694
768
  * 检查URL是否具有任何指定的文件扩展名
@@ -696,201 +770,283 @@ const P = class P {
696
770
  * @param {string[]} validExtensions - 有效文件扩展名的数组
697
771
  * @returns {boolean} - 如果URL具有任何指定的文件扩展名,则返回true,否则返回false
698
772
  */
699
- static _checkExtension(t, e) {
700
- return e.some((r) => t.endsWith(r));
773
+ static _checkExtension(e, t) {
774
+ return t.some((i) => e.endsWith(i));
701
775
  }
702
776
  /**
703
777
  * 检测文件URL的类型
704
778
  * @param {string} url - 文件的URL
705
779
  * @returns {string} - 如果URL与任何已知类型匹配,则返回文件类型,否则返回"unknown"
706
780
  */
707
- static _detectFileType(t) {
708
- for (const [e, r] of P.cachedEntries)
709
- if (r.some((o) => t.endsWith(o)))
710
- return e;
781
+ static _detectFileType(e) {
782
+ for (const [t, i] of T.cachedEntries)
783
+ if (i.some((o) => e.endsWith(o)))
784
+ return t;
711
785
  return "unknown";
712
786
  }
713
787
  };
714
788
  // 缓存文件扩展名的条目,以提高性能
715
- F(P, "cachedEntries", Object.entries(J));
716
- let it = P;
717
- function $t(n) {
789
+ C(T, "cachedEntries", Object.entries(Q));
790
+ let rt = T;
791
+ function Yt(n) {
718
792
  if (typeof n != "function")
719
793
  return console.error("非函数:", n);
720
- const t = function(e) {
721
- e.didTimeout || e.timeRemaining() <= 0 ? requestIdleCallback(t) : n();
794
+ const e = function(t) {
795
+ t.didTimeout || t.timeRemaining() <= 0 ? requestIdleCallback(e) : n();
722
796
  };
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);
797
+ requestIdleCallback(e);
798
+ }
799
+ function Xt(n, e) {
800
+ const t = +/* @__PURE__ */ new Date();
801
+ return new Promise((i, o) => {
802
+ const r = () => {
803
+ if (+/* @__PURE__ */ new Date() - t >= e) return o("超时");
804
+ if (n()) return i("完成");
805
+ requestIdleCallback(r);
732
806
  };
733
- i();
807
+ r();
734
808
  });
735
809
  }
736
- function tt(n, t, e = [], r = +/* @__PURE__ */ new Date()) {
737
- if (r < +/* @__PURE__ */ new Date() - 50) {
810
+ function ot(n, e, t = [], i = +/* @__PURE__ */ new Date()) {
811
+ if (i < +/* @__PURE__ */ new Date() - 50) {
738
812
  console.error("_MergeObjects 合并异常:疑似死循环");
739
813
  return;
740
814
  }
741
- const o = ot(n), i = ot(t);
742
- if (o != i) return t;
815
+ const o = tt(n), r = tt(e);
816
+ if (o != r) return e;
743
817
  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
818
+ if (t.some(([c, s]) => c == n && s == e)) return n;
819
+ if (t.push([n, e]), o == "object") {
820
+ for (const c in e)
821
+ if (Object.prototype.hasOwnProperty.call(e, c)) {
822
+ const s = e[c], a = n[c], l = ot(
823
+ a,
824
+ s,
825
+ t,
826
+ i
753
827
  );
754
- n[s] = l;
828
+ n[c] = l;
755
829
  }
756
830
  return n;
757
831
  } else if (o == "array")
758
- return t.forEach((s, c) => {
759
- const u = s, l = n[c], m = tt(
832
+ return e.forEach((c, s) => {
833
+ const a = c, l = n[s], h = ot(
760
834
  l,
761
- u,
762
- e,
763
- r
835
+ a,
836
+ t,
837
+ i
764
838
  );
765
- n[c] = m;
839
+ n[s] = h;
766
840
  }), n;
767
- } else return t;
841
+ } else return e;
768
842
  }
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);
843
+ function Ht(n = "") {
844
+ return n + "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
845
+ const t = Math.random() * 16 | 0;
846
+ return (e === "x" ? t : t & 3 | 8).toString(16);
773
847
  });
774
848
  }
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);
849
+ function dt(n, e) {
850
+ let t;
851
+ return function(...i) {
852
+ clearTimeout(t), t = setTimeout(() => {
853
+ n(...i), t = void 0;
854
+ }, e);
781
855
  };
782
856
  }
783
- function Bt(n, t) {
784
- let e = -1 / 0;
785
- return function(...r) {
857
+ function Wt(n, e) {
858
+ let t = -1 / 0;
859
+ return function(...i) {
786
860
  const o = performance.now();
787
- if (o - e > t) {
788
- e = o;
861
+ if (o - t > e) {
862
+ t = o;
789
863
  try {
790
- n(...r);
791
- } catch (i) {
792
- console.error("Throttled function execution failed:", i);
864
+ n(...i);
865
+ } catch (r) {
866
+ console.error("Throttled function execution failed:", r);
793
867
  }
794
868
  }
795
869
  };
796
870
  }
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);
871
+ function Gt(n, e, t) {
872
+ if (!n || !e) return n;
873
+ const i = e.split(".");
874
+ return i.reduce((o, r, c) => o.hasOwnProperty(r) ? o[r] : c === i.length - 1 ? o[r] = t : o[r] = {}, n);
801
875
  }
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);
876
+ function Vt(n, e) {
877
+ if (!n || !e) return n;
878
+ const t = e.split(".");
879
+ return t.reduce((i, o, r) => i.hasOwnProperty(o) ? i[o] : r == t.length - 1 ? void 0 : {}, n);
806
880
  }
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);
881
+ function Zt(n, e, t) {
882
+ if (!n || !e) return n;
883
+ const i = e.split(".");
884
+ return i.reduce((o, r, c) => (c === i.length - 1 && (o[r] = t), o.hasOwnProperty(r) ? o[r] : o[r] = {}), n);
811
885
  }
812
- function Gt(n) {
813
- return n.map((t, e) => n.slice(e).concat(n.slice(0, e)));
886
+ function Kt(n) {
887
+ return n.map((e, t) => n.slice(t).concat(n.slice(0, t)));
814
888
  }
815
- function Zt(n) {
816
- const t = window.structuredClone, e = (r) => r === null || typeof r != "object" ? r : tt(Array.isArray(r) ? [] : {}, r);
889
+ function Qt(n) {
890
+ const e = window.structuredClone, t = (i, o = /* @__PURE__ */ new WeakMap()) => {
891
+ const r = i;
892
+ if (r === null || typeof r != "object")
893
+ return r;
894
+ if (o.has(r))
895
+ return o.get(r);
896
+ switch (tt(r)) {
897
+ case "array": {
898
+ const s = [];
899
+ o.set(r, s);
900
+ for (const a of r)
901
+ s.push(t(a, o));
902
+ return s;
903
+ }
904
+ case "object": {
905
+ if (r === null) return r;
906
+ const s = {};
907
+ o.set(r, s);
908
+ for (const a in r)
909
+ Object.prototype.hasOwnProperty.call(r, a) && (s[a] = t(r[a], o));
910
+ return s;
911
+ }
912
+ case "date": {
913
+ const s = new Date(r.getTime());
914
+ return o.set(r, s), s;
915
+ }
916
+ case "regexp": {
917
+ const s = r, a = new RegExp(s.source, s.flags);
918
+ return a.lastIndex = s.lastIndex, o.set(r, a), a;
919
+ }
920
+ case "map": {
921
+ const s = /* @__PURE__ */ new Map();
922
+ return o.set(r, s), r.forEach((a, l) => {
923
+ s.set(
924
+ t(l, o),
925
+ t(a, o)
926
+ );
927
+ }), s;
928
+ }
929
+ case "set": {
930
+ const s = /* @__PURE__ */ new Set();
931
+ return o.set(r, s), r.forEach((a) => {
932
+ s.add(t(a, o));
933
+ }), s;
934
+ }
935
+ // 处理其他可克隆对象类型
936
+ case "arraybuffer":
937
+ case "dataview":
938
+ case "int8array":
939
+ case "uint8array":
940
+ case "uint8clampedarray":
941
+ case "int16array":
942
+ case "uint16array":
943
+ case "int32array":
944
+ case "uint32array":
945
+ case "float32array":
946
+ case "float64array":
947
+ case "bigint64array":
948
+ case "biguint64array": {
949
+ const s = r, a = s.constructor, l = s.buffer.slice(
950
+ s.byteOffset,
951
+ s.byteOffset + s.byteLength
952
+ ), h = new a(
953
+ l,
954
+ s.byteOffset,
955
+ s.byteLength / s.BYTES_PER_ELEMENT
956
+ );
957
+ return o.set(r, h), h;
958
+ }
959
+ // 处理特殊对象类型
960
+ case "error": {
961
+ const s = r, a = new s.constructor(s.message);
962
+ return a.stack = s.stack, a.name = s.name, o.set(r, a), a;
963
+ }
964
+ // 处理不可克隆对象(直接返回原值)
965
+ case "function":
966
+ case "promise":
967
+ case "weakmap":
968
+ case "weakset":
969
+ default:
970
+ return r;
971
+ }
972
+ };
817
973
  try {
818
- return t ? t(n) : e(n);
819
- } catch (r) {
820
- return console.error("structuredClone error:", r), t && e(n);
974
+ return e ? e(n) : t(n);
975
+ } catch (i) {
976
+ return console.error("structuredClone error:", i), e && t(n);
821
977
  }
822
978
  }
823
- function Kt(n, t, e = 30) {
979
+ function Jt(n, e, t = 30) {
824
980
  if (typeof n != "function")
825
981
  return console.error("第一个参数必须是一个函数。");
826
- if (!Array.isArray(t))
982
+ if (!Array.isArray(e))
827
983
  return console.error("第二个参数必须是一个数组。");
828
- let r = [], o = 0;
829
- const i = (s, c) => {
830
- for (const [u, l] of c)
831
- if (s >= u)
984
+ let i = [], o = 0;
985
+ const r = (c, s) => {
986
+ for (const [a, l] of s)
987
+ if (c >= a)
832
988
  return l;
833
989
  return "black";
834
990
  };
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);
991
+ return function(...c) {
992
+ const s = performance.now(), a = n(...c), l = performance.now() - s;
993
+ i.push(l), i.length > t && i.shift(), o = i.reduce((p, y) => p + y, 0) / i.length || 0;
994
+ const h = r(l, e), d = r(o, e);
839
995
  return console.log(
840
996
  `%c单次耗时:${l.toFixed(2)}ms
841
- %c平均耗时(${r.length}次):${o.toFixed(2)}ms`,
842
- `color: ${m}; padding: 2px 0;`,
997
+ %c平均耗时(${i.length}次):${o.toFixed(2)}ms`,
998
+ `color: ${h}; padding: 2px 0;`,
843
999
  `color: ${d}; padding: 2px 0;`
844
- ), u;
1000
+ ), a;
845
1001
  };
846
1002
  }
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);
1003
+ function te(n) {
1004
+ const e = Date.now();
1005
+ let t = performance.now();
1006
+ for (; Date.now() - e < n; ) {
1007
+ t = Math.sin(t) * 1e6, (t > 1e6 || t < -1e6) && (t = 0);
852
1008
  try {
853
- const r = e.toString().substring(0, 8);
854
- history.replaceState(null, "", `#${r}`);
1009
+ const i = t.toString().substring(0, 8);
1010
+ history.replaceState(null, "", `#${i}`);
855
1011
  } catch {
856
1012
  }
857
1013
  }
858
- return Date.now() - t;
1014
+ return Date.now() - e;
859
1015
  }
860
- function Qt(n) {
861
- const t = ft(n, 100);
862
- let e = 0, r = 0;
1016
+ function ee(n) {
1017
+ const e = dt(n, 100);
1018
+ let t = 0, i = 0;
863
1019
  return function(o) {
864
- const i = o.target;
865
- if (!i || !(i instanceof Element)) return;
1020
+ const r = o.target;
1021
+ if (!r || !(r instanceof Element)) return;
866
1022
  const {
867
- scrollTop: s,
868
- scrollHeight: c,
869
- clientHeight: u,
1023
+ scrollTop: c,
1024
+ scrollHeight: s,
1025
+ clientHeight: a,
870
1026
  scrollLeft: l,
871
- scrollWidth: m,
1027
+ scrollWidth: h,
872
1028
  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");
1029
+ } = r;
1030
+ function p() {
1031
+ if (t == c) return;
1032
+ const w = t > c;
1033
+ if (t = c, w) return;
1034
+ s - c - a <= 1 && e("vertical");
879
1035
  }
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");
1036
+ function y() {
1037
+ if (i == l) return;
1038
+ const w = i > l;
1039
+ if (i = l, w) return;
1040
+ h - l - d <= 1 && e("horizontal");
885
1041
  }
886
- g(), v();
1042
+ p(), y();
887
1043
  };
888
1044
  }
889
- function te(n, t, e) {
890
- const { isClickAllowed: r, uiLibrary: o = ["naiveUI", "ElementPlus", "Element"] } = e || {}, i = function(u) {
1045
+ function ne(n, e, t) {
1046
+ const { isClickAllowed: i, uiLibrary: o = ["naiveUI", "ElementPlus", "Element"] } = t || {}, r = function(a) {
891
1047
  const l = [];
892
- for (const m in u)
893
- Object.hasOwnProperty.call(u, m) && o.includes(m) && l.push(...u[m]);
1048
+ for (const h in a)
1049
+ Object.hasOwnProperty.call(a, h) && o.includes(h) && l.push(...a[h]);
894
1050
  return l;
895
1051
  }({
896
1052
  naiveUI: [
@@ -901,38 +1057,38 @@ function te(n, t, e) {
901
1057
  ElementPlus: [".el-popper"],
902
1058
  Element: [".el-popper"]
903
1059
  });
904
- function s() {
905
- t(), document.removeEventListener("mousedown", c);
1060
+ function c() {
1061
+ e(), document.removeEventListener("mousedown", s);
906
1062
  }
907
- function c(u) {
908
- if (r) {
909
- const d = r(u);
1063
+ function s(a) {
1064
+ if (i) {
1065
+ const d = i(a);
910
1066
  if (d) return;
911
- if (d === !1) return s();
1067
+ if (d === !1) return c();
912
1068
  }
913
- const l = u.target;
1069
+ const l = a.target;
914
1070
  if (!(l instanceof Element) || !l.isConnected) return;
915
- n.concat(i).some((d) => !!(l != null && l.closest(d))) || s();
1071
+ n.concat(r).some((d) => !!(l != null && l.closest(d))) || c();
916
1072
  }
917
1073
  requestAnimationFrame(
918
- () => document.addEventListener("mousedown", c)
1074
+ () => document.addEventListener("mousedown", s)
919
1075
  );
920
1076
  }
921
- var y, j, I, z, O, C, L, U, N;
922
- class ee {
1077
+ var b, R, j, O, z, F, L, A, N;
1078
+ class ie {
923
1079
  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);
1080
+ f(this, b);
1081
+ f(this, R, !1);
1082
+ f(this, j, {});
1083
+ f(this, O, 0);
1084
+ f(this, z, 0);
1085
+ f(this, F, 0);
1086
+ f(this, L, 0);
1087
+ f(this, A);
1088
+ f(this, N);
933
1089
  }
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, {
1090
+ init(e, t) {
1091
+ 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
1092
  mousedown: this.mousedown.bind(this),
937
1093
  mousemove: this.mousemove.bind(this),
938
1094
  mouseup: this.mouseup.bind(this)
@@ -941,47 +1097,47 @@ class ee {
941
1097
  finish() {
942
1098
  this.bindOrUnbindEvent("unbind");
943
1099
  }
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);
1100
+ bindOrUnbindEvent(e) {
1101
+ const t = e === "bind" ? "addEventListener" : "removeEventListener";
1102
+ if (!u(this, b)) return console.error("No DOM");
1103
+ u(this, b)[t]("mousedown", u(this, j).mousedown), document[t]("mousemove", u(this, j).mousemove), document[t]("mouseup", u(this, j).mouseup);
948
1104
  }
949
1105
  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");
1106
+ if (!u(this, b)) return console.error("No DOM");
1107
+ 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
1108
  }
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);
1109
+ mousedown(e) {
1110
+ if (!u(this, b)) return console.error("No DOM");
1111
+ if (u(this, N) && e.target != u(this, N)) return;
1112
+ document.body.classList.add("no-select"), m(this, R, !0);
1113
+ const t = u(this, b).getBoundingClientRect(), { pageX: i, pageY: o } = e;
1114
+ m(this, O, i), m(this, z, o), m(this, F, t.y), m(this, L, t.x);
959
1115
  }
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());
1116
+ mousemove(e) {
1117
+ const { pageX: t, pageY: i } = e;
1118
+ 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
1119
  }
964
1120
  mouseup() {
965
- a(this, j) && (f(this, j, !1), document.body.classList.remove("no-select"));
1121
+ u(this, R) && (m(this, R, !1), document.body.classList.remove("no-select"));
966
1122
  }
967
1123
  }
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 {
1124
+ 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();
1125
+ var _, S, U, B, q, E, M, x, $, Y;
1126
+ class re {
971
1127
  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);
1128
+ f(this, _);
1129
+ f(this, S, !1);
1130
+ f(this, U, {});
1131
+ f(this, B, 0);
1132
+ f(this, q, 0);
1133
+ f(this, E, 0);
1134
+ f(this, M, 0);
1135
+ f(this, x);
1136
+ f(this, $);
1137
+ f(this, Y);
982
1138
  }
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, {
1139
+ init(e, t = {}) {
1140
+ m(this, _, e), m(this, x, t.limit), m(this, $, t.update_move), m(this, Y, t.update_up), m(this, U, {
985
1141
  mousedown: this.mousedown.bind(this),
986
1142
  mousemove: this.mousemove.bind(this),
987
1143
  mouseup: this.mouseup.bind(this)
@@ -990,348 +1146,349 @@ class ne {
990
1146
  finish() {
991
1147
  this.bindOrUnbindEvent("unbind");
992
1148
  }
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);
1149
+ bindOrUnbindEvent(e) {
1150
+ const t = e === "bind" ? "addEventListener" : "removeEventListener";
1151
+ if (!u(this, _)) return console.error("No DOM");
1152
+ u(this, _)[t]("mousedown", u(this, U).mousedown), document[t]("mousemove", u(this, U).mousemove), document[t]("mouseup", u(this, U).mouseup);
997
1153
  }
998
1154
  updateValue() {
999
- const t = {
1000
- top: a(this, _),
1001
- left: a(this, M),
1155
+ const e = {
1156
+ top: u(this, E),
1157
+ left: u(this, M),
1002
1158
  percentage: { top: 0, left: 0 }
1003
1159
  };
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
1160
+ if (u(this, x)) {
1161
+ const t = (i) => u(this, x) ? (e[i] - u(this, x).min[i]) / (u(this, x).max[i] - u(this, x).min[i]) : 0;
1162
+ e.percentage = {
1163
+ top: t("top") || 0,
1164
+ left: t("left") || 0
1009
1165
  };
1010
1166
  }
1011
- return t;
1167
+ return e;
1012
1168
  }
1013
1169
  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");
1170
+ if (!u(this, _)) return console.error("No DOM");
1171
+ 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
1172
  }
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();
1173
+ mousedown(e) {
1174
+ if (!u(this, _)) return console.error("No DOM");
1175
+ document.body.classList.add("no-select"), m(this, S, !0);
1176
+ const t = u(this, _).getBoundingClientRect();
1177
+ m(this, q, t.y), m(this, B, t.x);
1178
+ const { pageX: i, pageY: o } = e;
1179
+ m(this, E, o - u(this, q)), m(this, M, i - u(this, B)), this.alterLocation();
1024
1180
  }
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());
1181
+ mousemove(e) {
1182
+ const { pageX: t, pageY: i } = e;
1183
+ u(this, S) && (m(this, E, i - u(this, q)), m(this, M, t - u(this, B)), this.alterLocation());
1028
1184
  }
1029
1185
  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()));
1186
+ u(this, S) && (m(this, S, !1), document.body.classList.remove("no-select"), u(this, Y) && u(this, Y).call(this, this.updateValue()));
1031
1187
  }
1032
1188
  }
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();
1189
+ _ = 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
1190
  function K(n) {
1035
1191
  if (typeof n == "string") {
1036
- const t = document.querySelector(n);
1037
- if (!t) throw new Error(`Element "${n}" not found`);
1038
- return t;
1192
+ const e = document.querySelector(n);
1193
+ if (!e) throw new Error(`Element "${n}" not found`);
1194
+ return e;
1039
1195
  } else
1040
1196
  return n || document.documentElement;
1041
1197
  }
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");
1198
+ function ft(n) {
1199
+ const e = K(n);
1200
+ return e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.msRequestFullscreen ? e.msRequestFullscreen() : Promise.reject("No Fullscreen API");
1045
1201
  }
1046
- function ht() {
1202
+ function pt() {
1047
1203
  const n = document;
1048
1204
  return document.exitFullscreen ? document.exitFullscreen() : n.mozCancelFullScreen ? n.mozCancelFullScreen() : n.webkitExitFullscreen ? n.webkitExitFullscreen() : n.msExitFullscreen ? n.msExitFullscreen() : Promise.reject("No ExitFullscreen API");
1049
1205
  }
1050
- function st(n) {
1051
- const t = K(n), e = document, r = document.fullscreenElement || e.webkitFullscreenElement || e.mozFullScreenElement || e.msFullscreenElement;
1052
- return t == r;
1206
+ function ct(n) {
1207
+ const e = K(n), t = document, i = document.fullscreenElement || t.webkitFullscreenElement || t.mozFullScreenElement || t.msFullscreenElement;
1208
+ return e == i || !n && window.innerWidth == screen.width && window.innerHeight == screen.height;
1053
1209
  }
1054
- function re(n) {
1210
+ function oe(n) {
1055
1211
  return n = K(n), function() {
1056
- st(n) ? ht() : dt(n);
1212
+ ct(n) ? pt() : ft(n);
1057
1213
  };
1058
1214
  }
1059
- function oe(n, t) {
1060
- const e = K(t), r = () => {
1061
- n(st(e));
1215
+ function se(n, e) {
1216
+ const t = K(e), i = () => {
1217
+ n(ct(t));
1062
1218
  };
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);
1219
+ return document.addEventListener("fullscreenchange", i), document.addEventListener("webkitfullscreenchange", i), document.addEventListener("mozfullscreenchange", i), document.addEventListener("MSFullscreenChange", i), i(), () => {
1220
+ document.removeEventListener("fullscreenchange", i), document.removeEventListener("webkitfullscreenchange", i), document.removeEventListener("mozfullscreenchange", i), document.removeEventListener("MSFullscreenChange", i);
1065
1221
  };
1066
1222
  }
1067
- function ie(n, t) {
1223
+ function ce(n, e) {
1068
1224
  if (typeof n == "number") return n;
1069
1225
  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;
1226
+ const t = document.createElement("div");
1227
+ t.style.width = n, e = e || document.body, e.appendChild(t);
1228
+ const i = t.getBoundingClientRect().width;
1229
+ return e.removeChild(t), i;
1074
1230
  }
1075
- function se(n, t) {
1231
+ function ae(n, e) {
1076
1232
  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];
1233
+ let t, i;
1234
+ if (typeof e == "string") {
1235
+ const r = document.querySelector(e);
1236
+ if (!r) return;
1237
+ const c = r.getBoundingClientRect();
1238
+ t = c.width, i = c.height;
1239
+ } else if (Array.isArray(e))
1240
+ t = e[0], i = e[1];
1085
1241
  else {
1086
- const i = t.getBoundingClientRect();
1087
- e = i.width, r = i.height;
1242
+ const r = e.getBoundingClientRect();
1243
+ t = r.width, i = r.height;
1088
1244
  }
1089
- const o = e / r;
1090
- return o > n ? [n * r, r] : o < n ? [e, e / n] : [e, r];
1245
+ const o = t / i;
1246
+ return o > n ? [n * i, i] : o < n ? [t, t / n] : [t, i];
1091
1247
  }
1092
- function ce(n, t = 5e3) {
1093
- return new Promise((e, r) => {
1248
+ function le(n, e = 5e3) {
1249
+ return new Promise((t, i) => {
1094
1250
  const o = new Image();
1095
1251
  o.src = n;
1096
- const i = setTimeout(() => {
1097
- r(new Error("图片加载超时")), o.onload = null, o.onerror = null;
1098
- }, t);
1252
+ const r = setTimeout(() => {
1253
+ i(new Error("图片加载超时")), o.onload = null, o.onerror = null;
1254
+ }, e);
1099
1255
  o.onload = () => {
1100
- clearTimeout(i);
1101
- const s = o.naturalWidth, c = o.naturalHeight, u = s / c;
1102
- e([o, u]);
1256
+ clearTimeout(r);
1257
+ const c = o.naturalWidth, s = o.naturalHeight, a = c / s;
1258
+ t([o, a]);
1103
1259
  }, o.onerror = () => {
1104
- clearTimeout(i), r(new Error("图片加载失败"));
1260
+ clearTimeout(r), i(new Error("图片加载失败"));
1105
1261
  }, o.crossOrigin = "Anonymous";
1106
1262
  });
1107
1263
  }
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);
1264
+ function ue(n) {
1265
+ return new Promise((e, t) => {
1266
+ fetch(n).then((i) => e(i.text())).catch((i) => {
1267
+ console.error("Error fetching :", i), t(i);
1112
1268
  });
1113
1269
  });
1114
1270
  }
1115
- function pt(n, t) {
1116
- return new Promise((e, r) => {
1271
+ function gt(n, e) {
1272
+ return new Promise((t, i) => {
1117
1273
  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);
1274
+ e = e || J(n, "downloaded_file"), fetch(n).then((o) => (o.ok || i(`文件下载失败,状态码: ${o.status}`), o.blob())).then((o) => {
1275
+ const r = URL.createObjectURL(o), c = document.createElement("a");
1276
+ c.href = r, c.download = decodeURIComponent(e), document.body.appendChild(c), c.click(), document.body.removeChild(c), URL.revokeObjectURL(r), t(o);
1277
+ }).catch(i);
1122
1278
  } catch (o) {
1123
- r(o);
1279
+ i(o);
1124
1280
  }
1125
1281
  });
1126
1282
  }
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 };
1283
+ function he(n, e, t) {
1284
+ if (!t) {
1285
+ let r = e.replace(/^[^.]+./, "");
1286
+ r = r == e ? "text/plain" : "application/" + r, t = { type: r };
1131
1287
  }
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
1288
+ const i = new Blob(n, t), o = URL.createObjectURL(i);
1289
+ gt(o, e);
1290
+ }
1291
+ const wt = Math.PI / 2, V = Math.PI / 180, Z = 6378137, xt = 85.05112878;
1292
+ function me(n, e) {
1293
+ const t = Math.max(Math.min(n, 180), -180), i = Math.max(Math.min(e, xt), -85.05112878), o = t * V * Z, r = i * V, c = Math.log(Math.tan(Math.PI / 4 + r / 2)) * Z;
1294
+ return [o, c];
1295
+ }
1296
+ function de(n, e) {
1297
+ const t = n / Z / V, i = (2 * Math.atan(Math.exp(e / Z)) - wt) / V;
1298
+ return [t, i];
1299
+ }
1300
+ function fe(n, e, t) {
1301
+ const [i, o] = n, [r, c] = e, [s, a] = t, l = (s - r) ** 2 + (a - c) ** 2;
1302
+ if (l === 0) return Math.sqrt((i - r) ** 2 + (o - c) ** 2);
1303
+ let h = ((i - r) * (s - r) + (o - c) * (a - c)) / l;
1304
+ return h = Math.max(0, Math.min(1, h)), Math.sqrt(
1305
+ (i - (r + h * (s - r))) ** 2 + (o - (c + h * (a - c))) ** 2
1150
1306
  );
1151
1307
  }
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;
1308
+ function pe(n, e, t, i, o, r = 1, c = 1) {
1309
+ 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
1310
  return [
1155
- [c, u],
1156
- [l, m]
1311
+ [s, a],
1312
+ [l, h]
1157
1313
  ];
1158
1314
  }
1159
- function he(n, t, e, r) {
1160
- return Math.hypot(Math.abs(e - n), Math.abs(r - t));
1315
+ function ge(n, e, t, i) {
1316
+ return Math.hypot(Math.abs(t - n), Math.abs(i - e));
1161
1317
  }
1162
- function pe(n, t, e, r) {
1163
- const o = (n + e) / 2, i = (t + r) / 2;
1164
- return { x: o, y: i };
1318
+ function we(n, e, t, i) {
1319
+ const o = (n + t) / 2, r = (e + i) / 2;
1320
+ return { x: o, y: r };
1165
1321
  }
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
- }
1322
+ function xe(n, e, t, i) {
1323
+ const [o, r] = n, [c, s] = e;
1324
+ let a = 1 / 0;
1173
1325
  if (c !== 0) {
1174
- const l = c > 0 ? (r - i) / c : -i / c;
1175
- l > 0 && (u = Math.min(u, l));
1326
+ const l = c > 0 ? (t - o) / c : -o / c;
1327
+ l > 0 && (a = Math.min(a, l));
1328
+ }
1329
+ if (s !== 0) {
1330
+ const l = s > 0 ? (i - r) / s : -r / s;
1331
+ l > 0 && (a = Math.min(a, l));
1176
1332
  }
1177
- return u === 1 / 0 ? n : [o + s * u, i + c * u];
1333
+ return a === 1 / 0 ? n : [o + c * a, r + s * a];
1178
1334
  }
1179
1335
  class D {
1180
- constructor(t, e) {
1181
- F(this, "resolve");
1182
- F(this, "reject");
1183
- this.resolve = t, this.reject = e;
1336
+ constructor(e, t) {
1337
+ C(this, "resolve");
1338
+ C(this, "reject");
1339
+ this.resolve = e, this.reject = t;
1184
1340
  }
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;
1341
+ run(e) {
1342
+ var t, i;
1343
+ return e instanceof Promise ? e.then((o) => {
1344
+ var r;
1345
+ return (r = this.resolve) == null || r.call(this), o;
1190
1346
  }).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;
1347
+ var r;
1348
+ return (r = this.reject) == null || r.call(this), Promise.reject(o);
1349
+ }) : e ? (t = this.resolve) == null || t.call(this) : (i = this.reject) == null || i.call(this), e;
1194
1350
  }
1195
1351
  }
1196
- class wt extends D {
1197
- constructor(t) {
1198
- super(), this.resolve = t;
1352
+ class yt extends D {
1353
+ constructor(e) {
1354
+ super(), this.resolve = e;
1199
1355
  }
1200
- warning(...t) {
1201
- const e = () => {
1202
- var r, o;
1203
- return (o = (r = B.tips).warning) == null ? void 0 : o.call(r, ...t);
1356
+ warning(...e) {
1357
+ const t = () => {
1358
+ var i, o;
1359
+ return (o = (i = X.tips).warning) == null ? void 0 : o.call(i, ...e);
1204
1360
  };
1205
- return new D(this.resolve, e);
1361
+ return new D(this.resolve, t);
1206
1362
  }
1207
- error(...t) {
1208
- const e = () => {
1209
- var r, o;
1210
- return (o = (r = B.tips).error) == null ? void 0 : o.call(r, ...t);
1363
+ error(...e) {
1364
+ const t = () => {
1365
+ var i, o;
1366
+ return (o = (i = X.tips).error) == null ? void 0 : o.call(i, ...e);
1211
1367
  };
1212
- return new D(this.resolve, e);
1368
+ return new D(this.resolve, t);
1213
1369
  }
1214
1370
  }
1215
1371
  class vt extends D {
1216
- constructor(t) {
1217
- super(), this.reject = t;
1372
+ constructor(e) {
1373
+ super(), this.reject = e;
1218
1374
  }
1219
- info(...t) {
1220
- const e = () => {
1221
- var r, o;
1222
- return (o = (r = B.tips).info) == null ? void 0 : o.call(r, ...t);
1375
+ info(...e) {
1376
+ const t = () => {
1377
+ var i, o;
1378
+ return (o = (i = X.tips).info) == null ? void 0 : o.call(i, ...e);
1223
1379
  };
1224
- return new D(e, this.reject);
1380
+ return new D(t, this.reject);
1225
1381
  }
1226
- success(...t) {
1227
- const e = () => {
1228
- var r, o;
1229
- return (o = (r = B.tips).success) == null ? void 0 : o.call(r, ...t);
1382
+ success(...e) {
1383
+ const t = () => {
1384
+ var i, o;
1385
+ return (o = (i = X.tips).success) == null ? void 0 : o.call(i, ...e);
1230
1386
  };
1231
- return new D(e, this.reject);
1387
+ return new D(t, this.reject);
1232
1388
  }
1233
1389
  }
1234
- const p = class p {
1390
+ const g = class g {
1235
1391
  /**
1236
1392
  * 构造函数
1237
1393
  * @throws 如果尝试实例化该类,则抛出错误,因为应该使用静态方法
1238
1394
  */
1239
1395
  constructor() {
1240
- if (new.target === p)
1396
+ if (new.target === g)
1241
1397
  throw new Error("请直接使用静态方法,而不是实例化此类");
1242
1398
  }
1243
- static register(t, e) {
1244
- if (typeof e != "function")
1399
+ static register(e, t) {
1400
+ if (typeof t != "function")
1245
1401
  return console.error("TipHandler must be a function");
1246
- p.tips[t] = e;
1402
+ g.tips[e] = t;
1247
1403
  }
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);
1404
+ static resolveTip(e) {
1405
+ return function(...t) {
1406
+ const i = () => {
1407
+ var o, r;
1408
+ return (r = (o = g.tips)[e]) == null ? void 0 : r.call(o, ...t);
1253
1409
  };
1254
- return new wt(r);
1410
+ return new yt(i);
1255
1411
  };
1256
1412
  }
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);
1413
+ static rejectTip(e) {
1414
+ return function(...t) {
1415
+ const i = () => {
1416
+ var o, r;
1417
+ return (r = (o = g.tips)[e]) == null ? void 0 : r.call(o, ...t);
1262
1418
  };
1263
- return new vt(r);
1419
+ return new vt(i);
1264
1420
  };
1265
1421
  }
1266
1422
  };
1267
- F(p, "tips", {
1423
+ C(g, "tips", {
1268
1424
  info: void 0,
1269
1425
  success: void 0,
1270
1426
  warning: void 0,
1271
1427
  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;
1428
+ }), C(g, "info", g.resolveTip("info")), C(g, "success", g.resolveTip("success")), C(g, "warning", g.rejectTip("warning")), C(g, "error", g.rejectTip("error"));
1429
+ let X = g;
1274
1430
  export {
1275
- _t as _Animate_CreateOscillator,
1431
+ Et as _Animate_CreateOscillator,
1276
1432
  Mt as _Animate_NumericTransition,
1277
- bt as _Animate_Schedule,
1278
- Et as _Blob_ConvertDataToImageUrl,
1279
- Ct as _Browser_CopyToClipboard,
1433
+ _t as _Animate_Schedule,
1434
+ Ct as _Blob_ConvertDataToImageUrl,
1435
+ Lt as _Browser_CopyToClipboard,
1280
1436
  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,
1437
+ Pt as _Browser_GetPrintableArea,
1438
+ ht as _Browser_KeyedWindowManager,
1439
+ ae as _Element_CalculateCanvasSize,
1440
+ ne as _Element_CloseOnOutsideClick,
1441
+ ie as _Element_Drag,
1442
+ ft as _Element_EnterFullscreen,
1443
+ pt as _Element_ExitFullscreen,
1444
+ oe as _Element_Fullscreen,
1445
+ se as _Element_FullscreenObserver,
1446
+ ce as _Element_GetOtherSizeInPixels,
1447
+ ct as _Element_IsFullscreen,
1448
+ le as _Element_LoadImage,
1449
+ re as _Element_LocalDrag,
1450
+ ee as _Element_ScrollEndListener,
1451
+ he as _File_CreateAndDownload,
1452
+ gt as _File_Download,
1453
+ ue as _File_Read,
1454
+ Ut as _Format_CamelCase,
1455
+ Tt as _Format_CapitalizeFirstLetter,
1456
+ kt as _Format_ExcludeSubstring,
1457
+ jt as _Format_FileSize,
1458
+ J as _Format_HrefName,
1459
+ It as _Format_NumberWithCommas,
1460
+ Rt as _Format_NumberWithUnit,
1461
+ At as _Format_Percentage,
1462
+ St as _Format_Timestamp,
1463
+ ge as _Math_CalculateDistance2D,
1464
+ pe as _Math_GetArcPoints,
1465
+ xe as _Math_GetBoundaryIntersection,
1466
+ we as _Math_GetMidpoint,
1467
+ me as _Math_LngLatToPlane,
1468
+ de as _Math_PlaneToLngLat,
1312
1469
  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,
1470
+ X as _Tip,
1471
+ Qt as _Utility_Clone,
1472
+ dt as _Utility_Debounce,
1473
+ Yt as _Utility_ExecuteWhenIdle,
1474
+ Ht as _Utility_GenerateUUID,
1475
+ Vt as _Utility_GetTargetByPath,
1476
+ Gt as _Utility_InitTargetByPath,
1477
+ ot as _Utility_MergeObjects,
1478
+ Kt as _Utility_RotateList,
1479
+ Zt as _Utility_SetTargetByPath,
1480
+ te as _Utility_Sleep,
1481
+ Wt as _Utility_Throttle,
1482
+ Jt as _Utility_TimeConsumption,
1483
+ Xt as _Utility_WaitForCondition,
1484
+ $t as _Valid_CheckConnectionWithXHR,
1485
+ tt as _Valid_DataType,
1486
+ Bt as _Valid_DoesInfiniteLineIntersectRectangle,
1487
+ rt as _Valid_FileTypeChecker,
1488
+ Ot as _Valid_Is2DNumberArray,
1489
+ zt as _Valid_IsInMargin,
1333
1490
  mt as _Valid_IsNumberArray,
1334
- St as _Valid_IsObject,
1335
- zt as _Valid_IsPointInPolygon,
1336
- Nt as _Valid_IsSecureContext
1491
+ Dt as _Valid_IsObject,
1492
+ Nt as _Valid_IsPointInPolygon,
1493
+ qt as _Valid_IsSecureContext
1337
1494
  };